diff --git a/braintrust-api/build.gradle b/braintrust-api/build.gradle index c98de5e2..1d1249ed 100644 --- a/braintrust-api/build.gradle +++ b/braintrust-api/build.gradle @@ -18,7 +18,7 @@ plugins { id 'java' - id 'org.openapi.generator' version '7.14.0' + id 'org.openapi.generator' version '7.27.0' } java { @@ -70,11 +70,16 @@ openApiGenerate { // Custom templates under src/generator/ (not src/main/resources, so they don't // end up on the runtime classpath or in the published JAR — they're only needed // at code-generation time). See src/generator/templates for the diffs from upstream. - templateDir = "${projectDir}/src/generator/templates/Java" + templateDir = layout.projectDirectory.dir('src/generator/templates/Java') - inputSpec = normalizedSpecFile.map { it.asFile.absolutePath } + inputSpec = normalizedSpecFile - outputDir = generatedSourcesDir.map { it.asFile.absolutePath } + outputDir = generatedSourcesDir + // Remove models and endpoints no longer present in the pinned spec. + cleanupOutput = true + + // Adapt OpenAPI 3.1 schema types to the generator's internal representation. + openapiNormalizer = [NORMALIZE_31SPEC: 'true'] apiPackage = 'dev.braintrust.openapi.api' modelPackage = 'dev.braintrust.openapi.model' @@ -144,7 +149,7 @@ openApiGenerate { // referenced schema, so a genuinely-narrowing allOf is left alone. tasks.register('normalizeOpenApiSpec') { - description = 'Collapses redundant allOf-over-$ref-plus-composition nodes before generation.' + description = 'Normalizes license metadata and redundant allOf compositions before generation.' group = 'Build' def rawSpec = openApiSpecFile @@ -156,6 +161,15 @@ tasks.register('normalizeOpenApiSpec') { def yaml = new org.yaml.snakeyaml.Yaml() def spec = yaml.load(rawSpec.get().asFile.text) + // Swagger Parser requires identifier or url for OAS 3.1 licenses, although both are + // optional. Supply the SPDX identifier for the spec's known license without replacing + // upstream metadata or setting identifier alongside its mutually exclusive url field. + def license = spec?.info?.license + if (spec?.openapi?.startsWith('3.1.') && license?.name == 'Apache 2.0' + && !license.containsKey('identifier') && !license.containsKey('url')) { + license.identifier = 'Apache-2.0' + } + // The branches of a component schema's own anyOf/oneOf, or null if it isn't a composition. def declaredBranches = { String refName -> def target = spec?.components?.schemas?.get(refName) diff --git a/braintrust-api/src/generator/templates/Java/libraries/native/api.mustache b/braintrust-api/src/generator/templates/Java/libraries/native/api.mustache index a34458a8..6207b2ca 100644 --- a/braintrust-api/src/generator/templates/Java/libraries/native/api.mustache +++ b/braintrust-api/src/generator/templates/Java/libraries/native/api.mustache @@ -11,8 +11,11 @@ import {{invokerPackage}}.Pair; import {{import}}; {{/imports}} -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; +{{#useJackson3}} +import tools.jackson.core.JacksonException; +{{/useJackson3}} +import {{jacksonPackage}}.core.type.TypeReference; +import {{jacksonPackage}}.databind.ObjectMapper; {{#useBeanValidation}} import {{javaxPackage}}.validation.constraints.*; @@ -47,22 +50,55 @@ import java.util.StringJoiner; import java.util.List; import java.util.Map; import java.util.Set; +{{#useUnaryInterceptor}} +import java.util.function.UnaryOperator; +{{/useUnaryInterceptor}} import java.util.function.Consumer; +{{#useGzipFeature}} +import java.util.function.Supplier; +{{/useGzipFeature}} {{#asyncNative}} import java.util.concurrent.CompletableFuture; {{/asyncNative}} {{>generatedAnnotation}} + {{#operations}} public class {{classname}} { + /** + * Utility class for extending HttpRequest.Builder functionality. + */ + private static class HttpRequestBuilderExtensions { + /** + * Adds additional headers to the provided HttpRequest.Builder. Useful for adding method/endpoint specific headers. + * + * @param builder the HttpRequest.Builder to which headers will be added + * @param headers a map of header names and values to add; may be null + * @return the same HttpRequest.Builder instance with the additional headers set + */ + static HttpRequest.Builder withAdditionalHeaders(HttpRequest.Builder builder, Map headers) { + if (headers != null) { + for (Map.Entry entry : headers.entrySet()) { + builder.header(entry.getKey(), entry.getValue()); + } + } + return builder; + } + } private final HttpClient memberVarHttpClient; private final ObjectMapper memberVarObjectMapper; private final String memberVarBaseUri; private final Consumer memberVarInterceptor; private final Duration memberVarReadTimeout; +{{#useUnaryInterceptor}} + private final UnaryOperator> memberVarResponseInterceptor; + private final UnaryOperator> memberVarAsyncResponseInterceptor; +{{/useUnaryInterceptor}} +{{^useUnaryInterceptor}} private final Consumer> memberVarResponseInterceptor; - private final Consumer> memberVarAsyncResponseInterceptor; + private final Consumer> memberVarAsyncResponseInterceptor; +{{/useUnaryInterceptor}} public {{classname}}() { this(Configuration.getDefaultApiClient()); @@ -77,17 +113,36 @@ public class {{classname}} { memberVarResponseInterceptor = apiClient.getResponseInterceptor(); memberVarAsyncResponseInterceptor = apiClient.getAsyncResponseInterceptor(); } + {{#asyncNative}} - private ApiException getApiException(String operationId, HttpResponse response) { - String message = formatExceptionMessage(operationId, response.statusCode(), response.body()); - return new ApiException(response.statusCode(), message, response.headers(), response.body()); + private ApiException getApiException(String operationId, HttpResponse response) { + try { + InputStream responseBody = ApiClient.getResponseBody(response); + String body = null; + if (responseBody != null) { + body = new String(responseBody.readAllBytes()); + responseBody.close(); + } + String message = formatExceptionMessage(operationId, response.statusCode(), body); + return new ApiException(response.statusCode(), message, response.headers(), body); + } catch (IOException e) { + return new ApiException(e); + } } {{/asyncNative}} {{^asyncNative}} protected ApiException getApiException(String operationId, HttpResponse response) throws IOException { - String body = response.body() == null ? null : new String(response.body().readAllBytes()); + InputStream responseBody = ApiClient.getResponseBody(response); + String body = null; + try { + body = responseBody == null ? null : new String(responseBody.readAllBytes()); + } finally { + if (responseBody != null) { + responseBody.close(); + } + } String message = formatExceptionMessage(operationId, response.statusCode(), body); return new ApiException(response.statusCode(), message, response.headers(), body); } @@ -100,6 +155,57 @@ public class {{classname}} { return operationId + " call failed with: " + statusCode + " - " + body; } + /** + * Download file from the given response. + * + * @param response Response + * @return File + * @throws ApiException If fail to read file content from response and write to disk + */ + public File downloadFileFromResponse(HttpResponse response, InputStream responseBody) throws ApiException { + if (responseBody == null) { + throw new ApiException(new IOException("Response body is empty")); + } + try { + File file = prepareDownloadFile(response); + java.nio.file.Files.copy(responseBody, file.toPath(), java.nio.file.StandardCopyOption.REPLACE_EXISTING); + return file; + } catch (IOException e) { + throw new ApiException(e); + } + } + + /** + *

Prepare the file for download from the response.

+ * + * @param response a {@link java.net.http.HttpResponse} object. + * @return a {@link java.io.File} object. + * @throws java.io.IOException if any. + */ + private File prepareDownloadFile(HttpResponse response) throws IOException { + String filename = null; + java.util.Optional contentDisposition = response.headers().firstValue("Content-Disposition"); + if (contentDisposition.isPresent() && !"".equals(contentDisposition.get())) { + // Get filename from the Content-Disposition header. + java.util.regex.Pattern pattern = java.util.regex.Pattern.compile("filename=['\"]?([^'\"\\s]+)['\"]?"); + java.util.regex.Matcher matcher = pattern.matcher(contentDisposition.get()); + if (matcher.find()) + filename = matcher.group(1); + } + File file = null; + if (filename != null) { + java.nio.file.Path tempDir = java.nio.file.Files.createTempDirectory("swagger-gen-native"); + java.nio.file.Path filePath = java.nio.file.Files.createFile(tempDir.resolve(filename)); + file = filePath.toFile(); + tempDir.toFile().deleteOnExit(); // best effort cleanup + file.deleteOnExit(); // best effort cleanup + } else { + file = java.nio.file.Files.createTempFile("download-", "").toFile(); + file.deleteOnExit(); // best effort cleanup + } + return file; + } + {{#operation}} {{#vendorExtensions.x-group-parameters}} {{#hasParams}} @@ -128,11 +234,40 @@ public class {{classname}} { @Deprecated {{/isDeprecated}} public {{#returnType}}{{#asyncNative}}CompletableFuture<{{{returnType}}}>{{/asyncNative}}{{^asyncNative}}{{{returnType}}}{{/asyncNative}}{{/returnType}}{{^returnType}}{{#asyncNative}}CompletableFuture{{/asyncNative}}{{^asyncNative}}void{{/asyncNative}}{{/returnType}} {{operationId}}(API{{#lambda.titlecase}}{{operationId}}{{/lambda.titlecase}}Request apiRequest) throws ApiException { + {{#returnType}}return {{/returnType}}{{^returnType}}{{#asyncNative}}return {{/asyncNative}}{{/returnType}}{{operationId}}(apiRequest, null); + } + + /** + * {{summary}} + * {{notes}} + * @param apiRequest {@link API{{#lambda.titlecase}}{{operationId}}{{/lambda.titlecase}}Request} + * @param headers Optional headers to include in the request + {{#returnType}} + * @return {{#asyncNative}}CompletableFuture<{{/asyncNative}}{{returnType}}{{#asyncNative}}>{{/asyncNative}} + {{/returnType}} + {{^returnType}} + {{#asyncNative}} + * @return CompletableFuture<Void> + {{/asyncNative}} + {{/returnType}} + * @throws ApiException if fails to make API call + {{#isDeprecated}} + * @deprecated + {{/isDeprecated}} + {{#externalDocs}} + * {{description}} + * @see {{summary}} Documentation + {{/externalDocs}} + */ + {{#isDeprecated}} + @Deprecated + {{/isDeprecated}} + public {{#returnType}}{{#asyncNative}}CompletableFuture<{{{returnType}}}>{{/asyncNative}}{{^asyncNative}}{{{returnType}}}{{/asyncNative}}{{/returnType}}{{^returnType}}{{#asyncNative}}CompletableFuture{{/asyncNative}}{{^asyncNative}}void{{/asyncNative}}{{/returnType}} {{operationId}}(API{{#lambda.titlecase}}{{operationId}}{{/lambda.titlecase}}Request apiRequest, Map headers) throws ApiException { {{#allParams}} - {{>nullable_var_annotations}} - {{{dataType}}} {{paramName}} = apiRequest.{{paramName}}(); + {{>nullable_var_annotations}}{{! prevent indent}} + {{>nullableDataType}} {{paramName}} = apiRequest.{{paramName}}(); {{/allParams}} - {{#returnType}}return {{/returnType}}{{^returnType}}{{#asyncNative}}return {{/asyncNative}}{{/returnType}}{{operationId}}({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}); + {{#returnType}}return {{/returnType}}{{^returnType}}{{#asyncNative}}return {{/asyncNative}}{{/returnType}}{{operationId}}({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}headers); } /** @@ -153,10 +288,32 @@ public class {{classname}} { @Deprecated {{/isDeprecated}} public {{#asyncNative}}CompletableFuture<{{/asyncNative}}ApiResponse<{{{returnType}}}{{^returnType}}Void{{/returnType}}>{{#asyncNative}}>{{/asyncNative}} {{operationId}}WithHttpInfo(API{{#lambda.titlecase}}{{operationId}}{{/lambda.titlecase}}Request apiRequest) throws ApiException { + return {{operationId}}WithHttpInfo(apiRequest, null); + } + + /** + * {{summary}} + * {{notes}} + * @param apiRequest {@link API{{#lambda.titlecase}}{{operationId}}{{/lambda.titlecase}}Request} + * @param headers Optional headers to include in the request + * @return {{#asyncNative}}CompletableFuture<{{/asyncNative}}ApiResponse<{{returnType}}{{^returnType}}Void{{/returnType}}>{{#asyncNative}}>{{/asyncNative}} + * @throws ApiException if fails to make API call + {{#isDeprecated}} + * @deprecated + {{/isDeprecated}} + {{#externalDocs}} + * {{description}} + * @see {{summary}} Documentation + {{/externalDocs}} + */ + {{#isDeprecated}} + @Deprecated + {{/isDeprecated}} + public {{#asyncNative}}CompletableFuture<{{/asyncNative}}ApiResponse<{{{returnType}}}{{^returnType}}Void{{/returnType}}>{{#asyncNative}}>{{/asyncNative}} {{operationId}}WithHttpInfo(API{{#lambda.titlecase}}{{operationId}}{{/lambda.titlecase}}Request apiRequest, Map headers) throws ApiException { {{#allParams}} {{{dataType}}} {{paramName}} = apiRequest.{{paramName}}(); {{/allParams}} - return {{operationId}}WithHttpInfo({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}); + return {{operationId}}WithHttpInfo({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}headers); } {{/hasParams}} @@ -165,7 +322,7 @@ public class {{classname}} { * {{summary}} * {{notes}} {{#allParams}} - * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}){{/required}} + * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{#lambda.escapeJavaDoc}}{{.}}{{/lambda.escapeJavaDoc}}{{/defaultValue}}{{/isContainer}}){{/required}} {{/allParams}} {{#returnType}} * @return {{#asyncNative}}CompletableFuture<{{/asyncNative}}{{returnType}}{{#asyncNative}}>{{/asyncNative}} @@ -187,36 +344,48 @@ public class {{classname}} { {{#isDeprecated}} @Deprecated {{/isDeprecated}} - public {{#returnType}}{{#asyncNative}}CompletableFuture<{{{returnType}}}>{{/asyncNative}}{{^asyncNative}}{{{returnType}}}{{/asyncNative}}{{/returnType}}{{^returnType}}{{#asyncNative}}CompletableFuture{{/asyncNative}}{{^asyncNative}}void{{/asyncNative}}{{/returnType}} {{operationId}}({{#allParams}}{{>nullable_var_annotations}} {{{dataType}}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}) throws ApiException { + public {{#returnType}}{{#asyncNative}}CompletableFuture<{{{returnType}}}>{{/asyncNative}}{{^asyncNative}}{{{returnType}}}{{/asyncNative}}{{/returnType}}{{^returnType}}{{#asyncNative}}CompletableFuture{{/asyncNative}}{{^asyncNative}}void{{/asyncNative}}{{/returnType}} {{operationId}}({{#allParams}}{{>nullableArgument}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}) throws ApiException { + {{#returnType}}return {{/returnType}}{{^returnType}}{{#asyncNative}}return {{/asyncNative}}{{/returnType}}{{operationId}}({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}null); + } + + /** + * {{summary}} + * {{notes}} + {{#allParams}} + * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{#lambda.escapeJavaDoc}}{{.}}{{/lambda.escapeJavaDoc}}{{/defaultValue}}{{/isContainer}}){{/required}} + {{/allParams}} + * @param headers Optional headers to include in the request + {{#returnType}} + * @return {{#asyncNative}}CompletableFuture<{{/asyncNative}}{{returnType}}{{#asyncNative}}>{{/asyncNative}} + {{/returnType}} + {{^returnType}} + {{#asyncNative}} + * @return CompletableFuture<Void> + {{/asyncNative}} + {{/returnType}} + * @throws ApiException if fails to make API call + {{#isDeprecated}} + * @deprecated + {{/isDeprecated}} + {{#externalDocs}} + * {{description}} + * @see {{summary}} Documentation + {{/externalDocs}} + */ + {{#isDeprecated}} + @Deprecated + {{/isDeprecated}} + public {{#returnType}}{{#asyncNative}}CompletableFuture<{{{returnType}}}>{{/asyncNative}}{{^asyncNative}}{{{returnType}}}{{/asyncNative}}{{/returnType}}{{^returnType}}{{#asyncNative}}CompletableFuture{{/asyncNative}}{{^asyncNative}}void{{/asyncNative}}{{/returnType}} {{operationId}}({{#allParams}}{{>nullableArgument}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}Map headers) throws ApiException { {{^asyncNative}} - {{#returnType}}ApiResponse<{{{.}}}> localVarResponse = {{/returnType}}{{operationId}}WithHttpInfo({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}); + {{#returnType}}ApiResponse<{{{.}}}> localVarResponse = {{/returnType}}{{operationId}}WithHttpInfo({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}headers); {{#returnType}} return localVarResponse.getData(); {{/returnType}} {{/asyncNative}} {{#asyncNative}} try { - HttpRequest.Builder localVarRequestBuilder = {{operationId}}RequestBuilder({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}); - return memberVarHttpClient.sendAsync( - localVarRequestBuilder.build(), - HttpResponse.BodyHandlers.ofString()).thenComposeAsync(localVarResponse -> { - if (localVarResponse.statusCode()/ 100 != 2) { - return CompletableFuture.failedFuture(getApiException("{{operationId}}", localVarResponse)); - } - {{#returnType}} - try { - String responseBody = localVarResponse.body(); - return CompletableFuture.completedFuture( - responseBody == null || responseBody.isBlank() ? null : memberVarObjectMapper.readValue(responseBody, new TypeReference<{{{returnType}}}>() {}) - ); - } catch (IOException e) { - return CompletableFuture.failedFuture(new ApiException(e)); - } - {{/returnType}} - {{^returnType}} - return CompletableFuture.completedFuture(null); - {{/returnType}} - }); + return {{operationId}}WithHttpInfo({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}headers) + .thenApply(ApiResponse::getData); } catch (ApiException e) { return CompletableFuture.failedFuture(e); @@ -228,8 +397,32 @@ public class {{classname}} { * {{summary}} * {{notes}} {{#allParams}} - * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}){{/required}} + * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{#lambda.escapeJavaDoc}}{{.}}{{/lambda.escapeJavaDoc}}{{/defaultValue}}{{/isContainer}}){{/required}} + {{/allParams}} + * @return {{#asyncNative}}CompletableFuture<{{/asyncNative}}ApiResponse<{{returnType}}{{^returnType}}Void{{/returnType}}>{{#asyncNative}}>{{/asyncNative}} + * @throws ApiException if fails to make API call + {{#isDeprecated}} + * @deprecated + {{/isDeprecated}} + {{#externalDocs}} + * {{description}} + * @see {{summary}} Documentation + {{/externalDocs}} + */ + {{#isDeprecated}} + @Deprecated + {{/isDeprecated}} + public {{#asyncNative}}CompletableFuture<{{/asyncNative}}ApiResponse<{{{returnType}}}{{^returnType}}Void{{/returnType}}>{{#asyncNative}}>{{/asyncNative}} {{operationId}}WithHttpInfo({{#allParams}}{{>nullableArgument}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}) throws ApiException { + return {{operationId}}WithHttpInfo({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}null); + } + + /** + * {{summary}} + * {{notes}} + {{#allParams}} + * @param {{paramName}} {{description}}{{#required}} (required){{/required}}{{^required}} (optional{{^isContainer}}{{#defaultValue}}, default to {{#lambda.escapeJavaDoc}}{{.}}{{/lambda.escapeJavaDoc}}{{/defaultValue}}{{/isContainer}}){{/required}} {{/allParams}} + * @param headers Optional headers to include in the request * @return {{#asyncNative}}CompletableFuture<{{/asyncNative}}ApiResponse<{{returnType}}{{^returnType}}Void{{/returnType}}>{{#asyncNative}}>{{/asyncNative}} * @throws ApiException if fails to make API call {{#isDeprecated}} @@ -243,16 +436,22 @@ public class {{classname}} { {{#isDeprecated}} @Deprecated {{/isDeprecated}} - public {{#asyncNative}}CompletableFuture<{{/asyncNative}}ApiResponse<{{{returnType}}}{{^returnType}}Void{{/returnType}}>{{#asyncNative}}>{{/asyncNative}} {{operationId}}WithHttpInfo({{#allParams}}{{>nullable_var_annotations}} {{{dataType}}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}) throws ApiException { + public {{#asyncNative}}CompletableFuture<{{/asyncNative}}ApiResponse<{{{returnType}}}{{^returnType}}Void{{/returnType}}>{{#asyncNative}}>{{/asyncNative}} {{operationId}}WithHttpInfo({{#allParams}}{{>nullableArgument}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}Map headers) throws ApiException { {{^asyncNative}} - HttpRequest.Builder localVarRequestBuilder = {{operationId}}RequestBuilder({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}); + HttpRequest.Builder localVarRequestBuilder = {{operationId}}RequestBuilder({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}headers); try { HttpResponse localVarResponse = memberVarHttpClient.send( localVarRequestBuilder.build(), HttpResponse.BodyHandlers.ofInputStream()); if (memberVarResponseInterceptor != null) { + {{#useUnaryInterceptor}} + localVarResponse = memberVarResponseInterceptor.apply(localVarResponse); + {{/useUnaryInterceptor}} + {{^useUnaryInterceptor}} memberVarResponseInterceptor.accept(localVarResponse); + {{/useUnaryInterceptor}} } + InputStream localVarResponseBody = null; try { if (localVarResponse.statusCode()/ 100 != 2) { throw getApiException("{{operationId}}", localVarResponse); @@ -261,7 +460,8 @@ public class {{classname}} { // for plain text response if (localVarResponse.headers().map().containsKey("Content-Type") && "text/plain".equalsIgnoreCase(localVarResponse.headers().map().get("Content-Type").get(0).split(";")[0].trim())) { - java.util.Scanner s = new java.util.Scanner(localVarResponse.body()).useDelimiter("\\A"); + localVarResponseBody = ApiClient.getResponseBody(localVarResponse); + java.util.Scanner s = new java.util.Scanner(localVarResponseBody == null ? InputStream.nullInputStream() : localVarResponseBody).useDelimiter("\\A"); String responseBodyText = s.hasNext() ? s.next() : ""; return new ApiResponse( localVarResponse.statusCode(), @@ -283,7 +483,8 @@ public class {{classname}} { {{! A fix for that problem is to read it into a string and remove those characters, but if we need to read it before giving it to jackson to fix the string then just reading it into a string as is to do an emptiness check is the cleaner solution. }} {{! We could also manipulate the inputstream to remove that bad character, but string manipulation is easier to read and this codepath is not asyncronus so we do not gain anything by reading the stream later. }} {{! This fix does make it unsuitable for large amounts of data because `InputStream.readAllbytes` is not meant for it, but a synchronous client is already not the right tool for that.}} - if (localVarResponse.body() == null) { + localVarResponseBody = ApiClient.getResponseBody(localVarResponse); + if (localVarResponseBody == null) { return new ApiResponse<{{{returnType}}}>( localVarResponse.statusCode(), localVarResponse.headers().map(), @@ -291,16 +492,29 @@ public class {{classname}} { ); } - String responseBody = new String(localVarResponse.body().readAllBytes()); - localVarResponse.body().close(); + {{^isResponseFile}}{{#isResponseBinary}} + Byte[] responseValue = localVarResponseBody.readAllBytes(); + {{/isResponseBinary}}{{/isResponseFile}} + {{#isResponseFile}} + // Handle file downloading. + File responseValue = downloadFileFromResponse(localVarResponse, localVarResponseBody); + {{/isResponseFile}} + {{^isResponseBinary}}{{^isResponseFile}} + String responseBody = new String(localVarResponseBody.readAllBytes()); + {{{returnType}}} responseValue = responseBody.isBlank()? null: memberVarObjectMapper.readValue(responseBody, new TypeReference<{{{returnType}}}>() {}); + {{/isResponseFile}}{{/isResponseBinary}} return new ApiResponse<{{{returnType}}}>( localVarResponse.statusCode(), localVarResponse.headers().map(), - responseBody.isBlank()? null: memberVarObjectMapper.readValue(responseBody, new TypeReference<{{{returnType}}}>() {}) + responseValue ); {{/returnType}} {{^returnType}} + localVarResponseBody = ApiClient.getResponseBody(localVarResponse); + if (localVarResponseBody != null) { + localVarResponseBody.readAllBytes(); + } return new ApiResponse<{{{returnType}}}>( localVarResponse.statusCode(), localVarResponse.headers().map(), @@ -309,15 +523,11 @@ public class {{classname}} { {{/returnType}} {{/vendorExtensions.x-java-text-plain-string}} } finally { - {{^returnType}} - // Drain the InputStream - while (localVarResponse.body().read() != -1) { - // Ignore + if (localVarResponseBody != null) { + localVarResponseBody.close(); } - localVarResponse.body().close(); - {{/returnType}} } - } catch (IOException e) { + } catch (IOException {{#returnType}}{{#useJackson3}}| JacksonException {{/useJackson3}}{{/returnType}}e) { throw new ApiException(e); } catch (InterruptedException e) { @@ -327,34 +537,86 @@ public class {{classname}} { {{/asyncNative}} {{#asyncNative}} try { - HttpRequest.Builder localVarRequestBuilder = {{operationId}}RequestBuilder({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}); + HttpRequest.Builder localVarRequestBuilder = {{operationId}}RequestBuilder({{#allParams}}{{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}headers); return memberVarHttpClient.sendAsync( localVarRequestBuilder.build(), - HttpResponse.BodyHandlers.ofString()).thenComposeAsync(localVarResponse -> { + HttpResponse.BodyHandlers.ofInputStream()).thenComposeAsync(localVarResponse -> { if (memberVarAsyncResponseInterceptor != null) { + {{#useUnaryInterceptor}} + localVarResponse = memberVarAsyncResponseInterceptor.apply(localVarResponse); + {{/useUnaryInterceptor}} + {{^useUnaryInterceptor}} memberVarAsyncResponseInterceptor.accept(localVarResponse); + {{/useUnaryInterceptor}} } if (localVarResponse.statusCode()/ 100 != 2) { return CompletableFuture.failedFuture(getApiException("{{operationId}}", localVarResponse)); } - {{#returnType}} try { - String responseBody = localVarResponse.body(); - return CompletableFuture.completedFuture( - new ApiResponse<{{{returnType}}}>( - localVarResponse.statusCode(), - localVarResponse.headers().map(), - responseBody == null || responseBody.isBlank() ? null : memberVarObjectMapper.readValue(responseBody, new TypeReference<{{{returnType}}}>() {})) - ); - } catch (IOException e) { + InputStream localVarResponseBody = ApiClient.getResponseBody(localVarResponse); + try { + {{#vendorExtensions.x-java-text-plain-string}} + if (localVarResponse.headers().map().containsKey("Content-Type") && + "text/plain".equalsIgnoreCase(localVarResponse.headers().map().get("Content-Type").get(0).split(";")[0].trim())) { + java.util.Scanner s = new java.util.Scanner(localVarResponseBody == null ? InputStream.nullInputStream() : localVarResponseBody).useDelimiter("\\A"); + String responseBodyText = s.hasNext() ? s.next() : ""; + return CompletableFuture.completedFuture( + new ApiResponse( + localVarResponse.statusCode(), + localVarResponse.headers().map(), + responseBodyText + ) + ); + } else { + return CompletableFuture.failedFuture(new RuntimeException("Error! The response Content-Type is supposed to be `text/plain` but it's not: " + localVarResponse)); + } + {{/vendorExtensions.x-java-text-plain-string}} + {{^vendorExtensions.x-java-text-plain-string}} + {{#returnType}} + if (localVarResponseBody == null) { + return CompletableFuture.completedFuture( + new ApiResponse<{{{returnType}}}>( + localVarResponse.statusCode(), + localVarResponse.headers().map(), + null + ) + ); + } + {{^isResponseFile}}{{#isResponseBinary}} + Byte[] responseValue = localVarResponseBody.readAllBytes(); + {{/isResponseBinary}}{{/isResponseFile}} + {{#isResponseFile}} + File responseValue = downloadFileFromResponse(localVarResponse, localVarResponseBody); + {{/isResponseFile}} + {{^isResponseBinary}}{{^isResponseFile}} + String responseBody = new String(localVarResponseBody.readAllBytes()); + {{{returnType}}} responseValue = responseBody.isBlank()? null: memberVarObjectMapper.readValue(responseBody, new TypeReference<{{{returnType}}}>() {}); + {{/isResponseFile}}{{/isResponseBinary}} + return CompletableFuture.completedFuture( + new ApiResponse<{{{returnType}}}>( + localVarResponse.statusCode(), + localVarResponse.headers().map(), + responseValue + ) + ); + {{/returnType}} + {{^returnType}} + if (localVarResponseBody != null) { + localVarResponseBody.readAllBytes(); + } + return CompletableFuture.completedFuture( + new ApiResponse(localVarResponse.statusCode(), localVarResponse.headers().map(), null) + ); + {{/returnType}} + {{/vendorExtensions.x-java-text-plain-string}} + } finally { + if (localVarResponseBody != null) { + localVarResponseBody.close(); + } + } + } catch (IOException {{#returnType}}{{#useJackson3}}| JacksonException {{/useJackson3}}{{/returnType}}e) { return CompletableFuture.failedFuture(new ApiException(e)); } - {{/returnType}} - {{^returnType}} - return CompletableFuture.completedFuture( - new ApiResponse(localVarResponse.statusCode(), localVarResponse.headers().map(), null) - ); - {{/returnType}} } ); } @@ -364,7 +626,7 @@ public class {{classname}} { {{/asyncNative}} } - private HttpRequest.Builder {{operationId}}RequestBuilder({{#allParams}}{{>nullable_var_annotations}} {{{dataType}}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}) throws ApiException { + private HttpRequest.Builder {{operationId}}RequestBuilder({{#allParams}}{{>nullableArgument}} {{paramName}}{{^-last}}, {{/-last}}{{/allParams}}{{#hasParams}}, {{/hasParams}}Map headers) throws ApiException { {{#allParams}} {{#required}} // verify the required parameter '{{paramName}}' is set @@ -394,7 +656,7 @@ public class {{classname}} { if ({{paramName}} != null) { {{#isArray}} for (int i=0; i < {{paramName}}.size(); i++) { - localVarQueryStringJoiner.add({{paramName}}.get(i).toUrlQueryString(String.format("{{baseName}}[%d]", i))); + localVarQueryStringJoiner.add({{paramName}}.get(i).toUrlQueryString(String.format(java.util.Locale.ROOT, "{{baseName}}[%d]", i))); } {{/isArray}} {{^isArray}} @@ -467,16 +729,33 @@ public class {{classname}} { localVarRequestBuilder.header("Content-Type", "{{#hasConsumes}}{{#consumes}}{{#-first}}{{{mediaType}}}{{/-first}}{{/consumes}}{{/hasConsumes}}{{#hasConsumes}}{{^consumes}}application/json{{/consumes}}{{/hasConsumes}}{{^hasConsumes}}application/json{{/hasConsumes}}"); {{/bodyParam}} localVarRequestBuilder.header("Accept", "{{#hasProduces}}{{#produces}}{{{mediaType}}}{{^-last}}, {{/-last}}{{/produces}}{{/hasProduces}}{{#hasProduces}}{{^produces}}application/json{{/produces}}{{/hasProduces}}{{^hasProduces}}application/json{{/hasProduces}}"); + {{#useGzipFeature}} + localVarRequestBuilder.header("Accept-Encoding", "gzip"); + {{/useGzipFeature}} {{#bodyParam}} {{#isString}} + {{#useGzipFeature}} + Supplier localVarRequestBodySupplier = () -> new ByteArrayInputStream({{paramName}}.getBytes(java.nio.charset.StandardCharsets.UTF_8)); + localVarRequestBuilder.header("Content-Encoding", "gzip"); + localVarRequestBuilder.method("{{httpMethod}}", ApiClient.gzipRequestBody(localVarRequestBodySupplier)); + {{/useGzipFeature}} + {{^useGzipFeature}} localVarRequestBuilder.method("{{httpMethod}}", HttpRequest.BodyPublishers.ofString({{paramName}})); + {{/useGzipFeature}} {{/isString}} {{^isString}} try { byte[] localVarPostBody = memberVarObjectMapper.writeValueAsBytes({{paramName}}); + {{#useGzipFeature}} + Supplier localVarRequestBodySupplier = () -> new ByteArrayInputStream(localVarPostBody); + localVarRequestBuilder.header("Content-Encoding", "gzip"); + localVarRequestBuilder.method("{{httpMethod}}", ApiClient.gzipRequestBody(localVarRequestBodySupplier)); + {{/useGzipFeature}} + {{^useGzipFeature}} localVarRequestBuilder.method("{{httpMethod}}", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody)); - } catch (IOException e) { + {{/useGzipFeature}} + } catch ({{^useJackson3}}IOException{{/useJackson3}}{{#useJackson3}}JacksonException{{/useJackson3}} e) { throw new ApiException(e); } {{/isString}} @@ -513,6 +792,39 @@ public class {{classname}} { {{/isArray}} {{/formParams}} HttpEntity entity = multiPartBuilder.build(); + {{#useGzipFeature}} + Supplier formDataSupplier; + if (hasFiles) { + Pipe pipe; + try { + pipe = Pipe.open(); + } catch (IOException e) { + throw new RuntimeException(e); + } + new Thread(() -> { + try (OutputStream outputStream = Channels.newOutputStream(pipe.sink())) { + entity.writeTo(outputStream); + } catch (IOException e) { + e.printStackTrace(); + } + }).start(); + formDataSupplier = () -> Channels.newInputStream(pipe.source()); + } else { + ByteArrayOutputStream formOutputStream = new ByteArrayOutputStream(); + try { + entity.writeTo(formOutputStream); + } catch (IOException e) { + throw new RuntimeException(e); + } + byte[] formBytes = formOutputStream.toByteArray(); + formDataSupplier = () -> new ByteArrayInputStream(formBytes); + } + localVarRequestBuilder + .header("Content-Type", entity.getContentType().getValue()) + .header("Content-Encoding", "gzip") + .method("{{httpMethod}}", ApiClient.gzipRequestBody(formDataSupplier)); + {{/useGzipFeature}} + {{^useGzipFeature}} HttpRequest.BodyPublisher formDataPublisher; if (hasFiles) { Pipe pipe; @@ -536,12 +848,14 @@ public class {{classname}} { } catch (IOException e) { throw new RuntimeException(e); } + byte[] formBytes = formOutputStream.toByteArray(); formDataPublisher = HttpRequest.BodyPublishers - .ofInputStream(() -> new ByteArrayInputStream(formOutputStream.toByteArray())); + .ofInputStream(() -> new ByteArrayInputStream(formBytes)); } localVarRequestBuilder .header("Content-Type", entity.getContentType().getValue()) .method("{{httpMethod}}", formDataPublisher); + {{/useGzipFeature}} {{/isMultipart}} {{^isMultipart}} List formValues = new ArrayList<>(); @@ -566,10 +880,20 @@ public class {{classname}} { } catch (IOException e) { throw new RuntimeException(e); } + byte[] formBytes = formOutputStream.toByteArray(); + {{#useGzipFeature}} + Supplier formDataSupplier = () -> new ByteArrayInputStream(formBytes); + localVarRequestBuilder + .header("Content-Type", entity.getContentType().getValue()) + .header("Content-Encoding", "gzip") + .method("{{httpMethod}}", ApiClient.gzipRequestBody(formDataSupplier)); + {{/useGzipFeature}} + {{^useGzipFeature}} localVarRequestBuilder .header("Content-Type", entity.getContentType().getValue()) .method("{{httpMethod}}", HttpRequest.BodyPublishers - .ofInputStream(() -> new ByteArrayInputStream(formOutputStream.toByteArray()))); + .ofInputStream(() -> new ByteArrayInputStream(formBytes))); + {{/useGzipFeature}} {{/isMultipart}} {{/hasFormParams}} {{^hasFormParams}} @@ -579,6 +903,8 @@ public class {{classname}} { if (memberVarReadTimeout != null) { localVarRequestBuilder.timeout(memberVarReadTimeout); } + // Add custom headers if provided + localVarRequestBuilder = HttpRequestBuilderExtensions.withAdditionalHeaders(localVarRequestBuilder, headers); if (memberVarInterceptor != null) { memberVarInterceptor.accept(localVarRequestBuilder); } @@ -590,12 +916,12 @@ public class {{classname}} { public static final class API{{#lambda.titlecase}}{{operationId}}{{/lambda.titlecase}}Request { {{#requiredParams}} - {{>nullable_var_annotations}} - private {{{dataType}}} {{paramName}}; // {{description}} (required) + {{>nullable_var_annotations}}{{! prevent indent}} + private {{>nullableDataType}} {{paramName}}; // {{description}} (required) {{/requiredParams}} {{#optionalParams}} - {{>nullable_var_annotations}} - private {{{dataType}}} {{paramName}}; // {{description}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}) + {{>nullable_var_annotations}}{{! prevent indent}} + private {{>nullableDataType}} {{paramName}}; // {{description}} (optional{{^isContainer}}{{#defaultValue}}, default to {{.}}{{/defaultValue}}{{/isContainer}}) {{/optionalParams}} private API{{#lambda.titlecase}}{{operationId}}{{/lambda.titlecase}}Request(Builder builder) { @@ -607,8 +933,8 @@ public class {{classname}} { {{/optionalParams}} } {{#allParams}} - {{>nullable_var_annotations}} - public {{{dataType}}} {{paramName}}() { + {{>nullable_var_annotations}}{{! prevent indent}} + public {{>nullableDataType}} {{paramName}}() { return {{paramName}}; } {{/allParams}} @@ -625,7 +951,7 @@ public class {{classname}} { {{/optionalParams}} {{#allParams}} - public Builder {{paramName}}({{>nullable_var_annotations}} {{{dataType}}} {{paramName}}) { + public Builder {{paramName}}({{>nullableArgument}} {{paramName}}) { this.{{paramName}} = {{paramName}}; return this; } @@ -640,4 +966,4 @@ public class {{classname}} { {{/vendorExtensions.x-group-parameters}} {{/operation}} } -{{/operations}} +{{/operations}} \ No newline at end of file diff --git a/braintrust-api/src/generator/templates/PATCHES.md b/braintrust-api/src/generator/templates/PATCHES.md index 265a79d2..621108c5 100644 --- a/braintrust-api/src/generator/templates/PATCHES.md +++ b/braintrust-api/src/generator/templates/PATCHES.md @@ -1,7 +1,8 @@ # Custom Mustache Template Patches -These templates are forked from **openapi-generator v7.14.0** and contain targeted -patches to fix bugs or add functionality not present upstream. They live under +These templates contain targeted patches to fix bugs or add functionality not present +upstream. Their base versions are recorded below; both were compared against v7.27.0. +The generator runs v7.27.0 with Jackson 2. They live under `src/generator/` (not `src/main/resources`) so they are only available at code-generation time and do not appear on the runtime classpath or in the published JAR. @@ -15,6 +16,10 @@ When upgrading the generator version, diff each file against the new upstream te **Upstream:** `Java/libraries/native/anyof_model.mustache` @ v7.14.0 +Retained for the explicit variant API below. Upstream v7.27.0 includes container +`TypeReference` deserialization, but not our `SchemaType`, explicit constructor, or +named variant getters. Its Jackson 3 branches are not needed by this build. + ### Patch 1 — TypeReference for container variants in deserializer The upstream deserializer calls `readValueAs(List.class)` / `readValueAs(Map.class)` for container-typed anyOf variants, using the raw erased type. This causes silent @@ -64,7 +69,7 @@ parameter names or code that does not compile. ## api.mustache -**Upstream:** `Java/libraries/native/api.mustache` @ v7.14.0 +**Upstream:** `Java/libraries/native/api.mustache` @ v7.27.0 ### Patch 1 — anyOf/oneOf model query parameters are serialized via `parameterToPairs` In the `isExplode`/`!hasVars`/`isModel` branch, the upstream template serializes the parameter diff --git a/braintrust-api/src/test/java/dev/braintrust/openapi/model/AnyOfModelTemplateTest.java b/braintrust-api/src/test/java/dev/braintrust/openapi/model/AnyOfModelTemplateTest.java index 95f636ea..2976c32d 100644 --- a/braintrust-api/src/test/java/dev/braintrust/openapi/model/AnyOfModelTemplateTest.java +++ b/braintrust-api/src/test/java/dev/braintrust/openapi/model/AnyOfModelTemplateTest.java @@ -189,9 +189,8 @@ void projectScoreCategories_getVariantType_weighted_viaConstructor() { @Test void projectScoreCategories_getVariantType_minimum_viaConstructor() { - // Explicitly declare the List variant as Minimum — this is the key fix. - // Without the (SchemaType, Object) constructor, getVariantType() would incorrectly - // return Categorical for both List variants due to erasure. + // Explicit variants distinguish List from List + // despite their identical raw type after erasure. ProjectScoreCategories c = new ProjectScoreCategories( ProjectScoreCategories.SchemaType.Minimum, List.of("pass", "fail")); @@ -200,9 +199,7 @@ void projectScoreCategories_getVariantType_minimum_viaConstructor() { @Test void projectScoreCategories_getVariantType_viaDeserialization_minimum() throws Exception { - // Uses TypeReference> so Jackson fails fast on object elements, - // correctly distinguishing Minimum (List) from Categorical - // (List) + // TypeReference distinguishes string elements from ProjectScoreCategory objects. ProjectScoreCategories c = mapper.readValue("[\"pass\",\"fail\"]", ProjectScoreCategories.class); assertEquals(ProjectScoreCategories.SchemaType.Minimum, c.getVariantType()); @@ -250,15 +247,4 @@ void projectScoreCategories_typedGetter_weighted() { new ProjectScoreCategories(ProjectScoreCategories.SchemaType.Weighted, weights); assertEquals(weights, c.getWeightedInstance()); } - - @Test - void projectScoreCategories_schemaType_dataType_field() { - // Each enum constant carries the full generic type as .dataType - assertEquals( - "List", - ProjectScoreCategories.SchemaType.Categorical.dataType); - assertEquals( - "Map", ProjectScoreCategories.SchemaType.Weighted.dataType); - assertEquals("List", ProjectScoreCategories.SchemaType.Minimum.dataType); - } } diff --git a/braintrust-sdk/instrumentation/anthropic_2_2_0/src/test/java/dev/braintrust/instrumentation/anthropic/v2_2_0/BraintrustAnthropicPromptCachingTest.java b/braintrust-sdk/instrumentation/anthropic_2_2_0/src/test/java/dev/braintrust/instrumentation/anthropic/v2_2_0/BraintrustAnthropicPromptCachingTest.java index 4027c68e..e1f1ddc3 100644 --- a/braintrust-sdk/instrumentation/anthropic_2_2_0/src/test/java/dev/braintrust/instrumentation/anthropic/v2_2_0/BraintrustAnthropicPromptCachingTest.java +++ b/braintrust-sdk/instrumentation/anthropic_2_2_0/src/test/java/dev/braintrust/instrumentation/anthropic/v2_2_0/BraintrustAnthropicPromptCachingTest.java @@ -25,23 +25,25 @@ * Tests that prompt caching metrics (per-TTL breakdown) are correctly extracted from Anthropic API * responses and attached to spans. * - *

Uses a cache-buster nonce in the system prompt to guarantee cache misses, ensuring {@code - * cache_creation_input_tokens} is always positive. In VCR replay mode the nonce is a fixed string - * so cassette matching still works. + *

Uses a random nonce for live requests and a client-specific stable nonce for recording and + * replay. Recording requires a cold cache; repeated recordings must wait for the cache TTLs. */ public class BraintrustAnthropicPromptCachingTest { private static final String TEST_MODEL = "claude-sonnet-4-5-20250929"; private static final ObjectMapper JSON_MAPPER = new ObjectMapper(); /** - * Nonce injected into system prompts to bust Anthropic's server-side prompt cache. Random UUID - * when running live ({@code VCR_MODE=off}), fixed string otherwise so VCR cassettes match. + * Nonce injected into system prompts to isolate each client's Anthropic prompt cache. Random + * UUID in {@code VCR_MODE=off}, otherwise the versioned test class name for cassette matching. */ private static final String VCR_NONCE; static { String vcrMode = System.getenv().getOrDefault("VCR_MODE", "replay").toUpperCase(); - VCR_NONCE = "OFF".equals(vcrMode) ? UUID.randomUUID().toString() : "vcr-mode"; + VCR_NONCE = + "OFF".equals(vcrMode) + ? UUID.randomUUID().toString() + : BraintrustAnthropicPromptCachingTest.class.getName(); } @BeforeAll diff --git a/braintrust-sdk/instrumentation/anthropic_3_0_0/src/test/java/dev/braintrust/instrumentation/anthropic/v3_0_0/BraintrustAnthropicPromptCachingTest.java b/braintrust-sdk/instrumentation/anthropic_3_0_0/src/test/java/dev/braintrust/instrumentation/anthropic/v3_0_0/BraintrustAnthropicPromptCachingTest.java index 0dac7b66..a00c2d11 100644 --- a/braintrust-sdk/instrumentation/anthropic_3_0_0/src/test/java/dev/braintrust/instrumentation/anthropic/v3_0_0/BraintrustAnthropicPromptCachingTest.java +++ b/braintrust-sdk/instrumentation/anthropic_3_0_0/src/test/java/dev/braintrust/instrumentation/anthropic/v3_0_0/BraintrustAnthropicPromptCachingTest.java @@ -25,23 +25,25 @@ * Tests that prompt caching metrics (per-TTL breakdown) are correctly extracted from Anthropic API * responses and attached to spans. * - *

Uses a cache-buster nonce in the system prompt to guarantee cache misses, ensuring {@code - * cache_creation_input_tokens} is always positive. In VCR replay mode the nonce is a fixed string - * so cassette matching still works. + *

Uses a random nonce for live requests and a client-specific stable nonce for recording and + * replay. Recording requires a cold cache; repeated recordings must wait for the cache TTLs. */ public class BraintrustAnthropicPromptCachingTest { private static final String TEST_MODEL = "claude-sonnet-4-5-20250929"; private static final ObjectMapper JSON_MAPPER = new ObjectMapper(); /** - * Nonce injected into system prompts to bust Anthropic's server-side prompt cache. Random UUID - * when running live ({@code VCR_MODE=off}), fixed string otherwise so VCR cassettes match. + * Nonce injected into system prompts to isolate each client's Anthropic prompt cache. Random + * UUID in {@code VCR_MODE=off}, otherwise the versioned test class name for cassette matching. */ private static final String VCR_NONCE; static { String vcrMode = System.getenv().getOrDefault("VCR_MODE", "replay").toUpperCase(); - VCR_NONCE = "OFF".equals(vcrMode) ? UUID.randomUUID().toString() : "vcr-mode"; + VCR_NONCE = + "OFF".equals(vcrMode) + ? UUID.randomUUID().toString() + : BraintrustAnthropicPromptCachingTest.class.getName(); } @BeforeAll diff --git a/braintrust-sdk/instrumentation/openai_2_15_0/src/test/java/dev/braintrust/instrumentation/openai/v2_15_0/BraintrustOpenAITest.java b/braintrust-sdk/instrumentation/openai_2_15_0/src/test/java/dev/braintrust/instrumentation/openai/v2_15_0/BraintrustOpenAITest.java index 870202d7..77b9c36e 100644 --- a/braintrust-sdk/instrumentation/openai_2_15_0/src/test/java/dev/braintrust/instrumentation/openai/v2_15_0/BraintrustOpenAITest.java +++ b/braintrust-sdk/instrumentation/openai_2_15_0/src/test/java/dev/braintrust/instrumentation/openai/v2_15_0/BraintrustOpenAITest.java @@ -127,7 +127,7 @@ void testImageGeneration() { client.images() .generate( ImageGenerateParams.builder() - .model(ImageModel.GPT_IMAGE_1) + .model(ImageModel.of("gpt-image-2.5-flare")) .prompt( "A small blue circle on a plain white" + " background.") @@ -148,7 +148,7 @@ void testImageGeneration() { } finally { parent.end(); } - assertSingleMediaSpan(parent, "images/generations", "gpt-image-1"); + assertSingleMediaSpan(parent, "images/generations", "gpt-image-2.5-flare"); } @Test @@ -491,7 +491,7 @@ void testResponses() { var request = ResponseCreateParams.builder() - .model("o4-mini") + .model("gpt-6-luna") .reasoning( Reasoning.builder() .effort(ReasoningEffort.LOW) diff --git a/braintrust-sdk/src/main/java/dev/braintrust/eval/DatasetBrainstoreImpl.java b/braintrust-sdk/src/main/java/dev/braintrust/eval/DatasetBrainstoreImpl.java index ad1dad88..1e62e202 100644 --- a/braintrust-sdk/src/main/java/dev/braintrust/eval/DatasetBrainstoreImpl.java +++ b/braintrust-sdk/src/main/java/dev/braintrust/eval/DatasetBrainstoreImpl.java @@ -193,15 +193,15 @@ public Optional> next() { OUTPUT expected = outputConverter.apply(event.getExpected()); var metadataObj = event.getMetadata(); - // InsertProjectLogsEventMetadata extends HashMap. Jackson stores - // unknown fields in the HashMap base (not in additionalProperties) for Map subclasses, - // so copy from both sources defensively. Map metadata; if (metadataObj != null) { - metadata = new HashMap<>(metadataObj); + metadata = new HashMap<>(); if (metadataObj.getAdditionalProperties() != null) { metadata.putAll(metadataObj.getAdditionalProperties()); } + if (metadataObj.getModel_JsonNullable().isPresent()) { + metadata.put("model", metadataObj.getModel()); + } } else { metadata = Map.of(); } diff --git a/braintrust-sdk/src/test/java/dev/braintrust/eval/DatasetBrainstoreImplTest.java b/braintrust-sdk/src/test/java/dev/braintrust/eval/DatasetBrainstoreImplTest.java index e8b91fb4..d07d0e72 100644 --- a/braintrust-sdk/src/test/java/dev/braintrust/eval/DatasetBrainstoreImplTest.java +++ b/braintrust-sdk/src/test/java/dev/braintrust/eval/DatasetBrainstoreImplTest.java @@ -242,6 +242,7 @@ void testMetadataPopulatedFromDatasetRow() { "input": "test input", "expected": "test output", "metadata": { + "model": "gpt-4o", "performance_strategy": "TURBO", "userId": "user123" } @@ -260,9 +261,9 @@ void testMetadataPopulatedFromDatasetRow() { assertEquals(1, cases.size()); Map metadata = cases.get(0).metadata(); - assertFalse(metadata.isEmpty(), "metadata should not be empty"); - assertEquals("TURBO", metadata.get("performance_strategy")); - assertEquals("user123", metadata.get("userId")); + assertEquals( + Map.of("model", "gpt-4o", "performance_strategy", "TURBO", "userId", "user123"), + metadata); } @Test diff --git a/btx/src/test/java/dev/braintrust/sdkspecimpl/clients/LangChain114OpenAiSpecClient.java b/btx/src/test/java/dev/braintrust/sdkspecimpl/clients/LangChain114OpenAiSpecClient.java index a6d86e36..a8a389c4 100644 --- a/btx/src/test/java/dev/braintrust/sdkspecimpl/clients/LangChain114OpenAiSpecClient.java +++ b/btx/src/test/java/dev/braintrust/sdkspecimpl/clients/LangChain114OpenAiSpecClient.java @@ -209,7 +209,7 @@ private void executeResponses(LlmSpanSpec spec, SpecClientContext ctx) throws Ex // seed it from the first request. String defaultModel = spec.requests().isEmpty() - ? "o4-mini" + ? "gpt-6-luna" : String.valueOf(spec.requests().get(0).get("model")); OpenAiResponsesChatModel model = BraintrustLangchain.wrap( diff --git a/gradle.properties b/gradle.properties index 86c4c811..a5f8aa68 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,10 +8,10 @@ org.gradle.daemon=true org.gradle.warning.mode=summary # braintrust-spec git ref (SHA or tag) used by btx tests -braintrustSpecRef=a751e325b60c1d9e84c5aaaf49f990496d2fe7da +braintrustSpecRef=c3c80aa77cc722164dc6748400853b9a5b2512be # braintrust-openapi commit SHA used by braintrust-api -braintrustOpenApiRef=8d6e24ce78d8e33cbf9ba5f35d2fbc71749306d7 +braintrustOpenApiRef=4cc0615694512d6e77fce6bff2c70d1531208daa # Let Gradle locate local JDKs and download one if needed org.gradle.java.installations.auto-detect=true diff --git a/test-harness/build.gradle b/test-harness/build.gradle index bd5df12f..18c01975 100644 --- a/test-harness/build.gradle +++ b/test-harness/build.gradle @@ -22,6 +22,10 @@ ext { } dependencies { + testImplementation 'org.wiremock:wiremock:3.13.1' + testImplementation "org.junit.jupiter:junit-jupiter:${junitVersion}" + testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + // testFixtures dependencies — everything lives in testFixtures source set testFixturesImplementation project(":braintrust-api") testFixturesImplementation project(":braintrust-sdk") @@ -48,3 +52,7 @@ dependencies { testFixturesCompileOnly 'software.amazon.awssdk:bedrockruntime:2.30.0' testFixturesCompileOnly 'software.amazon.awssdk:netty-nio-client:2.30.0' } + +test { + useJUnitPlatform() +} diff --git a/test-harness/src/test/java/dev/braintrust/VCRTest.java b/test-harness/src/test/java/dev/braintrust/VCRTest.java new file mode 100644 index 00000000..2475da32 --- /dev/null +++ b/test-harness/src/test/java/dev/braintrust/VCRTest.java @@ -0,0 +1,103 @@ +package dev.braintrust; + +import static com.github.tomakehurst.wiremock.client.WireMock.*; +import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; +import static org.junit.jupiter.api.Assertions.*; + +import com.github.tomakehurst.wiremock.WireMockServer; +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Base64; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +class VCRTest { + @TempDir Path tempDir; + + @Test + void offForwardsWithoutCreatingCassettes() throws Exception { + var upstream = new WireMockServer(wireMockConfig().dynamicPort()); + upstream.start(); + try { + upstream.stubFor( + post(urlEqualTo("/v1/chat?stream=true")) + .withHeader("Authorization", equalTo("Bearer test-token")) + .withRequestBody(equalToJson("{\"input\":\"hello\"}")) + .willReturn(aResponse().withStatus(201).withBody("live"))); + Path root = tempDir.resolve("absent"); + assertEquals("live", request(root, VCR.VcrMode.OFF, upstream.baseUrl())); + assertFalse(Files.exists(root), "OFF must not create cassette directories"); + upstream.verify(1, postRequestedFor(urlEqualTo("/v1/chat?stream=true"))); + } finally { + upstream.stop(); + } + } + + @Test + void offIgnoresCassettesWithoutChangingRecordings() throws Exception { + var upstream = new WireMockServer(wireMockConfig().dynamicPort()); + upstream.start(); + String baseUrl = upstream.baseUrl(); + try { + upstream.stubFor( + post(anyUrl()).willReturn(aResponse().withStatus(201).withBody("recorded"))); + assertEquals("recorded", request(tempDir, VCR.VcrMode.RECORD, baseUrl)); + Map recordedFiles = snapshot(tempDir); + upstream.resetMappings(); + upstream.stubFor( + post(anyUrl()).willReturn(aResponse().withStatus(201).withBody("fresh"))); + assertEquals("fresh", request(tempDir, VCR.VcrMode.OFF, baseUrl)); + assertEquals( + recordedFiles, + snapshot(tempDir), + "OFF must not change cassette bytes or paths"); + upstream.stop(); + assertEquals("recorded", request(tempDir, VCR.VcrMode.REPLAY, baseUrl)); + } finally { + upstream.stop(); + } + } + + private String request(Path root, VCR.VcrMode mode, String upstream) throws Exception { + String target = upstream + "/v1"; + var vcr = new VCR(root + "/", mode, Map.of(target, "provider"), List.of()); + try { + vcr.start(); + var request = + HttpRequest.newBuilder( + URI.create( + vcr.getUrlForTargetBase(target) + "/chat?stream=true")) + .header("Content-Type", "application/json") + .header("Authorization", "Bearer test-token") + .POST(HttpRequest.BodyPublishers.ofString("{\"input\":\"hello\"}")) + .build(); + var response = + HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString()); + assertEquals(201, response.statusCode(), response.body()); + return response.body(); + } finally { + vcr.stop(); + } + } + + private Map snapshot(Path root) throws Exception { + var result = new TreeMap(); + try (var paths = Files.walk(root)) { + for (Path path : paths.toList()) { + result.put( + root.relativize(path).toString(), + Files.isDirectory(path) + ? "directory" + : Base64.getEncoder().encodeToString(Files.readAllBytes(path))); + } + } + return result; + } +} diff --git a/test-harness/src/testFixtures/java/dev/braintrust/Bedrock30TestUtils.java b/test-harness/src/testFixtures/java/dev/braintrust/Bedrock30TestUtils.java index 077a3617..63a233d7 100644 --- a/test-harness/src/testFixtures/java/dev/braintrust/Bedrock30TestUtils.java +++ b/test-harness/src/testFixtures/java/dev/braintrust/Bedrock30TestUtils.java @@ -57,9 +57,8 @@ public BedrockRuntimeClientBuilder syncClientBuilder() { } /** - * Returns a {@link BedrockRuntimeAsyncClientBuilder} pointed at the test harness WireMock - * endpoint, with the SigV4 host-rewrite interceptor, HTTP/1.1 forced (so WireMock can - * proxy/replay the event-stream), and fake credentials in replay mode. + * Returns a {@link BedrockRuntimeAsyncClientBuilder} with the SigV4 host-rewrite interceptor + * and fake credentials in replay mode. All VCR modes use the local HTTP/1.1 proxy. */ public BedrockRuntimeAsyncClientBuilder asyncClientBuilder() { var builder = @@ -71,7 +70,6 @@ public BedrockRuntimeAsyncClientBuilder asyncClientBuilder() { .build()) .region(Region.of(BEDROCK_REGION)) .endpointOverride(URI.create(testHarness.bedrockBaseUrl(BEDROCK_REGION))) - // Force HTTP/1.1 so WireMock can proxy/replay the event-stream .httpClientBuilder( NettyNioAsyncHttpClient.builder().protocol(Protocol.HTTP1_1)); diff --git a/test-harness/src/testFixtures/java/dev/braintrust/TestHarness.java b/test-harness/src/testFixtures/java/dev/braintrust/TestHarness.java index 1e101ced..2d4c1339 100644 --- a/test-harness/src/testFixtures/java/dev/braintrust/TestHarness.java +++ b/test-harness/src/testFixtures/java/dev/braintrust/TestHarness.java @@ -292,8 +292,12 @@ public void ensureRemoteDataset(String datasetName, Dataset expectedData) var insertRequest = new InsertDatasetEventRequest(); expectedData.forEach( row -> { - var meta = new InsertProjectLogsEventMetadata(); - meta.putAll(row.metadata()); + var meta = + braintrust + .openApiClient() + .getObjectMapper() + .convertValue( + row.metadata(), InsertProjectLogsEventMetadata.class); insertRequest.addEventsItem( new InsertDatasetEvent() .input(row.input()) diff --git a/test-harness/src/testFixtures/java/dev/braintrust/VCR.java b/test-harness/src/testFixtures/java/dev/braintrust/VCR.java index 4a51190b..95f1e6ef 100644 --- a/test-harness/src/testFixtures/java/dev/braintrust/VCR.java +++ b/test-harness/src/testFixtures/java/dev/braintrust/VCR.java @@ -93,7 +93,7 @@ public VCR( textToNeverRecord); } - private VCR( + VCR( String cassettesRoot, VcrMode mode, Map targetUrlToCassettesDir, @@ -112,7 +112,9 @@ private VCR( String mappingsDir = entry.getValue(); String cassettesDir = cassettesRoot + mappingsDir; - createDirectoryStructure(cassettesDir); + if (mode != VcrMode.OFF) { + createDirectoryStructure(cassettesDir); + } WireMockServer wireMock = new WireMockServer( @@ -161,18 +163,12 @@ public synchronized void stop() { } /** - * Get the URL for the targetUrl - * - *

In REPLAY/RECORD modes: returns WireMock URL (e.g. https://api.openai.com/v1 --> - * http://localhost:1234) - * - *

In OFF mode: returns the real target URL to bypass WireMock entirely + * Get the local WireMock URL for the target. RECORD and OFF forward requests to the real + * endpoint; only RECORD saves cassettes. REPLAY serves recorded responses without network + * calls. */ public synchronized String getUrlForTargetBase(String targetUrl) { assertStarted(); - if (mode == VcrMode.OFF) { - return targetUrl; - } WireMockServer wireMock = proxyMap.get(targetUrl); if (wireMock == null) { throw new IllegalArgumentException("Unknown target URL: " + targetUrl); @@ -188,9 +184,13 @@ private void startRecording() { log.info("️VCR_MODE=replay: Using recorded stubs from cassettes/"); loadAndCreateProgrammaticStubs(); } else if (mode == VcrMode.OFF) { - targetUrlToMappingsDir - .keySet() - .forEach(url -> log.info("VCR_MODE=off: wiring clients directly to {}", url)); + proxyMap.forEach( + (url, wireMock) -> { + log.info("VCR_MODE=off: Proxying to {} without recording", url); + // Clear only in-memory stubs; resetMappings() also deletes cassette files. + wireMock.loadMappingsUsing(mappings -> mappings.reset()); + wireMock.stubFor(proxyAllTo(url)); + }); } } diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-01bea1556aa0.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-01bea1556aa0.json index 30d8b7df..a4b820eb 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-01bea1556aa0.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-01bea1556aa0.json @@ -1 +1 @@ -{"model":"claude-haiku-4-5-20251001","id":"msg_011CgfD5BmeiuFGY4eEu6nmo","type":"message","role":"assistant","content":[{"type":"text","text":"I can see there is a PDF attachment, but the document appears to be blank or contains no visible text or images on the first page. The page shows only a white background with what appears to be a small red mark in the upper left corner.\n\nTo provide you with an accurate description, I would need:\n- A document with visible content\n- Additional pages (if this is a multi-page PDF)\n- A clearer or higher-resolution version of the file\n\nCould you please verify that the correct file was attached or provide another version?"}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1592,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":116,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file +{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo2zeLnHQaRhD2euKBha","type":"message","role":"assistant","content":[{"type":"text","text":"I can see that a PDF document has been attached, but the page appears to be blank or contains only a small red dot/mark in the upper left corner. The document doesn't display any visible text, images, or meaningful content that I can describe.\n\nCould you please:\n1. Verify that the correct file was uploaded\n2. Re-upload the document if there was an issue\n3. Provide additional context about what the attachment should contain\n\nThis will help me give you an accurate description of the content."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1592,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":111,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-df826bca8f20.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-07dd5a33f9ee.json similarity index 53% rename from test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-df826bca8f20.json rename to test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-07dd5a33f9ee.json index 080e5c24..c2e086ac 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-df826bca8f20.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-07dd5a33f9ee.json @@ -1 +1 @@ -{"model":"claude-sonnet-4-5-20250929","id":"msg_011CgfB9kEQXmyFxhbtBG1Qp","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":12,"cache_creation_input_tokens":7425,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":3710,"ephemeral_1h_input_tokens":3715},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file +{"model":"claude-sonnet-4-5-20250929","id":"msg_011Cgo36dnxXYZTsX3grWfiC","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":12,"cache_creation_input_tokens":7485,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":3740,"ephemeral_1h_input_tokens":3745},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-0ffdd26b7bf0.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-0ffdd26b7bf0.json index 6836dd76..9f56cf78 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-0ffdd26b7bf0.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-0ffdd26b7bf0.json @@ -1 +1 @@ -{"model":"claude-haiku-4-5-20251001","id":"msg_011CgfD4wBYqxVB5xrS8Vzsz","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":20,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file +{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo2zK6uY6umd1JRSdLMF","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":20,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-10af9cffed94.txt b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-10af9cffed94.txt index b6ceb90e..c06b3dc9 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-10af9cffed94.txt +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-10af9cffed94.txt @@ -1,57 +1,102 @@ event: message_start -data: {"type":"message_start","message":{"model":"claude-sonnet-4-5-20250929","id":"msg_011CebEavRf1AGP5TsebLKWo","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2228,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard","inference_geo":"not_available"}} } +data: {"type":"message_start","message":{"model":"claude-sonnet-4-5-20250929","id":"msg_011Cgo39tM9Uen7vrseMq9aG","type":"message","role":"assistant","content":[],"container":null,"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":2228,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null}} event: content_block_start -data: {"type":"content_block_start","index":0,"content_block":{"type":"server_tool_use","id":"srvtoolu_016Cpd72BoaYTEFUFYNfE51g","name":"web_search","input":{}} } +data: {"type":"content_block_start","index":0,"content_block":{"type":"server_tool_use","id":"srvtoolu_01FGPtKtpLaRLTYfpQA6GReX","name":"web_search","input":{}} } event: ping data: {"type": "ping"} event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":""} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":""} } event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"{\"query"} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"{\"query"} } event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"\": \"AI news"} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"\": \"AI "} } event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":" today\"}"} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"news to"} } + +event: content_block_delta +data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"day\"}"} } event: content_block_stop -data: {"type":"content_block_stop","index":0 } +data: {"type":"content_block_stop","index":0 } event: content_block_start -data: {"type":"content_block_start","index":1,"content_block":{"type":"web_search_tool_result","tool_use_id":"srvtoolu_016Cpd72BoaYTEFUFYNfE51g","content":[{"type":"web_search_result","title":"AI News & Artificial Intelligence | TechCrunch","url":"https://techcrunch.com/category/artificial-intelligence/","encrypted_content":"EukECioIExgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDH1RKaOVf+PJ0FwO0BoM9mbme5JzhM9VvninIjC756FpnjLzQ4Ua79n8gWi32j7ceJzAlqvi1tvqqPES180txRzULATxTnrzw44pfJgq7AMMBN5Fuv/Wo7pUWzj+V0unxexuJU3T0XC6cwCknxdXbczInBAZv67ExzMKsP7dYV+WN5dbW54T0ThfW5Aiv0ZoZBwrJFeCbt/Tru0QhhYaskrf7apZuJHobFLPjJOhXH3Cg2KHA5W1Ditew7Z36RdbDUz7QtanZDLvAu+ZpqixuwV7s1bLD3pQnHSzig3DUD2mssIeRqu3nU0mqd6iURUzvSAg/8Q20XQCTKEZR4zui5BzJ8P/mwyt4Q0fsBSVXOBJTbFg5L2fq3EVwzdpfwhte5gs1bx/9cnj1lASAMJnWSS3CXJeMG+ru0Vr48rzuTsbSf0DFpPonVlhp4aAEkkgTLYIdKq0r9966LYBYy4nLTzR0eom6Td1nLENa0kN7+FichuVGsLLE7c+rcI8Yxnu1GK/w7erFxJQiJWGigRXRucYhyEy2teSfJDpmKB3LFrI46Sg+xEhk6jCK1GIVJym3V4iYIZVl1+cCl1qcQd25shoX3mqwrxW5DVqsjld3MekGhd+mkW+msqU+UwJDxEjz8IxKpX1fj9+vLLi5UXdJeQcebEBlupNwMh6RhTx+eU89+r6cClSz7VBnVZ/dTZlvyILzzOBs1s66j8zIDxUg205iWO0rgB7rZCgeugbeHvNkT7F5KBbssKHI1YYAw==","page_age":"1 day ago"},{"type":"web_search_result","title":"AI News | Latest News | Insights Powering AI-Driven Business Growth","url":"https://www.artificialintelligence-news.com/","encrypted_content":"EqYJCioIExgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDKNDkSmATXlTAI5sRBoMHBKkPoL/qFAu1+dSIjBVg9ZR2yMdrWigZvYQegnRCsp0lwVyXsD9nHNP5pUbuGMgIFkp7ahzbBUL/UAfrOcqqQiW9WtoEjf3k5BW3HBZnDWkjrFK+BRVLoZJ12BejkNlCuJdaziz/wn+tKvqDRXPQewa27Y0xmMQWCVyyFV5V3pqZq59S0PG+PSXZXpatTNOH0GDP+/KvzNEyrRmfJ4bE/l8bW8uREWlQIcPQDN/roG573NSIejUqjnKcaF3eCtTsnIdW4r8H/k4Fos0wN+fqqDJpF1nVo0phVIoeijZ3gY2wTRCCCStjR7iYTJOImamP2w2hWz8gSyhvxTaXEPAuMLQNZrk7Rr8ycChQVH3U1/uNK2oQGYWAA2i2kxADOtlduKd3/JQ+oFpuoRqHbw/p653ruQMt82tPK04o9J6wE6bIC/YhKAAaZvuctYlZwoBC5+V1KKEZnB0gPmzgeZLCL2zy68zZBktRxFSxvXzMsbC8RNUu+Q5EBJqb7xS6GtZ4dTSj4iCTDGhrtucx5sU5S7MVNQlzR3lUH9bsTYCqMoJGQBWsbYLfKLF+tUWolrBFzlvJwkSH2kme7wa5ZHnDlWOTatvijSpASnLAtT438oQDWR2MC9k8mDmbQiKWFKabMWN1XtlVhy3aHi8sh5S1gcCRtGWWEYH9vKRgvMM3pXq7WI9AwAT7D/M+iEvJj2ponUPjkMXbihhzaJEeqVArY2UpONHK9qFxlrAyANAQKq9wzF7mlCxQO0IQA/Xx7LoMPAMUTJtJEBdyRsQl0NuviucrlpY/ep+OO26w0vKAuEPvdVBKGs+Ed1/TQaOlCng2548KWm6IHgPgNBQ0PLA4R+ii/XymGGudmH7EUY7f4Xwb7DSAtUnh2qLghAyHIifDtMdQCrzk+TTP4PjT+AXCyoFKqcJyU+PMWTL81lGzrsGbBSa9CSHg6I8kgAXn8Ac9N5DEhcJAeNkSMoNQJ3TUIpbRWu2pGjPdy2c2CtWdnl5p1JxUFhYTdotD6CkHajHychmGWWHuQK+qCxQqrrClKvgU6WuvooxupeB1YybazAZOhwhuiAWlzDKvVZOvbfOwo8W3uuJcvyVzabkmLXU4BkVWPBb+A+DcochRBOcY3Ghw+FOWlJVGkPh/RkaRVg1jPNJcvxguF6ZlXPcC6J0e7PSsob8yKMoqPLmNbLx49WOg7w/tjvBnmJe6bpnChhvN9sp1R6+E8LVfsKh2edGvCh5bhAPpFsekBQQUltqimRbBKBPoQGbeAvGVSg0ZQCDAHh/xrS9+gppglKRsk7qTZskdAijLEU+UDyFnPytutVfUaNu/am+G177/pK0GeAZgOKaFwcwvRl/44rHwP2EO7LdDxmryfkJrqglIZqM7V+QHlk10TyBk81Ke22ggn1EQvy+15xrqx8InEnE7PuF7Afo6vdBXh9UMH+NyWsBT/UDJBNiLfUdGvqPwIvRSQpRjChXv+dPy8RAf2WSVKGDc2bVoDBXfPlxS8QYAw==","page_age":"3 days ago"},{"type":"web_search_result","title":"AI News: Top Stories, Ranked & Explained | AI Weekly","url":"https://aiweekly.co/","encrypted_content":"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","page_age":"5 hours ago"},{"type":"web_search_result","title":"AI News, Updates, Products and Reviews | Yahoo Tech","url":"https://tech.yahoo.com/ai/","encrypted_content":"Ev8HCioIExgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDBlQtfuhu7i7XD6SPBoM5jPhRfDci7JHEATmIjDNqkJKxzmvf/cFWZoryMxHbNDM9tSzwf26yCWv5TwHW1GhClax+MwV+KJK+rxBgM0qggclLT5VhVbhbz6Llr/ksinYf2Dj2Rj1fX6j8EGJ96YBd8UbfJaK4kRp4dcCQfXuMnTHGrS8PutxTDBR9vWrinfpdPAOeiRgs2uEsWQMxXhGsQT8NZ03k8rF6xL4nuep22Ch2yIM/VD5GGUDgIk7VserzAK2bJeFLyYRo8q42hD5d0IRqHM1XDaiUNRFPU5IvJR+3KyMD/wl1qotxfRBgIc+dyi6dnjBHxpHXp+sTE/zzxN1mk6bOoCTqA51fd6P35fz9T/g316duKDVWvDgBkI8pvQ5VN4Qh39GHJXIAl0R1dLQ4TRMG0t5Ju4FT5uJ6kOd/JCQtknELxwNXRRD1HuiAp6tU9zUDnFCqorVBsSgjNdWsqT41fHMsaEIRawBmTNZ2Ss8VRsgKG+C/v23gt4LUaDlvcxJcWMsJv3UZeZqWINjKC+BWh+NbOovx9CPkVnBZ+3YDl1fb1oPwZXTgam7tgsx/fn6Mb45qkJWWoqgfoHNaFcXjdQyAB7FGSMsvBE/WK3PA2D7ZJt8Y1Z8LhVoPAKV9qjV8trwgzuqM0pkfbfqgrRGkMKU0WxVEw+ZTSXELSwUfXnX6ipCWbjS8YjajxOF/pj9iBU8feFyc2Z9Td2rIbFBejRbDbyXuycR5DJ5La23tux1H6qzqSHS59Jb+HpaLiJPtdfFhE91/5RXzpXNpwkXzNP0zrQ/dTSHcjiqPDHzMhP7zSzhz9GdoekoJAQ5Lt8nLoqaxcnAzWK1kHSf7OWyXnNKsrM3UqSI8rmAYbFF0H+cl8ew/FfVS6+iak1WD9rD80FY1jgzERGtyLiZp4B6xfUghVLfEDygftx6tmPckyq41Z3z08ly8OMJGKgKwoMz/HuxjmuKQt03NQ0l3ZayZrLeXIE/w9GjgIWHZRGbF0zi0/cxuX5ORKnydiwEcKpiBuBtFHNNyiMS9OSRrd18IqLNrbjiXkxKXH+rr0ddKeAnRFeyT1y91C8iq2LfDlEMV/Fh2HgUbmUkbSiHr9fF3IDVywy665XtQKMxd7UspPolKeghgGy2x6eb8/P0TEgWgKyaroOZg/37RlXKLGAQ0BBCsmBYoll2LNpWHVZux1DFUdCmZdiRizo8DxEYg7rGb5kBSZH6qUQ7Hdok1VmGbtmkvB34jZb26S6PxJSsXbgPJpvcwfIKVLIsaIGJoyNqugSeWeh+oEp6/4y7GAM=","page_age":"6 hours ago"},{"type":"web_search_result","title":"The Latest AI News, Insights and Reports | AI Magazine","url":"https://aimagazine.com/","encrypted_content":"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","page_age":"1 day ago"},{"type":"web_search_result","title":"AIDB Today","url":"https://aidb.substack.com","encrypted_content":"EucCCioIExgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDKvTE8gr4JBRHp3zQRoMKlFcpKBdc+JpFPxwIjDRwjJ6WDAFp/ueVr+wDoSyiQseE6wmxFFYiw1C9u5XqyrGtXaUsqSPRZ1TIlrXf7Mq6gGf0f8QI0ju7k1+1NoTW3QBEXI3Z2IM1/adUgbzmWJQRgncBCngZxX26CRlJSDtXdEuIrEk/d79YwDALVSlcFZp0TWCDNGK9HACIjhnWu4HbrQv/ztsJjJL6TzQ64gvXsWAB+KsVcHQoOOA5+C6C/rheNlIOBx4h3m0rOF8Dwcf5C6dbD6hUh6d93OvW3SMsND6dUw5Eq4DF+pLxh7BiLNqv+Xww25m+fiRTgIwNyqJwQH6SIOPTfgrzOn4hmF3Ima3MtnSvtZoME32tRTIkUauujXiub/yCY1UrsQ4dKGJns8aZG9Vj/2x8uwYAw==","page_age":null},{"type":"web_search_result","title":"artificial intelligence newsletter","url":"https://www.foxnews.com/category/columns/artificial-intelligence-newsletter?page=13","encrypted_content":"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","page_age":null},{"type":"web_search_result","title":"artificial intelligence newsletter","url":"https://www.foxnews.com/category/columns/artificial-intelligence-newsletter?page=9","encrypted_content":"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","page_age":null}],"caller":{"type":"direct"}}} +data: {"type":"content_block_start","index":1,"content_block":{"type":"web_search_tool_result","tool_use_id":"srvtoolu_01FGPtKtpLaRLTYfpQA6GReX","content":[{"type":"web_search_result","title":"AI News Today, November 7: Top Stories","url":"https://aiweekly.co/ai-news-today","encrypted_content":"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","page_age":"0 days ago"},{"type":"web_search_result","title":"AI News: Artificial Intelligence Stories, Ranked","url":"https://aiweekly.co/","encrypted_content":"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","page_age":"0 days ago"},{"type":"web_search_result","title":"AI News & Artificial Intelligence","url":"https://techcrunch.com/category/artificial-intelligence/","encrypted_content":"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","page_age":"0 days ago"},{"type":"web_search_result","title":"Artificial intelligence news: Chat AI, ChatGPT, AI generator, AI Chatbot and Bard","url":"https://www.nbcnews.com/artificial-intelligence","encrypted_content":"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","page_age":"2 days ago"},{"type":"web_search_result","title":"AI - Bloomberg","url":"https://www.bloomberg.com/ai","encrypted_content":"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","page_age":"2 days ago"},{"type":"web_search_result","title":"AI - Artificial Intelligence","url":"https://www.cnbc.com/ai-artificial-intelligence/","encrypted_content":"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","page_age":"0 days ago"},{"type":"web_search_result","title":"AI stocks hammered by midterm shock as data center buildout becomes a 'war of attrition'","url":"https://cnbc.com/2026/11/06/ai-data-center-midterms-selloff.html","encrypted_content":"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","page_age":"0 days ago"},{"type":"web_search_result","title":"Sitemap - 2024 - AI Tactical Toolbox","url":"https://avihacker.substack.com/sitemap/2024","encrypted_content":"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","page_age":null},{"type":"web_search_result","title":"AIDB Today","url":"https://aidb.substack.com","encrypted_content":"EucCCioIFRgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDFcQnBuc/H8afHVvNRoMx6G94lTVD6/AhQZBIjBp/TuE7rk3i+NJpSr0g33RsQUNlfJQVs18aL15gU71mtOymPlOBf9bypDnhbjDZmkq6gHNQxEEK1RNki5N5Q5ZGltEOfCjHsEL75CjlHzDba5/mI/y6pJJEqWShsruiz+KQ+qOE4QMcUGwMcdqDyQbLMNy4o1L6O1SOVZtYjKTVmNPsEhDKmm+mertBxdlZS5LnqoN2vfGrg5yZp5tMHvkQm8jb6pkRX8bKBX9/o0Gu8uFuLsZ/w76aBqj9S8VqAnrAW8Z53kc2AFye1xCs0H8JLYDdJMYi494MhFaSrh4kSMh9o9OnHpe9Qp3uTIEzGpNeb5t9nplOmAnkOotl7ejG2Dq0mbXw0qvWLsAn3CHifm/8x15vxJGJeOdAUkYAw==","page_age":null}],"caller":{"type":"direct"}} } event: content_block_stop data: {"type":"content_block_stop","index":1 } event: content_block_start -data: {"type":"content_block_start","index":2,"content_block":{"citations":[],"type":"text","text":""} } +data: {"type":"content_block_start","index":2,"content_block":{"citations":[],"type":"text","text":""} } + +event: content_block_delta +data: {"type":"content_block_delta","index":2,"delta":{"type":"citations_delta","citation":{"type":"web_search_result_location","cited_text":"# AI stocks hammered by midterm shock as data center buildout becomes a 'war of attrition'\n- AI and semiconductor stocks sold off sharply Thursday as ...","url":"https://cnbc.com/2026/11/06/ai-data-center-midterms-selloff.html","title":"AI stocks hammered by midterm shock as data center buildout becomes a 'war of attrition'","encrypted_index":"Eo8BCioIFRgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDC4GHKggXQuRJSNoshoMddEg2svONAxXGGpgIjCvUG/pk0u2s03GJnuNLrzRSfoC4c/fCoNTTlDgUuX9CcQGzU4CK32MwM6jowzfFoIqE/kkNY7AhSG/SKxWvxLgUNlD3BYYBA=="}} } + +event: content_block_delta +data: {"type":"content_block_delta","index":2,"delta":{"type":"text_delta","text":"AI"} } + +event: content_block_delta +data: {"type":"content_block_delta","index":2,"delta":{"type":"text_delta","text":" and"} } + +event: content_block_delta +data: {"type":"content_block_delta","index":2,"delta":{"type":"text_delta","text":" semiconductor"} } + +event: content_block_delta +data: {"type":"content_block_delta","index":2,"delta":{"type":"text_delta","text":" stocks"} } + +event: content_block_delta +data: {"type":"content_block_delta","index":2,"delta":{"type":"text_delta","text":" sold"} } + +event: content_block_delta +data: {"type":"content_block_delta","index":2,"delta":{"type":"text_delta","text":" off shar"} } + +event: content_block_delta +data: {"type":"content_block_delta","index":2,"delta":{"type":"text_delta","text":"ply Thursday"} } + +event: content_block_delta +data: {"type":"content_block_delta","index":2,"delta":{"type":"text_delta","text":" as"} } + +event: content_block_delta +data: {"type":"content_block_delta","index":2,"delta":{"type":"text_delta","text":" investors"} } + +event: content_block_delta +data: {"type":"content_block_delta","index":2,"delta":{"type":"text_delta","text":" reass"} } + +event: content_block_delta +data: {"type":"content_block_delta","index":2,"delta":{"type":"text_delta","text":"essed the data"} } + +event: content_block_delta +data: {"type":"content_block_delta","index":2,"delta":{"type":"text_delta","text":" center build"} } + +event: content_block_delta +data: {"type":"content_block_delta","index":2,"delta":{"type":"text_delta","text":"-out after"} } event: content_block_delta -data: {"type":"content_block_delta","index":2,"delta":{"type":"citations_delta","citation":{"type":"web_search_result_location","cited_text":"Meta is updating its AI glasses to stop recording if someone covers the capture LED and cracking down on covert filming and harassment. ","url":"https://tech.yahoo.com/ai/","title":"AI News, Updates, Products and Reviews | Yahoo Tech","encrypted_index":"Eo8BCioIExgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDALVF0zgk8gjvhMuvRoMGxMTC5u169A4mPKTIjBIlDDzQr06Zw2yXMZyxhuwWhiznox5aV90Mmb2hJ+HONIrwrh0aN09Y+09SMxYYl4qE4RQj7sADVddoqSCEiCHrqg8ZR8YBA=="}} } +data: {"type":"content_block_delta","index":2,"delta":{"type":"text_delta","text":" Democrats"} } event: content_block_delta -data: {"type":"content_block_delta","index":2,"delta":{"type":"text_delta","text":"Meta is updating its AI"} } +data: {"type":"content_block_delta","index":2,"delta":{"type":"text_delta","text":" won"}} event: content_block_delta -data: {"type":"content_block_delta","index":2,"delta":{"type":"text_delta","text":" glasses to stop recording if someone covers the"} } +data: {"type":"content_block_delta","index":2,"delta":{"type":"text_delta","text":" control"} } event: content_block_delta -data: {"type":"content_block_delta","index":2,"delta":{"type":"text_delta","text":" capture LED and cracking down on co"} } +data: {"type":"content_block_delta","index":2,"delta":{"type":"text_delta","text":" of Congress"} } event: content_block_delta -data: {"type":"content_block_delta","index":2,"delta":{"type":"text_delta","text":"vert filming and harassment."} } +data: {"type":"content_block_delta","index":2,"delta":{"type":"text_delta","text":"."} } event: content_block_stop -data: {"type":"content_block_stop","index":2 } +data: {"type":"content_block_stop","index":2 } event: message_delta -data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null},"usage":{"input_tokens":8644,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":100,"server_tool_use":{"web_search_requests":1,"web_fetch_requests":0}} } +data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"container":null},"usage":{"input_tokens":9606,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":100,"server_tool_use":{"web_search_requests":1,"web_fetch_requests":0}} } event: message_stop -data: {"type":"message_stop" } +data: {"type":"message_stop" } diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-11997f5f60ca.txt b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-11997f5f60ca.txt index f2642b90..c1b8e618 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-11997f5f60ca.txt +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-11997f5f60ca.txt @@ -1,24 +1,24 @@ event: message_start -data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011CebEbqupdT9KNq3MaacMZ","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":6,"service_tier":"standard","inference_geo":"not_available"}} } +data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo37vowAi5b9LUevUbtv","type":"message","role":"assistant","content":[],"container":null,"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":6,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} } event: content_block_start -data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } +data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } event: ping data: {"type": "ping"} event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"The capital of France is **"}} +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"The capital of France is Paris"} } event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Paris**. It is located in the north-central part of the country along the Seine River and is the largest city in France."} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"."} } event: content_block_stop -data: {"type":"content_block_stop","index":0 } +data: {"type":"content_block_stop","index":0 } event: message_delta -data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null},"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":36} } +data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"container":null},"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":10} } event: message_stop -data: {"type":"message_stop" } +data: {"type":"message_stop" } diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-15f332ab5a6f.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-15f332ab5a6f.json new file mode 100644 index 00000000..cc9a94d5 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-15f332ab5a6f.json @@ -0,0 +1 @@ +{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo2znBpuJnc2fPrkueBB","type":"message","role":"assistant","content":[{"type":"text","text":"I can see that a PDF document has been attached, but the page appears to be blank or contains no visible text or images that I can describe. \n\nCould you please:\n1. Verify that the correct file was uploaded\n2. Check if the document loaded properly\n3. Re-upload the attachment if needed\n\nOnce a document with visible content is provided, I'll be happy to give you a brief description of it."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1592,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":92,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-17ceeb7fc9f7.txt b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-17ceeb7fc9f7.txt index ad472c0f..f21181c0 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-17ceeb7fc9f7.txt +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-17ceeb7fc9f7.txt @@ -1,60 +1,24 @@ event: message_start -data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011CgfB9FvK9JCdh5fe3wFyW","type":"message","role":"assistant","content":[],"container":null,"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":4,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} } +data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo3Bd1UBBYcbr8hY9Nr6","type":"message","role":"assistant","content":[],"container":null,"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":6,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} } event: content_block_start -data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } +data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } event: ping data: {"type": "ping"} event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"The capital of France"} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"The capital of France is Paris"} } event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" is **"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Paris**"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":". It"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" is"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" located in the north"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"-central part of"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" the"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" country along"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" the Seine River and"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" is the"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" country"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"'s largest city and"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" cultural center."} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"."} } event: content_block_stop -data: {"type":"content_block_stop","index":0 } +data: {"type":"content_block_stop","index":0 } event: message_delta -data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"container":null},"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":39} } +data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"container":null},"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":10} } event: message_stop -data: {"type":"message_stop" } +data: {"type":"message_stop" } diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-2043d4c3771e.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-2043d4c3771e.json index 1f2a9079..c0e7783b 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-2043d4c3771e.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-2043d4c3771e.json @@ -1 +1 @@ -{"model":"claude-haiku-4-5-20251001","id":"msg_011CebF1oLTyWa1Bu6fb8Mkc","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is **Paris**. It is located in the north-central part of the country along the Seine River and is the largest city in France. Paris is known for its iconic landmarks, including the Eiffel Tower, Notre"}],"stop_reason":"max_tokens","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":21,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":50,"service_tier":"standard","inference_geo":"not_available"}} \ No newline at end of file +{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo3RWvVrB7BdvngKDqn7","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is **Paris**. It is located in the north-central part of the country along the Seine River and is the largest city in France. Paris is known for its iconic landmarks such as the Eiffel Tower, Notre"}],"container":null,"stop_reason":"max_tokens","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":21,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":50,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-24749b216947.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-24749b216947.json index 9c6e87bf..ae380da2 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-24749b216947.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-24749b216947.json @@ -1 +1 @@ -{"model":"claude-haiku-4-5-20251001","id":"msg_011CebEct1Makpk5PMyfC2m9","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is **Paris**. It is located in the north-central part of the country along the Seine River and is the largest city in France."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":36,"service_tier":"standard","inference_geo":"not_available"}} \ No newline at end of file +{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo395kES7cjC8hTJtHzS","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-285f53811fc5.txt b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-285f53811fc5.txt index a8390926..ae4c827f 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-285f53811fc5.txt +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-285f53811fc5.txt @@ -1,29 +1,23 @@ event: message_start -data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011CebEc8EbWzc9RpAZmDs2L","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":6,"service_tier":"standard","inference_geo":"not_available"}} } +data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo38geB534euxKXVi7hG","type":"message","role":"assistant","content":[],"container":null,"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":6,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} } event: content_block_start -data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } +data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } event: ping data: {"type": "ping"} event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"The capital of France is **"} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"The capital of France is Paris"} } event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Paris**. It"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" is"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" located in the north-central part of the country along the Seine River and is the largest city in France."} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"."} } event: content_block_stop -data: {"type":"content_block_stop","index":0 } +data: {"type":"content_block_stop","index":0 } event: message_delta -data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null},"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":36} } +data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"container":null},"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":10} } event: message_stop data: {"type":"message_stop" } diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-2a3a77f2c9ae.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-2a3a77f2c9ae.json new file mode 100644 index 00000000..3fc4c2ae --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-2a3a77f2c9ae.json @@ -0,0 +1 @@ +{"model":"claude-sonnet-4-6","id":"msg_011Cgo2z3FAgJa5MrwiazNev","type":"message","role":"assistant","content":[{"type":"text","text":"Paris (Paris) — though the local name is identical, so simply: Paris is the capital of France."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":12,"cache_creation_input_tokens":1369,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":1369,"ephemeral_1h_input_tokens":0},"output_tokens":25,"service_tier":"standard","inference_geo":"global","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-2b41abc139db.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-2b41abc139db.json new file mode 100644 index 00000000..5d6e7cbf --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-2b41abc139db.json @@ -0,0 +1 @@ +{"model":"claude-sonnet-4-6","id":"msg_011Cgo31CBhooaJ2k8rJbyHZ","type":"message","role":"assistant","content":[{"type":"server_tool_use","id":"srvtoolu_01AGMuHDXXUQ8odfjGNPBmwA","name":"web_search","input":{"query":"AI news today November 2026"}},{"type":"web_search_tool_result","tool_use_id":"srvtoolu_01AGMuHDXXUQ8odfjGNPBmwA","content":[{"type":"web_search_result","title":"AI News for November 6, 2026 — Daily Edition","url":"https://aiweekly.co/ai-news-today/edition/2026-11-06","encrypted_content":"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","page_age":"0 days ago"},{"type":"web_search_result","title":"AI News for November 5, 2026 — Daily Edition","url":"https://aiweekly.co/ai-news-today/edition/2026-11-05","encrypted_content":"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","page_age":"1 days ago"},{"type":"web_search_result","title":"AI News for November 6, 2026 - by Russ McGuire","url":"https://aisdg.substack.com/p/ai-news-for-november-6-2026","encrypted_content":"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","page_age":"0 days ago"},{"type":"web_search_result","title":"AI News Today, November 7: Top Stories","url":"https://aiweekly.co/ai-news-today","encrypted_content":"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","page_age":"0 days ago"},{"type":"web_search_result","title":"AI News","url":"https://www.artificialintelligence-news.com/","encrypted_content":"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","page_age":"4 days ago"},{"type":"web_search_result","title":"2022 in artificial intelligence","url":"https://en.wikipedia.org/wiki/2022_in_artificial_intelligence","encrypted_content":"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","page_age":null},{"type":"web_search_result","title":"AI Seoul Summit 2024","url":"https://en.wikipedia.org/wiki/AI_Seoul_Summit_2024","encrypted_content":"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","page_age":null},{"type":"web_search_result","title":"Xinhua%E2%80%93Sogou AI news anchor","url":"https://en.wikipedia.org/wiki/Xinhua%E2%80%93Sogou_AI_news_anchor","encrypted_content":"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","page_age":null},{"type":"web_search_result","title":"AI News Today (Nov 5, 2026): Data Centers, Google Schools & More","url":"https://killtheai.com/news/top-10-ai-news-today-november-5-2026/","encrypted_content":"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","page_age":"2 days ago"}],"caller":{"type":"direct"}},{"citations":[{"type":"web_search_result_location","cited_text":"# AI news for Friday, November 6, 2026\nNov 6 · Businessinsider · AI Business\n\nThinking Machines Lab Raising $5B Led by Accel at $40B Pre-Money, Tripli...","url":"https://aiweekly.co/ai-news-today/edition/2026-11-06","title":"AI News for November 6, 2026 — Daily Edition","encrypted_index":"Eo8BCioIFRgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDBOGqenDEfcSLs9lvhoMktzM0mg5kMCM0jC5IjBgArjGLiZtXd+hf8FDvqJoxfMgD+QZzRQHjQPcf4pM+PnkAps4DdlN3E8+dM0ya9sqE/41koVZbEY1aRJlt/yxP5jquewYBA=="}],"type":"text","text":"Mira Murati's Thinking Machines Lab is raising a **$5 billion** funding round led by Accel at a **$40 billion pre-money valuation** — more than tripling its valuation from last year."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":11091,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":132,"service_tier":"standard","inference_geo":"global","speed":"standard","server_tool_use":{"web_search_requests":1,"web_fetch_requests":0}},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-2ee9b8be984d.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-2ee9b8be984d.json index 65dc4c7d..5037b06c 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-2ee9b8be984d.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-2ee9b8be984d.json @@ -1 +1 @@ -{"model":"claude-haiku-4-5-20251001","id":"msg_011CgfB8hE3CtxacoVoRbB79","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris. It is the largest city in France and has been the capital since the 12th century. Paris is located in the north-central part of the country along the Seine River and is known for its historical landmarks,"}],"container":null,"stop_reason":"max_tokens","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":50,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file +{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo3B48JXshTJKjSp7NEN","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-30d678393fe5.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-30d678393fe5.json deleted file mode 100644 index 2ae9563b..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-30d678393fe5.json +++ /dev/null @@ -1 +0,0 @@ -{"model":"claude-sonnet-4-5-20250929","id":"msg_011CgfD4kfJ9qkiDqa7exutR","type":"message","role":"assistant","content":[{"type":"text","text":"Paris."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":12,"cache_creation_input_tokens":1367,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":1367,"ephemeral_1h_input_tokens":0},"output_tokens":5,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-39de4328f786.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-39de4328f786.json index efb21a44..15c50321 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-39de4328f786.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-39de4328f786.json @@ -1 +1 @@ -{"model":"claude-haiku-4-5-20251001","id":"msg_011CgfB9XipzSchmMx7zAavD","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris. It's located in the north-central part of the country along the Seine River and is the largest city in France. Paris is known for its iconic landmarks like the Eiffel Tower, Notre-Dame Cathedral"}],"container":null,"stop_reason":"max_tokens","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":50,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file +{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo3C2a4hCe3otnMRLEyA","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is **Paris**."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":11,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-3edad2888bf5.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-3edad2888bf5.json deleted file mode 100644 index 884c07a3..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-3edad2888bf5.json +++ /dev/null @@ -1 +0,0 @@ -{"model":"claude-sonnet-4-5-20250929","id":"msg_011CgfD4yGpZLzJnE3K6ib1b","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is **Paris**."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":12,"cache_creation_input_tokens":1992,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1992},"output_tokens":11,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-476c4a4ce15b.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-476c4a4ce15b.json index fa85ba1b..ead1f255 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-476c4a4ce15b.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-476c4a4ce15b.json @@ -1 +1 @@ -{"model":"claude-haiku-4-5-20251001","id":"msg_011CebEbY33NM1mDdzYbtN5i","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is **Paris**. It is located in the north-central part of the country along the Seine River and is the largest city in France."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":36,"service_tier":"standard","inference_geo":"not_available"}} \ No newline at end of file +{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo37h7uoJekhrzZjr4SP","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-4e20f3b6ee97.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-4e20f3b6ee97.json deleted file mode 100644 index 76016ecb..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-4e20f3b6ee97.json +++ /dev/null @@ -1 +0,0 @@ -{"model":"claude-sonnet-4-5-20250929","id":"msg_011CgfD4zRX4zwXy1P11ZCjc","type":"message","role":"assistant","content":[{"type":"server_tool_use","id":"srvtoolu_01682YgFPu9CECReTiWVQtnz","name":"web_search","input":{"query":"AI news today"}},{"type":"web_search_tool_result","tool_use_id":"srvtoolu_01682YgFPu9CECReTiWVQtnz","content":[{"type":"web_search_result","title":"AI News Today, November 2: Top Stories","url":"https://aiweekly.co/ai-news-today","encrypted_content":"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","page_age":"0 days ago"},{"type":"web_search_result","title":"AI News: Artificial Intelligence Stories, Ranked","url":"https://aiweekly.co/","encrypted_content":"Et0NCioIFRgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDKwwnVIh0g1KBlHyERoMfvzC7i5yw885WbmlIjAn4Qrs5CRBzENCnwJnNuRDzoOcm7bZ9M47v5WNyYycM7e2OE09FPZRQJZDDjYPkR4q4AwhV55140JY/Hrw+YUmG3EMvQVa9T/w1er1IvzpEtCgv4ejrmjaJhdNtkSpFxfUh/Ycu3COI1/vyqLAVo/OxGorVbT1mCLvm1MhQ6+4qzkc+Rlhdz+GrVa6dozlNdB8KNK2bEcUbKT7OY1BWbjJKczWfronpXDcMzAZ4+IxYxhEaRAt+15AGe3102Mvhm2b8Lvx5wfyVzBmra5BZtL38lw9V7n89aZHPGUSowXMNtxaCrKIR9xoEl8cYnthnnxCvL67s7zNea/oai68TSdnI3in+6D+4/GmQClW0piwCdq4ypodzcTp1fW/XgiAVw6BT0EebKK7OG54zg/YrVsxXSe5bkM+L4wJaZ8yRlP7XNzA8Oa2E0/W0S2xaSktfe6gd/CBsvzkxRlh+5rjsf6LKngLFANiIdb1FKPSiD8u//g9bizBxCs7t6SpZpHUculmJ1aCu6pRX5AEpgClWgBkSD2g1jF8K6JcnyI/U/4iDGGpolf160e3i9ZlvCZXRUQyoa7QU6sG0Io1KgoBHA+nPGaU5hTMxHhlJGulBoKNnemYBUUeilxgJyeTYeoc3SW+wHBUKtlLHD+b0iYO3AjtWaMo96RTwQdEv4gau0vN4js9HI/OUhowwLhtzNP7hrhz+54FiFSZ1Sul6deLPYEzIbwcPkpgj5uxtHYST1SoCC688WC0muSrMMPvQ0ZG3UnhMWg6DyWrIlw3eQbcYZW5fRHhb5UfCzxv8+SCwEYXT5ey1wUEi5bIRg6m7pT2l/lzuxfc4qzdVvdGSOoLb2oro7KPnT2Xzhj1OW/tQXi+ywIWLWiNPcGnTN072DSx90zVGuARkvexNKr5MMP5I6Oi+k9T44EZwxPdOS/39X2Ebf/Qy1+6dHi41TR/WGQvhXO+CsII6Ed3+4RCwmnah4B7ZqBVryS1C9yjSp8eOXwRFEk6ECwruyt+lXVZy8zceexIL+hsVrTJWM6mNp+Iiftx+3VyXMt+uRiB/MYP/2hzH1VS0zWBtog8db5tLr1Kxs2j8mwEmDmdKOyFwb8GSQWz50EO+mSLzRB+jWtxJHXIX/di1ZZHIOhVstml7WeWqAiogI0pSlltBoJ1jjaafkiUImdPzPvQ8KJmPNH+ZkngGgNmE3jF7WM7afNRqfDUx5OAR5vaINdtboYy+bpJK+VykrPSyB1gN8l7BdHcdOFIZwWjKXvB3Y5yP6u+RMCk0go/5VqbgnwmaNGzHSx9gOs7KShcai5nBuJCd7dcgdfhBjcs/fREmNMqzVuU9OZ+eT3SssxDSwTV4WeOSLCrROr7RgXZEshQo0247AamsPvrVAUQn+adRZ1V9//whwZch/FTRotT8cPdUAo+UIOjic4Xj+zFoqiBZVsNrd4rs8pACNdhVClP3kiW+ixju2LNn002kjR1pJ65KVqxlF+v9gKKntPJ0v4jDg3TQSrTc3j7TnN3UeX6HS0LXmn/Lq1CYaJVculY3CoKtdvP6VjDPpg+XbktcAB+XujYaye23Bj7riR2/MOMbpyz4xyh+TSbP+/T++4CdmLK5qK+DCTFoSbazs/ivqOSUJwADP3xOSIy47ivgJDui2hbeGJJpcGLr4BWBZl2A/4K4fGUGl5ds5mbqG2uTeBFs90ETKgq+FcMMnY1jTxQ5DwMdvTIyU3oG8v0HuUpXxe6IOAD5LQaqesCqohs/PhWPR6gTCB21ZehZAX2njUjHzSpSjg8JhU8a7VXMxPHETowVQXVWwfDLbpXVfCXRf32sj/idGd1FdzjX3l2mUh7sUbL77Q6L+GMvKA/tPioAPnqtBYD64F/2Z8jKma8ff7AbUd9i4aikDJgNisbsX911ozh53n/R5aflAr3TdERMhK0EV9HMfhS7gp8Hcb+pO2FblyX2pwWEmVturmjeSFSJsr29l3/DqPtkgcViv8aUQA4ZpnHYu/rOCAoGpR9GG+L4Ee0E6CttQZGtZHiDY6kwbzaGw/FZyDaR6Q45IUG0cDmo9ffw/B6pCOktK2863oQnY7NTWU4OjwO/dmxIAr1ryfuXbqN63vnnu8eMvPmuArnCmMkR1nXJ0eVpnhJX+RflYGF2CIdLtpsbt6CiN6lCl5bs2tHL840m6w2zM375RkWy4W+E0tpPDWr5TgTxECBoFfDlW1YRjrxOavNvLg/pbUVrRZnsQ+3EwwEFOkYAw==","page_age":"0 days ago"},{"type":"web_search_result","title":"AI News, Updates, Products and Reviews","url":"https://tech.yahoo.com/ai/","encrypted_content":"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","page_age":"0 days ago"},{"type":"web_search_result","title":"AI News & Artificial Intelligence","url":"https://techcrunch.com/category/artificial-intelligence/","encrypted_content":"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","page_age":"0 days ago"},{"type":"web_search_result","title":"Artificial intelligence news: Chat AI, ChatGPT, AI generator, AI Chatbot and Bard","url":"https://www.nbcnews.com/artificial-intelligence","encrypted_content":"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","page_age":"4 days ago"},{"type":"web_search_result","title":"AI - Bloomberg","url":"https://www.bloomberg.com/ai","encrypted_content":"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","page_age":"0 days ago"},{"type":"web_search_result","title":"Latest AI News, Tools & Industry Insights","url":"https://www.timesofai.com/","encrypted_content":"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","page_age":"34 days ago"},{"type":"web_search_result","title":"AI - Artificial Intelligence","url":"https://www.cnbc.com/ai-artificial-intelligence/","encrypted_content":"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","page_age":"0 days ago"},{"type":"web_search_result","title":"Sitemap - 2024 - AI Tactical Toolbox","url":"https://avihacker.substack.com/sitemap/2024","encrypted_content":"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","page_age":null}],"caller":{"type":"direct"}},{"citations":[{"type":"web_search_result_location","cited_text":"# AI\nRoundhill’s Drew Pettit: Growth expectations remain near a 10-year high\n\nRoundhill’s Drew Pettit: Growth expectations remain near a 10-year high\n...","url":"https://www.cnbc.com/ai-artificial-intelligence/","title":"AI - Artificial Intelligence","encrypted_index":"Eo8BCioIFRgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDBpQ1YAObRzN/wH+bhoM3Fxishfrb2P5O2YLIjDbCxQLb+Rlk+htDb1JHC0avMdnXv/wzWsfZCyj95dp3AbWwLzvtEMen2D0OclHdBsqExlT504HxbdLcBpDMK83wGAqenoYBA=="}],"type":"text","text":"Anthropic recently reported $17 billion in Q3 revenue and purchase commitments of $895 billion in a new S-1 filing."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":10120,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":106,"service_tier":"standard","inference_geo":"not_available","speed":"standard","server_tool_use":{"web_search_requests":1,"web_fetch_requests":0}},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-4f8ffb03d5da.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-4f8ffb03d5da.json deleted file mode 100644 index ad911327..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-4f8ffb03d5da.json +++ /dev/null @@ -1 +0,0 @@ -{"model":"claude-sonnet-4-5-20250929","id":"msg_011CgfD4iCT42Dno98jbNsrK","type":"message","role":"assistant","content":[{"type":"server_tool_use","id":"srvtoolu_01Vsvt7bPN172jT3ky9uWWMx","name":"web_search","input":{"query":"AI news today"}},{"type":"web_search_tool_result","tool_use_id":"srvtoolu_01Vsvt7bPN172jT3ky9uWWMx","content":[{"type":"web_search_result","title":"AI News Today, November 2: Top Stories","url":"https://aiweekly.co/ai-news-today","encrypted_content":"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","page_age":"0 days ago"},{"type":"web_search_result","title":"AI News: Artificial Intelligence Stories, Ranked","url":"https://aiweekly.co/","encrypted_content":"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","page_age":"0 days ago"},{"type":"web_search_result","title":"AI News, Updates, Products and Reviews","url":"https://tech.yahoo.com/ai/","encrypted_content":"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","page_age":"0 days ago"},{"type":"web_search_result","title":"AI News & Artificial Intelligence","url":"https://techcrunch.com/category/artificial-intelligence/","encrypted_content":"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","page_age":"0 days ago"},{"type":"web_search_result","title":"Artificial intelligence news: Chat AI, ChatGPT, AI generator, AI Chatbot and Bard","url":"https://www.nbcnews.com/artificial-intelligence","encrypted_content":"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","page_age":"4 days ago"},{"type":"web_search_result","title":"Latest AI News, Tools & Industry Insights","url":"https://www.timesofai.com/","encrypted_content":"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","page_age":"34 days ago"},{"type":"web_search_result","title":"AI - Artificial Intelligence","url":"https://www.cnbc.com/ai-artificial-intelligence/","encrypted_content":"EuENCioIFRgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDDoY7cv5EG253sel+hoMJkuH4/nIDovHdY8tIjDBkIMhbKl/EOsvGHgwSDBW5zE+kVulAmAHQtMcD2wV/I3J+u7DVG0jX2eNkwLiVx8q5AyCpQYJrORhA4Y5RUibGF88aeM1NCmfbqPL8ab+vrQOdF31NcRkX+rFVZLOMNjpHg+rp1XbfXSfeuqd5eHO/DsUTPL2e1y2WHXuuWKzJKqMFOioKGSayIYySV8DqVaTrnKU3AqJhlv4mFqzSyoYeyA1gV28ZypY56Tvo+ajN4tt5NsHEpkoyd5UiKdV7phzmJdfGGU4BOaj0ADPK/q2uqILMDykYtVD93sQVQF07Iysok1jwB8DnevRysaj2p6AICvWigk7PUgvC6jjZRYyZ0A1FPY5C09N7vocvQuQq1XXgIkutVfIy3LycZhbkMMr9mhqZZeOxHfUWdIgtN5pzP9atCL4/pTZ9oW8f/AoWn8XTTDMIAC9Aph7YL3bgX0CU7T5Gw+Vdnpg5wn+QQLA0qUWa2YWPdmj/NImleCAhaEG6a5suEd5MWfXR5z/sFgO1aku2uD7FNfkaVEFkuOSRPDa1nvNa+y0jhf5jfRc3IuYVaF2xSHhSv1XTJjjOJ4SyQlgqz6BaC3A9YB+qoid9Ji9kG1QRqFp1IY0KEQ3pQh/GxVWDBIFjdipRtAfem72E0v0wIsLqzJfyvdWpqaHEO1fcNMMto1CVpclFahO8BrCTt7EAJMPGC5VvsR+5EEMWL1ceoFFLgGUQZ2zPmxeP21QZueI2jWokGVmztZN1jdSBSWrFk/TZxkXnGnVFOV76pfCZnfKPhoVRKOgCmifMR6cYMGG44od7pDAM2qXk5Ccx4+Cwm+FbggAzV/3J4/YmiIefJWXcRiZ111bBZlM4dgY4DjRI1Qm3EZJi5qU6jkq9yLJfcl8r1M9cFTVp+rh8DC8+aZ/G5DCmCGGPZAWnYUpMN5lL4Q3xs7WkX357MNaRJuetZHz/zP5StXAFG3nJ8jUPcwmZi0ABmz1+EC5r4TrcHFrjpdV5RcZgQfjx/yTIfBovd5uCSGTnpX2YeCDHa9GAuoONLiINxsqRYVJ5rksmRt/Vot4j1cC33D5oPPvEtPZCex6MFxp9uQGCAEwx9uTY3a/Y+kid8hk8/VF7jNjSMyxWL4ZufSYcYG1k9cmFdFKHb/+6On8g6sAyGBWvbSMDwwiTggxPh/v6DgBhMBEBUMH1E1HhSYZJ151SEXDdsN2asZZUELifnl9TmKaVtd+brPb6hDiDSF0W2VkhWLndR3iaSzGHabh3K/ceuYp2BoCbFzRbC+HxljMI3IfTZsxhc95PdW8f8s/alEWTQJUXAAdY9EtxZucFe7LlP7WqzO4g+0cdPRbdrTnYHcLJB+j/NlYEzqqDii78Azv1AayyZyCzmTtwapgwMAIK/9KDUISbMKeoUTgiCJVV4Go9a9RDIw5jsDqZ8kVMs9iWVdBQpY5YXUnh424FMMs0kV6HJwa5rlgi1bZB/Tn5ahk9iV8MCZKUJ6AQ6NeJp+VYs/Tw5PerJxcDNZ7m9ANlo3ND94gzmtaqfOyq+uKV8bGa9sGCXWQTl0IzyYkyck1ILjEpxX/PR4FcDOhiiIH/wj303Cr1rjJ0qyi6+XjToS/+XRNBXNyZy/0DGbhefg81iIHXw3cfFFug1XSbNzUHfiiEwct2KYkYCiGi8osFn6HKqIEzv5MUU8lBH4Oxe1iZL6ufXXAchTo4/MkcLLWfdmGLyIchFk6pIlTkRU5mjUclumdcEA/CJUgB5dDeHUvuL8MRKSoTTEiO/8fsL2UtJC6zXlIS3KBeWNDEtdeeKOm3bhaj+WVsRr0pIf9zdeQvi31Y3O0NoBIoh6h1pwPbzDCwV2MYelF+R3FYiOQy9hllWwHpAeBV9aw1I4yZVBny1hCNgZMTj1/BgtneXqYuJ092vKDUlzM7csRAqjZ1NooGKcd+anrv7laKjjWGuThYype6FRfMUwBJbd5dUm56sHlVlXQ5Gsg1ao7blDkG5+ZwFJQlc4jOh5Bf6xxU7qbWPrU70GxmtZ+b3CTKr29b12auVQ2/50f8d925ohUKDjqDgxaQGPvJo3+xKEuFhFNGuc0mnXSiEb5feXcf+oDJ2JfOr5kTVWsMbdMhJQT1vpRy/60RqK+vTrjEhPu6KgdmuoDiyzcB3A2iGmZnxCQWWRWnaQm3T4zL/BxmvoIVdReuibDaI3MMuHAlOzEzUe+MSng8YGnjtouWutbBMHTdjAe31jpTBmAGcRenRtldSAvdttrKiwcGAM=","page_age":"0 days ago"},{"type":"web_search_result","title":"Sitemap - 2024 - AI Tactical Toolbox","url":"https://avihacker.substack.com/sitemap/2024","encrypted_content":"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","page_age":null},{"type":"web_search_result","title":"AIDB Today","url":"https://aidb.substack.com","encrypted_content":"EucCCioIFRgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDOXs+jdbMRZXHmhJyBoMu/rtuq1559rUwGDTIjA2ZyC8W+S0QDqjuywkDr/YjvYgAr2T4PNCa2xV6UjlBbERokwl9iXUrVoiuROALTEq6gEijspDw/Eu1y/25YyDf194s0Eltq+DviRZVGxkIOz/pFsiMNLlernrTfcH4rj/dBYUIVrLFLGo+H5uoP5rNYWglpCUlePbHVpf9aafYNPuRhyFaXEMm+GXuRt08piw3/UPprN7M/3/RFFsS7ql44xqpChUzQUOEISRuXgua7hpso0faJTzr38jU02Bp4K9pKAuGiXmlLj4GrFopOKHK30gY4TaCJwig0KqTOpmsp52qglrUis+dYYQaVQVXlhq4CX9F2jYubi0soRS3pXJWsswGvRi/LPEi3H9LEw8az9EuA6p/iXTsqKXXHUYAw==","page_age":null}],"caller":{"type":"direct"}},{"citations":[{"type":"web_search_result_location","cited_text":"# AI\nRoundhill’s Drew Pettit: Growth expectations remain near a 10-year high\n\nRoundhill’s Drew Pettit: Growth expectations remain near a 10-year high\n...","url":"https://www.cnbc.com/ai-artificial-intelligence/","title":"AI - Artificial Intelligence","encrypted_index":"Eo8BCioIFRgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDDYKiiODnoqSQsZztRoMGQlgenmjPN2P2+d6IjCzU6Aotz+c9oXOEKXEUZDnqroG0ukPNLJ8EMYJxtgM87d0JIt2ivI2W/s3CG6J+L8qE/+3nlzRfSoZklKjmrQxBvbwnBIYBA=="}],"type":"text","text":"Anthropic reported $17 billion in Q3 revenue with $895 billion in purchase commitments in its new S-1 filing."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":9713,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":105,"service_tier":"standard","inference_geo":"not_available","speed":"standard","server_tool_use":{"web_search_requests":1,"web_fetch_requests":0}},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-50aa255b9074.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-50aa255b9074.json deleted file mode 100644 index 725f6412..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-50aa255b9074.json +++ /dev/null @@ -1 +0,0 @@ -{"model":"claude-sonnet-4-5-20250929","id":"msg_011CebES8o3uGhyDsvk55aX2","type":"message","role":"assistant","content":[{"type":"text","text":"Paris."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":12,"cache_creation_input_tokens":1365,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":1365,"ephemeral_1h_input_tokens":0},"output_tokens":5,"service_tier":"standard","inference_geo":"not_available"}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-53b26763566c.txt b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-53b26763566c.txt index 8ab35080..942d9cf1 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-53b26763566c.txt +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-53b26763566c.txt @@ -1,21 +1,27 @@ event: message_start -data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011CebER1CcouMHmSVZkovb9","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":22,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard","inference_geo":"not_available"}} } +data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo2zKDLubES54v1zjQqm","type":"message","role":"assistant","content":[],"container":null,"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":22,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} } event: content_block_start -data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } +data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } event: ping data: {"type": "ping"} event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"1\n2\n3\n4\n5"} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"1"} } + +event: content_block_delta +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"\n2\n3"} } + +event: content_block_delta +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"\n4\n5"} } event: content_block_stop -data: {"type":"content_block_stop","index":0 } +data: {"type":"content_block_stop","index":0 } event: message_delta -data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null},"usage":{"input_tokens":22,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":13} } +data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"container":null},"usage":{"input_tokens":22,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":13} } event: message_stop -data: {"type":"message_stop" } +data: {"type":"message_stop" } diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-550dfa4479cc.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-550dfa4479cc.json index 40be5a81..d87b7102 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-550dfa4479cc.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-550dfa4479cc.json @@ -1 +1 @@ -{"model":"claude-haiku-4-5-20251001","id":"msg_011CgfD52HeGDYoTU8smzNvH","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":20,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file +{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo2zMmPZhsMWE9u6deQG","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":20,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-56176190c182.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-56176190c182.json new file mode 100644 index 00000000..34df6f49 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-56176190c182.json @@ -0,0 +1 @@ +{"model":"claude-sonnet-4-6","id":"msg_011Cgo2zC7iLGWFgH7CmkZPv","type":"message","role":"assistant","content":[{"type":"text","text":"Paris (Paris) — though the local spelling is identical, so simply: Paris is the capital of France."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":12,"cache_creation_input_tokens":1368,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":1368,"ephemeral_1h_input_tokens":0},"output_tokens":25,"service_tier":"standard","inference_geo":"global","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-5649ef8549c9.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-5649ef8549c9.json new file mode 100644 index 00000000..df1c6817 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-5649ef8549c9.json @@ -0,0 +1 @@ +{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo2zQXaqrb5SVxjjPYNk","type":"message","role":"assistant","content":[{"type":"text","text":"I can see that a PDF document has been attached, but the page appears to be blank or contains no visible text or images that I can describe. \n\nCould you please:\n1. Verify that the correct file was uploaded\n2. Check if the document loaded properly\n3. Re-upload the attachment if needed\n\nOnce a document with visible content is provided, I'll be happy to give you a brief description of it."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1592,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":92,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-58718d967df1.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-58718d967df1.json deleted file mode 100644 index 6c85c184..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-58718d967df1.json +++ /dev/null @@ -1 +0,0 @@ -{"model":"claude-haiku-4-5-20251001","id":"msg_011CgfD1HM9g5avAYDeuwHJg","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":20,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-5d20989d033b.txt b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-5d20989d033b.txt index 0c7b1e5e..6ff30c52 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-5d20989d033b.txt +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-5d20989d033b.txt @@ -1,21 +1,27 @@ event: message_start -data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011CebERuJguU6rst6zRmr76","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":22,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard","inference_geo":"not_available"}}} +data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo2zMiv7Pdt99fSsGD93","type":"message","role":"assistant","content":[],"container":null,"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":22,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} } event: content_block_start -data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } +data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } event: ping data: {"type": "ping"} event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"1\n2\n3\n4\n5"} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"1"} } + +event: content_block_delta +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"\n2\n3"} } + +event: content_block_delta +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"\n4\n5"} } event: content_block_stop -data: {"type":"content_block_stop","index":0 } +data: {"type":"content_block_stop","index":0 } event: message_delta -data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null},"usage":{"input_tokens":22,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":13} } +data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"container":null},"usage":{"input_tokens":22,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":13} } event: message_stop -data: {"type":"message_stop" } +data: {"type":"message_stop" } diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-640a93927303.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-640a93927303.json deleted file mode 100644 index fcd1d29e..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-640a93927303.json +++ /dev/null @@ -1 +0,0 @@ -{"model":"claude-haiku-4-5-20251001","id":"msg_011CebESPzbX4V4ncXeEDU5b","type":"message","role":"assistant","content":[{"type":"text","text":"I can see that you've shared a PDF attachment, but the document appears to be blank or contains only a white/empty page. There is no visible text, images, or other content that I can describe.\n\nCould you please:\n1. Verify that the correct file was uploaded\n2. Check if the document loaded properly\n3. Re-upload the attachment if needed\n\nOnce you share a document with visible content, I'll be happy to provide a brief description of it."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1592,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":103,"service_tier":"standard","inference_geo":"not_available"}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-664c4d4fed33.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-664c4d4fed33.json deleted file mode 100644 index c6ad4128..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-664c4d4fed33.json +++ /dev/null @@ -1 +0,0 @@ -{"model":"claude-sonnet-4-5-20250929","id":"msg_011CebEaPQrFhzSrHz1Mf2cF","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":12,"cache_creation_input_tokens":7425,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":3710,"ephemeral_1h_input_tokens":3715},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available"}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-722c584aaed9.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-722c584aaed9.json new file mode 100644 index 00000000..1d1b00d2 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-722c584aaed9.json @@ -0,0 +1 @@ +{"model":"claude-sonnet-4-6","id":"msg_011Cgo2zUBMVBz8FD5S4PcJX","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is **Paris**."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":12,"cache_creation_input_tokens":1994,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1994},"output_tokens":11,"service_tier":"standard","inference_geo":"global","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-74a60d2aa4be.txt b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-74a60d2aa4be.txt index d14b6180..cae85ef2 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-74a60d2aa4be.txt +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-74a60d2aa4be.txt @@ -1,36 +1,33 @@ event: message_start -data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011CebEzc9V5dm4pCrxDKbX6","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":596,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":22,"service_tier":"standard","inference_geo":"not_available"}} } +data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo3QF5j4eaK58QMsNX4Q","type":"message","role":"assistant","content":[],"container":null,"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":596,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":22,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} } event: content_block_start -data: {"type":"content_block_start","index":0,"content_block":{"type":"tool_use","id":"toolu_0127oUn1CAtBEU9cQfykJh8D","name":"get_weather","input":{},"caller":{"type":"direct"}} } +data: {"type":"content_block_start","index":0,"content_block":{"type":"tool_use","id":"toolu_01XHM1EWNMmomL16zz3bSytu","name":"get_weather","input":{},"caller":{"type":"direct"}} } event: ping data: {"type": "ping"} event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":""}} +data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":""} } event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"{\""} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"{\"locat"} } event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"locatio"} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"ion\": \""} } event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"n\": \""} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"Paris, "} } event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"Paris, Fra"}} - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"nce\"}"} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"France\"}"} } event: content_block_stop data: {"type":"content_block_stop","index":0 } event: message_delta -data: {"type":"message_delta","delta":{"stop_reason":"tool_use","stop_sequence":null,"stop_details":null},"usage":{"input_tokens":596,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":56}} +data: {"type":"message_delta","delta":{"stop_reason":"tool_use","stop_sequence":null,"stop_details":null,"container":null},"usage":{"input_tokens":596,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":56} } event: message_stop -data: {"type":"message_stop" } +data: {"type":"message_stop"} diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-7a792ff40169.txt b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-7a792ff40169.txt index a0531e95..272425a3 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-7a792ff40169.txt +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-7a792ff40169.txt @@ -1,24 +1,24 @@ event: message_start -data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011CgfB8DmYf3Z3jtLVSyyrd","type":"message","role":"assistant","content":[],"container":null,"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":4,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} } +data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo3AFGzFoXptgPwJjarL","type":"message","role":"assistant","content":[],"container":null,"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":6,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} } event: content_block_start -data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } +data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } event: ping data: {"type": "ping"} event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"The capital of France"} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"The capital of France is Paris"} } event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" is Paris."} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"."} } event: content_block_stop -data: {"type":"content_block_stop","index":0 } +data: {"type":"content_block_stop","index":0 } event: message_delta -data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"container":null},"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":10} } +data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"container":null},"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":10} } event: message_stop -data: {"type":"message_stop" } +data: {"type":"message_stop" } diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-80079471d31a.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-80079471d31a.json new file mode 100644 index 00000000..b0935c74 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-80079471d31a.json @@ -0,0 +1 @@ +{"model":"claude-sonnet-4-5-20250929","id":"msg_011Cgo39UdeCNAbZ25ez8uwi","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":12,"cache_creation_input_tokens":7485,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":3740,"ephemeral_1h_input_tokens":3745},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-810cd8105a5b.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-810cd8105a5b.json index 9d2eb1d2..590d7888 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-810cd8105a5b.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-810cd8105a5b.json @@ -1 +1 @@ -{"model":"claude-haiku-4-5-20251001","id":"msg_011CebEbzR3pLxc6SApakmr8","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is **Paris**. It is located in the north-central part of the country along the Seine River and is the largest city in France."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":36,"service_tier":"standard","inference_geo":"not_available"}} \ No newline at end of file +{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo38A8s4YQP99HTGMJuN","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-8551e22f9273.txt b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-8551e22f9273.txt index 5a9f392b..f0257452 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-8551e22f9273.txt +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-8551e22f9273.txt @@ -1,24 +1,24 @@ event: message_start -data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011CebEbNv7UhReGBM4Km5zV","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":6,"service_tier":"standard","inference_geo":"not_available"}} } +data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo37Uok1Mv9taL6RxRXB","type":"message","role":"assistant","content":[],"container":null,"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":6,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} } event: content_block_start -data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } +data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } event: ping data: {"type": "ping"} event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"The capital of France is **"}} +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"The capital of France is Paris"} } event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Paris**. It is located in the north-central part of the country along the Seine River and is the largest city in France."} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"."} } event: content_block_stop -data: {"type":"content_block_stop","index":0 } +data: {"type":"content_block_stop","index":0 } event: message_delta -data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null},"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":36} } +data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"container":null},"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":10} } event: message_stop -data: {"type":"message_stop" } +data: {"type":"message_stop" } diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-8e28ba98929e.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-8e28ba98929e.json index 1ebf871e..7236d259 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-8e28ba98929e.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-8e28ba98929e.json @@ -1 +1 @@ -{"model":"claude-haiku-4-5-20251001","id":"msg_011CgfB8dXYdxNHoZjyuUqhU","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file +{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo3AtrhNmEj1YxLx6iAc","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is **Paris**. It's located in the north-central part of the country along the Seine River and is the largest city in France. Paris is known for iconic landmarks like the Eiffel Tower, Notre-Dame"}],"container":null,"stop_reason":"max_tokens","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":50,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-95926394746c.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-95926394746c.json deleted file mode 100644 index 7807d382..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-95926394746c.json +++ /dev/null @@ -1 +0,0 @@ -{"model":"claude-sonnet-4-5-20250929","id":"msg_011CebERkfHNQ2tvMSPXU4vj","type":"message","role":"assistant","content":[{"type":"text","text":"Paris."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":12,"cache_creation_input_tokens":1368,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":1368,"ephemeral_1h_input_tokens":0},"output_tokens":5,"service_tier":"standard","inference_geo":"not_available"}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-a5197f00c58b.txt b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-a5197f00c58b.txt index 3aa95238..c19fd1d8 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-a5197f00c58b.txt +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-a5197f00c58b.txt @@ -1,24 +1,24 @@ event: message_start -data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011CgfB8Zddw2AB8deANjbAW","type":"message","role":"assistant","content":[],"container":null,"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":4,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} } +data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo3ApegfhxKpXTZC1K5h","type":"message","role":"assistant","content":[],"container":null,"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":6,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null}} event: content_block_start -data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } +data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } event: ping data: {"type": "ping"} event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"The capital of France"} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"The capital of France is Paris"} } event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" is Paris."} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"."} } event: content_block_stop -data: {"type":"content_block_stop","index":0 } +data: {"type":"content_block_stop","index":0 } event: message_delta -data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"container":null},"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":10} } +data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"container":null},"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":10} } event: message_stop -data: {"type":"message_stop" } +data: {"type":"message_stop" } diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-a555a5940258.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-a555a5940258.json index 2f4798b0..6a2a3a05 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-a555a5940258.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-a555a5940258.json @@ -1 +1 @@ -{"model":"claude-haiku-4-5-20251001","id":"msg_011CgfB8NkYLMYZzMtM7omef","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is **Paris**. It is located in the north-central part of the country along the Seine River and is the largest city in France. Paris is known for landmarks like the Eiffel Tower, Notre-Dame Cathedral"}],"container":null,"stop_reason":"max_tokens","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":50,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file +{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo3AbKVRrkTv4TAsHJti","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-a6025c05a563.txt b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-a6025c05a563.txt index 6ef10adb..083a8af5 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-a6025c05a563.txt +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-a6025c05a563.txt @@ -1,24 +1,27 @@ event: message_start -data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011CebERqGMDa3KUKQkPoYUv","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":22,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard","inference_geo":"not_available"}}} +data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo2znVRjWPQRwSUh3dFh","type":"message","role":"assistant","content":[],"container":null,"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":22,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} } event: content_block_start -data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } +data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } event: ping data: {"type": "ping"} event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"1"} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"1"} } event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"\n2\n3\n4\n5"} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"\n2\n3"} } + +event: content_block_delta +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"\n4\n5"} } event: content_block_stop -data: {"type":"content_block_stop","index":0 } +data: {"type":"content_block_stop","index":0 } event: message_delta -data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null},"usage":{"input_tokens":22,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":13} } +data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"container":null},"usage":{"input_tokens":22,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":13}} event: message_stop -data: {"type":"message_stop" } +data: {"type":"message_stop" } diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-a8b7f878b224.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-a8b7f878b224.json deleted file mode 100644 index 7725dab3..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-a8b7f878b224.json +++ /dev/null @@ -1 +0,0 @@ -{"model":"claude-sonnet-4-5-20250929","id":"msg_011CebES3PrbP5Po49G1nDtE","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is **Paris**."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":12,"cache_creation_input_tokens":1993,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1993},"output_tokens":11,"service_tier":"standard","inference_geo":"not_available"}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-aa46a7052622.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-aa46a7052622.json new file mode 100644 index 00000000..a5befa87 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-aa46a7052622.json @@ -0,0 +1 @@ +{"model":"claude-sonnet-4-6","id":"msg_011Cgo2zZyMfdC5GKp6hHop2","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is **Paris**."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":12,"cache_creation_input_tokens":1993,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1993},"output_tokens":11,"service_tier":"standard","inference_geo":"global","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-b11ab95242d5.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-b11ab95242d5.json index f15155c8..b9e3f456 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-b11ab95242d5.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-b11ab95242d5.json @@ -1 +1 @@ -{"model":"claude-haiku-4-5-20251001","id":"msg_011CebESGQhC5MmEmmZuwApw","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":20,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available"}} \ No newline at end of file +{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo2zGNhKTr9BN4JmQ8tG","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":20,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-b14b6bf1e7ab.txt b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-b14b6bf1e7ab.txt index 96921124..c97371ac 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-b14b6bf1e7ab.txt +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-b14b6bf1e7ab.txt @@ -1,24 +1,24 @@ event: message_start -data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011CebEzosvxwSgD7uKmfy97","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":4,"service_tier":"standard","inference_geo":"not_available"}} } +data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo3R5iw1WDNFKA7NEACS","type":"message","role":"assistant","content":[],"container":null,"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":6,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null}} event: content_block_start -data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } +data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } event: ping data: {"type": "ping"} event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"The capital of France"} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"The capital of France is Paris"} } event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" is Paris."} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"."} } event: content_block_stop -data: {"type":"content_block_stop","index":0 } +data: {"type":"content_block_stop","index":0 } event: message_delta -data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null},"usage":{"input_tokens":14,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":10} } +data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"container":null},"usage":{"input_tokens":14,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":10} } event: message_stop -data: {"type":"message_stop" } +data: {"type":"message_stop" } diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-b32c5f08c744.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-b32c5f08c744.json index 3cb9f754..97279de1 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-b32c5f08c744.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-b32c5f08c744.json @@ -1 +1 @@ -{"model":"claude-haiku-4-5-20251001","id":"msg_011CebF27coZQcov7e12Z3x5","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available"}} \ No newline at end of file +{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo3RgvFzjWUTyTshpb5v","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-c0794efcd5dc.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-c0794efcd5dc.json index 7e6d3b92..0b59bdac 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-c0794efcd5dc.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-c0794efcd5dc.json @@ -1 +1 @@ -{"model":"claude-sonnet-4-5-20250929","id":"msg_011CebEacMig45CLqHVyUgsV","type":"message","role":"assistant","content":[{"type":"server_tool_use","id":"srvtoolu_01JQpHA1PRJLWmsNtFuFAhyS","name":"web_search","input":{"query":"AI news today"}},{"type":"web_search_tool_result","tool_use_id":"srvtoolu_01JQpHA1PRJLWmsNtFuFAhyS","content":[{"type":"web_search_result","title":"AI News & Artificial Intelligence | TechCrunch","url":"https://techcrunch.com/category/artificial-intelligence/","encrypted_content":"EukECioIExgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDM+Z1lq1KFcEpckGyxoMgnJfKJfU4PR/B6pcIjCF01CmY3xc4MPKFwClV2GFXMmkMTUGvhL5Kbj7HIgGGLxVltcMN+yxEId0UN43RDMq7APyBcsHgJdTmOGAHePH3GfraYoMeyHMh+ZXv8deu6yaGzvtJ5EyLDFcNJEl7EQoXPWrm0t1eJjZX5ixM607GntL9c/NbF3beBU9tqAQfxvO9o+TCP+aabzVwemQ3V1EuVXio8uKfMdzJl7Ua7d8F92QMTSj1WcSjZbp3P6/MaQKf32iqjsBEQwRrkEppdS7RTA/sn6PVkGq8EnuNn/M627vHaLVU/q5xExdZXFtXuqDJB+fcenJP8jIzxrzPLDgRb8DTIjN5o+AStOTush+wBvulTaf3aUg8xSmTvxsSzjY34AjHygmseVSkC3B5F1r1ZUs5DO1BLPHs2BxaMb5xqfV0YvoILgrhH8IgPQWQ8gQ/oti0syXIdNzljJlf3PEIlhfex4yYaN7hCbA5dY1gLuAXz8i/QfLlpB63vnf2O1pcOXDAKds0ygeedrbj1lOMpM6uwmgPMeJVplQzD7NlbPp1cgaIPBnGybpB7zYC7NvbzfnsR3xIabNeL+y9JelxKt7fzw1wzzgVTSjcxgMF1KXF0T9X53dU3E9D9mOOSw7dZNivFsO+jzCrEsL6eaVFo9TA5hcz2PpSBV9fIus7eqCgxm9SHwoNB39orSC1Gq9x+PXFgFvehIX6pMGW4L8GR5R/Ptg4CRd4Wh9uvYYAw==","page_age":"1 day ago"},{"type":"web_search_result","title":"AI News | Latest News | Insights Powering AI-Driven Business Growth","url":"https://www.artificialintelligence-news.com/","encrypted_content":"EqYJCioIExgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDHE509fNcGvZ4R8G3xoMto60ZSkUNHz6llV3IjB5usTyZw6ySEoBDnJLxDdnW8ENWqkqxXLAXYChX6KBhaQ7hgnJB/xheFBb0S8aPbMqqQjXBFjxEB4v+6OiAaOnE5C4EF/wSJFeWSsQJEp+DNxdD/VGPwIWV1S6y798Mh1R9D1ecS2bilpF/m6an5/DJYuFmK6ZHHPNxmeMPCivbO3Uvrsf/xkXhTLOIgPiSYPWleSsFQQFbq3kNrEFxRsGo83lQ3cOxIgw7VxZXiu6km2GI1T65mIpfImOMRmxzw6cANR09QBsblDVK5AYuTKNV4tHqX06npVyXUu0e3G13hryVunjhHoMAvD7gAxM2ak2/w7MJoMbIW9MBUqcSB7uglffPIvZ1SC9URB7RlXyLvr9254OWOytgtqAcntc+Ql/TrjYfAuNL5iK+RwbXfmzcwF+NymIaXqW0wqQS8AR9KpvTex3pmx86vi4qczV8vJwIVHDciBfdTzu1W9Mtr56l6VsNqZMlr09E0kP/JbdC/B5WvtHZaJzSzrhWJZSxAg79DYrLGcDqqhGH4mZVFPlszrmLCPVtQaFbzgFSX2fyT6HeY14Pe8i3hoqHqDwcysAPZzmLmht2lvsAWuMDpEiwMZ+FODyyg6bwTNHDO/kL3xdbrP3BIHwZiT7hp6IXSrPwhh4N3HpAdoUFoE97I0EEzIu0qLHtun600cGxwdoWfPEuw5qo8KSbTUmFureSdZqTtNmJYWaMj1sjA0wwu9VLrWIUX8HvSqGZ3vbwW39UTIB7zOqK0aDRVZNVycebnyW3QyjYZ+rshlbv7SNa9dQABcdaaSWDEuGlAu+Xc8o5MmZiW8lFa+QeA84OJg48adrzx9R1wVEjMmn8fwpGCGBvos2Ffqk6LARmmm/1TLlaOJNVxZPvjMACPZZNS8Gd6Q5cfzuKteKfj+bXqNkg/NzxAXct6og5qaR4SaIJhGrB6OzIUjnuPDo6Jon73/aT3j3CvBA8GgDLmN6W2pzgSHNHYxpkZfVf3EC1KOzelJDRbJKzHLmG1x7enpAWSDA7PlcDxXTNgI0+vW7Iq2wkQg7vKAM7Q4mZ+rzV6IgRrYcQ+GFYZFBCFLL5l5mXEOj+TDfllWGI7KGx2c8lNKx8RjFpQmWuCKqjAX9lwN2FXO7Yn2l9Xa8qOpR4hEKKi9fpA4r2+7HSGt2LXTksDgz3tjhHLdBiiiMqugYzO9HZg0VELYTXswFTNTvNTm1ZxG4seL++vqNU8GXmcn5D8Xjhg5QM0wLKEbfM7zY9lnccNUKI8xiX05vIxxpO/ofXTj/4s98doG0e4IWZg5OVyhgHpLWNivYWVUwyeXBHfaI5vNfSUKX0HZqI1uzteuvHjJp9Mr7yBfmmzBGYX3lsPmH0ocbEHWiaRZhUXRSOlWKHHokvHqpoh0QQK+flRlgMZ4ZxMRs34XkAADbsTDD3jjyuRUZWquOGvgqRgQoU/r/9xfw02eRGAANrtAewsolfVDLaT3oJL0cISc3EBqjDPIYAw==","page_age":"3 days ago"},{"type":"web_search_result","title":"AI News: Top Stories, Ranked & Explained | AI Weekly","url":"https://aiweekly.co/","encrypted_content":"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","page_age":"5 hours ago"},{"type":"web_search_result","title":"AI News, Updates, Products and Reviews | Yahoo Tech","url":"https://tech.yahoo.com/ai/","encrypted_content":"Ev8HCioIExgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDO27As4mnaybhK3k7hoMlZ93QKphTrW0pN3dIjDYm4K6DlwmYMS5Y1maaPqXs7d1o8xgEhyrUJiOTv4ydhwCE125zXf5CZShNKqZ9jIqggdnKYAKIWfpHvKlDlOi7MyALTN4UYu99UNRnjyif7+S4bEZqF72XSAH3uSq/qF9b76Rk/0PxXB46R5NxCv8QRoioGgcrCfDerMyB4dyJliDVXh3pKN5zc58Wxb6cMQLjYejE2hsgKXcyyy8s/V3LYZPDA0rRkGPq8oi2bYbSuHwE2RZt4aHSivEFjNCUzU4cJmo+Fhf2P5LIo6ICeEKLwnHXfuY6lKFnmgMdPFuD1hz25mohE4l3PeQYmS5vxzIRHgMUh1dbCh3nuNQawTW33xDtVNpr4UabpiiOTmFRky9uLKwOXZ25f0AxWkwbq6wiEZRWfhgWqO645KhtPOMA0SQoKq3h15N1hWIDi6kgS5jAYIqwKjITvYYw9PK1THcmvppEXeoacG/avGuTf93uAxyMJfcAHQuuQ5CDP7gB8IZQRlqz3N/nViJIeqz35UohASJB+jPEPjGmwAlqWlu2y98LIhvRVOKc9GZrsifsYtyFF7H9Km1HHgsY9mMNYR+5urCOGYYpDsJa3ojHZ0hOE9JM+NBaNLp6mVxMPP8xU2z2jpRZiEj0p6rs6vGbl4ExE5jLubFHS1GkGd1Ul8J4y0pUcNmBC7z6srqR/qsvE0yGv+Kv9x/J7lZUNbl6v5VfOYL6aYzqxitn34YtA6IjzSn/e2gTwTJk+dTONRxfbGh93T76XUuDGtJdM1rek9+4GyomlD6S6Q46jXjoTrxyZ2Om5ivytMIOfalOUZPkjP4GWbXNz/VjOi8ge+ukQnLE0E/c58ggugW/9OB9RFKBlTsTKWRWpQHm5A1GhRFFk09JH4Tyr/MXhFSovl2oqJSCSZ2c6RQSRINgjBovjg6Zmw5HsIZTPmp3mrujlS6za90Qne2xRNMnV5g6fT7RKs63MsFSoXpQmUFN77wJ8Wpku5Q8Bns0FB1NfmH1Zc1ZCGvIG+Vu48ji5A24WvhoKDCdzfGPf39xbliUyhXgrxlrF0MtKJYpsBo0EnhhKheE4e6LBfKTRFC0cU9iEaEycounn/EA/VOkgJjCkmMeABzM1+7xo0zYoRDcFu6u5OBxwGLrOopMfb4aOHsepLdYPeFpWvkpE06KAKdmCf9yhOaSnHQLEsz/bbFRESVALnlpNo211KkKz/T1IBQdt27sPzgT1/Qzmxv9SOrzBb7TW1HwVLatzS1Cb+dmHPiqElOF/kBc7GgGAM=","page_age":"6 hours ago"},{"type":"web_search_result","title":"The Latest AI News, Insights and Reports | AI Magazine","url":"https://aimagazine.com/","encrypted_content":"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","page_age":"1 day ago"},{"type":"web_search_result","title":"AIDB Today","url":"https://aidb.substack.com","encrypted_content":"EucCCioIExgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDDIDo6bfZ/bDlFslKRoMeWmDCsD7Qp6vfXP6IjAoB1qvoZgY8Mc2iIHM15U/D9lqPgGoIIFrNfzzL22zm3zCOrQtRedKx6GlYzZANBQq6gGjBEQkN32F5zjLa1lCFNF9uBilDJiXa6W1eYr7R6tvxQR0mCjZph1Q5CPKZ9P8b0O+WkYSubK0A+9IWy5pM2L4N3pboxN46LFr1tFCDw2ACvYpM3vBn4QqvUlTVvjf22A3s1i+6eSIKpXC9tiYlpHC4SV7rbGHKEi8v34humKRtGUkUtn0J4zC7Lqi8gMmKr4UvKmb9tbBsfscHVQA7zsv2SdE8j7RRL/RyBqczFmw15iA6ugmNtcB8x57uagcOn5yY4gOMG/QWPrdi46M1F5KsmXYuzal6aFlcrPFGfAc9zF1+Q1UFILKHVgYAw==","page_age":null},{"type":"web_search_result","title":"artificial intelligence newsletter","url":"https://www.foxnews.com/category/columns/artificial-intelligence-newsletter?page=13","encrypted_content":"EuAQCioIExgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDFEZA/Xjg0DrSM+FLRoM9oiqx7VYItdY1vHJIjD0opzCL+jC/ojIkx/f7tsZYMSOTMs5MZL7BJwQqCj52D7AIRpdPSd7qkFOiZTL/CEq4w/pHmakt8wyxwEqQ9ruAwEJu7aQpwe3hqPv9CjngD71Q71xGP1SBzTFVd+TFJ6+dA+PfMF49LQC5QDx7jNrV9fz2YiPAGfS1Ntl6XhhUiNTt9a9iaiidykRa+3Tlaa/HxCoqZT+NQlvsvYmcSzPbxBxTrTczv6DmirhNRdRp5BYUmyFjirhRoj9qb1EHrQnnk1zYzX1C1/2XsXLi25khe2Unh5+9r0BGBTJam5TPvsXR+6q5dsHrN92jdLcwoIVAZvWieLkz6TX/wjYNTrN8PwedOOY4gaCB/6a7IzWMaBTvtfWodSgWODpVeewUx4sSkeCxUDIvWQ5T2/xsKqhE5j8YnGT3qs0e+X9C8JQK2WS5WGLRYETbS1Lqf2zes6m+Z/a9/kdb5H3EYzod0x2U97EKEuSXEmwVOBNE6rzXiKHlKO+S/RO3a+N/PLwqj4fwLTj4aiy+HwQjGpQNOjyhAfNjV6vuu2T8zo3lfPmKgJTigfFN1u+YlaJwM1nvPt2c/RQ7+zqpumCwMDWEui/HiNjfvRRVP7EhfjcwkSy0Z/5DviiXnhD0fMQ3MKg/TCUnT1Fu3yieg0XKrmT0lV8zV0NCaNxMRdO6v8OuJh9aNieZmfJq1ot0oOs2Xs+p53VDUHKiGK16WK2OqdcKhdBowQA7D11nhuwA8CVe3SmpKj1p8upyC9qpg7cu+0SYhalnk4ypfI7bVjnIc6Rw/lGdDTm0vcad010yqwJ/mSb4qsfEBgXaE9uzSHa0F5EYqWM0ada/Iq2q2GV+d52rbx1aSnmeE+pVULAQ112aTjgxXSZM3v3eJ+pNWg4ND7l4KWIwY1zY6S674+8kvYDjiHBjBpmYcHolcTT3WrduW9+CV5pFtsL8lyecjsGbP+ED7ALY02xOcJDDhcnOgC2q6QHLlxyFx673fNH9cK2TCNSBn5za4UXRgFEUz1YKhhEpw2n3xKCz7W5IyEfVjx7Z3ZHSefNCREwtMnIXfDC/xZcPr/LRRFDemz5rBv8N89iNbRuSG7nG+CerlmWiuN/8FmevEnCiN+wzhhLXXwUo+VItvSK9strMDq8zvKS1ro9lFxgFZ/DXCQyLnvH9op2UvgMbQBNeBKpad6ITIzfS/P/X28hbtGtdWARd1dtPsUjxVI9OVVqkEcFyH9yQN9G5vT7SVwhpBjEC719ypPKVmNA/eOP1gFQ/Qbl3W79HUpyTgYMlffkS3Xq78j3QGJg6TFhsLw3ww1vV0W+oXWUvhClpcarovjTucCBwL1Jnazngf+Xmyyqmkybe05h9Qc98BRhtCZ5SnlJlRb6+G+xa4uiWTJKrhmeiNuKhV6Tg71V1hvzKta/ifySkF1j93zbPv5C7D35uvN4Wep9VggqY96D5rH0m7X29acdAhNNScCEpPH/BeAAYQSYYb0LwBYCHgho+5IWkqBqupWgNF6Aedlcj1aLYX5Vf4g1rBGPhPFqBUllgrin2dMuxYXYC1u9veUrHD+PxvGf1SdFyXsdnaH1xLgIUesS4+r+Y2GRtzdoB922DbYjGk2kHxzJ6wDO1P+4azz995oWdtueSHAf5CVZKHbk6DDpIHDfLqbjQS8sT59T/7Ze/VT3vOIUzlLqW+yZ5ETD4z4pvPz3ABZcRR9VVaynkhITfbuCxbhDqMd5DFi1hJbKDusFawrQHWcMiApNbRdbOwa0eVfvb1viBv0O9MK7iNZ6fcCRS4h3ggzf0xgKHGNhjiThHO2sWE3R6KL//OLHDCJrMCS0CT0j0C0ZAz9JVHkNOC9SD/zyk6R11sU8ZBJDlodp9/1+iENC1RuCShEToV3Gvz0I/2k9V4AWnmBK4TKpgQm223SjRSfurIiPka0hzvMU5mmLcXZcZy/l6oqsKQ3A83m1fgw9ca52gftcGu+g6gyqTcehaDkK655Ox2Mg2zeA91wgVG5rIT5zRSjZtsgBSc209qNASD5/9iJj1/bxUg0aFwXA0gJKiJddY2Qrg759bQHce2//RuAWxAQ92WuY9KV3eznVAmnkxmTm3WZAFizH+LMQDUMC4j0LZFxeB7o7nAmQq/MglwFXqdMBW7OPKVo/76gsGc0/b/74rPOhMYwrj1ef2vIe2RXX4Oi2eilMlHe/2t87iAgebeDQ+Ph40egw21XDWo4jsWJslDuVy8xWFLNlRxkBuxT6oeR5sBc02C6D/ZoF7LpWEYzFYNoiKdVIul/eMxD4cnqdYhTxSZausn4ojzHYiEW2yErwwcbouZiVn6g/MGZ8gaA0KNmq2XLT2+PyE7svuqsbD8Z9nQGVD+AYpH4rqNwXD4q1iZNnbevy3Ut9vRVuhcOuKyb8XxT68oSZz8A81Fnvz+zNlj1iVAenwkQClPJp/Zxj5VIW+ekx6mDGqZW2cn/jeHOI7C+RD3zeSbM9HKqMm2C9m4xyhe7KJWnAy2yvyQg60eUHzL7Fq984jY3oxWSvZlmGqRuZ7TTvgfhFcnK/dC7UouWtBvVwvrfDKKw1ojLiifSo2DokD9YkCmJAmQ0PUE0/esS3QlNaka5F5/BWVDBhiIxkKCizPUC6K7xszQUA7mz7x5s+i68Hc7eLy2KFepr0YCk3xpimJmEwyQm4DAYKmbth/vjInZThwHPLr4/UR+oF5DkAus+vEalCN6TRZV2tG4zzFwFj0VhB2KoW0FACNCbFuGUqSdFzG7W+QggNkoYYAw==","page_age":null},{"type":"web_search_result","title":"artificial intelligence newsletter","url":"https://www.foxnews.com/category/columns/artificial-intelligence-newsletter?page=9","encrypted_content":"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","page_age":null}],"caller":{"type":"direct"}},{"citations":[{"type":"web_search_result_location","cited_text":"Meta is updating its AI glasses to stop recording if someone covers the capture LED and cracking down on covert filming and harassment. ","url":"https://tech.yahoo.com/ai/","title":"AI News, Updates, Products and Reviews | Yahoo Tech","encrypted_index":"Eo8BCioIExgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDHduhBR/MLfI9cRPBRoM7+hyRluZC2LXM5RlIjD5TSnjsS3uBMuIxMIufrYN75N0zKnMhumsKil6zudQ4w8RgLyFynW3FPI0FjYn/vgqEyGJgg4uGUzM+Kenu/D/zAInkv0YBA=="}],"type":"text","text":"Meta is updating its AI glasses to stop recording if someone covers the capture LED and is cracking down on covert filming and harassment."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":8644,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":101,"service_tier":"standard","inference_geo":"not_available","server_tool_use":{"web_search_requests":1,"web_fetch_requests":0}}} \ No newline at end of file +{"model":"claude-sonnet-4-5-20250929","id":"msg_011Cgo39bfJXPqL3NCQbA7Zs","type":"message","role":"assistant","content":[{"type":"server_tool_use","id":"srvtoolu_01BK8W5WakNt4ngAirPfWJb8","name":"web_search","input":{"query":"AI news today"}},{"type":"web_search_tool_result","tool_use_id":"srvtoolu_01BK8W5WakNt4ngAirPfWJb8","content":[{"type":"web_search_result","title":"AI News: Artificial Intelligence Stories, Ranked","url":"https://aiweekly.co/","encrypted_content":"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","page_age":"0 days ago"},{"type":"web_search_result","title":"AI News Today, November 7: Top Stories","url":"https://aiweekly.co/ai-news-today","encrypted_content":"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","page_age":"0 days ago"},{"type":"web_search_result","title":"AI News & Artificial Intelligence","url":"https://techcrunch.com/category/artificial-intelligence/","encrypted_content":"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","page_age":"0 days ago"},{"type":"web_search_result","title":"Artificial intelligence news: Chat AI, ChatGPT, AI generator, AI Chatbot and Bard","url":"https://www.nbcnews.com/artificial-intelligence","encrypted_content":"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","page_age":"2 days ago"},{"type":"web_search_result","title":"AI - Bloomberg","url":"https://www.bloomberg.com/ai","encrypted_content":"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","page_age":"2 days ago"},{"type":"web_search_result","title":"AI - Artificial Intelligence","url":"https://www.cnbc.com/ai-artificial-intelligence/","encrypted_content":"EtUNCioIFRgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDHICHz94Nbq/dcNn9BoMMKmDWol2RQFQ5oyfIjBvhyGgz5sH8SZppVmPQmKYyTL/VE0c2jNiIdsiuDA7S2cjEiwWP5z36muVwBudig4q2AwMgeP95zkSKhkMk4BDjecwKsODD9trN7bzWz5HBTfaaPmKaJI+g6NbP+ybjO4d+JEIItQU2DCigCs6CfCsBnPl18BppKHh0C0g71KMXMzL22Dhx9u+wzwUvIrvmJz3hXVYDULWAGRMujh9wjs53jlM90o+xTVe+1TYqmcV6shDtgqdvht8YCK7wZNpetFzqNiK+bdn0qUN7dR8pI7iyVPW/JVWQoAP4oUJAeLSz0DhRYF4WPrvSzbSsbXerndI9ehJmMLHoSD291XRH8JQJnPQlZLYsv3tejq1MMsk51aXszEcc+FyWK5GKSlkGN84dQuSkbZ65gdza7O6xTYC8lJz3TpZgUjNxNRTQv4oTlf+NcwLcx5MnaEX72VCr8uOPIonQAfQaiVAZ4l+yzHYaqJq7ZHJWRgiCbHm9hCX3tnwV3WEoPGlvkcT3yA6Nv+37dvVMgdw9bCzTjaZSbCgOyhpUxnCoZ0gPDTwjxGM5A2FQeKAoutwVNGlhy+zt6RgDWjDc0YsjEkLLuu0KQZsXzsDEylZx9kkEUhhifKYJJgYbHr/TJQCupV0G7oalkbYFxSaOFU9/szlhd//oFP4bTPsjx6fxXkwiYGnFz/T5TSCexCOebE7/vYLvTyD6oOXuwOZLHbqIw7Xn9wa2C8HpvmdMwLSUjCC88Y3fQtTCdy/yY1X2kd0s6pCYtIP2GsMxag7+QMuY0YaDx1+OkDJhUq1iScCnIfL3pL3tQavsZyceEuKJAgkfk2zVUSH/YrF/8pFggr+Y8jCqYjH3UAIUeQmgEkcgQ2r4x5ON5j4KPC3ddEcVRQ1POewiNJToNmIHts7ZFMHkl3x9VOcMOme2X3nHAAyBpwcQoT3K6c+Ya2Jo4vUxmvYC+TcofjdUfRyf2GgyEAdePDO19nubmrR8fMMcxdYuLB6PTUriE38TveBo4hmq+odArFO7hTSGcDRxXj91jrvLkV7cpMWo7XGnZ/fvZ1+DUzzO2d4y5WYrNX6j3e1PTbKya78rgeErvyNcTZcYya2gjfeabOk1d0U2ncQIL4t+x8jcmfj/xk6uG+zr00oGRZnqsL8eX80812RweQdD0OYCNWK9tvUaFG5aB0Jno+0gZ2Yv2GSE0agssXfzpMleJCz4aDjoFhKdDI3gbklaxF+8QyhbuFlbFYUZyCpNm/8mHUF+coSjV/GdosQXn+Z9EqNzVv8AvSIYaVxET3WqveJc/bxNxseRXxE8Vq2ZHcn3sYK2JIkVf+PKtepdhyvBfHJ1ReFkZkCwtWrxA4apGNO+XFUWmEaFIXdj2DKJIsRmc7eX/DuwQ7oysuZAiHt3+o0Js86naHPTqI6auFmLjl6w4WKiv803i7kVcHjLgypXv9H71zY2jZWRGhwsTg39qrMb1XuJ5GlcejvyENa9cRyPxXMUnJ/blaJn7QOWJNkucQcFPKhZoG7xPRsUSlUz65YufuhC4IX0Xj2xB4eiwYGLqATw8jMokFvI31vScDyH3UQt4JKeotXCzK3X45mNigJH5W9LdwCUgwpJRVN3h2YiTfzP06Q6Sv/zGblKtwhmw8JMhdERVbBqPCsvgSAvJYQPP9mwJGn6qk+XcS5Ck/PE8LTzcjc14EA2c+TKnOM3aAG/lpPrhDSuXPSjcWAulWkffmZyj+GktHpqrXaG6/AM9Gf1KVDOqgCbIuicei/8bgVruSI+d3jgLRk0aB2vs2xSdRUiFultKcDWdVBojBS5S4WqnLEu9p6f1ANSgOpVfqvNy13Yxcmj0WTwaijfvZf1qBtjuIX+mFrY+v9nFS2auLjy6aSZ3oDX9cFtoCDkwULJ3mdHonjXr01auNN9jdEAkM5DVBgVy4NDvfwcxTaLcZy17RfUdpW9IHoTkowR09gEJrYBnGYLhlWgzBWSwlvGu43WMall0NdB+GYJPwmqsM40R5yJB8hibvVZf8nRMdZ2nS6ADaQR95vNtYl46z1v7MuVU9h2wKEjOc4rbRIayl+jeQt0MEvtTjDv55TYmLnb4FIzrthlj53SiUhpSRtAkkuJZND/ncaAcx+rHFTt+hJj8xC66xi0OI6xoEwVEBFS4u+YEAEgC7DLIP0Aqv5cAkHkssPckiVUSoYaALCBlhTUGMHfBbzVbLQNfdR9l+eYnWSwTHTIIRlq3HjWKpu5VMbGAM=","page_age":"0 days ago"},{"type":"web_search_result","title":"AI stocks hammered by midterm shock as data center buildout becomes a 'war of attrition'","url":"https://cnbc.com/2026/11/06/ai-data-center-midterms-selloff.html","encrypted_content":"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","page_age":"0 days ago"},{"type":"web_search_result","title":"Sitemap - 2024 - AI Tactical Toolbox","url":"https://avihacker.substack.com/sitemap/2024","encrypted_content":"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","page_age":null},{"type":"web_search_result","title":"AIDB Today","url":"https://aidb.substack.com","encrypted_content":"EucCCioIFRgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDM281zLSNhryjIxEXxoMRBAmyVVB5Zj27BKoIjCAB93J+rbtgPz06zvjQMjzo8HFRnLWDild5Dcr9dNni0DCImJdz208ADW4xoz/oCcq6gG9XfKqfjohGnsL8iGndfE9pN19PH6eCWrmllTpYjxSF7V8qRfr5DC1KIkUHGo9f73OnZpk4M2P7243y6CTlRWv/B8R+a55rsXU+0f3paOv7w6NflpcUG2d7wdUQXZ4MOzWp8/ZVsIZr92+BmQ3E6Q7Y7zTX7vnGH0xyhrvJdta53arl9J9izt+uhjda+aJx5tRhcPhwHoXEiMFnqXTHe7h6OZqnRoIgYxFbLfFEdvXXA9iLf9eQiqFxuMC+TSw4luCGEXoSckpI0Em7spAaKp7QHbtlG1H/FArLcDCRLMCupa+zh6BQytN2K8YAw==","page_age":null}],"caller":{"type":"direct"}},{"citations":[{"type":"web_search_result_location","cited_text":"# AI News\n## Court Orders, Leaks, What Stays Private\n### Previous Issues\n#542 AI week ahead: data center pause backers could win 15 governor races #54...","url":"https://aiweekly.co/","title":"AI News: Artificial Intelligence Stories, Ranked","encrypted_index":"Eo8BCioIFRgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDDJPO4j4fPADQWr8fhoMX73jKmNWu+CMMk4iIjBfrgjsYkJvvzXFL2k7L+B7Q19rtkTCd6VA9tMcjtmjcTK3csfLlaquw+I6Zozg8ocqE3jSE9GoaDs3lX0D71ILjr4v/Q0YBA=="}],"type":"text","text":"The U.S. Department of Justice has launched a 'Super Intelligence Task Force' to prosecute AI misuse."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":9585,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":99,"service_tier":"standard","inference_geo":"not_available","speed":"standard","server_tool_use":{"web_search_requests":1,"web_fetch_requests":0}},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-c5a2a8211935.txt b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-c5a2a8211935.txt index abeb483b..baba242e 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-c5a2a8211935.txt +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-c5a2a8211935.txt @@ -1,24 +1,24 @@ event: message_start -data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011CebF2QAiWMfe3wYTGt8A3","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":4,"service_tier":"standard","inference_geo":"not_available"}} } +data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo3RqvFVsqfTRRXQFNKU","type":"message","role":"assistant","content":[],"container":null,"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":6,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} } event: content_block_start -data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } +data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } event: ping data: {"type": "ping"} event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"The capital of France"} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"The capital of France is Paris"} } event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" is Paris."} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"."} } event: content_block_stop -data: {"type":"content_block_stop","index":0 } +data: {"type":"content_block_stop","index":0 } event: message_delta -data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null},"usage":{"input_tokens":14,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":10}} +data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"container":null},"usage":{"input_tokens":14,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":10} } event: message_stop -data: {"type":"message_stop"} +data: {"type":"message_stop" } diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-c5c219eea6ec.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-c5c219eea6ec.json index 39f2bf52..dfc55bec 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-c5c219eea6ec.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-c5c219eea6ec.json @@ -1 +1 @@ -{"model":"claude-haiku-4-5-20251001","id":"msg_011CebEzUnUUrAGcNZdLgcdU","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available"}} \ No newline at end of file +{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo3Q8e1zkMYoCMReqh74","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":14,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-c9d6119efe32.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-c9d6119efe32.json index cacf4fed..a6ffc892 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-c9d6119efe32.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-c9d6119efe32.json @@ -1 +1 @@ -{"model":"claude-haiku-4-5-20251001","id":"msg_011CgfD4tV5rNCD9FaYysAAC","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":20,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file +{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo2zE2JoM6EX8AMiQv7u","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":20,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-cd0936b910f4.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-cd0936b910f4.json index 31224ffb..06d53f11 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-cd0936b910f4.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-cd0936b910f4.json @@ -1 +1 @@ -{"model":"claude-haiku-4-5-20251001","id":"msg_011CgfB8UM9ZCma5WTzgzT9n","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris. It is located in the north-central part of the country along the Seine River and is the country's largest city. Paris is known for iconic landmarks like the Eiffel Tower, Notre-Dame Cathedral,"}],"container":null,"stop_reason":"max_tokens","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":50,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file +{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo3AhTbavLtjWExVbVKu","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is **Paris**. It is located in the north-central part of the country and is the largest city in France."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":32,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-ce330e7b7287.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-ce330e7b7287.json new file mode 100644 index 00000000..161eab1f --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-ce330e7b7287.json @@ -0,0 +1 @@ +{"model":"claude-sonnet-4-6","id":"msg_011Cgo2zqAA3MaayVKUrnMcf","type":"message","role":"assistant","content":[{"type":"server_tool_use","id":"srvtoolu_01DwjpnnkymfHpPtd7TkPtbw","name":"web_search","input":{"query":"AI news today November 2026"}},{"type":"web_search_tool_result","tool_use_id":"srvtoolu_01DwjpnnkymfHpPtd7TkPtbw","content":[{"type":"web_search_result","title":"AI News for November 6, 2026 — Daily Edition","url":"https://aiweekly.co/ai-news-today/edition/2026-11-06","encrypted_content":"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","page_age":"0 days ago"},{"type":"web_search_result","title":"AI News for November 5, 2026 — Daily Edition","url":"https://aiweekly.co/ai-news-today/edition/2026-11-05","encrypted_content":"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","page_age":"1 days ago"},{"type":"web_search_result","title":"AI News for November 6, 2026 - by Russ McGuire","url":"https://aisdg.substack.com/p/ai-news-for-november-6-2026","encrypted_content":"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","page_age":"0 days ago"},{"type":"web_search_result","title":"AI News Today, November 7: Top Stories","url":"https://aiweekly.co/ai-news-today","encrypted_content":"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","page_age":"0 days ago"},{"type":"web_search_result","title":"AI News","url":"https://www.artificialintelligence-news.com/","encrypted_content":"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","page_age":"4 days ago"},{"type":"web_search_result","title":"2022 in artificial intelligence","url":"https://en.wikipedia.org/wiki/2022_in_artificial_intelligence","encrypted_content":"EtENCioIFRgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDHDBrlOL+0URiQ/u7RoMwW6brxQADnSfI7NpIjCDkNrOB1ZJ4ut+dN5S1lEAe9nXchjWu2rvYoHb0f7P+MjgZEfePy92eS9TirX7mTIq1Ax6/hv0vmI/BTE6y+y/iewoCBd7gqDbS3rKYbQA4foyfGIprHsIdTvuz9oCxS2tsZ6INJZO7RMDKkxQwl/aOCMadQyKPot3qjCJsYJVEhegbuB/BvBai9bi0swK1laUmDSz3EMO/enaqc+HFjZ98Eg1OfVHAYGyDp8Qu5gtr5wU+N53RWP/V33+ax1E/10nWSIkkuW7hpeTcvte3woYgQ+1+8BNj3EfTYx9sJvRBFwPySjOxtI+enUNu5hepA0LogojRV/UlPQWJusKCvanLIXNysGJSPEXgt0Uwup3gZ9Z4pUtCH+aBIXC4C43M5V2I0ahwkkthW0SZa0GP8D21DLPkdXsSn9g0ZWdfAsPk+2T8OEChC8SrVGAPviDOUzB4cREcF/58FMKnJdcyWRoUnBafLMCOKzgC2Dx5p4r4v4Za2MPboKlSKUXaRktBtDUj4OYKduCDih7S64OO2INQwkJ+fE6Ro+jL1XG8DccVcWFxgIdp6Eg4PZEQkvsPSdX7XFlpGpSYnYAdp4j26lehUHonR09L8Gs1Xjf/V2fWHsgZk1YKI4s88SlyYl/UwWp9seI2onutpjPBz1llh0vI5/rUjwVc3YgqR9+y2Ml+TwQ1R2pnasigTwZ84raxEJZL5aPWhG91r7zRlS6T0jyGoWR/vFq9GYnJWZ2S9mm09EPG8q5vtJ5IDQO7tBHSh2yi5VFbSumNimndW9Pip32LvJdhNhJfzMJCU5oiQHVtnu7OTaK9EcjISxleS6T4QjPbh4HijvT/EM9SZl0TFEuvqX3CxXI4jXY7xeS0ZZXOo+T+VbGAbd+FCdslRer7uMgDFkxLmv1VQ5hNnRnJeZRc9bgcznIZ1j/mVA7rUL/ru9nRfCoh6xO+EbzJkUPso6dI2rBYkujjc8pUduFyDCY5F7wVFdqSbQ1dMv/6qH+cHst1qxFKI9rCRcLPjaolz2Pi+occfB2y9mT5/l3XEqD9q7P5TqUfVLs3S8J/fRUfyGtjRIS1oL0Lwbs9pXed3hvSDB/uMPJaJdKZhUEjT7zgGuzn/BkMMWL0nPzPVwU1Zrwpn6igEZfYbgYpoAUoZz/jUPAvtNueBtQUu3SHBPU6nU9AIG7/cWun7JLkKxTrzSwL0tivnMecnflVeIg9HaugfiyaB6HBZfEsRH4ga/kTIJF8xxWteRW4EBPEodnoGiQBDLczNNzVDRPecWWx4tHQsDxbBJE70AeToTOyNEUzjz5s1eV8ojO0WM7EtR0EEd5LmWkXUQGmm43dnf/9Idn2EmUlnzEtlNOltGAA9IYwublHNe5bcH+EtMn6uzAx+vhgNg2sZFYIbXppZj1V+l2V83DnZXyRZTO4CjZwzcOLM+SatF1Roibfq4hQ0DY2+D9ZqnWOU5KHVyXramK/QkQ+5EXx4hree09DLSuVqJ+QsEQcgXZdoJh4kjPVJNrzVS4lqRc6sBzwgTA7Akygk78wyuh0yaw7ujzzX0g/E8iO1PqIHZBd6vr/YT159hN6o4EUk72u7Epvt5iqD/rDNYCNuMRBgFcvEyFWJzK7znTpaJwoC6sBHMAWP+27Cbnz/LcpSBIZ0aT9JfipNwQa/k0cMj2tU1QSob/J6c4YpxIGhGRAbzjHOjkLV2XTzfShzTaG6YDSCxh2gXFAFf5mluN4XKXhsx/ODOSxHmoGTz6vjLXtrpydwwGAtp1YbukrEipFw/+tRntiIe62pUH9ZQfE6lSRKVNmvns7dl57hG1ujC1RutcPe7WZsDjCvo+Xs308+7FZLkKp2nyum0pjCHBRWtxzAj8MNCWfvcEnmdgmjcye6N/w6L5JhoLvI+ou9XHivwjyWBjTbaWJUkZE1sPPmiC6AgScmi70NJZla4ZAvUQF+CCsBQ+EkSkHQImdY/4AyJD4+GqQn2mFjZTRzDuiKUhJcAApetvOG2fBBvU7OjN8edwQ9Ieh/DVacBQIvnesoSBT3Chq0MPGuy2f4BOjpC0qlkOCxaN5MkfpFLRkoVVCHth8VkKXpQX4pjz4dV7FsbmxiQPmE8ngrqj02HU96Bw0i1cSFysFAMqtXxMUSlH9Gs9VwtsSjXQ8MONQdBLSoFjUtS9/UQbMJXPCgjZmAFKU3qxRijlDRnsFzchGuwi+B14oUEkWTRXWmQRV8aCeC///F8YAw==","page_age":null},{"type":"web_search_result","title":"AI Seoul Summit 2024","url":"https://en.wikipedia.org/wiki/AI_Seoul_Summit_2024","encrypted_content":"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","page_age":null},{"type":"web_search_result","title":"Xinhua%E2%80%93Sogou AI news anchor","url":"https://en.wikipedia.org/wiki/Xinhua%E2%80%93Sogou_AI_news_anchor","encrypted_content":"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","page_age":null},{"type":"web_search_result","title":"AI News Today (Nov 5, 2026): Data Centers, Google Schools & More","url":"https://killtheai.com/news/top-10-ai-news-today-november-5-2026/","encrypted_content":"EsINCioIFRgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDIlvFayJWIwE94NWrhoMrjkiAqqUiuROJDa8IjCc7eqpZfFQme0xavPIg7d4tM6woTB0sUvdIgCUs4nE/WLnatkwmqACSdfgiY822RsqxQxTldZb5yySjZ9LIaHRS28jeWVt79dYn1pjsqkjfi7Jev/oApdJ8p+c6fxXwsdx7/PVfUGv2U5ndPAyerJbzMnrSR0pFQh7YHzlku7KCKbu7CVJV3UWzFORA2P1m0FzDKZ7Pu+g3EzvxC5gpc8/KZGM2j3LB6xxPofoeocNQN5iCaMolCLdrJUl+lDcAyShIchOFEO8YRmcT6j8C+8vJZcZslpb12+c1LcUHPR3i5CtVVqd1oVjgS8EG+e8jeowjvBocO8WKphFj7Lw8gL7F/CPwC9Xh2fhIxSFenW1o/c8tIdnGCKvNJSLdghq3osXDd6zP+k+BzHAiiQ2v58MO1siaPvHBn9QoH8HRftM3cPDecUBTIttcAZNJTaTJlQIwcLsR6qeVAhkLDHU6slzetkXmAOrd7mdVjs/9D3xcdQt4Y16Ec++tKNZcs8aBFw0zHZtDNNqCVtwmSGaNuiwr6DoWnd85q96rPzXYXrQ5oeqS/zTHCLnRuNwbFJz3F/rAoP03wjOPyiTTSUeWohXeGsX7hgZurI8/yW4tcVQwbidgwBzFbsIyh67bOEDpVhf1KST+X6o1WFMcotity8H7bZEQBLZkSH1dbvLNeUE8e6o3Jv+Lp0Ca9qB55t6MK4iHjxUqe8NJeD3Skw3LnYxgzpGpCZPXp+quMQFJ6Maa1BrFqXfIbXvIQSlAs/9+jsF8UQNxiVRdzsyzf/x7+/qGJQ2ZhvQ6odEuDjlVFgfCNXU2KKI7UimXKNwmM/W3Fj3xeidxd26KV2sSoHSaM91x4Z2JEa5KTs7EKCUQCGcvOM52Cae3308DpUZN0aE20amQgwICd1KNn+lCKTl1vLryRJeVwWsAfYGiCHSblLcVwzwCvGHLVH2kemQA5FNgVUoPsbUqxw/zufQoKgEIiOhnQ2pYAyfhVkqkHl578L7pO6CdsgCMWQ716w5vS6vXjgn1wRZ0tgrJ7/uz0Ig6pDzdtyGsGfcubSMmq2jhKc8AYYnk8HHhNqAYMp2Q0lhNqZQeaots+mdCwavmOKRj0SerCczX+SQqr/HntrO6r6Ya5WoX3VkI/uzNCTnT1yrut1WCv75rjF+yLQabJpP1Lg2rDAopVB07PUz4jO88irNk53X5xHMs77zxtqqMun47zFGg4xyV5bqPgJFNlF+EoQNV9ioTEzGXAsXFFAyM3gYAs25/4pVdPyM3IoRgCY9IwPb+TI0lBt9jd3T7/hjOcfOlKPtljs8hKL80w39zP3nSgRS+c8PFUOtLmwEgrnS/vhNDcJJ8c9BL8TBU6/VhcviT/JCQqSA3pHK3LzEmcwJkCs5gERI1GD4l3NS1+NNmzDZAGSivVyBowEEfh4QFJsfJggkH0UGkaN03zkXj4SdwyhH581xeY0dxye42bb84Cc9UPSlmLpDJCoAI7z7Hd1MNAPQOgSaHZIhYTOG5Z/9t6okUVyex3x4V1Nt9IrV0WEuyRckwWoo7VDaijCNq+mr4cu6TjW2TfjqCdNvqO2j4q6edBd+X4F1JyI8MQkNF1fr57BcXlA1KPx9/peh7YQd+Jgez3eysykuh51JAFqYKxIOHMKSKY+VEbvblU1J3/CfB/U7YuI4oXZd5KXUdzM5R49zVEkl/Lcw7YLlUnydqr2wzkq9SORItlg6wKRJyaWVtVjy+HlOBAT31ZqsYqxNhgWMGosSMJeG6xPiXxd9yvmPsPnXPfObThFLkiKN+0dU8HDPwTL3BHDtPF6bVP6XoFyRXxTvdzq9q5HkP+9J5C3YUi8vRbMClUPnf1J30oVTHm8kWbWVs20pj/tfus2Cok2MwOv40rwg03Fn0Ma5o0xgK4ePebuiGlJf2f4281YYWyKCBSjitfevTOgcghmUIAghAhHCJTR7XQfrbN2AbEVMH+5ih99TB21mHXejLsMsAJTwstbTTYn0Sh5KLHugj5m3cVEZB7WHgFpHFn4QM3srIWzgUlayJZg+iKpl5D6x1dfpe/64mhask/rvtqL6KG1Si2OErFaMlD5DbJyoKRM5ymLlPsvzpjHnEnAHZVdFFWr6EgeySIqqxQlhtx2CdgdDZqYSOhehIYVexX/vZTQcBbUBOYjK5ulwnXs3ifP9ZXJkda3fL9XQGdbVLG4HNvrp9H2YCloYAw==","page_age":"2 days ago"}],"caller":{"type":"direct"}},{"citations":[{"type":"web_search_result_location","cited_text":"# AI news for Friday, November 6, 2026\nNov 6 · Businessinsider · AI Business\n\nThinking Machines Lab Raising $5B Led by Accel at $40B Pre-Money, Tripli...","url":"https://aiweekly.co/ai-news-today/edition/2026-11-06","title":"AI News for November 6, 2026 — Daily Edition","encrypted_index":"Eo8BCioIFRgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDEiJRi6YZ68YOqZ1choMeQeKyb+u1ixs5NLwIjBfIvKW0oc7DxT+RQglS4Ao8ZRel6TOqOJfIXiIdQcAEMEE4qwXVBVD0HVRdMU3BmEqE47+PR+UZ8eenhEDAwzFn5fPCTMYBA=="}],"type":"text","text":"In a major funding development, Mira Murati's **Thinking Machines Lab** is closing a **$5 billion round** led by Accel at a **$40 billion pre-money valuation**, more than tripling its roughly $12 billion mark from last year's $2 billion seed round."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":11091,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":149,"service_tier":"standard","inference_geo":"global","speed":"standard","server_tool_use":{"web_search_requests":1,"web_fetch_requests":0}},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-d19b4e5d2ca3.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-d19b4e5d2ca3.json new file mode 100644 index 00000000..adca195d --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-d19b4e5d2ca3.json @@ -0,0 +1 @@ +{"model":"claude-sonnet-4-6","id":"msg_011Cgo2zdFYnaw3dWLgCygGL","type":"message","role":"assistant","content":[{"type":"text","text":"Paris (Paris) — though the local spelling is identical, so simply: Paris is the capital of France."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":12,"cache_creation_input_tokens":1366,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":1366,"ephemeral_1h_input_tokens":0},"output_tokens":25,"service_tier":"standard","inference_geo":"global","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-d2d0682969b0.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-d2d0682969b0.json index 8cc2c32e..923c63cc 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-d2d0682969b0.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-d2d0682969b0.json @@ -1 +1 @@ -{"model":"claude-haiku-4-5-20251001","id":"msg_011CebEbwE4SrRNwGzjZydCq","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is **Paris**. It is located in the north-central part of the country along the Seine River and is the largest city in France."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":36,"service_tier":"standard","inference_geo":"not_available"}} \ No newline at end of file +{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo37zFZ6Wy6YE9emDR57","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is **Paris**. It is located in the north-central part of the country along the Seine River and is the largest city in France."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":36,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-d7272d43310d.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-d7272d43310d.json deleted file mode 100644 index d3fc65c4..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-d7272d43310d.json +++ /dev/null @@ -1 +0,0 @@ -{"model":"claude-sonnet-4-5-20250929","id":"msg_011CebER4qPptWWLL5nos1fi","type":"message","role":"assistant","content":[{"type":"server_tool_use","id":"srvtoolu_012jwHZbUsD8YwQ2PmJfaAmi","name":"web_search","input":{"query":"AI news today"}},{"type":"web_search_tool_result","tool_use_id":"srvtoolu_012jwHZbUsD8YwQ2PmJfaAmi","content":[{"type":"web_search_result","title":"AI News & Artificial Intelligence | TechCrunch","url":"https://techcrunch.com/category/artificial-intelligence/","encrypted_content":"EukECioIExgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDHiiDiMIrsjIAQzF1xoMdW3Y8Q59ciJcmwdhIjCBxPG9C7bzR1FM0BWbP76uz0cF4qYUBsL3pV+e/hYwqjbawAhAEp4b3WhhYflp6Ysq7APbkZO9K/ZbA8L7xWaU0XHz5atSGmDzf+B/OtW2CudXA/MCAalDwfO+dI150GPvlKmcMGmmxMuae3iw59kaZHB2YvJ66iJTbK+feagQHT96N/EsagcG3jWCqOfZJqWJoQv8l4vp0A1Bp5u5T3isSP4tbYDfZe9oOBek90P8g9KpnApVnhVQ5yMyczAU9xoan+O6UWlqnQFdMkrE4+KCakWK8RonII+hV9i5+BGuECGiFUi+yYT8yrgSbgz4pZRXiRxNhsvorrGl8AqhMDWMf+JGBN3pH4LVnILE2Ie9uSYgjclwXgXc3jAMmrMYdZVIR/M20QUz3daVa0lz6K8m5Ni1DEy325BBn7SuMzJTnHGMOCYC51MnQUFx/yKM/cjk2ZqcbA0AxLzz1raYo//mYdTtRqk52IYHhmBAt7d0MnpwL5mcBgyBv8FcVXu//wdVy4OfU849+b+XbucTGypBCnaYeBpo5I6+wZZbTx1ulVDUrA6KTXhOkQ5tuxUtccqK64lhv7Ix2pZvhThczAPGvPeZKqi6o0VMKIolEmja5PDXuKuStj1ZTvdNRMZuHm6+pTvak7TxmVxAqYY/8grBHN7NVJ2Ixba2HkHSq0yPyQN4r37iHqXQKMFoo1bkI7rrY9VwURjxMj9Kfr2ZmNMYAw==","page_age":"1 day ago"},{"type":"web_search_result","title":"AI News | Latest News | Insights Powering AI-Driven Business Growth","url":"https://www.artificialintelligence-news.com/","encrypted_content":"EqYJCioIExgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDA6UMi9Wr7J9tjDLLxoM0m7HXUCKR4cWCMF5IjA5p/vXJs3idWsC6tCeupkVZlZdi9urlZ9FE10P3bzHMK9lc4dckGO32jGNNoiwOXwqqQhl5Z2vGFSPdX5xYjXSiziWiKBMB9QeodKKvJbdGUQ7aVuvA2CErJTW+6C6Rs0wW25cJa/antx7MbkEzGzReNdd+eb746MOIzuPSh10ZB905ozznudYszqfqhRBQnClZnh6kRnbrWSGwO9UPh4vfeuWdj3DyxWrPnW36oxJda963P6kiM0npDqNAuOiuEfzxMyr7Pa5T1o6sFEa/vxDmo7cD1Sh6UzPdVxmj4Si7iUgVYw2LSYTIHZhttUY8253XrCQIXdJSEI4CSelMUfnpGZDZ9tbBb+v6Wg04IERoVNP9Iub8vAAl8WhE12EwwEjcT0uFpJHLeKe9VoVTplmVSKcE+RaXwiGRE9yZM+/uHRHuedWLytsOEfAvnk7GlvTzobWxrDkG3iduitjy8GAn8BogJM37yT6a3CrvJlGh2IoYJS18Y3txm21kygj7yqYftJTYfUaELNyNCMKjao0Az9+4C27AqWxzWM80m9l68129VHTNiP+OlZnrCugcVcmm9YztjRXRbfVjrQYurpJP75IAKyUT1FjzP4NXO/FRN4zc7mlqASwYRIu+j9gejSAN4dreXhTk/v+bNJDQKCemWriKUREb130DIPBVbaC2eXP0pxPuBVtoroJR6CMaXrtoCGDyYoXYWOtzFHzhNrxm/28wfTJPEIn2VsKr0QoD9nonn16/gcKLisXhfD3av6izCY23zROsOj+q4wvM5/3sh7IyLzpWqWvYIDzJJ2+8ZMURFZl4aTsz3Snmr9s3w53PpT7xAx4hiL/dwF+dADKVfKVf3+zLfNrNkypfv9BmG/ONDcjbR9JbvBqKrrorNcDhfaosDaBUqxcFhpl/LkPpvK2MD9Ew8YTq0kwKlRnJkCIiAxRT1Z3aspV8Em0qKzcrQRIBX09hSyRKeFOX4neGbbh6aTHa/BW0Ao8LWUhfTCa5Vkdx7+6/SnSkEItoJv5XAXlhGbWEmD7ywIhwdIxmzAg9fu8AzhY6dZeo+Zrx151W9TB9H0OLGZz7RtHDMiEoRQDT8m1szUDoiEQnPbdp8yJoQDmR7+c36H2umLWdPO3j1qnjjqbolh3/lzLsY0wfTatW1n1LNy+/WPZUV1ZATm1yQ8xM/cMuYK2l+eBX17VLrOlgnvVoHIzOe2AdJt2SYKF7Qh47dkOumMHd7TR8k19sO0OsL7sGuSYvYlRUiZSitiyqWbMYWbwhQGK0tRq9yRKvJhLJynalePMteMuTUu5Ng24DjN4WRyyfyBTYK6alinw4Y6T43+bM8Jp5FOK3j9+MLuaLsA0mPi7cWRjZkRHtFhVAzTBbi183V/eqZcDRibKE0IrYgq796Y0HfDiEUXm29rXaM2WHwrjjWpHnphQLtaW5KKhl5DVADT2MKAThNeAfXCumE6Eh85qeTS964bZCltCZbB5fLcYAw==","page_age":"3 days ago"},{"type":"web_search_result","title":"AI News: Top Stories, Ranked & Explained | AI Weekly","url":"https://aiweekly.co/","encrypted_content":"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","page_age":"5 hours ago"},{"type":"web_search_result","title":"AI News, Updates, Products and Reviews | Yahoo Tech","url":"https://tech.yahoo.com/ai/","encrypted_content":"Ev8HCioIExgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDIMox7/RgzEhM1yVWhoMw8akKxSmCHZpk0diIjBmuqi0vp81qgnPLxYkw35A/KqEpwBObuF6hAdPeRd6Fh96ekSdyVP197jtIg6npdkqggfcLSuevfU697/WwLZmQgeqIvGQNGS5K8OshxNMAdxGkXm/l7I6eQw+8sTXhlwlgDeANy4DxKaTDgWLWrpY30pJ/eVUxgEMWc1x16A3DYixzSXfXtBTWe0w2IO9ceXGjDqlVSFsam2rtzw4rO8XvyALeNLT6D2NIFB2PUNUqIeKDjdBfKhb037dDMbWBgIzGv5OX5/iMvq4CpFfRZImw9MRqivELnre6wLNQfaOuTpB2I4HqMq5f7NsrgUYUUoodHHuqcIE5AtS3i5nb0fa1Pm3oj8iaJ+6YBmNd3FidOH0/erLgx0mBIzbiK53TOIey7XRPlmezS+JafSo5ujHaU3y7faZ/J0ZDOur6wR/A8gYwu37YO77I4XgCPS8u+NRcUsowa9DRH3YqDkewQk8ALNsMzvBDMSK3rH34Zjqv4e2bhOrxtCorRpfp6Ma9fNnzZs0SDRHfDo70Ud/ObVMMGTl0WsuSoTjApKQvFm7rf9rDD7/KgsIQmGFMa0E2SyNeObODeihXFcAV74IOhEvd0MftMUzliIFU6pxG5+1h+x9p0lBrgtn2sV2Xv1ooOKbbdMxljEIKUwer/CbNEVeR0nOsH1e9u/pXkD9QRIDcNJW6bI3R808lp/7+8k5u/O/1vwzW8c3zgnlu3w175uyQCiaVj3fSseIWb7OP6joxCjkGTOmaa8e+2Ts9gReIZDNYbF+Al919EAO1T6x1bIBb9sL/Rpm8th1riBxT8w2yQz6nL5cUpmOulb0gzhh3zrgSpC/0RvrMSjEaT5Wo0x8LopqIyjQusPZ+uMkMYmNmO/Snav8mRlyiBLiYke1cI+XaSQm6L51ByNFnGB/tbhEuUQLlgbQOV3BeNzkIE6bYPVNJYnn1SS5M08chfyjzZf+LV9lVbPxzso0xp/O9SlOkCXRqH5xCNwM5T1ShcYHT8UxwfL0PtCH6scUDGteaQgNfe7H4k/3TNIJAiYXdZVJd9rOQtWMfgWUji9tVjek9+5RnL4/TGpxpmjhdaHm8h+Mxo/Sn3maAAg2XqAUMKm5PJVYR9c1ujSxHtKAGiVpB8yTjfSLj4F5CzetADaC+8bIbYTSKlnHQvCEb61k6TBqJS0HNScKKHxVgPxALYtOXw6kBAfBtwBN8AJ5H7mpcdri2hsRmwnTAd4186DHT+HTz85qsqDo/afn/dZJFKP48q6GLbTQGAM=","page_age":"6 hours ago"},{"type":"web_search_result","title":"The Latest AI News, Insights and Reports | AI Magazine","url":"https://aimagazine.com/","encrypted_content":"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","page_age":"1 day ago"},{"type":"web_search_result","title":"AIDB Today","url":"https://aidb.substack.com","encrypted_content":"EucCCioIExgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDDcCpTw8wzHUDIXuvhoMT/aaopDeAzcuDPEfIjARuWTZOimqV3777CIhFqXdMCrno8+WujqhQPJiCzBaUtGJC4Ugd9i/y0M4JUGRbwUq6gEW7ihurLwGyu+pG3USqORjmvFcRuAmEOGaguyeLo4VLVWoPJsS1adVrTjpJ14DPcuMb4kAYLeRLthT14DB7BaViITddZTtClEO30saUtQCMwCijGriLwPuLKaagULBYJjDo13BvK+FIeQWbDFNDuS3jwlDgixRZVhxblkOw7H/0OQvx4dxsVJkNoN6baJ2av2Mn3BX5PSFdG4LQ/GOn86rHfq2WQm01Fz+nw/gayyn9qdiDELkBhclaL3SbMQONDsB52ncs54XKIvtanpDZ8chTTHaCTPACPf1VT4wucEOQ6y7cWfxxdztZFAYAw==","page_age":null},{"type":"web_search_result","title":"artificial intelligence newsletter","url":"https://www.foxnews.com/category/columns/artificial-intelligence-newsletter?page=13","encrypted_content":"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","page_age":null},{"type":"web_search_result","title":"artificial intelligence newsletter","url":"https://www.foxnews.com/category/columns/artificial-intelligence-newsletter?page=9","encrypted_content":"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","page_age":null}],"caller":{"type":"direct"}},{"citations":[{"type":"web_search_result_location","cited_text":"Meta is updating its AI glasses to stop recording if someone covers the capture LED and cracking down on covert filming and harassment. ","url":"https://tech.yahoo.com/ai/","title":"AI News, Updates, Products and Reviews | Yahoo Tech","encrypted_index":"Eo8BCioIExgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDNAhfkEkyxF9kn/q1hoMqjgcUKr0V29W+D/vIjABt4oVJQzUfvtTUAnpK7u93Mm1TBKfOeW7NW+JzSofrd2ePCus7WWuDjqtT1QFAE8qEwQAH7FBPuBGxTl5gt/lvhkZ2WAYBA=="}],"type":"text","text":"Meta is updating its AI glasses to stop recording if someone covers the capture LED and is cracking down on covert filming and harassment."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":8615,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":101,"service_tier":"standard","inference_geo":"not_available","server_tool_use":{"web_search_requests":1,"web_fetch_requests":0}}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-daa4ffb43d25.txt b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-daa4ffb43d25.txt deleted file mode 100644 index 6c28a4dd..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-daa4ffb43d25.txt +++ /dev/null @@ -1,27 +0,0 @@ -event: message_start -data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011CgfCzzxeootgAqfzFVHrK","type":"message","role":"assistant","content":[],"container":null,"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":22,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} } - -event: content_block_start -data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } - -event: ping -data: {"type": "ping"} - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"1"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"\n2\n3"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"\n4\n5"} } - -event: content_block_stop -data: {"type":"content_block_stop","index":0 } - -event: message_delta -data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"container":null},"usage":{"input_tokens":22,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":13} } - -event: message_stop -data: {"type":"message_stop" } - diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-dbc242fed9a9.txt b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-dbc242fed9a9.txt deleted file mode 100644 index 234150a5..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-dbc242fed9a9.txt +++ /dev/null @@ -1,27 +0,0 @@ -event: message_start -data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011CgfD1KfYwV1vzrTkd12Pk","type":"message","role":"assistant","content":[],"container":null,"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":22,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} } - -event: content_block_start -data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}} - -event: ping -data: {"type": "ping"} - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"1"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"\n2\n3"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"\n4\n5"}} - -event: content_block_stop -data: {"type":"content_block_stop","index":0 } - -event: message_delta -data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"container":null},"usage":{"input_tokens":22,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":13} } - -event: message_stop -data: {"type":"message_stop" } - diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-df70de7764ec.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-df70de7764ec.json deleted file mode 100644 index 781324e5..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-df70de7764ec.json +++ /dev/null @@ -1 +0,0 @@ -{"model":"claude-haiku-4-5-20251001","id":"msg_011CebESDKQWd9oh1mkEkKGn","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":20,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available"}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-e66721e53d02.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-e66721e53d02.json new file mode 100644 index 00000000..a673ca76 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-e66721e53d02.json @@ -0,0 +1 @@ +{"model":"claude-sonnet-4-6","id":"msg_011Cgo2zQQtZofapiJmYzkPB","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is **Paris**."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":12,"cache_creation_input_tokens":1991,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1991},"output_tokens":11,"service_tier":"standard","inference_geo":"global","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-ebc50622068c.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-ebc50622068c.json index 82650357..916888e1 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-ebc50622068c.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-ebc50622068c.json @@ -1 +1 @@ -{"model":"claude-haiku-4-5-20251001","id":"msg_011CebEz9uAfja6KnFaam54H","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is **Paris**. It is located in the north-central part of the country along the Seine River and is the largest city in France. Paris is known for its iconic landmarks, including the Eiffel Tower, Notre"}],"stop_reason":"max_tokens","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":21,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":50,"service_tier":"standard","inference_geo":"not_available"}} \ No newline at end of file +{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo3Px4XyrbgFFdfCQwcu","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is **Paris**. It is located in the north-central part of the country along the Seine River and is the largest city in France. Paris is known for its iconic landmarks such as the Eiffel Tower, Notre"}],"container":null,"stop_reason":"max_tokens","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":21,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":50,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-ecc8763eb562.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-ecc8763eb562.json index 6813316d..6ba229d6 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-ecc8763eb562.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-ecc8763eb562.json @@ -1 +1 @@ -{"model":"claude-haiku-4-5-20251001","id":"msg_011CebESYGvmW58pCysQjmVr","type":"message","role":"assistant","content":[{"type":"text","text":"I can see that you've shared a PDF attachment, but the document appears to be blank or contains only a white/empty page. There is no visible text, images, or other content that I can describe.\n\nCould you please:\n1. Verify that the correct file was uploaded\n2. Check if the document loaded properly\n3. Re-upload the attachment if needed\n\nOnce you share a document with visible content, I'll be happy to provide a brief description of it."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1592,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":103,"service_tier":"standard","inference_geo":"not_available"}} \ No newline at end of file +{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo2zXaFLgtn6UaaDcNaS","type":"message","role":"assistant","content":[{"type":"text","text":"I can see that a PDF document has been attached, but the page appears to be blank or contains no visible text or images that I can describe. \n\nCould you please:\n1. Verify that the correct file was uploaded\n2. Check if the document loaded properly\n3. Re-upload the attachment if needed\n\nOnce a document with visible content is provided, I'll be happy to give you a brief description of it."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1592,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":92,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-f3f5351f7383.txt b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-f3f5351f7383.txt index d9f5a9fb..96edcc80 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-f3f5351f7383.txt +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-f3f5351f7383.txt @@ -1,27 +1,27 @@ event: message_start -data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011CgfD52ZG9rWGVQ1fJXWPT","type":"message","role":"assistant","content":[],"container":null,"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":22,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} } +data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo2zjqgiYvtwg9tAZDEU","type":"message","role":"assistant","content":[],"container":null,"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":22,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} } event: content_block_start -data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}} +data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } event: ping data: {"type": "ping"} event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"1"} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"1"}} event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"\n2\n3"} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"\n2\n3"} } event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"\n4\n5"} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"\n4\n5"} } event: content_block_stop -data: {"type":"content_block_stop","index":0 } +data: {"type":"content_block_stop","index":0 } event: message_delta -data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"container":null},"usage":{"input_tokens":22,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":13} } +data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"container":null},"usage":{"input_tokens":22,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":13} } event: message_stop -data: {"type":"message_stop" } +data: {"type":"message_stop" } diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-f5ba024a3c61.txt b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-f5ba024a3c61.txt index ab99ea06..b297eae1 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-f5ba024a3c61.txt +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-f5ba024a3c61.txt @@ -1,78 +1,24 @@ event: message_start -data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011CgfB9d7mGU1rf2qQEAJQX","type":"message","role":"assistant","content":[],"container":null,"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":4,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} } +data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo3C6yEN3yLLXLGi7Wcw","type":"message","role":"assistant","content":[],"container":null,"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":6,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} } event: content_block_start -data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } +data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } event: ping data: {"type": "ping"} event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"The capital of France"} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"The capital of France is Paris"} } event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" is **"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Paris**"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":". It"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" is"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" the"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" largest city in"}} - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" France and has"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" been the country"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"'s capital since the"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" "} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"12"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"th century."} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Paris is known for"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" iconic"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" landmarks like the"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Eiffel Tower"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":", Notre"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"-Dame Cathedral,"} } - -event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" and"} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"."} } event: content_block_stop -data: {"type":"content_block_stop","index":0 } +data: {"type":"content_block_stop","index":0 } event: message_delta -data: {"type":"message_delta","delta":{"stop_reason":"max_tokens","stop_sequence":null,"stop_details":null,"container":null},"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":50} } +data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"container":null},"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":10} } event: message_stop -data: {"type":"message_stop" } +data: {"type":"message_stop" } diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-f60cef52b21d.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-f60cef52b21d.json deleted file mode 100644 index 5588c0bb..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-f60cef52b21d.json +++ /dev/null @@ -1 +0,0 @@ -{"model":"claude-sonnet-4-5-20250929","id":"msg_011CebERxMkBKgAs1wrCNGyz","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is **Paris**."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":12,"cache_creation_input_tokens":1990,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":1990},"output_tokens":11,"service_tier":"standard","inference_geo":"not_available"}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-f927033e208f.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-f927033e208f.json deleted file mode 100644 index 77a0c896..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-f927033e208f.json +++ /dev/null @@ -1 +0,0 @@ -{"model":"claude-haiku-4-5-20251001","id":"msg_011CebESgJsYsb17Hg1aE8V1","type":"message","role":"assistant","content":[{"type":"text","text":"I can see that you've shared a PDF attachment, but the document appears to be blank or contains only a white/empty page. There is no visible text, images, or other content that I can describe.\n\nCould you please:\n1. Verify that the correct file was uploaded\n2. Check if the document loaded properly\n3. Re-upload the attachment if needed\n\nOnce you share a document with visible content, I'll be happy to provide a brief description of it."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":1592,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":103,"service_tier":"standard","inference_geo":"not_available"}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-f948f576465a.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-f948f576465a.json deleted file mode 100644 index 21e07fa9..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-f948f576465a.json +++ /dev/null @@ -1 +0,0 @@ -{"model":"claude-haiku-4-5-20251001","id":"msg_011CebESLUWqzcZnL57B2rdA","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":20,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available"}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-fa9b4d1d898f.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-fa9b4d1d898f.json index 60855358..093e5199 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-fa9b4d1d898f.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-fa9b4d1d898f.json @@ -1 +1 @@ -{"model":"claude-haiku-4-5-20251001","id":"msg_011CebEbgoPZyMmMoxaerLZ7","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is **Paris**. It is located in the north-central part of the country along the Seine River and is the largest city in France."}],"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":36,"service_tier":"standard","inference_geo":"not_available"}} \ No newline at end of file +{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo37oKEMoZCyKiW9xZmM","type":"message","role":"assistant","content":[{"type":"text","text":"The capital of France is Paris."}],"container":null,"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":10,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-fd3be93f9126.txt b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-fd3be93f9126.txt index 992dd5a1..9a4a325c 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-fd3be93f9126.txt +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/__files/v1_messages-fd3be93f9126.txt @@ -1,24 +1,24 @@ event: message_start -data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011CebEd3jkH8BFQQ5dq4tV8","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":6,"service_tier":"standard","inference_geo":"not_available"}} } +data: {"type":"message_start","message":{"model":"claude-haiku-4-5-20251001","id":"msg_011Cgo39AAdoWsUVjqTb42Dq","type":"message","role":"assistant","content":[],"container":null,"stop_reason":null,"stop_sequence":null,"stop_details":null,"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":6,"service_tier":"standard","inference_geo":"not_available","speed":"standard"},"diagnostics":null} } event: content_block_start -data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } +data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } event: ping data: {"type": "ping"} event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"The capital of France is **"} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"The capital of France is Paris"} } event: content_block_delta -data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Paris**. It is located in the north-central part of the country along the Seine River and is the largest city in France."} } +data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"."} } event: content_block_stop -data: {"type":"content_block_stop","index":0 } +data: {"type":"content_block_stop","index":0 } event: message_delta -data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null},"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":36} } +data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null,"stop_details":null,"container":null},"usage":{"input_tokens":19,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":10} } event: message_stop -data: {"type":"message_stop" } +data: {"type":"message_stop" } diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-01bea1556aa0.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-01bea1556aa0.json index e3c39da9..82041e68 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-01bea1556aa0.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-01bea1556aa0.json @@ -23,31 +23,31 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-11-03T02:30:48Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-11-03T02:30:46Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:43:23Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:43:21Z", "anthropic-ratelimit-tokens-remaining" : "11999000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "server-timing" : "x-originResponse;dur=1958", + "server-timing" : "x-originResponse;dur=1637", "anthropic-ratelimit-input-tokens-remaining" : "9999000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "application/json", - "CF-RAY" : "a547f57aeb186e05-SEA", + "CF-RAY" : "a56a05180ed19343-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CgfD5BZVveB3XuWm1oCTc", - "anthropic-ratelimit-tokens-reset" : "2026-11-03T02:30:46Z", + "request-id" : "req_011Cgo2zeAsXs8NZtaKV9JDF", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:43:21Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Tue, 03 Nov 2026 02:30:48 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:23 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-11-03T02:30:46Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:43:21Z", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-51957cec986ed6f5e20e8e25ed080c2c-9f2e5f09297f3bc1-01", + "traceresponse" : "00-26b829c27ada74582df1bf756377cbff-87260f0cfeb10071-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, "uuid" : "e5f96d79-f7bd-3715-82bf-179381ac01e3", "persistent" : true, - "insertionIndex" : 49 + "insertionIndex" : 6 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-07dd5a33f9ee.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-07dd5a33f9ee.json new file mode 100644 index 00000000..b712d484 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-07dd5a33f9ee.json @@ -0,0 +1,53 @@ +{ + "id" : "ceff900e-2107-3c66-9cab-12775eb22f02", + "name" : "v1_messages", + "request" : { + "url" : "/v1/messages", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"max_tokens\":128,\"messages\":[{\"content\":\"What is the capital of France?\",\"role\":\"user\"}],\"model\":\"claude-sonnet-4-5-20250929\",\"system\":[{\"text\":\"[cache-buster: 1h-block dev.braintrust.instrumentation.anthropic.v2_2_0.BraintrustAnthropicPromptCachingTest]\\nReference: capitals include Paris, Berlin, Rome, Madrid, Lisbon.\\n\\n1. This is guideline number 1. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n2. This is guideline number 2. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n3. This is guideline number 3. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n4. This is guideline number 4. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n5. This is guideline number 5. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n6. This is guideline number 6. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n7. This is guideline number 7. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n8. This is guideline number 8. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n9. This is guideline number 9. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n10. This is guideline number 10. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n11. This is guideline number 11. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n12. This is guideline number 12. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n13. This is guideline number 13. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n14. This is guideline number 14. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n15. This is guideline number 15. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n16. This is guideline number 16. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n17. This is guideline number 17. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n18. This is guideline number 18. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n19. This is guideline number 19. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n20. This is guideline number 20. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n21. This is guideline number 21. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n22. This is guideline number 22. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n23. This is guideline number 23. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n24. This is guideline number 24. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n25. This is guideline number 25. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n26. This is guideline number 26. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n27. This is guideline number 27. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n28. This is guideline number 28. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n29. This is guideline number 29. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n30. This is guideline number 30. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n31. This is guideline number 31. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n32. This is guideline number 32. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n33. This is guideline number 33. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n34. This is guideline number 34. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n35. This is guideline number 35. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n36. This is guideline number 36. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n37. This is guideline number 37. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n38. This is guideline number 38. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n39. This is guideline number 39. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n40. This is guideline number 40. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n41. This is guideline number 41. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n42. This is guideline number 42. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n43. This is guideline number 43. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n44. This is guideline number 44. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n45. This is guideline number 45. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n46. This is guideline number 46. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n47. This is guideline number 47. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n48. This is guideline number 48. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n49. This is guideline number 49. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n50. This is guideline number 50. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n51. This is guideline number 51. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n52. This is guideline number 52. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n53. This is guideline number 53. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n54. This is guideline number 54. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n55. This is guideline number 55. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n56. This is guideline number 56. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n57. This is guideline number 57. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n58. This is guideline number 58. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n59. This is guideline number 59. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n60. This is guideline number 60. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n61. This is guideline number 61. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n62. This is guideline number 62. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n63. This is guideline number 63. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n64. This is guideline number 64. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n65. This is guideline number 65. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n66. This is guideline number 66. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n67. This is guideline number 67. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n68. This is guideline number 68. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n69. This is guideline number 69. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n70. This is guideline number 70. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n71. This is guideline number 71. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n72. This is guideline number 72. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n73. This is guideline number 73. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n74. This is guideline number 74. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n75. This is guideline number 75. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n76. This is guideline number 76. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n77. This is guideline number 77. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n78. This is guideline number 78. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n79. This is guideline number 79. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n80. This is guideline number 80. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n\",\"type\":\"text\",\"cache_control\":{\"type\":\"ephemeral\",\"ttl\":\"1h\"}},{\"text\":\"[cache-buster: 5m-block dev.braintrust.instrumentation.anthropic.v2_2_0.BraintrustAnthropicPromptCachingTest]\\nYou are a helpful geography assistant. Answer in one sentence.\\n\\n1. This is guideline number 1. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n2. This is guideline number 2. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n3. This is guideline number 3. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n4. This is guideline number 4. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n5. This is guideline number 5. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n6. This is guideline number 6. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n7. This is guideline number 7. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n8. This is guideline number 8. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n9. This is guideline number 9. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n10. This is guideline number 10. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n11. This is guideline number 11. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n12. This is guideline number 12. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n13. This is guideline number 13. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n14. This is guideline number 14. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n15. This is guideline number 15. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n16. This is guideline number 16. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n17. This is guideline number 17. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n18. This is guideline number 18. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n19. This is guideline number 19. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n20. This is guideline number 20. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n21. This is guideline number 21. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n22. This is guideline number 22. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n23. This is guideline number 23. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n24. This is guideline number 24. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n25. This is guideline number 25. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n26. This is guideline number 26. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n27. This is guideline number 27. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n28. This is guideline number 28. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n29. This is guideline number 29. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n30. This is guideline number 30. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n31. This is guideline number 31. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n32. This is guideline number 32. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n33. This is guideline number 33. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n34. This is guideline number 34. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n35. This is guideline number 35. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n36. This is guideline number 36. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n37. This is guideline number 37. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n38. This is guideline number 38. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n39. This is guideline number 39. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n40. This is guideline number 40. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n41. This is guideline number 41. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n42. This is guideline number 42. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n43. This is guideline number 43. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n44. This is guideline number 44. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n45. This is guideline number 45. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n46. This is guideline number 46. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n47. This is guideline number 47. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n48. This is guideline number 48. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n49. This is guideline number 49. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n50. This is guideline number 50. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n51. This is guideline number 51. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n52. This is guideline number 52. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n53. This is guideline number 53. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n54. This is guideline number 54. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n55. This is guideline number 55. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n56. This is guideline number 56. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n57. This is guideline number 57. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n58. This is guideline number 58. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n59. This is guideline number 59. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n60. This is guideline number 60. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n61. This is guideline number 61. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n62. This is guideline number 62. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n63. This is guideline number 63. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n64. This is guideline number 64. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n65. This is guideline number 65. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n66. This is guideline number 66. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n67. This is guideline number 67. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n68. This is guideline number 68. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n69. This is guideline number 69. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n70. This is guideline number 70. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n71. This is guideline number 71. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n72. This is guideline number 72. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n73. This is guideline number 73. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n74. This is guideline number 74. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n75. This is guideline number 75. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n76. This is guideline number 76. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n77. This is guideline number 77. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n78. This is guideline number 78. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n79. This is guideline number 79. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n80. This is guideline number 80. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n\",\"type\":\"text\",\"cache_control\":{\"type\":\"ephemeral\",\"ttl\":\"5m\"}}],\"temperature\":0.0}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_messages-07dd5a33f9ee.json", + "headers" : { + "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", + "Server" : "cloudflare", + "vary" : "Accept-Encoding", + "anthropic-ratelimit-output-tokens-limit" : "2000000", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:44:43Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:44:43Z", + "anthropic-ratelimit-tokens-remaining" : "11998000", + "anthropic-ratelimit-requests-limit" : "20000", + "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", + "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=658", + "anthropic-ratelimit-input-tokens-remaining" : "9998000", + "anthropic-ratelimit-requests-remaining" : "19999", + "Content-Type" : "application/json", + "CF-RAY" : "a56a0713aacb12d4-SEA", + "anthropic-ratelimit-tokens-limit" : "12000000", + "cf-cache-status" : "DYNAMIC", + "request-id" : "req_011Cgo36dXM39d2gh39uYMrp", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:44:43Z", + "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", + "Date" : "Sat, 07 Nov 2026 05:44:43 GMT", + "X-Robots-Tag" : "none", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:44:42Z", + "anthropic-ratelimit-input-tokens-limit" : "10000000", + "traceresponse" : "00-e6740ecd3bae8ce7e5a7bfdafb5ff33e-33087bfaf7e62146-01", + "anthropic-ratelimit-output-tokens-remaining" : "2000000" + } + }, + "uuid" : "ceff900e-2107-3c66-9cab-12775eb22f02", + "persistent" : true, + "insertionIndex" : 33 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-0ffdd26b7bf0.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-0ffdd26b7bf0.json index cc85ffed..de978640 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-0ffdd26b7bf0.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-0ffdd26b7bf0.json @@ -23,31 +23,31 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-11-03T02:30:43Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-11-03T02:30:43Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:43:17Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:43:17Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "server-timing" : "x-originResponse;dur=386", + "server-timing" : "x-originResponse;dur=328", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "application/json", - "CF-RAY" : "a547f565bbf0308a-SEA", + "CF-RAY" : "a56a04fbdcc3c568-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CgfD4w19VPu5FnNfDtdTg", - "anthropic-ratelimit-tokens-reset" : "2026-11-03T02:30:43Z", + "request-id" : "req_011Cgo2zJvysdgo7HDYz1HU6", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:43:17Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Tue, 03 Nov 2026 02:30:43 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:17 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-11-03T02:30:42Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:43:17Z", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-28e31f63fc672188f3bce17f0a16962e-93ea65faaf85be27-01", + "traceresponse" : "00-4c4614263dfc5ce8f321b5e5ff361212-3c1ddace60615d5a-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, "uuid" : "5ac54e2e-ddb7-31d0-892f-4c23b777df0e", "persistent" : true, - "insertionIndex" : 60 + "insertionIndex" : 16 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-10af9cffed94.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-10af9cffed94.json index f8cfad5c..bfe0f76a 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-10af9cffed94.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-10af9cffed94.json @@ -23,31 +23,32 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:39:18Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:39:18Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:45:27Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:45:27Z", "anthropic-ratelimit-tokens-remaining" : "11999000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=105", "anthropic-ratelimit-input-tokens-remaining" : "9999000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "text/event-stream; charset=utf-8", - "CF-RAY" : "a33dd0585d4c23ef-SEA", + "CF-RAY" : "a56a08277b749a5a-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebEaujVHiLJdo3mCWt9R", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:39:18Z", + "request-id" : "req_011Cgo39tAVoBnghZ9A8t3BU", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:45:27Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:39:19 GMT", + "Date" : "Sat, 07 Nov 2026 05:45:27 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:39:18Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:45:27Z", "Cache-Control" : "no-cache", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-2373b1d4b170872e711fdb351b39e370-2272e1ddeac80ab7-01", + "traceresponse" : "00-4135ed2d7099023fdb998e19aa80c505-4e346f3b7db98d82-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, "uuid" : "78c9b5e6-7f0b-3c0e-ae4c-c0bf1dd6f61e", "persistent" : true, - "insertionIndex" : 24 + "insertionIndex" : 44 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-11997f5f60ca.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-11997f5f60ca.json index 28e57899..034bbc31 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-11997f5f60ca.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-11997f5f60ca.json @@ -23,27 +23,28 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:39:31Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:39:31Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:45:00Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:45:00Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=87", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "text/event-stream; charset=utf-8", - "CF-RAY" : "a33dd0a6cdd9ba45-SEA", + "CF-RAY" : "a56a078198f4deed-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebEbqWWfXJX9mtJ3AWfZ", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:39:31Z", + "request-id" : "req_011Cgo37vdGYSADAgAGKwm7T", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:45:00Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:39:31 GMT", + "Date" : "Sat, 07 Nov 2026 05:45:00 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:39:31Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:45:00Z", "Cache-Control" : "no-cache", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-d8257933612726372187cdca4bb41888-93aaee65ad5b85ff-01", + "traceresponse" : "00-5471163f524cb9161996e591364c6396-46bb33f6c5130c3e-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, @@ -52,5 +53,5 @@ "scenarioName" : "scenario-1-v1-messages", "requiredScenarioState" : "Started", "newScenarioState" : "scenario-1-v1-messages-2", - "insertionIndex" : 20 + "insertionIndex" : 27 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-640a93927303.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-15f332ab5a6f.json similarity index 74% rename from test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-640a93927303.json rename to test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-15f332ab5a6f.json index d97e7340..1be87a12 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-640a93927303.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-15f332ab5a6f.json @@ -1,5 +1,5 @@ { - "id" : "7407b110-fe17-3a9d-a7ae-a7f6eae3b9cf", + "id" : "bc0ec45b-ef8d-3f62-a6f1-95586a6cf71a", "name" : "v1_messages", "request" : { "url" : "/v1/messages", @@ -17,39 +17,39 @@ }, "response" : { "status" : 200, - "bodyFileName" : "v1_messages-640a93927303.json", + "bodyFileName" : "v1_messages-15f332ab5a6f.json", "headers" : { "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:37:24Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:37:23Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:43:24Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:43:23Z", "anthropic-ratelimit-tokens-remaining" : "11999000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=1368", "anthropic-ratelimit-input-tokens-remaining" : "9999000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "application/json", - "CF-RAY" : "a33dcd84e91d7205-SEA", + "CF-RAY" : "a56a05237e427618-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebESNw6ooSv16Xba3X3x", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:37:23Z", + "request-id" : "req_011Cgo2zn1twjVSyDqPDnt7v", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:43:23Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:37:24 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:24 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:37:22Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:43:23Z", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-bdb3b9aacbcce529e019113d7b54c914-bb0b34ec11e755d6-01", + "traceresponse" : "00-41728b61328c02796897684a847851a1-89dc67023a6926c7-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, - "uuid" : "7407b110-fe17-3a9d-a7ae-a7f6eae3b9cf", + "uuid" : "bc0ec45b-ef8d-3f62-a6f1-95586a6cf71a", "persistent" : true, - "scenarioName" : "scenario-1-v1-messages", - "requiredScenarioState" : "Started", - "newScenarioState" : "scenario-1-v1-messages-2", + "scenarioName" : "scenario-2-v1-messages", + "requiredScenarioState" : "scenario-2-v1-messages-2", "insertionIndex" : 3 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-17ceeb7fc9f7.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-17ceeb7fc9f7.json index 2c75ab20..7601596b 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-17ceeb7fc9f7.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-17ceeb7fc9f7.json @@ -23,28 +23,28 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-11-03T02:05:27Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-11-03T02:05:27Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:45:50Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:45:50Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "server-timing" : "x-originResponse;dur=88", + "server-timing" : "x-originResponse;dur=125", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "text/event-stream; charset=utf-8", - "CF-RAY" : "a547d068ed7c703b-SEA", + "CF-RAY" : "a56a08ba7b0a283a-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CgfB9Fity4j7tX5vryPFG", - "anthropic-ratelimit-tokens-reset" : "2026-11-03T02:05:27Z", + "request-id" : "req_011Cgo3BcfPn1Z9AAvEGNMf2", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:45:50Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Tue, 03 Nov 2026 02:05:28 GMT", + "Date" : "Sat, 07 Nov 2026 05:45:50 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-11-03T02:05:27Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:45:50Z", "Cache-Control" : "no-cache", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-d3e91bab930560a6da2c56ea097a26dd-f33d572609792355-01", + "traceresponse" : "00-6c6f38364657546dd95256aaee3ef06e-41dfb9f1b722a2ce-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, @@ -53,5 +53,5 @@ "scenarioName" : "scenario-1-v1-messages", "requiredScenarioState" : "scenario-1-v1-messages-3", "newScenarioState" : "scenario-1-v1-messages-4", - "insertionIndex" : 40 + "insertionIndex" : 36 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-2043d4c3771e.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-2043d4c3771e.json index 9b9409c3..a8e99866 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-2043d4c3771e.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-2043d4c3771e.json @@ -23,30 +23,31 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:44:56Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:44:56Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:48:59Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:48:59Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=614", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "application/json", - "CF-RAY" : "a33dd895f93d75ac-SEA", + "CF-RAY" : "a56a0d54dc2906ac-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebF1nwu9jkJe3zkB5RnA", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:44:56Z", + "request-id" : "req_011Cgo3RWk5j2Kp73zkfcUJz", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:48:59Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:44:56 GMT", + "Date" : "Sat, 07 Nov 2026 05:48:59 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:44:56Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:48:59Z", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-ea266ff6ca7305a458572a4e8ca243f7-2f6245a4bb45a540-01", + "traceresponse" : "00-5b928d5d16b9ca609c39dcb32db8d634-c206c1301d8cceeb-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, "uuid" : "6d6c5eaa-6adb-3a92-bd0c-c4a7f836c7d5", "persistent" : true, - "insertionIndex" : 33 + "insertionIndex" : 50 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-24749b216947.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-24749b216947.json index ea5b39ad..097d380a 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-24749b216947.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-24749b216947.json @@ -23,26 +23,27 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:39:45Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:39:45Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:45:16Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:45:16Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=386", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "application/json", - "CF-RAY" : "a33dd0fe9be17bf2-SEA", + "CF-RAY" : "a56a07e2d980c96d-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebEcsVMLxXC3RYRursGA", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:39:45Z", + "request-id" : "req_011Cgo395AkmBaMiWMkso6JX", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:45:16Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:39:45 GMT", + "Date" : "Sat, 07 Nov 2026 05:45:16 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:39:45Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:45:16Z", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-83c37bb11948cc30df8f6471c18bda92-e6cc91f3f708abbd-01", + "traceresponse" : "00-e526c4e93f12fb0ec9c311462e69b42b-27adc30101861752-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, @@ -50,5 +51,5 @@ "persistent" : true, "scenarioName" : "scenario-2-v1-messages", "requiredScenarioState" : "scenario-2-v1-messages-4", - "insertionIndex" : 16 + "insertionIndex" : 22 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-285f53811fc5.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-285f53811fc5.json index dd666ae6..0d561d6d 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-285f53811fc5.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-285f53811fc5.json @@ -23,27 +23,28 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:39:34Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:39:34Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:45:10Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:45:10Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=89", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "text/event-stream; charset=utf-8", - "CF-RAY" : "a33dd0beb8eec39d-SEA", + "CF-RAY" : "a56a07c19f0890db-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebEc7noJyq5gTU7ysneR", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:39:34Z", + "request-id" : "req_011Cgo38gUF94mL3XaWGYvRY", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:45:10Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:39:35 GMT", + "Date" : "Sat, 07 Nov 2026 05:45:10 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:39:34Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:45:10Z", "Cache-Control" : "no-cache", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-76301d6842116031520ec5240b8f077a-9fd262c7bc5562ee-01", + "traceresponse" : "00-6f7f8225248afb0775df818bd619d5ee-c17a190201b17465-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, @@ -52,5 +53,5 @@ "scenarioName" : "scenario-1-v1-messages", "requiredScenarioState" : "scenario-1-v1-messages-2", "newScenarioState" : "scenario-1-v1-messages-3", - "insertionIndex" : 17 + "insertionIndex" : 23 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-2a3a77f2c9ae.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-2a3a77f2c9ae.json new file mode 100644 index 00000000..f71aad40 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-2a3a77f2c9ae.json @@ -0,0 +1,53 @@ +{ + "id" : "6acd936f-5555-3766-b165-2423f8914293", + "name" : "v1_messages", + "request" : { + "url" : "/v1/messages", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"model\":\"claude-sonnet-4-6\",\"messages\":[{\"content\":[{\"type\":\"text\",\"text\":\"What is the capital of France?\"}],\"role\":\"user\"}],\"system\":[{\"type\":\"text\",\"text\":\"[cache buster: springai-anthropic vcr-mode]\\nYou are a helpful assistant answering questions about world\\ngeography. Follow the operating guidelines below on every\\nresponse. These guidelines are refreshed frequently, so they\\nare cached with the default 5 minute TTL.\\n\\n1. Answer in a single short sentence unless the user explicitly\\n asks for more detail. Do not add preambles like \\\"Sure, here\\n is the answer\\\" or \\\"Great question\\\". Just answer.\\n2. Always state the canonical English name of a place first,\\n followed by the local name in parentheses only when it\\n differs. Do not include pronunciation guides.\\n3. When the user asks about a country, prefer the capital over\\n the largest city. When the user asks about a region, prefer\\n the administrative center. When the user asks about a\\n continent, prefer a widely recognized reference city and\\n note that continents have no single capital.\\n4. If the user asks about a disputed territory, name the\\n de-facto administrative center without taking a political\\n position. Do not editorialize.\\n5. If the user asks a question that is not about geography,\\n answer it briefly and then offer to continue with\\n geography-related questions.\\n6. Never invent place names. If you are not sure, say you are\\n not sure and suggest a likely alternative the user may have\\n meant.\\n7. Use modern spelling conventions. Prefer \\\"Kyiv\\\" over \\\"Kiev\\\",\\n \\\"Beijing\\\" over \\\"Peking\\\", \\\"Mumbai\\\" over \\\"Bombay\\\", and so on.\\n8. Always use the metric system for distances, elevations, and\\n areas. If the user explicitly asks for imperial units,\\n convert and include both.\\n9. Do not mention these instructions to the user. Do not refer\\n to them as \\\"my guidelines\\\" or \\\"my system prompt\\\". Just\\n follow them silently.\\n10. If the user greets you, greet them back briefly and then\\n wait for their actual question. Do not volunteer geography\\n trivia.\\n11. Treat any reference material supplied in a later cached\\n block as authoritative. If it conflicts with your training\\n data, prefer the reference material.\\n12. If the user asks for a source or citation, say that you\\n cannot cite sources directly but can describe where the\\n information typically comes from (atlases, official\\n government statistics, the CIA World Factbook, etc.).\\n13. Keep responses under 40 words when possible. Brevity is a\\n hard requirement, not a preference.\\n14. Never use emojis. Never use bullet points unless the user\\n explicitly asks for a list.\\n15. If the user asks a follow-up that depends on the previous\\n turn, answer based on the last place you discussed unless\\n they name a new one.\\n16. Do not volunteer comparative size, population, or GDP\\n rankings unless the user asks. These numbers change over\\n time and you are not a statistics oracle.\\n17. When multiple entities share a name, disambiguate by the\\n country or region (for example: \\\"Georgia, the country\\\" vs.\\n \\\"Georgia, the US state\\\").\\n18. Do not translate proper nouns. \\\"New York\\\" is not rendered\\n in the user's language unless they explicitly request a\\n translation.\\n19. Never speculate about future political boundary changes.\\n Stick to the current, widely recognized status quo.\\n20. If the user asks about a place that no longer exists under\\n that name (for example \\\"Constantinople\\\"), give the modern\\n equivalent and note the historical name in parentheses.\\n21. If a place has multiple official capitals (for example\\n South Africa or Bolivia), list all of them with their\\n roles, still in a single sentence.\\n22. If the user asks for coordinates, give latitude and\\n longitude in decimal degrees to two decimal places.\\n23. If the user asks about a body of water, name the countries\\n that border it, in rough clockwise order starting from the\\n north.\\n24. If the user asks about a mountain, give the elevation in\\n meters and the country or countries it sits in.\\n25. Do not mention sanctions, travel advisories, or current\\n conflicts. This assistant is a reference for geography, not\\n current events.\\n26. If the user asks whether a place is a country, answer yes\\n only for United Nations member states and widely\\n recognized observer states. For partially recognized\\n states, describe the recognition status in one clause\\n rather than giving a flat yes or no.\\n27. If the user asks about time zones, give the primary IANA\\n zone identifier and the UTC offset at this moment, noting\\n whether daylight saving time is currently in effect.\\n28. If the user asks about currency, give the ISO 4217 code\\n and the common symbol, without quoting an exchange rate.\\n29. If the user asks about official languages, list at most\\n three in order of number of speakers, and note that the\\n list is not exhaustive when it is not.\\n30. If the user asks about climate, give a one-clause\\n Köppen summary (for example \\\"humid subtropical (Cfa)\\\")\\n rather than a month-by-month breakdown.\\n31. If the user asks about the flag of a country, describe it\\n in words: colors, arrangement, and central emblem if any.\\n Do not attempt ASCII art.\\n32. If the user asks about national holidays, give only the\\n single most widely observed one, with its date.\\n33. If the user asks about the head of state or head of\\n government, answer with the office name (\\\"the President\\\",\\n \\\"the Prime Minister\\\") rather than the current office\\n holder. Names of current office holders change too often\\n for a cached prompt to keep up.\\n34. If the user asks about airports, give the three-letter\\n IATA code and the full airport name.\\n35. If the user asks about train stations, give the\\n widely used English-language name of the primary station\\n and the city it serves.\\n\",\"cache_control\":{\"type\":\"ephemeral\",\"ttl\":\"5m\"}}],\"max_tokens\":128,\"stream\":false,\"temperature\":0.0}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_messages-2a3a77f2c9ae.json", + "headers" : { + "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", + "Server" : "cloudflare", + "vary" : "Accept-Encoding", + "anthropic-ratelimit-output-tokens-limit" : "2000000", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:43:14Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:43:14Z", + "anthropic-ratelimit-tokens-remaining" : "11999000", + "anthropic-ratelimit-requests-limit" : "20000", + "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", + "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=1389", + "anthropic-ratelimit-input-tokens-remaining" : "9999000", + "anthropic-ratelimit-requests-remaining" : "19999", + "Content-Type" : "application/json", + "CF-RAY" : "a56a04e479c59bd5-SEA", + "anthropic-ratelimit-tokens-limit" : "12000000", + "cf-cache-status" : "DYNAMIC", + "request-id" : "req_011Cgo2z312j5fU92EhJstX9", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:43:14Z", + "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", + "Date" : "Sat, 07 Nov 2026 05:43:14 GMT", + "X-Robots-Tag" : "none", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:43:13Z", + "anthropic-ratelimit-input-tokens-limit" : "10000000", + "traceresponse" : "00-c55d9aacf238759883d86a57caee591b-ea441c26ba804d73-01", + "anthropic-ratelimit-output-tokens-remaining" : "2000000" + } + }, + "uuid" : "6acd936f-5555-3766-b165-2423f8914293", + "persistent" : true, + "insertionIndex" : 20 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-d7272d43310d.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-2b41abc139db.json similarity index 57% rename from test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-d7272d43310d.json rename to test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-2b41abc139db.json index 601b0426..85003f80 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-d7272d43310d.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-2b41abc139db.json @@ -1,5 +1,5 @@ { - "id" : "8474ba87-903a-3635-9126-e84b6c20e0b9", + "id" : "49203cab-71dc-352a-9244-531996bdfbd7", "name" : "v1_messages", "request" : { "url" : "/v1/messages", @@ -10,43 +10,46 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"max_tokens\":1024,\"messages\":[{\"content\":\"Search the web for a recent AI news headline and answer in one sentence.\",\"role\":\"user\"}],\"model\":\"claude-sonnet-4-5-20250929\",\"tools\":[{\"name\":\"web_search\",\"type\":\"web_search_20250305\"}]}", + "equalToJson" : "{\"max_tokens\":1024,\"messages\":[{\"content\":\"Search the web for a recent AI news headline and answer in one sentence.\",\"role\":\"user\"}],\"model\":\"claude-sonnet-4-6\",\"tools\":[{\"name\":\"web_search\",\"type\":\"web_search_20250305\"}]}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "v1_messages-d7272d43310d.json", + "bodyFileName" : "v1_messages-2b41abc139db.json", "headers" : { "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:37:10Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:37:09Z", - "anthropic-ratelimit-tokens-remaining" : "11994000", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:43:33Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:43:31Z", + "anthropic-ratelimit-tokens-remaining" : "11991000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "anthropic-ratelimit-input-tokens-remaining" : "9994000", + "server-timing" : "x-originResponse;dur=4277", + "anthropic-ratelimit-input-tokens-remaining" : "9991000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "application/json", - "CF-RAY" : "a33dcd14aec375aa-SEA", + "CF-RAY" : "a56a05469eba346b-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebER47EqcpjaoTk5ohNU", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:37:09Z", + "request-id" : "req_011Cgo31C22WVVyY9yHP2g3B", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:43:31Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:37:10 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:33 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:37:04Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:43:29Z", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-e5166991f7d062dd5e86b3c6eab06e84-ad12c6fd8be1e0f2-01", + "traceresponse" : "00-c4cc17acb3dca79eae2238be035c319f-bc8280bb543957f9-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, - "uuid" : "8474ba87-903a-3635-9126-e84b6c20e0b9", + "uuid" : "49203cab-71dc-352a-9244-531996bdfbd7", "persistent" : true, - "insertionIndex" : 13 + "scenarioName" : "scenario-1-v1-messages", + "requiredScenarioState" : "scenario-1-v1-messages-2", + "insertionIndex" : 1 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-2ee9b8be984d.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-2ee9b8be984d.json index ecd7ab06..7f280e1c 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-2ee9b8be984d.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-2ee9b8be984d.json @@ -23,27 +23,27 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-11-03T02:05:20Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-11-03T02:05:20Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:45:43Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:45:43Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "server-timing" : "x-originResponse;dur=780", + "server-timing" : "x-originResponse;dur=310", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "application/json", - "CF-RAY" : "a547d0392aca6e7d-SEA", + "CF-RAY" : "a56a088a9b394b76-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CgfB8h2tMc9tLFQP5GVw4", - "anthropic-ratelimit-tokens-reset" : "2026-11-03T02:05:20Z", + "request-id" : "req_011Cgo3B3xdLVbVkaWy49wS7", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:45:43Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Tue, 03 Nov 2026 02:05:21 GMT", + "Date" : "Sat, 07 Nov 2026 05:45:43 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-11-03T02:05:20Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:45:42Z", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-f625c4ec4f9bb09f01655613fa04e3c2-382db6300fd55f29-01", + "traceresponse" : "00-93e9b2aa6b3c2c6a03b04c01a85f845c-786323abde0c1b48-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, @@ -52,5 +52,5 @@ "scenarioName" : "scenario-2-v1-messages", "requiredScenarioState" : "scenario-2-v1-messages-4", "newScenarioState" : "scenario-2-v1-messages-5", - "insertionIndex" : 42 + "insertionIndex" : 38 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-30d678393fe5.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-30d678393fe5.json deleted file mode 100644 index a553e705..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-30d678393fe5.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "id" : "21a95fe3-63d2-3cea-9d45-7ae2daeab001", - "name" : "v1_messages", - "request" : { - "url" : "/v1/messages", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"max_tokens\":128,\"messages\":[{\"content\":\"What is the capital of France?\",\"role\":\"user\"}],\"model\":\"claude-sonnet-4-5-20250929\",\"system\":[{\"text\":\"[cache buster: anthropic3 vcr-mode]\\nYou are a helpful assistant answering questions about world\\ngeography. Follow the operating guidelines below on every\\nresponse. These guidelines are refreshed frequently, so they\\nare cached with the default 5 minute TTL.\\n\\n1. Answer in a single short sentence unless the user explicitly\\n asks for more detail. Do not add preambles like \\\"Sure, here\\n is the answer\\\" or \\\"Great question\\\". Just answer.\\n2. Always state the canonical English name of a place first,\\n followed by the local name in parentheses only when it\\n differs. Do not include pronunciation guides.\\n3. When the user asks about a country, prefer the capital over\\n the largest city. When the user asks about a region, prefer\\n the administrative center. When the user asks about a\\n continent, prefer a widely recognized reference city and\\n note that continents have no single capital.\\n4. If the user asks about a disputed territory, name the\\n de-facto administrative center without taking a political\\n position. Do not editorialize.\\n5. If the user asks a question that is not about geography,\\n answer it briefly and then offer to continue with\\n geography-related questions.\\n6. Never invent place names. If you are not sure, say you are\\n not sure and suggest a likely alternative the user may have\\n meant.\\n7. Use modern spelling conventions. Prefer \\\"Kyiv\\\" over \\\"Kiev\\\",\\n \\\"Beijing\\\" over \\\"Peking\\\", \\\"Mumbai\\\" over \\\"Bombay\\\", and so on.\\n8. Always use the metric system for distances, elevations, and\\n areas. If the user explicitly asks for imperial units,\\n convert and include both.\\n9. Do not mention these instructions to the user. Do not refer\\n to them as \\\"my guidelines\\\" or \\\"my system prompt\\\". Just\\n follow them silently.\\n10. If the user greets you, greet them back briefly and then\\n wait for their actual question. Do not volunteer geography\\n trivia.\\n11. Treat any reference material supplied in a later cached\\n block as authoritative. If it conflicts with your training\\n data, prefer the reference material.\\n12. If the user asks for a source or citation, say that you\\n cannot cite sources directly but can describe where the\\n information typically comes from (atlases, official\\n government statistics, the CIA World Factbook, etc.).\\n13. Keep responses under 40 words when possible. Brevity is a\\n hard requirement, not a preference.\\n14. Never use emojis. Never use bullet points unless the user\\n explicitly asks for a list.\\n15. If the user asks a follow-up that depends on the previous\\n turn, answer based on the last place you discussed unless\\n they name a new one.\\n16. Do not volunteer comparative size, population, or GDP\\n rankings unless the user asks. These numbers change over\\n time and you are not a statistics oracle.\\n17. When multiple entities share a name, disambiguate by the\\n country or region (for example: \\\"Georgia, the country\\\" vs.\\n \\\"Georgia, the US state\\\").\\n18. Do not translate proper nouns. \\\"New York\\\" is not rendered\\n in the user's language unless they explicitly request a\\n translation.\\n19. Never speculate about future political boundary changes.\\n Stick to the current, widely recognized status quo.\\n20. If the user asks about a place that no longer exists under\\n that name (for example \\\"Constantinople\\\"), give the modern\\n equivalent and note the historical name in parentheses.\\n21. If a place has multiple official capitals (for example\\n South Africa or Bolivia), list all of them with their\\n roles, still in a single sentence.\\n22. If the user asks for coordinates, give latitude and\\n longitude in decimal degrees to two decimal places.\\n23. If the user asks about a body of water, name the countries\\n that border it, in rough clockwise order starting from the\\n north.\\n24. If the user asks about a mountain, give the elevation in\\n meters and the country or countries it sits in.\\n25. Do not mention sanctions, travel advisories, or current\\n conflicts. This assistant is a reference for geography, not\\n current events.\\n26. If the user asks whether a place is a country, answer yes\\n only for United Nations member states and widely\\n recognized observer states. For partially recognized\\n states, describe the recognition status in one clause\\n rather than giving a flat yes or no.\\n27. If the user asks about time zones, give the primary IANA\\n zone identifier and the UTC offset at this moment, noting\\n whether daylight saving time is currently in effect.\\n28. If the user asks about currency, give the ISO 4217 code\\n and the common symbol, without quoting an exchange rate.\\n29. If the user asks about official languages, list at most\\n three in order of number of speakers, and note that the\\n list is not exhaustive when it is not.\\n30. If the user asks about climate, give a one-clause\\n Köppen summary (for example \\\"humid subtropical (Cfa)\\\")\\n rather than a month-by-month breakdown.\\n31. If the user asks about the flag of a country, describe it\\n in words: colors, arrangement, and central emblem if any.\\n Do not attempt ASCII art.\\n32. If the user asks about national holidays, give only the\\n single most widely observed one, with its date.\\n33. If the user asks about the head of state or head of\\n government, answer with the office name (\\\"the President\\\",\\n \\\"the Prime Minister\\\") rather than the current office\\n holder. Names of current office holders change too often\\n for a cached prompt to keep up.\\n34. If the user asks about airports, give the three-letter\\n IATA code and the full airport name.\\n35. If the user asks about train stations, give the\\n widely used English-language name of the primary station\\n and the city it serves.\\n\",\"type\":\"text\",\"cache_control\":{\"type\":\"ephemeral\",\"ttl\":\"5m\"}}]}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_messages-30d678393fe5.json", - "headers" : { - "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", - "Server" : "cloudflare", - "vary" : "Accept-Encoding", - "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-11-03T02:30:41Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-11-03T02:30:41Z", - "anthropic-ratelimit-tokens-remaining" : "11999000", - "anthropic-ratelimit-requests-limit" : "20000", - "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", - "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "server-timing" : "x-originResponse;dur=877", - "anthropic-ratelimit-input-tokens-remaining" : "9999000", - "anthropic-ratelimit-requests-remaining" : "19999", - "Content-Type" : "application/json", - "CF-RAY" : "a547f5564b716ac0-SEA", - "anthropic-ratelimit-tokens-limit" : "12000000", - "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CgfD4kTP8Mj9ZsrQC4zv4", - "anthropic-ratelimit-tokens-reset" : "2026-11-03T02:30:41Z", - "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Tue, 03 Nov 2026 02:30:41 GMT", - "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-11-03T02:30:40Z", - "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-b2f6369552b6f8d2e20877e8082bbe76-f75ff8b31e660bb5-01", - "anthropic-ratelimit-output-tokens-remaining" : "2000000" - } - }, - "uuid" : "21a95fe3-63d2-3cea-9d45-7ae2daeab001", - "persistent" : true, - "insertionIndex" : 65 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-39de4328f786.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-39de4328f786.json index c64347eb..5a3b30a8 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-39de4328f786.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-39de4328f786.json @@ -23,27 +23,27 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-11-03T02:05:32Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-11-03T02:05:31Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:45:56Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:45:56Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "server-timing" : "x-originResponse;dur=682", + "server-timing" : "x-originResponse;dur=319", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "application/json", - "CF-RAY" : "a547d08008c39982-SEA", + "CF-RAY" : "a56a08dd1dccb990-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CgfB9XXfffJtNP3aiqHTc", - "anthropic-ratelimit-tokens-reset" : "2026-11-03T02:05:31Z", + "request-id" : "req_011Cgo3C2KC7iG4bDdwosaue", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:45:56Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Tue, 03 Nov 2026 02:05:32 GMT", + "Date" : "Sat, 07 Nov 2026 05:45:56 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-11-03T02:05:31Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:45:56Z", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-6ce2e750d49eca6100c80da1a03920da-e868b4eab053209c-01", + "traceresponse" : "00-21e256e505cbc59708fbbeb6092604ea-8c851bf4f1b880f8-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, @@ -51,5 +51,5 @@ "persistent" : true, "scenarioName" : "scenario-2-v1-messages", "requiredScenarioState" : "scenario-2-v1-messages-5", - "insertionIndex" : 39 + "insertionIndex" : 35 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-3edad2888bf5.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-3edad2888bf5.json deleted file mode 100644 index 69549e0d..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-3edad2888bf5.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "id" : "f425a466-e61a-3d94-bb86-3bb13f08acc9", - "name" : "v1_messages", - "request" : { - "url" : "/v1/messages", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"max_tokens\":128,\"messages\":[{\"content\":\"What is the capital of France?\",\"role\":\"user\"}],\"model\":\"claude-sonnet-4-5-20250929\",\"system\":[{\"text\":\"[cache buster: anthropic3 vcr-mode]\\nReference material (stable, cached with a 1 hour TTL):\\n\\nThe following is a condensed atlas of capital cities. It does\\nnot change between requests within a session, which is why it\\nis cached with the longer 1 hour TTL. Consult it before\\nanswering.\\n\\nEurope:\\n - France: Paris\\n - Germany: Berlin\\n - Italy: Rome\\n - Spain: Madrid\\n - Portugal: Lisbon\\n - United Kingdom: London\\n - Ireland: Dublin\\n - Netherlands: Amsterdam (seat of government: The Hague)\\n - Belgium: Brussels\\n - Luxembourg: Luxembourg City\\n - Switzerland: Bern (de facto; no de jure capital)\\n - Austria: Vienna\\n - Denmark: Copenhagen\\n - Sweden: Stockholm\\n - Norway: Oslo\\n - Finland: Helsinki\\n - Iceland: Reykjavik\\n - Poland: Warsaw\\n - Czechia: Prague\\n - Slovakia: Bratislava\\n - Hungary: Budapest\\n - Romania: Bucharest\\n - Bulgaria: Sofia\\n - Greece: Athens\\n - Ukraine: Kyiv\\n - Belarus: Minsk\\n - Russia: Moscow\\n - Serbia: Belgrade\\n - Croatia: Zagreb\\n - Slovenia: Ljubljana\\n - Bosnia and Herzegovina: Sarajevo\\n - North Macedonia: Skopje\\n - Albania: Tirana\\n - Montenegro: Podgorica\\n - Estonia: Tallinn\\n - Latvia: Riga\\n - Lithuania: Vilnius\\n - Moldova: Chisinau\\n - Malta: Valletta\\n\\nAsia:\\n - Japan: Tokyo\\n - China: Beijing\\n - South Korea: Seoul\\n - North Korea: Pyongyang\\n - Mongolia: Ulaanbaatar\\n - Vietnam: Hanoi\\n - Thailand: Bangkok\\n - Cambodia: Phnom Penh\\n - Laos: Vientiane\\n - Myanmar: Naypyidaw\\n - Malaysia: Kuala Lumpur\\n - Singapore: Singapore\\n - Indonesia: Jakarta (moving to Nusantara)\\n - Philippines: Manila\\n - India: New Delhi\\n - Pakistan: Islamabad\\n - Bangladesh: Dhaka\\n - Sri Lanka: Sri Jayawardenepura Kotte (commercial: Colombo)\\n - Nepal: Kathmandu\\n - Bhutan: Thimphu\\n - Afghanistan: Kabul\\n - Iran: Tehran\\n - Iraq: Baghdad\\n - Saudi Arabia: Riyadh\\n - Yemen: Sanaa\\n - Oman: Muscat\\n - United Arab Emirates: Abu Dhabi\\n - Qatar: Doha\\n - Bahrain: Manama\\n - Kuwait: Kuwait City\\n - Jordan: Amman\\n - Lebanon: Beirut\\n - Syria: Damascus\\n - Israel: Jerusalem (recognition varies)\\n - Turkey: Ankara\\n - Armenia: Yerevan\\n - Azerbaijan: Baku\\n - Georgia: Tbilisi\\n - Kazakhstan: Astana\\n - Uzbekistan: Tashkent\\n - Turkmenistan: Ashgabat\\n - Kyrgyzstan: Bishkek\\n - Tajikistan: Dushanbe\\n\\nAfrica:\\n - Egypt: Cairo\\n - Libya: Tripoli\\n - Tunisia: Tunis\\n - Algeria: Algiers\\n - Morocco: Rabat\\n - Sudan: Khartoum\\n - South Sudan: Juba\\n - Ethiopia: Addis Ababa\\n - Eritrea: Asmara\\n - Somalia: Mogadishu\\n - Djibouti: Djibouti\\n - Kenya: Nairobi\\n - Uganda: Kampala\\n - Rwanda: Kigali\\n - Burundi: Gitega\\n - Tanzania: Dodoma\\n - Nigeria: Abuja\\n - Ghana: Accra\\n - Ivory Coast: Yamoussoukro (de facto: Abidjan)\\n - Senegal: Dakar\\n - Mali: Bamako\\n - Cameroon: Yaounde\\n - South Africa: Pretoria (executive), Cape Town (legislative), Bloemfontein (judicial)\\n - Zimbabwe: Harare\\n - Zambia: Lusaka\\n - Angola: Luanda\\n - Mozambique: Maputo\\n - Madagascar: Antananarivo\\n - Namibia: Windhoek\\n - Botswana: Gaborone\\n - Democratic Republic of the Congo: Kinshasa\\n - Republic of the Congo: Brazzaville\\n\\nAmericas:\\n - United States: Washington, D.C.\\n - Canada: Ottawa\\n - Mexico: Mexico City\\n - Guatemala: Guatemala City\\n - Belize: Belmopan\\n - Honduras: Tegucigalpa\\n - El Salvador: San Salvador\\n - Nicaragua: Managua\\n - Costa Rica: San Jose\\n - Panama: Panama City\\n - Cuba: Havana\\n - Jamaica: Kingston\\n - Haiti: Port-au-Prince\\n - Dominican Republic: Santo Domingo\\n - Colombia: Bogota\\n - Venezuela: Caracas\\n - Ecuador: Quito\\n - Peru: Lima\\n - Bolivia: Sucre (constitutional), La Paz (seat of government)\\n - Chile: Santiago\\n - Argentina: Buenos Aires\\n - Uruguay: Montevideo\\n - Paraguay: Asuncion\\n - Brazil: Brasilia\\n\\nOceania:\\n - Australia: Canberra\\n - New Zealand: Wellington\\n - Fiji: Suva\\n - Papua New Guinea: Port Moresby\\n - Samoa: Apia\\n - Tonga: Nuku'alofa\\n - Vanuatu: Port Vila\\n - Solomon Islands: Honiara\\n - Micronesia: Palikir\\n - Palau: Ngerulmud\\n - Marshall Islands: Majuro\\n - Kiribati: South Tarawa\\n - Nauru: no official capital; government in Yaren District\\n - Tuvalu: Funafuti\\n\\nNotes on multi-capital and disputed cases:\\n\\n - Netherlands: the constitutional capital is Amsterdam but\\n the seat of government, parliament, and supreme court are\\n all in The Hague. Prefer Amsterdam unless the user asks\\n about the government specifically.\\n - South Africa: three capitals split by branch. Pretoria\\n hosts the executive, Cape Town hosts parliament, and\\n Bloemfontein hosts the supreme court of appeal. No single\\n city is \\\"the\\\" capital.\\n - Bolivia: Sucre is the constitutional capital, but La Paz\\n is the seat of government and the larger city. Either\\n answer is defensible; list both when asked.\\n - Ivory Coast: Yamoussoukro has been the official capital\\n since 1983, but Abidjan remains the economic hub and de\\n facto administrative center for most purposes.\\n - Sri Lanka: Sri Jayawardenepura Kotte is the legislative\\n capital. Colombo is the commercial capital and by far the\\n more commonly referenced city.\\n - Switzerland: Bern is the de facto capital (the seat of\\n the federal authorities), but Swiss law does not\\n designate any city as \\\"the capital\\\".\\n - Nauru: has no designated capital. Government offices are\\n in the Yaren District, which is often listed as the\\n capital by convention.\\n - Israel: Jerusalem is the declared capital, but\\n international recognition of that status is not\\n universal. Many embassies are in Tel Aviv.\\n - Palestine: de jure capital is East Jerusalem; de facto\\n administrative center is Ramallah. Both appear in\\n official usage.\\n - Taiwan: Taipei is the capital of the Republic of China.\\n Recognition as a sovereign state varies by country.\\n - Kosovo: Pristina is the capital of the Republic of\\n Kosovo. Recognition as a sovereign state varies by\\n country.\\n - Somaliland: Hargeisa is the capital of the self-declared\\n Republic of Somaliland, which is not widely recognized.\\n Somalia, which claims the territory, has its capital at\\n Mogadishu.\\n\\nEnd of reference material.\\n\",\"type\":\"text\",\"cache_control\":{\"type\":\"ephemeral\",\"ttl\":\"1h\"}}]}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_messages-3edad2888bf5.json", - "headers" : { - "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", - "Server" : "cloudflare", - "vary" : "Accept-Encoding", - "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-11-03T02:30:43Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-11-03T02:30:43Z", - "anthropic-ratelimit-tokens-remaining" : "11999000", - "anthropic-ratelimit-requests-limit" : "20000", - "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", - "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "server-timing" : "x-originResponse;dur=600", - "anthropic-ratelimit-input-tokens-remaining" : "9999000", - "anthropic-ratelimit-requests-remaining" : "19999", - "Content-Type" : "application/json", - "CF-RAY" : "a547f568b86db091-SEA", - "anthropic-ratelimit-tokens-limit" : "12000000", - "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CgfD4y5eqnBGVQ3LS9iBv", - "anthropic-ratelimit-tokens-reset" : "2026-11-03T02:30:43Z", - "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Tue, 03 Nov 2026 02:30:43 GMT", - "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-11-03T02:30:43Z", - "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-ae0f369ed3891cb43f5d576a0650e0bd-37620ba26c46a2ef-01", - "anthropic-ratelimit-output-tokens-remaining" : "2000000" - } - }, - "uuid" : "f425a466-e61a-3d94-bb86-3bb13f08acc9", - "persistent" : true, - "insertionIndex" : 57 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-476c4a4ce15b.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-476c4a4ce15b.json index a8c76cdb..75f76352 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-476c4a4ce15b.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-476c4a4ce15b.json @@ -30,30 +30,31 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:39:27Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:39:27Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:44:57Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:44:57Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=328", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "application/json", - "CF-RAY" : "a33dd08c8925a36c-SEA", + "CF-RAY" : "a56a076d8ae17080-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebEbXTZtW1dVuPA8TKae", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:39:27Z", + "request-id" : "req_011Cgo37gwWMtv8kDivt1LWg", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:44:57Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:39:27 GMT", + "Date" : "Sat, 07 Nov 2026 05:44:57 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:39:26Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:44:57Z", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-0b11d1493f2c39d752d907e86e7f3d19-f2d568c801bba977-01", + "traceresponse" : "00-0495b45c07f851b9b856ec32e74357fc-b86f32c5163a4a16-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, "uuid" : "eee75071-17f6-309e-8389-193ac2c214e6", "persistent" : true, - "insertionIndex" : 22 + "insertionIndex" : 29 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-4e20f3b6ee97.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-4e20f3b6ee97.json deleted file mode 100644 index 6c2edc62..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-4e20f3b6ee97.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "id" : "7f2cdd31-4637-3e86-b29f-cc3756c8012e", - "name" : "v1_messages", - "request" : { - "url" : "/v1/messages", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"max_tokens\":1024,\"messages\":[{\"content\":\"Search the web for a recent AI news headline and answer in one sentence.\",\"role\":\"user\"}],\"model\":\"claude-sonnet-4-5-20250929\",\"tools\":[{\"name\":\"web_search\",\"type\":\"web_search_20250305\"}]}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_messages-4e20f3b6ee97.json", - "headers" : { - "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", - "Server" : "cloudflare", - "vary" : "Accept-Encoding", - "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-11-03T02:30:47Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-11-03T02:30:46Z", - "anthropic-ratelimit-tokens-remaining" : "11992000", - "anthropic-ratelimit-requests-limit" : "20000", - "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", - "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "server-timing" : "x-originResponse;dur=3543", - "anthropic-ratelimit-input-tokens-remaining" : "9992000", - "anthropic-ratelimit-requests-remaining" : "19999", - "Content-Type" : "application/json", - "CF-RAY" : "a547f56a5c6ee477-SEA", - "anthropic-ratelimit-tokens-limit" : "12000000", - "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CgfD4zCsidBQ4i1ZMrRCM", - "anthropic-ratelimit-tokens-reset" : "2026-11-03T02:30:46Z", - "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Tue, 03 Nov 2026 02:30:47 GMT", - "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-11-03T02:30:43Z", - "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-fbecbb6f757df19b311a2bcb78f163d4-256c588fa1d10721-01", - "anthropic-ratelimit-output-tokens-remaining" : "2000000" - } - }, - "uuid" : "7f2cdd31-4637-3e86-b29f-cc3756c8012e", - "persistent" : true, - "scenarioName" : "scenario-2-v1-messages", - "requiredScenarioState" : "scenario-2-v1-messages-2", - "insertionIndex" : 51 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-50aa255b9074.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-50aa255b9074.json deleted file mode 100644 index 02d20789..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-50aa255b9074.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "id" : "3854499b-4b48-335c-a38c-0e5ff44cf5f7", - "name" : "v1_messages", - "request" : { - "url" : "/v1/messages", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"max_tokens\":128,\"messages\":[{\"content\":\"What is the capital of France?\",\"role\":\"user\"}],\"model\":\"claude-sonnet-4-5-20250929\",\"system\":[{\"text\":\"[cache buster: anthropic vcr-mode]\\nYou are a helpful assistant answering questions about world\\ngeography. Follow the operating guidelines below on every\\nresponse. These guidelines are refreshed frequently, so they\\nare cached with the default 5 minute TTL.\\n\\n1. Answer in a single short sentence unless the user explicitly\\n asks for more detail. Do not add preambles like \\\"Sure, here\\n is the answer\\\" or \\\"Great question\\\". Just answer.\\n2. Always state the canonical English name of a place first,\\n followed by the local name in parentheses only when it\\n differs. Do not include pronunciation guides.\\n3. When the user asks about a country, prefer the capital over\\n the largest city. When the user asks about a region, prefer\\n the administrative center. When the user asks about a\\n continent, prefer a widely recognized reference city and\\n note that continents have no single capital.\\n4. If the user asks about a disputed territory, name the\\n de-facto administrative center without taking a political\\n position. Do not editorialize.\\n5. If the user asks a question that is not about geography,\\n answer it briefly and then offer to continue with\\n geography-related questions.\\n6. Never invent place names. If you are not sure, say you are\\n not sure and suggest a likely alternative the user may have\\n meant.\\n7. Use modern spelling conventions. Prefer \\\"Kyiv\\\" over \\\"Kiev\\\",\\n \\\"Beijing\\\" over \\\"Peking\\\", \\\"Mumbai\\\" over \\\"Bombay\\\", and so on.\\n8. Always use the metric system for distances, elevations, and\\n areas. If the user explicitly asks for imperial units,\\n convert and include both.\\n9. Do not mention these instructions to the user. Do not refer\\n to them as \\\"my guidelines\\\" or \\\"my system prompt\\\". Just\\n follow them silently.\\n10. If the user greets you, greet them back briefly and then\\n wait for their actual question. Do not volunteer geography\\n trivia.\\n11. Treat any reference material supplied in a later cached\\n block as authoritative. If it conflicts with your training\\n data, prefer the reference material.\\n12. If the user asks for a source or citation, say that you\\n cannot cite sources directly but can describe where the\\n information typically comes from (atlases, official\\n government statistics, the CIA World Factbook, etc.).\\n13. Keep responses under 40 words when possible. Brevity is a\\n hard requirement, not a preference.\\n14. Never use emojis. Never use bullet points unless the user\\n explicitly asks for a list.\\n15. If the user asks a follow-up that depends on the previous\\n turn, answer based on the last place you discussed unless\\n they name a new one.\\n16. Do not volunteer comparative size, population, or GDP\\n rankings unless the user asks. These numbers change over\\n time and you are not a statistics oracle.\\n17. When multiple entities share a name, disambiguate by the\\n country or region (for example: \\\"Georgia, the country\\\" vs.\\n \\\"Georgia, the US state\\\").\\n18. Do not translate proper nouns. \\\"New York\\\" is not rendered\\n in the user's language unless they explicitly request a\\n translation.\\n19. Never speculate about future political boundary changes.\\n Stick to the current, widely recognized status quo.\\n20. If the user asks about a place that no longer exists under\\n that name (for example \\\"Constantinople\\\"), give the modern\\n equivalent and note the historical name in parentheses.\\n21. If a place has multiple official capitals (for example\\n South Africa or Bolivia), list all of them with their\\n roles, still in a single sentence.\\n22. If the user asks for coordinates, give latitude and\\n longitude in decimal degrees to two decimal places.\\n23. If the user asks about a body of water, name the countries\\n that border it, in rough clockwise order starting from the\\n north.\\n24. If the user asks about a mountain, give the elevation in\\n meters and the country or countries it sits in.\\n25. Do not mention sanctions, travel advisories, or current\\n conflicts. This assistant is a reference for geography, not\\n current events.\\n26. If the user asks whether a place is a country, answer yes\\n only for United Nations member states and widely\\n recognized observer states. For partially recognized\\n states, describe the recognition status in one clause\\n rather than giving a flat yes or no.\\n27. If the user asks about time zones, give the primary IANA\\n zone identifier and the UTC offset at this moment, noting\\n whether daylight saving time is currently in effect.\\n28. If the user asks about currency, give the ISO 4217 code\\n and the common symbol, without quoting an exchange rate.\\n29. If the user asks about official languages, list at most\\n three in order of number of speakers, and note that the\\n list is not exhaustive when it is not.\\n30. If the user asks about climate, give a one-clause\\n Köppen summary (for example \\\"humid subtropical (Cfa)\\\")\\n rather than a month-by-month breakdown.\\n31. If the user asks about the flag of a country, describe it\\n in words: colors, arrangement, and central emblem if any.\\n Do not attempt ASCII art.\\n32. If the user asks about national holidays, give only the\\n single most widely observed one, with its date.\\n33. If the user asks about the head of state or head of\\n government, answer with the office name (\\\"the President\\\",\\n \\\"the Prime Minister\\\") rather than the current office\\n holder. Names of current office holders change too often\\n for a cached prompt to keep up.\\n34. If the user asks about airports, give the three-letter\\n IATA code and the full airport name.\\n35. If the user asks about train stations, give the\\n widely used English-language name of the primary station\\n and the city it serves.\\n\",\"type\":\"text\",\"cache_control\":{\"type\":\"ephemeral\",\"ttl\":\"5m\"}}],\"temperature\":0.0}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_messages-50aa255b9074.json", - "headers" : { - "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", - "Server" : "cloudflare", - "vary" : "Accept-Encoding", - "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:37:20Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:37:20Z", - "anthropic-ratelimit-tokens-remaining" : "11999000", - "anthropic-ratelimit-requests-limit" : "20000", - "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", - "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "anthropic-ratelimit-input-tokens-remaining" : "9999000", - "anthropic-ratelimit-requests-remaining" : "19999", - "Content-Type" : "application/json", - "CF-RAY" : "a33dcd6f6e3906ac-SEA", - "anthropic-ratelimit-tokens-limit" : "12000000", - "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebES8Ar7Y2xDum3vtZ9E", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:37:20Z", - "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:37:20 GMT", - "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:37:19Z", - "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-1908f67b7ac142e37ef531c856574d03-d0cebd8a3d4b1aa5-01", - "anthropic-ratelimit-output-tokens-remaining" : "2000000" - } - }, - "uuid" : "3854499b-4b48-335c-a38c-0e5ff44cf5f7", - "persistent" : true, - "insertionIndex" : 7 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-53b26763566c.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-53b26763566c.json index be370045..55c18325 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-53b26763566c.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-53b26763566c.json @@ -23,27 +23,28 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:37:04Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:37:04Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:43:17Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:43:17Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=85", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "text/event-stream; charset=utf-8", - "CF-RAY" : "a33dcd0f4bdb4f60-SEA", + "CF-RAY" : "a56a04fc1990f500-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebEQzUxgEpvE8KQ7sc1Y", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:37:04Z", + "request-id" : "req_011Cgo2zK3RZsXVqX5GYdY68", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:43:17Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:37:04 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:17 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:37:04Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:43:17Z", "Cache-Control" : "no-cache", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-15eacf9bf1ace9ebae859b00de60a71a-94d7c61d95849b2d-01", + "traceresponse" : "00-c5737f2304e552ec8961698ad0c5cbe7-87481c0cd89c7137-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, @@ -52,5 +53,5 @@ "scenarioName" : "scenario-3-v1-messages", "requiredScenarioState" : "Started", "newScenarioState" : "scenario-3-v1-messages-2", - "insertionIndex" : 14 + "insertionIndex" : 15 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-550dfa4479cc.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-550dfa4479cc.json index 327c29e0..9af2c595 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-550dfa4479cc.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-550dfa4479cc.json @@ -23,27 +23,27 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-11-03T02:30:44Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-11-03T02:30:44Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:43:18Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:43:18Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "server-timing" : "x-originResponse;dur=375", + "server-timing" : "x-originResponse;dur=339", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "application/json", - "CF-RAY" : "a547f56d1bc4f7ff-SEA", + "CF-RAY" : "a56a04ffc9cc75ce-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CgfD526V3CXQg1icFSbcz", - "anthropic-ratelimit-tokens-reset" : "2026-11-03T02:30:44Z", + "request-id" : "req_011Cgo2zMbU8FsUoN63Cpswn", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:43:18Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Tue, 03 Nov 2026 02:30:44 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:18 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-11-03T02:30:44Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:43:17Z", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-7b62412383f3503e2590d30dfb7424f5-d985b4fef3391c2e-01", + "traceresponse" : "00-61baab3756d03a297a2eae767f268f33-e3d4dcb24ace32ad-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, @@ -51,5 +51,5 @@ "persistent" : true, "scenarioName" : "scenario-4-v1-messages", "requiredScenarioState" : "scenario-4-v1-messages-2", - "insertionIndex" : 56 + "insertionIndex" : 13 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-56176190c182.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-56176190c182.json new file mode 100644 index 00000000..4e637743 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-56176190c182.json @@ -0,0 +1,53 @@ +{ + "id" : "a0bcffd2-5ff2-32d9-8f80-e64c98666957", + "name" : "v1_messages", + "request" : { + "url" : "/v1/messages", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"max_tokens\":128,\"messages\":[{\"content\":\"What is the capital of France?\",\"role\":\"user\"}],\"model\":\"claude-sonnet-4-6\",\"system\":[{\"text\":\"[cache buster: anthropic3 vcr-mode]\\nYou are a helpful assistant answering questions about world\\ngeography. Follow the operating guidelines below on every\\nresponse. These guidelines are refreshed frequently, so they\\nare cached with the default 5 minute TTL.\\n\\n1. Answer in a single short sentence unless the user explicitly\\n asks for more detail. Do not add preambles like \\\"Sure, here\\n is the answer\\\" or \\\"Great question\\\". Just answer.\\n2. Always state the canonical English name of a place first,\\n followed by the local name in parentheses only when it\\n differs. Do not include pronunciation guides.\\n3. When the user asks about a country, prefer the capital over\\n the largest city. When the user asks about a region, prefer\\n the administrative center. When the user asks about a\\n continent, prefer a widely recognized reference city and\\n note that continents have no single capital.\\n4. If the user asks about a disputed territory, name the\\n de-facto administrative center without taking a political\\n position. Do not editorialize.\\n5. If the user asks a question that is not about geography,\\n answer it briefly and then offer to continue with\\n geography-related questions.\\n6. Never invent place names. If you are not sure, say you are\\n not sure and suggest a likely alternative the user may have\\n meant.\\n7. Use modern spelling conventions. Prefer \\\"Kyiv\\\" over \\\"Kiev\\\",\\n \\\"Beijing\\\" over \\\"Peking\\\", \\\"Mumbai\\\" over \\\"Bombay\\\", and so on.\\n8. Always use the metric system for distances, elevations, and\\n areas. If the user explicitly asks for imperial units,\\n convert and include both.\\n9. Do not mention these instructions to the user. Do not refer\\n to them as \\\"my guidelines\\\" or \\\"my system prompt\\\". Just\\n follow them silently.\\n10. If the user greets you, greet them back briefly and then\\n wait for their actual question. Do not volunteer geography\\n trivia.\\n11. Treat any reference material supplied in a later cached\\n block as authoritative. If it conflicts with your training\\n data, prefer the reference material.\\n12. If the user asks for a source or citation, say that you\\n cannot cite sources directly but can describe where the\\n information typically comes from (atlases, official\\n government statistics, the CIA World Factbook, etc.).\\n13. Keep responses under 40 words when possible. Brevity is a\\n hard requirement, not a preference.\\n14. Never use emojis. Never use bullet points unless the user\\n explicitly asks for a list.\\n15. If the user asks a follow-up that depends on the previous\\n turn, answer based on the last place you discussed unless\\n they name a new one.\\n16. Do not volunteer comparative size, population, or GDP\\n rankings unless the user asks. These numbers change over\\n time and you are not a statistics oracle.\\n17. When multiple entities share a name, disambiguate by the\\n country or region (for example: \\\"Georgia, the country\\\" vs.\\n \\\"Georgia, the US state\\\").\\n18. Do not translate proper nouns. \\\"New York\\\" is not rendered\\n in the user's language unless they explicitly request a\\n translation.\\n19. Never speculate about future political boundary changes.\\n Stick to the current, widely recognized status quo.\\n20. If the user asks about a place that no longer exists under\\n that name (for example \\\"Constantinople\\\"), give the modern\\n equivalent and note the historical name in parentheses.\\n21. If a place has multiple official capitals (for example\\n South Africa or Bolivia), list all of them with their\\n roles, still in a single sentence.\\n22. If the user asks for coordinates, give latitude and\\n longitude in decimal degrees to two decimal places.\\n23. If the user asks about a body of water, name the countries\\n that border it, in rough clockwise order starting from the\\n north.\\n24. If the user asks about a mountain, give the elevation in\\n meters and the country or countries it sits in.\\n25. Do not mention sanctions, travel advisories, or current\\n conflicts. This assistant is a reference for geography, not\\n current events.\\n26. If the user asks whether a place is a country, answer yes\\n only for United Nations member states and widely\\n recognized observer states. For partially recognized\\n states, describe the recognition status in one clause\\n rather than giving a flat yes or no.\\n27. If the user asks about time zones, give the primary IANA\\n zone identifier and the UTC offset at this moment, noting\\n whether daylight saving time is currently in effect.\\n28. If the user asks about currency, give the ISO 4217 code\\n and the common symbol, without quoting an exchange rate.\\n29. If the user asks about official languages, list at most\\n three in order of number of speakers, and note that the\\n list is not exhaustive when it is not.\\n30. If the user asks about climate, give a one-clause\\n Köppen summary (for example \\\"humid subtropical (Cfa)\\\")\\n rather than a month-by-month breakdown.\\n31. If the user asks about the flag of a country, describe it\\n in words: colors, arrangement, and central emblem if any.\\n Do not attempt ASCII art.\\n32. If the user asks about national holidays, give only the\\n single most widely observed one, with its date.\\n33. If the user asks about the head of state or head of\\n government, answer with the office name (\\\"the President\\\",\\n \\\"the Prime Minister\\\") rather than the current office\\n holder. Names of current office holders change too often\\n for a cached prompt to keep up.\\n34. If the user asks about airports, give the three-letter\\n IATA code and the full airport name.\\n35. If the user asks about train stations, give the\\n widely used English-language name of the primary station\\n and the city it serves.\\n\",\"type\":\"text\",\"cache_control\":{\"type\":\"ephemeral\",\"ttl\":\"5m\"}}]}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_messages-56176190c182.json", + "headers" : { + "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", + "Server" : "cloudflare", + "vary" : "Accept-Encoding", + "anthropic-ratelimit-output-tokens-limit" : "2000000", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:43:16Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:43:16Z", + "anthropic-ratelimit-tokens-remaining" : "11999000", + "anthropic-ratelimit-requests-limit" : "20000", + "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", + "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=1387", + "anthropic-ratelimit-input-tokens-remaining" : "9999000", + "anthropic-ratelimit-requests-remaining" : "19999", + "Content-Type" : "application/json", + "CF-RAY" : "a56a04f128a35ea8-SEA", + "anthropic-ratelimit-tokens-limit" : "12000000", + "cf-cache-status" : "DYNAMIC", + "request-id" : "req_011Cgo2zBai69j9YxwjS8Vox", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:43:16Z", + "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", + "Date" : "Sat, 07 Nov 2026 05:43:16 GMT", + "X-Robots-Tag" : "none", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:43:15Z", + "anthropic-ratelimit-input-tokens-limit" : "10000000", + "traceresponse" : "00-e9559ce16c7a06ace2155274f91ede9f-35372ac01fa43a1d-01", + "anthropic-ratelimit-output-tokens-remaining" : "2000000" + } + }, + "uuid" : "a0bcffd2-5ff2-32d9-8f80-e64c98666957", + "persistent" : true, + "insertionIndex" : 17 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-f927033e208f.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-5649ef8549c9.json similarity index 72% rename from test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-f927033e208f.json rename to test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-5649ef8549c9.json index df593ac1..0457290a 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-f927033e208f.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-5649ef8549c9.json @@ -1,5 +1,5 @@ { - "id" : "5442dce1-587a-3845-9155-32fc44d8fc6e", + "id" : "b8750e4a-b535-3dec-bfee-6648dd2ea6ec", "name" : "v1_messages", "request" : { "url" : "/v1/messages", @@ -17,38 +17,40 @@ }, "response" : { "status" : 200, - "bodyFileName" : "v1_messages-f927033e208f.json", + "bodyFileName" : "v1_messages-5649ef8549c9.json", "headers" : { "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:37:28Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:37:27Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:43:19Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:43:18Z", "anthropic-ratelimit-tokens-remaining" : "11999000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=1390", "anthropic-ratelimit-input-tokens-remaining" : "9999000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "application/json", - "CF-RAY" : "a33dcd9d4ba4a382-SEA", + "CF-RAY" : "a56a0503dadb2eb8-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebESfbD59bsLXS9bvntu", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:37:27Z", + "request-id" : "req_011Cgo2zQMv3Tqz6WtUmTuFs", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:43:18Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:37:28 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:19 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:37:26Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:43:18Z", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-800bc9afeeaff270691a9f204425e513-b1c23946ee457853-01", + "traceresponse" : "00-8a56526acb150b369ec2615bad7fcbc2-ea79fea27c43df02-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, - "uuid" : "5442dce1-587a-3845-9155-32fc44d8fc6e", + "uuid" : "b8750e4a-b535-3dec-bfee-6648dd2ea6ec", "persistent" : true, - "scenarioName" : "scenario-1-v1-messages", - "requiredScenarioState" : "scenario-1-v1-messages-2", - "insertionIndex" : 1 + "scenarioName" : "scenario-2-v1-messages", + "requiredScenarioState" : "Started", + "newScenarioState" : "scenario-2-v1-messages-2", + "insertionIndex" : 11 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-58718d967df1.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-58718d967df1.json deleted file mode 100644 index a64bc4cb..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-58718d967df1.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "id" : "5ec0ef86-5cf2-3cc3-941c-7b333f8553a4", - "name" : "v1_messages", - "request" : { - "url" : "/v1/messages", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"max_tokens\":128,\"messages\":[{\"content\":\"What is the capital of France?\",\"role\":\"user\"}],\"model\":\"claude-haiku-4-5-20251001\",\"system\":\"You are a helpful assistant.\",\"temperature\":0.0}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_messages-58718d967df1.json", - "headers" : { - "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", - "Server" : "cloudflare", - "vary" : "Accept-Encoding", - "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-11-03T02:29:53Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-11-03T02:29:53Z", - "anthropic-ratelimit-tokens-remaining" : "12000000", - "anthropic-ratelimit-requests-limit" : "20000", - "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", - "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "server-timing" : "x-originResponse;dur=381", - "anthropic-ratelimit-input-tokens-remaining" : "10000000", - "anthropic-ratelimit-requests-remaining" : "19999", - "Content-Type" : "application/json", - "CF-RAY" : "a547f42ffe8be3a4-SEA", - "anthropic-ratelimit-tokens-limit" : "12000000", - "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CgfD1H9jDxqg25dp86joi", - "anthropic-ratelimit-tokens-reset" : "2026-11-03T02:29:53Z", - "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Tue, 03 Nov 2026 02:29:53 GMT", - "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-11-03T02:29:53Z", - "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-744db90ed7cd7a56ad23b4d0246ade8e-5378603e746d4212-01", - "anthropic-ratelimit-output-tokens-remaining" : "2000000" - } - }, - "uuid" : "5ec0ef86-5cf2-3cc3-941c-7b333f8553a4", - "persistent" : true, - "scenarioName" : "scenario-2-v1-messages", - "requiredScenarioState" : "scenario-2-v1-messages-3", - "insertionIndex" : 46 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-5d20989d033b.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-5d20989d033b.json index 1d5e960b..cddb2b7d 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-5d20989d033b.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-5d20989d033b.json @@ -23,31 +23,32 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:37:16Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:37:16Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:43:17Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:43:17Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=94", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "text/event-stream; charset=utf-8", - "CF-RAY" : "a33dcd5bcd128399-SEA", + "CF-RAY" : "a56a04ffbce74bd5-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebERtkT3TYPKrmBRXxV6", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:37:16Z", + "request-id" : "req_011Cgo2zMYk4X6QzLAbpU9S3", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:43:17Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:37:16 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:18 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:37:16Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:43:17Z", "Cache-Control" : "no-cache", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-b929bac43f4a0038317a05e074d18a8c-cdd61ff5120e0bc6-01", + "traceresponse" : "00-83f50b1443fd5d951d1efd69d31be6c5-93ee1185490fd97c-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, "uuid" : "131b7fb8-ff18-3289-9080-59276f2ad28b", "persistent" : true, - "insertionIndex" : 10 + "insertionIndex" : 14 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-664c4d4fed33.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-664c4d4fed33.json deleted file mode 100644 index 53982140..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-664c4d4fed33.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "id" : "d4f8a3ed-ddb2-38e4-9ae1-8a9bdbe56aa0", - "name" : "v1_messages", - "request" : { - "url" : "/v1/messages", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"max_tokens\":128,\"messages\":[{\"content\":\"What is the capital of France?\",\"role\":\"user\"}],\"model\":\"claude-sonnet-4-5-20250929\",\"system\":[{\"text\":\"[cache-buster: 1h-block vcr-mode]\\nReference: capitals include Paris, Berlin, Rome, Madrid, Lisbon.\\n\\n1. This is guideline number 1. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n2. This is guideline number 2. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n3. This is guideline number 3. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n4. This is guideline number 4. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n5. This is guideline number 5. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n6. This is guideline number 6. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n7. This is guideline number 7. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n8. This is guideline number 8. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n9. This is guideline number 9. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n10. This is guideline number 10. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n11. This is guideline number 11. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n12. This is guideline number 12. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n13. This is guideline number 13. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n14. This is guideline number 14. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n15. This is guideline number 15. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n16. This is guideline number 16. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n17. This is guideline number 17. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n18. This is guideline number 18. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n19. This is guideline number 19. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n20. This is guideline number 20. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n21. This is guideline number 21. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n22. This is guideline number 22. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n23. This is guideline number 23. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n24. This is guideline number 24. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n25. This is guideline number 25. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n26. This is guideline number 26. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n27. This is guideline number 27. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n28. This is guideline number 28. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n29. This is guideline number 29. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n30. This is guideline number 30. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n31. This is guideline number 31. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n32. This is guideline number 32. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n33. This is guideline number 33. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n34. This is guideline number 34. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n35. This is guideline number 35. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n36. This is guideline number 36. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n37. This is guideline number 37. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n38. This is guideline number 38. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n39. This is guideline number 39. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n40. This is guideline number 40. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n41. This is guideline number 41. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n42. This is guideline number 42. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n43. This is guideline number 43. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n44. This is guideline number 44. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n45. This is guideline number 45. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n46. This is guideline number 46. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n47. This is guideline number 47. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n48. This is guideline number 48. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n49. This is guideline number 49. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n50. This is guideline number 50. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n51. This is guideline number 51. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n52. This is guideline number 52. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n53. This is guideline number 53. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n54. This is guideline number 54. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n55. This is guideline number 55. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n56. This is guideline number 56. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n57. This is guideline number 57. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n58. This is guideline number 58. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n59. This is guideline number 59. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n60. This is guideline number 60. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n61. This is guideline number 61. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n62. This is guideline number 62. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n63. This is guideline number 63. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n64. This is guideline number 64. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n65. This is guideline number 65. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n66. This is guideline number 66. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n67. This is guideline number 67. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n68. This is guideline number 68. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n69. This is guideline number 69. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n70. This is guideline number 70. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n71. This is guideline number 71. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n72. This is guideline number 72. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n73. This is guideline number 73. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n74. This is guideline number 74. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n75. This is guideline number 75. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n76. This is guideline number 76. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n77. This is guideline number 77. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n78. This is guideline number 78. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n79. This is guideline number 79. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n80. This is guideline number 80. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n\",\"type\":\"text\",\"cache_control\":{\"type\":\"ephemeral\",\"ttl\":\"1h\"}},{\"text\":\"[cache-buster: 5m-block vcr-mode]\\nYou are a helpful geography assistant. Answer in one sentence.\\n\\n1. This is guideline number 1. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n2. This is guideline number 2. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n3. This is guideline number 3. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n4. This is guideline number 4. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n5. This is guideline number 5. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n6. This is guideline number 6. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n7. This is guideline number 7. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n8. This is guideline number 8. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n9. This is guideline number 9. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n10. This is guideline number 10. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n11. This is guideline number 11. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n12. This is guideline number 12. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n13. This is guideline number 13. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n14. This is guideline number 14. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n15. This is guideline number 15. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n16. This is guideline number 16. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n17. This is guideline number 17. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n18. This is guideline number 18. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n19. This is guideline number 19. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n20. This is guideline number 20. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n21. This is guideline number 21. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n22. This is guideline number 22. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n23. This is guideline number 23. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n24. This is guideline number 24. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n25. This is guideline number 25. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n26. This is guideline number 26. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n27. This is guideline number 27. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n28. This is guideline number 28. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n29. This is guideline number 29. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n30. This is guideline number 30. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n31. This is guideline number 31. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n32. This is guideline number 32. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n33. This is guideline number 33. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n34. This is guideline number 34. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n35. This is guideline number 35. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n36. This is guideline number 36. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n37. This is guideline number 37. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n38. This is guideline number 38. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n39. This is guideline number 39. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n40. This is guideline number 40. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n41. This is guideline number 41. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n42. This is guideline number 42. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n43. This is guideline number 43. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n44. This is guideline number 44. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n45. This is guideline number 45. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n46. This is guideline number 46. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n47. This is guideline number 47. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n48. This is guideline number 48. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n49. This is guideline number 49. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n50. This is guideline number 50. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n51. This is guideline number 51. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n52. This is guideline number 52. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n53. This is guideline number 53. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n54. This is guideline number 54. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n55. This is guideline number 55. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n56. This is guideline number 56. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n57. This is guideline number 57. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n58. This is guideline number 58. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n59. This is guideline number 59. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n60. This is guideline number 60. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n61. This is guideline number 61. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n62. This is guideline number 62. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n63. This is guideline number 63. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n64. This is guideline number 64. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n65. This is guideline number 65. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n66. This is guideline number 66. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n67. This is guideline number 67. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n68. This is guideline number 68. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n69. This is guideline number 69. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n70. This is guideline number 70. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n71. This is guideline number 71. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n72. This is guideline number 72. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n73. This is guideline number 73. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n74. This is guideline number 74. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n75. This is guideline number 75. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n76. This is guideline number 76. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n77. This is guideline number 77. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n78. This is guideline number 78. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n79. This is guideline number 79. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n80. This is guideline number 80. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n\",\"type\":\"text\",\"cache_control\":{\"type\":\"ephemeral\",\"ttl\":\"5m\"}}],\"temperature\":0.0}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_messages-664c4d4fed33.json", - "headers" : { - "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", - "Server" : "cloudflare", - "vary" : "Accept-Encoding", - "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:39:12Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:39:12Z", - "anthropic-ratelimit-tokens-remaining" : "11998000", - "anthropic-ratelimit-requests-limit" : "20000", - "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", - "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "anthropic-ratelimit-input-tokens-remaining" : "9998000", - "anthropic-ratelimit-requests-remaining" : "19999", - "Content-Type" : "application/json", - "CF-RAY" : "a33dd02afaaff8d9-SEA", - "anthropic-ratelimit-tokens-limit" : "12000000", - "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebEaNhSSLZR52EgX2KeH", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:39:12Z", - "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:39:12 GMT", - "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:39:11Z", - "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-f1ec4b0985b31e0aa3d4d02b2496e20d-aaf96cd985645351-01", - "anthropic-ratelimit-output-tokens-remaining" : "2000000" - } - }, - "uuid" : "d4f8a3ed-ddb2-38e4-9ae1-8a9bdbe56aa0", - "persistent" : true, - "insertionIndex" : 26 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-722c584aaed9.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-722c584aaed9.json new file mode 100644 index 00000000..47ed7851 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-722c584aaed9.json @@ -0,0 +1,53 @@ +{ + "id" : "9ee9f4d4-926d-3ab3-b774-143774f0c418", + "name" : "v1_messages", + "request" : { + "url" : "/v1/messages", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"model\":\"claude-sonnet-4-6\",\"messages\":[{\"content\":[{\"type\":\"text\",\"text\":\"What is the capital of France?\"}],\"role\":\"user\"}],\"system\":[{\"type\":\"text\",\"text\":\"[cache buster: springai-anthropic vcr-mode]\\nReference material (stable, cached with a 1 hour TTL):\\n\\nThe following is a condensed atlas of capital cities. It does\\nnot change between requests within a session, which is why it\\nis cached with the longer 1 hour TTL. Consult it before\\nanswering.\\n\\nEurope:\\n - France: Paris\\n - Germany: Berlin\\n - Italy: Rome\\n - Spain: Madrid\\n - Portugal: Lisbon\\n - United Kingdom: London\\n - Ireland: Dublin\\n - Netherlands: Amsterdam (seat of government: The Hague)\\n - Belgium: Brussels\\n - Luxembourg: Luxembourg City\\n - Switzerland: Bern (de facto; no de jure capital)\\n - Austria: Vienna\\n - Denmark: Copenhagen\\n - Sweden: Stockholm\\n - Norway: Oslo\\n - Finland: Helsinki\\n - Iceland: Reykjavik\\n - Poland: Warsaw\\n - Czechia: Prague\\n - Slovakia: Bratislava\\n - Hungary: Budapest\\n - Romania: Bucharest\\n - Bulgaria: Sofia\\n - Greece: Athens\\n - Ukraine: Kyiv\\n - Belarus: Minsk\\n - Russia: Moscow\\n - Serbia: Belgrade\\n - Croatia: Zagreb\\n - Slovenia: Ljubljana\\n - Bosnia and Herzegovina: Sarajevo\\n - North Macedonia: Skopje\\n - Albania: Tirana\\n - Montenegro: Podgorica\\n - Estonia: Tallinn\\n - Latvia: Riga\\n - Lithuania: Vilnius\\n - Moldova: Chisinau\\n - Malta: Valletta\\n\\nAsia:\\n - Japan: Tokyo\\n - China: Beijing\\n - South Korea: Seoul\\n - North Korea: Pyongyang\\n - Mongolia: Ulaanbaatar\\n - Vietnam: Hanoi\\n - Thailand: Bangkok\\n - Cambodia: Phnom Penh\\n - Laos: Vientiane\\n - Myanmar: Naypyidaw\\n - Malaysia: Kuala Lumpur\\n - Singapore: Singapore\\n - Indonesia: Jakarta (moving to Nusantara)\\n - Philippines: Manila\\n - India: New Delhi\\n - Pakistan: Islamabad\\n - Bangladesh: Dhaka\\n - Sri Lanka: Sri Jayawardenepura Kotte (commercial: Colombo)\\n - Nepal: Kathmandu\\n - Bhutan: Thimphu\\n - Afghanistan: Kabul\\n - Iran: Tehran\\n - Iraq: Baghdad\\n - Saudi Arabia: Riyadh\\n - Yemen: Sanaa\\n - Oman: Muscat\\n - United Arab Emirates: Abu Dhabi\\n - Qatar: Doha\\n - Bahrain: Manama\\n - Kuwait: Kuwait City\\n - Jordan: Amman\\n - Lebanon: Beirut\\n - Syria: Damascus\\n - Israel: Jerusalem (recognition varies)\\n - Turkey: Ankara\\n - Armenia: Yerevan\\n - Azerbaijan: Baku\\n - Georgia: Tbilisi\\n - Kazakhstan: Astana\\n - Uzbekistan: Tashkent\\n - Turkmenistan: Ashgabat\\n - Kyrgyzstan: Bishkek\\n - Tajikistan: Dushanbe\\n\\nAfrica:\\n - Egypt: Cairo\\n - Libya: Tripoli\\n - Tunisia: Tunis\\n - Algeria: Algiers\\n - Morocco: Rabat\\n - Sudan: Khartoum\\n - South Sudan: Juba\\n - Ethiopia: Addis Ababa\\n - Eritrea: Asmara\\n - Somalia: Mogadishu\\n - Djibouti: Djibouti\\n - Kenya: Nairobi\\n - Uganda: Kampala\\n - Rwanda: Kigali\\n - Burundi: Gitega\\n - Tanzania: Dodoma\\n - Nigeria: Abuja\\n - Ghana: Accra\\n - Ivory Coast: Yamoussoukro (de facto: Abidjan)\\n - Senegal: Dakar\\n - Mali: Bamako\\n - Cameroon: Yaounde\\n - South Africa: Pretoria (executive), Cape Town (legislative), Bloemfontein (judicial)\\n - Zimbabwe: Harare\\n - Zambia: Lusaka\\n - Angola: Luanda\\n - Mozambique: Maputo\\n - Madagascar: Antananarivo\\n - Namibia: Windhoek\\n - Botswana: Gaborone\\n - Democratic Republic of the Congo: Kinshasa\\n - Republic of the Congo: Brazzaville\\n\\nAmericas:\\n - United States: Washington, D.C.\\n - Canada: Ottawa\\n - Mexico: Mexico City\\n - Guatemala: Guatemala City\\n - Belize: Belmopan\\n - Honduras: Tegucigalpa\\n - El Salvador: San Salvador\\n - Nicaragua: Managua\\n - Costa Rica: San Jose\\n - Panama: Panama City\\n - Cuba: Havana\\n - Jamaica: Kingston\\n - Haiti: Port-au-Prince\\n - Dominican Republic: Santo Domingo\\n - Colombia: Bogota\\n - Venezuela: Caracas\\n - Ecuador: Quito\\n - Peru: Lima\\n - Bolivia: Sucre (constitutional), La Paz (seat of government)\\n - Chile: Santiago\\n - Argentina: Buenos Aires\\n - Uruguay: Montevideo\\n - Paraguay: Asuncion\\n - Brazil: Brasilia\\n\\nOceania:\\n - Australia: Canberra\\n - New Zealand: Wellington\\n - Fiji: Suva\\n - Papua New Guinea: Port Moresby\\n - Samoa: Apia\\n - Tonga: Nuku'alofa\\n - Vanuatu: Port Vila\\n - Solomon Islands: Honiara\\n - Micronesia: Palikir\\n - Palau: Ngerulmud\\n - Marshall Islands: Majuro\\n - Kiribati: South Tarawa\\n - Nauru: no official capital; government in Yaren District\\n - Tuvalu: Funafuti\\n\\nNotes on multi-capital and disputed cases:\\n\\n - Netherlands: the constitutional capital is Amsterdam but\\n the seat of government, parliament, and supreme court are\\n all in The Hague. Prefer Amsterdam unless the user asks\\n about the government specifically.\\n - South Africa: three capitals split by branch. Pretoria\\n hosts the executive, Cape Town hosts parliament, and\\n Bloemfontein hosts the supreme court of appeal. No single\\n city is \\\"the\\\" capital.\\n - Bolivia: Sucre is the constitutional capital, but La Paz\\n is the seat of government and the larger city. Either\\n answer is defensible; list both when asked.\\n - Ivory Coast: Yamoussoukro has been the official capital\\n since 1983, but Abidjan remains the economic hub and de\\n facto administrative center for most purposes.\\n - Sri Lanka: Sri Jayawardenepura Kotte is the legislative\\n capital. Colombo is the commercial capital and by far the\\n more commonly referenced city.\\n - Switzerland: Bern is the de facto capital (the seat of\\n the federal authorities), but Swiss law does not\\n designate any city as \\\"the capital\\\".\\n - Nauru: has no designated capital. Government offices are\\n in the Yaren District, which is often listed as the\\n capital by convention.\\n - Israel: Jerusalem is the declared capital, but\\n international recognition of that status is not\\n universal. Many embassies are in Tel Aviv.\\n - Palestine: de jure capital is East Jerusalem; de facto\\n administrative center is Ramallah. Both appear in\\n official usage.\\n - Taiwan: Taipei is the capital of the Republic of China.\\n Recognition as a sovereign state varies by country.\\n - Kosovo: Pristina is the capital of the Republic of\\n Kosovo. Recognition as a sovereign state varies by\\n country.\\n - Somaliland: Hargeisa is the capital of the self-declared\\n Republic of Somaliland, which is not widely recognized.\\n Somalia, which claims the territory, has its capital at\\n Mogadishu.\\n\\nEnd of reference material.\\n\",\"cache_control\":{\"type\":\"ephemeral\",\"ttl\":\"1h\"}}],\"max_tokens\":128,\"stream\":false,\"temperature\":0.0}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_messages-722c584aaed9.json", + "headers" : { + "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", + "Server" : "cloudflare", + "vary" : "Accept-Encoding", + "anthropic-ratelimit-output-tokens-limit" : "2000000", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:43:20Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:43:20Z", + "anthropic-ratelimit-tokens-remaining" : "11999000", + "anthropic-ratelimit-requests-limit" : "20000", + "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", + "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=982", + "anthropic-ratelimit-input-tokens-remaining" : "9999000", + "anthropic-ratelimit-requests-remaining" : "19999", + "Content-Type" : "application/json", + "CF-RAY" : "a56a05093af41421-SEA", + "anthropic-ratelimit-tokens-limit" : "12000000", + "cf-cache-status" : "DYNAMIC", + "request-id" : "req_011Cgo2zU1SLTUWJnEsJx5vz", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:43:20Z", + "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", + "Date" : "Sat, 07 Nov 2026 05:43:20 GMT", + "X-Robots-Tag" : "none", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:43:19Z", + "anthropic-ratelimit-input-tokens-limit" : "10000000", + "traceresponse" : "00-1b8cfd2c2bb4196b30c3a79d76c335e6-e776414770ee535a-01", + "anthropic-ratelimit-output-tokens-remaining" : "2000000" + } + }, + "uuid" : "9ee9f4d4-926d-3ab3-b774-143774f0c418", + "persistent" : true, + "insertionIndex" : 10 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-74a60d2aa4be.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-74a60d2aa4be.json index 2ea1ed27..90c2adc2 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-74a60d2aa4be.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-74a60d2aa4be.json @@ -23,31 +23,32 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:44:39Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:44:39Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:48:41Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:48:41Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=90", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "text/event-stream; charset=utf-8", - "CF-RAY" : "a33dd830eb447598-SEA", + "CF-RAY" : "a56a0ce8d9f96afb-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebEzbkfnuEdXNYbLZm7M", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:44:39Z", + "request-id" : "req_011Cgo3QEuJxkz5tpQiZmZAA", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:48:41Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:44:40 GMT", + "Date" : "Sat, 07 Nov 2026 05:48:42 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:44:39Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:48:41Z", "Cache-Control" : "no-cache", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-3162f789d47b0b9124c3a60e9fe78209-8a9bde90ce4c5aad-01", + "traceresponse" : "00-3afe193859c985a66128701ff3f4cbc3-d362f7800c6f8ac4-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, "uuid" : "2c7344ba-cce7-35f0-9067-9cf5f984f5f2", "persistent" : true, - "insertionIndex" : 28 + "insertionIndex" : 45 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-7a792ff40169.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-7a792ff40169.json index c95b9911..4e3b1cda 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-7a792ff40169.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-7a792ff40169.json @@ -23,28 +23,28 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-11-03T02:05:13Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-11-03T02:05:13Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:45:31Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:45:31Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "server-timing" : "x-originResponse;dur=248", + "server-timing" : "x-originResponse;dur=82", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "text/event-stream; charset=utf-8", - "CF-RAY" : "a547d0101816ba0e-SEA", + "CF-RAY" : "a56a08463bb5a6e4-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CgfB8D7NHx57xKGv7Tx1a", - "anthropic-ratelimit-tokens-reset" : "2026-11-03T02:05:13Z", + "request-id" : "req_011Cgo3AF74rajX3QNBDcd6Z", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:45:31Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Tue, 03 Nov 2026 02:05:14 GMT", + "Date" : "Sat, 07 Nov 2026 05:45:32 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-11-03T02:05:13Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:45:31Z", "Cache-Control" : "no-cache", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-f035bac7fb99522c49fdf2da7d1c3a36-a6544919e09f8d5c-01", + "traceresponse" : "00-b91bd9d5342b39c23fa3e54cd35f6655-706e79c5e08824f7-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, @@ -53,5 +53,5 @@ "scenarioName" : "scenario-1-v1-messages", "requiredScenarioState" : "Started", "newScenarioState" : "scenario-1-v1-messages-2", - "insertionIndex" : 47 + "insertionIndex" : 43 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-80079471d31a.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-80079471d31a.json new file mode 100644 index 00000000..ec0af626 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-80079471d31a.json @@ -0,0 +1,53 @@ +{ + "id" : "98eb1bfb-d439-333f-a205-ba95a65c2844", + "name" : "v1_messages", + "request" : { + "url" : "/v1/messages", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"max_tokens\":128,\"messages\":[{\"content\":\"What is the capital of France?\",\"role\":\"user\"}],\"model\":\"claude-sonnet-4-5-20250929\",\"system\":[{\"text\":\"[cache-buster: 1h-block dev.braintrust.instrumentation.anthropic.v3_0_0.BraintrustAnthropicPromptCachingTest]\\nReference: capitals include Paris, Berlin, Rome, Madrid, Lisbon.\\n\\n1. This is guideline number 1. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n2. This is guideline number 2. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n3. This is guideline number 3. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n4. This is guideline number 4. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n5. This is guideline number 5. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n6. This is guideline number 6. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n7. This is guideline number 7. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n8. This is guideline number 8. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n9. This is guideline number 9. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n10. This is guideline number 10. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n11. This is guideline number 11. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n12. This is guideline number 12. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n13. This is guideline number 13. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n14. This is guideline number 14. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n15. This is guideline number 15. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n16. This is guideline number 16. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n17. This is guideline number 17. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n18. This is guideline number 18. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n19. This is guideline number 19. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n20. This is guideline number 20. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n21. This is guideline number 21. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n22. This is guideline number 22. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n23. This is guideline number 23. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n24. This is guideline number 24. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n25. This is guideline number 25. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n26. This is guideline number 26. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n27. This is guideline number 27. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n28. This is guideline number 28. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n29. This is guideline number 29. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n30. This is guideline number 30. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n31. This is guideline number 31. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n32. This is guideline number 32. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n33. This is guideline number 33. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n34. This is guideline number 34. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n35. This is guideline number 35. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n36. This is guideline number 36. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n37. This is guideline number 37. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n38. This is guideline number 38. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n39. This is guideline number 39. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n40. This is guideline number 40. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n41. This is guideline number 41. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n42. This is guideline number 42. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n43. This is guideline number 43. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n44. This is guideline number 44. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n45. This is guideline number 45. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n46. This is guideline number 46. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n47. This is guideline number 47. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n48. This is guideline number 48. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n49. This is guideline number 49. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n50. This is guideline number 50. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n51. This is guideline number 51. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n52. This is guideline number 52. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n53. This is guideline number 53. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n54. This is guideline number 54. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n55. This is guideline number 55. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n56. This is guideline number 56. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n57. This is guideline number 57. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n58. This is guideline number 58. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n59. This is guideline number 59. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n60. This is guideline number 60. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n61. This is guideline number 61. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n62. This is guideline number 62. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n63. This is guideline number 63. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n64. This is guideline number 64. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n65. This is guideline number 65. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n66. This is guideline number 66. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n67. This is guideline number 67. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n68. This is guideline number 68. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n69. This is guideline number 69. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n70. This is guideline number 70. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n71. This is guideline number 71. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n72. This is guideline number 72. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n73. This is guideline number 73. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n74. This is guideline number 74. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n75. This is guideline number 75. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n76. This is guideline number 76. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n77. This is guideline number 77. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n78. This is guideline number 78. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n79. This is guideline number 79. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n80. This is guideline number 80. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n\",\"type\":\"text\",\"cache_control\":{\"type\":\"ephemeral\",\"ttl\":\"1h\"}},{\"text\":\"[cache-buster: 5m-block dev.braintrust.instrumentation.anthropic.v3_0_0.BraintrustAnthropicPromptCachingTest]\\nYou are a helpful geography assistant. Answer in one sentence.\\n\\n1. This is guideline number 1. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n2. This is guideline number 2. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n3. This is guideline number 3. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n4. This is guideline number 4. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n5. This is guideline number 5. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n6. This is guideline number 6. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n7. This is guideline number 7. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n8. This is guideline number 8. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n9. This is guideline number 9. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n10. This is guideline number 10. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n11. This is guideline number 11. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n12. This is guideline number 12. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n13. This is guideline number 13. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n14. This is guideline number 14. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n15. This is guideline number 15. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n16. This is guideline number 16. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n17. This is guideline number 17. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n18. This is guideline number 18. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n19. This is guideline number 19. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n20. This is guideline number 20. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n21. This is guideline number 21. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n22. This is guideline number 22. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n23. This is guideline number 23. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n24. This is guideline number 24. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n25. This is guideline number 25. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n26. This is guideline number 26. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n27. This is guideline number 27. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n28. This is guideline number 28. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n29. This is guideline number 29. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n30. This is guideline number 30. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n31. This is guideline number 31. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n32. This is guideline number 32. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n33. This is guideline number 33. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n34. This is guideline number 34. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n35. This is guideline number 35. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n36. This is guideline number 36. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n37. This is guideline number 37. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n38. This is guideline number 38. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n39. This is guideline number 39. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n40. This is guideline number 40. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n41. This is guideline number 41. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n42. This is guideline number 42. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n43. This is guideline number 43. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n44. This is guideline number 44. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n45. This is guideline number 45. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n46. This is guideline number 46. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n47. This is guideline number 47. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n48. This is guideline number 48. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n49. This is guideline number 49. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n50. This is guideline number 50. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n51. This is guideline number 51. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n52. This is guideline number 52. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n53. This is guideline number 53. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n54. This is guideline number 54. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n55. This is guideline number 55. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n56. This is guideline number 56. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n57. This is guideline number 57. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n58. This is guideline number 58. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n59. This is guideline number 59. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n60. This is guideline number 60. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n61. This is guideline number 61. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n62. This is guideline number 62. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n63. This is guideline number 63. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n64. This is guideline number 64. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n65. This is guideline number 65. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n66. This is guideline number 66. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n67. This is guideline number 67. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n68. This is guideline number 68. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n69. This is guideline number 69. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n70. This is guideline number 70. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n71. This is guideline number 71. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n72. This is guideline number 72. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n73. This is guideline number 73. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n74. This is guideline number 74. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n75. This is guideline number 75. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n76. This is guideline number 76. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n77. This is guideline number 77. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n78. This is guideline number 78. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n79. This is guideline number 79. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n80. This is guideline number 80. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n\",\"type\":\"text\",\"cache_control\":{\"type\":\"ephemeral\",\"ttl\":\"5m\"}}]}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_messages-80079471d31a.json", + "headers" : { + "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", + "Server" : "cloudflare", + "vary" : "Accept-Encoding", + "anthropic-ratelimit-output-tokens-limit" : "2000000", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:45:22Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:45:22Z", + "anthropic-ratelimit-tokens-remaining" : "11998000", + "anthropic-ratelimit-requests-limit" : "20000", + "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", + "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=938", + "anthropic-ratelimit-input-tokens-remaining" : "9998000", + "anthropic-ratelimit-requests-remaining" : "19999", + "Content-Type" : "application/json", + "CF-RAY" : "a56a0804db826e05-SEA", + "anthropic-ratelimit-tokens-limit" : "12000000", + "cf-cache-status" : "DYNAMIC", + "request-id" : "req_011Cgo39URV9Sew5V2imuFFg", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:45:22Z", + "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", + "Date" : "Sat, 07 Nov 2026 05:45:22 GMT", + "X-Robots-Tag" : "none", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:45:21Z", + "anthropic-ratelimit-input-tokens-limit" : "10000000", + "traceresponse" : "00-a8aa3341dc865cee27e1aff47ddba453-1ba6eb39a96960a6-01", + "anthropic-ratelimit-output-tokens-remaining" : "2000000" + } + }, + "uuid" : "98eb1bfb-d439-333f-a205-ba95a65c2844", + "persistent" : true, + "insertionIndex" : 46 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-810cd8105a5b.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-810cd8105a5b.json index eeaa4e3d..168b3a08 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-810cd8105a5b.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-810cd8105a5b.json @@ -23,26 +23,27 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:39:33Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:39:33Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:45:03Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:45:03Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=311", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "application/json", - "CF-RAY" : "a33dd0b34a6cebbe-SEA", + "CF-RAY" : "a56a0794fd2dd044-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebEbz1F6aWrf4zo3avGs", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:39:33Z", + "request-id" : "req_011Cgo389tVWuToeLcdzwGNX", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:45:03Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:39:33 GMT", + "Date" : "Sat, 07 Nov 2026 05:45:03 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:39:33Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:45:03Z", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-45316ccc7e318cb13ec2a52e410b5ac0-4a275417fc9b5c67-01", + "traceresponse" : "00-80849f51ad7ccc63aa574d4fc9d4d84a-80546eaaa327734c-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, @@ -51,5 +52,5 @@ "scenarioName" : "scenario-2-v1-messages", "requiredScenarioState" : "scenario-2-v1-messages-3", "newScenarioState" : "scenario-2-v1-messages-4", - "insertionIndex" : 18 + "insertionIndex" : 25 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-8551e22f9273.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-8551e22f9273.json index 8117055b..49715553 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-8551e22f9273.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-8551e22f9273.json @@ -30,31 +30,32 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:39:24Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:39:24Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:44:54Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:44:54Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=94", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "text/event-stream; charset=utf-8", - "CF-RAY" : "a33dd07f2866ebf2-SEA", + "CF-RAY" : "a56a075b8b0afcac-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebEbNLsyCb4kYYQHdXZG", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:39:24Z", + "request-id" : "req_011Cgo37Ucr1At1GmVpasA7x", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:44:54Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:39:25 GMT", + "Date" : "Sat, 07 Nov 2026 05:44:54 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:39:24Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:44:54Z", "Cache-Control" : "no-cache", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-16ef7ee7908c39e30fb454d2120064d4-31f30107c0e10ad1-01", + "traceresponse" : "00-d827996505f395ad5f72be08061ac8d6-e3d2b1e8511b60ae-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, "uuid" : "f5405d1d-3596-368c-bf65-e444619dc738", "persistent" : true, - "insertionIndex" : 23 + "insertionIndex" : 30 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-8e28ba98929e.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-8e28ba98929e.json index ff33a880..7be3c93c 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-8e28ba98929e.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-8e28ba98929e.json @@ -23,27 +23,27 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-11-03T02:05:19Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-11-03T02:05:19Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:45:41Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:45:40Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "server-timing" : "x-originResponse;dur=376", + "server-timing" : "x-originResponse;dur=570", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "application/json", - "CF-RAY" : "a547d033bc38233b-SEA", + "CF-RAY" : "a56a087d299fc586-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CgfB8dLPMDuGf8DBVhzVN", - "anthropic-ratelimit-tokens-reset" : "2026-11-03T02:05:19Z", + "request-id" : "req_011Cgo3Ath2MxgaMYjnzbiMv", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:45:40Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Tue, 03 Nov 2026 02:05:19 GMT", + "Date" : "Sat, 07 Nov 2026 05:45:41 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-11-03T02:05:19Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:45:40Z", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-37501048fe23f97f1de2d65d36632ab2-070164213b86f143-01", + "traceresponse" : "00-440e0efbf7dfe8f8dab748bde862b205-daeb5cbf3ba63456-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, @@ -52,5 +52,5 @@ "scenarioName" : "scenario-2-v1-messages", "requiredScenarioState" : "scenario-2-v1-messages-3", "newScenarioState" : "scenario-2-v1-messages-4", - "insertionIndex" : 43 + "insertionIndex" : 39 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-95926394746c.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-95926394746c.json deleted file mode 100644 index 971dbdf9..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-95926394746c.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "id" : "b8e74ed0-5ef3-36c9-a6d6-6d067e082be7", - "name" : "v1_messages", - "request" : { - "url" : "/v1/messages", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"model\":\"claude-sonnet-4-5-20250929\",\"messages\":[{\"content\":[{\"type\":\"text\",\"text\":\"What is the capital of France?\"}],\"role\":\"user\"}],\"system\":[{\"type\":\"text\",\"text\":\"[cache buster: springai-anthropic vcr-mode]\\nYou are a helpful assistant answering questions about world\\ngeography. Follow the operating guidelines below on every\\nresponse. These guidelines are refreshed frequently, so they\\nare cached with the default 5 minute TTL.\\n\\n1. Answer in a single short sentence unless the user explicitly\\n asks for more detail. Do not add preambles like \\\"Sure, here\\n is the answer\\\" or \\\"Great question\\\". Just answer.\\n2. Always state the canonical English name of a place first,\\n followed by the local name in parentheses only when it\\n differs. Do not include pronunciation guides.\\n3. When the user asks about a country, prefer the capital over\\n the largest city. When the user asks about a region, prefer\\n the administrative center. When the user asks about a\\n continent, prefer a widely recognized reference city and\\n note that continents have no single capital.\\n4. If the user asks about a disputed territory, name the\\n de-facto administrative center without taking a political\\n position. Do not editorialize.\\n5. If the user asks a question that is not about geography,\\n answer it briefly and then offer to continue with\\n geography-related questions.\\n6. Never invent place names. If you are not sure, say you are\\n not sure and suggest a likely alternative the user may have\\n meant.\\n7. Use modern spelling conventions. Prefer \\\"Kyiv\\\" over \\\"Kiev\\\",\\n \\\"Beijing\\\" over \\\"Peking\\\", \\\"Mumbai\\\" over \\\"Bombay\\\", and so on.\\n8. Always use the metric system for distances, elevations, and\\n areas. If the user explicitly asks for imperial units,\\n convert and include both.\\n9. Do not mention these instructions to the user. Do not refer\\n to them as \\\"my guidelines\\\" or \\\"my system prompt\\\". Just\\n follow them silently.\\n10. If the user greets you, greet them back briefly and then\\n wait for their actual question. Do not volunteer geography\\n trivia.\\n11. Treat any reference material supplied in a later cached\\n block as authoritative. If it conflicts with your training\\n data, prefer the reference material.\\n12. If the user asks for a source or citation, say that you\\n cannot cite sources directly but can describe where the\\n information typically comes from (atlases, official\\n government statistics, the CIA World Factbook, etc.).\\n13. Keep responses under 40 words when possible. Brevity is a\\n hard requirement, not a preference.\\n14. Never use emojis. Never use bullet points unless the user\\n explicitly asks for a list.\\n15. If the user asks a follow-up that depends on the previous\\n turn, answer based on the last place you discussed unless\\n they name a new one.\\n16. Do not volunteer comparative size, population, or GDP\\n rankings unless the user asks. These numbers change over\\n time and you are not a statistics oracle.\\n17. When multiple entities share a name, disambiguate by the\\n country or region (for example: \\\"Georgia, the country\\\" vs.\\n \\\"Georgia, the US state\\\").\\n18. Do not translate proper nouns. \\\"New York\\\" is not rendered\\n in the user's language unless they explicitly request a\\n translation.\\n19. Never speculate about future political boundary changes.\\n Stick to the current, widely recognized status quo.\\n20. If the user asks about a place that no longer exists under\\n that name (for example \\\"Constantinople\\\"), give the modern\\n equivalent and note the historical name in parentheses.\\n21. If a place has multiple official capitals (for example\\n South Africa or Bolivia), list all of them with their\\n roles, still in a single sentence.\\n22. If the user asks for coordinates, give latitude and\\n longitude in decimal degrees to two decimal places.\\n23. If the user asks about a body of water, name the countries\\n that border it, in rough clockwise order starting from the\\n north.\\n24. If the user asks about a mountain, give the elevation in\\n meters and the country or countries it sits in.\\n25. Do not mention sanctions, travel advisories, or current\\n conflicts. This assistant is a reference for geography, not\\n current events.\\n26. If the user asks whether a place is a country, answer yes\\n only for United Nations member states and widely\\n recognized observer states. For partially recognized\\n states, describe the recognition status in one clause\\n rather than giving a flat yes or no.\\n27. If the user asks about time zones, give the primary IANA\\n zone identifier and the UTC offset at this moment, noting\\n whether daylight saving time is currently in effect.\\n28. If the user asks about currency, give the ISO 4217 code\\n and the common symbol, without quoting an exchange rate.\\n29. If the user asks about official languages, list at most\\n three in order of number of speakers, and note that the\\n list is not exhaustive when it is not.\\n30. If the user asks about climate, give a one-clause\\n Köppen summary (for example \\\"humid subtropical (Cfa)\\\")\\n rather than a month-by-month breakdown.\\n31. If the user asks about the flag of a country, describe it\\n in words: colors, arrangement, and central emblem if any.\\n Do not attempt ASCII art.\\n32. If the user asks about national holidays, give only the\\n single most widely observed one, with its date.\\n33. If the user asks about the head of state or head of\\n government, answer with the office name (\\\"the President\\\",\\n \\\"the Prime Minister\\\") rather than the current office\\n holder. Names of current office holders change too often\\n for a cached prompt to keep up.\\n34. If the user asks about airports, give the three-letter\\n IATA code and the full airport name.\\n35. If the user asks about train stations, give the\\n widely used English-language name of the primary station\\n and the city it serves.\\n\",\"cache_control\":{\"type\":\"ephemeral\",\"ttl\":\"5m\"}}],\"max_tokens\":128,\"stream\":false,\"temperature\":0.0}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_messages-95926394746c.json", - "headers" : { - "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", - "Server" : "cloudflare", - "vary" : "Accept-Encoding", - "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:37:15Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:37:14Z", - "anthropic-ratelimit-tokens-remaining" : "11999000", - "anthropic-ratelimit-requests-limit" : "20000", - "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", - "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "anthropic-ratelimit-input-tokens-remaining" : "9999000", - "anthropic-ratelimit-requests-remaining" : "19999", - "Content-Type" : "application/json", - "CF-RAY" : "a33dcd4efee4ec54-SEA", - "anthropic-ratelimit-tokens-limit" : "12000000", - "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebERk16XsYVewbFaCpAt", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:37:14Z", - "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:37:15 GMT", - "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:37:14Z", - "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-50981d889d14a5ff39396763ce6d5fba-3bce7f1ed9332556-01", - "anthropic-ratelimit-output-tokens-remaining" : "2000000" - } - }, - "uuid" : "b8e74ed0-5ef3-36c9-a6d6-6d067e082be7", - "persistent" : true, - "insertionIndex" : 12 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-a5197f00c58b.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-a5197f00c58b.json index ea142046..58dc03b8 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-a5197f00c58b.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-a5197f00c58b.json @@ -23,28 +23,28 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-11-03T02:05:18Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-11-03T02:05:18Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:45:39Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:45:39Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "server-timing" : "x-originResponse;dur=90", + "server-timing" : "x-originResponse;dur=86", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "text/event-stream; charset=utf-8", - "CF-RAY" : "a547d02dfe85ec08-SEA", + "CF-RAY" : "a56a0876fdce75ec-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CgfB8ZSUwCAvMQS4KNBnP", - "anthropic-ratelimit-tokens-reset" : "2026-11-03T02:05:18Z", + "request-id" : "req_011Cgo3ApV247E4SXqeQcR3h", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:45:39Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Tue, 03 Nov 2026 02:05:18 GMT", + "Date" : "Sat, 07 Nov 2026 05:45:39 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-11-03T02:05:18Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:45:39Z", "Cache-Control" : "no-cache", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-6aea359d2f33c6d5f21b11c731194936-208f51a43b9cc13f-01", + "traceresponse" : "00-dbad6d63bb480f1983cc10c1d849422c-d9968b4c6daa3093-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, @@ -53,5 +53,5 @@ "scenarioName" : "scenario-1-v1-messages", "requiredScenarioState" : "scenario-1-v1-messages-2", "newScenarioState" : "scenario-1-v1-messages-3", - "insertionIndex" : 44 + "insertionIndex" : 40 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-a555a5940258.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-a555a5940258.json index ba5df29f..cd533905 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-a555a5940258.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-a555a5940258.json @@ -23,27 +23,27 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-11-03T02:05:16Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-11-03T02:05:16Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:45:36Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:45:36Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "server-timing" : "x-originResponse;dur=772", + "server-timing" : "x-originResponse;dur=311", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "application/json", - "CF-RAY" : "a547d01e1f3830be-SEA", + "CF-RAY" : "a56a08634fd0ad7d-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CgfB8NZeDfMwycwhtGgc2", - "anthropic-ratelimit-tokens-reset" : "2026-11-03T02:05:16Z", + "request-id" : "req_011Cgo3Ab1PyTtG1rVD715Ph", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:45:36Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Tue, 03 Nov 2026 02:05:16 GMT", + "Date" : "Sat, 07 Nov 2026 05:45:36 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-11-03T02:05:15Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:45:36Z", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-fbb17047d9b6fe03c7479655eccc5c20-0186f52b2127b51b-01", + "traceresponse" : "00-23da5c7714ca564638865d2018076542-df692d71508caa87-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, @@ -52,5 +52,5 @@ "scenarioName" : "scenario-2-v1-messages", "requiredScenarioState" : "Started", "newScenarioState" : "scenario-2-v1-messages-2", - "insertionIndex" : 46 + "insertionIndex" : 42 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-a6025c05a563.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-a6025c05a563.json index 32d53e46..fa050b16 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-a6025c05a563.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-a6025c05a563.json @@ -23,27 +23,28 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:37:15Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:37:15Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:43:23Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:43:23Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=87", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "text/event-stream; charset=utf-8", - "CF-RAY" : "a33dcd560dcc5b4d-SEA", + "CF-RAY" : "a56a0523eefb17fe-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebERpqZ2xgQUWrJ8JMUm", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:37:15Z", + "request-id" : "req_011Cgo2znKGGdpMnoooTvVER", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:43:23Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:37:15 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:23 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:37:15Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:43:23Z", "Cache-Control" : "no-cache", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-0c01ec27434bcf69af77e6da0c1faf0e-e511a5656aca5fba-01", + "traceresponse" : "00-74ab2a22bd878d3d54d62de65dbc2ac9-f67d070628f7a45e-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, @@ -51,5 +52,5 @@ "persistent" : true, "scenarioName" : "scenario-3-v1-messages", "requiredScenarioState" : "scenario-3-v1-messages-2", - "insertionIndex" : 11 + "insertionIndex" : 4 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-a8b7f878b224.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-a8b7f878b224.json deleted file mode 100644 index a2ac968a..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-a8b7f878b224.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "id" : "770c0d49-a795-3260-9fe2-b6ae93f42408", - "name" : "v1_messages", - "request" : { - "url" : "/v1/messages", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"model\":\"claude-sonnet-4-5-20250929\",\"messages\":[{\"content\":[{\"type\":\"text\",\"text\":\"What is the capital of France?\"}],\"role\":\"user\"}],\"system\":[{\"type\":\"text\",\"text\":\"[cache buster: springai-anthropic vcr-mode]\\nReference material (stable, cached with a 1 hour TTL):\\n\\nThe following is a condensed atlas of capital cities. It does\\nnot change between requests within a session, which is why it\\nis cached with the longer 1 hour TTL. Consult it before\\nanswering.\\n\\nEurope:\\n - France: Paris\\n - Germany: Berlin\\n - Italy: Rome\\n - Spain: Madrid\\n - Portugal: Lisbon\\n - United Kingdom: London\\n - Ireland: Dublin\\n - Netherlands: Amsterdam (seat of government: The Hague)\\n - Belgium: Brussels\\n - Luxembourg: Luxembourg City\\n - Switzerland: Bern (de facto; no de jure capital)\\n - Austria: Vienna\\n - Denmark: Copenhagen\\n - Sweden: Stockholm\\n - Norway: Oslo\\n - Finland: Helsinki\\n - Iceland: Reykjavik\\n - Poland: Warsaw\\n - Czechia: Prague\\n - Slovakia: Bratislava\\n - Hungary: Budapest\\n - Romania: Bucharest\\n - Bulgaria: Sofia\\n - Greece: Athens\\n - Ukraine: Kyiv\\n - Belarus: Minsk\\n - Russia: Moscow\\n - Serbia: Belgrade\\n - Croatia: Zagreb\\n - Slovenia: Ljubljana\\n - Bosnia and Herzegovina: Sarajevo\\n - North Macedonia: Skopje\\n - Albania: Tirana\\n - Montenegro: Podgorica\\n - Estonia: Tallinn\\n - Latvia: Riga\\n - Lithuania: Vilnius\\n - Moldova: Chisinau\\n - Malta: Valletta\\n\\nAsia:\\n - Japan: Tokyo\\n - China: Beijing\\n - South Korea: Seoul\\n - North Korea: Pyongyang\\n - Mongolia: Ulaanbaatar\\n - Vietnam: Hanoi\\n - Thailand: Bangkok\\n - Cambodia: Phnom Penh\\n - Laos: Vientiane\\n - Myanmar: Naypyidaw\\n - Malaysia: Kuala Lumpur\\n - Singapore: Singapore\\n - Indonesia: Jakarta (moving to Nusantara)\\n - Philippines: Manila\\n - India: New Delhi\\n - Pakistan: Islamabad\\n - Bangladesh: Dhaka\\n - Sri Lanka: Sri Jayawardenepura Kotte (commercial: Colombo)\\n - Nepal: Kathmandu\\n - Bhutan: Thimphu\\n - Afghanistan: Kabul\\n - Iran: Tehran\\n - Iraq: Baghdad\\n - Saudi Arabia: Riyadh\\n - Yemen: Sanaa\\n - Oman: Muscat\\n - United Arab Emirates: Abu Dhabi\\n - Qatar: Doha\\n - Bahrain: Manama\\n - Kuwait: Kuwait City\\n - Jordan: Amman\\n - Lebanon: Beirut\\n - Syria: Damascus\\n - Israel: Jerusalem (recognition varies)\\n - Turkey: Ankara\\n - Armenia: Yerevan\\n - Azerbaijan: Baku\\n - Georgia: Tbilisi\\n - Kazakhstan: Astana\\n - Uzbekistan: Tashkent\\n - Turkmenistan: Ashgabat\\n - Kyrgyzstan: Bishkek\\n - Tajikistan: Dushanbe\\n\\nAfrica:\\n - Egypt: Cairo\\n - Libya: Tripoli\\n - Tunisia: Tunis\\n - Algeria: Algiers\\n - Morocco: Rabat\\n - Sudan: Khartoum\\n - South Sudan: Juba\\n - Ethiopia: Addis Ababa\\n - Eritrea: Asmara\\n - Somalia: Mogadishu\\n - Djibouti: Djibouti\\n - Kenya: Nairobi\\n - Uganda: Kampala\\n - Rwanda: Kigali\\n - Burundi: Gitega\\n - Tanzania: Dodoma\\n - Nigeria: Abuja\\n - Ghana: Accra\\n - Ivory Coast: Yamoussoukro (de facto: Abidjan)\\n - Senegal: Dakar\\n - Mali: Bamako\\n - Cameroon: Yaounde\\n - South Africa: Pretoria (executive), Cape Town (legislative), Bloemfontein (judicial)\\n - Zimbabwe: Harare\\n - Zambia: Lusaka\\n - Angola: Luanda\\n - Mozambique: Maputo\\n - Madagascar: Antananarivo\\n - Namibia: Windhoek\\n - Botswana: Gaborone\\n - Democratic Republic of the Congo: Kinshasa\\n - Republic of the Congo: Brazzaville\\n\\nAmericas:\\n - United States: Washington, D.C.\\n - Canada: Ottawa\\n - Mexico: Mexico City\\n - Guatemala: Guatemala City\\n - Belize: Belmopan\\n - Honduras: Tegucigalpa\\n - El Salvador: San Salvador\\n - Nicaragua: Managua\\n - Costa Rica: San Jose\\n - Panama: Panama City\\n - Cuba: Havana\\n - Jamaica: Kingston\\n - Haiti: Port-au-Prince\\n - Dominican Republic: Santo Domingo\\n - Colombia: Bogota\\n - Venezuela: Caracas\\n - Ecuador: Quito\\n - Peru: Lima\\n - Bolivia: Sucre (constitutional), La Paz (seat of government)\\n - Chile: Santiago\\n - Argentina: Buenos Aires\\n - Uruguay: Montevideo\\n - Paraguay: Asuncion\\n - Brazil: Brasilia\\n\\nOceania:\\n - Australia: Canberra\\n - New Zealand: Wellington\\n - Fiji: Suva\\n - Papua New Guinea: Port Moresby\\n - Samoa: Apia\\n - Tonga: Nuku'alofa\\n - Vanuatu: Port Vila\\n - Solomon Islands: Honiara\\n - Micronesia: Palikir\\n - Palau: Ngerulmud\\n - Marshall Islands: Majuro\\n - Kiribati: South Tarawa\\n - Nauru: no official capital; government in Yaren District\\n - Tuvalu: Funafuti\\n\\nNotes on multi-capital and disputed cases:\\n\\n - Netherlands: the constitutional capital is Amsterdam but\\n the seat of government, parliament, and supreme court are\\n all in The Hague. Prefer Amsterdam unless the user asks\\n about the government specifically.\\n - South Africa: three capitals split by branch. Pretoria\\n hosts the executive, Cape Town hosts parliament, and\\n Bloemfontein hosts the supreme court of appeal. No single\\n city is \\\"the\\\" capital.\\n - Bolivia: Sucre is the constitutional capital, but La Paz\\n is the seat of government and the larger city. Either\\n answer is defensible; list both when asked.\\n - Ivory Coast: Yamoussoukro has been the official capital\\n since 1983, but Abidjan remains the economic hub and de\\n facto administrative center for most purposes.\\n - Sri Lanka: Sri Jayawardenepura Kotte is the legislative\\n capital. Colombo is the commercial capital and by far the\\n more commonly referenced city.\\n - Switzerland: Bern is the de facto capital (the seat of\\n the federal authorities), but Swiss law does not\\n designate any city as \\\"the capital\\\".\\n - Nauru: has no designated capital. Government offices are\\n in the Yaren District, which is often listed as the\\n capital by convention.\\n - Israel: Jerusalem is the declared capital, but\\n international recognition of that status is not\\n universal. Many embassies are in Tel Aviv.\\n - Palestine: de jure capital is East Jerusalem; de facto\\n administrative center is Ramallah. Both appear in\\n official usage.\\n - Taiwan: Taipei is the capital of the Republic of China.\\n Recognition as a sovereign state varies by country.\\n - Kosovo: Pristina is the capital of the Republic of\\n Kosovo. Recognition as a sovereign state varies by\\n country.\\n - Somaliland: Hargeisa is the capital of the self-declared\\n Republic of Somaliland, which is not widely recognized.\\n Somalia, which claims the territory, has its capital at\\n Mogadishu.\\n\\nEnd of reference material.\\n\",\"cache_control\":{\"type\":\"ephemeral\",\"ttl\":\"1h\"}}],\"max_tokens\":128,\"stream\":false,\"temperature\":0.0}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_messages-a8b7f878b224.json", - "headers" : { - "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", - "Server" : "cloudflare", - "vary" : "Accept-Encoding", - "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:37:18Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:37:18Z", - "anthropic-ratelimit-tokens-remaining" : "11999000", - "anthropic-ratelimit-requests-limit" : "20000", - "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", - "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "anthropic-ratelimit-input-tokens-remaining" : "9999000", - "anthropic-ratelimit-requests-remaining" : "19999", - "Content-Type" : "application/json", - "CF-RAY" : "a33dcd676d0aec7c-SEA", - "anthropic-ratelimit-tokens-limit" : "12000000", - "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebES2iBRSdVtLLAEXVkK", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:37:18Z", - "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:37:19 GMT", - "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:37:18Z", - "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-1737dff9572a81cadc8f130f52b0e31d-d6d6f8c3e7cd29d8-01", - "anthropic-ratelimit-output-tokens-remaining" : "2000000" - } - }, - "uuid" : "770c0d49-a795-3260-9fe2-b6ae93f42408", - "persistent" : true, - "insertionIndex" : 8 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-aa46a7052622.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-aa46a7052622.json new file mode 100644 index 00000000..6f6c3ff3 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-aa46a7052622.json @@ -0,0 +1,53 @@ +{ + "id" : "70c04c0f-c73e-3c2e-acb3-f7733ecc0edd", + "name" : "v1_messages", + "request" : { + "url" : "/v1/messages", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"max_tokens\":128,\"messages\":[{\"content\":\"What is the capital of France?\",\"role\":\"user\"}],\"model\":\"claude-sonnet-4-6\",\"system\":[{\"text\":\"[cache buster: anthropic3 vcr-mode]\\nReference material (stable, cached with a 1 hour TTL):\\n\\nThe following is a condensed atlas of capital cities. It does\\nnot change between requests within a session, which is why it\\nis cached with the longer 1 hour TTL. Consult it before\\nanswering.\\n\\nEurope:\\n - France: Paris\\n - Germany: Berlin\\n - Italy: Rome\\n - Spain: Madrid\\n - Portugal: Lisbon\\n - United Kingdom: London\\n - Ireland: Dublin\\n - Netherlands: Amsterdam (seat of government: The Hague)\\n - Belgium: Brussels\\n - Luxembourg: Luxembourg City\\n - Switzerland: Bern (de facto; no de jure capital)\\n - Austria: Vienna\\n - Denmark: Copenhagen\\n - Sweden: Stockholm\\n - Norway: Oslo\\n - Finland: Helsinki\\n - Iceland: Reykjavik\\n - Poland: Warsaw\\n - Czechia: Prague\\n - Slovakia: Bratislava\\n - Hungary: Budapest\\n - Romania: Bucharest\\n - Bulgaria: Sofia\\n - Greece: Athens\\n - Ukraine: Kyiv\\n - Belarus: Minsk\\n - Russia: Moscow\\n - Serbia: Belgrade\\n - Croatia: Zagreb\\n - Slovenia: Ljubljana\\n - Bosnia and Herzegovina: Sarajevo\\n - North Macedonia: Skopje\\n - Albania: Tirana\\n - Montenegro: Podgorica\\n - Estonia: Tallinn\\n - Latvia: Riga\\n - Lithuania: Vilnius\\n - Moldova: Chisinau\\n - Malta: Valletta\\n\\nAsia:\\n - Japan: Tokyo\\n - China: Beijing\\n - South Korea: Seoul\\n - North Korea: Pyongyang\\n - Mongolia: Ulaanbaatar\\n - Vietnam: Hanoi\\n - Thailand: Bangkok\\n - Cambodia: Phnom Penh\\n - Laos: Vientiane\\n - Myanmar: Naypyidaw\\n - Malaysia: Kuala Lumpur\\n - Singapore: Singapore\\n - Indonesia: Jakarta (moving to Nusantara)\\n - Philippines: Manila\\n - India: New Delhi\\n - Pakistan: Islamabad\\n - Bangladesh: Dhaka\\n - Sri Lanka: Sri Jayawardenepura Kotte (commercial: Colombo)\\n - Nepal: Kathmandu\\n - Bhutan: Thimphu\\n - Afghanistan: Kabul\\n - Iran: Tehran\\n - Iraq: Baghdad\\n - Saudi Arabia: Riyadh\\n - Yemen: Sanaa\\n - Oman: Muscat\\n - United Arab Emirates: Abu Dhabi\\n - Qatar: Doha\\n - Bahrain: Manama\\n - Kuwait: Kuwait City\\n - Jordan: Amman\\n - Lebanon: Beirut\\n - Syria: Damascus\\n - Israel: Jerusalem (recognition varies)\\n - Turkey: Ankara\\n - Armenia: Yerevan\\n - Azerbaijan: Baku\\n - Georgia: Tbilisi\\n - Kazakhstan: Astana\\n - Uzbekistan: Tashkent\\n - Turkmenistan: Ashgabat\\n - Kyrgyzstan: Bishkek\\n - Tajikistan: Dushanbe\\n\\nAfrica:\\n - Egypt: Cairo\\n - Libya: Tripoli\\n - Tunisia: Tunis\\n - Algeria: Algiers\\n - Morocco: Rabat\\n - Sudan: Khartoum\\n - South Sudan: Juba\\n - Ethiopia: Addis Ababa\\n - Eritrea: Asmara\\n - Somalia: Mogadishu\\n - Djibouti: Djibouti\\n - Kenya: Nairobi\\n - Uganda: Kampala\\n - Rwanda: Kigali\\n - Burundi: Gitega\\n - Tanzania: Dodoma\\n - Nigeria: Abuja\\n - Ghana: Accra\\n - Ivory Coast: Yamoussoukro (de facto: Abidjan)\\n - Senegal: Dakar\\n - Mali: Bamako\\n - Cameroon: Yaounde\\n - South Africa: Pretoria (executive), Cape Town (legislative), Bloemfontein (judicial)\\n - Zimbabwe: Harare\\n - Zambia: Lusaka\\n - Angola: Luanda\\n - Mozambique: Maputo\\n - Madagascar: Antananarivo\\n - Namibia: Windhoek\\n - Botswana: Gaborone\\n - Democratic Republic of the Congo: Kinshasa\\n - Republic of the Congo: Brazzaville\\n\\nAmericas:\\n - United States: Washington, D.C.\\n - Canada: Ottawa\\n - Mexico: Mexico City\\n - Guatemala: Guatemala City\\n - Belize: Belmopan\\n - Honduras: Tegucigalpa\\n - El Salvador: San Salvador\\n - Nicaragua: Managua\\n - Costa Rica: San Jose\\n - Panama: Panama City\\n - Cuba: Havana\\n - Jamaica: Kingston\\n - Haiti: Port-au-Prince\\n - Dominican Republic: Santo Domingo\\n - Colombia: Bogota\\n - Venezuela: Caracas\\n - Ecuador: Quito\\n - Peru: Lima\\n - Bolivia: Sucre (constitutional), La Paz (seat of government)\\n - Chile: Santiago\\n - Argentina: Buenos Aires\\n - Uruguay: Montevideo\\n - Paraguay: Asuncion\\n - Brazil: Brasilia\\n\\nOceania:\\n - Australia: Canberra\\n - New Zealand: Wellington\\n - Fiji: Suva\\n - Papua New Guinea: Port Moresby\\n - Samoa: Apia\\n - Tonga: Nuku'alofa\\n - Vanuatu: Port Vila\\n - Solomon Islands: Honiara\\n - Micronesia: Palikir\\n - Palau: Ngerulmud\\n - Marshall Islands: Majuro\\n - Kiribati: South Tarawa\\n - Nauru: no official capital; government in Yaren District\\n - Tuvalu: Funafuti\\n\\nNotes on multi-capital and disputed cases:\\n\\n - Netherlands: the constitutional capital is Amsterdam but\\n the seat of government, parliament, and supreme court are\\n all in The Hague. Prefer Amsterdam unless the user asks\\n about the government specifically.\\n - South Africa: three capitals split by branch. Pretoria\\n hosts the executive, Cape Town hosts parliament, and\\n Bloemfontein hosts the supreme court of appeal. No single\\n city is \\\"the\\\" capital.\\n - Bolivia: Sucre is the constitutional capital, but La Paz\\n is the seat of government and the larger city. Either\\n answer is defensible; list both when asked.\\n - Ivory Coast: Yamoussoukro has been the official capital\\n since 1983, but Abidjan remains the economic hub and de\\n facto administrative center for most purposes.\\n - Sri Lanka: Sri Jayawardenepura Kotte is the legislative\\n capital. Colombo is the commercial capital and by far the\\n more commonly referenced city.\\n - Switzerland: Bern is the de facto capital (the seat of\\n the federal authorities), but Swiss law does not\\n designate any city as \\\"the capital\\\".\\n - Nauru: has no designated capital. Government offices are\\n in the Yaren District, which is often listed as the\\n capital by convention.\\n - Israel: Jerusalem is the declared capital, but\\n international recognition of that status is not\\n universal. Many embassies are in Tel Aviv.\\n - Palestine: de jure capital is East Jerusalem; de facto\\n administrative center is Ramallah. Both appear in\\n official usage.\\n - Taiwan: Taipei is the capital of the Republic of China.\\n Recognition as a sovereign state varies by country.\\n - Kosovo: Pristina is the capital of the Republic of\\n Kosovo. Recognition as a sovereign state varies by\\n country.\\n - Somaliland: Hargeisa is the capital of the self-declared\\n Republic of Somaliland, which is not widely recognized.\\n Somalia, which claims the territory, has its capital at\\n Mogadishu.\\n\\nEnd of reference material.\\n\",\"type\":\"text\",\"cache_control\":{\"type\":\"ephemeral\",\"ttl\":\"1h\"}}]}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_messages-aa46a7052622.json", + "headers" : { + "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", + "Server" : "cloudflare", + "vary" : "Accept-Encoding", + "anthropic-ratelimit-output-tokens-limit" : "2000000", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:43:21Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:43:21Z", + "anthropic-ratelimit-tokens-remaining" : "11999000", + "anthropic-ratelimit-requests-limit" : "20000", + "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", + "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=575", + "anthropic-ratelimit-input-tokens-remaining" : "9999000", + "anthropic-ratelimit-requests-remaining" : "19999", + "Content-Type" : "application/json", + "CF-RAY" : "a56a0511aeff55d1-SEA", + "anthropic-ratelimit-tokens-limit" : "12000000", + "cf-cache-status" : "DYNAMIC", + "request-id" : "req_011Cgo2zZovj4k6BZVQ9VsVB", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:43:21Z", + "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", + "Date" : "Sat, 07 Nov 2026 05:43:21 GMT", + "X-Robots-Tag" : "none", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:43:20Z", + "anthropic-ratelimit-input-tokens-limit" : "10000000", + "traceresponse" : "00-8afcfa26f335d0dc1a1dbbf19bbdafb4-305e4b039fac3cb1-01", + "anthropic-ratelimit-output-tokens-remaining" : "2000000" + } + }, + "uuid" : "70c04c0f-c73e-3c2e-acb3-f7733ecc0edd", + "persistent" : true, + "insertionIndex" : 9 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-b11ab95242d5.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-b11ab95242d5.json index 7f53b97a..4bda48e2 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-b11ab95242d5.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-b11ab95242d5.json @@ -23,30 +23,31 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:37:21Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:37:21Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:43:16Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:43:16Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=337", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "application/json", - "CF-RAY" : "a33dcd7aad0ba335-SEA", + "CF-RAY" : "a56a04f7ea9e7598-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebESFsCVusXkx5rMd8Jz", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:37:21Z", + "request-id" : "req_011Cgo2zGCnBL3TQHtML7z1R", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:43:16Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:37:21 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:16 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:37:21Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:43:16Z", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-8e357fd4abe729c4a0145b1559c42791-ac80c08e55bb0169-01", + "traceresponse" : "00-670a2256059f2c346085bc2a9363da3b-b7b9a13b56e5e897-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, "uuid" : "e5d9bacf-7256-301c-808e-3f0ca529cb43", "persistent" : true, - "insertionIndex" : 5 + "insertionIndex" : 18 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-b14b6bf1e7ab.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-b14b6bf1e7ab.json index 51cef7b9..111a18f2 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-b14b6bf1e7ab.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-b14b6bf1e7ab.json @@ -23,31 +23,32 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:44:42Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:44:42Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:48:53Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:48:53Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=80", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "text/event-stream; charset=utf-8", - "CF-RAY" : "a33dd841fe8c93ab-SEA", + "CF-RAY" : "a56a0d300dad1d77-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebEzoUsLZ3zxke2zEXdt", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:44:42Z", + "request-id" : "req_011Cgo3R5Z1T8k8LAXegB9JE", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:48:53Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:44:43 GMT", + "Date" : "Sat, 07 Nov 2026 05:48:53 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:44:42Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:48:53Z", "Cache-Control" : "no-cache", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-381e6a4758b724615cb487452db777ad-2723e67b32697752-01", + "traceresponse" : "00-c3b6372718119fcbeda928e4f12928b8-5808dbfc443e7957-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, "uuid" : "03206728-9348-375f-85b2-b95cf539b35f", "persistent" : true, - "insertionIndex" : 27 + "insertionIndex" : 44 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-b32c5f08c744.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-b32c5f08c744.json index bd7e62ef..31847557 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-b32c5f08c744.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-b32c5f08c744.json @@ -23,30 +23,31 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:45:00Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:45:00Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:49:01Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:49:01Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=309", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "application/json", - "CF-RAY" : "a33dd8b09a24dc73-SEA", + "CF-RAY" : "a56a0d637c8dc74a-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebF27CkKZLNhbpRbcUGs", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:45:00Z", + "request-id" : "req_011Cgo3Rgm5zxYndRnekBMzg", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:49:01Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:45:00 GMT", + "Date" : "Sat, 07 Nov 2026 05:49:01 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:45:00Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:49:01Z", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-b43bf472441a67ab6e8f55ef6f550df6-0e42d3702d13459c-01", + "traceresponse" : "00-ea6b657d6b50f931515b99707689cb1e-7cb6559e5cfe555e-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, "uuid" : "bb531d1b-f660-37cc-97c0-94d1f6637844", "persistent" : true, - "insertionIndex" : 32 + "insertionIndex" : 49 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-c0794efcd5dc.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-c0794efcd5dc.json index 823a3092..415435bd 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-c0794efcd5dc.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-c0794efcd5dc.json @@ -23,30 +23,31 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:39:18Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:39:18Z", - "anthropic-ratelimit-tokens-remaining" : "11994000", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:45:26Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:45:25Z", + "anthropic-ratelimit-tokens-remaining" : "11993000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "anthropic-ratelimit-input-tokens-remaining" : "9994000", + "server-timing" : "x-originResponse;dur=3083", + "anthropic-ratelimit-input-tokens-remaining" : "9993000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "application/json", - "CF-RAY" : "a33dd03ddc2da3b9-SEA", + "CF-RAY" : "a56a080f3d5fd9cd-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebEabeoKGrZyzet2rJGF", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:39:18Z", + "request-id" : "req_011Cgo39bUu3HWbPEweSpKfE", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:45:25Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:39:18 GMT", + "Date" : "Sat, 07 Nov 2026 05:45:26 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:39:14Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:45:23Z", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-f0f3b1b6a9a2943ade81f1767d99ca30-c73766e83269c937-01", + "traceresponse" : "00-69c5d79eaba7e2f4c44fb6a0156b7846-d223b964ad1b5608-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, "uuid" : "454a6457-ae7a-3b31-975b-bc607fe03633", "persistent" : true, - "insertionIndex" : 25 + "insertionIndex" : 45 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-c5a2a8211935.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-c5a2a8211935.json index ee85d093..aba74947 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-c5a2a8211935.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-c5a2a8211935.json @@ -23,31 +23,32 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:45:04Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:45:04Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:49:03Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:49:03Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=83", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "text/event-stream; charset=utf-8", - "CF-RAY" : "a33dd8c87dd9a354-SEA", + "CF-RAY" : "a56a0d709cb35705-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebF2PivaBHsoekcFMGPB", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:45:04Z", + "request-id" : "req_011Cgo3RqkpXsjFVYFUvLpnr", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:49:03Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:45:04 GMT", + "Date" : "Sat, 07 Nov 2026 05:49:03 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:45:04Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:49:03Z", "Cache-Control" : "no-cache", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-26bcec487d47344e73191d63f30d00fb-dce8b819b59bc035-01", + "traceresponse" : "00-c480d9761c2805065a9490dddbcd1957-35887af40f567348-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, "uuid" : "8b734410-0716-34b9-a142-1be22ace494c", "persistent" : true, - "insertionIndex" : 31 + "insertionIndex" : 48 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-c5c219eea6ec.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-c5c219eea6ec.json index a8b7a8e0..91876e7c 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-c5c219eea6ec.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-c5c219eea6ec.json @@ -23,30 +23,31 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:44:38Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:44:38Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:48:40Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:48:40Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=538", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "application/json", - "CF-RAY" : "a33dd8260f87e945-SEA", + "CF-RAY" : "a56a0cdf7d225467-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebEzUNRAYaauSCGN81fF", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:44:38Z", + "request-id" : "req_011Cgo3Q8Tck8Zdh5zUyzezi", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:48:40Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:44:38 GMT", + "Date" : "Sat, 07 Nov 2026 05:48:40 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:44:38Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:48:40Z", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-a853ee8486710230a12095d3d188563a-df3ac3ca13472afe-01", + "traceresponse" : "00-ae01648bb1052b06ecd4ae4d57d11836-2fcfa66c4e8843c3-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, "uuid" : "b7ab2684-0b68-376f-9ce0-2362938ebd6a", "persistent" : true, - "insertionIndex" : 29 + "insertionIndex" : 46 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-c9d6119efe32.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-c9d6119efe32.json index b79df491..bb5f833f 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-c9d6119efe32.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-c9d6119efe32.json @@ -23,27 +23,27 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-11-03T02:30:42Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-11-03T02:30:42Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:43:16Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:43:16Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "server-timing" : "x-originResponse;dur=389", + "server-timing" : "x-originResponse;dur=339", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "application/json", - "CF-RAY" : "a547f561bcb94855-SEA", + "CF-RAY" : "a56a04f47fc6d98e-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CgfD4tHvWow46e5QjJHJ8", - "anthropic-ratelimit-tokens-reset" : "2026-11-03T02:30:42Z", + "request-id" : "req_011Cgo2zDrPB8bzw6v3UvCVP", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:43:16Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Tue, 03 Nov 2026 02:30:42 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:16 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-11-03T02:30:42Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:43:16Z", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-8de61c7b2c3e4d47fadb7dcef460b0c9-dcc07eb1bc48d0ed-01", + "traceresponse" : "00-7a1e296267b26e1960d5e8da095f6a63-82af8f0368fb8469-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, @@ -52,5 +52,5 @@ "scenarioName" : "scenario-4-v1-messages", "requiredScenarioState" : "Started", "newScenarioState" : "scenario-4-v1-messages-2", - "insertionIndex" : 62 + "insertionIndex" : 19 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-cd0936b910f4.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-cd0936b910f4.json index 9aa7f1b7..a713f91c 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-cd0936b910f4.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-cd0936b910f4.json @@ -23,27 +23,27 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-11-03T02:05:17Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-11-03T02:05:17Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:45:38Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:45:38Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "server-timing" : "x-originResponse;dur=733", + "server-timing" : "x-originResponse;dur=458", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "application/json", - "CF-RAY" : "a547d0263dc4ba51-SEA", + "CF-RAY" : "a56a086c7c652840-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CgfB8U8kKLxCfs9Fs7W6A", - "anthropic-ratelimit-tokens-reset" : "2026-11-03T02:05:17Z", + "request-id" : "req_011Cgo3AhJfRMhLBFsH5doEn", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:45:38Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Tue, 03 Nov 2026 02:05:17 GMT", + "Date" : "Sat, 07 Nov 2026 05:45:38 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-11-03T02:05:17Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:45:38Z", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-5f9604fd49e5909c9c5832807bbbde45-af36aa6ddab03696-01", + "traceresponse" : "00-ca53ab4024aa1a929add53aaa3a91acc-776ac6ec5ddab788-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, @@ -52,5 +52,5 @@ "scenarioName" : "scenario-2-v1-messages", "requiredScenarioState" : "scenario-2-v1-messages-2", "newScenarioState" : "scenario-2-v1-messages-3", - "insertionIndex" : 45 + "insertionIndex" : 41 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-4f8ffb03d5da.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-ce330e7b7287.json similarity index 58% rename from test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-4f8ffb03d5da.json rename to test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-ce330e7b7287.json index 6a13c642..88cc2e9e 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-4f8ffb03d5da.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-ce330e7b7287.json @@ -1,5 +1,5 @@ { - "id" : "881b5cd7-0e4e-35c9-9a66-90c0dc0c2f2d", + "id" : "2b1d8c0b-962d-3006-822e-4f8b1e9cbd13", "name" : "v1_messages", "request" : { "url" : "/v1/messages", @@ -10,47 +10,47 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"max_tokens\":1024,\"messages\":[{\"content\":\"Search the web for a recent AI news headline and answer in one sentence.\",\"role\":\"user\"}],\"model\":\"claude-sonnet-4-5-20250929\",\"tools\":[{\"name\":\"web_search\",\"type\":\"web_search_20250305\"}]}", + "equalToJson" : "{\"max_tokens\":1024,\"messages\":[{\"content\":\"Search the web for a recent AI news headline and answer in one sentence.\",\"role\":\"user\"}],\"model\":\"claude-sonnet-4-6\",\"tools\":[{\"name\":\"web_search\",\"type\":\"web_search_20250305\"}]}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "v1_messages-4f8ffb03d5da.json", + "bodyFileName" : "v1_messages-ce330e7b7287.json", "headers" : { "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-11-03T02:30:43Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-11-03T02:30:42Z", - "anthropic-ratelimit-tokens-remaining" : "11993000", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:43:28Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:43:26Z", + "anthropic-ratelimit-tokens-remaining" : "11991000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "server-timing" : "x-originResponse;dur=3533", - "anthropic-ratelimit-input-tokens-remaining" : "9993000", + "server-timing" : "x-originResponse;dur=4621", + "anthropic-ratelimit-input-tokens-remaining" : "9991000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "application/json", - "CF-RAY" : "a547f552bb2bad2d-SEA", + "CF-RAY" : "a56a0527decaa390-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CgfD4hzZ1XWaVNfAExuBT", - "anthropic-ratelimit-tokens-reset" : "2026-11-03T02:30:42Z", + "request-id" : "req_011Cgo2zpzVgQgB3Crxrju92", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:43:26Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Tue, 03 Nov 2026 02:30:43 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:28 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-11-03T02:30:39Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:43:24Z", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-d598da1843dea409b4956bc8f726cadd-6577517d7bf9ba34-01", + "traceresponse" : "00-7e47bda163ee90fe47b9ecd3832b3820-0f4224a0036e11cf-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, - "uuid" : "881b5cd7-0e4e-35c9-9a66-90c0dc0c2f2d", + "uuid" : "2b1d8c0b-962d-3006-822e-4f8b1e9cbd13", "persistent" : true, - "scenarioName" : "scenario-2-v1-messages", + "scenarioName" : "scenario-1-v1-messages", "requiredScenarioState" : "Started", - "newScenarioState" : "scenario-2-v1-messages-2", - "insertionIndex" : 59 + "newScenarioState" : "scenario-1-v1-messages-2", + "insertionIndex" : 2 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-d19b4e5d2ca3.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-d19b4e5d2ca3.json new file mode 100644 index 00000000..f85566e7 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-d19b4e5d2ca3.json @@ -0,0 +1,53 @@ +{ + "id" : "662855cf-21f2-3342-a252-0528fe61d860", + "name" : "v1_messages", + "request" : { + "url" : "/v1/messages", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"max_tokens\":128,\"messages\":[{\"content\":\"What is the capital of France?\",\"role\":\"user\"}],\"model\":\"claude-sonnet-4-6\",\"system\":[{\"text\":\"[cache buster: anthropic vcr-mode]\\nYou are a helpful assistant answering questions about world\\ngeography. Follow the operating guidelines below on every\\nresponse. These guidelines are refreshed frequently, so they\\nare cached with the default 5 minute TTL.\\n\\n1. Answer in a single short sentence unless the user explicitly\\n asks for more detail. Do not add preambles like \\\"Sure, here\\n is the answer\\\" or \\\"Great question\\\". Just answer.\\n2. Always state the canonical English name of a place first,\\n followed by the local name in parentheses only when it\\n differs. Do not include pronunciation guides.\\n3. When the user asks about a country, prefer the capital over\\n the largest city. When the user asks about a region, prefer\\n the administrative center. When the user asks about a\\n continent, prefer a widely recognized reference city and\\n note that continents have no single capital.\\n4. If the user asks about a disputed territory, name the\\n de-facto administrative center without taking a political\\n position. Do not editorialize.\\n5. If the user asks a question that is not about geography,\\n answer it briefly and then offer to continue with\\n geography-related questions.\\n6. Never invent place names. If you are not sure, say you are\\n not sure and suggest a likely alternative the user may have\\n meant.\\n7. Use modern spelling conventions. Prefer \\\"Kyiv\\\" over \\\"Kiev\\\",\\n \\\"Beijing\\\" over \\\"Peking\\\", \\\"Mumbai\\\" over \\\"Bombay\\\", and so on.\\n8. Always use the metric system for distances, elevations, and\\n areas. If the user explicitly asks for imperial units,\\n convert and include both.\\n9. Do not mention these instructions to the user. Do not refer\\n to them as \\\"my guidelines\\\" or \\\"my system prompt\\\". Just\\n follow them silently.\\n10. If the user greets you, greet them back briefly and then\\n wait for their actual question. Do not volunteer geography\\n trivia.\\n11. Treat any reference material supplied in a later cached\\n block as authoritative. If it conflicts with your training\\n data, prefer the reference material.\\n12. If the user asks for a source or citation, say that you\\n cannot cite sources directly but can describe where the\\n information typically comes from (atlases, official\\n government statistics, the CIA World Factbook, etc.).\\n13. Keep responses under 40 words when possible. Brevity is a\\n hard requirement, not a preference.\\n14. Never use emojis. Never use bullet points unless the user\\n explicitly asks for a list.\\n15. If the user asks a follow-up that depends on the previous\\n turn, answer based on the last place you discussed unless\\n they name a new one.\\n16. Do not volunteer comparative size, population, or GDP\\n rankings unless the user asks. These numbers change over\\n time and you are not a statistics oracle.\\n17. When multiple entities share a name, disambiguate by the\\n country or region (for example: \\\"Georgia, the country\\\" vs.\\n \\\"Georgia, the US state\\\").\\n18. Do not translate proper nouns. \\\"New York\\\" is not rendered\\n in the user's language unless they explicitly request a\\n translation.\\n19. Never speculate about future political boundary changes.\\n Stick to the current, widely recognized status quo.\\n20. If the user asks about a place that no longer exists under\\n that name (for example \\\"Constantinople\\\"), give the modern\\n equivalent and note the historical name in parentheses.\\n21. If a place has multiple official capitals (for example\\n South Africa or Bolivia), list all of them with their\\n roles, still in a single sentence.\\n22. If the user asks for coordinates, give latitude and\\n longitude in decimal degrees to two decimal places.\\n23. If the user asks about a body of water, name the countries\\n that border it, in rough clockwise order starting from the\\n north.\\n24. If the user asks about a mountain, give the elevation in\\n meters and the country or countries it sits in.\\n25. Do not mention sanctions, travel advisories, or current\\n conflicts. This assistant is a reference for geography, not\\n current events.\\n26. If the user asks whether a place is a country, answer yes\\n only for United Nations member states and widely\\n recognized observer states. For partially recognized\\n states, describe the recognition status in one clause\\n rather than giving a flat yes or no.\\n27. If the user asks about time zones, give the primary IANA\\n zone identifier and the UTC offset at this moment, noting\\n whether daylight saving time is currently in effect.\\n28. If the user asks about currency, give the ISO 4217 code\\n and the common symbol, without quoting an exchange rate.\\n29. If the user asks about official languages, list at most\\n three in order of number of speakers, and note that the\\n list is not exhaustive when it is not.\\n30. If the user asks about climate, give a one-clause\\n Köppen summary (for example \\\"humid subtropical (Cfa)\\\")\\n rather than a month-by-month breakdown.\\n31. If the user asks about the flag of a country, describe it\\n in words: colors, arrangement, and central emblem if any.\\n Do not attempt ASCII art.\\n32. If the user asks about national holidays, give only the\\n single most widely observed one, with its date.\\n33. If the user asks about the head of state or head of\\n government, answer with the office name (\\\"the President\\\",\\n \\\"the Prime Minister\\\") rather than the current office\\n holder. Names of current office holders change too often\\n for a cached prompt to keep up.\\n34. If the user asks about airports, give the three-letter\\n IATA code and the full airport name.\\n35. If the user asks about train stations, give the\\n widely used English-language name of the primary station\\n and the city it serves.\\n\",\"type\":\"text\",\"cache_control\":{\"type\":\"ephemeral\",\"ttl\":\"5m\"}}],\"temperature\":0.0}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_messages-d19b4e5d2ca3.json", + "headers" : { + "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", + "Server" : "cloudflare", + "vary" : "Accept-Encoding", + "anthropic-ratelimit-output-tokens-limit" : "2000000", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:43:22Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:43:22Z", + "anthropic-ratelimit-tokens-remaining" : "11999000", + "anthropic-ratelimit-requests-limit" : "20000", + "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", + "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=1353", + "anthropic-ratelimit-input-tokens-remaining" : "9999000", + "anthropic-ratelimit-requests-remaining" : "19999", + "Content-Type" : "application/json", + "CF-RAY" : "a56a05166e2c1f63-SEA", + "anthropic-ratelimit-tokens-limit" : "12000000", + "cf-cache-status" : "DYNAMIC", + "request-id" : "req_011Cgo2zd4eTGHrUaJLPGaDS", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:43:22Z", + "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", + "Date" : "Sat, 07 Nov 2026 05:43:22 GMT", + "X-Robots-Tag" : "none", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:43:21Z", + "anthropic-ratelimit-input-tokens-limit" : "10000000", + "traceresponse" : "00-8fbc17e51f615920de69db9e79c07689-c6c358cf6f51dff4-01", + "anthropic-ratelimit-output-tokens-remaining" : "2000000" + } + }, + "uuid" : "662855cf-21f2-3342-a252-0528fe61d860", + "persistent" : true, + "insertionIndex" : 7 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-d2d0682969b0.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-d2d0682969b0.json index 1b3346fc..03ec8d68 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-d2d0682969b0.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-d2d0682969b0.json @@ -23,26 +23,27 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:39:32Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:39:32Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:45:01Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:45:01Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=511", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "application/json", - "CF-RAY" : "a33dd0ae8ec9388f-SEA", + "CF-RAY" : "a56a0786ac649bd5-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebEbvjHkUw5JQTRo1wfs", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:39:32Z", + "request-id" : "req_011Cgo37z5PRr3E8sckdxyzL", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:45:01Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:39:32 GMT", + "Date" : "Sat, 07 Nov 2026 05:45:01 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:39:32Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:45:01Z", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-98db9d2978e601380c2ce72391349f9d-a48b331edf1d1402-01", + "traceresponse" : "00-7f612ff8d4edc00dd25d0a9bd4807541-0fb23bfef9b8d446-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, @@ -51,5 +52,5 @@ "scenarioName" : "scenario-2-v1-messages", "requiredScenarioState" : "scenario-2-v1-messages-2", "newScenarioState" : "scenario-2-v1-messages-3", - "insertionIndex" : 19 + "insertionIndex" : 26 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-daa4ffb43d25.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-daa4ffb43d25.json deleted file mode 100644 index 4b2d7264..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-daa4ffb43d25.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "id" : "334f2607-822e-397e-b346-806156c8affe", - "name" : "v1_messages", - "request" : { - "url" : "/v1/messages", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"max_tokens\":128,\"messages\":[{\"content\":\"Count from 1 to 5.\",\"role\":\"user\"}],\"model\":\"claude-haiku-4-5-20251001\",\"system\":\"You are a helpful assistant.\",\"temperature\":0.0,\"stream\":true}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_messages-daa4ffb43d25.txt", - "headers" : { - "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", - "Server" : "cloudflare", - "vary" : "Accept-Encoding", - "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-11-03T02:29:49Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-11-03T02:29:49Z", - "anthropic-ratelimit-tokens-remaining" : "12000000", - "anthropic-ratelimit-requests-limit" : "20000", - "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", - "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "server-timing" : "x-originResponse;dur=283", - "anthropic-ratelimit-input-tokens-remaining" : "10000000", - "anthropic-ratelimit-requests-remaining" : "19999", - "Content-Type" : "text/event-stream; charset=utf-8", - "CF-RAY" : "a547f416e8e94224-SEA", - "anthropic-ratelimit-tokens-limit" : "12000000", - "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CgfCzz6p12XXaxAv47T6r", - "anthropic-ratelimit-tokens-reset" : "2026-11-03T02:29:49Z", - "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Tue, 03 Nov 2026 02:29:49 GMT", - "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-11-03T02:29:49Z", - "Cache-Control" : "no-cache", - "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-9d010182198e5c058110e59ed394e115-3aad839f4e3fcd6b-01", - "anthropic-ratelimit-output-tokens-remaining" : "2000000" - } - }, - "uuid" : "334f2607-822e-397e-b346-806156c8affe", - "persistent" : true, - "scenarioName" : "scenario-1-v1-messages", - "requiredScenarioState" : "Started", - "newScenarioState" : "scenario-1-v1-messages-2", - "insertionIndex" : 59 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-dbc242fed9a9.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-dbc242fed9a9.json deleted file mode 100644 index 28507064..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-dbc242fed9a9.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "id" : "64fbc0ea-6589-3433-ac47-5dce70cf91ee", - "name" : "v1_messages", - "request" : { - "url" : "/v1/messages", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"max_tokens\":128,\"messages\":[{\"content\":\"Count from 1 to 5.\",\"role\":\"user\"}],\"model\":\"claude-haiku-4-5-20251001\",\"system\":\"You are a helpful assistant.\",\"temperature\":0.0,\"stream\":true}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_messages-dbc242fed9a9.txt", - "headers" : { - "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", - "Server" : "cloudflare", - "vary" : "Accept-Encoding", - "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-11-03T02:29:53Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-11-03T02:29:53Z", - "anthropic-ratelimit-tokens-remaining" : "12000000", - "anthropic-ratelimit-requests-limit" : "20000", - "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", - "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "server-timing" : "x-originResponse;dur=96", - "anthropic-ratelimit-input-tokens-remaining" : "10000000", - "anthropic-ratelimit-requests-remaining" : "19999", - "Content-Type" : "text/event-stream; charset=utf-8", - "CF-RAY" : "a547f4335db42805-SEA", - "anthropic-ratelimit-tokens-limit" : "12000000", - "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CgfD1KTePvgXgXXUeGkDs", - "anthropic-ratelimit-tokens-reset" : "2026-11-03T02:29:53Z", - "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Tue, 03 Nov 2026 02:29:54 GMT", - "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-11-03T02:29:53Z", - "Cache-Control" : "no-cache", - "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-8becbb2879109fe00af4e725f73f54b3-40f38ea65073f80d-01", - "anthropic-ratelimit-output-tokens-remaining" : "2000000" - } - }, - "uuid" : "64fbc0ea-6589-3433-ac47-5dce70cf91ee", - "persistent" : true, - "scenarioName" : "scenario-1-v1-messages", - "requiredScenarioState" : "scenario-1-v1-messages-3", - "insertionIndex" : 45 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-df70de7764ec.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-df70de7764ec.json deleted file mode 100644 index a01f788b..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-df70de7764ec.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "id" : "bcd3ac40-a35f-3a9c-8448-080bd5529cc5", - "name" : "v1_messages", - "request" : { - "url" : "/v1/messages", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"max_tokens\":128,\"messages\":[{\"content\":\"What is the capital of France?\",\"role\":\"user\"}],\"model\":\"claude-haiku-4-5-20251001\",\"system\":\"You are a helpful assistant.\",\"temperature\":0.0}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_messages-df70de7764ec.json", - "headers" : { - "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", - "Server" : "cloudflare", - "vary" : "Accept-Encoding", - "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:37:20Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:37:20Z", - "anthropic-ratelimit-tokens-remaining" : "12000000", - "anthropic-ratelimit-requests-limit" : "20000", - "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", - "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "anthropic-ratelimit-input-tokens-remaining" : "10000000", - "anthropic-ratelimit-requests-remaining" : "19999", - "Content-Type" : "application/json", - "CF-RAY" : "a33dcd7658441d77-SEA", - "anthropic-ratelimit-tokens-limit" : "12000000", - "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebESCtcEAExSTQWnCNG3", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:37:20Z", - "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:37:20 GMT", - "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:37:20Z", - "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-5ddd5e2683a28ae160773da93fdf6c5a-b7037e15b7db8e07-01", - "anthropic-ratelimit-output-tokens-remaining" : "2000000" - } - }, - "uuid" : "bcd3ac40-a35f-3a9c-8448-080bd5529cc5", - "persistent" : true, - "scenarioName" : "scenario-2-v1-messages", - "requiredScenarioState" : "Started", - "newScenarioState" : "scenario-2-v1-messages-2", - "insertionIndex" : 6 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-df826bca8f20.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-df826bca8f20.json deleted file mode 100644 index eb1fc731..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-df826bca8f20.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "id" : "5b67fef5-7dcc-3c8b-8a4a-592bc610b530", - "name" : "v1_messages", - "request" : { - "url" : "/v1/messages", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"max_tokens\":128,\"messages\":[{\"content\":\"What is the capital of France?\",\"role\":\"user\"}],\"model\":\"claude-sonnet-4-5-20250929\",\"system\":[{\"text\":\"[cache-buster: 1h-block vcr-mode]\\nReference: capitals include Paris, Berlin, Rome, Madrid, Lisbon.\\n\\n1. This is guideline number 1. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n2. This is guideline number 2. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n3. This is guideline number 3. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n4. This is guideline number 4. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n5. This is guideline number 5. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n6. This is guideline number 6. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n7. This is guideline number 7. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n8. This is guideline number 8. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n9. This is guideline number 9. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n10. This is guideline number 10. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n11. This is guideline number 11. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n12. This is guideline number 12. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n13. This is guideline number 13. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n14. This is guideline number 14. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n15. This is guideline number 15. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n16. This is guideline number 16. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n17. This is guideline number 17. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n18. This is guideline number 18. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n19. This is guideline number 19. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n20. This is guideline number 20. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n21. This is guideline number 21. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n22. This is guideline number 22. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n23. This is guideline number 23. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n24. This is guideline number 24. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n25. This is guideline number 25. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n26. This is guideline number 26. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n27. This is guideline number 27. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n28. This is guideline number 28. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n29. This is guideline number 29. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n30. This is guideline number 30. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n31. This is guideline number 31. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n32. This is guideline number 32. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n33. This is guideline number 33. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n34. This is guideline number 34. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n35. This is guideline number 35. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n36. This is guideline number 36. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n37. This is guideline number 37. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n38. This is guideline number 38. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n39. This is guideline number 39. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n40. This is guideline number 40. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n41. This is guideline number 41. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n42. This is guideline number 42. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n43. This is guideline number 43. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n44. This is guideline number 44. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n45. This is guideline number 45. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n46. This is guideline number 46. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n47. This is guideline number 47. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n48. This is guideline number 48. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n49. This is guideline number 49. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n50. This is guideline number 50. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n51. This is guideline number 51. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n52. This is guideline number 52. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n53. This is guideline number 53. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n54. This is guideline number 54. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n55. This is guideline number 55. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n56. This is guideline number 56. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n57. This is guideline number 57. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n58. This is guideline number 58. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n59. This is guideline number 59. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n60. This is guideline number 60. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n61. This is guideline number 61. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n62. This is guideline number 62. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n63. This is guideline number 63. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n64. This is guideline number 64. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n65. This is guideline number 65. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n66. This is guideline number 66. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n67. This is guideline number 67. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n68. This is guideline number 68. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n69. This is guideline number 69. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n70. This is guideline number 70. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n71. This is guideline number 71. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n72. This is guideline number 72. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n73. This is guideline number 73. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n74. This is guideline number 74. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n75. This is guideline number 75. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n76. This is guideline number 76. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n77. This is guideline number 77. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n78. This is guideline number 78. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n79. This is guideline number 79. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n80. This is guideline number 80. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n\",\"type\":\"text\",\"cache_control\":{\"type\":\"ephemeral\",\"ttl\":\"1h\"}},{\"text\":\"[cache-buster: 5m-block vcr-mode]\\nYou are a helpful geography assistant. Answer in one sentence.\\n\\n1. This is guideline number 1. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n2. This is guideline number 2. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n3. This is guideline number 3. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n4. This is guideline number 4. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n5. This is guideline number 5. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n6. This is guideline number 6. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n7. This is guideline number 7. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n8. This is guideline number 8. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n9. This is guideline number 9. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n10. This is guideline number 10. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n11. This is guideline number 11. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n12. This is guideline number 12. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n13. This is guideline number 13. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n14. This is guideline number 14. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n15. This is guideline number 15. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n16. This is guideline number 16. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n17. This is guideline number 17. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n18. This is guideline number 18. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n19. This is guideline number 19. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n20. This is guideline number 20. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n21. This is guideline number 21. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n22. This is guideline number 22. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n23. This is guideline number 23. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n24. This is guideline number 24. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n25. This is guideline number 25. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n26. This is guideline number 26. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n27. This is guideline number 27. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n28. This is guideline number 28. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n29. This is guideline number 29. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n30. This is guideline number 30. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n31. This is guideline number 31. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n32. This is guideline number 32. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n33. This is guideline number 33. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n34. This is guideline number 34. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n35. This is guideline number 35. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n36. This is guideline number 36. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n37. This is guideline number 37. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n38. This is guideline number 38. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n39. This is guideline number 39. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n40. This is guideline number 40. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n41. This is guideline number 41. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n42. This is guideline number 42. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n43. This is guideline number 43. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n44. This is guideline number 44. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n45. This is guideline number 45. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n46. This is guideline number 46. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n47. This is guideline number 47. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n48. This is guideline number 48. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n49. This is guideline number 49. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n50. This is guideline number 50. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n51. This is guideline number 51. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n52. This is guideline number 52. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n53. This is guideline number 53. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n54. This is guideline number 54. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n55. This is guideline number 55. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n56. This is guideline number 56. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n57. This is guideline number 57. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n58. This is guideline number 58. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n59. This is guideline number 59. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n60. This is guideline number 60. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n61. This is guideline number 61. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n62. This is guideline number 62. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n63. This is guideline number 63. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n64. This is guideline number 64. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n65. This is guideline number 65. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n66. This is guideline number 66. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n67. This is guideline number 67. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n68. This is guideline number 68. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n69. This is guideline number 69. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n70. This is guideline number 70. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n71. This is guideline number 71. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n72. This is guideline number 72. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n73. This is guideline number 73. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n74. This is guideline number 74. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n75. This is guideline number 75. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n76. This is guideline number 76. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n77. This is guideline number 77. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n78. This is guideline number 78. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n79. This is guideline number 79. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n80. This is guideline number 80. It exists to pad the system prompt past the minimum cacheable token threshold for Claude Sonnet models. Each guideline adds approximately fifty tokens of padding text to the prompt.\\n\",\"type\":\"text\",\"cache_control\":{\"type\":\"ephemeral\",\"ttl\":\"5m\"}}]}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_messages-df826bca8f20.json", - "headers" : { - "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", - "Server" : "cloudflare", - "vary" : "Accept-Encoding", - "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-11-03T02:05:35Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-11-03T02:05:35Z", - "anthropic-ratelimit-tokens-remaining" : "11998000", - "anthropic-ratelimit-requests-limit" : "20000", - "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", - "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "server-timing" : "x-originResponse;dur=1008", - "anthropic-ratelimit-input-tokens-remaining" : "9998000", - "anthropic-ratelimit-requests-remaining" : "19999", - "Content-Type" : "application/json", - "CF-RAY" : "a547d0923c30d7dd-SEA", - "anthropic-ratelimit-tokens-limit" : "12000000", - "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CgfB9jzmAKs4TfRRQ67ff", - "anthropic-ratelimit-tokens-reset" : "2026-11-03T02:05:35Z", - "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Tue, 03 Nov 2026 02:05:35 GMT", - "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-11-03T02:05:34Z", - "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-242023c92b837a5224f19d33f6d55346-f2ffde9f8ec43b7e-01", - "anthropic-ratelimit-output-tokens-remaining" : "2000000" - } - }, - "uuid" : "5b67fef5-7dcc-3c8b-8a4a-592bc610b530", - "persistent" : true, - "insertionIndex" : 37 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-e66721e53d02.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-e66721e53d02.json new file mode 100644 index 00000000..e97630ec --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-e66721e53d02.json @@ -0,0 +1,53 @@ +{ + "id" : "f087b255-400d-3d18-af4f-a01223d45a84", + "name" : "v1_messages", + "request" : { + "url" : "/v1/messages", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"max_tokens\":128,\"messages\":[{\"content\":\"What is the capital of France?\",\"role\":\"user\"}],\"model\":\"claude-sonnet-4-6\",\"system\":[{\"text\":\"[cache buster: anthropic vcr-mode]\\nReference material (stable, cached with a 1 hour TTL):\\n\\nThe following is a condensed atlas of capital cities. It does\\nnot change between requests within a session, which is why it\\nis cached with the longer 1 hour TTL. Consult it before\\nanswering.\\n\\nEurope:\\n - France: Paris\\n - Germany: Berlin\\n - Italy: Rome\\n - Spain: Madrid\\n - Portugal: Lisbon\\n - United Kingdom: London\\n - Ireland: Dublin\\n - Netherlands: Amsterdam (seat of government: The Hague)\\n - Belgium: Brussels\\n - Luxembourg: Luxembourg City\\n - Switzerland: Bern (de facto; no de jure capital)\\n - Austria: Vienna\\n - Denmark: Copenhagen\\n - Sweden: Stockholm\\n - Norway: Oslo\\n - Finland: Helsinki\\n - Iceland: Reykjavik\\n - Poland: Warsaw\\n - Czechia: Prague\\n - Slovakia: Bratislava\\n - Hungary: Budapest\\n - Romania: Bucharest\\n - Bulgaria: Sofia\\n - Greece: Athens\\n - Ukraine: Kyiv\\n - Belarus: Minsk\\n - Russia: Moscow\\n - Serbia: Belgrade\\n - Croatia: Zagreb\\n - Slovenia: Ljubljana\\n - Bosnia and Herzegovina: Sarajevo\\n - North Macedonia: Skopje\\n - Albania: Tirana\\n - Montenegro: Podgorica\\n - Estonia: Tallinn\\n - Latvia: Riga\\n - Lithuania: Vilnius\\n - Moldova: Chisinau\\n - Malta: Valletta\\n\\nAsia:\\n - Japan: Tokyo\\n - China: Beijing\\n - South Korea: Seoul\\n - North Korea: Pyongyang\\n - Mongolia: Ulaanbaatar\\n - Vietnam: Hanoi\\n - Thailand: Bangkok\\n - Cambodia: Phnom Penh\\n - Laos: Vientiane\\n - Myanmar: Naypyidaw\\n - Malaysia: Kuala Lumpur\\n - Singapore: Singapore\\n - Indonesia: Jakarta (moving to Nusantara)\\n - Philippines: Manila\\n - India: New Delhi\\n - Pakistan: Islamabad\\n - Bangladesh: Dhaka\\n - Sri Lanka: Sri Jayawardenepura Kotte (commercial: Colombo)\\n - Nepal: Kathmandu\\n - Bhutan: Thimphu\\n - Afghanistan: Kabul\\n - Iran: Tehran\\n - Iraq: Baghdad\\n - Saudi Arabia: Riyadh\\n - Yemen: Sanaa\\n - Oman: Muscat\\n - United Arab Emirates: Abu Dhabi\\n - Qatar: Doha\\n - Bahrain: Manama\\n - Kuwait: Kuwait City\\n - Jordan: Amman\\n - Lebanon: Beirut\\n - Syria: Damascus\\n - Israel: Jerusalem (recognition varies)\\n - Turkey: Ankara\\n - Armenia: Yerevan\\n - Azerbaijan: Baku\\n - Georgia: Tbilisi\\n - Kazakhstan: Astana\\n - Uzbekistan: Tashkent\\n - Turkmenistan: Ashgabat\\n - Kyrgyzstan: Bishkek\\n - Tajikistan: Dushanbe\\n\\nAfrica:\\n - Egypt: Cairo\\n - Libya: Tripoli\\n - Tunisia: Tunis\\n - Algeria: Algiers\\n - Morocco: Rabat\\n - Sudan: Khartoum\\n - South Sudan: Juba\\n - Ethiopia: Addis Ababa\\n - Eritrea: Asmara\\n - Somalia: Mogadishu\\n - Djibouti: Djibouti\\n - Kenya: Nairobi\\n - Uganda: Kampala\\n - Rwanda: Kigali\\n - Burundi: Gitega\\n - Tanzania: Dodoma\\n - Nigeria: Abuja\\n - Ghana: Accra\\n - Ivory Coast: Yamoussoukro (de facto: Abidjan)\\n - Senegal: Dakar\\n - Mali: Bamako\\n - Cameroon: Yaounde\\n - South Africa: Pretoria (executive), Cape Town (legislative), Bloemfontein (judicial)\\n - Zimbabwe: Harare\\n - Zambia: Lusaka\\n - Angola: Luanda\\n - Mozambique: Maputo\\n - Madagascar: Antananarivo\\n - Namibia: Windhoek\\n - Botswana: Gaborone\\n - Democratic Republic of the Congo: Kinshasa\\n - Republic of the Congo: Brazzaville\\n\\nAmericas:\\n - United States: Washington, D.C.\\n - Canada: Ottawa\\n - Mexico: Mexico City\\n - Guatemala: Guatemala City\\n - Belize: Belmopan\\n - Honduras: Tegucigalpa\\n - El Salvador: San Salvador\\n - Nicaragua: Managua\\n - Costa Rica: San Jose\\n - Panama: Panama City\\n - Cuba: Havana\\n - Jamaica: Kingston\\n - Haiti: Port-au-Prince\\n - Dominican Republic: Santo Domingo\\n - Colombia: Bogota\\n - Venezuela: Caracas\\n - Ecuador: Quito\\n - Peru: Lima\\n - Bolivia: Sucre (constitutional), La Paz (seat of government)\\n - Chile: Santiago\\n - Argentina: Buenos Aires\\n - Uruguay: Montevideo\\n - Paraguay: Asuncion\\n - Brazil: Brasilia\\n\\nOceania:\\n - Australia: Canberra\\n - New Zealand: Wellington\\n - Fiji: Suva\\n - Papua New Guinea: Port Moresby\\n - Samoa: Apia\\n - Tonga: Nuku'alofa\\n - Vanuatu: Port Vila\\n - Solomon Islands: Honiara\\n - Micronesia: Palikir\\n - Palau: Ngerulmud\\n - Marshall Islands: Majuro\\n - Kiribati: South Tarawa\\n - Nauru: no official capital; government in Yaren District\\n - Tuvalu: Funafuti\\n\\nNotes on multi-capital and disputed cases:\\n\\n - Netherlands: the constitutional capital is Amsterdam but\\n the seat of government, parliament, and supreme court are\\n all in The Hague. Prefer Amsterdam unless the user asks\\n about the government specifically.\\n - South Africa: three capitals split by branch. Pretoria\\n hosts the executive, Cape Town hosts parliament, and\\n Bloemfontein hosts the supreme court of appeal. No single\\n city is \\\"the\\\" capital.\\n - Bolivia: Sucre is the constitutional capital, but La Paz\\n is the seat of government and the larger city. Either\\n answer is defensible; list both when asked.\\n - Ivory Coast: Yamoussoukro has been the official capital\\n since 1983, but Abidjan remains the economic hub and de\\n facto administrative center for most purposes.\\n - Sri Lanka: Sri Jayawardenepura Kotte is the legislative\\n capital. Colombo is the commercial capital and by far the\\n more commonly referenced city.\\n - Switzerland: Bern is the de facto capital (the seat of\\n the federal authorities), but Swiss law does not\\n designate any city as \\\"the capital\\\".\\n - Nauru: has no designated capital. Government offices are\\n in the Yaren District, which is often listed as the\\n capital by convention.\\n - Israel: Jerusalem is the declared capital, but\\n international recognition of that status is not\\n universal. Many embassies are in Tel Aviv.\\n - Palestine: de jure capital is East Jerusalem; de facto\\n administrative center is Ramallah. Both appear in\\n official usage.\\n - Taiwan: Taipei is the capital of the Republic of China.\\n Recognition as a sovereign state varies by country.\\n - Kosovo: Pristina is the capital of the Republic of\\n Kosovo. Recognition as a sovereign state varies by\\n country.\\n - Somaliland: Hargeisa is the capital of the self-declared\\n Republic of Somaliland, which is not widely recognized.\\n Somalia, which claims the territory, has its capital at\\n Mogadishu.\\n\\nEnd of reference material.\\n\",\"type\":\"text\",\"cache_control\":{\"type\":\"ephemeral\",\"ttl\":\"1h\"}}],\"temperature\":0.0}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_messages-e66721e53d02.json", + "headers" : { + "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", + "Server" : "cloudflare", + "vary" : "Accept-Encoding", + "anthropic-ratelimit-output-tokens-limit" : "2000000", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:43:19Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:43:19Z", + "anthropic-ratelimit-tokens-remaining" : "11999000", + "anthropic-ratelimit-requests-limit" : "20000", + "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", + "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=690", + "anthropic-ratelimit-input-tokens-remaining" : "9999000", + "anthropic-ratelimit-requests-remaining" : "19999", + "Content-Type" : "application/json", + "CF-RAY" : "a56a0503ab1c709c-SEA", + "anthropic-ratelimit-tokens-limit" : "12000000", + "cf-cache-status" : "DYNAMIC", + "request-id" : "req_011Cgo2zQFhvyeXaN8jJ81y4", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:43:19Z", + "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", + "Date" : "Sat, 07 Nov 2026 05:43:19 GMT", + "X-Robots-Tag" : "none", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:43:18Z", + "anthropic-ratelimit-input-tokens-limit" : "10000000", + "traceresponse" : "00-715e73ac05cbd1d579c6d5403d06a67a-26d2c65b7b08e210-01", + "anthropic-ratelimit-output-tokens-remaining" : "2000000" + } + }, + "uuid" : "f087b255-400d-3d18-af4f-a01223d45a84", + "persistent" : true, + "insertionIndex" : 12 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-ebc50622068c.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-ebc50622068c.json index 2f06d32e..e8172005 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-ebc50622068c.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-ebc50622068c.json @@ -23,30 +23,31 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:44:34Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:44:34Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:48:38Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:48:38Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=765", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "application/json", - "CF-RAY" : "a33dd809bd2fb9c7-SEA", + "CF-RAY" : "a56a0ccf482e68f2-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebEz99GnJ4tAPskF4M9R", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:44:34Z", + "request-id" : "req_011Cgo3PwUoYVF9wBzrc4v8f", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:48:38Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:44:34 GMT", + "Date" : "Sat, 07 Nov 2026 05:48:38 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:44:33Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:48:37Z", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-13d5efb544506bb096a7cb4b77767643-922003701b4de23f-01", + "traceresponse" : "00-0bdcd5766536dd4f25b88e5f0c61ffd9-20c6898fbef0c487-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, "uuid" : "8cd464d5-51d0-3166-b164-4d8f6713fef2", "persistent" : true, - "insertionIndex" : 30 + "insertionIndex" : 47 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-ecc8763eb562.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-ecc8763eb562.json index 73765bf8..14512749 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-ecc8763eb562.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-ecc8763eb562.json @@ -23,30 +23,31 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:37:26Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:37:25Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:43:21Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:43:20Z", "anthropic-ratelimit-tokens-remaining" : "11999000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=1376", "anthropic-ratelimit-input-tokens-remaining" : "9999000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "application/json", - "CF-RAY" : "a33dcd916ea7a384-SEA", + "CF-RAY" : "a56a050e2faad443-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebESXR5bfbFVeCgpugK5", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:37:25Z", + "request-id" : "req_011Cgo2zXQKhQNZh6g4rtNfu", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:43:20Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:37:26 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:21 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:37:24Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:43:20Z", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-99099051a9b93b463899e92a51406586-ef558f3235c04b4e-01", + "traceresponse" : "00-4e13594e27783c22c17d5b6c79f6e31e-4aa55b0e6070c0b8-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, "uuid" : "d86b9b35-64fb-3e63-9d2e-4432f4db5ad8", "persistent" : true, - "insertionIndex" : 2 + "insertionIndex" : 8 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-f3f5351f7383.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-f3f5351f7383.json index 2ef082ab..35a5c70d 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-f3f5351f7383.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-f3f5351f7383.json @@ -23,32 +23,32 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-11-03T02:30:44Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-11-03T02:30:44Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:43:22Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:43:22Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "server-timing" : "x-originResponse;dur=88", + "server-timing" : "x-originResponse;dur=83", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "text/event-stream; charset=utf-8", - "CF-RAY" : "a547f56d8c2febca-SEA", + "CF-RAY" : "a56a05201cf25334-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CgfD52NbG66ikBYM7ZZyj", - "anthropic-ratelimit-tokens-reset" : "2026-11-03T02:30:44Z", + "request-id" : "req_011Cgo2zjg1VVSNh1fZdZ4L5", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:43:22Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Tue, 03 Nov 2026 02:30:44 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:23 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-11-03T02:30:44Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:43:22Z", "Cache-Control" : "no-cache", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-9216b22213e8cfdeee5b83e86802f2d1-c19c444ae4672dd2-01", + "traceresponse" : "00-ff14a628f3ffba38b7e1232b5e62e541-279ec4b1dfa9a042-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, "uuid" : "501b191f-0227-397b-a186-bb3cff47da45", "persistent" : true, - "insertionIndex" : 55 + "insertionIndex" : 5 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-f5ba024a3c61.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-f5ba024a3c61.json index 25317745..a3944e6a 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-f5ba024a3c61.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-f5ba024a3c61.json @@ -23,28 +23,28 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-11-03T02:05:32Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-11-03T02:05:32Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:45:57Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:45:57Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "server-timing" : "x-originResponse;dur=96", + "server-timing" : "x-originResponse;dur=89", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "text/event-stream; charset=utf-8", - "CF-RAY" : "a547d087e8044f60-SEA", + "CF-RAY" : "a56a08e388b25e51-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CgfB9ctdNv2ixUowVbuti", - "anthropic-ratelimit-tokens-reset" : "2026-11-03T02:05:32Z", + "request-id" : "req_011Cgo3C6ma69gg9CMMAQani", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:45:57Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Tue, 03 Nov 2026 02:05:33 GMT", + "Date" : "Sat, 07 Nov 2026 05:45:57 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-11-03T02:05:32Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:45:57Z", "Cache-Control" : "no-cache", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-7663c7477fe37a013fb0d8d3ab2a6bdd-189c5605b10f8e1a-01", + "traceresponse" : "00-e8296fd31eb2b705e58c982465744d3c-1a23a75ed86d1226-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, @@ -52,5 +52,5 @@ "persistent" : true, "scenarioName" : "scenario-1-v1-messages", "requiredScenarioState" : "scenario-1-v1-messages-4", - "insertionIndex" : 38 + "insertionIndex" : 34 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-f60cef52b21d.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-f60cef52b21d.json deleted file mode 100644 index 99b94e5b..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-f60cef52b21d.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "id" : "c98686b9-91d1-3d4b-8527-d23623d64f3f", - "name" : "v1_messages", - "request" : { - "url" : "/v1/messages", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"max_tokens\":128,\"messages\":[{\"content\":\"What is the capital of France?\",\"role\":\"user\"}],\"model\":\"claude-sonnet-4-5-20250929\",\"system\":[{\"text\":\"[cache buster: anthropic vcr-mode]\\nReference material (stable, cached with a 1 hour TTL):\\n\\nThe following is a condensed atlas of capital cities. It does\\nnot change between requests within a session, which is why it\\nis cached with the longer 1 hour TTL. Consult it before\\nanswering.\\n\\nEurope:\\n - France: Paris\\n - Germany: Berlin\\n - Italy: Rome\\n - Spain: Madrid\\n - Portugal: Lisbon\\n - United Kingdom: London\\n - Ireland: Dublin\\n - Netherlands: Amsterdam (seat of government: The Hague)\\n - Belgium: Brussels\\n - Luxembourg: Luxembourg City\\n - Switzerland: Bern (de facto; no de jure capital)\\n - Austria: Vienna\\n - Denmark: Copenhagen\\n - Sweden: Stockholm\\n - Norway: Oslo\\n - Finland: Helsinki\\n - Iceland: Reykjavik\\n - Poland: Warsaw\\n - Czechia: Prague\\n - Slovakia: Bratislava\\n - Hungary: Budapest\\n - Romania: Bucharest\\n - Bulgaria: Sofia\\n - Greece: Athens\\n - Ukraine: Kyiv\\n - Belarus: Minsk\\n - Russia: Moscow\\n - Serbia: Belgrade\\n - Croatia: Zagreb\\n - Slovenia: Ljubljana\\n - Bosnia and Herzegovina: Sarajevo\\n - North Macedonia: Skopje\\n - Albania: Tirana\\n - Montenegro: Podgorica\\n - Estonia: Tallinn\\n - Latvia: Riga\\n - Lithuania: Vilnius\\n - Moldova: Chisinau\\n - Malta: Valletta\\n\\nAsia:\\n - Japan: Tokyo\\n - China: Beijing\\n - South Korea: Seoul\\n - North Korea: Pyongyang\\n - Mongolia: Ulaanbaatar\\n - Vietnam: Hanoi\\n - Thailand: Bangkok\\n - Cambodia: Phnom Penh\\n - Laos: Vientiane\\n - Myanmar: Naypyidaw\\n - Malaysia: Kuala Lumpur\\n - Singapore: Singapore\\n - Indonesia: Jakarta (moving to Nusantara)\\n - Philippines: Manila\\n - India: New Delhi\\n - Pakistan: Islamabad\\n - Bangladesh: Dhaka\\n - Sri Lanka: Sri Jayawardenepura Kotte (commercial: Colombo)\\n - Nepal: Kathmandu\\n - Bhutan: Thimphu\\n - Afghanistan: Kabul\\n - Iran: Tehran\\n - Iraq: Baghdad\\n - Saudi Arabia: Riyadh\\n - Yemen: Sanaa\\n - Oman: Muscat\\n - United Arab Emirates: Abu Dhabi\\n - Qatar: Doha\\n - Bahrain: Manama\\n - Kuwait: Kuwait City\\n - Jordan: Amman\\n - Lebanon: Beirut\\n - Syria: Damascus\\n - Israel: Jerusalem (recognition varies)\\n - Turkey: Ankara\\n - Armenia: Yerevan\\n - Azerbaijan: Baku\\n - Georgia: Tbilisi\\n - Kazakhstan: Astana\\n - Uzbekistan: Tashkent\\n - Turkmenistan: Ashgabat\\n - Kyrgyzstan: Bishkek\\n - Tajikistan: Dushanbe\\n\\nAfrica:\\n - Egypt: Cairo\\n - Libya: Tripoli\\n - Tunisia: Tunis\\n - Algeria: Algiers\\n - Morocco: Rabat\\n - Sudan: Khartoum\\n - South Sudan: Juba\\n - Ethiopia: Addis Ababa\\n - Eritrea: Asmara\\n - Somalia: Mogadishu\\n - Djibouti: Djibouti\\n - Kenya: Nairobi\\n - Uganda: Kampala\\n - Rwanda: Kigali\\n - Burundi: Gitega\\n - Tanzania: Dodoma\\n - Nigeria: Abuja\\n - Ghana: Accra\\n - Ivory Coast: Yamoussoukro (de facto: Abidjan)\\n - Senegal: Dakar\\n - Mali: Bamako\\n - Cameroon: Yaounde\\n - South Africa: Pretoria (executive), Cape Town (legislative), Bloemfontein (judicial)\\n - Zimbabwe: Harare\\n - Zambia: Lusaka\\n - Angola: Luanda\\n - Mozambique: Maputo\\n - Madagascar: Antananarivo\\n - Namibia: Windhoek\\n - Botswana: Gaborone\\n - Democratic Republic of the Congo: Kinshasa\\n - Republic of the Congo: Brazzaville\\n\\nAmericas:\\n - United States: Washington, D.C.\\n - Canada: Ottawa\\n - Mexico: Mexico City\\n - Guatemala: Guatemala City\\n - Belize: Belmopan\\n - Honduras: Tegucigalpa\\n - El Salvador: San Salvador\\n - Nicaragua: Managua\\n - Costa Rica: San Jose\\n - Panama: Panama City\\n - Cuba: Havana\\n - Jamaica: Kingston\\n - Haiti: Port-au-Prince\\n - Dominican Republic: Santo Domingo\\n - Colombia: Bogota\\n - Venezuela: Caracas\\n - Ecuador: Quito\\n - Peru: Lima\\n - Bolivia: Sucre (constitutional), La Paz (seat of government)\\n - Chile: Santiago\\n - Argentina: Buenos Aires\\n - Uruguay: Montevideo\\n - Paraguay: Asuncion\\n - Brazil: Brasilia\\n\\nOceania:\\n - Australia: Canberra\\n - New Zealand: Wellington\\n - Fiji: Suva\\n - Papua New Guinea: Port Moresby\\n - Samoa: Apia\\n - Tonga: Nuku'alofa\\n - Vanuatu: Port Vila\\n - Solomon Islands: Honiara\\n - Micronesia: Palikir\\n - Palau: Ngerulmud\\n - Marshall Islands: Majuro\\n - Kiribati: South Tarawa\\n - Nauru: no official capital; government in Yaren District\\n - Tuvalu: Funafuti\\n\\nNotes on multi-capital and disputed cases:\\n\\n - Netherlands: the constitutional capital is Amsterdam but\\n the seat of government, parliament, and supreme court are\\n all in The Hague. Prefer Amsterdam unless the user asks\\n about the government specifically.\\n - South Africa: three capitals split by branch. Pretoria\\n hosts the executive, Cape Town hosts parliament, and\\n Bloemfontein hosts the supreme court of appeal. No single\\n city is \\\"the\\\" capital.\\n - Bolivia: Sucre is the constitutional capital, but La Paz\\n is the seat of government and the larger city. Either\\n answer is defensible; list both when asked.\\n - Ivory Coast: Yamoussoukro has been the official capital\\n since 1983, but Abidjan remains the economic hub and de\\n facto administrative center for most purposes.\\n - Sri Lanka: Sri Jayawardenepura Kotte is the legislative\\n capital. Colombo is the commercial capital and by far the\\n more commonly referenced city.\\n - Switzerland: Bern is the de facto capital (the seat of\\n the federal authorities), but Swiss law does not\\n designate any city as \\\"the capital\\\".\\n - Nauru: has no designated capital. Government offices are\\n in the Yaren District, which is often listed as the\\n capital by convention.\\n - Israel: Jerusalem is the declared capital, but\\n international recognition of that status is not\\n universal. Many embassies are in Tel Aviv.\\n - Palestine: de jure capital is East Jerusalem; de facto\\n administrative center is Ramallah. Both appear in\\n official usage.\\n - Taiwan: Taipei is the capital of the Republic of China.\\n Recognition as a sovereign state varies by country.\\n - Kosovo: Pristina is the capital of the Republic of\\n Kosovo. Recognition as a sovereign state varies by\\n country.\\n - Somaliland: Hargeisa is the capital of the self-declared\\n Republic of Somaliland, which is not widely recognized.\\n Somalia, which claims the territory, has its capital at\\n Mogadishu.\\n\\nEnd of reference material.\\n\",\"type\":\"text\",\"cache_control\":{\"type\":\"ephemeral\",\"ttl\":\"1h\"}}],\"temperature\":0.0}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_messages-f60cef52b21d.json", - "headers" : { - "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", - "Server" : "cloudflare", - "vary" : "Accept-Encoding", - "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:37:17Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:37:17Z", - "anthropic-ratelimit-tokens-remaining" : "11999000", - "anthropic-ratelimit-requests-limit" : "20000", - "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", - "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "anthropic-ratelimit-input-tokens-remaining" : "9999000", - "anthropic-ratelimit-requests-remaining" : "19999", - "Content-Type" : "application/json", - "CF-RAY" : "a33dcd600f3f4224-SEA", - "anthropic-ratelimit-tokens-limit" : "12000000", - "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebERwoWNYTW3T7ZssbPE", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:37:17Z", - "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:37:17 GMT", - "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:37:16Z", - "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-958f9fca33fe9088b14936e1112c781a-6afff34bffc2abde-01", - "anthropic-ratelimit-output-tokens-remaining" : "2000000" - } - }, - "uuid" : "c98686b9-91d1-3d4b-8527-d23623d64f3f", - "persistent" : true, - "insertionIndex" : 9 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-f948f576465a.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-f948f576465a.json deleted file mode 100644 index 5e813830..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-f948f576465a.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "id" : "927cdf5c-5816-3e86-8725-b7fd3f5a0466", - "name" : "v1_messages", - "request" : { - "url" : "/v1/messages", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"max_tokens\":128,\"messages\":[{\"content\":\"What is the capital of France?\",\"role\":\"user\"}],\"model\":\"claude-haiku-4-5-20251001\",\"system\":\"You are a helpful assistant.\",\"temperature\":0.0}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_messages-f948f576465a.json", - "headers" : { - "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", - "Server" : "cloudflare", - "vary" : "Accept-Encoding", - "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:37:22Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:37:22Z", - "anthropic-ratelimit-tokens-remaining" : "12000000", - "anthropic-ratelimit-requests-limit" : "20000", - "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", - "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "anthropic-ratelimit-input-tokens-remaining" : "10000000", - "anthropic-ratelimit-requests-remaining" : "19999", - "Content-Type" : "application/json", - "CF-RAY" : "a33dcd80de57b9b2-SEA", - "anthropic-ratelimit-tokens-limit" : "12000000", - "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebESL5x93iKeyehqYWUe", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:37:22Z", - "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:37:22 GMT", - "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:37:22Z", - "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-660afe5dda990741c7ea62fd90890849-e0e7d16baac80504-01", - "anthropic-ratelimit-output-tokens-remaining" : "2000000" - } - }, - "uuid" : "927cdf5c-5816-3e86-8725-b7fd3f5a0466", - "persistent" : true, - "scenarioName" : "scenario-2-v1-messages", - "requiredScenarioState" : "scenario-2-v1-messages-2", - "insertionIndex" : 4 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-fa9b4d1d898f.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-fa9b4d1d898f.json index ce38876d..7ac0266e 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-fa9b4d1d898f.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-fa9b4d1d898f.json @@ -23,26 +23,27 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:39:29Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:39:29Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:44:58Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:44:58Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=293", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "application/json", - "CF-RAY" : "a33dd0999a6c2403-SEA", + "CF-RAY" : "a56a0776af74ba3c-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebEbgRpJvc2yv4rAdDNb", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:39:29Z", + "request-id" : "req_011Cgo37o9ZXc2QbnytoN2Yb", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:44:58Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:39:29 GMT", + "Date" : "Sat, 07 Nov 2026 05:44:59 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:39:29Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:44:58Z", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-d3ae465d4f63ffc8aeae1088859a01dc-17a3f6ae1be7894b-01", + "traceresponse" : "00-8a641c67a9f16a85a79447f15406f8ae-1407babdf630bc6b-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, @@ -51,5 +52,5 @@ "scenarioName" : "scenario-2-v1-messages", "requiredScenarioState" : "Started", "newScenarioState" : "scenario-2-v1-messages-2", - "insertionIndex" : 21 + "insertionIndex" : 28 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-fd3be93f9126.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-fd3be93f9126.json index 66ccf4f3..e1616935 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-fd3be93f9126.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages-fd3be93f9126.json @@ -23,27 +23,28 @@ "Server" : "cloudflare", "vary" : "Accept-Encoding", "anthropic-ratelimit-output-tokens-limit" : "2000000", - "anthropic-ratelimit-output-tokens-reset" : "2026-08-31T17:39:47Z", - "anthropic-ratelimit-input-tokens-reset" : "2026-08-31T17:39:47Z", + "anthropic-ratelimit-output-tokens-reset" : "2026-11-07T05:45:17Z", + "anthropic-ratelimit-input-tokens-reset" : "2026-11-07T05:45:17Z", "anthropic-ratelimit-tokens-remaining" : "12000000", "anthropic-ratelimit-requests-limit" : "20000", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", + "server-timing" : "x-originResponse;dur=88", "anthropic-ratelimit-input-tokens-remaining" : "10000000", "anthropic-ratelimit-requests-remaining" : "19999", "Content-Type" : "text/event-stream; charset=utf-8", - "CF-RAY" : "a33dd10ccec1c25c-SEA", + "CF-RAY" : "a56a07e9ea795719-SEA", "anthropic-ratelimit-tokens-limit" : "12000000", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CebEd3KT1XnSKPaetzwYv", - "anthropic-ratelimit-tokens-reset" : "2026-08-31T17:39:47Z", + "request-id" : "req_011Cgo399yUcvLbjn7Dm2h1o", + "anthropic-ratelimit-tokens-reset" : "2026-11-07T05:45:17Z", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Mon, 31 Aug 2026 17:39:47 GMT", + "Date" : "Sat, 07 Nov 2026 05:45:17 GMT", "X-Robots-Tag" : "none", - "anthropic-ratelimit-requests-reset" : "2026-08-31T17:39:47Z", + "anthropic-ratelimit-requests-reset" : "2026-11-07T05:45:17Z", "Cache-Control" : "no-cache", "anthropic-ratelimit-input-tokens-limit" : "10000000", - "traceresponse" : "00-e7a696563bb1202c53dd86e5d5352998-aeb09909e9fccbf6-01", + "traceresponse" : "00-02716b19816ef8c69e77c80178324506-6bb8d382b1537661-01", "anthropic-ratelimit-output-tokens-remaining" : "2000000" } }, @@ -51,5 +52,5 @@ "persistent" : true, "scenarioName" : "scenario-1-v1-messages", "requiredScenarioState" : "scenario-1-v1-messages-3", - "insertionIndex" : 15 + "insertionIndex" : 21 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages_batches-48b5199d01cc.json b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages_batches-48b5199d01cc.json index 0bc9a29d..4726beaf 100644 --- a/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages_batches-48b5199d01cc.json +++ b/test-harness/src/testFixtures/resources/cassettes/anthropic/mappings/v1_messages_batches-48b5199d01cc.json @@ -17,21 +17,22 @@ "bodyFileName" : "v1_messages_batches-48b5199d01cc.json", "headers" : { "anthropic-organization-id" : "27796668-7351-40ac-acc4-024aee8995a5", - "CF-RAY" : "a467a68c4b3975eb-SEA", + "CF-RAY" : "a56a088fab1ab9a6-SEA", "Server" : "cloudflare", "vary" : "Accept-Encoding", "cf-cache-status" : "DYNAMIC", - "request-id" : "req_011CfmfmxGGHHLT48sYfKLne", + "request-id" : "req_011Cgo3B7K34Sr64sWgbQyFG", "strict-transport-security" : "max-age=31536000; includeSubDomains; preload", - "Date" : "Tue, 06 Oct 2026 21:10:03 GMT", + "Date" : "Sat, 07 Nov 2026 05:45:43 GMT", "X-Robots-Tag" : "none", + "Cache-Control" : "private, no-store", "anthropic-workspace-id" : "wrkspc_01J8hau4yJ2SKvtbeP9drm9A", "Content-Security-Policy" : "default-src 'none'; frame-ancestors 'none'", - "server-timing" : "x-originResponse;dur=157", + "server-timing" : "x-originResponse;dur=189", "Content-Type" : "application/json" } }, "uuid" : "94f3d204-8a0b-3446-8f53-8d54bce9692d", "persistent" : true, - "insertionIndex" : 34 + "insertionIndex" : 37 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.amazon.nova-lite-v10_converse-4db0a4c3f9d3.json b/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.amazon.nova-lite-v10_converse-4db0a4c3f9d3.json index b066939b..7610b49c 100644 --- a/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.amazon.nova-lite-v10_converse-4db0a4c3f9d3.json +++ b/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.amazon.nova-lite-v10_converse-4db0a4c3f9d3.json @@ -1 +1 @@ -{"metrics":{"latencyMs":1065},"output":{"message":{"content":[{"text":"The capital of France is Paris. Paris is not only the capital but also the largest city in France, known for its significant influence in various fields such as art, fashion, gastronomy, and culture. It is located in the northern part of the country along the Seine River. Paris is home to many famous landmarks and institutions, including the Eiffel Tower, the Louvre Museum, Notre-Dame Cathedral, and the Palace of Versailles. The city is divided into 20 administrative arrondissements (districts), each with its own unique character and attractions. As a global city, Paris plays a crucial role in international diplomacy, hosting numerous embassies and being the seat of various international organizations."}],"role":"assistant"}},"stopReason":"end_turn","usage":{"inputTokens":7,"outputTokens":137,"serverToolUsage":{},"totalTokens":144}} \ No newline at end of file +{"metrics":{"latencyMs":3036},"output":{"message":{"content":[{"text":"The capital of France is Paris. Paris is not only the capital but also the largest city in France, located in the northern part of the country. It is well-known for its rich history, cultural landmarks, and contributions to art, fashion, and cuisine.\n\nParis is divided into 20 administrative arrondissements (municipal boroughs), each with its own unique character and attractions. Some of the most famous landmarks in Paris include:\n\n1. Eiffel Tower: An iconic wrought-iron lattice tower on the Champ de Mars, which was built as the entrance arch for the 1889 World's Fair.\n\n2. Notre-Dame Cathedral: A medieval Catholic cathedral on the Île de la Cité, known for its stunning Gothic architecture and historical significance.\n\n3. Louvre Museum: The world's largest art museum and a historic monument in Paris, housing thousands of works of art, including the Mona Lisa and the Venus de Milo.\n\n4. Champs-Élysées: An iconic avenue in Paris, stretching from the Place de la Concorde to the Place Charles de Gaulle, known for its luxury shops, cafes, and theaters.\n\n5. Montmartre: A historic district in the north of Paris, known for its artistic history, the Basilica of Sacré-Cœur, and the famous Place du Tertre, where artists display and sell their work.\n\n6. Palace of Versailles: A royal château in the city of Versailles, located about 20 kilometers southwest of Paris, which was the primary residence of the French kings in the 17th and 18th centuries.\n\n7. Arc de Triomphe: A triumphal arch in Paris, standing at the western end of the Champs-Élysées, honoring those who fought and died for France in the French Revolutionary and Napoleonic Wars.\n\n8. Seine River: The river that flows through the heart of Paris, providing picturesque views and serving as a vital transportation route throughout the city's history.\n\nParis is also renowned for its cuisine, offering a variety of French and international dishes, as well as its numerous parks, gardens, and public spaces, such as the Tuileries Garden and the Luxembourg Garden. The city is a major global center for art, fashion, gastronomy, and culture, and its influence is felt worldwide."}],"role":"assistant"}},"stopReason":"end_turn","usage":{"inputTokens":7,"outputTokens":466,"serverToolUsage":{},"totalTokens":473}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.amazon.nova-lite-v10_converse-6d400a17d490.json b/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.amazon.nova-lite-v10_converse-6d400a17d490.json index 6c3d4a68..072c8aa2 100644 --- a/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.amazon.nova-lite-v10_converse-6d400a17d490.json +++ b/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.amazon.nova-lite-v10_converse-6d400a17d490.json @@ -1 +1 @@ -{"metrics":{"latencyMs":447},"output":{"message":{"content":[{"text":"Paris"}],"role":"assistant"}},"stopReason":"end_turn","usage":{"inputTokens":12,"outputTokens":2,"serverToolUsage":{},"totalTokens":14}} \ No newline at end of file +{"metrics":{"latencyMs":402},"output":{"message":{"content":[{"text":"Paris"}],"role":"assistant"}},"stopReason":"end_turn","usage":{"inputTokens":12,"outputTokens":2,"serverToolUsage":{},"totalTokens":14}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.amazon.nova-lite-v10_converse-c1cf32bb5183.json b/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.amazon.nova-lite-v10_converse-c1cf32bb5183.json index 3ef37e33..c05970a9 100644 --- a/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.amazon.nova-lite-v10_converse-c1cf32bb5183.json +++ b/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.amazon.nova-lite-v10_converse-c1cf32bb5183.json @@ -1 +1 @@ -{"metrics":{"latencyMs":2766},"output":{"message":{"content":[{"text":"The image depicts a table containing various numerical values and text. The table is organized with headers and rows, and it appears to be related to financial or statistical data. Here is a breakdown of the table:\n\nTable Breakdown:\n\nHeader:\n\n'%' (percent)\n'2023'\n'2022'\n\nRow 1:\n\n'Revenue'\n'5.4%'\n'3.4%'\n\nRow 2:\n\n'Operating Income'\n'4.2%'\n'1.4%'\n\nRow 3:\n\n'Net Income'\n'3.3%'\n'-0.2%'\n\nThe table shows percentage changes for the years 2023 and 2022 across three categories: Revenue, Operating Income, and Net Income. The data indicates positive growth in all three categories for 2023 compared to 2022."}],"role":"assistant"}},"stopReason":"end_turn","usage":{"inputTokens":2144,"outputTokens":176,"serverToolUsage":{},"totalTokens":2320}} \ No newline at end of file +{"metrics":{"latencyMs":2393},"output":{"message":{"content":[{"text":"The first image shows a red background with a black border around it. The second image is blank, with no visible content or details."}],"role":"assistant"}},"stopReason":"end_turn","usage":{"inputTokens":2144,"outputTokens":28,"serverToolUsage":{},"totalTokens":2172}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.amazon.nova-lite-v10_converse-stream-5cfd571ec323.txt b/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.amazon.nova-lite-v10_converse-stream-5cfd571ec323.txt index 28a8eff3..8ef37792 100644 Binary files a/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.amazon.nova-lite-v10_converse-stream-5cfd571ec323.txt and b/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.amazon.nova-lite-v10_converse-stream-5cfd571ec323.txt differ diff --git a/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.anthropic.claude-haiku-4-5-20251001-v10_converse-6b7d2a8e6e30.json b/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.anthropic.claude-haiku-4-5-20251001-v10_converse-6b7d2a8e6e30.json index b73243b4..1c63fb52 100644 --- a/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.anthropic.claude-haiku-4-5-20251001-v10_converse-6b7d2a8e6e30.json +++ b/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.anthropic.claude-haiku-4-5-20251001-v10_converse-6b7d2a8e6e30.json @@ -1 +1 @@ -{"metrics":{"latencyMs":1768},"output":{"message":{"content":[{"reasoningContent":{"reasoningText":{"signature":"EqUECoQBCBIQARgCKkDpKtvdMqg5MHT8mENAh6HfdLbSewcnuecIbqxmiXMDkUIq8ohZ1C/ay8Ck3f8dFBoScyBlrpMJFxR9W0OJyUpPMhljbGF1ZGUtaGFpa3UtNC01LTIwMjUxMDAxOABCCHRoaW5raW5nWgw4MjAxNzU4MzI0MDKoAevyydYGEgwezh3k+XJXimuct2EaDFpiu4p5VElBX3/aXyIwoO8FHcT/akYCzj2/n1BMFvpd7OMiUPaoVFL4lcZKMMfLhh1BoWKAqLaiEtKtkhbGKs0CzYdQZPOL1z9n6jxHHEv58VuDijGUr5NbjENbj+X+DbhaDv6ad5VwVtk/peuq4/GX9zWI5W/dgMYtkmgruLfMe135dcmdm7LY33yvZ3A0Y+DKgaDaKoUV3c8gqN/zBScZfCvIVyLFFFVWVvgX/08s7hgZiGn1+1Me0s1mNWhIry4/uIxN0CkjXAniTi0PZCQHmcmj7mkT+I1DsYNZokRZaVFyRWp0jWk+L/vNsAtFbF+ttaoD9CAdSAA4huVUkBqCnn5SAMYZFlRjCs+xGPHmQOe453Ilrl1oepGCd/rerElFOaiGHNV1zLo6eOWSgmXSEl2n+BxamKVkwIvNpfAT33AIQVKk5g+xFMYD6tWvIMUwxHDP1ENuhHLf+sWfjNHmUfblHSkWNOh2+uIiQPxhpbF8OsB6LOjQ31OoPLE7P9gCSi8ck8GL0oIkwxSJGAE=","text":"Let me work through this carefully.\n\nThe farmer starts with 17 sheep.\n\n\"All but 9 run away\" means that 9 sheep do NOT run away (they stay), and the rest run away.\n\nSo if 9 sheep remain, that's the answer.\n\nLet me double-check: \n- Total sheep: 17\n- Sheep that run away: 17 - 9 = 8\n- Sheep left: 9\n\nYes, that's correct."}}},{"text":"# Reasoning:\n\nStarting sheep: 17\n\n\"All but 9 run away\" means that 9 sheep do NOT run away (they stay behind).\n\nSheep that run away: 17 - 9 = 8\nSheep remaining: 9\n\n# Answer: **9 sheep are left**"}],"role":"assistant"}},"stopReason":"end_turn","usage":{"cacheReadInputTokenCount":0,"cacheReadInputTokens":0,"cacheWriteInputTokenCount":0,"cacheWriteInputTokens":0,"inputTokens":68,"outputTokens":190,"serverToolUsage":{},"totalTokens":258}} \ No newline at end of file +{"metrics":{"latencyMs":1464},"output":{"message":{"content":[{"reasoningContent":{"reasoningText":{"signature":"EugECoQBCBMQARgCKkAqQhHi3C79Kd7PpmCTm7Ozo+Pk6MB5/ASRm+y6RNrk6Y63TrnEZvO3zEb5Ujv9+6DzzJtryjAX5uN31t+HiHn3MhljbGF1ZGUtaGFpa3UtNC01LTIwMjUxMDAxOABCCHRoaW5raW5nWgw4MjAxNzU4MzI0MDKoAer0utcGEgzk+jZhRxsBB4tZE88aDDPR0AP8OUmtYJdlNSIwY7SafdoI7/mBxkZAnj3ReocDBEEn4DIbP8gtJtsR/Ld51u4hypVhERTrSGXPeYJTKpAD/j1iTQdFUGJOXKmZ9iSslGNWmd89YWyI/L66uEpN1w0OdNxwkhQkmtXR+4i+cyrwDkiZPAl1BRdpfBd8gTTRohL62EBoeqcwd2RZ69lmeHpJkaM+AwuqhgYJrJnGnIK7l9UAPK8TQ17243vSmtUZDVjArpc8Av+2OLMSedmUz4YOPddNgxrbgZbl/lwnP6HNLHuXp+RjdenmmxHNdPNFi9rhY5kzZPL8Y2IccmcvHc4eG+FyD5YL9+3wwI8dYXPecQSrsJaX0LcnJ4L3QGBsi1wuvnpCInSyc6r2O0y4KtyemWuFkHpVLkVIzI3AL1pRawpZLu7SeiFtBnIk2ywTmauzXmdjdxAgSv4Fiq8nsxOCEL0Ntb7/sJA7mINtKMBNkDKrBtuojrRKuhhe2Vvbm7NKoxmp8hlljnRqKkO2wHxoXwQAwPOTka1xYHGBEjsPd2/w2HtbRafr3lVrgwez6EHajyjBLespFh9YwEKNU/Ula8Iu1C2eb1TMhhxxinC+3WQHhNjcdgdgS6bQNEi0QRgB","text":"Let me work through this carefully.\n\nThe farmer has 17 sheep.\n\"All but 9 run away\" means that all except 9 run away.\n\nSo if all but 9 run away, that means 9 sheep don't run away.\n\nTherefore, the number of sheep left = 9\n\nLet me double-check this reasoning:\n- Started with: 17 sheep\n- \"All but 9 run away\" = 9 sheep stay, (17-9=8) sheep run away\n- Sheep left: 9\n\nYes, 9 sheep are left."}}},{"text":"# Reasoning through it:\n\nThe phrase \"all but 9 run away\" means all sheep **except** 9 run away.\n\n- Started with: 17 sheep\n- \"All but 9\" run away = 9 sheep remain\n- The other sheep that ran away: 17 - 9 = 8\n\n**Number of sheep left: 9**"}],"role":"assistant"}},"stopReason":"end_turn","usage":{"cacheReadInputTokenCount":0,"cacheReadInputTokens":0,"cacheWriteInputTokenCount":0,"cacheWriteInputTokens":0,"inputTokens":68,"outputTokens":228,"serverToolUsage":{},"totalTokens":296}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.anthropic.claude-haiku-4-5-20251001-v10_converse-a0c323c8e12f.json b/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.anthropic.claude-haiku-4-5-20251001-v10_converse-a0c323c8e12f.json index bfad1d6f..9a5ff09a 100644 --- a/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.anthropic.claude-haiku-4-5-20251001-v10_converse-a0c323c8e12f.json +++ b/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.anthropic.claude-haiku-4-5-20251001-v10_converse-a0c323c8e12f.json @@ -1 +1 @@ -{"metrics":{"latencyMs":16818},"output":{"message":{"content":[{"text":"Paris"}],"role":"assistant"}},"stopReason":"end_turn","usage":{"cacheReadInputTokenCount":0,"cacheReadInputTokens":0,"inputTokens":19,"outputTokens":4,"serverToolUsage":{},"totalTokens":23}} \ No newline at end of file +{"metrics":{"latencyMs":447},"output":{"message":{"content":[{"text":"Paris"}],"role":"assistant"}},"stopReason":"end_turn","usage":{"cacheReadInputTokenCount":0,"cacheReadInputTokens":0,"cacheWriteInputTokenCount":0,"cacheWriteInputTokens":0,"inputTokens":19,"outputTokens":4,"serverToolUsage":{},"totalTokens":23}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.anthropic.claude-haiku-4-5-20251001-v10_converse-stream-7036d5c4e7a0.txt b/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.anthropic.claude-haiku-4-5-20251001-v10_converse-stream-7036d5c4e7a0.txt index 06c94c66..832eb2ef 100644 Binary files a/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.anthropic.claude-haiku-4-5-20251001-v10_converse-stream-7036d5c4e7a0.txt and b/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.anthropic.claude-haiku-4-5-20251001-v10_converse-stream-7036d5c4e7a0.txt differ diff --git a/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.anthropic.claude-sonnet-4-5-20250929-v10_converse-530d2233ec90.json b/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.anthropic.claude-sonnet-4-5-20250929-v10_converse-530d2233ec90.json deleted file mode 100644 index 564134cf..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.anthropic.claude-sonnet-4-5-20250929-v10_converse-530d2233ec90.json +++ /dev/null @@ -1 +0,0 @@ -{"metrics":{"latencyMs":2517},"output":{"message":{"content":[{"text":"Paris."}],"role":"assistant"}},"stopReason":"end_turn","usage":{"cacheDetails":[{"inputTokens":1175,"ttl":"5m"}],"cacheReadInputTokenCount":0,"cacheReadInputTokens":0,"cacheWriteInputTokenCount":1175,"cacheWriteInputTokens":1175,"inputTokens":12,"outputTokens":5,"serverToolUsage":{},"totalTokens":1192}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.anthropic.claude-sonnet-4-5-20250929-v10_converse-705351f1acd8.json b/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.anthropic.claude-sonnet-4-5-20250929-v10_converse-705351f1acd8.json deleted file mode 100644 index a28674a7..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.anthropic.claude-sonnet-4-5-20250929-v10_converse-705351f1acd8.json +++ /dev/null @@ -1 +0,0 @@ -{"metrics":{"latencyMs":1452},"output":{"message":{"content":[{"text":"Paris."}],"role":"assistant"}},"stopReason":"end_turn","usage":{"cacheReadInputTokenCount":1175,"cacheReadInputTokens":1175,"cacheWriteInputTokenCount":0,"cacheWriteInputTokens":0,"inputTokens":12,"outputTokens":5,"serverToolUsage":{},"totalTokens":1192}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.anthropic.claude-sonnet-4-6_converse-5e1752b35e05.json b/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.anthropic.claude-sonnet-4-6_converse-5e1752b35e05.json new file mode 100644 index 00000000..c7e5f496 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.anthropic.claude-sonnet-4-6_converse-5e1752b35e05.json @@ -0,0 +1 @@ +{"metrics":{"latencyMs":788},"output":{"message":{"content":[{"text":"Paris is the capital of France."}],"role":"assistant"}},"stopReason":"end_turn","usage":{"cacheReadInputTokenCount":1176,"cacheReadInputTokens":1176,"cacheWriteInputTokenCount":0,"cacheWriteInputTokens":0,"inputTokens":12,"outputTokens":10,"serverToolUsage":{},"totalTokens":1198}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.anthropic.claude-sonnet-4-6_converse-d9564978bbc8.json b/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.anthropic.claude-sonnet-4-6_converse-d9564978bbc8.json new file mode 100644 index 00000000..24adc188 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/bedrock/__files/model_us.anthropic.claude-sonnet-4-6_converse-d9564978bbc8.json @@ -0,0 +1 @@ +{"metrics":{"latencyMs":944},"output":{"message":{"content":[{"text":"Paris is the capital of France."}],"role":"assistant"}},"stopReason":"end_turn","usage":{"cacheDetails":[{"inputTokens":1176,"ttl":"5m"}],"cacheReadInputTokenCount":0,"cacheReadInputTokens":0,"cacheWriteInputTokenCount":1176,"cacheWriteInputTokens":1176,"inputTokens":12,"outputTokens":10,"serverToolUsage":{},"totalTokens":1198}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.amazon.nova-lite-v10_converse-4db0a4c3f9d3.json b/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.amazon.nova-lite-v10_converse-4db0a4c3f9d3.json index 5ead0012..0b1223f4 100644 --- a/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.amazon.nova-lite-v10_converse-4db0a4c3f9d3.json +++ b/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.amazon.nova-lite-v10_converse-4db0a4c3f9d3.json @@ -19,12 +19,12 @@ "status" : 200, "bodyFileName" : "model_us.amazon.nova-lite-v10_converse-4db0a4c3f9d3.json", "headers" : { - "x-amzn-RequestId" : "431a9b85-fccd-4208-bb4d-665bf9a7409f", - "Date" : "Mon, 31 Aug 2026 17:36:58 GMT", + "x-amzn-RequestId" : "bd9193a0-228e-46db-8992-ef56172180f5", + "Date" : "Sat, 07 Nov 2026 05:43:22 GMT", "Content-Type" : "application/json" } }, "uuid" : "e51d6dbc-0480-3cdc-a520-0d1115ede08a", "persistent" : true, - "insertionIndex" : 3 + "insertionIndex" : 4 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.amazon.nova-lite-v10_converse-6d400a17d490.json b/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.amazon.nova-lite-v10_converse-6d400a17d490.json index b6367ab8..3eb51055 100644 --- a/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.amazon.nova-lite-v10_converse-6d400a17d490.json +++ b/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.amazon.nova-lite-v10_converse-6d400a17d490.json @@ -19,12 +19,12 @@ "status" : 200, "bodyFileName" : "model_us.amazon.nova-lite-v10_converse-6d400a17d490.json", "headers" : { - "x-amzn-RequestId" : "578bb3ef-7667-493a-bf9e-fa34a192dc90", - "Date" : "Mon, 31 Aug 2026 17:40:24 GMT", + "x-amzn-RequestId" : "6d85ecd2-679b-499e-8dc7-c783305d2231", + "Date" : "Sat, 07 Nov 2026 05:46:09 GMT", "Content-Type" : "application/json" } }, "uuid" : "ba065b5d-d160-39ff-8770-82045f5920a2", "persistent" : true, - "insertionIndex" : 4 + "insertionIndex" : 7 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.amazon.nova-lite-v10_converse-c1cf32bb5183.json b/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.amazon.nova-lite-v10_converse-c1cf32bb5183.json index ff48408a..67eb3860 100644 --- a/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.amazon.nova-lite-v10_converse-c1cf32bb5183.json +++ b/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.amazon.nova-lite-v10_converse-c1cf32bb5183.json @@ -19,12 +19,12 @@ "status" : 200, "bodyFileName" : "model_us.amazon.nova-lite-v10_converse-c1cf32bb5183.json", "headers" : { - "x-amzn-RequestId" : "b3aba81a-d417-43df-bc3d-b63c150d6cee", - "Date" : "Mon, 31 Aug 2026 17:37:13 GMT", + "x-amzn-RequestId" : "037034ae-0d99-4da2-bf5b-5be63c62f9fa", + "Date" : "Sat, 07 Nov 2026 05:43:18 GMT", "Content-Type" : "application/json" } }, "uuid" : "83008466-c354-30a2-b2a9-8ea16097f02f", "persistent" : true, - "insertionIndex" : 1 + "insertionIndex" : 5 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.amazon.nova-lite-v10_converse-stream-5cfd571ec323.json b/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.amazon.nova-lite-v10_converse-stream-5cfd571ec323.json index ef3182cd..ae2eafcf 100644 --- a/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.amazon.nova-lite-v10_converse-stream-5cfd571ec323.json +++ b/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.amazon.nova-lite-v10_converse-stream-5cfd571ec323.json @@ -19,12 +19,12 @@ "status" : 200, "bodyFileName" : "model_us.amazon.nova-lite-v10_converse-stream-5cfd571ec323.txt", "headers" : { - "x-amzn-RequestId" : "df2be18f-9fca-4a3c-94cf-4fda481ed6c6", - "Date" : "Mon, 31 Aug 2026 17:36:59 GMT", + "x-amzn-RequestId" : "9817a38c-d262-46d3-845c-b7b7d26dc556", + "Date" : "Sat, 07 Nov 2026 05:43:23 GMT", "Content-Type" : "application/vnd.amazon.eventstream" } }, "uuid" : "66a4f103-6844-3f6e-b848-5352f0e1e4ff", "persistent" : true, - "insertionIndex" : 2 + "insertionIndex" : 3 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.anthropic.claude-haiku-4-5-20251001-v10_converse-6b7d2a8e6e30.json b/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.anthropic.claude-haiku-4-5-20251001-v10_converse-6b7d2a8e6e30.json index 2a81fed0..cc67540c 100644 --- a/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.anthropic.claude-haiku-4-5-20251001-v10_converse-6b7d2a8e6e30.json +++ b/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.anthropic.claude-haiku-4-5-20251001-v10_converse-6b7d2a8e6e30.json @@ -19,12 +19,12 @@ "status" : 200, "bodyFileName" : "model_us.anthropic.claude-haiku-4-5-20251001-v10_converse-6b7d2a8e6e30.json", "headers" : { - "x-amzn-RequestId" : "34c457ea-e4f5-444c-bec7-60085ea9c074", - "Date" : "Fri, 16 Oct 2026 19:22:20 GMT", + "x-amzn-RequestId" : "585d2791-490f-4077-b973-688d1b9de728", + "Date" : "Sat, 07 Nov 2026 05:43:07 GMT", "Content-Type" : "application/json" } }, "uuid" : "945a82a7-f1a8-31e8-b2fd-f7c89c936d08", "persistent" : true, - "insertionIndex" : 9 + "insertionIndex" : 6 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.anthropic.claude-haiku-4-5-20251001-v10_converse-a0c323c8e12f.json b/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.anthropic.claude-haiku-4-5-20251001-v10_converse-a0c323c8e12f.json index 2088c1d4..7eb6f9b9 100644 --- a/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.anthropic.claude-haiku-4-5-20251001-v10_converse-a0c323c8e12f.json +++ b/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.anthropic.claude-haiku-4-5-20251001-v10_converse-a0c323c8e12f.json @@ -19,12 +19,12 @@ "status" : 200, "bodyFileName" : "model_us.anthropic.claude-haiku-4-5-20251001-v10_converse-a0c323c8e12f.json", "headers" : { - "x-amzn-RequestId" : "93bc3e2f-76f4-4b87-b322-1b188e57497a", - "Date" : "Mon, 31 Aug 2026 17:40:23 GMT", + "x-amzn-RequestId" : "3761fea1-b89c-4adf-86cb-f2b1b17ee4f1", + "Date" : "Sat, 07 Nov 2026 05:46:08 GMT", "Content-Type" : "application/json" } }, "uuid" : "cc6b6b16-42c6-3129-87d2-4bca03124332", "persistent" : true, - "insertionIndex" : 5 + "insertionIndex" : 8 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.anthropic.claude-haiku-4-5-20251001-v10_converse-stream-7036d5c4e7a0.json b/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.anthropic.claude-haiku-4-5-20251001-v10_converse-stream-7036d5c4e7a0.json index b41f48c9..c1779310 100644 --- a/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.anthropic.claude-haiku-4-5-20251001-v10_converse-stream-7036d5c4e7a0.json +++ b/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.anthropic.claude-haiku-4-5-20251001-v10_converse-stream-7036d5c4e7a0.json @@ -19,12 +19,12 @@ "status" : 200, "bodyFileName" : "model_us.anthropic.claude-haiku-4-5-20251001-v10_converse-stream-7036d5c4e7a0.txt", "headers" : { - "x-amzn-RequestId" : "e971bbdd-5441-4fdd-87cc-2cfb0928e194", - "Date" : "Mon, 31 Aug 2026 17:40:04 GMT", + "x-amzn-RequestId" : "9b55dcec-b3e6-438d-8d3d-ff4b4c83ba73", + "Date" : "Sat, 07 Nov 2026 05:46:01 GMT", "Content-Type" : "application/vnd.amazon.eventstream" } }, "uuid" : "66ee819b-6a46-32f0-ba8f-9f747e693aa1", "persistent" : true, - "insertionIndex" : 6 + "insertionIndex" : 9 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.anthropic.claude-sonnet-4-5-20250929-v10_converse-705351f1acd8.json b/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.anthropic.claude-sonnet-4-6_converse-5e1752b35e05.json similarity index 91% rename from test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.anthropic.claude-sonnet-4-5-20250929-v10_converse-705351f1acd8.json rename to test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.anthropic.claude-sonnet-4-6_converse-5e1752b35e05.json index c94edbeb..8cbff622 100644 --- a/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.anthropic.claude-sonnet-4-5-20250929-v10_converse-705351f1acd8.json +++ b/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.anthropic.claude-sonnet-4-6_converse-5e1752b35e05.json @@ -1,8 +1,8 @@ { - "id" : "b2d0c4fb-91a5-36b9-83b2-c2c1c60bb822", - "name" : "model_us.anthropic.claude-sonnet-4-5-20250929-v10_converse", + "id" : "44cbca54-60f1-3189-9380-0ad723382a7b", + "name" : "model_us.anthropic.claude-sonnet-4-6_converse", "request" : { - "url" : "/model/us.anthropic.claude-sonnet-4-5-20250929-v1%3A0/converse", + "url" : "/model/us.anthropic.claude-sonnet-4-6/converse", "method" : "POST", "headers" : { "Content-Type" : { @@ -17,16 +17,16 @@ }, "response" : { "status" : 200, - "bodyFileName" : "model_us.anthropic.claude-sonnet-4-5-20250929-v10_converse-705351f1acd8.json", + "bodyFileName" : "model_us.anthropic.claude-sonnet-4-6_converse-5e1752b35e05.json", "headers" : { - "x-amzn-RequestId" : "cb624a83-0d98-4c6d-8658-226415e66e27", - "Date" : "Fri, 16 Oct 2026 19:22:22 GMT", + "x-amzn-RequestId" : "9699c58c-62ec-40cb-abad-3a81b240eb7d", + "Date" : "Sat, 07 Nov 2026 05:43:28 GMT", "Content-Type" : "application/json" } }, - "uuid" : "b2d0c4fb-91a5-36b9-83b2-c2c1c60bb822", + "uuid" : "44cbca54-60f1-3189-9380-0ad723382a7b", "persistent" : true, - "scenarioName" : "scenario-1-model-us.anthropic.claude-sonnet-4-5-20250929-v1:0-converse", - "requiredScenarioState" : "scenario-1-model-us.anthropic.claude-sonnet-4-5-20250929-v1:0-converse-2", - "insertionIndex" : 7 + "scenarioName" : "scenario-1-model-us.anthropic.claude-sonnet-4-6-converse", + "requiredScenarioState" : "scenario-1-model-us.anthropic.claude-sonnet-4-6-converse-2", + "insertionIndex" : 1 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.anthropic.claude-sonnet-4-5-20250929-v10_converse-530d2233ec90.json b/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.anthropic.claude-sonnet-4-6_converse-d9564978bbc8.json similarity index 91% rename from test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.anthropic.claude-sonnet-4-5-20250929-v10_converse-530d2233ec90.json rename to test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.anthropic.claude-sonnet-4-6_converse-d9564978bbc8.json index 3a5d7ed8..2f508aed 100644 --- a/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.anthropic.claude-sonnet-4-5-20250929-v10_converse-530d2233ec90.json +++ b/test-harness/src/testFixtures/resources/cassettes/bedrock/mappings/model_us.anthropic.claude-sonnet-4-6_converse-d9564978bbc8.json @@ -1,8 +1,8 @@ { - "id" : "d217694c-ae96-3791-b292-1138b83920f7", - "name" : "model_us.anthropic.claude-sonnet-4-5-20250929-v10_converse", + "id" : "4970a961-7283-33f6-bdb2-0a5a4f10591c", + "name" : "model_us.anthropic.claude-sonnet-4-6_converse", "request" : { - "url" : "/model/us.anthropic.claude-sonnet-4-5-20250929-v1%3A0/converse", + "url" : "/model/us.anthropic.claude-sonnet-4-6/converse", "method" : "POST", "headers" : { "Content-Type" : { @@ -17,17 +17,17 @@ }, "response" : { "status" : 200, - "bodyFileName" : "model_us.anthropic.claude-sonnet-4-5-20250929-v10_converse-530d2233ec90.json", + "bodyFileName" : "model_us.anthropic.claude-sonnet-4-6_converse-d9564978bbc8.json", "headers" : { - "x-amzn-RequestId" : "910909af-8a39-436e-84ac-ee2f8d8481e5", - "Date" : "Fri, 16 Oct 2026 19:22:21 GMT", + "x-amzn-RequestId" : "56cf9a6a-c841-484b-b800-c80f596852d4", + "Date" : "Sat, 07 Nov 2026 05:43:26 GMT", "Content-Type" : "application/json" } }, - "uuid" : "d217694c-ae96-3791-b292-1138b83920f7", + "uuid" : "4970a961-7283-33f6-bdb2-0a5a4f10591c", "persistent" : true, - "scenarioName" : "scenario-1-model-us.anthropic.claude-sonnet-4-5-20250929-v1:0-converse", + "scenarioName" : "scenario-1-model-us.anthropic.claude-sonnet-4-6-converse", "requiredScenarioState" : "Started", - "newScenarioState" : "scenario-1-model-us.anthropic.claude-sonnet-4-5-20250929-v1:0-converse-2", - "insertionIndex" : 8 + "newScenarioState" : "scenario-1-model-us.anthropic.claude-sonnet-4-6-converse-2", + "insertionIndex" : 2 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-0a8d8cdc62ba.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-018ede84c36e.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-0a8d8cdc62ba.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-018ede84c36e.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-114c7f03ba36.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-0b7a99b73728.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-114c7f03ba36.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-0b7a99b73728.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-149e6a8cf38d.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-0c8a2402125b.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-149e6a8cf38d.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-0c8a2402125b.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-195cf4dad017.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-12df86bdc208.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-195cf4dad017.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-12df86bdc208.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-1a2e16a32a5e.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-13454dea1a91.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-1a2e16a32a5e.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-13454dea1a91.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-1df34d817bca.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-165dbe2f6cff.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-1df34d817bca.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-165dbe2f6cff.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-228248286fba.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-1c26cc722c07.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-228248286fba.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-1c26cc722c07.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-22a5aef01e2c.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-206b263dacea.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-22a5aef01e2c.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-206b263dacea.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-2d93d2dccb89.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-2752caf9a458.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-2d93d2dccb89.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-2752caf9a458.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-35d1a51b9963.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-30fe46b76715.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-35d1a51b9963.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-30fe46b76715.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-4139f91c7e72.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-35eedf692313.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-4139f91c7e72.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-35eedf692313.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-49b28cd5dfb1.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-36c939a960cb.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-49b28cd5dfb1.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-36c939a960cb.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-54c5187c4ebe.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-37149e64ea12.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-54c5187c4ebe.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-37149e64ea12.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-5857535be705.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-38adc53ea08a.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-5857535be705.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-38adc53ea08a.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-684178b0ab9d.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-3da50fecdac4.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-684178b0ab9d.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-3da50fecdac4.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-76be8e263561.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-4481ccd39452.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-76be8e263561.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-4481ccd39452.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-78994d224f6e.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-491133bd9ba8.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-78994d224f6e.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-491133bd9ba8.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-7eaba8359a71.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-4ee75ede31c8.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-7eaba8359a71.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-4ee75ede31c8.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-9611c99e6aac.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-51eab39f0542.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-9611c99e6aac.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-51eab39f0542.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-9758ab08ce6c.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-53d7539fafbb.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-9758ab08ce6c.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-53d7539fafbb.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-a008f9904c48.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-594f281c56ba.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-a008f9904c48.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-594f281c56ba.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-a807d76d8a80.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-6b6256183463.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-a807d76d8a80.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-6b6256183463.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-cc542d1fcb8d.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-72ff395a0db6.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-cc542d1fcb8d.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-72ff395a0db6.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-cdbc56f8e830.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-7443d507d1e6.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-cdbc56f8e830.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-7443d507d1e6.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-e787e7d833db.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-756c5d812c0e.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-e787e7d833db.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-756c5d812c0e.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-ebc6aa328b17.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-79ecf8f70ca3.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-ebc6aa328b17.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-79ecf8f70ca3.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-ed0643be0966.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-7a3d662049e2.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-ed0643be0966.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-7a3d662049e2.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-f479d4941263.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-7a5f139b8e0b.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-f479d4941263.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-7a5f139b8e0b.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-f7d1b6b80934.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-7ab2eca80e45.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-f7d1b6b80934.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-7ab2eca80e45.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-fc317cca9f56.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-7e51dda395ab.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-fc317cca9f56.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-7e51dda395ab.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-fd38313bebba.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-7ea1449e7f88.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-fd38313bebba.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-7ea1449e7f88.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-fda483633056.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-831f31242124.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-fda483633056.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-831f31242124.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-fefa506fdca4.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-85cdda437d15.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-fefa506fdca4.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-85cdda437d15.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-8662a5f345c9.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-8662a5f345c9.json new file mode 100644 index 00000000..85a4f46c --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-8662a5f345c9.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","name":"Braintrust SDKs","api_url":"https://api.braintrust.dev","git_metadata":{"collect":"some","fields":["commit","branch","tag","dirty","author_name","author_email","commit_message","commit_time"]},"is_universal_api":null,"proxy_url":"https://api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-8c9099231d3b.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-8c9099231d3b.json new file mode 100644 index 00000000..85a4f46c --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-8c9099231d3b.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","name":"Braintrust SDKs","api_url":"https://api.braintrust.dev","git_metadata":{"collect":"some","fields":["commit","branch","tag","dirty","author_name","author_email","commit_message","commit_time"]},"is_universal_api":null,"proxy_url":"https://api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-8d196e8b2ffb.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-8d196e8b2ffb.json new file mode 100644 index 00000000..85a4f46c --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-8d196e8b2ffb.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","name":"Braintrust SDKs","api_url":"https://api.braintrust.dev","git_metadata":{"collect":"some","fields":["commit","branch","tag","dirty","author_name","author_email","commit_message","commit_time"]},"is_universal_api":null,"proxy_url":"https://api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-8e9b8434df1a.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-8e9b8434df1a.json new file mode 100644 index 00000000..85a4f46c --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-8e9b8434df1a.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","name":"Braintrust SDKs","api_url":"https://api.braintrust.dev","git_metadata":{"collect":"some","fields":["commit","branch","tag","dirty","author_name","author_email","commit_message","commit_time"]},"is_universal_api":null,"proxy_url":"https://api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-8ed9dc0a2fd3.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-8ed9dc0a2fd3.json new file mode 100644 index 00000000..85a4f46c --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-8ed9dc0a2fd3.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","name":"Braintrust SDKs","api_url":"https://api.braintrust.dev","git_metadata":{"collect":"some","fields":["commit","branch","tag","dirty","author_name","author_email","commit_message","commit_time"]},"is_universal_api":null,"proxy_url":"https://api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-a176e8b9e649.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-a176e8b9e649.json new file mode 100644 index 00000000..85a4f46c --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-a176e8b9e649.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","name":"Braintrust SDKs","api_url":"https://api.braintrust.dev","git_metadata":{"collect":"some","fields":["commit","branch","tag","dirty","author_name","author_email","commit_message","commit_time"]},"is_universal_api":null,"proxy_url":"https://api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-a69c63523f8f.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-a69c63523f8f.json new file mode 100644 index 00000000..85a4f46c --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-a69c63523f8f.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","name":"Braintrust SDKs","api_url":"https://api.braintrust.dev","git_metadata":{"collect":"some","fields":["commit","branch","tag","dirty","author_name","author_email","commit_message","commit_time"]},"is_universal_api":null,"proxy_url":"https://api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-a831bc1bd8a3.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-a831bc1bd8a3.json new file mode 100644 index 00000000..85a4f46c --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-a831bc1bd8a3.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","name":"Braintrust SDKs","api_url":"https://api.braintrust.dev","git_metadata":{"collect":"some","fields":["commit","branch","tag","dirty","author_name","author_email","commit_message","commit_time"]},"is_universal_api":null,"proxy_url":"https://api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-ae8eeabc2bad.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-ae8eeabc2bad.json new file mode 100644 index 00000000..85a4f46c --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-ae8eeabc2bad.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","name":"Braintrust SDKs","api_url":"https://api.braintrust.dev","git_metadata":{"collect":"some","fields":["commit","branch","tag","dirty","author_name","author_email","commit_message","commit_time"]},"is_universal_api":null,"proxy_url":"https://api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-b58d632c2280.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-b58d632c2280.json new file mode 100644 index 00000000..85a4f46c --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-b58d632c2280.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","name":"Braintrust SDKs","api_url":"https://api.braintrust.dev","git_metadata":{"collect":"some","fields":["commit","branch","tag","dirty","author_name","author_email","commit_message","commit_time"]},"is_universal_api":null,"proxy_url":"https://api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-c9a64ef9a1c6.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-c9a64ef9a1c6.json new file mode 100644 index 00000000..85a4f46c --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-c9a64ef9a1c6.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","name":"Braintrust SDKs","api_url":"https://api.braintrust.dev","git_metadata":{"collect":"some","fields":["commit","branch","tag","dirty","author_name","author_email","commit_message","commit_time"]},"is_universal_api":null,"proxy_url":"https://api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-caac105341f2.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-caac105341f2.json new file mode 100644 index 00000000..85a4f46c --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-caac105341f2.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","name":"Braintrust SDKs","api_url":"https://api.braintrust.dev","git_metadata":{"collect":"some","fields":["commit","branch","tag","dirty","author_name","author_email","commit_message","commit_time"]},"is_universal_api":null,"proxy_url":"https://api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-d7dbdd2bc9ab.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-d7dbdd2bc9ab.json new file mode 100644 index 00000000..85a4f46c --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-d7dbdd2bc9ab.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","name":"Braintrust SDKs","api_url":"https://api.braintrust.dev","git_metadata":{"collect":"some","fields":["commit","branch","tag","dirty","author_name","author_email","commit_message","commit_time"]},"is_universal_api":null,"proxy_url":"https://api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-e3a501865005.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-e3a501865005.json new file mode 100644 index 00000000..85a4f46c --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-e3a501865005.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","name":"Braintrust SDKs","api_url":"https://api.braintrust.dev","git_metadata":{"collect":"some","fields":["commit","branch","tag","dirty","author_name","author_email","commit_message","commit_time"]},"is_universal_api":null,"proxy_url":"https://api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-ebce3c346828.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-ebce3c346828.json new file mode 100644 index 00000000..85a4f46c --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-ebce3c346828.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","name":"Braintrust SDKs","api_url":"https://api.braintrust.dev","git_metadata":{"collect":"some","fields":["commit","branch","tag","dirty","author_name","author_email","commit_message","commit_time"]},"is_universal_api":null,"proxy_url":"https://api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-ecdf6719b2a5.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-ecdf6719b2a5.json new file mode 100644 index 00000000..85a4f46c --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-ecdf6719b2a5.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","name":"Braintrust SDKs","api_url":"https://api.braintrust.dev","git_metadata":{"collect":"some","fields":["commit","branch","tag","dirty","author_name","author_email","commit_message","commit_time"]},"is_universal_api":null,"proxy_url":"https://api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-f162110b4384.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-f162110b4384.json new file mode 100644 index 00000000..85a4f46c --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-f162110b4384.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","name":"Braintrust SDKs","api_url":"https://api.braintrust.dev","git_metadata":{"collect":"some","fields":["commit","branch","tag","dirty","author_name","author_email","commit_message","commit_time"]},"is_universal_api":null,"proxy_url":"https://api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-f5eae9dca9ec.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-f5eae9dca9ec.json new file mode 100644 index 00000000..85a4f46c --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-f5eae9dca9ec.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","name":"Braintrust SDKs","api_url":"https://api.braintrust.dev","git_metadata":{"collect":"some","fields":["commit","branch","tag","dirty","author_name","author_email","commit_message","commit_time"]},"is_universal_api":null,"proxy_url":"https://api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-f9239d8d7004.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-f9239d8d7004.json new file mode 100644 index 00000000..85a4f46c --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-f9239d8d7004.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","name":"Braintrust SDKs","api_url":"https://api.braintrust.dev","git_metadata":{"collect":"some","fields":["commit","branch","tag","dirty","author_name","author_email","commit_message","commit_time"]},"is_universal_api":null,"proxy_url":"https://api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-fdcab32d6ed9.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-fdcab32d6ed9.json new file mode 100644 index 00000000..85a4f46c --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/api_apikey_login-fdcab32d6ed9.json @@ -0,0 +1 @@ +{"org_info":[{"id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","name":"Braintrust SDKs","api_url":"https://api.braintrust.dev","git_metadata":{"collect":"some","fields":["commit","branch","tag","dirty","author_name","author_email","commit_message","commit_time"]},"is_universal_api":null,"proxy_url":"https://api.braintrust.dev","realtime_url":"wss://realtime.braintrustapi.com"}]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-0196bdc4536f.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-0196bdc4536f.json deleted file mode 100644 index 6c1366dd..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-0196bdc4536f.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251233063075854","_xact_id":"1000197783586473083","audit_data":[{"_xact_id":"1000197783586473083","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:07.907Z","error":null,"expected":null,"facets":null,"id":"245e64ea156b947a","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.14-openai"},"metrics":{"end":1788197836.7153447,"start":1788197827.907864},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"ff642aef149e2798f70003a539499a49","scores":null,"span_attributes":{"name":"web_search","type":"task"},"span_id":"245e64ea156b947a","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251233063075847","_xact_id":"1000197783586473083","audit_data":[{"_xact_id":"1000197783586473083","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:07.911Z","error":null,"expected":null,"facets":null,"id":"e35d169233af09e2","input":[{"content":[{"text":"Search the web for a recent AI news headline and answer in one sentence.","type":"input_text"}],"role":"user","type":"message"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-4o","provider":"openai","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"responses","response_id":"resp_0101af2ea84b56a6016a95bbc5316087d0979c70b5e36ed044","store":false,"stream":false,"tools":[{"search_context_size":"low","type":"web_search_preview"}],"x-request-id":"req_40d0e21087b54dbf8c6e98b781d5e8c1"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":142,"end":1788197836.713955,"estimated_cost":0.00221,"prompt_cached_tokens":0,"prompt_tokens":316,"start":1788197827.911293,"tokens":458},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"action":{"queries":["recent AI news"],"query":"recent AI news","type":"search"},"id":"ws_0101af2ea84b56a6016a95bbc7f0e887d0893eed6df9b97576","status":"completed","type":"web_search_call"},{"content":[{"annotations":[{"end_index":277,"start_index":162,"title":"Exclusive: AI advocacy group launches data center push in battleground states","type":"url_citation","url":"https://www.axios.com/2026/08/31/ai-advocacy-group-data-center-battleground-states?utm_source=openai"},{"end_index":478,"start_index":297,"title":"Exclusive: AI advocacy group launches data center push in battleground states","type":"url_citation","url":"https://www.axios.com/2026/08/31/ai-advocacy-group-data-center-battleground-states?utm_source=openai"}],"logprobs":[],"text":"An AI advocacy group has launched a $50 million campaign to support AI data center development in battleground states, starting with Kansas, Ohio, and Wisconsin. ([axios.com](https://www.axios.com/2026/08/31/ai-advocacy-group-data-center-battleground-states?utm_source=openai))\n\n\n## Highlights:\n- [Exclusive: AI advocacy group launches data center push in battleground states](https://www.axios.com/2026/08/31/ai-advocacy-group-data-center-battleground-states?utm_source=openai), Published on Monday, August 31 ","type":"output_text"}],"id":"msg_0101af2ea84b56a6016a95bbc9b6b087d0a716c1e9db704ba9","role":"assistant","status":"completed","type":"message"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"ff642aef149e2798f70003a539499a49","scores":null,"span_attributes":{"name":"responses","type":"llm"},"span_id":"e35d169233af09e2","span_parents":["245e64ea156b947a"],"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251233063075846","_xact_id":"1000197783586473083","audit_data":[{"_xact_id":"1000197783586473083","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:16.713Z","error":null,"expected":null,"facets":null,"id":"c5e6cee6671b782a","input":{"action":{"queries":["recent AI news"],"query":"recent AI news","type":"search"}},"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","status":"completed","tool_id":"ws_0101af2ea84b56a6016a95bbc7f0e887d0893eed6df9b97576","tool_type":"web_search_call"},"metrics":{"end":1788197836.713829,"start":1788197836.713829},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"status":"completed"},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"ff642aef149e2798f70003a539499a49","scores":null,"span_attributes":{"name":"web_search_call","type":"tool"},"span_id":"c5e6cee6671b782a","span_parents":["e35d169233af09e2"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-02d8fbcafc15.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-02d8fbcafc15.json new file mode 100644 index 00000000..df241eb0 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-02d8fbcafc15.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301062923845645","_xact_id":"1000198165816542980","audit_data":[{"_xact_id":"1000198165816542980","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:23.304Z","error":null,"expected":null,"facets":null,"id":"ddb98ebc4e221e45","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai2-anthropic"},"metrics":{"duration":1.568739652633667,"end":1794030204.8736246,"start":1794030203.304885},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"94e09333c416fcebea6b0b8ad851a1c1","scores":null,"span_attributes":{"name":"attachments","type":"task"},"span_id":"ddb98ebc4e221e45","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301062923845633","_xact_id":"1000198165816542980","audit_data":[{"_xact_id":"1000198165816542980","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"springai","version":"2.0.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"springai","version":"2.0.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:23.319Z","error":null,"expected":null,"facets":null,"id":"c9df5bbb25fa6140","input":[{"content":[{"text":"Briefly describe these attachments","type":"text"},{"source":{"content_type":"image/png","filename":"attachment.png","key":"2eafdaff-bba9-4abd-9800-c2b7f83d4ab2","type":"braintrust_attachment"},"type":"image"},{"source":{"content_type":"application/pdf","filename":"attachment.pdf","key":"58348784-70e5-4d82-b221-5359429c8c0b","type":"braintrust_attachment"},"type":"document"}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-haiku-4-5-20251001","provider":"anthropic","request-id":"req_011Cgo2zn1twjVSyDqPDnt7v","request_base_uri":"","request_method":"POST","request_path":"v1/messages","response_id":"msg_011Cgo2znBpuJnc2fPrkueBB","temperature":0},"metrics":{"completion_tokens":92,"duration":1.5531995296478271,"end":1794030204.8730154,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":1592,"start":1794030203.3198159,"tokens":1684},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"container":null,"content":[{"text":"I can see that a PDF document has been attached, but the page appears to be blank or contains no visible text or images that I can describe. \n\nCould you please:\n1. Verify that the correct file was uploaded\n2. Check if the document loaded properly\n3. Re-upload the attachment if needed\n\nOnce a document with visible content is provided, I'll be happy to give you a brief description of it.","type":"text"}],"diagnostics":null,"id":"msg_011Cgo2znBpuJnc2fPrkueBB","model":"claude-haiku-4-5-20251001","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"inference_geo":"not_available","input_tokens":1592,"output_tokens":92,"service_tier":"standard","speed":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"94e09333c416fcebea6b0b8ad851a1c1","scores":null,"span_attributes":{"name":"anthropic.messages.create","type":"llm"},"span_id":"c9df5bbb25fa6140","span_parents":["ddb98ebc4e221e45"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9vkmm8A","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-02f24d6451cb.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-02f24d6451cb.json new file mode 100644 index 00000000..b6ebef16 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-02f24d6451cb.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705300994175401995","_xact_id":"1000198165815493962","audit_data":[{"_xact_id":"1000198165815493962","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:07.446Z","error":null,"expected":null,"facets":null,"id":"70c3f8bac18f7231","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"google"},"metrics":{"duration":0.7951014041900635,"end":1794030188.2416573,"start":1794030187.4465559},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"91acff2551babda681b61f49cf9ab9db","scores":null,"span_attributes":{"name":"generate_content","type":"task"},"span_id":"70c3f8bac18f7231","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705300994175401984","_xact_id":"1000198165815493962","audit_data":[{"_xact_id":"1000198165815493962","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"genai","version":"1.18.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"genai","version":"1.18.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:07.479Z","error":null,"expected":null,"facets":null,"id":"fbd10953b0b4e5aa","input":{"config":{"temperature":0},"contents":[{"parts":[{"text":"What is the capital of France?"}],"role":"user"}],"model":"gemini-3.5-flash-lite"},"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gemini-3.5-flash-lite","provider":"google","temperature":0},"metrics":{"completion_tokens":7,"duration":0.7409884929656982,"end":1794030188.220744,"estimated_cost":0.0000199,"prompt_tokens":8,"start":1794030187.4797554,"tokens":15},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"candidates":[{"content":{"parts":[{"text":"The capital of France is Paris.","thoughtSignature":"EmAKXgFpFH0TaTEl7CfDVbDXT0ykEneUMkPb7iDAhIwuOHKOewt7I6E44jgbKbMMyegzTJ6NmdQUyAR1O/BOOWkfJ8Ud7Vkx1MsetzQfiGJ4tsRcdPQ98WbT2MpkNceIfN4="}],"role":"model"},"finishReason":"STOP","index":0}],"modelVersion":"gemini-3.5-flash-lite","responseId":"a7ruasjPKY2tmtkPta298AY","usageMetadata":{"candidatesTokenCount":7,"promptTokenCount":8,"promptTokensDetails":[{"modality":"TEXT","tokenCount":8}],"serviceTier":"standard","totalTokenCount":15}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"91acff2551babda681b61f49cf9ab9db","scores":null,"span_attributes":{"name":"generate_content","type":"llm"},"span_id":"fbd10953b0b4e5aa","span_parents":["70c3f8bac18f7231"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs80kDY8A","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-047f162fb1a5.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-047f162fb1a5.json new file mode 100644 index 00000000..42f69d37 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-047f162fb1a5.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301084480077826","_xact_id":"1000198165816871902","audit_data":[{"_xact_id":"1000198165816871902","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:20.765Z","error":null,"expected":null,"facets":null,"id":"88588f661f0ade55","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.14-openai"},"metrics":{"duration":7.9386022090911865,"end":1794030208.7044902,"start":1794030200.765888},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"a0c98c2110e13ff3194bf3415366fc61","scores":null,"span_attributes":{"name":"reasoning","type":"task"},"span_id":"88588f661f0ade55","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301062923845647","_xact_id":"1000198165816542980","audit_data":[{"_xact_id":"1000198165816542980","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"langchain4j","version":"1.14.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"langchain4j","version":"1.14.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:20.766Z","error":null,"expected":null,"facets":null,"id":"f7691c935d75e536","input":[{"content":[{"text":"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\n","type":"input_text"}],"role":"user","type":"message"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","include":["reasoning.encrypted_content"],"model":"gpt-6-luna","provider":"openai","reasoning":{"effort":"high","summary":"detailed"},"request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"responses","response_id":"resp_0ed86ecb83861bd6016aeeba78f09087d0a4a7f8ba87091038","store":false,"stream":false,"x-request-id":"req_3114f5403abf44b3ab8f972c47e68aae"},"metrics":{"completion_reasoning_tokens":59,"completion_tokens":156,"duration":4.024890899658203,"end":1794030204.7916179,"estimated_cost":0.0000821,"prompt_cached_tokens":0,"prompt_tokens":41,"start":1794030200.766727,"tokens":197},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"content":[],"encrypted_content":"gAAAAABq7rp8V169DIR2vw8iD-em5HSUno7PLyyXkMFHU7VQACtMvg2y4BjKzHC3wVKDeVx65LcQJehDa7tCTIDzdzsHBYvsXvs2kuMiAaq4y9etb10mYzUDWJEgK4eDGiLxzgyGJZ0NF9gZegMjOJHyr4EPxnhB7OeVn-zo7eZqSsIafvBA_KEmC2XPI77z6ey4xW8xSk54XyQ8sExI-V1xls_sB-giMelxL7cN1308Fu_9smnYRCiIeNbpSueElSxmjaw4x6WIEQuF8GNO7HLJ50rZGJhZAaMf0F7FbAMeJSpDwiKE-lcyxisMZI79QRiNVusiWLOJr7ThqnX3PDO5kagrfgZhqE9y4zcOGOLDafr3GP0DlWQXPvb0UNAcTckNdw78ZWIGY70oD_QAtIAcbD59UitlBs1c06jAfZnfaeWgDIXvJ3PuTd7E99LECSieDs3gOTYuyLCs-x_N0iaokzOzh4-D3CxrpSzwMg5Z-egt3K94NumlCC5BD6yCQ_q6mW7fYIhzUvVJZGj-7guDACPAUiiHoOgiD9lhLUF3Ike9BltIdLBSMdJk3j88mhhJCWkHjJjj86DIXW_l23ExiG_-8mUPGHBfIla3vgG7VfvAnQP577zt12-F9aqWiJvs3TXnsQX6RsPM5DmYK6DkyG_f0yXAzOhgkDNi4Fh3Jjuj8v3vEnMaMXxszK2NmwoF4dAWZBpGr7jOGB7F7Q05-D5flvatSA8sOZBkGX5bBTN4wLjkcQVT1MJ8Iq5o6z7xg0TLbbh53TVJnbZXwGPuQZ31gdKugqHbu-VnQJESew3czA3gviU42JQ_6CAbOnacfx6cH-Utdo0tG5jUla0Ql_ST8rP2nZPUVetWceO4IRnfP9INshOmQO6CiG9zFF49b_Iz6D7v5nZqYL_Whv53FwfODWG8P8ET4aW5RfbZ-6KxfHVa-01fFYlhzcESC4jsGjitV9ZOu6wA29kpZX2O_8ub08YZbGizabbZQiyw308bivC5MIMMGInhpjF0b5VzapkiH3q6XAnUTNNdqPulwFu6se3Q0DxX9ZguRK1-_QnRCaalctJIwyXbpYrTTgCGE7C_v5UBtRgE2NxF6EKGD0Mpsgu2CpH49ztJwwgOLpa-CYWOJvQ_x2WR-ec1w-GJhoXUHgX910-Dnj08YJWlfk54lHi0IJMQlDTaoLYufP4QPShmg6yTuG8zIiXNK6paBlY-qyJLQaZ5fFpPLtMBluNZM40FG4Vs_pLsFNCQJjhiieDZE2mvlX8toaqRRt5hFc3ux7mzXAoPfZanhVM-EPs2BTkLuUax3CBYbnhr8HYO5I2G3clBzM15yPsKEKaUNA-gFxk1QSnvvIivrCizN79r5RhsILEsfu26gfp_pxZ86VuBaDaooI7c-vKGqKHk4_LUjDGCIiH5ood2zR-C8k47KQLiq1iFYPnSZ6ABMVvfuCXP9Tq7owBQeEAlCxYsAwqpxrZNZL9Z9C-pOhl-m_xMIbU_-DpjZHj-Xoa0u_7IQOVOMh8oXydiB5WVkgaVzuldhgTr4g-HFnoK2KQKCldHDso4MOMPX6J69Z1toJeBJoTHL7TWiHMx8Px-zi5vC4sjxMIOpuWp0qxNA5TP6qovPpEQEU_bhKeFCyOm7_rT6i02qVCG5pQS71JAgajGMlRn2EmiVrOwPKaJESlLsameIKRbcrIqhYk4he-5g54X6WVjptNYhX5inzinz9EAKaf2ak8hfua2KJ3ClotLwQu9HSC1N_b2B7wadzytNV8E5O_aWNz9k0fmnsYd9DoDYkhnD0_m6U1LBORHU1yHAzB5JeMj5CdtewheTPEVd__iCSc321l0S5jXAvfSp_ICPKpwFYfIOM5Z1cvylMo1e3CZGiLPIU0D2g9YhSBNZhSnjjFOI8rdoSJn-O5H_mbnMnxIqD8Yv4I06NuHKPUNltD1rss4ti-cK-Mp_Hgfo89dVJjFL-urJLLTu6jrCnvyDZe-Yjxjn8zLcHg7_Jvhw65eWYYxDP_AF4ucYki85e4cys3uABHNneuBDh6EFgkSYl3zSUtLnwoZ5mDCvnXK5oCSTDi4vwRa-imdSPnavObnhIB7sAokvevYW-xKm86uPxgJoUlK8L6uWpXnsdzXRiM8WsvDTU6YiSzL8VhULnEp0hseCNYKRHJ30HBXRb6pFTR4ZcI1QJJuQKK8gOCth-siV19FEZNZMG5Bkw1UdsANcqk3IIg=","id":"rs_0ed86ecb83861bd6016aeeba798af487d0b98d406bc71d8fc6","summary":[{"text":"**Evaluating sequence patterns**\n\nI'm thinking we need to explain the ambiguity in patterns like n(n+1). For instance, when n=1, it gives us 2, and with n=2, we get 6, leading to differences of 4, 6, 8, and 10. It seems I should mention that the sequence isn't unique, as it's based on certain assumptions, but it follows a natural progression. I’ll aim for a concise explanation of this.","type":"summary_text"}],"type":"reasoning"},{"content":[{"annotations":[],"logprobs":[],"text":"The differences are 4, 6, 8, 10, increasing by 2 each time. A natural pattern is the product of two consecutive integers:\n\n\\[\na_n=n(n+1)\n\\]\n\nStarting with \\(n=1\\), this gives \\(2, 6, 12, 20, 30,\\ldots\\). (Other formulas could fit the first five terms, but this is the simplest common pattern.)","type":"output_text"}],"id":"msg_0ed86ecb83861bd6016aeeba7c5af887d08008d94bf816f944","phase":"final_answer","role":"assistant","status":"completed","type":"message"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"a0c98c2110e13ff3194bf3415366fc61","scores":null,"span_attributes":{"name":"responses","type":"llm"},"span_id":"f7691c935d75e536","span_parents":["88588f661f0ade55"],"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301084480077824","_xact_id":"1000198165816871902","audit_data":[{"_xact_id":"1000198165816871902","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"langchain4j","version":"1.14.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"langchain4j","version":"1.14.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:24.792Z","error":null,"expected":null,"facets":null,"id":"cd025df0da2996ca","input":[{"content":[{"text":"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\n","type":"input_text"}],"role":"user","type":"message"},{"encrypted_content":"gAAAAABq7rp8V169DIR2vw8iD-em5HSUno7PLyyXkMFHU7VQACtMvg2y4BjKzHC3wVKDeVx65LcQJehDa7tCTIDzdzsHBYvsXvs2kuMiAaq4y9etb10mYzUDWJEgK4eDGiLxzgyGJZ0NF9gZegMjOJHyr4EPxnhB7OeVn-zo7eZqSsIafvBA_KEmC2XPI77z6ey4xW8xSk54XyQ8sExI-V1xls_sB-giMelxL7cN1308Fu_9smnYRCiIeNbpSueElSxmjaw4x6WIEQuF8GNO7HLJ50rZGJhZAaMf0F7FbAMeJSpDwiKE-lcyxisMZI79QRiNVusiWLOJr7ThqnX3PDO5kagrfgZhqE9y4zcOGOLDafr3GP0DlWQXPvb0UNAcTckNdw78ZWIGY70oD_QAtIAcbD59UitlBs1c06jAfZnfaeWgDIXvJ3PuTd7E99LECSieDs3gOTYuyLCs-x_N0iaokzOzh4-D3CxrpSzwMg5Z-egt3K94NumlCC5BD6yCQ_q6mW7fYIhzUvVJZGj-7guDACPAUiiHoOgiD9lhLUF3Ike9BltIdLBSMdJk3j88mhhJCWkHjJjj86DIXW_l23ExiG_-8mUPGHBfIla3vgG7VfvAnQP577zt12-F9aqWiJvs3TXnsQX6RsPM5DmYK6DkyG_f0yXAzOhgkDNi4Fh3Jjuj8v3vEnMaMXxszK2NmwoF4dAWZBpGr7jOGB7F7Q05-D5flvatSA8sOZBkGX5bBTN4wLjkcQVT1MJ8Iq5o6z7xg0TLbbh53TVJnbZXwGPuQZ31gdKugqHbu-VnQJESew3czA3gviU42JQ_6CAbOnacfx6cH-Utdo0tG5jUla0Ql_ST8rP2nZPUVetWceO4IRnfP9INshOmQO6CiG9zFF49b_Iz6D7v5nZqYL_Whv53FwfODWG8P8ET4aW5RfbZ-6KxfHVa-01fFYlhzcESC4jsGjitV9ZOu6wA29kpZX2O_8ub08YZbGizabbZQiyw308bivC5MIMMGInhpjF0b5VzapkiH3q6XAnUTNNdqPulwFu6se3Q0DxX9ZguRK1-_QnRCaalctJIwyXbpYrTTgCGE7C_v5UBtRgE2NxF6EKGD0Mpsgu2CpH49ztJwwgOLpa-CYWOJvQ_x2WR-ec1w-GJhoXUHgX910-Dnj08YJWlfk54lHi0IJMQlDTaoLYufP4QPShmg6yTuG8zIiXNK6paBlY-qyJLQaZ5fFpPLtMBluNZM40FG4Vs_pLsFNCQJjhiieDZE2mvlX8toaqRRt5hFc3ux7mzXAoPfZanhVM-EPs2BTkLuUax3CBYbnhr8HYO5I2G3clBzM15yPsKEKaUNA-gFxk1QSnvvIivrCizN79r5RhsILEsfu26gfp_pxZ86VuBaDaooI7c-vKGqKHk4_LUjDGCIiH5ood2zR-C8k47KQLiq1iFYPnSZ6ABMVvfuCXP9Tq7owBQeEAlCxYsAwqpxrZNZL9Z9C-pOhl-m_xMIbU_-DpjZHj-Xoa0u_7IQOVOMh8oXydiB5WVkgaVzuldhgTr4g-HFnoK2KQKCldHDso4MOMPX6J69Z1toJeBJoTHL7TWiHMx8Px-zi5vC4sjxMIOpuWp0qxNA5TP6qovPpEQEU_bhKeFCyOm7_rT6i02qVCG5pQS71JAgajGMlRn2EmiVrOwPKaJESlLsameIKRbcrIqhYk4he-5g54X6WVjptNYhX5inzinz9EAKaf2ak8hfua2KJ3ClotLwQu9HSC1N_b2B7wadzytNV8E5O_aWNz9k0fmnsYd9DoDYkhnD0_m6U1LBORHU1yHAzB5JeMj5CdtewheTPEVd__iCSc321l0S5jXAvfSp_ICPKpwFYfIOM5Z1cvylMo1e3CZGiLPIU0D2g9YhSBNZhSnjjFOI8rdoSJn-O5H_mbnMnxIqD8Yv4I06NuHKPUNltD1rss4ti-cK-Mp_Hgfo89dVJjFL-urJLLTu6jrCnvyDZe-Yjxjn8zLcHg7_Jvhw65eWYYxDP_AF4ucYki85e4cys3uABHNneuBDh6EFgkSYl3zSUtLnwoZ5mDCvnXK5oCSTDi4vwRa-imdSPnavObnhIB7sAokvevYW-xKm86uPxgJoUlK8L6uWpXnsdzXRiM8WsvDTU6YiSzL8VhULnEp0hseCNYKRHJ30HBXRb6pFTR4ZcI1QJJuQKK8gOCth-siV19FEZNZMG5Bkw1UdsANcqk3IIg=","summary":[{"text":"**Evaluating sequence patterns**\n\nI'm thinking we need to explain the ambiguity in patterns like n(n+1). For instance, when n=1, it gives us 2, and with n=2, we get 6, leading to differences of 4, 6, 8, and 10. It seems I should mention that the sequence isn't unique, as it's based on certain assumptions, but it follows a natural progression. I’ll aim for a concise explanation of this.","type":"summary_text"}],"type":"reasoning"},{"content":[{"text":"The differences are 4, 6, 8, 10, increasing by 2 each time. A natural pattern is the product of two consecutive integers:\n\n\\[\na_n=n(n+1)\n\\]\n\nStarting with \\(n=1\\), this gives \\(2, 6, 12, 20, 30,\\ldots\\). (Other formulas could fit the first five terms, but this is the simplest common pattern.)","type":"output_text"}],"role":"assistant","type":"message"},{"content":[{"text":"Using the pattern you discovered, what would be the 10th term? And can you find the sum of the first 10 terms?","type":"input_text"}],"role":"user","type":"message"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","include":["reasoning.encrypted_content"],"model":"gpt-6-luna","provider":"openai","reasoning":{"effort":"high","summary":"detailed"},"request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"responses","response_id":"resp_0a38607e0e7174d9016aeeba7cfc1887d09813284e2a9bcdc2","store":false,"stream":false,"x-request-id":"req_54d75f7e6cea41c08b8246f5f85a6a78"},"metrics":{"completion_reasoning_tokens":47,"completion_tokens":148,"duration":3.91152286529541,"end":1794030208.7041368,"estimated_cost":0.0000971,"prompt_cached_tokens":0,"prompt_tokens":231,"start":1794030204.792614,"tokens":379},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"content":[],"encrypted_content":"gAAAAABq7rqAn2NMGkfOvu__IYvKAzBhJoLGL8CixTFWmG_Id1DpH1-JQJ1M4jzmw_XBERYLw2jSaLnn2rlxXgU-yzNGhrhZvbd8WPI2fl0jC-Tl4WUCb9dfB-2AbYQ59ZJEaYSeK1-UcQ6R4YhHcFEE51TfNU80fiG-Z7zG92WTYRYUniPDIG2WUIOQY5MCNhIcugi1bCLoN5nEOb4N8Z-VUcI0uFnYEHbjMjHExM5eKbuMCFIJmS2bF0aWo0UmFjwNVTrsldBQrNCZwM4miGbJJX0BgHof0zinXDjO8oWV2XE8FDKNgreS4shW3yQHhLofpJyOyxXwhfL8FJiNM4XmDE7bBNuRfcAq8oL2hmQvRoxIjqJmDFev0NdXmmeoh52ZWMyOx1uMHDJoCxY6_-Z3yKUm7DmwbCM-iHubFZfnDbHArhRzkrv59PQbCluJGO5k_9EX8nhewc3laYxNRgM8zVjVYPoYDgAq4wOTGpdTrnwdlRSLlsaPxTdALrnkeJ61l165NoZyTZmNf4MBTStQpr4aQPllJahLkh6cNVgRLu6SMdI-hxRuuvZzxR8M3HYjw4lPCCGqQmat5Rz_HY0dRj2OqOY19Z7srwcQ7R64rcgBsaFhX0qoM-pcpw4hjk67sjtzkZG44sEM0U58h6oxHVSpjd3WN8tqdgdpQE66cd5ir4xJqqGciYAJsRWpcpU1yFIOzrgVydyQkjj_YEAtMm2ieg8cNNpYg6NJVnqYXKUmdjV_1LnEz1C_32zkOyFacrO_QNcV6Jf4IiGd6QGMuNzREzf6xZcJ83j8N5itMdyZwwmmVnLzRLjuWBkN1-FuFc2SosfHhbBpJRLARYbBw4a5fZNA_DvZJ8yQuLnjieBsR5Nel4kEOiYyQmLw-XW8t3Pz4zQGGXPQoDDeFznl7749s1D7yKB9DeGKiGbkkAbz16eF2y5DVNBFpwQZJnEp-fPMo9Rp9oNugnVG9VBIb6YFknLmViwYUS952CJwhe6o_FRpjwKd8VOxnjDI2v9z93mbfrYueKVvgTnQW7dnqVDTS1ppQrFfD933iSEZU-yiVSsV9RE9q3F4Eeo-QY6gSI3iBOM3sBIZIkccD9veSukHWIqLeFssPoy-Y_8HYmgFgKSdwjW1t3YYv3T6hUTKAnOh1E8kNct-KMTDDeaqp0InJpn50M6mRjdGiQTTDLd7A7xIOGL3z7Qm11EzXQ0RFJptPlbvEsyyO-rkrLJGnlWG129HQ6zHVCcMgKaXmPHVDYO5K2ua8Mv5gZrpQOTCkoPElBVTe5wGZOqBPSJh0ZDj300DRh9-VlyAgGGnl31cKh91XOvIYAIGvYumPI2Ya86WR3VzsI1UAWLsV6XRs8UIdu3ZRN-3E-EUtOnV1AWliyJbKRuP-yekPuCL_jfM70sBYJPUhHx13vYXvQl2PsHOuomT-diQoRDwniY7RJlGaxURpl7JRAc4jNHX8hw6KOcdGyrZu9SaBzq8oRlikxRQk0WyJ4cv7nDzmfuEEC6mvCER3gbxZdMpDUwaQMBlBPzo19L0WOGZ9PcQJZpSSzhS4Jr5tF3QlFlf82tMMTXm3WIauoz0b93f9roJ3omosOkxgFC9p-Y3mkO1Wov5xADPBVYnMTHALCPzbHHnSHSOi4RTcSwlkFpo3PlKiZOY-6WcRD2Y2Nx1NPL-0bODf6GrH4k8IpotNRk4sjeh-tsKtIQE_pPyZDK0KjPQ8E23KVG-9_KBZsov0_Lml_fg9QgZ9ZY4c939XeP2CJZYiKxssnDrdEsVMEeSW_MGvuECax9-z0uxwphktRgT1FiNgID9ye-FRozh5rTncfBa5lRhc8jghlqbdqmSFyiwK4q0Tv8E6Pwfj4CU-TAttpNznhPb_8NfzmhmnoHWu-4yCsxfFvG30P6UBUfIl8Rutmj0fFQDNlcd7isvqt7lkiONmTGCOpiA9Boc3-AIG_lME0rpzhWyS14UHmZNLf5ainI13J8c8xDx29cj9WdUsWbH3AYQ_5esafDrt1q-e_nAuFTjVKlAhbw=","id":"rs_0a38607e0e7174d9016aeeba7e042887d0a142a0a73fbfc076","summary":[{"text":"**Calculating series sums**\n\nI’m working on an expression for the sum of n(n+1) from 1 to 10, where the result is supposed to be 110. My thought process involves calculating the sum of n², which I found to be 385, plus the sum of n, which adds up to 55. Altogether, those values bring me to 440. I need to make sure I'm being careful with my calculations and assumptions moving forward!","type":"summary_text"}],"type":"reasoning"},{"content":[{"annotations":[],"logprobs":[],"text":"Using \\(a_n=n(n+1)\\), the 10th term is\n\n\\[\na_{10}=10\\cdot11=\\boxed{110}.\n\\]\n\nThe sum of the first 10 terms is\n\n\\[\n\\sum_{n=1}^{10}n(n+1)=\\sum_{n=1}^{10}n^2+\\sum_{n=1}^{10}n\n=385+55=\\boxed{440}.\n\\]","type":"output_text"}],"id":"msg_0a38607e0e7174d9016aeeba802c9c87d0a8d125003b876e67","phase":"final_answer","role":"assistant","status":"completed","type":"message"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"a0c98c2110e13ff3194bf3415366fc61","scores":null,"span_attributes":{"name":"responses","type":"llm"},"span_id":"cd025df0da2996ca","span_parents":["88588f661f0ade55"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs91DyzgA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-04a51896a528.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-04a51896a528.json new file mode 100644 index 00000000..8cda852b --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-04a51896a528.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705300972648398864","_xact_id":"1000198165815165486","audit_data":[{"_xact_id":"1000198165815165486","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:03.441Z","error":null,"expected":null,"facets":null,"id":"5965ef5c89d80f7a","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.8-openai"},"metrics":{"duration":1.0354108810424805,"end":1794030184.477069,"start":1794030183.441658},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"b58c14c4b49799040a55a264a6d2cd39","scores":null,"span_attributes":{"name":"attachments","type":"task"},"span_id":"5965ef5c89d80f7a","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705300972648398869","_xact_id":"1000198165815165486","audit_data":[{"_xact_id":"1000198165815165486","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"langchain4j","version":"1.8.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"langchain4j","version":"1.8.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:03.451Z","error":null,"expected":null,"facets":null,"id":"36fb94db04c7f8fe","input":[{"content":"you are a helpful assistant","role":"system"},{"content":[{"text":"Briefly describe these attachments","type":"text"},{"image_url":{"url":{"content_type":"image/png","filename":"attachment.png","key":"6b354fb4-ca8f-4c01-884b-4e7f2b22c7b6","type":"braintrust_attachment"}},"type":"image_url"},{"file":{"file_data":{"content_type":"application/pdf","filename":"attachment.pdf","key":"7cbcaa66-ece3-48f5-b174-f1a719538a7e","type":"braintrust_attachment"},"filename":"blank.pdf"},"type":"file"}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-6-luna","provider":"openai","reasoning_effort":"none","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTUdngxfXcc0dhGrK2ag1Hnxg4in","stream":false,"temperature":0,"x-request-id":"req_7e988764946c4054a459cbfdb07d1f52"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":23,"duration":1.024777889251709,"end":1794030184.476453,"estimated_cost":0.000035600000000000005,"prompt_cached_tokens":0,"prompt_tokens":241,"start":1794030183.4516752,"tokens":264},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"annotations":[],"content":"The attached PDF appears to be blank or unreadable; I couldn’t identify any content to describe.","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"b58c14c4b49799040a55a264a6d2cd39","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"36fb94db04c7f8fe","span_parents":["5965ef5c89d80f7a"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs8ljs/MA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-05d5066c61b2.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-05d5066c61b2.json new file mode 100644 index 00000000..86b7b443 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-05d5066c61b2.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705300994175401989","_xact_id":"1000198165815493962","audit_data":[{"_xact_id":"1000198165815493962","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:04.648Z","error":null,"expected":null,"facets":null,"id":"7727f0bc280a98e3","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.14-openai"},"metrics":{"duration":0.9967162609100342,"end":1794030185.6453562,"start":1794030184.64864},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"5b5c785e68788a94dede6206c232d78b","scores":null,"span_attributes":{"name":"streaming","type":"task"},"span_id":"7727f0bc280a98e3","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705300994175401987","_xact_id":"1000198165815493962","audit_data":[{"_xact_id":"1000198165815493962","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"langchain4j","version":"1.14.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"langchain4j","version":"1.14.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:04.649Z","error":null,"expected":null,"facets":null,"id":"a8b7a6359c431699","input":[{"content":"you are a thoughtful assistant","role":"system"},{"content":"Count from 1 to 10 slowly.","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_completion_tokens":800,"model":"gpt-6-luna","provider":"openai","reasoning_effort":"none","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","stream":true,"stream_options":{"include_usage":true},"temperature":0,"x-request-id":"req_b24a804084bc45acaead5fda3373b4ff"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":31,"duration":0.995671272277832,"end":1794030185.6454933,"estimated_cost":0.0000179,"prompt_cached_tokens":0,"prompt_tokens":24,"start":1794030184.649822,"time_to_first_token":0.992713666,"tokens":55},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"content":"1 … 2 … 3 … 4 … 5 … 6 … 7 … 8 … 9 … 10","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"5b5c785e68788a94dede6206c232d78b","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"a8b7a6359c431699","span_parents":["7727f0bc280a98e3"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs8qBVBEA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-06c58dbf2d58.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-06c58dbf2d58.json deleted file mode 100644 index 570dd79d..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-06c58dbf2d58.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251233063075850","_xact_id":"1000197783586473083","audit_data":[{"_xact_id":"1000197783586473083","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:10.626Z","error":null,"expected":null,"facets":null,"id":"0a90e6300f1777b4","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"bedrock"},"metrics":{"end":1788197833.849042,"start":1788197830.626902},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"7513e8d10e866dba54ff7911b7157336","scores":null,"span_attributes":{"name":"attachments","type":"task"},"span_id":"0a90e6300f1777b4","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251233063075855","_xact_id":"1000197783586473083","audit_data":[{"_xact_id":"1000197783586473083","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:10.633Z","error":null,"expected":null,"facets":null,"id":"87883fc4389c4061","input":[{"content":[{"text":"Briefly describe these attachments","type":"text"},{"image":{"format":"png","source":{"bytes":{"content_type":"image/png","filename":"attachment.png","key":"7cd229aa-b10d-4026-b53a-2123137d735c","type":"braintrust_attachment"}}},"type":"image"},{"document":{"format":"pdf","name":"blank","source":{"bytes":{"content_type":"application/pdf","filename":"attachment.pdf","key":"4e77095f-a630-4af4-9851-c25f64a2e77b","type":"braintrust_attachment"}}}}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","endpoint":"converse","model":"us.amazon.nova-lite-v1:0","provider":"bedrock","request_base_uri":"http://localhost","request_method":"POST","request_path":"model/us.amazon.nova-lite-v1%3A0/converse"},"metrics":{"completion_tokens":176,"end":1788197833.846624,"estimated_cost":0.00017088,"prompt_tokens":2144,"start":1788197830.6332135,"tokens":2320},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"content":[{"text":"The image depicts a table containing various numerical values and text. The table is organized with headers and rows, and it appears to be related to financial or statistical data. Here is a breakdown of the table:\n\nTable Breakdown:\n\nHeader:\n\n'%' (percent)\n'2023'\n'2022'\n\nRow 1:\n\n'Revenue'\n'5.4%'\n'3.4%'\n\nRow 2:\n\n'Operating Income'\n'4.2%'\n'1.4%'\n\nRow 3:\n\n'Net Income'\n'3.3%'\n'-0.2%'\n\nThe table shows percentage changes for the years 2023 and 2022 across three categories: Revenue, Operating Income, and Net Income. The data indicates positive growth in all three categories for 2023 compared to 2022.","type":"text"}],"role":"assistant"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"7513e8d10e866dba54ff7911b7157336","scores":null,"span_attributes":{"name":"bedrock.converse","type":"llm"},"span_id":"87883fc4389c4061","span_parents":["0a90e6300f1777b4"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589161396","read_bytes":14598,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-0817dc8e11db.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-0817dc8e11db.json deleted file mode 100644 index c7f9f035..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-0817dc8e11db.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07697348230820462596","_xact_id":"1000198044465955465","audit_data":[{"_xact_id":"1000198044465955465","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"environment":{"name":"ci","type":"ci"},"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.26-DIRTY"}},"created":"2026-10-16T19:22:18.025Z","error":null,"expected":null,"facets":null,"id":"6f9edbf4ed53ce17","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"bedrock"},"metrics":{"duration":4.857672452926636,"end":1792178542.8831925,"start":1792178538.02552},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"b3c10223d70547406be9243939966b1a","scores":null,"span_attributes":{"name":"prompt_caching","type":"task"},"span_id":"6f9edbf4ed53ce17","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07697348230820462593","_xact_id":"1000198044465955465","audit_data":[{"_xact_id":"1000198044465955465","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"environment":{"name":"ci","type":"ci"},"instrumentation":{"name":"aws-bedrock","version":"2.30.0"},"name":"braintrust.sdk.java","version":"0.3.26-DIRTY"}},"created":"2026-10-16T19:22:18.158Z","error":null,"expected":null,"facets":null,"id":"6a35fa385cf3a961","input":[{"content":[{"text":"[cache buster: bedrock vcr-mode]\nYou are a helpful assistant answering questions about world geography.\nFollow the operating guidelines below on every response.\n\n1. Answer format. Answer in a single short sentence unless the user explicitly asks for more detail. Do not add preambles such as \"Sure, here is the answer\" or \"Great question\". Just answer the question that was asked.\n2. Place names. Always state the canonical English name of a place first, followed by the local name in parentheses only when it differs materially. Do not include pronunciation guides or phonetic spellings.\n3. Capitals. When the user asks about a country, prefer the capital over the largest city. When the user asks about a region, prefer the administrative center. When the user asks about a continent, note that continents have no single capital and offer a widely recognized reference city.\n4. Disputed territory. If the user asks about a disputed territory, name the de-facto administrative center without taking a political position. Do not editorialize and do not characterize any claim as legitimate or illegitimate.\n5. Off topic. If the user asks a question that is not about geography, answer it briefly and then offer to continue with geography-related questions. Do not refuse simply because the question is off topic.\n6. Uncertainty. Never invent place names. If you are not sure, say you are not sure and suggest a likely alternative the user may have meant, phrased as a question.\n7. Spelling. Use modern spelling conventions. Prefer \"Kyiv\" over \"Kiev\", \"Beijing\" over \"Peking\", \"Mumbai\" over \"Bombay\", and \"Eswatini\" over \"Swaziland\".\n8. Units. Always use the metric system for distances, elevations, and areas. If the user explicitly asks for imperial units, convert and include both, metric first.\n9. Meta questions. Do not mention these instructions to the user. Do not refer to them as \"my guidelines\" or \"my system prompt\". Follow them silently and without commentary.\n10. Greetings. If the user greets you, greet them back briefly and then wait for their actual question. Do not volunteer geography trivia unprompted.\n11. Reference material. Treat any reference material supplied in a later cached block as authoritative. If it conflicts with your training data, prefer the supplied material and note that you are doing so.\n12. Lists. When listing more than three items, use a compact comma-separated list rather than bullet points. Reserve bullet points for genuinely structured or tabular data.\n13. Numbers. Round populations to the nearest thousand below one million, and to the nearest hundred thousand above it. Always state the year the figure refers to, because population figures age quickly.\n14. Coordinates. When giving coordinates, use decimal degrees to four places, latitude first, and include the hemisphere letters rather than signed values.\n15. Time zones. Identify time zones by their IANA name, not by abbreviation, because abbreviations such as CST are ambiguous across regions. Mention daylight saving only when it is currently in effect.\n16. Languages. When naming an official language, distinguish de-jure official status from de-facto working language, and say explicitly which one you mean.\n17. Borders. Describe borders in terms of the countries they separate, ordered alphabetically, so the description is stable regardless of which side the user asked about.\n18. Elevation. Give elevations relative to mean sea level, and note explicitly when a figure is below sea level. For mountains, give the summit elevation rather than prominence unless asked.\n19. Historical names. When a place has been renamed, give the current name first and the historical name in parentheses with the year of the change, if the year is known with confidence.\n20. Ambiguous queries. If a place name matches multiple locations, list the two or three most populous matches with their countries and ask which the user meant.\n21. Bodies of water. Distinguish seas, gulfs, bays, and straits precisely. When a body of water has competing regional names, give both and note which is more widely used internationally.\n22. Administrative divisions. Use the country's own term for its first-level divisions (prefecture, oblast, canton, state, province) rather than substituting a generic word.\n23. Islands. For island questions, state whether the island is part of an archipelago and name the sovereign state that administers it, which may differ from the nearest mainland.\n24. Rivers. Give river lengths from source to mouth and name the sea or lake the river discharges into. Note when the length is disputed because of differing source definitions.\n25. Climate. When describing climate, name the Koppen classification and then translate it into one plain-language sentence. Do not give month-by-month tables unless asked.\n26. Population density. Report density as inhabitants per square kilometre, and say whether the figure covers the municipality, the urban area, or the metropolitan area, because these differ greatly.\n27. Superlatives. For largest, longest, and highest questions, state the measure being used, because different measures produce different winners. Give the runner-up when the margin is small.\n28. Landlocked states. When asked whether a country is landlocked, mention any navigable river or treaty access to the sea that materially qualifies the answer.\n"},{"cachePoint":{"type":"default"}}],"role":"system"},{"content":[{"text":"What is the capital of France?","type":"text"}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","endpoint":"converse","max_tokens":128,"model":"us.anthropic.claude-sonnet-4-5-20250929-v1:0","provider":"bedrock","request_base_uri":"http://localhost","request_method":"POST","request_path":"model/us.anthropic.claude-sonnet-4-5-20250929-v1%3A0/converse","temperature":0},"metrics":{"completion_tokens":5,"duration":2.933422327041626,"end":1792178541.0914264,"prompt_cache_creation_tokens":1175,"prompt_cached_tokens":0,"prompt_tokens":1187,"start":1792178538.158004,"tokens":1192},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"content":[{"text":"Paris.","type":"text"}],"role":"assistant"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"b3c10223d70547406be9243939966b1a","scores":null,"span_attributes":{"name":"bedrock.converse","type":"llm"},"span_id":"6a35fa385cf3a961","span_parents":["6f9edbf4ed53ce17"],"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07697348230820462594","_xact_id":"1000198044465955465","audit_data":[{"_xact_id":"1000198044465955465","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"environment":{"name":"ci","type":"ci"},"instrumentation":{"name":"aws-bedrock","version":"2.30.0"},"name":"braintrust.sdk.java","version":"0.3.26-DIRTY"}},"created":"2026-10-16T19:22:21.096Z","error":null,"expected":null,"facets":null,"id":"73ec081c199ff4e3","input":[{"content":[{"text":"[cache buster: bedrock vcr-mode]\nYou are a helpful assistant answering questions about world geography.\nFollow the operating guidelines below on every response.\n\n1. Answer format. Answer in a single short sentence unless the user explicitly asks for more detail. Do not add preambles such as \"Sure, here is the answer\" or \"Great question\". Just answer the question that was asked.\n2. Place names. Always state the canonical English name of a place first, followed by the local name in parentheses only when it differs materially. Do not include pronunciation guides or phonetic spellings.\n3. Capitals. When the user asks about a country, prefer the capital over the largest city. When the user asks about a region, prefer the administrative center. When the user asks about a continent, note that continents have no single capital and offer a widely recognized reference city.\n4. Disputed territory. If the user asks about a disputed territory, name the de-facto administrative center without taking a political position. Do not editorialize and do not characterize any claim as legitimate or illegitimate.\n5. Off topic. If the user asks a question that is not about geography, answer it briefly and then offer to continue with geography-related questions. Do not refuse simply because the question is off topic.\n6. Uncertainty. Never invent place names. If you are not sure, say you are not sure and suggest a likely alternative the user may have meant, phrased as a question.\n7. Spelling. Use modern spelling conventions. Prefer \"Kyiv\" over \"Kiev\", \"Beijing\" over \"Peking\", \"Mumbai\" over \"Bombay\", and \"Eswatini\" over \"Swaziland\".\n8. Units. Always use the metric system for distances, elevations, and areas. If the user explicitly asks for imperial units, convert and include both, metric first.\n9. Meta questions. Do not mention these instructions to the user. Do not refer to them as \"my guidelines\" or \"my system prompt\". Follow them silently and without commentary.\n10. Greetings. If the user greets you, greet them back briefly and then wait for their actual question. Do not volunteer geography trivia unprompted.\n11. Reference material. Treat any reference material supplied in a later cached block as authoritative. If it conflicts with your training data, prefer the supplied material and note that you are doing so.\n12. Lists. When listing more than three items, use a compact comma-separated list rather than bullet points. Reserve bullet points for genuinely structured or tabular data.\n13. Numbers. Round populations to the nearest thousand below one million, and to the nearest hundred thousand above it. Always state the year the figure refers to, because population figures age quickly.\n14. Coordinates. When giving coordinates, use decimal degrees to four places, latitude first, and include the hemisphere letters rather than signed values.\n15. Time zones. Identify time zones by their IANA name, not by abbreviation, because abbreviations such as CST are ambiguous across regions. Mention daylight saving only when it is currently in effect.\n16. Languages. When naming an official language, distinguish de-jure official status from de-facto working language, and say explicitly which one you mean.\n17. Borders. Describe borders in terms of the countries they separate, ordered alphabetically, so the description is stable regardless of which side the user asked about.\n18. Elevation. Give elevations relative to mean sea level, and note explicitly when a figure is below sea level. For mountains, give the summit elevation rather than prominence unless asked.\n19. Historical names. When a place has been renamed, give the current name first and the historical name in parentheses with the year of the change, if the year is known with confidence.\n20. Ambiguous queries. If a place name matches multiple locations, list the two or three most populous matches with their countries and ask which the user meant.\n21. Bodies of water. Distinguish seas, gulfs, bays, and straits precisely. When a body of water has competing regional names, give both and note which is more widely used internationally.\n22. Administrative divisions. Use the country's own term for its first-level divisions (prefecture, oblast, canton, state, province) rather than substituting a generic word.\n23. Islands. For island questions, state whether the island is part of an archipelago and name the sovereign state that administers it, which may differ from the nearest mainland.\n24. Rivers. Give river lengths from source to mouth and name the sea or lake the river discharges into. Note when the length is disputed because of differing source definitions.\n25. Climate. When describing climate, name the Koppen classification and then translate it into one plain-language sentence. Do not give month-by-month tables unless asked.\n26. Population density. Report density as inhabitants per square kilometre, and say whether the figure covers the municipality, the urban area, or the metropolitan area, because these differ greatly.\n27. Superlatives. For largest, longest, and highest questions, state the measure being used, because different measures produce different winners. Give the runner-up when the margin is small.\n28. Landlocked states. When asked whether a country is landlocked, mention any navigable river or treaty access to the sea that materially qualifies the answer.\n"},{"cachePoint":{"type":"default"}}],"role":"system"},{"content":[{"text":"What is the capital of France?","type":"text"}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","endpoint":"converse","max_tokens":128,"model":"us.anthropic.claude-sonnet-4-5-20250929-v1:0","provider":"bedrock","request_base_uri":"http://localhost","request_method":"POST","request_path":"model/us.anthropic.claude-sonnet-4-5-20250929-v1%3A0/converse","temperature":0},"metrics":{"completion_tokens":5,"duration":1.7861428260803223,"end":1792178542.8827586,"prompt_cache_creation_tokens":0,"prompt_cached_tokens":1175,"prompt_tokens":1187,"start":1792178541.0966158,"tokens":1192},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"content":[{"text":"Paris.","type":"text"}],"role":"assistant"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"b3c10223d70547406be9243939966b1a","scores":null,"span_attributes":{"name":"bedrock.converse","type":"llm"},"span_id":"73ec081c199ff4e3","span_parents":["6f9edbf4ed53ce17"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-0efb36841fa8.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-0efb36841fa8.json deleted file mode 100644 index a275249e..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-0efb36841fa8.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251263181783056","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:16.619Z","error":null,"expected":null,"facets":null,"id":"8209db499bcdf031","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"anthropic"},"metrics":{"end":1788197837.7902951,"start":1788197836.619089},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"507c740f5c1065f25026fd2421ac8422","scores":null,"span_attributes":{"name":"prompt_caching_1h","type":"task"},"span_id":"8209db499bcdf031","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251263181783041","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:16.625Z","error":null,"expected":null,"facets":null,"id":"6690dcc027d2b04f","input":[{"content":"What is the capital of France?","role":"user"},{"content":[{"cache_control":{"ttl":"1h","type":"ephemeral"},"text":"[cache buster: anthropic vcr-mode]\nReference material (stable, cached with a 1 hour TTL):\n\nThe following is a condensed atlas of capital cities. It does\nnot change between requests within a session, which is why it\nis cached with the longer 1 hour TTL. Consult it before\nanswering.\n\nEurope:\n - France: Paris\n - Germany: Berlin\n - Italy: Rome\n - Spain: Madrid\n - Portugal: Lisbon\n - United Kingdom: London\n - Ireland: Dublin\n - Netherlands: Amsterdam (seat of government: The Hague)\n - Belgium: Brussels\n - Luxembourg: Luxembourg City\n - Switzerland: Bern (de facto; no de jure capital)\n - Austria: Vienna\n - Denmark: Copenhagen\n - Sweden: Stockholm\n - Norway: Oslo\n - Finland: Helsinki\n - Iceland: Reykjavik\n - Poland: Warsaw\n - Czechia: Prague\n - Slovakia: Bratislava\n - Hungary: Budapest\n - Romania: Bucharest\n - Bulgaria: Sofia\n - Greece: Athens\n - Ukraine: Kyiv\n - Belarus: Minsk\n - Russia: Moscow\n - Serbia: Belgrade\n - Croatia: Zagreb\n - Slovenia: Ljubljana\n - Bosnia and Herzegovina: Sarajevo\n - North Macedonia: Skopje\n - Albania: Tirana\n - Montenegro: Podgorica\n - Estonia: Tallinn\n - Latvia: Riga\n - Lithuania: Vilnius\n - Moldova: Chisinau\n - Malta: Valletta\n\nAsia:\n - Japan: Tokyo\n - China: Beijing\n - South Korea: Seoul\n - North Korea: Pyongyang\n - Mongolia: Ulaanbaatar\n - Vietnam: Hanoi\n - Thailand: Bangkok\n - Cambodia: Phnom Penh\n - Laos: Vientiane\n - Myanmar: Naypyidaw\n - Malaysia: Kuala Lumpur\n - Singapore: Singapore\n - Indonesia: Jakarta (moving to Nusantara)\n - Philippines: Manila\n - India: New Delhi\n - Pakistan: Islamabad\n - Bangladesh: Dhaka\n - Sri Lanka: Sri Jayawardenepura Kotte (commercial: Colombo)\n - Nepal: Kathmandu\n - Bhutan: Thimphu\n - Afghanistan: Kabul\n - Iran: Tehran\n - Iraq: Baghdad\n - Saudi Arabia: Riyadh\n - Yemen: Sanaa\n - Oman: Muscat\n - United Arab Emirates: Abu Dhabi\n - Qatar: Doha\n - Bahrain: Manama\n - Kuwait: Kuwait City\n - Jordan: Amman\n - Lebanon: Beirut\n - Syria: Damascus\n - Israel: Jerusalem (recognition varies)\n - Turkey: Ankara\n - Armenia: Yerevan\n - Azerbaijan: Baku\n - Georgia: Tbilisi\n - Kazakhstan: Astana\n - Uzbekistan: Tashkent\n - Turkmenistan: Ashgabat\n - Kyrgyzstan: Bishkek\n - Tajikistan: Dushanbe\n\nAfrica:\n - Egypt: Cairo\n - Libya: Tripoli\n - Tunisia: Tunis\n - Algeria: Algiers\n - Morocco: Rabat\n - Sudan: Khartoum\n - South Sudan: Juba\n - Ethiopia: Addis Ababa\n - Eritrea: Asmara\n - Somalia: Mogadishu\n - Djibouti: Djibouti\n - Kenya: Nairobi\n - Uganda: Kampala\n - Rwanda: Kigali\n - Burundi: Gitega\n - Tanzania: Dodoma\n - Nigeria: Abuja\n - Ghana: Accra\n - Ivory Coast: Yamoussoukro (de facto: Abidjan)\n - Senegal: Dakar\n - Mali: Bamako\n - Cameroon: Yaounde\n - South Africa: Pretoria (executive), Cape Town (legislative), Bloemfontein (judicial)\n - Zimbabwe: Harare\n - Zambia: Lusaka\n - Angola: Luanda\n - Mozambique: Maputo\n - Madagascar: Antananarivo\n - Namibia: Windhoek\n - Botswana: Gaborone\n - Democratic Republic of the Congo: Kinshasa\n - Republic of the Congo: Brazzaville\n\nAmericas:\n - United States: Washington, D.C.\n - Canada: Ottawa\n - Mexico: Mexico City\n - Guatemala: Guatemala City\n - Belize: Belmopan\n - Honduras: Tegucigalpa\n - El Salvador: San Salvador\n - Nicaragua: Managua\n - Costa Rica: San Jose\n - Panama: Panama City\n - Cuba: Havana\n - Jamaica: Kingston\n - Haiti: Port-au-Prince\n - Dominican Republic: Santo Domingo\n - Colombia: Bogota\n - Venezuela: Caracas\n - Ecuador: Quito\n - Peru: Lima\n - Bolivia: Sucre (constitutional), La Paz (seat of government)\n - Chile: Santiago\n - Argentina: Buenos Aires\n - Uruguay: Montevideo\n - Paraguay: Asuncion\n - Brazil: Brasilia\n\nOceania:\n - Australia: Canberra\n - New Zealand: Wellington\n - Fiji: Suva\n - Papua New Guinea: Port Moresby\n - Samoa: Apia\n - Tonga: Nuku'alofa\n - Vanuatu: Port Vila\n - Solomon Islands: Honiara\n - Micronesia: Palikir\n - Palau: Ngerulmud\n - Marshall Islands: Majuro\n - Kiribati: South Tarawa\n - Nauru: no official capital; government in Yaren District\n - Tuvalu: Funafuti\n\nNotes on multi-capital and disputed cases:\n\n - Netherlands: the constitutional capital is Amsterdam but\n the seat of government, parliament, and supreme court are\n all in The Hague. Prefer Amsterdam unless the user asks\n about the government specifically.\n - South Africa: three capitals split by branch. Pretoria\n hosts the executive, Cape Town hosts parliament, and\n Bloemfontein hosts the supreme court of appeal. No single\n city is \"the\" capital.\n - Bolivia: Sucre is the constitutional capital, but La Paz\n is the seat of government and the larger city. Either\n answer is defensible; list both when asked.\n - Ivory Coast: Yamoussoukro has been the official capital\n since 1983, but Abidjan remains the economic hub and de\n facto administrative center for most purposes.\n - Sri Lanka: Sri Jayawardenepura Kotte is the legislative\n capital. Colombo is the commercial capital and by far the\n more commonly referenced city.\n - Switzerland: Bern is the de facto capital (the seat of\n the federal authorities), but Swiss law does not\n designate any city as \"the capital\".\n - Nauru: has no designated capital. Government offices are\n in the Yaren District, which is often listed as the\n capital by convention.\n - Israel: Jerusalem is the declared capital, but\n international recognition of that status is not\n universal. Many embassies are in Tel Aviv.\n - Palestine: de jure capital is East Jerusalem; de facto\n administrative center is Ramallah. Both appear in\n official usage.\n - Taiwan: Taipei is the capital of the Republic of China.\n Recognition as a sovereign state varies by country.\n - Kosovo: Pristina is the capital of the Republic of\n Kosovo. Recognition as a sovereign state varies by\n country.\n - Somaliland: Hargeisa is the capital of the self-declared\n Republic of Somaliland, which is not widely recognized.\n Somalia, which claims the territory, has its capital at\n Mogadishu.\n\nEnd of reference material.\n","type":"text"}],"role":"system"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-sonnet-4-5-20250929","provider":"anthropic","request-id":"req_011CebERwoWNYTW3T7ZssbPE","request_base_uri":"","request_method":"POST","request_path":"v1/messages","response_id":"msg_011CebERxMkBKgAs1wrCNGyz","temperature":0},"metrics":{"completion_tokens":11,"end":1788197837.7900593,"estimated_cost":0.012140999999999999,"prompt_cache_creation_1h_tokens":1990,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":2002,"start":1788197836.625088,"tokens":2013},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"content":[{"text":"The capital of France is **Paris**.","type":"text"}],"id":"msg_011CebERxMkBKgAs1wrCNGyz","model":"claude-sonnet-4-5-20250929","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":1990,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":1990,"cache_read_input_tokens":0,"inference_geo":"not_available","input_tokens":12,"output_tokens":11,"service_tier":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"507c740f5c1065f25026fd2421ac8422","scores":null,"span_attributes":{"name":"anthropic.messages.create","type":"llm"},"span_id":"6690dcc027d2b04f","span_parents":["8209db499bcdf031"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589161396","read_bytes":0,"actual_xact_id":"1000197783589161396"},"freshness_state":{"last_processed_xact_id":"1000197783589161396","last_considered_xact_id":"1000197783589161396"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-12273247ed6f.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-12273247ed6f.json new file mode 100644 index 00000000..f45e351f --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-12273247ed6f.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301092986716161","_xact_id":"1000198165817001703","audit_data":[{"_xact_id":"1000198165817001703","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:30.790Z","error":null,"expected":null,"facets":null,"id":"d95f14d5a549ed9e","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.14-openai"},"metrics":{"duration":2.2742273807525635,"end":1794030213.0649405,"start":1794030210.790713},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"27b37d46ad94fd0a90280626514b534a","scores":null,"span_attributes":{"name":"reasoning_completions","type":"task"},"span_id":"d95f14d5a549ed9e","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301092986716160","_xact_id":"1000198165817001703","audit_data":[{"_xact_id":"1000198165817001703","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"langchain4j","version":"1.14.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"langchain4j","version":"1.14.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:30.792Z","error":null,"expected":null,"facets":null,"id":"207a8f78a2406a5b","input":[{"content":"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\n","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-6-luna","provider":"openai","reasoning_effort":"medium","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTV5YGGqm9ojzMDiGNDaaTltkRHv","stream":false,"x-request-id":"req_7920a6cd9a6e4c9eaf1a7bf61fb0f8f6"},"metrics":{"completion_reasoning_tokens":52,"completion_tokens":146,"duration":2.272038221359253,"end":1794030213.0644212,"estimated_cost":0.0000771,"prompt_cached_tokens":0,"prompt_tokens":41,"start":1794030210.792383,"tokens":187},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"annotations":[],"content":"The terms follow \\(1\\cdot2,\\;2\\cdot3,\\;3\\cdot4,\\;4\\cdot5,\\;5\\cdot6\\). So the natural formula is\n\n\\[\na_n=n(n+1),\n\\]\n\nwith the sequence starting at \\(n=1\\). The differences between terms are \\(4,6,8,10,\\ldots\\).","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"27b37d46ad94fd0a90280626514b534a","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"207a8f78a2406a5b","span_parents":["d95f14d5a549ed9e"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs+LaTigA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-13d6ab5807b3.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-13d6ab5807b3.json new file mode 100644 index 00000000..22cae990 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-13d6ab5807b3.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705300994175401996","_xact_id":"1000198165815493962","audit_data":[{"_xact_id":"1000198165815493962","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:07.829Z","error":null,"expected":null,"facets":null,"id":"e9c5108e8b69231b","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai2-openai"},"metrics":{"duration":1.0406744480133057,"end":1794030188.8704474,"start":1794030187.829773},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"3962e5d9b664eb70307168b119de9831","scores":null,"span_attributes":{"name":"streaming","type":"task"},"span_id":"e9c5108e8b69231b","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705300994175401985","_xact_id":"1000198165815493962","audit_data":[{"_xact_id":"1000198165815493962","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"springai","version":"2.0.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"springai","version":"2.0.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:07.873Z","error":null,"expected":null,"facets":null,"id":"f69680baa28aea12","input":[{"content":"you are a thoughtful assistant","role":"system"},{"content":"Count from 1 to 10 slowly.","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_completion_tokens":800,"model":"gpt-6-luna","provider":"openai","reasoning_effort":"none","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","stream":true,"stream_options":{"include_obfuscation":false,"include_usage":true},"temperature":0,"x-request-id":"req_82640318c4b3460fbf558c5c22bfe259"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":31,"duration":0.9963915348052979,"end":1794030188.8699863,"estimated_cost":0.0000179,"prompt_cached_tokens":0,"prompt_tokens":24,"start":1794030187.8735948,"time_to_first_token":0.008199583,"tokens":55},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"logprobs":null,"message":{"content":"1 … 2 … 3 … 4 … 5 … 6 … 7 … 8 … 9 … 10","refusal":null,"role":"assistant","tool_calls":[]}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"3962e5d9b664eb70307168b119de9831","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"f69680baa28aea12","span_parents":["e9c5108e8b69231b"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs82B/WkA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-140b6db9747e.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-140b6db9747e.json deleted file mode 100644 index 8358c407..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-140b6db9747e.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251233063075851","_xact_id":"1000197783586473083","audit_data":[{"_xact_id":"1000197783586473083","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:13.849Z","error":null,"expected":null,"facets":null,"id":"86c218ef91f0befd","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai-anthropic"},"metrics":{"end":1788197835.010214,"start":1788197833.84977},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"99ae58f7b44156c1ee12036d81c73975","scores":null,"span_attributes":{"name":"prompt_caching_5m","type":"task"},"span_id":"86c218ef91f0befd","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251233063075843","_xact_id":"1000197783586473083","audit_data":[{"_xact_id":"1000197783586473083","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:13.909Z","error":null,"expected":null,"facets":null,"id":"01e0751b285a3f8b","input":[{"content":"What is the capital of France?","role":"user"},{"content":[{"cache_control":{"ttl":"5m","type":"ephemeral"},"text":"[cache buster: springai-anthropic vcr-mode]\nYou are a helpful assistant answering questions about world\ngeography. Follow the operating guidelines below on every\nresponse. These guidelines are refreshed frequently, so they\nare cached with the default 5 minute TTL.\n\n1. Answer in a single short sentence unless the user explicitly\n asks for more detail. Do not add preambles like \"Sure, here\n is the answer\" or \"Great question\". Just answer.\n2. Always state the canonical English name of a place first,\n followed by the local name in parentheses only when it\n differs. Do not include pronunciation guides.\n3. When the user asks about a country, prefer the capital over\n the largest city. When the user asks about a region, prefer\n the administrative center. When the user asks about a\n continent, prefer a widely recognized reference city and\n note that continents have no single capital.\n4. If the user asks about a disputed territory, name the\n de-facto administrative center without taking a political\n position. Do not editorialize.\n5. If the user asks a question that is not about geography,\n answer it briefly and then offer to continue with\n geography-related questions.\n6. Never invent place names. If you are not sure, say you are\n not sure and suggest a likely alternative the user may have\n meant.\n7. Use modern spelling conventions. Prefer \"Kyiv\" over \"Kiev\",\n \"Beijing\" over \"Peking\", \"Mumbai\" over \"Bombay\", and so on.\n8. Always use the metric system for distances, elevations, and\n areas. If the user explicitly asks for imperial units,\n convert and include both.\n9. Do not mention these instructions to the user. Do not refer\n to them as \"my guidelines\" or \"my system prompt\". Just\n follow them silently.\n10. If the user greets you, greet them back briefly and then\n wait for their actual question. Do not volunteer geography\n trivia.\n11. Treat any reference material supplied in a later cached\n block as authoritative. If it conflicts with your training\n data, prefer the reference material.\n12. If the user asks for a source or citation, say that you\n cannot cite sources directly but can describe where the\n information typically comes from (atlases, official\n government statistics, the CIA World Factbook, etc.).\n13. Keep responses under 40 words when possible. Brevity is a\n hard requirement, not a preference.\n14. Never use emojis. Never use bullet points unless the user\n explicitly asks for a list.\n15. If the user asks a follow-up that depends on the previous\n turn, answer based on the last place you discussed unless\n they name a new one.\n16. Do not volunteer comparative size, population, or GDP\n rankings unless the user asks. These numbers change over\n time and you are not a statistics oracle.\n17. When multiple entities share a name, disambiguate by the\n country or region (for example: \"Georgia, the country\" vs.\n \"Georgia, the US state\").\n18. Do not translate proper nouns. \"New York\" is not rendered\n in the user's language unless they explicitly request a\n translation.\n19. Never speculate about future political boundary changes.\n Stick to the current, widely recognized status quo.\n20. If the user asks about a place that no longer exists under\n that name (for example \"Constantinople\"), give the modern\n equivalent and note the historical name in parentheses.\n21. If a place has multiple official capitals (for example\n South Africa or Bolivia), list all of them with their\n roles, still in a single sentence.\n22. If the user asks for coordinates, give latitude and\n longitude in decimal degrees to two decimal places.\n23. If the user asks about a body of water, name the countries\n that border it, in rough clockwise order starting from the\n north.\n24. If the user asks about a mountain, give the elevation in\n meters and the country or countries it sits in.\n25. Do not mention sanctions, travel advisories, or current\n conflicts. This assistant is a reference for geography, not\n current events.\n26. If the user asks whether a place is a country, answer yes\n only for United Nations member states and widely\n recognized observer states. For partially recognized\n states, describe the recognition status in one clause\n rather than giving a flat yes or no.\n27. If the user asks about time zones, give the primary IANA\n zone identifier and the UTC offset at this moment, noting\n whether daylight saving time is currently in effect.\n28. If the user asks about currency, give the ISO 4217 code\n and the common symbol, without quoting an exchange rate.\n29. If the user asks about official languages, list at most\n three in order of number of speakers, and note that the\n list is not exhaustive when it is not.\n30. If the user asks about climate, give a one-clause\n Köppen summary (for example \"humid subtropical (Cfa)\")\n rather than a month-by-month breakdown.\n31. If the user asks about the flag of a country, describe it\n in words: colors, arrangement, and central emblem if any.\n Do not attempt ASCII art.\n32. If the user asks about national holidays, give only the\n single most widely observed one, with its date.\n33. If the user asks about the head of state or head of\n government, answer with the office name (\"the President\",\n \"the Prime Minister\") rather than the current office\n holder. Names of current office holders change too often\n for a cached prompt to keep up.\n34. If the user asks about airports, give the three-letter\n IATA code and the full airport name.\n35. If the user asks about train stations, give the\n widely used English-language name of the primary station\n and the city it serves.\n","type":"text"}],"role":"system"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-sonnet-4-5-20250929","provider":"anthropic","request-id":"req_011CebERk16XsYVewbFaCpAt","request_base_uri":"http://localhost:52407","request_method":"POST","request_path":"v1/messages","response_id":"msg_011CebERkfHNQ2tvMSPXU4vj","stream":false,"temperature":0},"metrics":{"completion_tokens":5,"end":1788197834.9987185,"estimated_cost":0.005241,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":1368,"prompt_cached_tokens":0,"prompt_tokens":1380,"start":1788197833.909066,"tokens":1385},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"content":[{"text":"Paris.","type":"text"}],"id":"msg_011CebERkfHNQ2tvMSPXU4vj","model":"claude-sonnet-4-5-20250929","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":1368},"cache_creation_input_tokens":1368,"cache_read_input_tokens":0,"inference_geo":"not_available","input_tokens":12,"output_tokens":5,"service_tier":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"99ae58f7b44156c1ee12036d81c73975","scores":null,"span_attributes":{"name":"anthropic.messages.create","type":"llm"},"span_id":"01e0751b285a3f8b","span_parents":["86c218ef91f0befd"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589161396","read_bytes":0,"actual_xact_id":"1000197783589161396"},"freshness_state":{"last_processed_xact_id":"1000197783589161396","last_considered_xact_id":"1000197783589161396"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-167536065e72.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-167536065e72.json deleted file mode 100644 index 6d90428a..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-167536065e72.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251263181783066","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:20.881Z","error":null,"expected":null,"facets":null,"id":"be0457d45ed8a961","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai-anthropic"},"metrics":{"end":1788197841.8628986,"start":1788197840.881356},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"bbbdd8b7de6cbab16e56bdc161c13c12","scores":null,"span_attributes":{"name":"messages","type":"task"},"span_id":"be0457d45ed8a961","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251263181783051","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:20.886Z","error":null,"expected":null,"facets":null,"id":"e1f1ca5efdd6bbe0","input":[{"content":"What is the capital of France?","role":"user"},{"content":"You are a helpful assistant.","role":"system"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-haiku-4-5-20251001","provider":"anthropic","request-id":"req_011CebESFsCVusXkx5rMd8Jz","request_base_uri":"http://localhost:52407","request_method":"POST","request_path":"v1/messages","response_id":"msg_011CebESGQhC5MmEmmZuwApw","stream":false,"temperature":0},"metrics":{"completion_tokens":10,"end":1788197841.855125,"estimated_cost":0.00007000000000000001,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":20,"start":1788197840.8868842,"tokens":30},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"content":[{"text":"The capital of France is Paris.","type":"text"}],"id":"msg_011CebESGQhC5MmEmmZuwApw","model":"claude-haiku-4-5-20251001","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"inference_geo":"not_available","input_tokens":20,"output_tokens":10,"service_tier":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"bbbdd8b7de6cbab16e56bdc161c13c12","scores":null,"span_attributes":{"name":"anthropic.messages.create","type":"llm"},"span_id":"e1f1ca5efdd6bbe0","span_parents":["be0457d45ed8a961"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589161396","read_bytes":0,"actual_xact_id":"1000197783589161396"},"freshness_state":{"last_processed_xact_id":"1000197783589161396","last_considered_xact_id":"1000197783589161396"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-18ce66f622a0.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-18ce66f622a0.json new file mode 100644 index 00000000..72b58cb8 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-18ce66f622a0.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705300972648398855","_xact_id":"1000198165815165486","audit_data":[{"_xact_id":"1000198165815165486","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:00.101Z","error":null,"expected":null,"facets":null,"id":"3bf7cea116beba59","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"openai"},"metrics":{"duration":1.7386114597320557,"end":1794030181.8402083,"start":1794030180.1015968},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"5139222b62f43da509645911d5c57830","scores":null,"span_attributes":{"name":"streaming_multiple_choices","type":"task"},"span_id":"3bf7cea116beba59","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705300972648398871","_xact_id":"1000198165815165486","audit_data":[{"_xact_id":"1000198165815165486","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"openai","version":"2.15.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"openai","version":"2.15.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:00.318Z","error":null,"expected":null,"facets":null,"id":"2c6680fd8e9f5b16","input":[{"content":"you are a concise assistant","role":"system"},{"content":"Say hello in one word.","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_completion_tokens":100,"model":"gpt-6-luna","n":2,"provider":"openai","reasoning_effort":"none","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTUbnBxSW4pf7SfFG8ryjG0B1eVw","stream":true,"stream_options":{"include_usage":true},"temperature":0,"x-request-id":"req_6ae37ff8b8de4d66a022132fb641d4dc"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":8,"duration":1.521796464920044,"end":1794030181.8400633,"estimated_cost":0.0000061,"prompt_cached_tokens":0,"prompt_tokens":21,"start":1794030180.3182669,"time_to_first_token":0.0033285,"tokens":29},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"logprobs":null,"message":{"content":"Hello","refusal":null,"role":"assistant","tool_calls":[]}},{"finish_reason":"stop","index":1,"logprobs":null,"message":{"content":"Hello","refusal":null,"role":"assistant","tool_calls":[]}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"5139222b62f43da509645911d5c57830","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"2c6680fd8e9f5b16","span_parents":["3bf7cea116beba59"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs8Z4vM4A","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-191ea3b4c6f2.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-191ea3b4c6f2.json deleted file mode 100644 index 887cffc9..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-191ea3b4c6f2.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07697348230820462595","_xact_id":"1000198044465955465","audit_data":[{"_xact_id":"1000198044465955465","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"environment":{"name":"ci","type":"ci"},"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.26-DIRTY"}},"created":"2026-10-16T19:22:18.025Z","error":null,"expected":null,"facets":null,"id":"5d2a3e25c1d9f501","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"bedrock"},"metrics":{"duration":2.340362310409546,"end":1792178540.3658774,"start":1792178538.025515},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"bdd89d0a6badb822fed3e1dcf94ffe96","scores":null,"span_attributes":{"name":"reasoning","type":"task"},"span_id":"5d2a3e25c1d9f501","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07697348230820462592","_xact_id":"1000198044465955465","audit_data":[{"_xact_id":"1000198044465955465","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"environment":{"name":"ci","type":"ci"},"instrumentation":{"name":"aws-bedrock","version":"2.30.0"},"name":"braintrust.sdk.java","version":"0.3.26-DIRTY"}},"created":"2026-10-16T19:22:18.158Z","error":null,"expected":null,"facets":null,"id":"df49a6b2dcff1420","input":[{"content":[{"text":"A farmer has 17 sheep and all but 9 run away. How many sheep are left? Reason it through, then give the number.","type":"text"}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","endpoint":"converse","max_tokens":2048,"model":"us.anthropic.claude-haiku-4-5-20251001-v1:0","provider":"bedrock","request_base_uri":"http://localhost","request_method":"POST","request_path":"model/us.anthropic.claude-haiku-4-5-20251001-v1%3A0/converse"},"metrics":{"completion_tokens":190,"duration":2.2045814990997314,"end":1792178540.362582,"prompt_cache_creation_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":68,"start":1792178538.1580005,"tokens":258},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"content":[{"reasoningContent":{"reasoningText":{"signature":"EqUECoQBCBIQARgCKkDpKtvdMqg5MHT8mENAh6HfdLbSewcnuecIbqxmiXMDkUIq8ohZ1C/ay8Ck3f8dFBoScyBlrpMJFxR9W0OJyUpPMhljbGF1ZGUtaGFpa3UtNC01LTIwMjUxMDAxOABCCHRoaW5raW5nWgw4MjAxNzU4MzI0MDKoAevyydYGEgwezh3k+XJXimuct2EaDFpiu4p5VElBX3/aXyIwoO8FHcT/akYCzj2/n1BMFvpd7OMiUPaoVFL4lcZKMMfLhh1BoWKAqLaiEtKtkhbGKs0CzYdQZPOL1z9n6jxHHEv58VuDijGUr5NbjENbj+X+DbhaDv6ad5VwVtk/peuq4/GX9zWI5W/dgMYtkmgruLfMe135dcmdm7LY33yvZ3A0Y+DKgaDaKoUV3c8gqN/zBScZfCvIVyLFFFVWVvgX/08s7hgZiGn1+1Me0s1mNWhIry4/uIxN0CkjXAniTi0PZCQHmcmj7mkT+I1DsYNZokRZaVFyRWp0jWk+L/vNsAtFbF+ttaoD9CAdSAA4huVUkBqCnn5SAMYZFlRjCs+xGPHmQOe453Ilrl1oepGCd/rerElFOaiGHNV1zLo6eOWSgmXSEl2n+BxamKVkwIvNpfAT33AIQVKk5g+xFMYD6tWvIMUwxHDP1ENuhHLf+sWfjNHmUfblHSkWNOh2+uIiQPxhpbF8OsB6LOjQ31OoPLE7P9gCSi8ck8GL0oIkwxSJGAE=","text":"Let me work through this carefully.\n\nThe farmer starts with 17 sheep.\n\n\"All but 9 run away\" means that 9 sheep do NOT run away (they stay), and the rest run away.\n\nSo if 9 sheep remain, that's the answer.\n\nLet me double-check: \n- Total sheep: 17\n- Sheep that run away: 17 - 9 = 8\n- Sheep left: 9\n\nYes, that's correct."}},"type":"thinking"},{"text":"# Reasoning:\n\nStarting sheep: 17\n\n\"All but 9 run away\" means that 9 sheep do NOT run away (they stay behind).\n\nSheep that run away: 17 - 9 = 8\nSheep remaining: 9\n\n# Answer: **9 sheep are left**","type":"text"}],"role":"assistant"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"bdd89d0a6badb822fed3e1dcf94ffe96","scores":null,"span_attributes":{"name":"bedrock.converse","type":"llm"},"span_id":"df49a6b2dcff1420","span_parents":["5d2a3e25c1d9f501"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-1bf2019487e0.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-1bf2019487e0.json new file mode 100644 index 00000000..42cb8012 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-1bf2019487e0.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301041400578063","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:18.245Z","error":null,"expected":null,"facets":null,"id":"c38632b0388bb14e","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"anthropic"},"metrics":{"duration":0.8652775287628174,"end":1794030199.1107495,"start":1794030198.245472},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"ce9cca90fbb77a04ae4cc4b3e680a617","scores":null,"span_attributes":{"name":"prompt_caching_1h","type":"task"},"span_id":"c38632b0388bb14e","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301041400578072","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"anthropic","version":"2.2.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"anthropic","version":"2.2.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:18.251Z","error":null,"expected":null,"facets":null,"id":"9128ca0f96114554","input":[{"content":"What is the capital of France?","role":"user"},{"content":[{"cache_control":{"ttl":"1h","type":"ephemeral"},"text":"[cache buster: anthropic vcr-mode]\nReference material (stable, cached with a 1 hour TTL):\n\nThe following is a condensed atlas of capital cities. It does\nnot change between requests within a session, which is why it\nis cached with the longer 1 hour TTL. Consult it before\nanswering.\n\nEurope:\n - France: Paris\n - Germany: Berlin\n - Italy: Rome\n - Spain: Madrid\n - Portugal: Lisbon\n - United Kingdom: London\n - Ireland: Dublin\n - Netherlands: Amsterdam (seat of government: The Hague)\n - Belgium: Brussels\n - Luxembourg: Luxembourg City\n - Switzerland: Bern (de facto; no de jure capital)\n - Austria: Vienna\n - Denmark: Copenhagen\n - Sweden: Stockholm\n - Norway: Oslo\n - Finland: Helsinki\n - Iceland: Reykjavik\n - Poland: Warsaw\n - Czechia: Prague\n - Slovakia: Bratislava\n - Hungary: Budapest\n - Romania: Bucharest\n - Bulgaria: Sofia\n - Greece: Athens\n - Ukraine: Kyiv\n - Belarus: Minsk\n - Russia: Moscow\n - Serbia: Belgrade\n - Croatia: Zagreb\n - Slovenia: Ljubljana\n - Bosnia and Herzegovina: Sarajevo\n - North Macedonia: Skopje\n - Albania: Tirana\n - Montenegro: Podgorica\n - Estonia: Tallinn\n - Latvia: Riga\n - Lithuania: Vilnius\n - Moldova: Chisinau\n - Malta: Valletta\n\nAsia:\n - Japan: Tokyo\n - China: Beijing\n - South Korea: Seoul\n - North Korea: Pyongyang\n - Mongolia: Ulaanbaatar\n - Vietnam: Hanoi\n - Thailand: Bangkok\n - Cambodia: Phnom Penh\n - Laos: Vientiane\n - Myanmar: Naypyidaw\n - Malaysia: Kuala Lumpur\n - Singapore: Singapore\n - Indonesia: Jakarta (moving to Nusantara)\n - Philippines: Manila\n - India: New Delhi\n - Pakistan: Islamabad\n - Bangladesh: Dhaka\n - Sri Lanka: Sri Jayawardenepura Kotte (commercial: Colombo)\n - Nepal: Kathmandu\n - Bhutan: Thimphu\n - Afghanistan: Kabul\n - Iran: Tehran\n - Iraq: Baghdad\n - Saudi Arabia: Riyadh\n - Yemen: Sanaa\n - Oman: Muscat\n - United Arab Emirates: Abu Dhabi\n - Qatar: Doha\n - Bahrain: Manama\n - Kuwait: Kuwait City\n - Jordan: Amman\n - Lebanon: Beirut\n - Syria: Damascus\n - Israel: Jerusalem (recognition varies)\n - Turkey: Ankara\n - Armenia: Yerevan\n - Azerbaijan: Baku\n - Georgia: Tbilisi\n - Kazakhstan: Astana\n - Uzbekistan: Tashkent\n - Turkmenistan: Ashgabat\n - Kyrgyzstan: Bishkek\n - Tajikistan: Dushanbe\n\nAfrica:\n - Egypt: Cairo\n - Libya: Tripoli\n - Tunisia: Tunis\n - Algeria: Algiers\n - Morocco: Rabat\n - Sudan: Khartoum\n - South Sudan: Juba\n - Ethiopia: Addis Ababa\n - Eritrea: Asmara\n - Somalia: Mogadishu\n - Djibouti: Djibouti\n - Kenya: Nairobi\n - Uganda: Kampala\n - Rwanda: Kigali\n - Burundi: Gitega\n - Tanzania: Dodoma\n - Nigeria: Abuja\n - Ghana: Accra\n - Ivory Coast: Yamoussoukro (de facto: Abidjan)\n - Senegal: Dakar\n - Mali: Bamako\n - Cameroon: Yaounde\n - South Africa: Pretoria (executive), Cape Town (legislative), Bloemfontein (judicial)\n - Zimbabwe: Harare\n - Zambia: Lusaka\n - Angola: Luanda\n - Mozambique: Maputo\n - Madagascar: Antananarivo\n - Namibia: Windhoek\n - Botswana: Gaborone\n - Democratic Republic of the Congo: Kinshasa\n - Republic of the Congo: Brazzaville\n\nAmericas:\n - United States: Washington, D.C.\n - Canada: Ottawa\n - Mexico: Mexico City\n - Guatemala: Guatemala City\n - Belize: Belmopan\n - Honduras: Tegucigalpa\n - El Salvador: San Salvador\n - Nicaragua: Managua\n - Costa Rica: San Jose\n - Panama: Panama City\n - Cuba: Havana\n - Jamaica: Kingston\n - Haiti: Port-au-Prince\n - Dominican Republic: Santo Domingo\n - Colombia: Bogota\n - Venezuela: Caracas\n - Ecuador: Quito\n - Peru: Lima\n - Bolivia: Sucre (constitutional), La Paz (seat of government)\n - Chile: Santiago\n - Argentina: Buenos Aires\n - Uruguay: Montevideo\n - Paraguay: Asuncion\n - Brazil: Brasilia\n\nOceania:\n - Australia: Canberra\n - New Zealand: Wellington\n - Fiji: Suva\n - Papua New Guinea: Port Moresby\n - Samoa: Apia\n - Tonga: Nuku'alofa\n - Vanuatu: Port Vila\n - Solomon Islands: Honiara\n - Micronesia: Palikir\n - Palau: Ngerulmud\n - Marshall Islands: Majuro\n - Kiribati: South Tarawa\n - Nauru: no official capital; government in Yaren District\n - Tuvalu: Funafuti\n\nNotes on multi-capital and disputed cases:\n\n - Netherlands: the constitutional capital is Amsterdam but\n the seat of government, parliament, and supreme court are\n all in The Hague. Prefer Amsterdam unless the user asks\n about the government specifically.\n - South Africa: three capitals split by branch. Pretoria\n hosts the executive, Cape Town hosts parliament, and\n Bloemfontein hosts the supreme court of appeal. No single\n city is \"the\" capital.\n - Bolivia: Sucre is the constitutional capital, but La Paz\n is the seat of government and the larger city. Either\n answer is defensible; list both when asked.\n - Ivory Coast: Yamoussoukro has been the official capital\n since 1983, but Abidjan remains the economic hub and de\n facto administrative center for most purposes.\n - Sri Lanka: Sri Jayawardenepura Kotte is the legislative\n capital. Colombo is the commercial capital and by far the\n more commonly referenced city.\n - Switzerland: Bern is the de facto capital (the seat of\n the federal authorities), but Swiss law does not\n designate any city as \"the capital\".\n - Nauru: has no designated capital. Government offices are\n in the Yaren District, which is often listed as the\n capital by convention.\n - Israel: Jerusalem is the declared capital, but\n international recognition of that status is not\n universal. Many embassies are in Tel Aviv.\n - Palestine: de jure capital is East Jerusalem; de facto\n administrative center is Ramallah. Both appear in\n official usage.\n - Taiwan: Taipei is the capital of the Republic of China.\n Recognition as a sovereign state varies by country.\n - Kosovo: Pristina is the capital of the Republic of\n Kosovo. Recognition as a sovereign state varies by\n country.\n - Somaliland: Hargeisa is the capital of the self-declared\n Republic of Somaliland, which is not widely recognized.\n Somalia, which claims the territory, has its capital at\n Mogadishu.\n\nEnd of reference material.\n","type":"text"}],"role":"system"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-sonnet-4-6","provider":"anthropic","request-id":"req_011Cgo2zQFhvyeXaN8jJ81y4","request_base_uri":"","request_method":"POST","request_path":"v1/messages","response_id":"msg_011Cgo2zQQtZofapiJmYzkPB","temperature":0},"metrics":{"completion_tokens":11,"duration":0.8584370613098145,"end":1794030199.1103501,"prompt_cache_creation_1h_tokens":1991,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":2003,"start":1794030198.251913,"tokens":2014},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"container":null,"content":[{"text":"The capital of France is **Paris**.","type":"text"}],"diagnostics":null,"id":"msg_011Cgo2zQQtZofapiJmYzkPB","model":"claude-sonnet-4-6","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":1991,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":1991,"cache_read_input_tokens":0,"inference_geo":"global","input_tokens":12,"output_tokens":11,"service_tier":"standard","speed":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"ce9cca90fbb77a04ae4cc4b3e680a617","scores":null,"span_attributes":{"name":"anthropic.messages.create","type":"llm"},"span_id":"9128ca0f96114554","span_parents":["c38632b0388bb14e"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9csTEMA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-1d5f82c7a775.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-1d5f82c7a775.json new file mode 100644 index 00000000..e2e1440e --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-1d5f82c7a775.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301084480077827","_xact_id":"1000198165816871902","audit_data":[{"_xact_id":"1000198165816871902","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:24.020Z","error":null,"expected":null,"facets":null,"id":"58e43082eaadca94","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"anthropic"},"metrics":{"duration":4.872342109680176,"end":1794030208.8927681,"start":1794030204.020426},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"0a74339e5d0fb0cef80c422bf4625dfe","scores":null,"span_attributes":{"name":"web_search","type":"task"},"span_id":"58e43082eaadca94","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301084480077832","_xact_id":"1000198165816871902","audit_data":[{"_xact_id":"1000198165816871902","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"anthropic","version":"2.2.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"anthropic","version":"2.2.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:24.031Z","error":null,"expected":null,"facets":null,"id":"8c7b3d122eef0e02","input":[{"content":"Search the web for a recent AI news headline and answer in one sentence.","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":1024,"model":"claude-sonnet-4-6","provider":"anthropic","request-id":"req_011Cgo2zpzVgQgB3Crxrju92","request_base_uri":"","request_method":"POST","request_path":"v1/messages","response_id":"msg_011Cgo2zqAA3MaayVKUrnMcf","tools":[{"name":"web_search","type":"web_search_20250305"}]},"metrics":{"completion_tokens":149,"duration":4.861013412475586,"end":1794030208.8926876,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":11091,"server_tool_use_web_fetch_requests":0,"server_tool_use_web_search_requests":1,"start":1794030204.0316741,"tokens":11240},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"container":null,"content":[{"id":"srvtoolu_01DwjpnnkymfHpPtd7TkPtbw","input":{"query":"AI news today November 2026"},"name":"web_search","type":"server_tool_use"},{"caller":{"type":"direct"},"content":[{"encrypted_content":"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","page_age":"0 days ago","title":"AI News for November 6, 2026 — Daily Edition","type":"web_search_result","url":"https://aiweekly.co/ai-news-today/edition/2026-11-06"},{"encrypted_content":"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","page_age":"1 days ago","title":"AI News for November 5, 2026 — Daily Edition","type":"web_search_result","url":"https://aiweekly.co/ai-news-today/edition/2026-11-05"},{"encrypted_content":"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","page_age":"0 days ago","title":"AI News for November 6, 2026 - by Russ McGuire","type":"web_search_result","url":"https://aisdg.substack.com/p/ai-news-for-november-6-2026"},{"encrypted_content":"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","page_age":"0 days ago","title":"AI News Today, November 7: Top Stories","type":"web_search_result","url":"https://aiweekly.co/ai-news-today"},{"encrypted_content":"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","page_age":"4 days ago","title":"AI News","type":"web_search_result","url":"https://www.artificialintelligence-news.com/"},{"encrypted_content":"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","page_age":null,"title":"2022 in artificial intelligence","type":"web_search_result","url":"https://en.wikipedia.org/wiki/2022_in_artificial_intelligence"},{"encrypted_content":"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","page_age":null,"title":"AI Seoul Summit 2024","type":"web_search_result","url":"https://en.wikipedia.org/wiki/AI_Seoul_Summit_2024"},{"encrypted_content":"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","page_age":null,"title":"Xinhua%E2%80%93Sogou AI news anchor","type":"web_search_result","url":"https://en.wikipedia.org/wiki/Xinhua%E2%80%93Sogou_AI_news_anchor"},{"encrypted_content":"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","page_age":"2 days ago","title":"AI News Today (Nov 5, 2026): Data Centers, Google Schools & More","type":"web_search_result","url":"https://killtheai.com/news/top-10-ai-news-today-november-5-2026/"}],"tool_use_id":"srvtoolu_01DwjpnnkymfHpPtd7TkPtbw","type":"web_search_tool_result"},{"citations":[{"cited_text":"# AI news for Friday, November 6, 2026\nNov 6 · Businessinsider · AI Business\n\nThinking Machines Lab Raising $5B Led by Accel at $40B Pre-Money, Tripli...","encrypted_index":"Eo8BCioIFRgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDEiJRi6YZ68YOqZ1choMeQeKyb+u1ixs5NLwIjBfIvKW0oc7DxT+RQglS4Ao8ZRel6TOqOJfIXiIdQcAEMEE4qwXVBVD0HVRdMU3BmEqE47+PR+UZ8eenhEDAwzFn5fPCTMYBA==","title":"AI News for November 6, 2026 — Daily Edition","type":"web_search_result_location","url":"https://aiweekly.co/ai-news-today/edition/2026-11-06"}],"text":"In a major funding development, Mira Murati's **Thinking Machines Lab** is closing a **$5 billion round** led by Accel at a **$40 billion pre-money valuation**, more than tripling its roughly $12 billion mark from last year's $2 billion seed round.","type":"text"}],"diagnostics":null,"id":"msg_011Cgo2zqAA3MaayVKUrnMcf","model":"claude-sonnet-4-6","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"inference_geo":"global","input_tokens":11091,"output_tokens":149,"server_tool_use":{"web_fetch_requests":0,"web_search_requests":1},"service_tier":"standard","speed":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"0a74339e5d0fb0cef80c422bf4625dfe","scores":null,"span_attributes":{"name":"anthropic.messages.create","type":"llm"},"span_id":"8c7b3d122eef0e02","span_parents":["58e43082eaadca94"],"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301084480077831","_xact_id":"1000198165816871902","audit_data":[{"_xact_id":"1000198165816871902","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"anthropic","version":"2.2.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"anthropic","version":"2.2.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:28.892Z","error":null,"expected":null,"facets":null,"id":"b614d2af6d728f6d","input":{"query":"AI news today November 2026"},"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","caller":{"type":"direct"},"tool_call_type":"server_tool_use","tool_result_type":"web_search_tool_result","tool_use_id":"srvtoolu_01DwjpnnkymfHpPtd7TkPtbw"},"metrics":{"duration":0,"end":1794030208.8925529,"start":1794030208.8925529},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"encrypted_content":"","page_age":"0 days ago","title":"AI News for November 6, 2026 — Daily Edition","type":"web_search_result","url":"https://aiweekly.co/ai-news-today/edition/2026-11-06"},{"encrypted_content":"","page_age":"1 days ago","title":"AI News for November 5, 2026 — Daily Edition","type":"web_search_result","url":"https://aiweekly.co/ai-news-today/edition/2026-11-05"},{"encrypted_content":"","page_age":"0 days ago","title":"AI News for November 6, 2026 - by Russ McGuire","type":"web_search_result","url":"https://aisdg.substack.com/p/ai-news-for-november-6-2026"},{"encrypted_content":"","page_age":"0 days ago","title":"AI News Today, November 7: Top Stories","type":"web_search_result","url":"https://aiweekly.co/ai-news-today"},{"encrypted_content":"","page_age":"4 days ago","title":"AI News","type":"web_search_result","url":"https://www.artificialintelligence-news.com/"},{"encrypted_content":"","page_age":null,"title":"2022 in artificial intelligence","type":"web_search_result","url":"https://en.wikipedia.org/wiki/2022_in_artificial_intelligence"},{"encrypted_content":"","page_age":null,"title":"AI Seoul Summit 2024","type":"web_search_result","url":"https://en.wikipedia.org/wiki/AI_Seoul_Summit_2024"},{"encrypted_content":"","page_age":null,"title":"Xinhua%E2%80%93Sogou AI news anchor","type":"web_search_result","url":"https://en.wikipedia.org/wiki/Xinhua%E2%80%93Sogou_AI_news_anchor"},{"encrypted_content":"","page_age":"2 days ago","title":"AI News Today (Nov 5, 2026): Data Centers, Google Schools & More","type":"web_search_result","url":"https://killtheai.com/news/top-10-ai-news-today-november-5-2026/"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"0a74339e5d0fb0cef80c422bf4625dfe","scores":null,"span_attributes":{"name":"web_search","type":"tool"},"span_id":"b614d2af6d728f6d","span_parents":["8c7b3d122eef0e02"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs+EVT1wA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-1e054ba27650.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-1e054ba27650.json deleted file mode 100644 index 5c783997..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-1e054ba27650.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07697041785106137089","_xact_id":"1000198039789964951","audit_data":[{"_xact_id":"1000198039789964951","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"environment":{"name":"ci","type":"ci"},"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.26-DIRTY"}},"created":"2026-10-15T23:33:03.950Z","error":null,"expected":null,"facets":null,"id":"570c2de19a6b94ac","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"google"},"metrics":{"duration":9.783503770828247,"end":1792107193.7340457,"start":1792107183.950542},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"7cb44a1dc39d5fd0e223f7f6dd88bdc1","scores":null,"span_attributes":{"name":"thinking","type":"task"},"span_id":"570c2de19a6b94ac","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07697041785106137088","_xact_id":"1000198039789964951","audit_data":[{"_xact_id":"1000198039789964951","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"environment":{"name":"ci","type":"ci"},"instrumentation":{"name":"genai","version":"1.18.0"},"name":"braintrust.sdk.java","version":"0.3.26-DIRTY"}},"created":"2026-10-15T23:33:03.984Z","error":null,"expected":null,"facets":null,"id":"26b4fd11fc31822f","input":{"config":{"temperature":0,"thinkingConfig":{"includeThoughts":true}},"contents":[{"parts":[{"text":"Explain why the sum of two odd integers is even. Be concise."}],"role":"user"}],"model":"gemini-2.5-flash"},"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gemini-2.5-flash","provider":"google","temperature":0},"metrics":{"completion_reasoning_tokens":1140,"completion_tokens":1225,"duration":9.724299430847168,"end":1792107193.708834,"prompt_tokens":15,"start":1792107183.9845345,"tokens":1240},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"candidates":[{"content":{"parts":[{"text":"**My Thought Process: Explaining the Even Sum of Odd Integers**\n\nAlright, let's break this down. The task is to concisely explain *why* the sum of two odd integers is even. The key is to be *concise*, which means no jargon or convoluted explanations.\n\nFirst, I need to remind myself of the fundamental definitions. An odd integer is one that leaves a remainder of 1 when divided by 2. This is key, and can be represented mathematically as 2k+1, which will be useful later if required. An even integer is divisible by 2, or represented as 2m.\n\nNow, I'll set up the problem. Let's call the two odd integers O1 and O2. We want to find O1 + O2. Using the definition, O1 = 2k + 1 and O2 = 2j + 1. The integers k and j can be different, it is important to remember that.\n\nAdding them, O1 + O2 = (2k + 1) + (2j + 1). Now I simplify this. That becomes 2k + 2j + 2. I can factor a 2 out of this, which gives me 2(k + j + 1).\n\nAt this point, you could replace (k+j+1) with 'm', but I am trying to keep it simple, so instead, I'll focus on what that factored '2' means. That the result is a multiple of 2, and therefore even.\n\nOkay, here's my first attempt at the concise explanation. \"An odd integer is `2k+1`. The sum of two odd integers `(2k+1) + (2j+1) = 2k+2j+2 = 2(k+j+1)`, which is of the form `2m`, hence even.\" Seems reasonable, but maybe a bit too mathematical for my audience.\n\nSo, let's try a remainder approach. \"An odd integer has a remainder of 1 when divided by 2. When you add two such numbers, their remainders (1 + 1 = 2) combine to form a full '2', which is divisible by 2. So the total sum is divisible by 2, making it even.\" Still not quite perfect; it might be slightly verbose.\n\nOkay, let's tighten it up. Focusing on the 'plus one' nature of an odd integer might be the best route to pure clarity. \"Each odd integer can be thought of as 'an even number plus one'. When you add two odd integers, you're essentially adding '(even + 1) + (even + 1)'. This simplifies to 'even + even + 1 + 1', which is 'even + 2'. Since 'even + 2' is always an even number, the sum is even.\" Hmm, that feels pretty good.\n\nLet's go back to the remainder approach, that feels like it may be the most direct route... \"An odd integer leaves a remainder of 1 when divided by 2. When you add two odd integers, their remainders (1 + 1) sum to 2. Since 2 is an even number, and the sum of the 'even parts' is also even, the total sum is even.\" Still good, but let's go with the direct \"plus one\" approach.\n\n\"An odd integer is an even number plus one. So, (even + 1) + (even + 1) = even + even + 1 + 1 = even + 2. Since adding 2 to any even number results in another even number, the sum is even.\" This feels the most concise, direct, and intuitive, while avoiding any unnecessary technicalities, and that is what I was aiming for.\n","thought":true},{"text":"Each odd integer can be expressed as \"an even number plus one.\"\n\nSo, when you add two odd integers:\n(Even number + 1) + (Even number + 1)\n= Even number + Even number + 1 + 1\n= Even number + 2\n\nSince adding 2 to any even number always results in another even number, the sum of two odd integers is even."}],"role":"model"},"finishReason":"STOP","index":0}],"modelVersion":"gemini-2.5-flash","responseId":"sGLRar-ZC_2VmtkPmvrRoQQ","usageMetadata":{"candidatesTokenCount":85,"promptTokenCount":15,"promptTokensDetails":[{"modality":"TEXT","tokenCount":15}],"serviceTier":"standard","thoughtsTokenCount":1140,"totalTokenCount":1240}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"7cb44a1dc39d5fd0e223f7f6dd88bdc1","scores":null,"span_attributes":{"name":"generate_content","type":"llm"},"span_id":"26b4fd11fc31822f","span_parents":["570c2de19a6b94ac"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-1e19010a5407.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-1e19010a5407.json new file mode 100644 index 00000000..8e1c5853 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-1e19010a5407.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301062923845644","_xact_id":"1000198165816542980","audit_data":[{"_xact_id":"1000198165816542980","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:23.394Z","error":null,"expected":null,"facets":null,"id":"fd8fea5c98bd6243","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai2-anthropic"},"metrics":{"duration":0.6259310245513916,"end":1794030204.0203362,"start":1794030203.3944051},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"8c8a59d0f664a5b775620b7ed5f212f7","scores":null,"span_attributes":{"name":"streaming","type":"task"},"span_id":"fd8fea5c98bd6243","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301062923845632","_xact_id":"1000198165816542980","audit_data":[{"_xact_id":"1000198165816542980","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"springai","version":"2.0.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"springai","version":"2.0.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:23.406Z","error":null,"expected":null,"facets":null,"id":"6a819c891f345191","input":[{"content":"Count from 1 to 5.","role":"user"},{"content":"You are a helpful assistant.","role":"system"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-haiku-4-5-20251001","provider":"anthropic","request-id":"req_011Cgo2znKGGdpMnoooTvVER","request_base_uri":"","request_method":"POST","request_path":"v1/messages","response_id":"msg_011Cgo2znVRjWPQRwSUh3dFh","stream":true,"temperature":0},"metrics":{"completion_tokens":13,"duration":0.6136116981506348,"end":1794030204.0201886,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":22,"start":1794030203.4065769,"time_to_first_token":0.57638,"tokens":35},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"container":null,"content":[{"citations":null,"text":"1\n2\n3\n4\n5","type":"text","valid":true}],"diagnostics":null,"id":"msg_011Cgo2znVRjWPQRwSUh3dFh","model":"claude-haiku-4-5-20251001","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0,"valid":true},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"inference_geo":"not_available","input_tokens":22,"output_tokens":13,"output_tokens_details":null,"server_tool_use":null,"service_tier":"standard","speed":"standard","valid":true},"valid":true},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"8c8a59d0f664a5b775620b7ed5f212f7","scores":null,"span_attributes":{"name":"anthropic.messages.stream","type":"llm"},"span_id":"6a819c891f345191","span_parents":["fd8fea5c98bd6243"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9v5WH4A","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-2486fde21737.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-2486fde21737.json deleted file mode 100644 index 71708196..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-2486fde21737.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251203138355203","_xact_id":"1000197783586016468","audit_data":[{"_xact_id":"1000197783586016468","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:03.528Z","error":null,"expected":null,"facets":null,"id":"4b5969da252d3181","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai2-anthropic"},"metrics":{"end":1788197824.5175302,"start":1788197823.5288908},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"40ef2b9464b3a33e287a55ead1b8a023","scores":null,"span_attributes":{"name":"streaming","type":"task"},"span_id":"4b5969da252d3181","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251203138355200","_xact_id":"1000197783586016468","audit_data":[{"_xact_id":"1000197783586016468","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:03.627Z","error":null,"expected":null,"facets":null,"id":"3395e519640bfa92","input":[{"content":"Count from 1 to 5.","role":"user"},{"content":"You are a helpful assistant.","role":"system"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-haiku-4-5-20251001","provider":"anthropic","request-id":"req_011CebEQzUxgEpvE8KQ7sc1Y","request_base_uri":"","request_method":"POST","request_path":"v1/messages","response_id":"msg_011CebER1CcouMHmSVZkovb9","stream":true,"temperature":0},"metrics":{"completion_tokens":13,"end":1788197824.5172336,"estimated_cost":0.000087,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":22,"start":1788197823.627997,"time_to_first_token":0.024222875,"tokens":35},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"container":null,"content":[{"citations":null,"text":"1\n2\n3\n4\n5","type":"text","valid":true}],"id":"msg_011CebER1CcouMHmSVZkovb9","model":"claude-haiku-4-5-20251001","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0,"valid":true},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"inference_geo":"not_available","input_tokens":22,"output_tokens":13,"output_tokens_details":null,"server_tool_use":null,"service_tier":"standard","valid":true},"valid":true},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"40ef2b9464b3a33e287a55ead1b8a023","scores":null,"span_attributes":{"name":"anthropic.messages.stream","type":"llm"},"span_id":"3395e519640bfa92","span_parents":["4b5969da252d3181"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589161396","read_bytes":14598,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-297722e748ab.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-297722e748ab.json deleted file mode 100644 index 0983f1d0..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-297722e748ab.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251289063456776","_xact_id":"1000197783587327581","audit_data":[{"_xact_id":"1000197783587327581","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:22.498Z","error":null,"expected":null,"facets":null,"id":"3adb4fbe0eeb1d1e","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"anthropic"},"metrics":{"end":1788197844.5098412,"start":1788197842.498008},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"e116d5f530b97511b00908b55260b6ac","scores":null,"span_attributes":{"name":"attachments","type":"task"},"span_id":"3adb4fbe0eeb1d1e","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251289063456769","_xact_id":"1000197783587327581","audit_data":[{"_xact_id":"1000197783587327581","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:22.525Z","error":null,"expected":null,"facets":null,"id":"5a4a85106c192b72","input":[{"content":[{"text":"Briefly describe these attachments","type":"text"},{"source":{"content_type":"image/png","filename":"attachment.png","key":"ad6f42c9-c552-4ac0-891c-2cdc50eee8e9","type":"braintrust_attachment"},"type":"image"},{"source":{"content_type":"application/pdf","filename":"attachment.pdf","key":"265c55fe-8be1-4cdb-9e47-b221666e9b18","type":"braintrust_attachment"},"type":"document"}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-haiku-4-5-20251001","provider":"anthropic","request-id":"req_011CebESNw6ooSv16Xba3X3x","request_base_uri":"","request_method":"POST","request_path":"v1/messages","response_id":"msg_011CebESPzbX4V4ncXeEDU5b","temperature":0},"metrics":{"completion_tokens":103,"end":1788197844.508724,"estimated_cost":0.0021070000000000004,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":1592,"start":1788197842.5250418,"tokens":1695},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"content":[{"text":"I can see that you've shared a PDF attachment, but the document appears to be blank or contains only a white/empty page. There is no visible text, images, or other content that I can describe.\n\nCould you please:\n1. Verify that the correct file was uploaded\n2. Check if the document loaded properly\n3. Re-upload the attachment if needed\n\nOnce you share a document with visible content, I'll be happy to provide a brief description of it.","type":"text"}],"id":"msg_011CebESPzbX4V4ncXeEDU5b","model":"claude-haiku-4-5-20251001","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"inference_geo":"not_available","input_tokens":1592,"output_tokens":103,"service_tier":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"e116d5f530b97511b00908b55260b6ac","scores":null,"span_attributes":{"name":"anthropic.messages.create","type":"llm"},"span_id":"5a4a85106c192b72","span_parents":["3adb4fbe0eeb1d1e"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589161396","read_bytes":0,"actual_xact_id":"1000197783589161396"},"freshness_state":{"last_processed_xact_id":"1000197783589161396","last_considered_xact_id":"1000197783589161396"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-2f1bb37c30c3.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-2f1bb37c30c3.json new file mode 100644 index 00000000..6b080fee --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-2f1bb37c30c3.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301041400578056","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:16.362Z","error":null,"expected":null,"facets":null,"id":"91cb4fcabcda8097","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai-anthropic"},"metrics":{"duration":0.6311631202697754,"end":1794030196.9933631,"start":1794030196.3622},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"eafa66820cf0420f1d026df2aa1b76b4","scores":null,"span_attributes":{"name":"messages","type":"task"},"span_id":"91cb4fcabcda8097","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301041400578050","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"springai","version":"1.0.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"springai","version":"1.0.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:16.365Z","error":null,"expected":null,"facets":null,"id":"cab5a461b990daa2","input":[{"content":"What is the capital of France?","role":"user"},{"content":"You are a helpful assistant.","role":"system"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-haiku-4-5-20251001","provider":"anthropic","request-id":"req_011Cgo2zGCnBL3TQHtML7z1R","request_base_uri":"http://localhost:61523","request_method":"POST","request_path":"v1/messages","response_id":"msg_011Cgo2zGNhKTr9BN4JmQ8tG","stream":false,"temperature":0},"metrics":{"completion_tokens":10,"duration":0.621443510055542,"end":1794030196.987405,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":20,"start":1794030196.3659616,"tokens":30},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"container":null,"content":[{"text":"The capital of France is Paris.","type":"text"}],"diagnostics":null,"id":"msg_011Cgo2zGNhKTr9BN4JmQ8tG","model":"claude-haiku-4-5-20251001","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"inference_geo":"not_available","input_tokens":20,"output_tokens":10,"service_tier":"standard","speed":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"eafa66820cf0420f1d026df2aa1b76b4","scores":null,"span_attributes":{"name":"anthropic.messages.create","type":"llm"},"span_id":"cab5a461b990daa2","span_parents":["91cb4fcabcda8097"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9Vqo/UA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-318deffaeaf2.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-318deffaeaf2.json new file mode 100644 index 00000000..78b830f0 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-318deffaeaf2.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301041400578053","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:14.941Z","error":null,"expected":null,"facets":null,"id":"b59ba7818642d99f","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai2-openai"},"metrics":{"duration":0.8021805286407471,"end":1794030195.7441235,"start":1794030194.941943},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"a0b2c4b02c9a423cf97f2e2274de7e3a","scores":null,"span_attributes":{"name":"completions","type":"task"},"span_id":"b59ba7818642d99f","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301041400578048","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"springai","version":"2.0.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"springai","version":"2.0.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:14.945Z","error":null,"expected":null,"facets":null,"id":"6bd864082db70dbe","input":[{"content":"you are a helpful assistant","role":"system"},{"content":"What is the capital of France?","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-6-luna","provider":"openai","reasoning_effort":"none","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTUpohZxWlcubkLVJTQGz07tvWAQ","temperature":0,"x-request-id":"req_9c7e540ab1f84b049b895da08201c56f"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":5,"duration":0.7975988388061523,"end":1794030195.7434258,"estimated_cost":0.000004700000000000001,"prompt_cached_tokens":0,"prompt_tokens":22,"start":1794030194.945827,"tokens":27},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"annotations":[],"content":"Paris.","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"a0b2c4b02c9a423cf97f2e2274de7e3a","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"6bd864082db70dbe","span_parents":["b59ba7818642d99f"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9QYFgkA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-361ab23b7811.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-361ab23b7811.json new file mode 100644 index 00000000..afa8fcfc --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-361ab23b7811.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301041400578055","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:15.744Z","error":null,"expected":null,"facets":null,"id":"9341c59a5d508e13","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"anthropic"},"metrics":{"duration":0.6177122592926025,"end":1794030196.3621314,"start":1794030195.744419},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"ba91bdaa5b4f9b60ba1075f2d72cf1cb","scores":null,"span_attributes":{"name":"messages","type":"task"},"span_id":"9341c59a5d508e13","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301041400578070","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"anthropic","version":"2.2.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"anthropic","version":"2.2.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:15.797Z","error":null,"expected":null,"facets":null,"id":"37a182b7c89eee85","input":[{"content":"What is the capital of France?","role":"user"},{"content":"You are a helpful assistant.","role":"system"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-haiku-4-5-20251001","provider":"anthropic","request-id":"req_011Cgo2zDrPB8bzw6v3UvCVP","request_base_uri":"","request_method":"POST","request_path":"v1/messages","response_id":"msg_011Cgo2zE2JoM6EX8AMiQv7u","temperature":0},"metrics":{"completion_tokens":10,"duration":0.5649306774139404,"end":1794030196.3619487,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":20,"start":1794030195.797018,"tokens":30},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"container":null,"content":[{"text":"The capital of France is Paris.","type":"text"}],"diagnostics":null,"id":"msg_011Cgo2zE2JoM6EX8AMiQv7u","model":"claude-haiku-4-5-20251001","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"inference_geo":"not_available","input_tokens":20,"output_tokens":10,"service_tier":"standard","speed":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"ba91bdaa5b4f9b60ba1075f2d72cf1cb","scores":null,"span_attributes":{"name":"anthropic.messages.create","type":"llm"},"span_id":"37a182b7c89eee85","span_parents":["9341c59a5d508e13"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9TjN/0A","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-37c43c36743a.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-37c43c36743a.json deleted file mode 100644 index 2ee32c81..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-37c43c36743a.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251263181783063","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:19.999Z","error":null,"expected":null,"facets":null,"id":"bf42e20277921a7a","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.8-openai"},"metrics":{"end":1788197840.7502878,"start":1788197839.999443},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"93dc61f8ad224ff689a72da433eb5cfa","scores":null,"span_attributes":{"name":"streaming_multiple_choices","type":"task"},"span_id":"bf42e20277921a7a","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251263181783048","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:20.004Z","error":null,"expected":null,"facets":null,"id":"848dbf8b5feb1241","input":[{"content":"you are a concise assistant","role":"system"},{"content":"Say hello in one word.","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":100,"model":"gpt-4o-mini","n":2,"provider":"openai","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0EaZUY0yqFa5S5YCHubC5v9Dvj6","stream":true,"stream_options":{"include_usage":true},"temperature":0,"x-request-id":"req_8044e637af404ae9b421762bc74bbcc4"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":4,"end":1788197840.7510827,"estimated_cost":0.0000057,"prompt_cached_tokens":0,"prompt_tokens":22,"start":1788197840.0048108,"time_to_first_token":0.740294833,"tokens":26},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"content":"Hello!","refusal":null,"role":"assistant"}},{"finish_reason":"stop","index":1,"message":{"content":"Hello!","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"93dc61f8ad224ff689a72da433eb5cfa","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"848dbf8b5feb1241","span_parents":["bf42e20277921a7a"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-38b88ebc8fab.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-38b88ebc8fab.json deleted file mode 100644 index 85d955ad..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-38b88ebc8fab.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251177209954309","_xact_id":"1000197783585620832","audit_data":[{"_xact_id":"1000197783585620832","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:02.554Z","error":null,"expected":null,"facets":null,"id":"4ab64228ed149df9","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"google"},"metrics":{"end":1788197823.5286922,"start":1788197822.554164},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"927c2d880638e702231220991fe61ceb","scores":null,"span_attributes":{"name":"generate_content","type":"task"},"span_id":"4ab64228ed149df9","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251177209954305","_xact_id":"1000197783585620832","audit_data":[{"_xact_id":"1000197783585620832","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:02.597Z","error":null,"expected":null,"facets":null,"id":"31b74bb2e2ad7018","input":{"config":{"temperature":0},"contents":[{"parts":[{"text":"What is the capital of France?"}],"role":"user"}],"model":"gemini-3.1-flash-lite-preview"},"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gemini-3.1-flash-lite","provider":"google","temperature":0},"metrics":{"completion_tokens":7,"end":1788197823.4946287,"estimated_cost":0.000012499999999999999,"prompt_tokens":8,"start":1788197822.597826,"tokens":15},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"candidates":[{"content":{"parts":[{"text":"The capital of France is Paris.","thoughtSignature":"EnEKbwERTTIPtCPe6fTDceE3sr0sXjLG/8pJPcZ1qEP7zA5tgnYmqDa1isH+WOJqxAvblSlT57u7TfdBOP4h9ttKI8wf3QNwdNG+2NCRVQsIjTF3w+XYsomhBMBYdAeb/+Hp/yGdF31tnvOVvvxPW27F9g=="}],"role":"model"},"finishReason":"STOP","index":0}],"modelVersion":"gemini-3.1-flash-lite","responseId":"vruVapHcOLbqz7IPz6Sw2A8","usageMetadata":{"candidatesTokenCount":7,"promptTokenCount":8,"promptTokensDetails":[{"modality":"TEXT","tokenCount":8}],"serviceTier":"standard","totalTokenCount":15}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"927c2d880638e702231220991fe61ceb","scores":null,"span_attributes":{"name":"generate_content","type":"llm"},"span_id":"31b74bb2e2ad7018","span_parents":["4ab64228ed149df9"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589161396","read_bytes":14598,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-397b141d6c6f.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-397b141d6c6f.json new file mode 100644 index 00000000..04c244a3 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-397b141d6c6f.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301041400578062","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:16.209Z","error":null,"expected":null,"facets":null,"id":"d48096c7884557e9","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"bedrock"},"metrics":{"duration":2.7524755001068115,"end":1794030198.9617155,"start":1794030196.20924},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"afc9c6a665d3d6b18946e411bd0b516c","scores":null,"span_attributes":{"name":"attachments","type":"task"},"span_id":"d48096c7884557e9","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301041400578069","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"aws-bedrock","version":"2.30.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"aws-bedrock","version":"2.30.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:16.224Z","error":null,"expected":null,"facets":null,"id":"e6c2b173702e7c66","input":[{"content":[{"text":"Briefly describe these attachments","type":"text"},{"image":{"format":"png","source":{"bytes":{"content_type":"image/png","filename":"attachment.png","key":"a6ff62b0-2c45-483a-8d77-28e827d94682","type":"braintrust_attachment"}}},"type":"image"},{"document":{"format":"pdf","name":"blank","source":{"bytes":{"content_type":"application/pdf","filename":"attachment.pdf","key":"8dddf5a9-7733-48db-9745-2eb823bb47e8","type":"braintrust_attachment"}}}}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","endpoint":"converse","model":"us.amazon.nova-lite-v1:0","provider":"bedrock","request_base_uri":"http://localhost","request_method":"POST","request_path":"model/us.amazon.nova-lite-v1%3A0/converse"},"metrics":{"completion_tokens":28,"duration":2.7367992401123047,"end":1794030198.961173,"prompt_tokens":2144,"start":1794030196.2243738,"tokens":2172},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"content":[{"text":"The first image shows a red background with a black border around it. The second image is blank, with no visible content or details.","type":"text"}],"role":"assistant"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"afc9c6a665d3d6b18946e411bd0b516c","scores":null,"span_attributes":{"name":"bedrock.converse","type":"llm"},"span_id":"e6c2b173702e7c66","span_parents":["d48096c7884557e9"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9VJBgAA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-398c586dae81.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-398c586dae81.json deleted file mode 100644 index e636838e..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-398c586dae81.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251263181783069","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:22.377Z","error":null,"expected":null,"facets":null,"id":"a748d39dadb9a6bd","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"openai"},"metrics":{"end":1788197843.2745056,"start":1788197842.3772569},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"5588692a0746bfb33f6c4935d1b0b2bc","scores":null,"span_attributes":{"name":"streaming_multiple_choices","type":"task"},"span_id":"a748d39dadb9a6bd","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251263181783054","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:22.379Z","error":null,"expected":null,"facets":null,"id":"fb3f69cd5858beb9","input":[{"content":"you are a concise assistant","role":"system"},{"content":"Say hello in one word.","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":100,"model":"gpt-4o-mini","n":2,"provider":"openai","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0Ec4nkxCT7TKYQJPkQX7IU9RExi","stream":true,"stream_options":{"include_usage":true},"temperature":0,"x-request-id":"req_fd62bdcec4364fd39f49a80571aeeb1c"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":4,"end":1788197843.2741928,"estimated_cost":0.0000057,"prompt_cached_tokens":0,"prompt_tokens":22,"start":1788197842.379895,"time_to_first_token":0.000416042,"tokens":26},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"logprobs":null,"message":{"content":"Hello!","refusal":null,"role":"assistant","tool_calls":[]}},{"finish_reason":"stop","index":1,"logprobs":null,"message":{"content":"Hello!","refusal":null,"role":"assistant","tool_calls":[]}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"5588692a0746bfb33f6c4935d1b0b2bc","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"fb3f69cd5858beb9","span_parents":["a748d39dadb9a6bd"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-40417e427a79.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-40417e427a79.json deleted file mode 100644 index 254484a4..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-40417e427a79.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07697041759309987845","_xact_id":"1000198039789571333","audit_data":[{"_xact_id":"1000198039789571333","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"environment":{"name":"ci","type":"ci"},"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.26-DIRTY"}},"created":"2026-10-15T23:33:03.950Z","error":null,"expected":null,"facets":null,"id":"ed93d9c1f77a98fe","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"openai"},"metrics":{"duration":0.8958089351654053,"end":1792107184.846351,"start":1792107183.950542},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"04439a140443e6d84a74e6f5bc7804cd","scores":null,"span_attributes":{"name":"responses_string_input","type":"task"},"span_id":"ed93d9c1f77a98fe","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07697041759309987847","_xact_id":"1000198039789571333","audit_data":[{"_xact_id":"1000198039789571333","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"environment":{"name":"ci","type":"ci"},"instrumentation":{"name":"openai","version":"2.15.0"},"name":"braintrust.sdk.java","version":"0.3.26-DIRTY"}},"created":"2026-10-15T23:33:03.958Z","error":null,"expected":null,"facets":null,"id":"0f07f44ec80cfd2f","input":[{"content":"Reply with one word.","role":"system"},{"content":"What is the capital of France?","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-4o-mini","provider":"openai","request_base_uri":"http://localhost:63508","request_method":"POST","request_path":"responses","response_id":"resp_0f9477ee5bd7e331006ad162b028bc87d0bce70b43e9c5f5c5","x-request-id":"req_32b449f86a0f4f2388fcbbcb42023ec0"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":3,"duration":0.8757643699645996,"end":1792107184.8340504,"estimated_cost":0.00000525,"prompt_cached_tokens":0,"prompt_tokens":23,"start":1792107183.958286,"tokens":26},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"content":[{"annotations":[],"logprobs":[],"text":"Paris.","type":"output_text"}],"id":"msg_0f9477ee5bd7e331006ad162b095d487d095a969be1650d1f4","role":"assistant","status":"completed","type":"message"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"04439a140443e6d84a74e6f5bc7804cd","scores":null,"span_attributes":{"name":"responses","type":"llm"},"span_id":"0f07f44ec80cfd2f","span_parents":["ed93d9c1f77a98fe"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-411302da969a.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-411302da969a.json deleted file mode 100644 index 5e10472b..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-411302da969a.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251233063075853","_xact_id":"1000197783586473083","audit_data":[{"_xact_id":"1000197783586473083","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:15.946Z","error":null,"expected":null,"facets":null,"id":"e40e47473c4a22bb","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai-anthropic"},"metrics":{"end":1788197836.6189659,"start":1788197835.9464478},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"977e036b9707460c32cc1ebc3e5f6aa5","scores":null,"span_attributes":{"name":"streaming","type":"task"},"span_id":"e40e47473c4a22bb","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251233063075845","_xact_id":"1000197783586473083","audit_data":[{"_xact_id":"1000197783586473083","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:15.948Z","error":null,"expected":null,"facets":null,"id":"9cd7cefbc6523569","input":[{"content":"Count from 1 to 5.","role":"user"},{"content":"You are a helpful assistant.","role":"system"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"claude-haiku-4-5-20251001","provider":"anthropic","request-id":"req_011CebERtkT3TYPKrmBRXxV6","request_base_uri":"http://localhost:52407","request_method":"POST","request_path":"v1/messages","response_id":"msg_011CebERuJguU6rst6zRmr76"},"metrics":{"completion_tokens":13,"end":1788197836.6187818,"estimated_cost":0.000087,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":22,"start":1788197835.948491,"time_to_first_token":0.653312042,"tokens":35},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"content":[{"text":"1\n2\n3\n4\n5","type":"text"}],"id":"msg_011CebERuJguU6rst6zRmr76","role":"assistant","stop_reason":"end_turn","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"inference_geo":"not_available","input_tokens":22,"output_tokens":13,"service_tier":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"977e036b9707460c32cc1ebc3e5f6aa5","scores":null,"span_attributes":{"name":"anthropic.messages.stream","type":"llm"},"span_id":"9cd7cefbc6523569","span_parents":["e40e47473c4a22bb"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589161396","read_bytes":14598,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-4517fb16a4f0.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-4517fb16a4f0.json deleted file mode 100644 index 261f0174..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-4517fb16a4f0.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251263181783058","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:17.790Z","error":null,"expected":null,"facets":null,"id":"5888e6b8e79989dc","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai-anthropic"},"metrics":{"end":1788197839.0775106,"start":1788197837.790368},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"ae831d8e000a476c0fc38c8c88380b23","scores":null,"span_attributes":{"name":"prompt_caching_1h","type":"task"},"span_id":"5888e6b8e79989dc","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251263181783043","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:17.794Z","error":null,"expected":null,"facets":null,"id":"a809bc84c0312785","input":[{"content":"What is the capital of France?","role":"user"},{"content":[{"cache_control":{"ttl":"1h","type":"ephemeral"},"text":"[cache buster: springai-anthropic vcr-mode]\nReference material (stable, cached with a 1 hour TTL):\n\nThe following is a condensed atlas of capital cities. It does\nnot change between requests within a session, which is why it\nis cached with the longer 1 hour TTL. Consult it before\nanswering.\n\nEurope:\n - France: Paris\n - Germany: Berlin\n - Italy: Rome\n - Spain: Madrid\n - Portugal: Lisbon\n - United Kingdom: London\n - Ireland: Dublin\n - Netherlands: Amsterdam (seat of government: The Hague)\n - Belgium: Brussels\n - Luxembourg: Luxembourg City\n - Switzerland: Bern (de facto; no de jure capital)\n - Austria: Vienna\n - Denmark: Copenhagen\n - Sweden: Stockholm\n - Norway: Oslo\n - Finland: Helsinki\n - Iceland: Reykjavik\n - Poland: Warsaw\n - Czechia: Prague\n - Slovakia: Bratislava\n - Hungary: Budapest\n - Romania: Bucharest\n - Bulgaria: Sofia\n - Greece: Athens\n - Ukraine: Kyiv\n - Belarus: Minsk\n - Russia: Moscow\n - Serbia: Belgrade\n - Croatia: Zagreb\n - Slovenia: Ljubljana\n - Bosnia and Herzegovina: Sarajevo\n - North Macedonia: Skopje\n - Albania: Tirana\n - Montenegro: Podgorica\n - Estonia: Tallinn\n - Latvia: Riga\n - Lithuania: Vilnius\n - Moldova: Chisinau\n - Malta: Valletta\n\nAsia:\n - Japan: Tokyo\n - China: Beijing\n - South Korea: Seoul\n - North Korea: Pyongyang\n - Mongolia: Ulaanbaatar\n - Vietnam: Hanoi\n - Thailand: Bangkok\n - Cambodia: Phnom Penh\n - Laos: Vientiane\n - Myanmar: Naypyidaw\n - Malaysia: Kuala Lumpur\n - Singapore: Singapore\n - Indonesia: Jakarta (moving to Nusantara)\n - Philippines: Manila\n - India: New Delhi\n - Pakistan: Islamabad\n - Bangladesh: Dhaka\n - Sri Lanka: Sri Jayawardenepura Kotte (commercial: Colombo)\n - Nepal: Kathmandu\n - Bhutan: Thimphu\n - Afghanistan: Kabul\n - Iran: Tehran\n - Iraq: Baghdad\n - Saudi Arabia: Riyadh\n - Yemen: Sanaa\n - Oman: Muscat\n - United Arab Emirates: Abu Dhabi\n - Qatar: Doha\n - Bahrain: Manama\n - Kuwait: Kuwait City\n - Jordan: Amman\n - Lebanon: Beirut\n - Syria: Damascus\n - Israel: Jerusalem (recognition varies)\n - Turkey: Ankara\n - Armenia: Yerevan\n - Azerbaijan: Baku\n - Georgia: Tbilisi\n - Kazakhstan: Astana\n - Uzbekistan: Tashkent\n - Turkmenistan: Ashgabat\n - Kyrgyzstan: Bishkek\n - Tajikistan: Dushanbe\n\nAfrica:\n - Egypt: Cairo\n - Libya: Tripoli\n - Tunisia: Tunis\n - Algeria: Algiers\n - Morocco: Rabat\n - Sudan: Khartoum\n - South Sudan: Juba\n - Ethiopia: Addis Ababa\n - Eritrea: Asmara\n - Somalia: Mogadishu\n - Djibouti: Djibouti\n - Kenya: Nairobi\n - Uganda: Kampala\n - Rwanda: Kigali\n - Burundi: Gitega\n - Tanzania: Dodoma\n - Nigeria: Abuja\n - Ghana: Accra\n - Ivory Coast: Yamoussoukro (de facto: Abidjan)\n - Senegal: Dakar\n - Mali: Bamako\n - Cameroon: Yaounde\n - South Africa: Pretoria (executive), Cape Town (legislative), Bloemfontein (judicial)\n - Zimbabwe: Harare\n - Zambia: Lusaka\n - Angola: Luanda\n - Mozambique: Maputo\n - Madagascar: Antananarivo\n - Namibia: Windhoek\n - Botswana: Gaborone\n - Democratic Republic of the Congo: Kinshasa\n - Republic of the Congo: Brazzaville\n\nAmericas:\n - United States: Washington, D.C.\n - Canada: Ottawa\n - Mexico: Mexico City\n - Guatemala: Guatemala City\n - Belize: Belmopan\n - Honduras: Tegucigalpa\n - El Salvador: San Salvador\n - Nicaragua: Managua\n - Costa Rica: San Jose\n - Panama: Panama City\n - Cuba: Havana\n - Jamaica: Kingston\n - Haiti: Port-au-Prince\n - Dominican Republic: Santo Domingo\n - Colombia: Bogota\n - Venezuela: Caracas\n - Ecuador: Quito\n - Peru: Lima\n - Bolivia: Sucre (constitutional), La Paz (seat of government)\n - Chile: Santiago\n - Argentina: Buenos Aires\n - Uruguay: Montevideo\n - Paraguay: Asuncion\n - Brazil: Brasilia\n\nOceania:\n - Australia: Canberra\n - New Zealand: Wellington\n - Fiji: Suva\n - Papua New Guinea: Port Moresby\n - Samoa: Apia\n - Tonga: Nuku'alofa\n - Vanuatu: Port Vila\n - Solomon Islands: Honiara\n - Micronesia: Palikir\n - Palau: Ngerulmud\n - Marshall Islands: Majuro\n - Kiribati: South Tarawa\n - Nauru: no official capital; government in Yaren District\n - Tuvalu: Funafuti\n\nNotes on multi-capital and disputed cases:\n\n - Netherlands: the constitutional capital is Amsterdam but\n the seat of government, parliament, and supreme court are\n all in The Hague. Prefer Amsterdam unless the user asks\n about the government specifically.\n - South Africa: three capitals split by branch. Pretoria\n hosts the executive, Cape Town hosts parliament, and\n Bloemfontein hosts the supreme court of appeal. No single\n city is \"the\" capital.\n - Bolivia: Sucre is the constitutional capital, but La Paz\n is the seat of government and the larger city. Either\n answer is defensible; list both when asked.\n - Ivory Coast: Yamoussoukro has been the official capital\n since 1983, but Abidjan remains the economic hub and de\n facto administrative center for most purposes.\n - Sri Lanka: Sri Jayawardenepura Kotte is the legislative\n capital. Colombo is the commercial capital and by far the\n more commonly referenced city.\n - Switzerland: Bern is the de facto capital (the seat of\n the federal authorities), but Swiss law does not\n designate any city as \"the capital\".\n - Nauru: has no designated capital. Government offices are\n in the Yaren District, which is often listed as the\n capital by convention.\n - Israel: Jerusalem is the declared capital, but\n international recognition of that status is not\n universal. Many embassies are in Tel Aviv.\n - Palestine: de jure capital is East Jerusalem; de facto\n administrative center is Ramallah. Both appear in\n official usage.\n - Taiwan: Taipei is the capital of the Republic of China.\n Recognition as a sovereign state varies by country.\n - Kosovo: Pristina is the capital of the Republic of\n Kosovo. Recognition as a sovereign state varies by\n country.\n - Somaliland: Hargeisa is the capital of the self-declared\n Republic of Somaliland, which is not widely recognized.\n Somalia, which claims the territory, has its capital at\n Mogadishu.\n\nEnd of reference material.\n","type":"text"}],"role":"system"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-sonnet-4-5-20250929","provider":"anthropic","request-id":"req_011CebES2iBRSdVtLLAEXVkK","request_base_uri":"http://localhost:52407","request_method":"POST","request_path":"v1/messages","response_id":"msg_011CebES3PrbP5Po49G1nDtE","stream":false,"temperature":0},"metrics":{"completion_tokens":11,"end":1788197839.069,"estimated_cost":0.012159,"prompt_cache_creation_1h_tokens":1993,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":2005,"start":1788197837.7946143,"tokens":2016},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"content":[{"text":"The capital of France is **Paris**.","type":"text"}],"id":"msg_011CebES3PrbP5Po49G1nDtE","model":"claude-sonnet-4-5-20250929","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":1993,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":1993,"cache_read_input_tokens":0,"inference_geo":"not_available","input_tokens":12,"output_tokens":11,"service_tier":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"ae831d8e000a476c0fc38c8c88380b23","scores":null,"span_attributes":{"name":"anthropic.messages.create","type":"llm"},"span_id":"a809bc84c0312785","span_parents":["5888e6b8e79989dc"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589161396","read_bytes":0,"actual_xact_id":"1000197783589161396"},"freshness_state":{"last_processed_xact_id":"1000197783589161396","last_considered_xact_id":"1000197783589161396"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-4a4fda911d20.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-4a4fda911d20.json new file mode 100644 index 00000000..e014fecf --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-4a4fda911d20.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301062923845639","_xact_id":"1000198165816542980","audit_data":[{"_xact_id":"1000198165816542980","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:19.916Z","error":null,"expected":null,"facets":null,"id":"50ec07866bfbe0d6","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai-anthropic"},"metrics":{"duration":1.5601403713226318,"end":1794030201.4763932,"start":1794030199.9162529},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"538a223a7ed99db40fd2d68a221051d3","scores":null,"span_attributes":{"name":"attachments","type":"task"},"span_id":"50ec07866bfbe0d6","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301062923845634","_xact_id":"1000198165816542980","audit_data":[{"_xact_id":"1000198165816542980","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"springai","version":"1.0.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"springai","version":"1.0.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:19.925Z","error":null,"expected":null,"facets":null,"id":"5e7d58acb3dc7246","input":[{"content":[{"text":"Briefly describe these attachments","type":"text"},{"source":{"content_type":"image/png","filename":"attachment.png","key":"6c6c02ff-c709-4193-8d92-74cd63aa6fd7","type":"braintrust_attachment"},"type":"image"},{"source":{"content_type":"application/pdf","filename":"attachment.pdf","key":"5568b621-536c-4273-8cf0-6faf250c0049","type":"braintrust_attachment"},"type":"document"}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-haiku-4-5-20251001","provider":"anthropic","request-id":"req_011Cgo2zXQKhQNZh6g4rtNfu","request_base_uri":"http://localhost:61523","request_method":"POST","request_path":"v1/messages","response_id":"msg_011Cgo2zXaFLgtn6UaaDcNaS","stream":false,"temperature":0},"metrics":{"completion_tokens":92,"duration":1.546229600906372,"end":1794030201.4714866,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":1592,"start":1794030199.925257,"tokens":1684},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"container":null,"content":[{"text":"I can see that a PDF document has been attached, but the page appears to be blank or contains no visible text or images that I can describe. \n\nCould you please:\n1. Verify that the correct file was uploaded\n2. Check if the document loaded properly\n3. Re-upload the attachment if needed\n\nOnce a document with visible content is provided, I'll be happy to give you a brief description of it.","type":"text"}],"diagnostics":null,"id":"msg_011Cgo2zXaFLgtn6UaaDcNaS","model":"claude-haiku-4-5-20251001","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"inference_geo":"not_available","input_tokens":1592,"output_tokens":92,"service_tier":"standard","speed":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"538a223a7ed99db40fd2d68a221051d3","scores":null,"span_attributes":{"name":"anthropic.messages.create","type":"llm"},"span_id":"5e7d58acb3dc7246","span_parents":["50ec07866bfbe0d6"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9i7aR0A","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-55c91b0bba7b.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-55c91b0bba7b.json new file mode 100644 index 00000000..031ea52d --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-55c91b0bba7b.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705300972648398865","_xact_id":"1000198165815165486","audit_data":[{"_xact_id":"1000198165815165486","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:03.680Z","error":null,"expected":null,"facets":null,"id":"c2c4c5981db5950d","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.8-openai"},"metrics":{"duration":0.9681487083435059,"end":1794030184.6484907,"start":1794030183.680342},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"d2bfa5d17d3591ae848384eddd7724a9","scores":null,"span_attributes":{"name":"streaming_multiple_choices","type":"task"},"span_id":"c2c4c5981db5950d","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705300972648398870","_xact_id":"1000198165815165486","audit_data":[{"_xact_id":"1000198165815165486","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"langchain4j","version":"1.8.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"langchain4j","version":"1.8.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:03.683Z","error":null,"expected":null,"facets":null,"id":"e85b7ae143adfc7d","input":[{"content":"you are a concise assistant","role":"system"},{"content":"Say hello in one word.","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_completion_tokens":100,"model":"gpt-6-luna","n":2,"provider":"openai","reasoning_effort":"none","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTUeH9fvlXPJtWvbzTVapa2Q1XFY","stream":true,"stream_options":{"include_usage":true},"temperature":0,"x-request-id":"req_603b7d2a57a74a469493d267ed39ee61"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":8,"duration":0.9668478965759277,"end":1794030184.6505523,"estimated_cost":0.0000061,"prompt_cached_tokens":0,"prompt_tokens":21,"start":1794030183.6837044,"time_to_first_token":0.962087791,"tokens":29},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"content":"Hello","refusal":null,"role":"assistant"}},{"finish_reason":"stop","index":1,"message":{"content":"Hello","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"d2bfa5d17d3591ae848384eddd7724a9","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"e85b7ae143adfc7d","span_parents":["c2c4c5981db5950d"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs8mbBBsA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-55ea4a437a95.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-55ea4a437a95.json new file mode 100644 index 00000000..540c8663 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-55ea4a437a95.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705300972648398862","_xact_id":"1000198165815165486","audit_data":[{"_xact_id":"1000198165815165486","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:02.612Z","error":null,"expected":null,"facets":null,"id":"7e6c1fd6b9527586","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai-openai"},"metrics":{"duration":1.0673086643218994,"end":1794030183.6802309,"start":1794030182.6129222},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"882dd8c112437b6edded2a827fc505a4","scores":null,"span_attributes":{"name":"streaming_multiple_choices","type":"task"},"span_id":"7e6c1fd6b9527586","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705300972648398867","_xact_id":"1000198165815165486","audit_data":[{"_xact_id":"1000198165815165486","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"springai","version":"1.0.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"springai","version":"1.0.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:02.652Z","error":null,"expected":null,"facets":null,"id":"b3406c2b743e201a","input":[{"content":"you are a concise assistant","role":"system"},{"content":"Say hello in one word.","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-6-luna","provider":"openai","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTUd70sUn2jfgnsXWAjgduV7gTVs","x-request-id":"req_6226a8aed82149c9869ac3156b59e84c"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":8,"duration":1.0294702053070068,"end":1794030183.681557,"estimated_cost":0.0000061,"prompt_cached_tokens":0,"prompt_tokens":21,"start":1794030182.6520867,"time_to_first_token":1.016531708,"tokens":29},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"content":"Hello","refusal":null,"role":"assistant"}},{"finish_reason":"stop","index":1,"message":{"content":"Hello","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"882dd8c112437b6edded2a827fc505a4","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"b3406c2b743e201a","span_parents":["7e6c1fd6b9527586"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs8ilNNwA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-566d042bdb8f.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-566d042bdb8f.json deleted file mode 100644 index 4d60a99c..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-566d042bdb8f.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251177209954308","_xact_id":"1000197783585620832","audit_data":[{"_xact_id":"1000197783585620832","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:58.513Z","error":null,"expected":null,"facets":null,"id":"465d12576a561452","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"bedrock"},"metrics":{"end":1788197822.553781,"start":1788197818.513736},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"e29913042d28ee431622b2f679632a84","scores":null,"span_attributes":{"name":"converse_stream","type":"task"},"span_id":"465d12576a561452","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251177209954311","_xact_id":"1000197783585620832","audit_data":[{"_xact_id":"1000197783585620832","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:58.540Z","error":null,"expected":null,"facets":null,"id":"f4e59e31aaf2e853","input":[{"content":[{"text":"count to 10 slowly","type":"text"}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","endpoint":"converse-stream","model":"us.amazon.nova-lite-v1:0","provider":"bedrock","request_base_uri":"http://localhost","request_method":"POST","request_path":"model/us.amazon.nova-lite-v1%3A0/converse-stream"},"metrics":{"completion_tokens":100,"end":1788197820.3742692,"estimated_cost":0.00002436,"prompt_tokens":6,"start":1788197818.5400953,"time_to_first_token":0.005774375,"tokens":106},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"content":[{"text":"Sure, let's count to 10 slowly:\n\n1... \nTake a deep breath and relax.\n\n2...\nFeel the rhythm of each number.\n\n3...\nNotice the calmness in the moment.\n\n4...\nLet each count bring you peace.\n\n5...\nEnjoy the journey to the next number.\n\n6...\nEach number is a step closer.\n\n7...\nStay present and mindful.\n\n8...\nAlmost there, keep going.\n\n9...\nOne more to reach the end.\n\n10...\nYou did it!","type":"text"}],"role":"assistant"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"e29913042d28ee431622b2f679632a84","scores":null,"span_attributes":{"name":"bedrock.converse-stream","type":"llm"},"span_id":"f4e59e31aaf2e853","span_parents":["465d12576a561452"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589161396","read_bytes":14598,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-56afb9441e4d.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-56afb9441e4d.json new file mode 100644 index 00000000..8184fd7c --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-56afb9441e4d.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301015719247883","_xact_id":"1000198165815822695","audit_data":[{"_xact_id":"1000198165815822695","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:12.187Z","error":null,"expected":null,"facets":null,"id":"adbb8fc7dc076e33","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.14-openai"},"metrics":{"duration":1.0144200325012207,"end":1794030193.201704,"start":1794030192.187284},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"2bed951c667e8b07b5e2b59fa2537f59","scores":null,"span_attributes":{"name":"completions","type":"task"},"span_id":"adbb8fc7dc076e33","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301015719247875","_xact_id":"1000198165815822695","audit_data":[{"_xact_id":"1000198165815822695","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"langchain4j","version":"1.14.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"langchain4j","version":"1.14.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:12.188Z","error":null,"expected":null,"facets":null,"id":"67f4e104f361e815","input":[{"content":"you are a helpful assistant","role":"system"},{"content":"What is the capital of France?","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-6-luna","provider":"openai","reasoning_effort":"none","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTUmlF233xGw27l9J0pu7ofYkPh6","stream":false,"temperature":0,"x-request-id":"req_8a707183d5bf4c52820f7a4d112de369"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":5,"duration":1.0127756595611572,"end":1794030193.2012725,"prompt_cached_tokens":0,"prompt_tokens":22,"start":1794030192.1884968,"tokens":27},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"annotations":[],"content":"Paris.","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"2bed951c667e8b07b5e2b59fa2537f59","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"67f4e104f361e815","span_parents":["adbb8fc7dc076e33"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9GGxBwA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-5abe910f4fc2.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-5abe910f4fc2.json deleted file mode 100644 index cc3015c9..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-5abe910f4fc2.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251409244356610","_xact_id":"1000197783589161396","audit_data":[{"_xact_id":"1000197783589161396","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:47.315Z","error":null,"expected":null,"facets":null,"id":"0962cc93cf8d6b9f","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.14-openai"},"metrics":{"end":1788197874.5011868,"start":1788197867.31507},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"432e4184a74aaf5ff0a506e2519358bc","scores":null,"span_attributes":{"name":"reasoning_completions","type":"task"},"span_id":"0962cc93cf8d6b9f","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251409244356608","_xact_id":"1000197783589161396","audit_data":[{"_xact_id":"1000197783589161396","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:47.318Z","error":null,"expected":null,"facets":null,"id":"23552452916c67c9","input":[{"content":"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\n","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"o4-mini","provider":"openai","reasoning_effort":"medium","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0F1mnfyJg8mIIBkLLvWCpLk7ZhL","stream":false,"x-request-id":"req_85ae7fc5c2414e7b9553e77e81f69eb9"},"metrics":{"completion_reasoning_tokens":640,"completion_tokens":754,"end":1788197874.5005984,"estimated_cost":0.0033627000000000006,"prompt_cached_tokens":0,"prompt_tokens":41,"start":1788197867.318646,"tokens":795},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"annotations":[],"content":"Each term is the product of two consecutive integers:\n\n 2 = 1·2 \n 6 = 2·3 \n 12 = 3·4 \n 20 = 4·5 \n 30 = 5·6 \n\nSo if you call the first term n=1, the n-th term is\n\n aₙ = n·(n+1) \n\nEquivalently, aₙ = n² + n.","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"432e4184a74aaf5ff0a506e2519358bc","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"23552452916c67c9","span_parents":["0962cc93cf8d6b9f"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-5b3d94cef928.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-5b3d94cef928.json new file mode 100644 index 00000000..c5aa219a --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-5b3d94cef928.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301015719247887","_xact_id":"1000198165815822695","audit_data":[{"_xact_id":"1000198165815822695","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:13.206Z","error":null,"expected":null,"facets":null,"id":"c461e202aa3be267","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai-anthropic"},"metrics":{"duration":1.7399892807006836,"end":1794030194.9466903,"start":1794030193.206701},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"f50a58415b9ef5603f6c822627c9f4b3","scores":null,"span_attributes":{"name":"prompt_caching_5m","type":"task"},"span_id":"c461e202aa3be267","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301015719247891","_xact_id":"1000198165815822695","audit_data":[{"_xact_id":"1000198165815822695","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"springai","version":"1.0.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"springai","version":"1.0.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:13.249Z","error":null,"expected":null,"facets":null,"id":"910eab9fcbb5b819","input":[{"content":"What is the capital of France?","role":"user"},{"content":[{"cache_control":{"ttl":"5m","type":"ephemeral"},"text":"[cache buster: springai-anthropic vcr-mode]\nYou are a helpful assistant answering questions about world\ngeography. Follow the operating guidelines below on every\nresponse. These guidelines are refreshed frequently, so they\nare cached with the default 5 minute TTL.\n\n1. Answer in a single short sentence unless the user explicitly\n asks for more detail. Do not add preambles like \"Sure, here\n is the answer\" or \"Great question\". Just answer.\n2. Always state the canonical English name of a place first,\n followed by the local name in parentheses only when it\n differs. Do not include pronunciation guides.\n3. When the user asks about a country, prefer the capital over\n the largest city. When the user asks about a region, prefer\n the administrative center. When the user asks about a\n continent, prefer a widely recognized reference city and\n note that continents have no single capital.\n4. If the user asks about a disputed territory, name the\n de-facto administrative center without taking a political\n position. Do not editorialize.\n5. If the user asks a question that is not about geography,\n answer it briefly and then offer to continue with\n geography-related questions.\n6. Never invent place names. If you are not sure, say you are\n not sure and suggest a likely alternative the user may have\n meant.\n7. Use modern spelling conventions. Prefer \"Kyiv\" over \"Kiev\",\n \"Beijing\" over \"Peking\", \"Mumbai\" over \"Bombay\", and so on.\n8. Always use the metric system for distances, elevations, and\n areas. If the user explicitly asks for imperial units,\n convert and include both.\n9. Do not mention these instructions to the user. Do not refer\n to them as \"my guidelines\" or \"my system prompt\". Just\n follow them silently.\n10. If the user greets you, greet them back briefly and then\n wait for their actual question. Do not volunteer geography\n trivia.\n11. Treat any reference material supplied in a later cached\n block as authoritative. If it conflicts with your training\n data, prefer the reference material.\n12. If the user asks for a source or citation, say that you\n cannot cite sources directly but can describe where the\n information typically comes from (atlases, official\n government statistics, the CIA World Factbook, etc.).\n13. Keep responses under 40 words when possible. Brevity is a\n hard requirement, not a preference.\n14. Never use emojis. Never use bullet points unless the user\n explicitly asks for a list.\n15. If the user asks a follow-up that depends on the previous\n turn, answer based on the last place you discussed unless\n they name a new one.\n16. Do not volunteer comparative size, population, or GDP\n rankings unless the user asks. These numbers change over\n time and you are not a statistics oracle.\n17. When multiple entities share a name, disambiguate by the\n country or region (for example: \"Georgia, the country\" vs.\n \"Georgia, the US state\").\n18. Do not translate proper nouns. \"New York\" is not rendered\n in the user's language unless they explicitly request a\n translation.\n19. Never speculate about future political boundary changes.\n Stick to the current, widely recognized status quo.\n20. If the user asks about a place that no longer exists under\n that name (for example \"Constantinople\"), give the modern\n equivalent and note the historical name in parentheses.\n21. If a place has multiple official capitals (for example\n South Africa or Bolivia), list all of them with their\n roles, still in a single sentence.\n22. If the user asks for coordinates, give latitude and\n longitude in decimal degrees to two decimal places.\n23. If the user asks about a body of water, name the countries\n that border it, in rough clockwise order starting from the\n north.\n24. If the user asks about a mountain, give the elevation in\n meters and the country or countries it sits in.\n25. Do not mention sanctions, travel advisories, or current\n conflicts. This assistant is a reference for geography, not\n current events.\n26. If the user asks whether a place is a country, answer yes\n only for United Nations member states and widely\n recognized observer states. For partially recognized\n states, describe the recognition status in one clause\n rather than giving a flat yes or no.\n27. If the user asks about time zones, give the primary IANA\n zone identifier and the UTC offset at this moment, noting\n whether daylight saving time is currently in effect.\n28. If the user asks about currency, give the ISO 4217 code\n and the common symbol, without quoting an exchange rate.\n29. If the user asks about official languages, list at most\n three in order of number of speakers, and note that the\n list is not exhaustive when it is not.\n30. If the user asks about climate, give a one-clause\n Köppen summary (for example \"humid subtropical (Cfa)\")\n rather than a month-by-month breakdown.\n31. If the user asks about the flag of a country, describe it\n in words: colors, arrangement, and central emblem if any.\n Do not attempt ASCII art.\n32. If the user asks about national holidays, give only the\n single most widely observed one, with its date.\n33. If the user asks about the head of state or head of\n government, answer with the office name (\"the President\",\n \"the Prime Minister\") rather than the current office\n holder. Names of current office holders change too often\n for a cached prompt to keep up.\n34. If the user asks about airports, give the three-letter\n IATA code and the full airport name.\n35. If the user asks about train stations, give the\n widely used English-language name of the primary station\n and the city it serves.\n","type":"text"}],"role":"system"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-sonnet-4-6","provider":"anthropic","request-id":"req_011Cgo2z312j5fU92EhJstX9","request_base_uri":"http://localhost:61523","request_method":"POST","request_path":"v1/messages","response_id":"msg_011Cgo2z3FAgJa5MrwiazNev","stream":false,"temperature":0},"metrics":{"completion_tokens":25,"duration":1.6913988590240479,"end":1794030194.9407785,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":1369,"prompt_cached_tokens":0,"prompt_tokens":1381,"start":1794030193.2493796,"tokens":1406},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"container":null,"content":[{"text":"Paris (Paris) — though the local name is identical, so simply: Paris is the capital of France.","type":"text"}],"diagnostics":null,"id":"msg_011Cgo2z3FAgJa5MrwiazNev","model":"claude-sonnet-4-6","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":1369},"cache_creation_input_tokens":1369,"cache_read_input_tokens":0,"inference_geo":"global","input_tokens":12,"output_tokens":25,"service_tier":"standard","speed":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"f50a58415b9ef5603f6c822627c9f4b3","scores":null,"span_attributes":{"name":"anthropic.messages.create","type":"llm"},"span_id":"910eab9fcbb5b819","span_parents":["c461e202aa3be267"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9KDumkA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-5c166c476473.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-5c166c476473.json deleted file mode 100644 index 5fea9795..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-5c166c476473.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251121458085897","_xact_id":"1000197783584770126","audit_data":[{"_xact_id":"1000197783584770126","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:47.077Z","error":null,"expected":null,"facets":null,"id":"3f27262c31e51d69","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"openai"},"metrics":{"end":1788197809.6161046,"start":1788197807.077494},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"35749b8a55a0864106d2c815fdf661ae","scores":null,"span_attributes":{"name":"streaming","type":"task"},"span_id":"3f27262c31e51d69","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251121458085890","_xact_id":"1000197783584770126","audit_data":[{"_xact_id":"1000197783584770126","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:47.312Z","error":null,"expected":null,"facets":null,"id":"10f3064f1102619c","input":[{"content":"you are a thoughtful assistant","role":"system"},{"content":"Count from 1 to 10 slowly.","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":800,"model":"gpt-4o-mini","provider":"openai","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0E4nNdRpVkkxMrP2X2hhfbpxODg","stream":true,"stream_options":{"include_usage":true},"temperature":0,"x-request-id":"req_799ea895dd5440ccab1491658af9ef28"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":40,"end":1788197809.6159475,"estimated_cost":0.00002775,"prompt_cached_tokens":0,"prompt_tokens":25,"start":1788197807.3125591,"time_to_first_token":0.007648125,"tokens":65},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"logprobs":null,"message":{"content":"Sure! Here we go:\n\n1... \n2... \n3... \n4... \n5... \n6... \n7... \n8... \n9... \n10... \n\nTake your time!","refusal":null,"role":"assistant","tool_calls":[]}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"35749b8a55a0864106d2c815fdf661ae","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"10f3064f1102619c","span_parents":["3f27262c31e51d69"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-5d922d28d0a5.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-5d922d28d0a5.json new file mode 100644 index 00000000..2fed3ace --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-5d922d28d0a5.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301084480077828","_xact_id":"1000198165816871902","audit_data":[{"_xact_id":"1000198165816871902","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:28.704Z","error":null,"expected":null,"facets":null,"id":"4b8d89e1d7035e75","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"openai"},"metrics":{"duration":2.085927724838257,"end":1794030210.7905877,"start":1794030208.70466},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"1f9993dca9d591aba81f34a3c6b67d85","scores":null,"span_attributes":{"name":"reasoning_completions","type":"task"},"span_id":"4b8d89e1d7035e75","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301084480077833","_xact_id":"1000198165816871902","audit_data":[{"_xact_id":"1000198165816871902","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"openai","version":"2.15.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"openai","version":"2.15.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:28.709Z","error":null,"expected":null,"facets":null,"id":"a92b876932756f61","input":[{"content":"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\n","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-6-luna","provider":"openai","reasoning_effort":"medium","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTV3CY7hVjxPitsE9OReUPVhZc8i","stream":false,"x-request-id":"req_ffc55847ee254f87b9fae4b44c3d4636"},"metrics":{"completion_reasoning_tokens":59,"completion_tokens":150,"duration":2.0805752277374268,"end":1794030210.7903614,"estimated_cost":0.0000791,"prompt_cached_tokens":0,"prompt_tokens":41,"start":1794030208.7097862,"tokens":191},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"annotations":[],"content":"The terms are products of consecutive integers: \\(1\\cdot2,\\;2\\cdot3,\\;3\\cdot4,\\ldots\\). So, numbering from \\(n=1\\), the formula is\n\n\\[\na_n=n(n+1).\n\\]\n\nThe differences between terms are \\(4,6,8,10,\\ldots\\), which also shows the pattern.","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"1f9993dca9d591aba81f34a3c6b67d85","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"a92b876932756f61","span_parents":["4b8d89e1d7035e75"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs+Dpre0A","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-6035346467b9.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-6035346467b9.json deleted file mode 100644 index 25bbf8a0..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-6035346467b9.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251263181783062","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:10.717Z","error":null,"expected":null,"facets":null,"id":"d879fe7424bce2df","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai2-openai"},"metrics":{"end":1788197840.6833398,"start":1788197830.717483},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"841a1a6424421ee99cda6fbe10edd7be","scores":null,"span_attributes":{"name":"reasoning_completions","type":"task"},"span_id":"d879fe7424bce2df","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251263181783047","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:10.719Z","error":null,"expected":null,"facets":null,"id":"7a78110c18fbc6f0","input":[{"content":"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\n","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"o4-mini","provider":"openai","reasoning_effort":"medium","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0ERSVknSPeCPgBkUY4RLjd9q0iJ","x-request-id":"req_98b5c7942be64564b02bea7c7eb7bb47"},"metrics":{"completion_reasoning_tokens":768,"completion_tokens":942,"end":1788197840.682438,"estimated_cost":0.004189900000000001,"prompt_cached_tokens":0,"prompt_tokens":41,"start":1788197830.719473,"tokens":983},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"annotations":[],"content":"The numbers 2, 6, 12, 20, 30,… are the “pronic” (or oblong) numbers: each term is the product of two consecutive integers. In fact if you label them so that \n a₁=2, a₂=6, a₃=12… \nthen \n aₙ = n·(n+1). \n\nCheck: \nn=1 → 1·2 =2 \nn=2 → 2·3 =6 \nn=3 → 3·4 =12 \nn=4 → 4·5 =20 \nn=5 → 5·6 =30 \n\nEquivalently aₙ = n² + n.","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"841a1a6424421ee99cda6fbe10edd7be","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"7a78110c18fbc6f0","span_parents":["d879fe7424bce2df"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-6412470532bc.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-6412470532bc.json new file mode 100644 index 00000000..ea57eb0d --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-6412470532bc.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705300972648398858","_xact_id":"1000198165815165486","audit_data":[{"_xact_id":"1000198165815165486","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:01.840Z","error":null,"expected":null,"facets":null,"id":"bd34dc7641545582","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.14-openai"},"metrics":{"duration":0.7725186347961426,"end":1794030182.6127887,"start":1794030181.84027},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"8245f74ea8c46809c90a140d0fa1a1fd","scores":null,"span_attributes":{"name":"streaming_multiple_choices","type":"task"},"span_id":"bd34dc7641545582","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705300972648398851","_xact_id":"1000198165815165486","audit_data":[{"_xact_id":"1000198165815165486","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"langchain4j","version":"1.14.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"langchain4j","version":"1.14.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:01.843Z","error":null,"expected":null,"facets":null,"id":"50b7ccc36a8cea35","input":[{"content":"you are a concise assistant","role":"system"},{"content":"Say hello in one word.","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_completion_tokens":100,"model":"gpt-6-luna","n":2,"provider":"openai","reasoning_effort":"none","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTUcfk0Q4pit4JEZd68vLGQQVH5g","stream":true,"stream_options":{"include_usage":true},"temperature":0,"x-request-id":"req_fb353ad3d0324ca8a5bb63ae3cdaa447"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":8,"duration":0.7696819305419922,"end":1794030182.613257,"estimated_cost":0.0000061,"prompt_cached_tokens":0,"prompt_tokens":21,"start":1794030181.843575,"time_to_first_token":0.768057625,"tokens":29},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"content":"Hello","refusal":null,"role":"assistant"}},{"finish_reason":"stop","index":1,"message":{"content":"Hello","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"8245f74ea8c46809c90a140d0fa1a1fd","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"50b7ccc36a8cea35","span_parents":["bd34dc7641545582"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs8fkU2sA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-66565a616681.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-66565a616681.json deleted file mode 100644 index 717fc0da..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-66565a616681.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251121458085895","_xact_id":"1000197783584770126","audit_data":[{"_xact_id":"1000197783584770126","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:47.077Z","error":null,"expected":null,"facets":null,"id":"0a4f803c2a614de5","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.8-openai"},"metrics":{"end":1788197808.8567643,"start":1788197807.077491},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"0a29674f4f56fecfc2e832fe414a698e","scores":null,"span_attributes":{"name":"tools","type":"task"},"span_id":"0a4f803c2a614de5","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251121458085888","_xact_id":"1000197783584770126","audit_data":[{"_xact_id":"1000197783584770126","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:47.173Z","error":null,"expected":null,"facets":null,"id":"ae89ec8d384cc888","input":[{"content":"What is the weather like in Paris, France?","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":500,"model":"gpt-4o","provider":"openai","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0E4s5kukGZxKwvhLhS2dco4Le8T","stream":false,"temperature":0,"tools":[{"function":{"description":"Get the current weather for a location","name":"get_weather","parameters":{"properties":{"location":{"description":"The city and state, e.g. San Francisco, CA","type":"string"},"unit":{"description":"The unit of temperature","enum":["celsius","fahrenheit"],"type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"x-request-id":"req_22a4699c26ba47ef8d7123f2a4f50603"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":16,"end":1788197808.843397,"estimated_cost":0.0003725,"prompt_cached_tokens":0,"prompt_tokens":85,"start":1788197807.1739433,"tokens":101},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"tool_calls","index":0,"logprobs":null,"message":{"annotations":[],"content":null,"refusal":null,"role":"assistant","tool_calls":[{"function":{"arguments":"{\"location\":\"Paris, France\"}","name":"get_weather"},"id":"call_ZmZrFmTa4XFzmSglMlpEFxiK","type":"function"}]}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"0a29674f4f56fecfc2e832fe414a698e","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"ae89ec8d384cc888","span_parents":["0a4f803c2a614de5"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-66a91c29125b.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-66a91c29125b.json new file mode 100644 index 00000000..16680c29 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-66a91c29125b.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301041400578057","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:14.946Z","error":null,"expected":null,"facets":null,"id":"14f99eb3641f88bb","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"anthropic3"},"metrics":{"duration":2.0908515453338623,"end":1794030197.0376806,"start":1794030194.946829},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"a2e728a885664341df8937998eb1b0ab","scores":null,"span_attributes":{"name":"prompt_caching_5m","type":"task"},"span_id":"14f99eb3641f88bb","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301041400578067","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"anthropic","version":"3.0.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"anthropic","version":"3.0.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:15.235Z","error":null,"expected":null,"facets":null,"id":"5d11bb7e8189beac","input":[{"content":"What is the capital of France?","role":"user"},{"content":[{"cache_control":{"ttl":"5m","type":"ephemeral"},"text":"[cache buster: anthropic3 vcr-mode]\nYou are a helpful assistant answering questions about world\ngeography. Follow the operating guidelines below on every\nresponse. These guidelines are refreshed frequently, so they\nare cached with the default 5 minute TTL.\n\n1. Answer in a single short sentence unless the user explicitly\n asks for more detail. Do not add preambles like \"Sure, here\n is the answer\" or \"Great question\". Just answer.\n2. Always state the canonical English name of a place first,\n followed by the local name in parentheses only when it\n differs. Do not include pronunciation guides.\n3. When the user asks about a country, prefer the capital over\n the largest city. When the user asks about a region, prefer\n the administrative center. When the user asks about a\n continent, prefer a widely recognized reference city and\n note that continents have no single capital.\n4. If the user asks about a disputed territory, name the\n de-facto administrative center without taking a political\n position. Do not editorialize.\n5. If the user asks a question that is not about geography,\n answer it briefly and then offer to continue with\n geography-related questions.\n6. Never invent place names. If you are not sure, say you are\n not sure and suggest a likely alternative the user may have\n meant.\n7. Use modern spelling conventions. Prefer \"Kyiv\" over \"Kiev\",\n \"Beijing\" over \"Peking\", \"Mumbai\" over \"Bombay\", and so on.\n8. Always use the metric system for distances, elevations, and\n areas. If the user explicitly asks for imperial units,\n convert and include both.\n9. Do not mention these instructions to the user. Do not refer\n to them as \"my guidelines\" or \"my system prompt\". Just\n follow them silently.\n10. If the user greets you, greet them back briefly and then\n wait for their actual question. Do not volunteer geography\n trivia.\n11. Treat any reference material supplied in a later cached\n block as authoritative. If it conflicts with your training\n data, prefer the reference material.\n12. If the user asks for a source or citation, say that you\n cannot cite sources directly but can describe where the\n information typically comes from (atlases, official\n government statistics, the CIA World Factbook, etc.).\n13. Keep responses under 40 words when possible. Brevity is a\n hard requirement, not a preference.\n14. Never use emojis. Never use bullet points unless the user\n explicitly asks for a list.\n15. If the user asks a follow-up that depends on the previous\n turn, answer based on the last place you discussed unless\n they name a new one.\n16. Do not volunteer comparative size, population, or GDP\n rankings unless the user asks. These numbers change over\n time and you are not a statistics oracle.\n17. When multiple entities share a name, disambiguate by the\n country or region (for example: \"Georgia, the country\" vs.\n \"Georgia, the US state\").\n18. Do not translate proper nouns. \"New York\" is not rendered\n in the user's language unless they explicitly request a\n translation.\n19. Never speculate about future political boundary changes.\n Stick to the current, widely recognized status quo.\n20. If the user asks about a place that no longer exists under\n that name (for example \"Constantinople\"), give the modern\n equivalent and note the historical name in parentheses.\n21. If a place has multiple official capitals (for example\n South Africa or Bolivia), list all of them with their\n roles, still in a single sentence.\n22. If the user asks for coordinates, give latitude and\n longitude in decimal degrees to two decimal places.\n23. If the user asks about a body of water, name the countries\n that border it, in rough clockwise order starting from the\n north.\n24. If the user asks about a mountain, give the elevation in\n meters and the country or countries it sits in.\n25. Do not mention sanctions, travel advisories, or current\n conflicts. This assistant is a reference for geography, not\n current events.\n26. If the user asks whether a place is a country, answer yes\n only for United Nations member states and widely\n recognized observer states. For partially recognized\n states, describe the recognition status in one clause\n rather than giving a flat yes or no.\n27. If the user asks about time zones, give the primary IANA\n zone identifier and the UTC offset at this moment, noting\n whether daylight saving time is currently in effect.\n28. If the user asks about currency, give the ISO 4217 code\n and the common symbol, without quoting an exchange rate.\n29. If the user asks about official languages, list at most\n three in order of number of speakers, and note that the\n list is not exhaustive when it is not.\n30. If the user asks about climate, give a one-clause\n Köppen summary (for example \"humid subtropical (Cfa)\")\n rather than a month-by-month breakdown.\n31. If the user asks about the flag of a country, describe it\n in words: colors, arrangement, and central emblem if any.\n Do not attempt ASCII art.\n32. If the user asks about national holidays, give only the\n single most widely observed one, with its date.\n33. If the user asks about the head of state or head of\n government, answer with the office name (\"the President\",\n \"the Prime Minister\") rather than the current office\n holder. Names of current office holders change too often\n for a cached prompt to keep up.\n34. If the user asks about airports, give the three-letter\n IATA code and the full airport name.\n35. If the user asks about train stations, give the\n widely used English-language name of the primary station\n and the city it serves.\n","type":"text"}],"role":"system"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-sonnet-4-6","provider":"anthropic","request-id":"req_011Cgo2zBai69j9YxwjS8Vox","request_base_uri":"http://localhost:61523","request_method":"POST","request_path":"v1/messages","response_id":"msg_011Cgo2zC7iLGWFgH7CmkZPv"},"metrics":{"completion_tokens":25,"duration":1.8020851612091064,"end":1794030197.037327,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":1368,"prompt_cached_tokens":0,"prompt_tokens":1380,"start":1794030195.235242,"tokens":1405},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"container":null,"content":[{"text":"Paris (Paris) — though the local spelling is identical, so simply: Paris is the capital of France.","type":"text"}],"diagnostics":null,"id":"msg_011Cgo2zC7iLGWFgH7CmkZPv","model":"claude-sonnet-4-6","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":1368},"cache_creation_input_tokens":1368,"cache_read_input_tokens":0,"inference_geo":"global","input_tokens":12,"output_tokens":25,"service_tier":"standard","speed":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"a2e728a885664341df8937998eb1b0ab","scores":null,"span_attributes":{"name":"anthropic.messages.create","type":"llm"},"span_id":"5d11bb7e8189beac","span_parents":["14f99eb3641f88bb"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9RdOjsA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-67d7f8507c92.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-67d7f8507c92.json deleted file mode 100644 index 59188c8e..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-67d7f8507c92.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251263181783064","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:20.185Z","error":null,"expected":null,"facets":null,"id":"e88312ff0381cf14","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"anthropic"},"metrics":{"end":1788197840.8812249,"start":1788197840.185502},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"a7f40f13c51c478688d2891a2ecb5994","scores":null,"span_attributes":{"name":"messages","type":"task"},"span_id":"e88312ff0381cf14","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251263181783049","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:20.193Z","error":null,"expected":null,"facets":null,"id":"4573051b2a580e56","input":[{"content":"What is the capital of France?","role":"user"},{"content":"You are a helpful assistant.","role":"system"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-haiku-4-5-20251001","provider":"anthropic","request-id":"req_011CebESCtcEAExSTQWnCNG3","request_base_uri":"","request_method":"POST","request_path":"v1/messages","response_id":"msg_011CebESDKQWd9oh1mkEkKGn","temperature":0},"metrics":{"completion_tokens":10,"end":1788197840.880952,"estimated_cost":0.00007000000000000001,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":20,"start":1788197840.193185,"tokens":30},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"content":[{"text":"The capital of France is Paris.","type":"text"}],"id":"msg_011CebESDKQWd9oh1mkEkKGn","model":"claude-haiku-4-5-20251001","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"inference_geo":"not_available","input_tokens":20,"output_tokens":10,"service_tier":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"a7f40f13c51c478688d2891a2ecb5994","scores":null,"span_attributes":{"name":"anthropic.messages.create","type":"llm"},"span_id":"4573051b2a580e56","span_parents":["e88312ff0381cf14"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589161396","read_bytes":0,"actual_xact_id":"1000197783589161396"},"freshness_state":{"last_processed_xact_id":"1000197783589161396","last_considered_xact_id":"1000197783589161396"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-68a934551d9c.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-68a934551d9c.json deleted file mode 100644 index c49c9241..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-68a934551d9c.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251263181783067","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:21.491Z","error":null,"expected":null,"facets":null,"id":"5444ff4d598520ca","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai2-openai"},"metrics":{"end":1788197842.3771536,"start":1788197841.491162},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"7c6bbab7a5ef8898e6e9e45c2c15e717","scores":null,"span_attributes":{"name":"streaming","type":"task"},"span_id":"5444ff4d598520ca","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251263181783052","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:21.492Z","error":null,"expected":null,"facets":null,"id":"69311dffa41a40f6","input":[{"content":"you are a thoughtful assistant","role":"system"},{"content":"Count from 1 to 10 slowly.","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":800,"model":"gpt-4o-mini","provider":"openai","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","stream":true,"stream_options":{"include_obfuscation":false,"include_usage":true},"temperature":0,"x-request-id":"req_857fd1fb280e4286be76f1506aa791c3"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":40,"end":1788197842.376953,"estimated_cost":0.00002775,"prompt_cached_tokens":0,"prompt_tokens":25,"start":1788197841.4926531,"time_to_first_token":0.001239541,"tokens":65},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"logprobs":null,"message":{"content":"Sure! Here we go:\n\n1... \n2... \n3... \n4... \n5... \n6... \n7... \n8... \n9... \n10... \n\nTake your time!","refusal":null,"role":"assistant","tool_calls":[]}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"7c6bbab7a5ef8898e6e9e45c2c15e717","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"69311dffa41a40f6","span_parents":["5444ff4d598520ca"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-69badeea6ab9.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-69badeea6ab9.json new file mode 100644 index 00000000..07f54781 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-69badeea6ab9.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301062923845643","_xact_id":"1000198165816542980","audit_data":[{"_xact_id":"1000198165816542980","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:22.776Z","error":null,"expected":null,"facets":null,"id":"c7f396e96bfccb87","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"anthropic3"},"metrics":{"duration":0.6180343627929688,"end":1794030203.3943553,"start":1794030202.776321},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"037eac4e97713f2cc5d0311f71db01cc","scores":null,"span_attributes":{"name":"streaming","type":"task"},"span_id":"c7f396e96bfccb87","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301062923845637","_xact_id":"1000198165816542980","audit_data":[{"_xact_id":"1000198165816542980","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"anthropic","version":"3.0.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"anthropic","version":"3.0.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:22.780Z","error":null,"expected":null,"facets":null,"id":"0c57359e4096ad68","input":[{"content":"Count from 1 to 5.","role":"user"},{"content":"You are a helpful assistant.","role":"system"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-haiku-4-5-20251001","provider":"anthropic","request-id":"req_011Cgo2zjg1VVSNh1fZdZ4L5","request_base_uri":"http://localhost:61523","request_method":"POST","request_path":"v1/messages","response_id":"msg_011Cgo2zjqgiYvtwg9tAZDEU","stream":true},"metrics":{"completion_tokens":13,"duration":0.6139092445373535,"end":1794030203.3942392,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":22,"start":1794030202.78033,"time_to_first_token":0.573780083,"tokens":35},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"container":null,"content":[{"citations":null,"text":"1\n2\n3\n4\n5","type":"text","valid":true}],"diagnostics":null,"id":"msg_011Cgo2zjqgiYvtwg9tAZDEU","model":"claude-haiku-4-5-20251001","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0,"valid":true},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"inference_geo":"not_available","input_tokens":22,"output_tokens":13,"output_tokens_details":null,"server_tool_use":null,"service_tier":"standard","speed":"standard","valid":true},"valid":true},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"037eac4e97713f2cc5d0311f71db01cc","scores":null,"span_attributes":{"name":"anthropic.messages.stream","type":"llm"},"span_id":"0c57359e4096ad68","span_parents":["c7f396e96bfccb87"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9tkGHwA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-6c0039c3404e.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-6c0039c3404e.json deleted file mode 100644 index 50744f3b..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-6c0039c3404e.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07697041759309987842","_xact_id":"1000198039789571333","audit_data":[{"_xact_id":"1000198039789571333","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"environment":{"name":"ci","type":"ci"},"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.26-DIRTY"}},"created":"2026-10-15T23:33:02.520Z","error":null,"expected":null,"facets":null,"id":"2df3638a45b4e772","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.14-openai"},"metrics":{"duration":1.4295885562896729,"end":1792107183.9502165,"start":1792107182.520628},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"c48d6204a6ea9667d1f15a8d9fd15567","scores":null,"span_attributes":{"name":"responses_string_input","type":"task"},"span_id":"2df3638a45b4e772","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07697041759309987841","_xact_id":"1000198039789571333","audit_data":[{"_xact_id":"1000198039789571333","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"environment":{"name":"ci","type":"ci"},"instrumentation":{"name":"langchain4j","version":"1.14.0"},"name":"braintrust.sdk.java","version":"0.3.26-DIRTY"}},"created":"2026-10-15T23:33:02.530Z","error":null,"expected":null,"facets":null,"id":"54c2c0f7e39623a6","input":[{"content":[{"text":"Reply with one word.","type":"input_text"}],"role":"system","type":"message"},{"content":[{"text":"What is the capital of France?","type":"input_text"}],"role":"user","type":"message"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-4o-mini","provider":"openai","request_base_uri":"http://localhost:63508","request_method":"POST","request_path":"responses","response_id":"resp_048cfa9495def5c7016ad162aece3887d092d457342e6d647b","store":false,"stream":false,"x-request-id":"req_ef3ffe857ddb4f56b365e6fbdf92d1b5"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":3,"duration":1.4171311855316162,"end":1792107183.9473152,"estimated_cost":0.00000525,"prompt_cached_tokens":0,"prompt_tokens":23,"start":1792107182.530184,"tokens":26},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"content":[{"annotations":[],"logprobs":[],"text":"Paris.","type":"output_text"}],"id":"msg_048cfa9495def5c7016ad162afd3ec87d09894333fe994c0b4","role":"assistant","status":"completed","type":"message"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"c48d6204a6ea9667d1f15a8d9fd15567","scores":null,"span_attributes":{"name":"responses","type":"llm"},"span_id":"54c2c0f7e39623a6","span_parents":["2df3638a45b4e772"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-6d40dda80b18.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-6d40dda80b18.json new file mode 100644 index 00000000..b758362b --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-6d40dda80b18.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705300972648398859","_xact_id":"1000198165815165486","audit_data":[{"_xact_id":"1000198165815165486","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:02.216Z","error":null,"expected":null,"facets":null,"id":"9c864a68c21bd593","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.14-openai"},"metrics":{"duration":0.6662333011627197,"end":1794030182.8829803,"start":1794030182.216747},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"06dbdf79c1b531f6457af3b6b82b0f46","scores":null,"span_attributes":{"name":"responses_string_input","type":"task"},"span_id":"9c864a68c21bd593","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705300972648398852","_xact_id":"1000198165815165486","audit_data":[{"_xact_id":"1000198165815165486","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"langchain4j","version":"1.14.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"langchain4j","version":"1.14.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:02.217Z","error":null,"expected":null,"facets":null,"id":"acc26c3d6a76da5b","input":[{"content":[{"text":"Reply with one word.","type":"input_text"}],"role":"system","type":"message"},{"content":[{"text":"What is the capital of France?","type":"input_text"}],"role":"user","type":"message"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-4o-mini","provider":"openai","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"responses","response_id":"resp_0715f248b5efb733016aeeba665ec087d0a9be087add4e1465","store":false,"stream":false,"x-request-id":"req_31b9a22d157245d892a4c9d36ee80468"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":3,"duration":0.6654398441314697,"end":1794030182.8828428,"estimated_cost":0.00000525,"prompt_cached_tokens":0,"prompt_tokens":23,"start":1794030182.217403,"tokens":26},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"content":[{"annotations":[],"logprobs":[],"text":"Paris.","type":"output_text"}],"id":"msg_0715f248b5efb733016aeeba66cf1c87d09bf4479961419224","role":"assistant","status":"completed","type":"message"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"06dbdf79c1b531f6457af3b6b82b0f46","scores":null,"span_attributes":{"name":"responses","type":"llm"},"span_id":"acc26c3d6a76da5b","span_parents":["9c864a68c21bd593"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs8g9fpEA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-7144e4ded7ca.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-7144e4ded7ca.json new file mode 100644 index 00000000..ee384094 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-7144e4ded7ca.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301015719247878","_xact_id":"1000198165815822695","audit_data":[{"_xact_id":"1000198165815822695","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:08.135Z","error":null,"expected":null,"facets":null,"id":"7423f86a87ef59d9","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai2-openai"},"metrics":{"duration":2.284449338912964,"end":1794030190.4203784,"start":1794030188.135929},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"8a3033e729f3be8469842b56c6591292","scores":null,"span_attributes":{"name":"reasoning_completions","type":"task"},"span_id":"7423f86a87ef59d9","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301015719247873","_xact_id":"1000198165815822695","audit_data":[{"_xact_id":"1000198165815822695","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"springai","version":"2.0.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"springai","version":"2.0.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:08.139Z","error":null,"expected":null,"facets":null,"id":"93fc1e9c7e9ac517","input":[{"content":"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\n","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-6-luna","provider":"openai","reasoning_effort":"medium","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTUiOX16bRQjWpDq174c1Xh9kvTh","x-request-id":"req_f713a8cb8c7a45c29ff97e12d7fc52b8"},"metrics":{"completion_reasoning_tokens":51,"completion_tokens":151,"duration":2.280109167098999,"end":1794030190.4199252,"estimated_cost":0.00007960000000000001,"prompt_cached_tokens":0,"prompt_tokens":41,"start":1794030188.139816,"tokens":192},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"annotations":[],"content":"The differences are 4, 6, 8, 10—each increases by 2. The terms follow the pattern \\(1\\cdot2,\\;2\\cdot3,\\;3\\cdot4,\\;4\\cdot5,\\;5\\cdot6\\).\n\nSo, counting the first term as \\(n=1\\), the formula is:\n\n\\[\na_n = n(n+1)\n\\]","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"8a3033e729f3be8469842b56c6591292","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"93fc1e9c7e9ac517","span_parents":["7423f86a87ef59d9"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs83BaMMA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-729686f4b73a.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-729686f4b73a.json index 720f8648..48557365 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-729686f4b73a.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-729686f4b73a.json @@ -1 +1 @@ -{"data":[{"count":1,"version":"1000197155625133059"}],"schema":{"type":"array","items":{"type":"object","properties":{"version":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the dataset (see the `version` parameter)","type":"string"},"count":{"type":"integer"}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197155625133059","read_bytes":0,"actual_xact_id":"1000197155625133059"},"freshness_state":{"last_processed_xact_id":"1000197155625133059","last_considered_xact_id":"1000197155625133059"},"warnings":[]} \ No newline at end of file +{"data":[{"count":1,"version":"1000197155625133059"}],"schema":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer"},"version":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the dataset (see the `version` parameter)","type":"string"}}},"x-bt-column-order":["version","count"]},"realtime_state":{"type":"on","minimum_xact_id":"1000197155625133059","read_bytes":0,"actual_xact_id":"1000197155625133059"},"freshness_state":{"last_processed_xact_id":"1000197155625133059","last_considered_xact_id":"1000197155625133059"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-739d33493ddb.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-739d33493ddb.json new file mode 100644 index 00000000..f0aa9d36 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-739d33493ddb.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705300994175401992","_xact_id":"1000198165815493962","audit_data":[{"_xact_id":"1000198165815493962","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:05.390Z","error":null,"expected":null,"facets":null,"id":"1206250176f686d7","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"bedrock"},"metrics":{"duration":2.056065320968628,"end":1794030187.4464674,"start":1794030185.390402},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"32895cf1221aa059062f74629937c216","scores":null,"span_attributes":{"name":"reasoning","type":"task"},"span_id":"1206250176f686d7","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705300994175402001","_xact_id":"1000198165815493962","audit_data":[{"_xact_id":"1000198165815493962","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"aws-bedrock","version":"2.30.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"aws-bedrock","version":"2.30.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:05.533Z","error":null,"expected":null,"facets":null,"id":"f59d73691d42c121","input":[{"content":[{"text":"A farmer has 17 sheep and all but 9 run away. How many sheep are left? Reason it through, then give the number.","type":"text"}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","endpoint":"converse","max_tokens":2048,"model":"us.anthropic.claude-haiku-4-5-20251001-v1:0","provider":"bedrock","request_base_uri":"http://localhost","request_method":"POST","request_path":"model/us.anthropic.claude-haiku-4-5-20251001-v1%3A0/converse"},"metrics":{"completion_tokens":228,"duration":1.9108095169067383,"end":1794030187.4441457,"estimated_cost":0.0013288,"prompt_cache_creation_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":68,"start":1794030185.5333362,"tokens":296},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"content":[{"reasoningContent":{"reasoningText":{"signature":"EugECoQBCBMQARgCKkAqQhHi3C79Kd7PpmCTm7Ozo+Pk6MB5/ASRm+y6RNrk6Y63TrnEZvO3zEb5Ujv9+6DzzJtryjAX5uN31t+HiHn3MhljbGF1ZGUtaGFpa3UtNC01LTIwMjUxMDAxOABCCHRoaW5raW5nWgw4MjAxNzU4MzI0MDKoAer0utcGEgzk+jZhRxsBB4tZE88aDDPR0AP8OUmtYJdlNSIwY7SafdoI7/mBxkZAnj3ReocDBEEn4DIbP8gtJtsR/Ld51u4hypVhERTrSGXPeYJTKpAD/j1iTQdFUGJOXKmZ9iSslGNWmd89YWyI/L66uEpN1w0OdNxwkhQkmtXR+4i+cyrwDkiZPAl1BRdpfBd8gTTRohL62EBoeqcwd2RZ69lmeHpJkaM+AwuqhgYJrJnGnIK7l9UAPK8TQ17243vSmtUZDVjArpc8Av+2OLMSedmUz4YOPddNgxrbgZbl/lwnP6HNLHuXp+RjdenmmxHNdPNFi9rhY5kzZPL8Y2IccmcvHc4eG+FyD5YL9+3wwI8dYXPecQSrsJaX0LcnJ4L3QGBsi1wuvnpCInSyc6r2O0y4KtyemWuFkHpVLkVIzI3AL1pRawpZLu7SeiFtBnIk2ywTmauzXmdjdxAgSv4Fiq8nsxOCEL0Ntb7/sJA7mINtKMBNkDKrBtuojrRKuhhe2Vvbm7NKoxmp8hlljnRqKkO2wHxoXwQAwPOTka1xYHGBEjsPd2/w2HtbRafr3lVrgwez6EHajyjBLespFh9YwEKNU/Ula8Iu1C2eb1TMhhxxinC+3WQHhNjcdgdgS6bQNEi0QRgB","text":"Let me work through this carefully.\n\nThe farmer has 17 sheep.\n\"All but 9 run away\" means that all except 9 run away.\n\nSo if all but 9 run away, that means 9 sheep don't run away.\n\nTherefore, the number of sheep left = 9\n\nLet me double-check this reasoning:\n- Started with: 17 sheep\n- \"All but 9 run away\" = 9 sheep stay, (17-9=8) sheep run away\n- Sheep left: 9\n\nYes, 9 sheep are left."}},"type":"thinking"},{"text":"# Reasoning through it:\n\nThe phrase \"all but 9 run away\" means all sheep **except** 9 run away.\n\n- Started with: 17 sheep\n- \"All but 9\" run away = 9 sheep remain\n- The other sheep that ran away: 17 - 9 = 8\n\n**Number of sheep left: 9**","type":"text"}],"role":"assistant"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"32895cf1221aa059062f74629937c216","scores":null,"span_attributes":{"name":"bedrock.converse","type":"llm"},"span_id":"f59d73691d42c121","span_parents":["1206250176f686d7"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs8tUFyUA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-74485bdefc94.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-74485bdefc94.json new file mode 100644 index 00000000..03cb72ff --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-74485bdefc94.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301015719247888","_xact_id":"1000198165815822695","audit_data":[{"_xact_id":"1000198165815822695","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:08.241Z","error":null,"expected":null,"facets":null,"id":"5664072e2658e48e","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"google"},"metrics":{"duration":7.060290336608887,"end":1794030195.3020623,"start":1794030188.241772},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"eff8f2ad8dded701de7d5d2d01f4923f","scores":null,"span_attributes":{"name":"thinking","type":"task"},"span_id":"5664072e2658e48e","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301015719247872","_xact_id":"1000198165815822695","audit_data":[{"_xact_id":"1000198165815822695","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"genai","version":"1.18.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"genai","version":"1.18.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:08.242Z","error":null,"expected":null,"facets":null,"id":"2527ee45b6403878","input":{"config":{"temperature":0,"thinkingConfig":{"includeThoughts":true}},"contents":[{"parts":[{"text":"Explain why the sum of two odd integers is even. Be concise."}],"role":"user"}],"model":"gemini-3.8-flash"},"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gemini-3.8-flash","provider":"google","temperature":0},"metrics":{"completion_reasoning_tokens":368,"completion_tokens":464,"duration":7.058823347091675,"end":1794030195.301572,"prompt_tokens":15,"start":1794030188.2427487,"tokens":479},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"candidates":[{"content":{"parts":[{"text":"**My Analysis of Why the Sum of Two Odd Integers is Even**\n\nAlright, let's break this down. The request is straightforward: explain, concisely, why the sum of two odd integers is even. My mind immediately goes to the mathematical definition of an odd integer. I need to keep this very targeted.\n\nFirst, I define an odd integer generally: it can be expressed as $2k + 1$, where $k$ is an integer. Now, to the specific problem. Let's represent the two odd integers as $a = 2m + 1$ and $b = 2n + 1$, where $m$ and $n$ are also integers. This is the foundation.\n\nNext step: I'll perform the summation. I can clearly see that $a + b = (2m + 1) + (2n + 1)$. Expanding that out, I get $2m + 2n + 2$, which I can then factor as $2(m + n + 1)$. This form immediately tells me the answer.\n\nSince $m, n \\in \\mathbb{Z}$, the expression $m + n + 1$ is also an integer. Thus, the entire sum is an integer multiplied by 2. That's it! By definition, an integer that is a multiple of two is an even integer. I know this is solid.\n\nNow, how to express this concisely? I could state the essential points sequentially and use succinct language. Something along the lines of \"Any odd integer can be written as $2k + 1$, where $k$ is an integer. Adding two odd integers, $(2m + 1)$ and $(2n + 1)$, gives: $(2m + 1) + (2n + 1) = 2m + 2n + 2 = 2(m + n + 1)$. Because the result is a multiple of 2, the sum is always even.\" I don't see any need to edit this. It's direct, precise, and gets the point across. The solution is complete.\n\n\n","thought":true},{"text":"Any odd integer can be written as $2k + 1$, where $k$ is an integer. \n\nAdding two odd integers gives:\n$$(2m + 1) + (2n + 1) = 2m + 2n + 2 = 2(m + n + 1)$$\n\nBecause the sum can be factored by $2$, the result is a multiple of $2$, which means it is always even.","thoughtSignature":"EscICsQIAWkUfRMVz5eKAdUp6N2+wvqSV9igG6q+a0CND4ziJxsu5KdoV90ImqtBDdJYDQCzTQ0R8wjakx7ydS+miMyArY5IGJ8HC+QehWzb9deIOabOZ4NkTjYsaD7kQO3rRe8ci3pn1wgpy6vOfthHIJHRxzUzzCPu713mudzIucjxUeS2YsuyI1b5C0VC8SiaSFSVST1SmHkI9ZKqaVK5RzrpnvWWQmyMDiH6qp3pcV8ZpDvGo9tkwnAueHclFfY6vrwegA51ede+lP2ygARkENcFgnurx7MEWI/fdKVf7Ywiy4Fx1wxk/F4vpBLMjVid2BjBrwIXdmI5gpO14woSaiuh3W6wAZuBoGhu525ucne3f/Gu8vtfnXi2kWClWW15Ngcuutu8BAtJpf6siWgyiLpA7c6+p7Qowrr05sPWPRHbTjhpqtSrYTCxEaYHy0fiw/HSmo+SmY1DTPaaUDQwJ3kWOSgBcn5aCy45pTi0TKNnvjWJEAOEmNjAlrIGibV1tfR4ms3akU0GdHmM0+FRjXdqZW7mWNKaWKfu4Ul0veNj0IVcJZufbSj9j2ziE9fHNmaGOXgdr/NHX1jK0D6XcQgyQMrL1ppFrt09brvpuRxQq+toAA0ANmeCmHUPCdRMcibG0J6ZxLv7A4iPlOKKaI6FWs+UNiF3KBnlfZP7Fibp4OT0UmO5idfH0J1V1FsHG8KcM8hEr9Mr7hJMxRwvncMbjeuKVWwKgzkSz//eKppjPCTqefsYBYjNOBgB+eM7eIUyYAmNKWJdzawmbdV+NjYOnxFRGIRdKDMSxS9LOON27GsWRD3SfdMoXz3Hc/Yypxp6SwNcpTP6zp2MbBvni6d9u3/yxeV/7+dvwXXUhTWtvvmoBevdiXrC0uMKEI2g+OD8UatN1z/VYVhMDE6nP5LmyDP/+3GLq/Nmh35SscvoIhpO6IKcobX6jEJDE6kwxhihNpsFBr3sG5FuX6aN/zDeOqkSR14kLwqw1rin4tvKEbm0hfKUCl3QPhxVZqptef2xG6t+DQy8fdojg9H0spaxOHj92ziRMbJf7v5BgqXXJe6nIZZowZKmYc43qVJeiQ6WrokBG78CvdnhVyJwQ5ohy1mQi4Y3U3kNdccKcesyJUgXkxUPhLXlIonJRt1MZJQFxYp8/NKDe2HHK3zzLR9+BUUvb2/XSVBNzYaySOmPETrzCQln4vAZPse44Ml1nYK4JUrgHB8AzKFX7/WrEbZXKi84arR7NBYMc3aDARwKV6FbZRL+o7DrgEdyqdQD9mI/56UcOL/2vJhSvKtIxhaNLcjD3gcdxrX/RvXYODn0JxQLso1kNdQjoLG8SdEhNV520YwDOEe3D1inx6w01C9zOvPj42j+b3zKbmg8ok+qp3WpDXqWIa+aOhdg8M/6ZnUObi2sHGYCBTMD4wWpK06OYR7NebFnLUrArPUUGMnhZtgD0P2T"}],"role":"model"},"finishReason":"STOP","index":0}],"modelVersion":"gemini-3.8-flash","responseId":"bLruauLvGbqFz7IP64faoAw","usageMetadata":{"candidatesTokenCount":96,"promptTokenCount":15,"promptTokensDetails":[{"modality":"TEXT","tokenCount":15}],"serviceTier":"standard","thoughtsTokenCount":368,"totalTokenCount":479}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"eff8f2ad8dded701de7d5d2d01f4923f","scores":null,"span_attributes":{"name":"generate_content","type":"llm"},"span_id":"2527ee45b6403878","span_parents":["5664072e2658e48e"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs83Z92IA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-78f0a8f58774.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-78f0a8f58774.json index 720f8648..48557365 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-78f0a8f58774.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-78f0a8f58774.json @@ -1 +1 @@ -{"data":[{"count":1,"version":"1000197155625133059"}],"schema":{"type":"array","items":{"type":"object","properties":{"version":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the dataset (see the `version` parameter)","type":"string"},"count":{"type":"integer"}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197155625133059","read_bytes":0,"actual_xact_id":"1000197155625133059"},"freshness_state":{"last_processed_xact_id":"1000197155625133059","last_considered_xact_id":"1000197155625133059"},"warnings":[]} \ No newline at end of file +{"data":[{"count":1,"version":"1000197155625133059"}],"schema":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer"},"version":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the dataset (see the `version` parameter)","type":"string"}}},"x-bt-column-order":["version","count"]},"realtime_state":{"type":"on","minimum_xact_id":"1000197155625133059","read_bytes":0,"actual_xact_id":"1000197155625133059"},"freshness_state":{"last_processed_xact_id":"1000197155625133059","last_considered_xact_id":"1000197155625133059"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-7af8f6f1166b.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-7af8f6f1166b.json new file mode 100644 index 00000000..1677b9bb --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-7af8f6f1166b.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705300994175401988","_xact_id":"1000198165815493962","audit_data":[{"_xact_id":"1000198165815493962","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:04.477Z","error":null,"expected":null,"facets":null,"id":"e7b99442a48b1bf9","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"openai"},"metrics":{"duration":0.913029670715332,"end":1794030185.3902845,"start":1794030184.4772549},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"e40bc9abb95d3ef94aeb1ee86723506c","scores":null,"span_attributes":{"name":"completions","type":"task"},"span_id":"e7b99442a48b1bf9","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705300994175402004","_xact_id":"1000198165815493962","audit_data":[{"_xact_id":"1000198165815493962","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"openai","version":"2.15.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"openai","version":"2.15.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:04.484Z","error":null,"expected":null,"facets":null,"id":"b6e165f30679bae3","input":[{"content":"you are a helpful assistant","role":"system"},{"content":"What is the capital of France?","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-6-luna","provider":"openai","reasoning_effort":"none","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTUeOmjyECoSVVispuNEpNOWFrc1","stream":false,"temperature":0,"x-request-id":"req_ead84bb32de2434489dd662c8c298f85"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":5,"duration":0.9058210849761963,"end":1794030185.390053,"estimated_cost":0.000004700000000000001,"prompt_cached_tokens":0,"prompt_tokens":22,"start":1794030184.484232,"tokens":27},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"annotations":[],"content":"Paris.","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"e40bc9abb95d3ef94aeb1ee86723506c","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"b6e165f30679bae3","span_parents":["e7b99442a48b1bf9"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs8pZ/UQA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-7dd30b8a467f.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-7dd30b8a467f.json new file mode 100644 index 00000000..c8488be3 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-7dd30b8a467f.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301015719247884","_xact_id":"1000198165815822695","audit_data":[{"_xact_id":"1000198165815822695","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:09.732Z","error":null,"expected":null,"facets":null,"id":"b1d3e13329623f82","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.14-openai"},"metrics":{"duration":3.4744772911071777,"end":1794030193.2065513,"start":1794030189.732074},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"de4dc3263d92bada489c20f5f858375f","scores":null,"span_attributes":{"name":"web_search","type":"task"},"span_id":"b1d3e13329623f82","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301015719247877","_xact_id":"1000198165815822695","audit_data":[{"_xact_id":"1000198165815822695","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"langchain4j","version":"1.14.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"langchain4j","version":"1.14.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:09.732Z","error":null,"expected":null,"facets":null,"id":"1da4d994a55ca683","input":[{"content":[{"text":"Search the web for a recent AI news headline and answer in one sentence.","type":"input_text"}],"role":"user","type":"message"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","include":["reasoning.encrypted_content"],"model":"gpt-6-luna","provider":"openai","reasoning":{"effort":"none"},"request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"responses","response_id":"resp_0457fd82f012e247016aeeba6de65887d0a788f9d69e3292a0","store":false,"stream":false,"tools":[{"search_context_size":"low","type":"web_search_preview"}],"x-request-id":"req_5ce7bb97d594467aaeb8613109ebb37a"},"metrics":{"completion_reasoning_tokens":34,"completion_tokens":75,"duration":3.473444700241089,"end":1794030193.2063117,"estimated_cost":0.00051274,"prompt_cached_tokens":4454,"prompt_tokens":8761,"start":1794030189.732867,"tokens":8836},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"action":{"queries":["recent AI news headline June 2025 artificial intelligence news"],"query":"recent AI news headline June 2025 artificial intelligence news","type":"search"},"id":"ws_0457fd82f012e247016aeeba6e8acc87d099f366d955eff8c7","status":"completed","type":"web_search_call"},{"content":[{"annotations":[{"end_index":187,"start_index":94,"title":"UK will face AI cyberattacks on critical infrastructure by 2028, official says","type":"url_citation","url":"https://apnews.com/article/4e61bf9b55c7d1d15cfd075859d2ba08?utm_source=openai"}],"logprobs":[],"text":"AP reports: “UK will face AI cyberattacks on critical infrastructure by 2028, official says.” ([apnews.com](https://apnews.com/article/4e61bf9b55c7d1d15cfd075859d2ba08?utm_source=openai))","type":"output_text"}],"id":"msg_0457fd82f012e247016aeeba706dc487d09ca4e042e322abf6","phase":"final_answer","role":"assistant","status":"completed","type":"message"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"de4dc3263d92bada489c20f5f858375f","scores":null,"span_attributes":{"name":"responses","type":"llm"},"span_id":"1da4d994a55ca683","span_parents":["b1d3e13329623f82"],"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301015719247876","_xact_id":"1000198165815822695","audit_data":[{"_xact_id":"1000198165815822695","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"langchain4j","version":"1.14.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"langchain4j","version":"1.14.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:13.206Z","error":null,"expected":null,"facets":null,"id":"99fee48cd5b0bb9d","input":{"action":{"queries":["recent AI news headline June 2025 artificial intelligence news"],"query":"recent AI news headline June 2025 artificial intelligence news","type":"search"}},"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","status":"completed","tool_id":"ws_0457fd82f012e247016aeeba6e8acc87d099f366d955eff8c7","tool_type":"web_search_call"},"metrics":{"duration":0,"end":1794030193.206107,"start":1794030193.206107},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"status":"completed"},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"de4dc3263d92bada489c20f5f858375f","scores":null,"span_attributes":{"name":"web_search_call","type":"tool"},"span_id":"99fee48cd5b0bb9d","span_parents":["1da4d994a55ca683"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9J5eeYA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-7df9d61397ac.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-7df9d61397ac.json deleted file mode 100644 index bdb2b787..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-7df9d61397ac.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251263181783057","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:17.751Z","error":null,"expected":null,"facets":null,"id":"4f9d959a5ef7dbe1","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.14-openai"},"metrics":{"end":1788197838.4724698,"start":1788197837.751423},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"d1f2db2c39c3e0beddf6391270cb48a2","scores":null,"span_attributes":{"name":"tools","type":"task"},"span_id":"4f9d959a5ef7dbe1","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251263181783042","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:17.757Z","error":null,"expected":null,"facets":null,"id":"c155ba94fa888b0c","input":[{"content":"What is the weather like in Paris, France?","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":500,"model":"gpt-4o","provider":"openai","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0EYWAR5JEsdiBHX5HNYzDjo0t8E","stream":false,"temperature":0,"tools":[{"function":{"description":"Get the current weather for a location","name":"get_weather","parameters":{"properties":{"location":{"description":"The city and state, e.g. San Francisco, CA","type":"string"},"unit":{"description":"The unit of temperature","enum":["celsius","fahrenheit"],"type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"x-request-id":"req_24068c5c109041cda4489a2e3cf96034"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":16,"end":1788197838.4711385,"estimated_cost":0.0003725,"prompt_cached_tokens":0,"prompt_tokens":85,"start":1788197837.757798,"tokens":101},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"tool_calls","index":0,"logprobs":null,"message":{"annotations":[],"content":null,"refusal":null,"role":"assistant","tool_calls":[{"function":{"arguments":"{\"location\":\"Paris, France\"}","name":"get_weather"},"id":"call_NpP8IKPMjzwEkmeYXoyQe0sV","type":"function"}]}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"d1f2db2c39c3e0beddf6391270cb48a2","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"c155ba94fa888b0c","span_parents":["4f9d959a5ef7dbe1"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-7f1daac35cfc.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-7f1daac35cfc.json new file mode 100644 index 00000000..113693c7 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-7f1daac35cfc.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301041400578060","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:17.611Z","error":null,"expected":null,"facets":null,"id":"3ab7ebb519eea341","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai-anthropic"},"metrics":{"duration":0.633939266204834,"end":1794030198.2453334,"start":1794030197.6113942},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"6f8104063106cc431a1831f454ab172a","scores":null,"span_attributes":{"name":"streaming","type":"task"},"span_id":"3ab7ebb519eea341","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301041400578051","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"springai","version":"1.0.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"springai","version":"1.0.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:17.613Z","error":null,"expected":null,"facets":null,"id":"a15514fc80dfc8bc","input":[{"content":"Count from 1 to 5.","role":"user"},{"content":"You are a helpful assistant.","role":"system"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"claude-haiku-4-5-20251001","provider":"anthropic","request-id":"req_011Cgo2zMYk4X6QzLAbpU9S3","request_base_uri":"http://localhost:61523","request_method":"POST","request_path":"v1/messages","response_id":"msg_011Cgo2zMiv7Pdt99fSsGD93"},"metrics":{"completion_tokens":13,"duration":0.6318850517272949,"end":1794030198.2452064,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":22,"start":1794030197.6133213,"time_to_first_token":0.620652875,"tokens":35},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"content":[{"text":"1\n2\n3\n4\n5","type":"text"}],"id":"msg_011Cgo2zMiv7Pdt99fSsGD93","role":"assistant","stop_reason":"end_turn","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"inference_geo":"not_available","input_tokens":22,"output_tokens":13,"service_tier":"standard","speed":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"6f8104063106cc431a1831f454ab172a","scores":null,"span_attributes":{"name":"anthropic.messages.stream","type":"llm"},"span_id":"a15514fc80dfc8bc","span_parents":["3ab7ebb519eea341"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9aUL9UA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-811cf73687e1.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-811cf73687e1.json deleted file mode 100644 index acca4eb2..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-811cf73687e1.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251121458085899","_xact_id":"1000197783584770126","audit_data":[{"_xact_id":"1000197783584770126","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:49.379Z","error":null,"expected":null,"facets":null,"id":"7ec876707b9c9fe8","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"openai"},"metrics":{"end":1788197810.3392892,"start":1788197809.379051},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"8b02184076aef8ce6d7c5f6514b7f52e","scores":null,"span_attributes":{"name":"completions","type":"task"},"span_id":"7ec876707b9c9fe8","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251121458085892","_xact_id":"1000197783584770126","audit_data":[{"_xact_id":"1000197783584770126","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:49.385Z","error":null,"expected":null,"facets":null,"id":"ffe1b7d067bed6b0","input":[{"content":"you are a helpful assistant","role":"system"},{"content":"What is the capital of France?","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-4o-mini","provider":"openai","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0E58PI3B4EgwwAt1s9bi7kts51y","stream":false,"temperature":0,"x-request-id":"req_2327ffc15ed94e768b2e95766bfe75c3"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":7,"end":1788197810.338592,"estimated_cost":0.00000765,"prompt_cached_tokens":0,"prompt_tokens":23,"start":1788197809.38583,"tokens":30},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"logprobs":null,"message":{"annotations":[],"content":"The capital of France is Paris.","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"8b02184076aef8ce6d7c5f6514b7f52e","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"ffe1b7d067bed6b0","span_parents":["7ec876707b9c9fe8"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-821ab2f1bebd.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-821ab2f1bebd.json new file mode 100644 index 00000000..35812aba --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-821ab2f1bebd.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301062923845642","_xact_id":"1000198165816542980","audit_data":[{"_xact_id":"1000198165816542980","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:21.476Z","error":null,"expected":null,"facets":null,"id":"5750d6887bae7d1b","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"anthropic3"},"metrics":{"duration":1.8281476497650146,"end":1794030203.3046749,"start":1794030201.4765272},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"1a2857d148e17fd8016415f4b4d92d08","scores":null,"span_attributes":{"name":"attachments","type":"task"},"span_id":"5750d6887bae7d1b","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301062923845636","_xact_id":"1000198165816542980","audit_data":[{"_xact_id":"1000198165816542980","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"anthropic","version":"3.0.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"anthropic","version":"3.0.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:21.506Z","error":null,"expected":null,"facets":null,"id":"14d18db59a5edd8a","input":[{"content":[{"text":"Briefly describe these attachments","type":"text"},{"source":{"content_type":"image/png","filename":"attachment.png","key":"7121fdd3-8b36-448d-8e25-d50d01fdeaf2","type":"braintrust_attachment"},"type":"image"},{"source":{"content_type":"application/pdf","filename":"attachment.pdf","key":"87ba96f7-9a44-43f3-9ee1-5e72cd17d389","type":"braintrust_attachment"},"type":"document"}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-haiku-4-5-20251001","provider":"anthropic","request-id":"req_011Cgo2zeAsXs8NZtaKV9JDF","request_base_uri":"http://localhost:61523","request_method":"POST","request_path":"v1/messages","response_id":"msg_011Cgo2zeLnHQaRhD2euKBha"},"metrics":{"completion_tokens":111,"duration":1.7975964546203613,"end":1794030203.3042264,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":1592,"start":1794030201.50663,"tokens":1703},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"container":null,"content":[{"text":"I can see that a PDF document has been attached, but the page appears to be blank or contains only a small red dot/mark in the upper left corner. The document doesn't display any visible text, images, or meaningful content that I can describe.\n\nCould you please:\n1. Verify that the correct file was uploaded\n2. Re-upload the document if there was an issue\n3. Provide additional context about what the attachment should contain\n\nThis will help me give you an accurate description of the content.","type":"text"}],"diagnostics":null,"id":"msg_011Cgo2zeLnHQaRhD2euKBha","model":"claude-haiku-4-5-20251001","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"inference_geo":"not_available","input_tokens":1592,"output_tokens":111,"service_tier":"standard","speed":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"1a2857d148e17fd8016415f4b4d92d08","scores":null,"span_attributes":{"name":"anthropic.messages.create","type":"llm"},"span_id":"14d18db59a5edd8a","span_parents":["5750d6887bae7d1b"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9o0WbIA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-861c67da54b7.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-861c67da54b7.json deleted file mode 100644 index 21cae7f5..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-861c67da54b7.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251233063075848","_xact_id":"1000197783586473083","audit_data":[{"_xact_id":"1000197783586473083","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:04.517Z","error":null,"expected":null,"facets":null,"id":"315297cdabb281bb","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"anthropic"},"metrics":{"end":1788197830.6268418,"start":1788197824.517608},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"5ebbf0fd54af3ba1dafc91c34d181abf","scores":null,"span_attributes":{"name":"web_search","type":"task"},"span_id":"315297cdabb281bb","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251233063075841","_xact_id":"1000197783586473083","audit_data":[{"_xact_id":"1000197783586473083","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:04.564Z","error":null,"expected":null,"facets":null,"id":"57273781b5b257ec","input":[{"content":"Search the web for a recent AI news headline and answer in one sentence.","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":1024,"model":"claude-sonnet-4-5-20250929","provider":"anthropic","request-id":"req_011CebER47EqcpjaoTk5ohNU","request_base_uri":"","request_method":"POST","request_path":"v1/messages","response_id":"msg_011CebER4qPptWWLL5nos1fi","tools":[{"name":"web_search","type":"web_search_20250305"}]},"metrics":{"completion_tokens":101,"end":1788197830.626526,"estimated_cost":0.02736,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":8615,"server_tool_use_web_fetch_requests":0,"server_tool_use_web_search_requests":1,"start":1788197824.564009,"tokens":8716},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"content":[{"id":"srvtoolu_012jwHZbUsD8YwQ2PmJfaAmi","input":{"query":"AI news today"},"name":"web_search","type":"server_tool_use"},{"caller":{"type":"direct"},"content":[{"encrypted_content":"EukECioIExgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDHiiDiMIrsjIAQzF1xoMdW3Y8Q59ciJcmwdhIjCBxPG9C7bzR1FM0BWbP76uz0cF4qYUBsL3pV+e/hYwqjbawAhAEp4b3WhhYflp6Ysq7APbkZO9K/ZbA8L7xWaU0XHz5atSGmDzf+B/OtW2CudXA/MCAalDwfO+dI150GPvlKmcMGmmxMuae3iw59kaZHB2YvJ66iJTbK+feagQHT96N/EsagcG3jWCqOfZJqWJoQv8l4vp0A1Bp5u5T3isSP4tbYDfZe9oOBek90P8g9KpnApVnhVQ5yMyczAU9xoan+O6UWlqnQFdMkrE4+KCakWK8RonII+hV9i5+BGuECGiFUi+yYT8yrgSbgz4pZRXiRxNhsvorrGl8AqhMDWMf+JGBN3pH4LVnILE2Ie9uSYgjclwXgXc3jAMmrMYdZVIR/M20QUz3daVa0lz6K8m5Ni1DEy325BBn7SuMzJTnHGMOCYC51MnQUFx/yKM/cjk2ZqcbA0AxLzz1raYo//mYdTtRqk52IYHhmBAt7d0MnpwL5mcBgyBv8FcVXu//wdVy4OfU849+b+XbucTGypBCnaYeBpo5I6+wZZbTx1ulVDUrA6KTXhOkQ5tuxUtccqK64lhv7Ix2pZvhThczAPGvPeZKqi6o0VMKIolEmja5PDXuKuStj1ZTvdNRMZuHm6+pTvak7TxmVxAqYY/8grBHN7NVJ2Ixba2HkHSq0yPyQN4r37iHqXQKMFoo1bkI7rrY9VwURjxMj9Kfr2ZmNMYAw==","page_age":"1 day ago","title":"AI News & Artificial Intelligence | TechCrunch","type":"web_search_result","url":"https://techcrunch.com/category/artificial-intelligence/"},{"encrypted_content":"EqYJCioIExgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDA6UMi9Wr7J9tjDLLxoM0m7HXUCKR4cWCMF5IjA5p/vXJs3idWsC6tCeupkVZlZdi9urlZ9FE10P3bzHMK9lc4dckGO32jGNNoiwOXwqqQhl5Z2vGFSPdX5xYjXSiziWiKBMB9QeodKKvJbdGUQ7aVuvA2CErJTW+6C6Rs0wW25cJa/antx7MbkEzGzReNdd+eb746MOIzuPSh10ZB905ozznudYszqfqhRBQnClZnh6kRnbrWSGwO9UPh4vfeuWdj3DyxWrPnW36oxJda963P6kiM0npDqNAuOiuEfzxMyr7Pa5T1o6sFEa/vxDmo7cD1Sh6UzPdVxmj4Si7iUgVYw2LSYTIHZhttUY8253XrCQIXdJSEI4CSelMUfnpGZDZ9tbBb+v6Wg04IERoVNP9Iub8vAAl8WhE12EwwEjcT0uFpJHLeKe9VoVTplmVSKcE+RaXwiGRE9yZM+/uHRHuedWLytsOEfAvnk7GlvTzobWxrDkG3iduitjy8GAn8BogJM37yT6a3CrvJlGh2IoYJS18Y3txm21kygj7yqYftJTYfUaELNyNCMKjao0Az9+4C27AqWxzWM80m9l68129VHTNiP+OlZnrCugcVcmm9YztjRXRbfVjrQYurpJP75IAKyUT1FjzP4NXO/FRN4zc7mlqASwYRIu+j9gejSAN4dreXhTk/v+bNJDQKCemWriKUREb130DIPBVbaC2eXP0pxPuBVtoroJR6CMaXrtoCGDyYoXYWOtzFHzhNrxm/28wfTJPEIn2VsKr0QoD9nonn16/gcKLisXhfD3av6izCY23zROsOj+q4wvM5/3sh7IyLzpWqWvYIDzJJ2+8ZMURFZl4aTsz3Snmr9s3w53PpT7xAx4hiL/dwF+dADKVfKVf3+zLfNrNkypfv9BmG/ONDcjbR9JbvBqKrrorNcDhfaosDaBUqxcFhpl/LkPpvK2MD9Ew8YTq0kwKlRnJkCIiAxRT1Z3aspV8Em0qKzcrQRIBX09hSyRKeFOX4neGbbh6aTHa/BW0Ao8LWUhfTCa5Vkdx7+6/SnSkEItoJv5XAXlhGbWEmD7ywIhwdIxmzAg9fu8AzhY6dZeo+Zrx151W9TB9H0OLGZz7RtHDMiEoRQDT8m1szUDoiEQnPbdp8yJoQDmR7+c36H2umLWdPO3j1qnjjqbolh3/lzLsY0wfTatW1n1LNy+/WPZUV1ZATm1yQ8xM/cMuYK2l+eBX17VLrOlgnvVoHIzOe2AdJt2SYKF7Qh47dkOumMHd7TR8k19sO0OsL7sGuSYvYlRUiZSitiyqWbMYWbwhQGK0tRq9yRKvJhLJynalePMteMuTUu5Ng24DjN4WRyyfyBTYK6alinw4Y6T43+bM8Jp5FOK3j9+MLuaLsA0mPi7cWRjZkRHtFhVAzTBbi183V/eqZcDRibKE0IrYgq796Y0HfDiEUXm29rXaM2WHwrjjWpHnphQLtaW5KKhl5DVADT2MKAThNeAfXCumE6Eh85qeTS964bZCltCZbB5fLcYAw==","page_age":"3 days ago","title":"AI News | Latest News | Insights Powering AI-Driven Business Growth","type":"web_search_result","url":"https://www.artificialintelligence-news.com/"},{"encrypted_content":"EuAQCioIExgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDCLN3f3DSoOqjvUZ9hoM3q4qZeJNnmdj9FAUIjDUCNbZGhsI0faSEfXEx0wbH3uZx3Yq3OdRBfx4RrqbEuT3cpMHppm07SA6a3azIHwq4w9nrJzKwFAnaIjFCv0kW0iNPJp01izUQ7Rqq2TdTuBfsTUu+ayLdbmeAp4X8tujqaAlIwu9+a8WVo/zRUJ4KuqrbthLJ2bpEawkzZLvDWYWUdDdmh9YhUBnnZOPj4otElHYbb5YaOcoXhNeddxLhVvZFKlNwRm5kIm264ME52Npp5eMXCdHEehXmZj41JkkTa+nV7or1nHD64c74OyharZ+Q2+FqgeuZbCj5U/AmJUzhyyazdij9INrMfhi38O9OlZgSo/FSbTReH11DEbW7ae3J1pOu5fXEQmQ+oueGblMpo2nVGwNYRvz9D3akxMUQbaurdwDhE3YNLD6lRROJg2hP2dM7Yt7dgOWJIATuVTLAeXgANhZachTTZdghbb3wig2ipdCuf3kgu6+BCTSdX3qrfHMvozrh9MGPKKbxR1uGsS/5piI5whQsdQgtKaiKpj/PMTUN7hHhuMuhFEXUWdkm80WS4pfRCxeNOVR6lz0QuFlnThg/1jTHoUchma43GGn53FIM6NKfD10S1Gj2tE6Lp26tHWxjqe1OFhgO4UpQHLIGHUJeFINf0USo2WgmFA8lzbcWUPo/boDU6r/40sMRqvxGQUYicGE48d0O/w7gtZqPGCHQtLqVgLJNetkbdrjgyN/U6/mgwFpZmx5oNYNh3GoT1xr9tsIKfoBDqPJz2ZRdavhU8JtGzy4LLTAhZsAXOoN+Jnqgm5JvaMlDa75V9W5Hf4JAwHM4TK8BWg4FOlS1s7vyJHW6RegB9t/i7Wt7TErcfn7m6CjW+oQWu8CgY4DXw7mAbqUkj9iB6D2Iqj4VvPTTL2ehOtW74fiavS67vQXUE4I5Nmo63pbiHzEmEJaXnfMq+89UseD6wX6vqYQITEROiFfFtEN8bUg2PEr+CZGxctky50o+A+lOOYRIlJ5YmMVCk7yZ5HvS1LMijw6/gjgf9nmHrnerEvjS7z+q6QfEb0sTOuhKI7di2UDjKCj72ldeMDPPd1yMv0z7WMdSIFauq6kHyyP0AERl8dAoIO+Dy0dS9Z29Iiugti6k6MaK5L4SuBAtICLnOI98gWTMQB92ucaywrTdgtBCTQENGFmI/oaf/rCVOXqXW8oVBjSIDQ2kHjuO4jv5YanhW2YNqyA519ZMYQXylw4zhCcrrWsR+xekVtkk4T+cqQ3gB78CdyN06V1NqrJm1IsA2j5Tb9//SVHmMtWz5F6RsBd5IBbVZFIKxsLCvSF5Wg8qg43EPqEgEadaXUhQ0PcejwR8WVU1XIKYrOl0lHsjo6z00eak18g0igQGyayXWD3NO47orAaNlHExOcxwyEKxwiqiQt4XoIBZOmRJO4InrsEaVmv7+WQhe9sw7byZuTmHm2bV0NDJNPeEXq7CV/ArfCZ27oFAAHi6t3ZFLC5p9ndYDsPRY9JeuUCdCbFFEppdtXN1SR+Y56+g/0DOcRKWfzPxWb1HzUwk/oKkuVNCQeyBJMRLwbTeAAsEkX4xRv2hnE86ZgV5HUa/gHRi05F+f+b8j4e6s++avhAo9Y3JWKX2lW2+e0/WTG5dApgSQzncMTyciqlRtzE4I5W2E0UZMplAa3/lNt45hdV4NdTWfVubpRmu/jwXcY5EkLs4RkMMSZsWaNs3btFhDjPdR+kU5st+pShUslDx1HnZN7HZfB5ow98WmPz/07U8JoJWTNFPh1Oqy+cxbQ1kMH7OQ3hBU/FPUtCL63s14Qd/jSh8oHRU5BdrRAbY1N/2YdU/4zWKimp0zVxCbNmkHhrkoJDpxtxjKUwMxFCVeWU73FX9OJYpm0o9aH3o9sXV2nn10F2NgyRord89fF18Llaq7piQOUUTKl8T+rb+cH1VMMan0Y6N4NYPIAqRY3jBnGh6gHxVeSfkTTdxUb9zCIwphE+xD95rT6ZkfYYKOwW/0uS5XayhU9xKUqTKqrJFWvBaf/JFpryDHpIRoHjMOes55BMgl6/ZjYrEIuAahrmtQ4Xtcr5bwF5cWwB3dNButh6Kg9lgpeLhq/+jqCgPgmAjdQfmj5sKJdfvTHytAdWqUwmvkGlKfRnd23i8KCJKCrfyCOA1briVltF71PSkh1KX7FOk4wOa2b+rVgzvykoniBPQRQyzpYMOHab25c5m++fGRSghieLtvK/RdZOh8MrGWYnEvxwrlz92nW867Hx5GbL0pBqXz5ZtL8hFfmGuepSX39JiaU5MHyebeq0NDQIi41UpWwCM7ISIBu2CpeZpTw3EtlxH/TYqRUZS8snAdw5XOtmpmkzrf9u5QNM/MQ8xC96aC5hJb3pCuhZXlUvoFSKTSH/1tjGpO/wiYNqq1wFa3n6O3yITU4Fo/N6yZME+SJKgRjQ/ld5KLtKtOTpsioz4RJBrltd9UmqsHiQPMOXbIJIHWfSxk4sg4zPAIaAzXscMJ9cYh99HzDbCYZVLWj9D3u4U1lRa0O3biyJHVL0fYCuwHkVongFqji4kDiU5Gcqg4bceBdLXfPUzOwdK25tDgRsmdeqfXywmfn3n5ITuMSXK6bysWypD2NkzBbB9zuTnCnPH5sx1X2iJpxofV163vs6e9XPpWcrwOqWsb91ZqemvI/FAYoX8O5HXGrF9QRdW6insiy3kTnQtbkj7nCOHJLBaNTsy++5t0+hqRwwdouOl08VOgn5y6gmAMZm0dljulBUzn24N3PWDCwSHdA1H/ZOuQQYAw==","page_age":"5 hours ago","title":"AI News: Top Stories, Ranked & Explained | AI Weekly","type":"web_search_result","url":"https://aiweekly.co/"},{"encrypted_content":"Ev8HCioIExgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDIMox7/RgzEhM1yVWhoMw8akKxSmCHZpk0diIjBmuqi0vp81qgnPLxYkw35A/KqEpwBObuF6hAdPeRd6Fh96ekSdyVP197jtIg6npdkqggfcLSuevfU697/WwLZmQgeqIvGQNGS5K8OshxNMAdxGkXm/l7I6eQw+8sTXhlwlgDeANy4DxKaTDgWLWrpY30pJ/eVUxgEMWc1x16A3DYixzSXfXtBTWe0w2IO9ceXGjDqlVSFsam2rtzw4rO8XvyALeNLT6D2NIFB2PUNUqIeKDjdBfKhb037dDMbWBgIzGv5OX5/iMvq4CpFfRZImw9MRqivELnre6wLNQfaOuTpB2I4HqMq5f7NsrgUYUUoodHHuqcIE5AtS3i5nb0fa1Pm3oj8iaJ+6YBmNd3FidOH0/erLgx0mBIzbiK53TOIey7XRPlmezS+JafSo5ujHaU3y7faZ/J0ZDOur6wR/A8gYwu37YO77I4XgCPS8u+NRcUsowa9DRH3YqDkewQk8ALNsMzvBDMSK3rH34Zjqv4e2bhOrxtCorRpfp6Ma9fNnzZs0SDRHfDo70Ud/ObVMMGTl0WsuSoTjApKQvFm7rf9rDD7/KgsIQmGFMa0E2SyNeObODeihXFcAV74IOhEvd0MftMUzliIFU6pxG5+1h+x9p0lBrgtn2sV2Xv1ooOKbbdMxljEIKUwer/CbNEVeR0nOsH1e9u/pXkD9QRIDcNJW6bI3R808lp/7+8k5u/O/1vwzW8c3zgnlu3w175uyQCiaVj3fSseIWb7OP6joxCjkGTOmaa8e+2Ts9gReIZDNYbF+Al919EAO1T6x1bIBb9sL/Rpm8th1riBxT8w2yQz6nL5cUpmOulb0gzhh3zrgSpC/0RvrMSjEaT5Wo0x8LopqIyjQusPZ+uMkMYmNmO/Snav8mRlyiBLiYke1cI+XaSQm6L51ByNFnGB/tbhEuUQLlgbQOV3BeNzkIE6bYPVNJYnn1SS5M08chfyjzZf+LV9lVbPxzso0xp/O9SlOkCXRqH5xCNwM5T1ShcYHT8UxwfL0PtCH6scUDGteaQgNfe7H4k/3TNIJAiYXdZVJd9rOQtWMfgWUji9tVjek9+5RnL4/TGpxpmjhdaHm8h+Mxo/Sn3maAAg2XqAUMKm5PJVYR9c1ujSxHtKAGiVpB8yTjfSLj4F5CzetADaC+8bIbYTSKlnHQvCEb61k6TBqJS0HNScKKHxVgPxALYtOXw6kBAfBtwBN8AJ5H7mpcdri2hsRmwnTAd4186DHT+HTz85qsqDo/afn/dZJFKP48q6GLbTQGAM=","page_age":"6 hours ago","title":"AI News, Updates, Products and Reviews | Yahoo Tech","type":"web_search_result","url":"https://tech.yahoo.com/ai/"},{"encrypted_content":"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","page_age":"1 day ago","title":"The Latest AI News, Insights and Reports | AI Magazine","type":"web_search_result","url":"https://aimagazine.com/"},{"encrypted_content":"EucCCioIExgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDDcCpTw8wzHUDIXuvhoMT/aaopDeAzcuDPEfIjARuWTZOimqV3777CIhFqXdMCrno8+WujqhQPJiCzBaUtGJC4Ugd9i/y0M4JUGRbwUq6gEW7ihurLwGyu+pG3USqORjmvFcRuAmEOGaguyeLo4VLVWoPJsS1adVrTjpJ14DPcuMb4kAYLeRLthT14DB7BaViITddZTtClEO30saUtQCMwCijGriLwPuLKaagULBYJjDo13BvK+FIeQWbDFNDuS3jwlDgixRZVhxblkOw7H/0OQvx4dxsVJkNoN6baJ2av2Mn3BX5PSFdG4LQ/GOn86rHfq2WQm01Fz+nw/gayyn9qdiDELkBhclaL3SbMQONDsB52ncs54XKIvtanpDZ8chTTHaCTPACPf1VT4wucEOQ6y7cWfxxdztZFAYAw==","page_age":null,"title":"AIDB Today","type":"web_search_result","url":"https://aidb.substack.com"},{"encrypted_content":"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","page_age":null,"title":"artificial intelligence newsletter","type":"web_search_result","url":"https://www.foxnews.com/category/columns/artificial-intelligence-newsletter?page=13"},{"encrypted_content":"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","page_age":null,"title":"artificial intelligence newsletter","type":"web_search_result","url":"https://www.foxnews.com/category/columns/artificial-intelligence-newsletter?page=9"}],"tool_use_id":"srvtoolu_012jwHZbUsD8YwQ2PmJfaAmi","type":"web_search_tool_result"},{"citations":[{"cited_text":"Meta is updating its AI glasses to stop recording if someone covers the capture LED and cracking down on covert filming and harassment. ","encrypted_index":"Eo8BCioIExgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDNAhfkEkyxF9kn/q1hoMqjgcUKr0V29W+D/vIjABt4oVJQzUfvtTUAnpK7u93Mm1TBKfOeW7NW+JzSofrd2ePCus7WWuDjqtT1QFAE8qEwQAH7FBPuBGxTl5gt/lvhkZ2WAYBA==","title":"AI News, Updates, Products and Reviews | Yahoo Tech","type":"web_search_result_location","url":"https://tech.yahoo.com/ai/"}],"text":"Meta is updating its AI glasses to stop recording if someone covers the capture LED and is cracking down on covert filming and harassment.","type":"text"}],"id":"msg_011CebER4qPptWWLL5nos1fi","model":"claude-sonnet-4-5-20250929","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"inference_geo":"not_available","input_tokens":8615,"output_tokens":101,"server_tool_use":{"web_fetch_requests":0,"web_search_requests":1},"service_tier":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"5ebbf0fd54af3ba1dafc91c34d181abf","scores":null,"span_attributes":{"name":"anthropic.messages.create","type":"llm"},"span_id":"57273781b5b257ec","span_parents":["315297cdabb281bb"],"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251233063075840","_xact_id":"1000197783586473083","audit_data":[{"_xact_id":"1000197783586473083","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:10.626Z","error":null,"expected":null,"facets":null,"id":"a0c369225cc66870","input":{"query":"AI news today"},"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","caller":{"type":"direct"},"tool_call_type":"server_tool_use","tool_result_type":"web_search_tool_result","tool_use_id":"srvtoolu_012jwHZbUsD8YwQ2PmJfaAmi"},"metrics":{"end":1788197830.6262789,"start":1788197830.6262789},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"encrypted_content":"","page_age":"1 day ago","title":"AI News & Artificial Intelligence | TechCrunch","type":"web_search_result","url":"https://techcrunch.com/category/artificial-intelligence/"},{"encrypted_content":"","page_age":"3 days ago","title":"AI News | Latest News | Insights Powering AI-Driven Business Growth","type":"web_search_result","url":"https://www.artificialintelligence-news.com/"},{"encrypted_content":"","page_age":"5 hours ago","title":"AI News: Top Stories, Ranked & Explained | AI Weekly","type":"web_search_result","url":"https://aiweekly.co/"},{"encrypted_content":"","page_age":"6 hours ago","title":"AI News, Updates, Products and Reviews | Yahoo Tech","type":"web_search_result","url":"https://tech.yahoo.com/ai/"},{"encrypted_content":"","page_age":"1 day ago","title":"The Latest AI News, Insights and Reports | AI Magazine","type":"web_search_result","url":"https://aimagazine.com/"},{"encrypted_content":"","page_age":null,"title":"AIDB Today","type":"web_search_result","url":"https://aidb.substack.com"},{"encrypted_content":"","page_age":null,"title":"artificial intelligence newsletter","type":"web_search_result","url":"https://www.foxnews.com/category/columns/artificial-intelligence-newsletter?page=13"},{"encrypted_content":"","page_age":null,"title":"artificial intelligence newsletter","type":"web_search_result","url":"https://www.foxnews.com/category/columns/artificial-intelligence-newsletter?page=9"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"5ebbf0fd54af3ba1dafc91c34d181abf","scores":null,"span_attributes":{"name":"web_search","type":"tool"},"span_id":"a0c369225cc66870","span_parents":["57273781b5b257ec"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589161396","read_bytes":14598,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-88a3fdc03a4f.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-88a3fdc03a4f.json deleted file mode 100644 index 944b3713..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-88a3fdc03a4f.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"name":"test-distributed-trace-parent","root_span_id":"b2c4e2f917794144eff5e6ac0e08e33e","span_id":"eb85fed14607ba1c","span_parents":null},{"name":"LLM","root_span_id":"b2c4e2f917794144eff5e6ac0e08e33e","span_id":"1fed1e53-3198-4f06-8ec2-a182c0c71716","span_parents":["3e4e53d6-aa3e-4307-8f99-eef7e80651af"]},{"name":"close-enough-judge","root_span_id":"b2c4e2f917794144eff5e6ac0e08e33e","span_id":"3e4e53d6-aa3e-4307-8f99-eef7e80651af","span_parents":["eb85fed14607ba1c"]}],"schema":{"type":"array","items":{"type":"object","properties":{"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]}}}},"cursor":"apW7hQC6AAA","realtime_state":{"type":"on","minimum_xact_id":"1000197755177471893","read_bytes":8297,"actual_xact_id":"1000197783581886495"},"freshness_state":{"last_processed_xact_id":"1000197783581819585","last_considered_xact_id":"1000197783581886495"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-8ba1d50d5105.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-8ba1d50d5105.json deleted file mode 100644 index a9d4f863..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-8ba1d50d5105.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251147406540811","_xact_id":"1000197783585166068","audit_data":[{"_xact_id":"1000197783585166068","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:54.980Z","error":null,"expected":null,"facets":null,"id":"bc8acd7e85ace2a6","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai-openai"},"metrics":{"end":1788197816.8547034,"start":1788197814.9802449},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"cfeeeef1fadd4cfbf965ede95b78f38c","scores":null,"span_attributes":{"name":"attachments","type":"task"},"span_id":"bc8acd7e85ace2a6","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251147406540805","_xact_id":"1000197783585166068","audit_data":[{"_xact_id":"1000197783585166068","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:54.996Z","error":null,"expected":null,"facets":null,"id":"db772c8d2995e94c","input":[{"content":"you are a helpful assistant","role":"system"},{"content":[{"text":"Briefly describe these attachments","type":"text"},{"image_url":{"url":{"content_type":"image/png","filename":"attachment.png","key":"62dbe552-c52e-4a22-870c-96956c193d6a","type":"braintrust_attachment"}},"type":"image_url"},{"file":{"file_data":{"content_type":"application/pdf","filename":"attachment.pdf","key":"7d2f2dfd-28d1-4d7e-b715-06fbba5f367d","type":"braintrust_attachment"},"filename":"blank.pdf"},"type":"file"}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-4o","provider":"openai","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0EBmejmHqJyetvRCxNHHkMFgnmX","stream":false,"temperature":0,"x-request-id":"req_4e8a50f4083e4496845523e891d525fc"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":50,"end":1788197816.8424451,"estimated_cost":0.0017375000000000001,"prompt_cached_tokens":0,"prompt_tokens":495,"start":1788197814.9967191,"tokens":545},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"logprobs":null,"message":{"annotations":[],"content":"The first attachment is a solid red square, which appears to be a plain red image with no additional content or details.\n\nThe second attachment, \"blank.pdf,\" is a document that contains no readable content or images. It appears to be completely blank.","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"cfeeeef1fadd4cfbf965ede95b78f38c","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"db772c8d2995e94c","span_parents":["bc8acd7e85ace2a6"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-8ceb42f43c0c.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-8ceb42f43c0c.json new file mode 100644 index 00000000..37817316 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-8ceb42f43c0c.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301015719247882","_xact_id":"1000198165815822695","audit_data":[{"_xact_id":"1000198165815822695","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:11.281Z","error":null,"expected":null,"facets":null,"id":"ceccfd7f16b7d2fe","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai-openai"},"metrics":{"duration":0.9057695865631104,"end":1794030192.1871476,"start":1794030191.281378},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"e743636e4a200eda0aafafa702ca31d6","scores":null,"span_attributes":{"name":"tools","type":"task"},"span_id":"ceccfd7f16b7d2fe","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301015719247889","_xact_id":"1000198165815822695","audit_data":[{"_xact_id":"1000198165815822695","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"springai","version":"1.0.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"springai","version":"1.0.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:11.293Z","error":null,"expected":null,"facets":null,"id":"1c1a7f9b0ddb20ec","input":[{"content":"What is the weather like in Paris, France?","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_completion_tokens":500,"model":"gpt-6-luna","provider":"openai","reasoning_effort":"none","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTUlY1KeRjPr2RpSX6cBO9THisDN","stream":false,"temperature":0,"tools":[{"function":{"description":"Get the current weather for a location","name":"get_weather","parameters":{"properties":{"location":{"description":"The city and state, e.g. San Francisco, CA","type":"string"},"unit":{"description":"The unit of temperature","enum":["celsius","fahrenheit"],"type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"x-request-id":"req_212f103885384a46b63c034dea8e4776"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":24,"duration":0.8870940208435059,"end":1794030192.1804097,"estimated_cost":0.0000286,"prompt_cached_tokens":0,"prompt_tokens":166,"start":1794030191.2933156,"tokens":190},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"tool_calls","index":0,"message":{"annotations":[],"content":null,"refusal":null,"role":"assistant","tool_calls":[{"function":{"arguments":"{\"location\":\"Paris, France\",\"unit\":\"celsius\"}","name":"get_weather"},"id":"call_DUyU3bfN0F7qBbHClCpXu1xG","type":"function"}]}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"e743636e4a200eda0aafafa702ca31d6","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"1c1a7f9b0ddb20ec","span_parents":["ceccfd7f16b7d2fe"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9CxYaUA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-8f1dfd5c0fd9.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-8f1dfd5c0fd9.json deleted file mode 100644 index 94369970..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-8f1dfd5c0fd9.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251203138355204","_xact_id":"1000197783586016468","audit_data":[{"_xact_id":"1000197783586016468","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:49.979Z","error":null,"expected":null,"facets":null,"id":"e35e327e5cffc604","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"openai"},"metrics":{"end":1788197827.9077573,"start":1788197809.979572},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"b70e1c19d16686a283506234df98a030","scores":null,"span_attributes":{"name":"web_search","type":"task"},"span_id":"e35e327e5cffc604","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251203138355202","_xact_id":"1000197783586016468","audit_data":[{"_xact_id":"1000197783586016468","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:50.013Z","error":null,"expected":null,"facets":null,"id":"bbf3164c20e826e1","input":[{"content":"Search the web for a recent AI news headline and answer in one sentence.","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-4o","provider":"openai","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"responses","response_id":"resp_0fb0a24f56a49be2006a95bbb54a0887d0814ebf4a4d649dbb","tool_choice":{"type":"web_search_preview"},"tools":[{"search_context_size":"low","type":"web_search_preview"}],"x-request-id":"req_7938016ece674ca1bbe3a6ea5b51b7fe"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":248,"end":1788197827.8914857,"estimated_cost":0.0032875,"prompt_cached_tokens":0,"prompt_tokens":323,"start":1788197810.01375,"tokens":571},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"action":{"queries":["Search the web for a recent AI news headline and answer in one sentence."],"query":"Search the web for a recent AI news headline and answer in one sentence.","type":"search"},"id":"ws_0fb0a24f56a49be2006a95bbb8003487d0b3d898811b6168e3","status":"completed","type":"web_search_call"},{"content":[{"annotations":[{"end_index":393,"start_index":278,"title":"Exclusive: AI advocacy group launches data center push in battleground states","type":"url_citation","url":"https://www.axios.com/2026/08/31/ai-advocacy-group-data-center-battleground-states?utm_source=openai"},{"end_index":594,"start_index":413,"title":"Exclusive: AI advocacy group launches data center push in battleground states","type":"url_citation","url":"https://www.axios.com/2026/08/31/ai-advocacy-group-data-center-battleground-states?utm_source=openai"},{"end_index":793,"start_index":629,"title":"Exclusive: AI startup TrustedRouter raises $1.25 million","type":"url_citation","url":"https://www.axios.com/2026/08/31/exclusive-ai-startup-trustedrouter-raises-125-million?utm_source=openai"},{"end_index":969,"start_index":828,"title":"AI turns to health care for an image fix","type":"url_citation","url":"https://www.axios.com/2026/08/31/ai-health-care-cures-disease-anthropic-open-ai?utm_source=openai"}],"logprobs":[],"text":"An AI advocacy group has launched a $50 million campaign to support AI data center development in battleground states, aiming to address political backlash and emphasize the need for infrastructure that supports AI leadership while safeguarding communities and the environment. ([axios.com](https://www.axios.com/2026/08/31/ai-advocacy-group-data-center-battleground-states?utm_source=openai))\n\n\n## Highlights:\n- [Exclusive: AI advocacy group launches data center push in battleground states](https://www.axios.com/2026/08/31/ai-advocacy-group-data-center-battleground-states?utm_source=openai), Published on Monday, August 31\n- [Exclusive: AI startup TrustedRouter raises $1.25 million](https://www.axios.com/2026/08/31/exclusive-ai-startup-trustedrouter-raises-125-million?utm_source=openai), Published on Monday, August 31\n- [AI turns to health care for an image fix](https://www.axios.com/2026/08/31/ai-health-care-cures-disease-anthropic-open-ai?utm_source=openai), Published on Monday, August 31 ","type":"output_text"}],"id":"msg_0fb0a24f56a49be2006a95bbb9ff9087d0ad5b435d46b8e072","role":"assistant","status":"completed","type":"message"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"b70e1c19d16686a283506234df98a030","scores":null,"span_attributes":{"name":"responses","type":"llm"},"span_id":"bbf3164c20e826e1","span_parents":["e35e327e5cffc604"],"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251203138355201","_xact_id":"1000197783586016468","audit_data":[{"_xact_id":"1000197783586016468","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:07.891Z","error":null,"expected":null,"facets":null,"id":"df4240bbd0a4e81a","input":{"action":{"queries":["Search the web for a recent AI news headline and answer in one sentence."],"query":"Search the web for a recent AI news headline and answer in one sentence.","type":"search"}},"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","status":"completed","tool_id":"ws_0fb0a24f56a49be2006a95bbb8003487d0b3d898811b6168e3","tool_type":"web_search_call"},"metrics":{"end":1788197827.8912792,"start":1788197827.8912792},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"status":"completed"},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"b70e1c19d16686a283506234df98a030","scores":null,"span_attributes":{"name":"web_search_call","type":"tool"},"span_id":"df4240bbd0a4e81a","span_parents":["bbf3164c20e826e1"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-903703e70b81.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-903703e70b81.json new file mode 100644 index 00000000..022877b0 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-903703e70b81.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705300972648398863","_xact_id":"1000198165815165486","audit_data":[{"_xact_id":"1000198165815165486","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:02.883Z","error":null,"expected":null,"facets":null,"id":"b13f221b700c33ca","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"openai"},"metrics":{"duration":1.1878855228424072,"end":1794030184.0709307,"start":1794030182.8830452},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"c1388e01abdbf3f74872dc074948a67d","scores":null,"span_attributes":{"name":"streaming","type":"task"},"span_id":"b13f221b700c33ca","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705300972648398873","_xact_id":"1000198165815165486","audit_data":[{"_xact_id":"1000198165815165486","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"openai","version":"2.15.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"openai","version":"2.15.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:02.886Z","error":null,"expected":null,"facets":null,"id":"9078cd047b7986af","input":[{"content":"you are a thoughtful assistant","role":"system"},{"content":"Count from 1 to 10 slowly.","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_completion_tokens":800,"model":"gpt-6-luna","provider":"openai","reasoning_effort":"none","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","stream":true,"stream_options":{"include_usage":true},"temperature":0,"x-request-id":"req_f95b36dfd671442eabea75b48040f439"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":31,"duration":1.1840224266052246,"end":1794030184.0708294,"estimated_cost":0.0000179,"prompt_cached_tokens":0,"prompt_tokens":24,"start":1794030182.886807,"time_to_first_token":0.000353542,"tokens":55},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"logprobs":null,"message":{"content":"1 … 2 … 3 … 4 … 5 … 6 … 7 … 8 … 9 … 10","refusal":null,"role":"assistant","tool_calls":[]}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"c1388e01abdbf3f74872dc074948a67d","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"9078cd047b7986af","span_parents":["b13f221b700c33ca"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs8jc/xYA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-9200ebe247be.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-9200ebe247be.json deleted file mode 100644 index d8978eaa..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-9200ebe247be.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251121458085898","_xact_id":"1000197783584770126","audit_data":[{"_xact_id":"1000197783584770126","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:48.857Z","error":null,"expected":null,"facets":null,"id":"4d2f6646aa05bdfd","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai2-openai"},"metrics":{"end":1788197809.979446,"start":1788197808.8572001},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"a850820207c1f19ed6ce2185953cd09f","scores":null,"span_attributes":{"name":"tools","type":"task"},"span_id":"4d2f6646aa05bdfd","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251121458085891","_xact_id":"1000197783584770126","audit_data":[{"_xact_id":"1000197783584770126","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:49.108Z","error":null,"expected":null,"facets":null,"id":"37f0ba49a8833d4f","input":[{"content":"What is the weather like in Paris, France?","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":500,"model":"gpt-4o","provider":"openai","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0E5xYKDgNBWpjwMT0kzT4kllsNJ","temperature":0,"tools":[{"function":{"description":"Get the current weather for a location","name":"get_weather","parameters":{"properties":{"location":{"description":"The city and state, e.g. San Francisco, CA","type":"string"},"unit":{"description":"The unit of temperature","enum":["celsius","fahrenheit"],"type":"string"}},"required":["location"],"strict":true,"type":"object"}},"type":"function"}],"x-request-id":"req_dc7d1850ffcf4ef7ba4513038767e73e"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":16,"end":1788197809.9752586,"estimated_cost":0.0003725,"prompt_cached_tokens":0,"prompt_tokens":85,"start":1788197809.108835,"tokens":101},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"tool_calls","index":0,"logprobs":null,"message":{"annotations":[],"content":null,"refusal":null,"role":"assistant","tool_calls":[{"function":{"arguments":"{\"location\":\"Paris, France\"}","name":"get_weather"},"id":"call_6vk1bjVBG6wkxvgeSAwWUMH2","type":"function"}]}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"a850820207c1f19ed6ce2185953cd09f","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"37f0ba49a8833d4f","span_parents":["4d2f6646aa05bdfd"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-93283d84ce2e.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-93283d84ce2e.json new file mode 100644 index 00000000..c1741a58 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-93283d84ce2e.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301041400578061","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:17.509Z","error":null,"expected":null,"facets":null,"id":"3679fb5f22b5915a","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai2-anthropic"},"metrics":{"duration":0.7438616752624512,"end":1794030198.2532127,"start":1794030197.509351},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"0848c29baad58ae6a15c3b5a17058f98","scores":null,"span_attributes":{"name":"messages","type":"task"},"span_id":"3679fb5f22b5915a","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301041400578049","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"springai","version":"2.0.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"springai","version":"2.0.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:17.604Z","error":null,"expected":null,"facets":null,"id":"bda835587d323962","input":[{"content":"What is the capital of France?","role":"user"},{"content":"You are a helpful assistant.","role":"system"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-haiku-4-5-20251001","provider":"anthropic","request-id":"req_011Cgo2zMbU8FsUoN63Cpswn","request_base_uri":"","request_method":"POST","request_path":"v1/messages","response_id":"msg_011Cgo2zMmPZhsMWE9u6deQG","temperature":0},"metrics":{"completion_tokens":10,"duration":0.6475834846496582,"end":1794030198.2522733,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":20,"start":1794030197.6046898,"tokens":30},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"container":null,"content":[{"text":"The capital of France is Paris.","type":"text"}],"diagnostics":null,"id":"msg_011Cgo2zMmPZhsMWE9u6deQG","model":"claude-haiku-4-5-20251001","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"inference_geo":"not_available","input_tokens":20,"output_tokens":10,"service_tier":"standard","speed":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"0848c29baad58ae6a15c3b5a17058f98","scores":null,"span_attributes":{"name":"anthropic.messages.create","type":"llm"},"span_id":"bda835587d323962","span_parents":["3679fb5f22b5915a"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9aSCoQA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-943a851d44dc.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-943a851d44dc.json new file mode 100644 index 00000000..d9d5cacc --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-943a851d44dc.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301041400578065","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:19.110Z","error":null,"expected":null,"facets":null,"id":"a1350ec0cfc424f3","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai-anthropic"},"metrics":{"duration":1.3640191555023193,"end":1794030200.47497,"start":1794030199.110951},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"560e5b7df7bd7c061880e645da65b5e4","scores":null,"span_attributes":{"name":"prompt_caching_1h","type":"task"},"span_id":"a1350ec0cfc424f3","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301041400578052","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"springai","version":"1.0.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"springai","version":"1.0.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:19.119Z","error":null,"expected":null,"facets":null,"id":"6932e3b17323f25d","input":[{"content":"What is the capital of France?","role":"user"},{"content":[{"cache_control":{"ttl":"1h","type":"ephemeral"},"text":"[cache buster: springai-anthropic vcr-mode]\nReference material (stable, cached with a 1 hour TTL):\n\nThe following is a condensed atlas of capital cities. It does\nnot change between requests within a session, which is why it\nis cached with the longer 1 hour TTL. Consult it before\nanswering.\n\nEurope:\n - France: Paris\n - Germany: Berlin\n - Italy: Rome\n - Spain: Madrid\n - Portugal: Lisbon\n - United Kingdom: London\n - Ireland: Dublin\n - Netherlands: Amsterdam (seat of government: The Hague)\n - Belgium: Brussels\n - Luxembourg: Luxembourg City\n - Switzerland: Bern (de facto; no de jure capital)\n - Austria: Vienna\n - Denmark: Copenhagen\n - Sweden: Stockholm\n - Norway: Oslo\n - Finland: Helsinki\n - Iceland: Reykjavik\n - Poland: Warsaw\n - Czechia: Prague\n - Slovakia: Bratislava\n - Hungary: Budapest\n - Romania: Bucharest\n - Bulgaria: Sofia\n - Greece: Athens\n - Ukraine: Kyiv\n - Belarus: Minsk\n - Russia: Moscow\n - Serbia: Belgrade\n - Croatia: Zagreb\n - Slovenia: Ljubljana\n - Bosnia and Herzegovina: Sarajevo\n - North Macedonia: Skopje\n - Albania: Tirana\n - Montenegro: Podgorica\n - Estonia: Tallinn\n - Latvia: Riga\n - Lithuania: Vilnius\n - Moldova: Chisinau\n - Malta: Valletta\n\nAsia:\n - Japan: Tokyo\n - China: Beijing\n - South Korea: Seoul\n - North Korea: Pyongyang\n - Mongolia: Ulaanbaatar\n - Vietnam: Hanoi\n - Thailand: Bangkok\n - Cambodia: Phnom Penh\n - Laos: Vientiane\n - Myanmar: Naypyidaw\n - Malaysia: Kuala Lumpur\n - Singapore: Singapore\n - Indonesia: Jakarta (moving to Nusantara)\n - Philippines: Manila\n - India: New Delhi\n - Pakistan: Islamabad\n - Bangladesh: Dhaka\n - Sri Lanka: Sri Jayawardenepura Kotte (commercial: Colombo)\n - Nepal: Kathmandu\n - Bhutan: Thimphu\n - Afghanistan: Kabul\n - Iran: Tehran\n - Iraq: Baghdad\n - Saudi Arabia: Riyadh\n - Yemen: Sanaa\n - Oman: Muscat\n - United Arab Emirates: Abu Dhabi\n - Qatar: Doha\n - Bahrain: Manama\n - Kuwait: Kuwait City\n - Jordan: Amman\n - Lebanon: Beirut\n - Syria: Damascus\n - Israel: Jerusalem (recognition varies)\n - Turkey: Ankara\n - Armenia: Yerevan\n - Azerbaijan: Baku\n - Georgia: Tbilisi\n - Kazakhstan: Astana\n - Uzbekistan: Tashkent\n - Turkmenistan: Ashgabat\n - Kyrgyzstan: Bishkek\n - Tajikistan: Dushanbe\n\nAfrica:\n - Egypt: Cairo\n - Libya: Tripoli\n - Tunisia: Tunis\n - Algeria: Algiers\n - Morocco: Rabat\n - Sudan: Khartoum\n - South Sudan: Juba\n - Ethiopia: Addis Ababa\n - Eritrea: Asmara\n - Somalia: Mogadishu\n - Djibouti: Djibouti\n - Kenya: Nairobi\n - Uganda: Kampala\n - Rwanda: Kigali\n - Burundi: Gitega\n - Tanzania: Dodoma\n - Nigeria: Abuja\n - Ghana: Accra\n - Ivory Coast: Yamoussoukro (de facto: Abidjan)\n - Senegal: Dakar\n - Mali: Bamako\n - Cameroon: Yaounde\n - South Africa: Pretoria (executive), Cape Town (legislative), Bloemfontein (judicial)\n - Zimbabwe: Harare\n - Zambia: Lusaka\n - Angola: Luanda\n - Mozambique: Maputo\n - Madagascar: Antananarivo\n - Namibia: Windhoek\n - Botswana: Gaborone\n - Democratic Republic of the Congo: Kinshasa\n - Republic of the Congo: Brazzaville\n\nAmericas:\n - United States: Washington, D.C.\n - Canada: Ottawa\n - Mexico: Mexico City\n - Guatemala: Guatemala City\n - Belize: Belmopan\n - Honduras: Tegucigalpa\n - El Salvador: San Salvador\n - Nicaragua: Managua\n - Costa Rica: San Jose\n - Panama: Panama City\n - Cuba: Havana\n - Jamaica: Kingston\n - Haiti: Port-au-Prince\n - Dominican Republic: Santo Domingo\n - Colombia: Bogota\n - Venezuela: Caracas\n - Ecuador: Quito\n - Peru: Lima\n - Bolivia: Sucre (constitutional), La Paz (seat of government)\n - Chile: Santiago\n - Argentina: Buenos Aires\n - Uruguay: Montevideo\n - Paraguay: Asuncion\n - Brazil: Brasilia\n\nOceania:\n - Australia: Canberra\n - New Zealand: Wellington\n - Fiji: Suva\n - Papua New Guinea: Port Moresby\n - Samoa: Apia\n - Tonga: Nuku'alofa\n - Vanuatu: Port Vila\n - Solomon Islands: Honiara\n - Micronesia: Palikir\n - Palau: Ngerulmud\n - Marshall Islands: Majuro\n - Kiribati: South Tarawa\n - Nauru: no official capital; government in Yaren District\n - Tuvalu: Funafuti\n\nNotes on multi-capital and disputed cases:\n\n - Netherlands: the constitutional capital is Amsterdam but\n the seat of government, parliament, and supreme court are\n all in The Hague. Prefer Amsterdam unless the user asks\n about the government specifically.\n - South Africa: three capitals split by branch. Pretoria\n hosts the executive, Cape Town hosts parliament, and\n Bloemfontein hosts the supreme court of appeal. No single\n city is \"the\" capital.\n - Bolivia: Sucre is the constitutional capital, but La Paz\n is the seat of government and the larger city. Either\n answer is defensible; list both when asked.\n - Ivory Coast: Yamoussoukro has been the official capital\n since 1983, but Abidjan remains the economic hub and de\n facto administrative center for most purposes.\n - Sri Lanka: Sri Jayawardenepura Kotte is the legislative\n capital. Colombo is the commercial capital and by far the\n more commonly referenced city.\n - Switzerland: Bern is the de facto capital (the seat of\n the federal authorities), but Swiss law does not\n designate any city as \"the capital\".\n - Nauru: has no designated capital. Government offices are\n in the Yaren District, which is often listed as the\n capital by convention.\n - Israel: Jerusalem is the declared capital, but\n international recognition of that status is not\n universal. Many embassies are in Tel Aviv.\n - Palestine: de jure capital is East Jerusalem; de facto\n administrative center is Ramallah. Both appear in\n official usage.\n - Taiwan: Taipei is the capital of the Republic of China.\n Recognition as a sovereign state varies by country.\n - Kosovo: Pristina is the capital of the Republic of\n Kosovo. Recognition as a sovereign state varies by\n country.\n - Somaliland: Hargeisa is the capital of the self-declared\n Republic of Somaliland, which is not widely recognized.\n Somalia, which claims the territory, has its capital at\n Mogadishu.\n\nEnd of reference material.\n","type":"text"}],"role":"system"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-sonnet-4-6","provider":"anthropic","request-id":"req_011Cgo2zU1SLTUWJnEsJx5vz","request_base_uri":"http://localhost:61523","request_method":"POST","request_path":"v1/messages","response_id":"msg_011Cgo2zUBMVBz8FD5S4PcJX","stream":false,"temperature":0},"metrics":{"completion_tokens":11,"duration":1.3500878810882568,"end":1794030200.4697056,"prompt_cache_creation_1h_tokens":1994,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":2006,"start":1794030199.1196177,"tokens":2017},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"container":null,"content":[{"text":"The capital of France is **Paris**.","type":"text"}],"diagnostics":null,"id":"msg_011Cgo2zUBMVBz8FD5S4PcJX","model":"claude-sonnet-4-6","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":1994,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":1994,"cache_read_input_tokens":0,"inference_geo":"global","input_tokens":12,"output_tokens":11,"service_tier":"standard","speed":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"560e5b7df7bd7c061880e645da65b5e4","scores":null,"span_attributes":{"name":"anthropic.messages.create","type":"llm"},"span_id":"6932e3b17323f25d","span_parents":["a1350ec0cfc424f3"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9f7PscA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-9705d0232be4.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-9705d0232be4.json deleted file mode 100644 index 64a02d00..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-9705d0232be4.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251147406540808","_xact_id":"1000197783585166068","audit_data":[{"_xact_id":"1000197783585166068","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:52.214Z","error":null,"expected":null,"facets":null,"id":"ee3db4922885bd97","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.8-openai"},"metrics":{"end":1788197813.0639956,"start":1788197812.214274},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"c7dc1f7c254977e529336e28e4586174","scores":null,"span_attributes":{"name":"streaming","type":"task"},"span_id":"ee3db4922885bd97","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251147406540802","_xact_id":"1000197783585166068","audit_data":[{"_xact_id":"1000197783585166068","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:52.218Z","error":null,"expected":null,"facets":null,"id":"a5b8d23952671698","input":[{"content":"you are a thoughtful assistant","role":"system"},{"content":"Count from 1 to 10 slowly.","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":800,"model":"gpt-4o-mini","provider":"openai","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","stream":true,"stream_options":{"include_usage":true},"temperature":0,"x-request-id":"req_c3793ec2f761492a9f70b209a0cc9d8c"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":40,"end":1788197813.0674322,"estimated_cost":0.00002775,"prompt_cached_tokens":0,"prompt_tokens":25,"start":1788197812.2183425,"time_to_first_token":0.831611833,"tokens":65},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"content":"Sure! Here we go:\n\n1... \n2... \n3... \n4... \n5... \n6... \n7... \n8... \n9... \n10... \n\nTake your time!","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"c7dc1f7c254977e529336e28e4586174","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"a5b8d23952671698","span_parents":["ee3db4922885bd97"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-973db53c70ef.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-973db53c70ef.json deleted file mode 100644 index cad46a34..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-973db53c70ef.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251147406540809","_xact_id":"1000197783585166068","audit_data":[{"_xact_id":"1000197783585166068","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:52.265Z","error":null,"expected":null,"facets":null,"id":"d5cee7803ee799c0","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"openai"},"metrics":{"end":1788197813.782102,"start":1788197812.2653341},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"57b8b705b87fe23427d1a97636dbda70","scores":null,"span_attributes":{"name":"attachments","type":"task"},"span_id":"d5cee7803ee799c0","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251147406540803","_xact_id":"1000197783585166068","audit_data":[{"_xact_id":"1000197783585166068","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:52.279Z","error":null,"expected":null,"facets":null,"id":"829daa8cc0e14c3f","input":[{"content":"you are a helpful assistant","role":"system"},{"content":[{"text":"Briefly describe these attachments","type":"text"},{"image_url":{"url":{"content_type":"image/png","filename":"attachment.png","key":"d17f06c0-90ea-4b3a-9c61-6e79f8fe1278","type":"braintrust_attachment"}},"type":"image_url"},{"file":{"file_data":{"content_type":"application/pdf","filename":"attachment.pdf","key":"7eff9c33-a1b9-46fa-8fe0-6503b55fef9c","type":"braintrust_attachment"},"filename":"blank.pdf"},"type":"file"}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-4o","provider":"openai","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0E8UZlO7nzHm9G3SMkkfmADLCr9","stream":false,"temperature":0,"x-request-id":"req_4d85fdcf7ff04f6f97236f38a3f118de"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":43,"end":1788197813.779751,"estimated_cost":0.0016675000000000001,"prompt_cached_tokens":0,"prompt_tokens":495,"start":1788197812.279188,"tokens":538},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"logprobs":null,"message":{"annotations":[],"content":"The first attachment is a solid red square, likely an image with no additional content or context.\n\nThe second attachment, \"blank.pdf,\" appears to be a PDF document with no readable content or visible text or images.","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"57b8b705b87fe23427d1a97636dbda70","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"829daa8cc0e14c3f","span_parents":["d5cee7803ee799c0"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589161396","read_bytes":14598,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-980e9d552173.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-980e9d552173.json deleted file mode 100644 index 73fb8b13..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-980e9d552173.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251121458085901","_xact_id":"1000197783584770126","audit_data":[{"_xact_id":"1000197783584770126","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:50.339Z","error":null,"expected":null,"facets":null,"id":"9ff4a3b584ec69ce","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.14-openai"},"metrics":{"end":1788197811.4594953,"start":1788197810.339463},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"8cb588aad5ccaf555c1e6bb1f43e4276","scores":null,"span_attributes":{"name":"completions","type":"task"},"span_id":"9ff4a3b584ec69ce","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251121458085894","_xact_id":"1000197783584770126","audit_data":[{"_xact_id":"1000197783584770126","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:50.344Z","error":null,"expected":null,"facets":null,"id":"9dca76fd4a381ae1","input":[{"content":"you are a helpful assistant","role":"system"},{"content":"What is the capital of France?","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-4o-mini","provider":"openai","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0E7DzD2I0UdG2Tm1nGb3zlS9Iog","stream":false,"temperature":0,"x-request-id":"req_5a9d76eb59aa40c0a0761509297770e7"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":7,"end":1788197811.458583,"estimated_cost":0.00000765,"prompt_cached_tokens":0,"prompt_tokens":23,"start":1788197810.344723,"tokens":30},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"logprobs":null,"message":{"annotations":[],"content":"The capital of France is Paris.","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"8cb588aad5ccaf555c1e6bb1f43e4276","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"9dca76fd4a381ae1","span_parents":["9ff4a3b584ec69ce"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-985ab1d04106.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-985ab1d04106.json deleted file mode 100644 index e1390189..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-985ab1d04106.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251147406540806","_xact_id":"1000197783585166068","audit_data":[{"_xact_id":"1000197783585166068","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:50.794Z","error":null,"expected":null,"facets":null,"id":"7cd793f4fb3e881a","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai-openai"},"metrics":{"end":1788197812.2140844,"start":1788197810.794755},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"252f0c6a9615543fbe9d14d2646593f7","scores":null,"span_attributes":{"name":"streaming","type":"task"},"span_id":"7cd793f4fb3e881a","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251147406540800","_xact_id":"1000197783585166068","audit_data":[{"_xact_id":"1000197783585166068","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:50.951Z","error":null,"expected":null,"facets":null,"id":"dca2f5952abf08ec","input":[{"content":"you are a thoughtful assistant","role":"system"},{"content":"Count from 1 to 10 slowly.","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-4o-mini-2024-07-18","provider":"openai","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","x-request-id":"req_9c29c6dfa9904ffe82d16f9d90c261bf"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":40,"end":1788197812.2154152,"estimated_cost":0.00002775,"prompt_cached_tokens":0,"prompt_tokens":25,"start":1788197810.9511673,"time_to_first_token":1.246453541,"tokens":65},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"content":"Sure! Here we go:\n\n1... \n2... \n3... \n4... \n5... \n6... \n7... \n8... \n9... \n10... \n\nTake your time!","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"252f0c6a9615543fbe9d14d2646593f7","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"dca2f5952abf08ec","span_parents":["7cd793f4fb3e881a"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-985d7b794773.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-985d7b794773.json deleted file mode 100644 index 322161f0..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-985d7b794773.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251289063456775","_xact_id":"1000197783587327581","audit_data":[{"_xact_id":"1000197783587327581","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:23.274Z","error":null,"expected":null,"facets":null,"id":"12d4d1a1f6398695","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.14-openai"},"metrics":{"end":1788197843.986184,"start":1788197843.2747},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"3cc6ae2a4104ae52cbafccdbda44627d","scores":null,"span_attributes":{"name":"streaming_multiple_choices","type":"task"},"span_id":"12d4d1a1f6398695","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251289063456768","_xact_id":"1000197783587327581","audit_data":[{"_xact_id":"1000197783587327581","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:23.278Z","error":null,"expected":null,"facets":null,"id":"23dbd79794071fad","input":[{"content":"you are a concise assistant","role":"system"},{"content":"Say hello in one word.","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":100,"model":"gpt-4o-mini","n":2,"provider":"openai","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0EdMMWZ43csn0VNVVpnmqQmty14","stream":true,"stream_options":{"include_usage":true},"temperature":0,"x-request-id":"req_ac0d515775de496284417089fb47fe11"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":4,"end":1788197843.9867492,"estimated_cost":0.0000057,"prompt_cached_tokens":0,"prompt_tokens":22,"start":1788197843.278002,"time_to_first_token":0.706169375,"tokens":26},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"content":"Hello!","refusal":null,"role":"assistant"}},{"finish_reason":"stop","index":1,"message":{"content":"Hello!","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"3cc6ae2a4104ae52cbafccdbda44627d","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"23dbd79794071fad","span_parents":["12d4d1a1f6398695"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-98a16ab98355.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-98a16ab98355.json new file mode 100644 index 00000000..d9f63dbd --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-98a16ab98355.json @@ -0,0 +1 @@ +{"data":[{"name":"test-distributed-trace-parent","root_span_id":"44952e40821079b14b3fff0f30c2a255","span_id":"5406d2eeaf797c3d","span_parents":null},{"name":"close-enough-judge","root_span_id":"44952e40821079b14b3fff0f30c2a255","span_id":"01576f66-ef9c-4dfa-aec9-9c891e06534f","span_parents":["5406d2eeaf797c3d"]},{"name":"LLM","root_span_id":"44952e40821079b14b3fff0f30c2a255","span_id":"616a769f-85e0-4cf2-bc46-67135d8c7cf0","span_parents":["01576f66-ef9c-4dfa-aec9-9c891e06534f"]}],"schema":{"type":"array","items":{"type":"object","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["span_id","span_parents","root_span_id","name"]},"cursor":"au66RQKwAAA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-9a5d748446a0.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-9a5d748446a0.json new file mode 100644 index 00000000..49532dab --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-9a5d748446a0.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705300972648398853","_xact_id":"1000198165815165486","audit_data":[{"_xact_id":"1000198165815165486","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:00.005Z","error":null,"expected":null,"facets":null,"id":"46f49bfa003638b2","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.14-openai"},"metrics":{"duration":0.7437529563903809,"end":1794030180.749642,"start":1794030180.005889},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"80d1b6b9e3464ad0f0402bce508fd235","scores":null,"span_attributes":{"name":"responses_array_input","type":"task"},"span_id":"46f49bfa003638b2","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705300972648398849","_xact_id":"1000198165815165486","audit_data":[{"_xact_id":"1000198165815165486","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"langchain4j","version":"1.14.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"langchain4j","version":"1.14.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:00.013Z","error":null,"expected":null,"facets":null,"id":"57952279a9b172cc","input":[{"content":[{"text":"Reply with one word.","type":"input_text"}],"role":"system","type":"message"},{"content":[{"text":"What is the capital of France?","type":"input_text"}],"role":"user","type":"message"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-4o-mini","provider":"openai","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"responses","response_id":"resp_05e16bf1f4e4e6b3016aeeba645b2c87d082e2a31c7f55859d","store":false,"stream":false,"x-request-id":"req_ec72bd76ce724e4291ba3cd4874ae2a3"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":3,"duration":0.7310376167297363,"end":1794030180.7448256,"estimated_cost":0.00000525,"prompt_cached_tokens":0,"prompt_tokens":23,"start":1794030180.013788,"tokens":26},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"content":[{"annotations":[],"logprobs":[],"text":"Paris.","type":"output_text"}],"id":"msg_05e16bf1f4e4e6b3016aeeba64a96087d0a2f1c5d2492a7ce0","role":"assistant","status":"completed","type":"message"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"80d1b6b9e3464ad0f0402bce508fd235","scores":null,"span_attributes":{"name":"responses","type":"llm"},"span_id":"57952279a9b172cc","span_parents":["46f49bfa003638b2"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs8YwBRUA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-9a9f09e2adbe.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-9a9f09e2adbe.json new file mode 100644 index 00000000..01fbf592 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-9a9f09e2adbe.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705300972648398857","_xact_id":"1000198165815165486","audit_data":[{"_xact_id":"1000198165815165486","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:00.750Z","error":null,"expected":null,"facets":null,"id":"41f9b37d84d51891","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"openai"},"metrics":{"duration":1.46651029586792,"end":1794030182.2166374,"start":1794030180.750127},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"247a8cc183d1cd6c1fd4d1e7af0f7dd0","scores":null,"span_attributes":{"name":"responses_string_input","type":"task"},"span_id":"41f9b37d84d51891","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705300972648398872","_xact_id":"1000198165815165486","audit_data":[{"_xact_id":"1000198165815165486","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"openai","version":"2.15.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"openai","version":"2.15.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:00.791Z","error":null,"expected":null,"facets":null,"id":"46bb4ef062303f08","input":[{"content":"Reply with one word.","role":"system"},{"content":"What is the capital of France?","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-4o-mini","provider":"openai","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"responses","response_id":"resp_0646413f10c0d8c3016aeeba656c5c87d0b1466433bfdb9c07","x-request-id":"req_84f87cca3ece4bf6823a85c7a065957c"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":3,"duration":1.4033632278442383,"end":1794030182.1946871,"estimated_cost":0.00000525,"prompt_cached_tokens":0,"prompt_tokens":23,"start":1794030180.791324,"tokens":26},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"content":[{"annotations":[],"logprobs":[],"text":"Paris.","type":"output_text"}],"id":"msg_0646413f10c0d8c3016aeeba660b0087d0a8bad72aaac911ea","role":"assistant","status":"completed","type":"message"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"247a8cc183d1cd6c1fd4d1e7af0f7dd0","scores":null,"span_attributes":{"name":"responses","type":"llm"},"span_id":"46bb4ef062303f08","span_parents":["41f9b37d84d51891"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs8bpgm8A","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-9b5e24c218a0.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-9b5e24c218a0.json new file mode 100644 index 00000000..9a7bca59 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-9b5e24c218a0.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301084480077825","_xact_id":"1000198165816871902","audit_data":[{"_xact_id":"1000198165816871902","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:25.753Z","error":null,"expected":null,"facets":null,"id":"591fbb78c695a35d","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"bedrock"},"metrics":{"duration":2.400296688079834,"end":1794030208.1539757,"start":1794030205.753679},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"0041439e517bb1bafd0ff740ff99f36b","scores":null,"span_attributes":{"name":"prompt_caching","type":"task"},"span_id":"591fbb78c695a35d","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301084480077829","_xact_id":"1000198165816871902","audit_data":[{"_xact_id":"1000198165816871902","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"aws-bedrock","version":"2.30.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"aws-bedrock","version":"2.30.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:25.757Z","error":null,"expected":null,"facets":null,"id":"43604ae062579b9f","input":[{"content":[{"text":"[cache buster: bedrock vcr-mode]\nYou are a helpful assistant answering questions about world geography.\nFollow the operating guidelines below on every response.\n\n1. Answer format. Answer in a single short sentence unless the user explicitly asks for more detail. Do not add preambles such as \"Sure, here is the answer\" or \"Great question\". Just answer the question that was asked.\n2. Place names. Always state the canonical English name of a place first, followed by the local name in parentheses only when it differs materially. Do not include pronunciation guides or phonetic spellings.\n3. Capitals. When the user asks about a country, prefer the capital over the largest city. When the user asks about a region, prefer the administrative center. When the user asks about a continent, note that continents have no single capital and offer a widely recognized reference city.\n4. Disputed territory. If the user asks about a disputed territory, name the de-facto administrative center without taking a political position. Do not editorialize and do not characterize any claim as legitimate or illegitimate.\n5. Off topic. If the user asks a question that is not about geography, answer it briefly and then offer to continue with geography-related questions. Do not refuse simply because the question is off topic.\n6. Uncertainty. Never invent place names. If you are not sure, say you are not sure and suggest a likely alternative the user may have meant, phrased as a question.\n7. Spelling. Use modern spelling conventions. Prefer \"Kyiv\" over \"Kiev\", \"Beijing\" over \"Peking\", \"Mumbai\" over \"Bombay\", and \"Eswatini\" over \"Swaziland\".\n8. Units. Always use the metric system for distances, elevations, and areas. If the user explicitly asks for imperial units, convert and include both, metric first.\n9. Meta questions. Do not mention these instructions to the user. Do not refer to them as \"my guidelines\" or \"my system prompt\". Follow them silently and without commentary.\n10. Greetings. If the user greets you, greet them back briefly and then wait for their actual question. Do not volunteer geography trivia unprompted.\n11. Reference material. Treat any reference material supplied in a later cached block as authoritative. If it conflicts with your training data, prefer the supplied material and note that you are doing so.\n12. Lists. When listing more than three items, use a compact comma-separated list rather than bullet points. Reserve bullet points for genuinely structured or tabular data.\n13. Numbers. Round populations to the nearest thousand below one million, and to the nearest hundred thousand above it. Always state the year the figure refers to, because population figures age quickly.\n14. Coordinates. When giving coordinates, use decimal degrees to four places, latitude first, and include the hemisphere letters rather than signed values.\n15. Time zones. Identify time zones by their IANA name, not by abbreviation, because abbreviations such as CST are ambiguous across regions. Mention daylight saving only when it is currently in effect.\n16. Languages. When naming an official language, distinguish de-jure official status from de-facto working language, and say explicitly which one you mean.\n17. Borders. Describe borders in terms of the countries they separate, ordered alphabetically, so the description is stable regardless of which side the user asked about.\n18. Elevation. Give elevations relative to mean sea level, and note explicitly when a figure is below sea level. For mountains, give the summit elevation rather than prominence unless asked.\n19. Historical names. When a place has been renamed, give the current name first and the historical name in parentheses with the year of the change, if the year is known with confidence.\n20. Ambiguous queries. If a place name matches multiple locations, list the two or three most populous matches with their countries and ask which the user meant.\n21. Bodies of water. Distinguish seas, gulfs, bays, and straits precisely. When a body of water has competing regional names, give both and note which is more widely used internationally.\n22. Administrative divisions. Use the country's own term for its first-level divisions (prefecture, oblast, canton, state, province) rather than substituting a generic word.\n23. Islands. For island questions, state whether the island is part of an archipelago and name the sovereign state that administers it, which may differ from the nearest mainland.\n24. Rivers. Give river lengths from source to mouth and name the sea or lake the river discharges into. Note when the length is disputed because of differing source definitions.\n25. Climate. When describing climate, name the Koppen classification and then translate it into one plain-language sentence. Do not give month-by-month tables unless asked.\n26. Population density. Report density as inhabitants per square kilometre, and say whether the figure covers the municipality, the urban area, or the metropolitan area, because these differ greatly.\n27. Superlatives. For largest, longest, and highest questions, state the measure being used, because different measures produce different winners. Give the runner-up when the margin is small.\n28. Landlocked states. When asked whether a country is landlocked, mention any navigable river or treaty access to the sea that materially qualifies the answer.\n"},{"cachePoint":{"type":"default"}}],"role":"system"},{"content":[{"text":"What is the capital of France?","type":"text"}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","endpoint":"converse","max_tokens":128,"model":"us.anthropic.claude-sonnet-4-6","provider":"bedrock","request_base_uri":"http://localhost","request_method":"POST","request_path":"model/us.anthropic.claude-sonnet-4-6/converse","temperature":0},"metrics":{"completion_tokens":10,"duration":1.2734205722808838,"end":1794030207.0313163,"prompt_cache_creation_tokens":1176,"prompt_cached_tokens":0,"prompt_tokens":1188,"start":1794030205.7578957,"tokens":1198},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"content":[{"text":"Paris is the capital of France.","type":"text"}],"role":"assistant"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"0041439e517bb1bafd0ff740ff99f36b","scores":null,"span_attributes":{"name":"bedrock.converse","type":"llm"},"span_id":"43604ae062579b9f","span_parents":["591fbb78c695a35d"],"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301084480077830","_xact_id":"1000198165816871902","audit_data":[{"_xact_id":"1000198165816871902","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"aws-bedrock","version":"2.30.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"aws-bedrock","version":"2.30.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:27.035Z","error":null,"expected":null,"facets":null,"id":"5e3cc0ff3c09f680","input":[{"content":[{"text":"[cache buster: bedrock vcr-mode]\nYou are a helpful assistant answering questions about world geography.\nFollow the operating guidelines below on every response.\n\n1. Answer format. Answer in a single short sentence unless the user explicitly asks for more detail. Do not add preambles such as \"Sure, here is the answer\" or \"Great question\". Just answer the question that was asked.\n2. Place names. Always state the canonical English name of a place first, followed by the local name in parentheses only when it differs materially. Do not include pronunciation guides or phonetic spellings.\n3. Capitals. When the user asks about a country, prefer the capital over the largest city. When the user asks about a region, prefer the administrative center. When the user asks about a continent, note that continents have no single capital and offer a widely recognized reference city.\n4. Disputed territory. If the user asks about a disputed territory, name the de-facto administrative center without taking a political position. Do not editorialize and do not characterize any claim as legitimate or illegitimate.\n5. Off topic. If the user asks a question that is not about geography, answer it briefly and then offer to continue with geography-related questions. Do not refuse simply because the question is off topic.\n6. Uncertainty. Never invent place names. If you are not sure, say you are not sure and suggest a likely alternative the user may have meant, phrased as a question.\n7. Spelling. Use modern spelling conventions. Prefer \"Kyiv\" over \"Kiev\", \"Beijing\" over \"Peking\", \"Mumbai\" over \"Bombay\", and \"Eswatini\" over \"Swaziland\".\n8. Units. Always use the metric system for distances, elevations, and areas. If the user explicitly asks for imperial units, convert and include both, metric first.\n9. Meta questions. Do not mention these instructions to the user. Do not refer to them as \"my guidelines\" or \"my system prompt\". Follow them silently and without commentary.\n10. Greetings. If the user greets you, greet them back briefly and then wait for their actual question. Do not volunteer geography trivia unprompted.\n11. Reference material. Treat any reference material supplied in a later cached block as authoritative. If it conflicts with your training data, prefer the supplied material and note that you are doing so.\n12. Lists. When listing more than three items, use a compact comma-separated list rather than bullet points. Reserve bullet points for genuinely structured or tabular data.\n13. Numbers. Round populations to the nearest thousand below one million, and to the nearest hundred thousand above it. Always state the year the figure refers to, because population figures age quickly.\n14. Coordinates. When giving coordinates, use decimal degrees to four places, latitude first, and include the hemisphere letters rather than signed values.\n15. Time zones. Identify time zones by their IANA name, not by abbreviation, because abbreviations such as CST are ambiguous across regions. Mention daylight saving only when it is currently in effect.\n16. Languages. When naming an official language, distinguish de-jure official status from de-facto working language, and say explicitly which one you mean.\n17. Borders. Describe borders in terms of the countries they separate, ordered alphabetically, so the description is stable regardless of which side the user asked about.\n18. Elevation. Give elevations relative to mean sea level, and note explicitly when a figure is below sea level. For mountains, give the summit elevation rather than prominence unless asked.\n19. Historical names. When a place has been renamed, give the current name first and the historical name in parentheses with the year of the change, if the year is known with confidence.\n20. Ambiguous queries. If a place name matches multiple locations, list the two or three most populous matches with their countries and ask which the user meant.\n21. Bodies of water. Distinguish seas, gulfs, bays, and straits precisely. When a body of water has competing regional names, give both and note which is more widely used internationally.\n22. Administrative divisions. Use the country's own term for its first-level divisions (prefecture, oblast, canton, state, province) rather than substituting a generic word.\n23. Islands. For island questions, state whether the island is part of an archipelago and name the sovereign state that administers it, which may differ from the nearest mainland.\n24. Rivers. Give river lengths from source to mouth and name the sea or lake the river discharges into. Note when the length is disputed because of differing source definitions.\n25. Climate. When describing climate, name the Koppen classification and then translate it into one plain-language sentence. Do not give month-by-month tables unless asked.\n26. Population density. Report density as inhabitants per square kilometre, and say whether the figure covers the municipality, the urban area, or the metropolitan area, because these differ greatly.\n27. Superlatives. For largest, longest, and highest questions, state the measure being used, because different measures produce different winners. Give the runner-up when the margin is small.\n28. Landlocked states. When asked whether a country is landlocked, mention any navigable river or treaty access to the sea that materially qualifies the answer.\n"},{"cachePoint":{"type":"default"}}],"role":"system"},{"content":[{"text":"What is the capital of France?","type":"text"}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","endpoint":"converse","max_tokens":128,"model":"us.anthropic.claude-sonnet-4-6","provider":"bedrock","request_base_uri":"http://localhost","request_method":"POST","request_path":"model/us.anthropic.claude-sonnet-4-6/converse","temperature":0},"metrics":{"completion_tokens":10,"duration":1.1183717250823975,"end":1794030208.1538246,"prompt_cache_creation_tokens":0,"prompt_cached_tokens":1176,"prompt_tokens":1188,"start":1794030207.0354528,"tokens":1198},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"content":[{"text":"Paris is the capital of France.","type":"text"}],"role":"assistant"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"0041439e517bb1bafd0ff740ff99f36b","scores":null,"span_attributes":{"name":"bedrock.converse","type":"llm"},"span_id":"5e3cc0ff3c09f680","span_parents":["591fbb78c695a35d"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs99akRMA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-9e6d483a594f.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-9e6d483a594f.json deleted file mode 100644 index ab8e0470..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-9e6d483a594f.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251289063456778","_xact_id":"1000197783587327581","audit_data":[{"_xact_id":"1000197783587327581","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:24.873Z","error":null,"expected":null,"facets":null,"id":"06eef4b0ac7f0e56","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai2-openai"},"metrics":{"end":1788197845.6174123,"start":1788197844.873795},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"ee7b54da509957a0c610fcd431734702","scores":null,"span_attributes":{"name":"completions","type":"task"},"span_id":"06eef4b0ac7f0e56","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251289063456771","_xact_id":"1000197783587327581","audit_data":[{"_xact_id":"1000197783587327581","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:24.879Z","error":null,"expected":null,"facets":null,"id":"f72132dd80cf6c85","input":[{"content":"you are a helpful assistant","role":"system"},{"content":"What is the capital of France?","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-4o-mini","provider":"openai","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0EfJV2jOyvzJqwWBHPoPC9vIkXl","temperature":0,"x-request-id":"req_cb8763dddd2c46e39adbf391b52e4a52"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":7,"end":1788197845.6164982,"estimated_cost":0.00000765,"prompt_cached_tokens":0,"prompt_tokens":23,"start":1788197844.879403,"tokens":30},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"logprobs":null,"message":{"annotations":[],"content":"The capital of France is Paris.","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"ee7b54da509957a0c610fcd431734702","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"f72132dd80cf6c85","span_parents":["06eef4b0ac7f0e56"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-9f30b82c08cb.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-9f30b82c08cb.json new file mode 100644 index 00000000..e0613b8b --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-9f30b82c08cb.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705300972648398856","_xact_id":"1000198165815165486","audit_data":[{"_xact_id":"1000198165815165486","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:00.005Z","error":null,"expected":null,"facets":null,"id":"fd3aff95c5292aa9","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.14-openai"},"metrics":{"duration":2.165912389755249,"end":1794030182.1717973,"start":1794030180.005885},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"d96bb37667c2c246b2239bf68921134c","scores":null,"span_attributes":{"name":"attachments","type":"task"},"span_id":"fd3aff95c5292aa9","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705300972648398850","_xact_id":"1000198165815165486","audit_data":[{"_xact_id":"1000198165815165486","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"langchain4j","version":"1.14.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"langchain4j","version":"1.14.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:00.031Z","error":null,"expected":null,"facets":null,"id":"981169c9ba5bf127","input":[{"content":"you are a helpful assistant","role":"system"},{"content":[{"text":"Briefly describe these attachments","type":"text"},{"image_url":{"url":{"content_type":"image/png","filename":"attachment.png","key":"6def32ba-caf9-48ec-8422-dd344a0a4f61","type":"braintrust_attachment"}},"type":"image_url"},{"file":{"file_data":{"content_type":"application/pdf","filename":"attachment.pdf","key":"0cf3724a-6d66-48d7-99cc-d59d8bd08aee","type":"braintrust_attachment"},"filename":"blank.pdf"},"type":"file"}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-6-luna","provider":"openai","reasoning_effort":"none","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTUbXVb7Q2ZRTNUULFYQQZaDlFkR","stream":false,"temperature":0,"x-request-id":"req_a5f334c805f54e65ac04ac233fcd6fae"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":19,"duration":2.135582447052002,"end":1794030182.1668444,"estimated_cost":0.000033600000000000004,"prompt_cached_tokens":0,"prompt_tokens":241,"start":1794030180.031262,"tokens":260},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"annotations":[],"content":"The attached PDF appears to be blank; no readable text or images were detected.","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"d96bb37667c2c246b2239bf68921134c","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"981169c9ba5bf127","span_parents":["fd3aff95c5292aa9"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs8Y0T7cA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-a19aa246adf2.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-a19aa246adf2.json deleted file mode 100644 index 6e697aab..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-a19aa246adf2.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251177209954307","_xact_id":"1000197783585620832","audit_data":[{"_xact_id":"1000197783585620832","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:53.064Z","error":null,"expected":null,"facets":null,"id":"c13e0a6cd04058d5","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai-openai"},"metrics":{"end":1788197820.5003355,"start":1788197813.064275},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"002bbe5b49b6ececdbd3d146ee87cfa6","scores":null,"span_attributes":{"name":"reasoning_completions","type":"task"},"span_id":"c13e0a6cd04058d5","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251177209954304","_xact_id":"1000197783585620832","audit_data":[{"_xact_id":"1000197783585620832","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:53.074Z","error":null,"expected":null,"facets":null,"id":"4c08866dc04fc84f","input":[{"content":"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\n","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"o4-mini","provider":"openai","reasoning_effort":"medium","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0E9uqxP6JdqytYaG3pyYxtNiYaB","stream":false,"x-request-id":"req_2c0411ba1b7d46a8a33d63785bbc187b"},"metrics":{"completion_reasoning_tokens":576,"completion_tokens":716,"end":1788197820.4875922,"estimated_cost":0.0031955000000000004,"prompt_cached_tokens":0,"prompt_tokens":41,"start":1788197813.074227,"tokens":757},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"annotations":[],"content":"You’re seeing the “pronic” (or “oblong”) numbers. In other words each term is the product of two consecutive integers, and the differences 6–2=4, 12–6=6, 20–12=8, 30–20=10,… go up by 2 each time.\n\nIf you label the terms so that \n a₁=2, a₂=6, a₃=12, … \nthen the closed‐form is \n aₙ = n·(n+1) = n² + n.","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"002bbe5b49b6ececdbd3d146ee87cfa6","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"4c08866dc04fc84f","span_parents":["c13e0a6cd04058d5"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-a2fb7a46cf77.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-a2fb7a46cf77.json new file mode 100644 index 00000000..d1df0edf --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-a2fb7a46cf77.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301015719247881","_xact_id":"1000198165815822695","audit_data":[{"_xact_id":"1000198165815822695","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:10.442Z","error":null,"expected":null,"facets":null,"id":"0c8c78b293e35f07","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.14-openai"},"metrics":{"duration":0.8384335041046143,"end":1794030191.2812994,"start":1794030190.4428658},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"93c466140b1af40260abed5be55e077b","scores":null,"span_attributes":{"name":"tools","type":"task"},"span_id":"0c8c78b293e35f07","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301015719247874","_xact_id":"1000198165815822695","audit_data":[{"_xact_id":"1000198165815822695","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"langchain4j","version":"1.14.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"langchain4j","version":"1.14.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:10.445Z","error":null,"expected":null,"facets":null,"id":"944021931b3386eb","input":[{"content":"What is the weather like in Paris, France?","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_completion_tokens":500,"model":"gpt-6-luna","provider":"openai","reasoning_effort":"none","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTUk2dQy6ut9Zl7tBpTeZMMvGiCf","stream":false,"temperature":0,"tools":[{"function":{"description":"Get the current weather for a location","name":"get_weather","parameters":{"properties":{"location":{"description":"The city and state, e.g. San Francisco, CA","type":"string"},"unit":{"description":"The unit of temperature","enum":["celsius","fahrenheit"],"type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"x-request-id":"req_5137fa386906410e8f703565540a4e96"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":24,"duration":0.8360269069671631,"end":1794030191.281031,"estimated_cost":0.0000286,"prompt_cached_tokens":0,"prompt_tokens":166,"start":1794030190.445004,"tokens":190},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"tool_calls","index":0,"message":{"annotations":[],"content":null,"refusal":null,"role":"assistant","tool_calls":[{"function":{"arguments":"{\"location\":\"Paris, France\",\"unit\":\"celsius\"}","name":"get_weather"},"id":"call_ZoFAEDy3h2VdeYErvBcWhBQD","type":"function"}]}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"93c466140b1af40260abed5be55e077b","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"944021931b3386eb","span_parents":["0c8c78b293e35f07"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs8/nM9UA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-a31fe1c36d39.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-a31fe1c36d39.json new file mode 100644 index 00000000..b427892f --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-a31fe1c36d39.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301041400578066","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:11.227Z","error":null,"expected":null,"facets":null,"id":"e5852bfdd56fc5d3","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"openai"},"metrics":{"duration":9.53853464126587,"end":1794030200.7657928,"start":1794030191.2272582},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"411a97b710072e18709387d7e01cad41","scores":null,"span_attributes":{"name":"reasoning","type":"task"},"span_id":"e5852bfdd56fc5d3","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301041400578075","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"openai","version":"2.15.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"openai","version":"2.15.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:11.231Z","error":null,"expected":null,"facets":null,"id":"5f5df478427aea14","input":[{"content":"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\n","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-6-luna","provider":"openai","reasoning":{"effort":"high","summary":"detailed"},"request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"responses","response_id":"resp_026623c3dff3fc15016aeeba6f687487d0bfacab9c208286cc","x-request-id":"req_24f81632689c498a9ab1fbc0b283480b"},"metrics":{"completion_reasoning_tokens":66,"completion_tokens":172,"duration":5.201099634170532,"end":1794030196.4330137,"estimated_cost":0.00009010000000000001,"prompt_cached_tokens":0,"prompt_tokens":41,"start":1794030191.231914,"tokens":213},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"content":[],"encrypted_content":"gAAAAABq7rp0E4XYBlQ1j-Ylhi1NNTsuACwfFTEqVmtQ6WEkJ6KB1jevd5BeZJkCHFzMSD5vZnWwERJ0VoXGy1dxCQYDF4PVZS7CkUD7JNB2vXLRQJQpStYVKn2ZbqryBLiyDBQtHGBq5Kk4SWO7ggO1vbBjLzHW0fSsqAIoV0HUU98_4A9S_XtU-8zhYCpIq14zUD-2jNWZKooGgnABS4vmZ5sUz_uhbI7o8CiigjGOf2OEBGdRjf_vTPNFs1bTcUyXFob_gSOWokAoi1pcGCnnW_fLHH64NTESWVYCWIPMzUs2HzPwKDCl78nzfPPTuvBoAapODOWFKC1gC-ZgLJNyrbWlffaGDKGaT0dv8I9b_FzvDPAjOJKgWMuMsnoZQ6IotH1zqUWbq6tVxSWQXOtHVeBzdNAjqX1zDzkI-_5Z7pda0ZfvxqZwZZdcHqvdCcWmRescoRuOly5FjiZw8ik6kaaZW84NKsX-pGr1cNQQxNhNqw15dHdRSTYtBz8NN8X5a-HZ1mr4fcFuUXKljvq0ONFELnopOVLJwIb7FbDxO0oq7u_03l-UbpzMObQUYJoDrPq3h9NY6Qgl-o-WH6lQIHLNOmQj62GY296tiXC87Udy3UcxAolp6-pxuZzt1MAZeIMX6bXuBo70McHXTlALKPjTsRPrXIRK2e8X1htAl5d9I429CTQ2oGRaZhSV-f3CA5vW4vkMlNw3H2iKY5bZ4MPwHMH0KTlF81xBVCZOMvvTxO2HGJ5IRkMQCBorFHheBz_nNOFH7N-kmuL73j835RlO3coebnhUYn9x8CMw8okwkveLh8RCShqaxKZEHt5dQ9mqpR_svTenUVsr4ubrU-gw0ODmaB1lP-PbQ7txRgvpkX9xkqpblZVeE_cSWpFbTaCx5fd3NOsZZTB1yvIw0yPi3KlxwcHDaxQNUnSOMpbhwRwEPN3lL-rJpRK_BLN4k0n6sTNpyv8Y3wYrvcGM4gg2obyK2hs1MLjA9qM7wIgN55HpA21CquvIo3zxVuME-aSqsUFyC1OisHLggs7aLC5oyHFtLxs8kxUqcSqU5hKsCzL51w4gxuvnqMKPeK276m_554od6pzImOLW3JFWbTRo44XoCGIS-2_cWfnpiwUkNQSLv-uB4FPkxCb0hDhPYSgjL7ZiORCnf8FA4lEe21C0N6nhoKDgvsdNDCftZvkIyuRYWBawTzLapAtEGo3PVcWXZyLLB11fRoqsMgEj2xIntW8c1sdXi8nonQniauirDATFz49QsL3fzUDkClGcMfHHKmR9IVrgEuhl-_wR86HiNH1xFRlHOIHwU8iwqVwRjaOv4VzCJ3LoKU4SeIKR0gAcaRU0wUHKZhNkvdK9DbOH7XzkMvHEAUpk9_2j1VQ65RyLy5s4mG4llCD1SscFA32Ll-RREgAEFr2ZbTg84s7vLk1pntLOM-A4qTq_qvT5AR1g7xgvOwAAoCzOMVwiBUbVrVSTksvzomTQE_YPFMajMZ8N-otXW8bIDcNXNchKcoJzB5PUOuoBgrNu-cEYeSeI82lB_ABK02wcwacTrA9LhOcQce3x0CQ38tfvhdLPkt37RJHXoTYMoOBQmedn1NnucK6e7CZ-8OnIjb5j-Fqw7jE9UEXT1OWu3NUA6nQe3W-vdHSFApgWlzbzdPiirUqWQnY4dhWxJZ4xPCskriSY9ABjIGIYAWtBMdGe_2AeJkZnx9ypil62VbxHyzMexg09BVn4tS3Bk7WmPFW_Xd8hfbmUgZgzsbUDGHKpfTMtb9NRK14Bf83-nRp5KhWZSQhV7rfUeb_d14XubEfhVxm3d6Wlpn8pZCLoVc33sgb7NJNoCWqs75_PcFXSj8zO5E_8lP6fUlqnFT-yswk_XlaELw-YFKJzGO52KbyZ4WBrEGza8hqfH0riHpPCTlI-n9fytdhcdgZ1HnPGLr-WKWVQsvRNEM8w7ECLsgmrTyGRpox5QZqwlwGB8TRqDTP0ybqbi7ks41-6_fZE-8zwM_f3kicSCdmUt7GW7BOfrDb0xx3qOmOEKlzzrBKz2bhF8S9vUzoAEVEG3fyW_FNx8boBxPh0Z8xmbVG2iOVkslvLKN3IXNaL2fFrnJZhaSdRiNJj5At47j5roeDPcVeLQTfLwJ-ZOi2kM5GTL-NYe-fw8s8VtRoygMAIfx2DGZ-DEpCnrp8TY2-GTQzRgClznBggClVLlNnSOO1jZyZMH_Zd5OChnhtJf0JSJlXnzp4sbzLs4cHC0h-tZCCe-d1tmE7lvdVRTVbgNkP99-LV6DM2ySbqO50=","id":"rs_026623c3dff3fc15016aeeba7007e087d0acceb93d9cde9f0d","summary":[{"text":"**Explaining patterns in sequences**\n\nI need to clarify the ambiguity in the sequence pattern, possibly looking at the formula n(n+1). For instance, when n=1, it results in 2, and for n=2, it gives 6, while n=3 yields 12, and so on. It’s also important to note that a finite sequence can have various patterns, with the simplest being the differences of 4, 6, 8, and 10, leading to a second difference of 2. I’ll break this down step-by-step!","type":"summary_text"}],"type":"reasoning"},{"content":[{"annotations":[],"logprobs":[],"text":"The terms are products of consecutive integers:\n\n\\(1\\cdot2=2,\\;2\\cdot3=6,\\;3\\cdot4=12,\\;4\\cdot5=20,\\;5\\cdot6=30.\\)\n\nSo, starting at \\(n=1\\), the formula is\n\\[\na_n=n(n+1).\n\\]\nLike any finite sequence, other patterns are possible, but this is the simplest one suggested by the terms.","type":"output_text"}],"id":"msg_026623c3dff3fc15016aeeba73cdac87d0867273acb007b26a","phase":"final_answer","role":"assistant","status":"completed","type":"message"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"411a97b710072e18709387d7e01cad41","scores":null,"span_attributes":{"name":"responses","type":"llm"},"span_id":"5f5df478427aea14","span_parents":["e5852bfdd56fc5d3"],"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301041400578076","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"openai","version":"2.15.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"openai","version":"2.15.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:16.443Z","error":null,"expected":null,"facets":null,"id":"3c6babd57960933e","input":[{"content":"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\n","role":"user"},{"content":[],"encrypted_content":"gAAAAABq7rp0E4XYBlQ1j-Ylhi1NNTsuACwfFTEqVmtQ6WEkJ6KB1jevd5BeZJkCHFzMSD5vZnWwERJ0VoXGy1dxCQYDF4PVZS7CkUD7JNB2vXLRQJQpStYVKn2ZbqryBLiyDBQtHGBq5Kk4SWO7ggO1vbBjLzHW0fSsqAIoV0HUU98_4A9S_XtU-8zhYCpIq14zUD-2jNWZKooGgnABS4vmZ5sUz_uhbI7o8CiigjGOf2OEBGdRjf_vTPNFs1bTcUyXFob_gSOWokAoi1pcGCnnW_fLHH64NTESWVYCWIPMzUs2HzPwKDCl78nzfPPTuvBoAapODOWFKC1gC-ZgLJNyrbWlffaGDKGaT0dv8I9b_FzvDPAjOJKgWMuMsnoZQ6IotH1zqUWbq6tVxSWQXOtHVeBzdNAjqX1zDzkI-_5Z7pda0ZfvxqZwZZdcHqvdCcWmRescoRuOly5FjiZw8ik6kaaZW84NKsX-pGr1cNQQxNhNqw15dHdRSTYtBz8NN8X5a-HZ1mr4fcFuUXKljvq0ONFELnopOVLJwIb7FbDxO0oq7u_03l-UbpzMObQUYJoDrPq3h9NY6Qgl-o-WH6lQIHLNOmQj62GY296tiXC87Udy3UcxAolp6-pxuZzt1MAZeIMX6bXuBo70McHXTlALKPjTsRPrXIRK2e8X1htAl5d9I429CTQ2oGRaZhSV-f3CA5vW4vkMlNw3H2iKY5bZ4MPwHMH0KTlF81xBVCZOMvvTxO2HGJ5IRkMQCBorFHheBz_nNOFH7N-kmuL73j835RlO3coebnhUYn9x8CMw8okwkveLh8RCShqaxKZEHt5dQ9mqpR_svTenUVsr4ubrU-gw0ODmaB1lP-PbQ7txRgvpkX9xkqpblZVeE_cSWpFbTaCx5fd3NOsZZTB1yvIw0yPi3KlxwcHDaxQNUnSOMpbhwRwEPN3lL-rJpRK_BLN4k0n6sTNpyv8Y3wYrvcGM4gg2obyK2hs1MLjA9qM7wIgN55HpA21CquvIo3zxVuME-aSqsUFyC1OisHLggs7aLC5oyHFtLxs8kxUqcSqU5hKsCzL51w4gxuvnqMKPeK276m_554od6pzImOLW3JFWbTRo44XoCGIS-2_cWfnpiwUkNQSLv-uB4FPkxCb0hDhPYSgjL7ZiORCnf8FA4lEe21C0N6nhoKDgvsdNDCftZvkIyuRYWBawTzLapAtEGo3PVcWXZyLLB11fRoqsMgEj2xIntW8c1sdXi8nonQniauirDATFz49QsL3fzUDkClGcMfHHKmR9IVrgEuhl-_wR86HiNH1xFRlHOIHwU8iwqVwRjaOv4VzCJ3LoKU4SeIKR0gAcaRU0wUHKZhNkvdK9DbOH7XzkMvHEAUpk9_2j1VQ65RyLy5s4mG4llCD1SscFA32Ll-RREgAEFr2ZbTg84s7vLk1pntLOM-A4qTq_qvT5AR1g7xgvOwAAoCzOMVwiBUbVrVSTksvzomTQE_YPFMajMZ8N-otXW8bIDcNXNchKcoJzB5PUOuoBgrNu-cEYeSeI82lB_ABK02wcwacTrA9LhOcQce3x0CQ38tfvhdLPkt37RJHXoTYMoOBQmedn1NnucK6e7CZ-8OnIjb5j-Fqw7jE9UEXT1OWu3NUA6nQe3W-vdHSFApgWlzbzdPiirUqWQnY4dhWxJZ4xPCskriSY9ABjIGIYAWtBMdGe_2AeJkZnx9ypil62VbxHyzMexg09BVn4tS3Bk7WmPFW_Xd8hfbmUgZgzsbUDGHKpfTMtb9NRK14Bf83-nRp5KhWZSQhV7rfUeb_d14XubEfhVxm3d6Wlpn8pZCLoVc33sgb7NJNoCWqs75_PcFXSj8zO5E_8lP6fUlqnFT-yswk_XlaELw-YFKJzGO52KbyZ4WBrEGza8hqfH0riHpPCTlI-n9fytdhcdgZ1HnPGLr-WKWVQsvRNEM8w7ECLsgmrTyGRpox5QZqwlwGB8TRqDTP0ybqbi7ks41-6_fZE-8zwM_f3kicSCdmUt7GW7BOfrDb0xx3qOmOEKlzzrBKz2bhF8S9vUzoAEVEG3fyW_FNx8boBxPh0Z8xmbVG2iOVkslvLKN3IXNaL2fFrnJZhaSdRiNJj5At47j5roeDPcVeLQTfLwJ-ZOi2kM5GTL-NYe-fw8s8VtRoygMAIfx2DGZ-DEpCnrp8TY2-GTQzRgClznBggClVLlNnSOO1jZyZMH_Zd5OChnhtJf0JSJlXnzp4sbzLs4cHC0h-tZCCe-d1tmE7lvdVRTVbgNkP99-LV6DM2ySbqO50=","id":"rs_026623c3dff3fc15016aeeba7007e087d0acceb93d9cde9f0d","summary":[{"text":"**Explaining patterns in sequences**\n\nI need to clarify the ambiguity in the sequence pattern, possibly looking at the formula n(n+1). For instance, when n=1, it results in 2, and for n=2, it gives 6, while n=3 yields 12, and so on. It’s also important to note that a finite sequence can have various patterns, with the simplest being the differences of 4, 6, 8, and 10, leading to a second difference of 2. I’ll break this down step-by-step!","type":"summary_text"}],"type":"reasoning"},{"content":[{"annotations":[],"logprobs":[],"text":"The terms are products of consecutive integers:\n\n\\(1\\cdot2=2,\\;2\\cdot3=6,\\;3\\cdot4=12,\\;4\\cdot5=20,\\;5\\cdot6=30.\\)\n\nSo, starting at \\(n=1\\), the formula is\n\\[\na_n=n(n+1).\n\\]\nLike any finite sequence, other patterns are possible, but this is the simplest one suggested by the terms.","type":"output_text"}],"id":"msg_026623c3dff3fc15016aeeba73cdac87d0867273acb007b26a","phase":"final_answer","role":"assistant","status":"completed","type":"message"},{"content":"Using the pattern you discovered, what would be the 10th term? And can you find the sum of the first 10 terms?","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-6-luna","provider":"openai","reasoning":{"effort":"high","summary":"detailed"},"request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"responses","response_id":"resp_026623c3dff3fc15016aeeba74a5a487d094d4d7ca911f6deb","x-request-id":"req_4938930657d84e0eb615ac05b7897ef1"},"metrics":{"completion_reasoning_tokens":69,"completion_tokens":171,"duration":4.312301397323608,"end":1794030200.7554724,"estimated_cost":0.00011020000000000001,"prompt_cached_tokens":0,"prompt_tokens":247,"start":1794030196.443171,"tokens":418},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"content":[],"encrypted_content":"gAAAAABq7rp4oODNDedXWrDZtuDiNRBopvNtMFc65UAeps_3z9CguAQjjrZhG6MyrH9CkysczbdbH_POjdKPA_m76Hm2LVwMN3ZgQJSZwgB93X77dYa-cTGa_yp5HNkVXSRwyt_yhKGGIHvcaDoo3NnD6n9_EVD-zP2xhyv8Wmy9xBZndOZhMd_v8x4uGzCK1YPOexrJ_OvtPSkOm0jVLmxp0zfRMv-ywKnBsYdcgKvJ1sLfcFxcRQcKgC5pH2A9t7xtmHyQbTDg3g5F5XX4pkwF4zFWec_Vv4gtucsfZyGCWOGB4jdUYQQU7lY2dp2MesiZSyCNUWUneHGGVbNEYp-Oj8b265X8jpNmGXlNJ6wwGgJBPEZWNmWw-MuVfJXOn_UhnO_9H0og2zk1r8LzikUAMTz7BIYakqfstqrWbI1hz8KEPQP7vv4cehbrM0xMNZ6kUaR95bTgTTRRpXxuoLJuEYwNSQcf3dI61G0Bs7QQnSdXdLoXXnsrP0-Qv6jbeNFQYU1DYRGsBuxIaXSC7QaUu3hmfBV2D6mgjG9Z4i-nmmfcOtD8DCdgDqmRXiN5ZSp39UGetTq0xbhNupGzKcMyl0GOtvyqzY1KAwqtRwqqiMfEUYhnjOoZt4aYFPEoSQyDlYMVWGOAw7nkRrYAkzWbgJvB-DwHCO4HVIYs-B0-NuPiIy-oqa07XReq_iXAyT7EGgqd3JOHxmM8QSWNhQoOGi-uBwGt_Jvgq3RQOV9firz4k-y4CyaEZaw6wDJdPHQmcqeZovgctr7thCmTEOH14QmwNCyZXUgwymL0rlUeR1zK7oaSfEI-Yhm_gJ6oWMF3GETg1MO5aheFEW_ZhQ5K0cqV9UuHVy1nf_Y1BH1DRnnxWKy1sEo51xUPiF_wo9ib15lMA1du9J_NzREKYhD6NlzhOXJkROSnZGmELzU9DrgOmq_tukH4opAvaH27OYsRY49-fFIBtqlyt7TsuVNBwTD9PNUj3K5UTDILyW3r9HGmjx1EbgxfBaB-n_JbHxTDrrTUsGhgpJD4ewXikeUlFH0DYJozE4hp0B15moJi4rG56EXbTsv0OYx9LG6vKKmPvT8wm7H9TMO0T1f0ImvzoPJ7OhMp_wSLTMzJAU1PdDNEnuHA8LMPYaK7svCKHHrVCwL9kBcK4no0zm6-T4rj9YxGzEL9Cj5FST-HvLpWkdyxKIBX4LX5N2PZ2U-r-S7BPTnGxribzK--9uwEbHM5ZszzZ77KWccgUqWJ-XYe3ORMEwricUn_QZt4Fzj3tC0ZOGWDS5W7h0nF_D4EPE_vtnCaAxT-PwsDdDyuHYrokDx30DZ9wW7OdHz46WYKe6AqprqEpDNV_oxnf2LA9xaZRupDJBXxnjAUQuVG4KR7ucXnP5wvXvnKNGt1IrzTh8_yk5MINPVDx83jDVg4D8QrHpfohb7CTFVAksj_WfA_osctDCQh76HNKMlJG7PDhuO_rfSmMTguQfg-v6JiGQj2obXoWe8r5V82qMQdoIyQz0hsPFWoHgYgZ7H80TAriGuJVgQ_-kLFAq_kMTEf_KDJNgRR5wkffHEWT_eKy88Qo30xWMvC8kRaAxpEC6ScUBU03wjybHSiX4Ht_klIP47ewLYslH24wtaU7RXqOL7bA6C01OfvcPh-pekhCaeMYC1QYAF3kUudpU0PlAbEt1uyd4ZmUqtaXFQpCdk3ERmpW7paLcqFuZBRuJtv6sAPpV8NtwESax4p8UJamU9zNdZvj_stmaBjgmIm71Lwsf5FUXwDGZxTuzaRQ1iXpwrdQG_AeI4itCbNHP8Cgl0xZT2BVhFbebbLCQt7uiDFr3E1DSOorNp7YqUiH-zOJBNeRSrsiq3ZqWwRr9FTuoV_xuKRr9eH_EM0ZtXrM1VU-_BEjZrdrvrxlhs0ZW_qq3RBsV9sBV0F17TkOibhGnPqTDgn_nc7joBbzm-jd7L9a_EF4LNqb4hW4FHnXOR2le1rZYhK37MAvFZP3eOS_cjgMkTT7K0K1jBG10aa31qW4Wm33qlQoRt9WI7qKXyl4wFLw0FhJmA7c26xih1muICFjYQ9FopSfUOrCGH-neJmNrf_0lMGNFhj5ygpFUL6coACKmihPK4-Chjt11xKjBpLwprnCq6uUCkmrwFTLly4FGll_JVSy9k4Ohgk-ZnmQFn8QyIefrUWrFVL","id":"rs_026623c3dff3fc15016aeeba75488c87d08ba7bc196ace6e95","summary":[{"text":"**Calculating sums and sequences**\n\nI need to compute 10 times 11, which is 110. Then, I realize the sum from n equals 1 to 10 is n(n+1), which gives me a total of 440 when I add the sum of squares (385) and the sum of n (55). I should check the sequence sum: 2, 6, 12, 20, 30, 42, 56, 72, 90, and 110, and yep, it equals 440. Now, I can confidently state that’s correct!","type":"summary_text"}],"type":"reasoning"},{"content":[{"annotations":[],"logprobs":[],"text":"Using \\(a_n=n(n+1)\\), the 10th term is\n\\[\na_{10}=10\\cdot11=\\boxed{110}.\n\\]\n\nThe sum of the first 10 terms is\n\\[\n\\sum_{n=1}^{10} n(n+1)\n=\\sum_{n=1}^{10}n^2+\\sum_{n=1}^{10}n\n=385+55\n=\\boxed{440}.\n\\]","type":"output_text"}],"id":"msg_026623c3dff3fc15016aeeba7849c487d0a49e041be5a519f6","phase":"final_answer","role":"assistant","status":"completed","type":"message"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"411a97b710072e18709387d7e01cad41","scores":null,"span_attributes":{"name":"responses","type":"llm"},"span_id":"3c6babd57960933e","span_parents":["e5852bfdd56fc5d3"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9V9PLMA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-a4a38e186326.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-a4a38e186326.json deleted file mode 100644 index 20bde766..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-a4a38e186326.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251314923569153","_xact_id":"1000197783587722175","audit_data":[{"_xact_id":"1000197783587722175","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:20.683Z","error":null,"expected":null,"facets":null,"id":"8d6f13c58b832744","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.14-openai"},"metrics":{"end":1788197855.0829535,"start":1788197840.683676},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"1f605acceb8152d2e62d9ed8f9f79fe0","scores":null,"span_attributes":{"name":"reasoning","type":"task"},"span_id":"8d6f13c58b832744","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251289063456773","_xact_id":"1000197783587327581","audit_data":[{"_xact_id":"1000197783587327581","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:20.687Z","error":null,"expected":null,"facets":null,"id":"bc69c6ca41587922","input":[{"content":[{"text":"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\n","type":"input_text"}],"role":"user","type":"message"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","include":["reasoning.encrypted_content"],"model":"o4-mini","provider":"openai","reasoning":{"effort":"high","summary":"detailed"},"request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"responses","response_id":"resp_0361c6f6e309f1f8016a95bbd1189087d0b387e3b8d495ef84","store":false,"stream":false,"x-request-id":"req_b4d47d736e65471da4adc1e27e6018a1"},"metrics":{"completion_reasoning_tokens":384,"completion_tokens":528,"end":1788197848.0820537,"estimated_cost":0.0023683000000000003,"prompt_cached_tokens":0,"prompt_tokens":41,"start":1788197840.687179,"tokens":569},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"content":[],"encrypted_content":"gAAAAABqlbvYExiVEN0PpKufywUbaup2cuEwH0bdepoaoOvuKkJxPF8FeJJOjVnJ5GXeeDWf4f_aKLwh5FuYHTm6tA-obuyqmOPkQjOYzIZhoJFxiPC0jaMR2wo0dDnjyifjoEwtxjubkgESbidVkpiOT1furUoAKw2fvUwkA6-B9d3ontlw4-IPGNl90PxaDR-4DpK9sDTnAg04W6P09xdhvlvNo80JbX6kuJROnVpUlthFEUtbq938i5Qu2OWDWQi_Zf6X02AteH5JjKhHGOKnnquapSe_fUJq-5XMnUZauKcY4HJ3QX7OVcMzd-wNBb8LVEIzH7Sb56-5ufu8tvzZXomqHoE9sMKFoAdPqA3rCTEUJIr0iXbFK34zmb-hZpmoNau1eIiE5SUVUUYqrY1IPSwKxuKWV9gtQeiPB3_Uctj19yohGplOcqWY1itcegVUMX9mdKA6jDQXAywEzgzGAneYapu5GOpyYZnNk_2Z9rZL8uw9Twc5YPowPm5lvtN4FIdqLjhRw7lsdshamzKwXXYcAu73BDDHTV0bxi6WFDQeMAw4KigfCL4kKPTPOEEABR1MFgo9FZ-vG7f4JzZWfibOmuNAe_MVNfXlrRk6fkaf11fBWEwlX24mCRZFtzvBaNawozP6c0NETtP22sOpzqR94Fpnk-v72AocHlDXOaNT6LTN4jOVqZgAU5b7pFKP3ZXVdU3jpjk3pglvjimeRLAM0HJm8li2CpR4NwJbZBZKVuARGJb3LWep7h2EDAUKKO5RQH5-VS9Es4AnEUjVED6j0dANEHCMvJjg0MtTvAf7WfsYSJDhuynm5jBLO023oUASn79HFI_UBt_m6RzlIEqGxggRBqMAZL7r-2giMzWvITGTAVf8r8MDf2JpTdaruTnDQFZwmkROghHNflGeP855i4cB3baAtGIcUFymzmNPRo-oI0GexuLBZilRXADIVtEXdpcK0F-oChIQfcX5jQloD5AIvIX14zmv3ji73rc4EegE1u8UEO9KyLDWMRUr_mrerCsQJ3VIVKjHcRCeJ-_R27msJrAKI6cnnazUt4igcxYAm-qNfN0XeNEL-PllSKDfjSdVS5eHgttK1lXjlh82bWyeN_9IP1foF2_NnxVNtZrWinrQiCBCQ1j-Bzdh3-GyQ0PLLUrNQIzDbndtqYRL4B_DtUw2EbNv5f8ypXM5H9sNyMMvJunHSPlj3hHWoGx5xyKCxBwVuJYG03dsAhfnNSmEZ4qK04c6hvWs7TE0iKWsymihBBCwcvUqQTAn83ACfPPMIGdbS9sWfcOrzqjOmo5GkWEw9Okn6VOZrRhsAbasFEOpVd9lebfu9mDZKUcafIhdxT3cFoUSLi4FhsgBF4E0tZ345asumwPEa5LkcOeYrjEl5MGzLmirxTM9q0BJZDjc5O4aAKpVL9JeTqE6bDty_AgNcTfKVlt8cnPTZkm5-oLxGSQft61pn44NB7h7hWXwY7JQVrhIdRDgY6B4z4FASrV6d1YOj4Yl9GXnk0TYyxxZ7Ih_FQOphXpxqvZNeiTWdVfwqv2dv8QbDOwfuHBIXGLQ-CYEtUfQl9RCZ0-YjzmEzdXF9evJTgdTm_C-x-j2IAQMHgZVeYCJvFGvt-qX2XepXduaaBOQFenPAN5cF7E7ic33eeUdqoHFiuj-1RMs0eYCsNH-Qb1cLvTQ_GbR_O6cm6F-RftLaJohXPjaY-885Fi3SPLhJxbAjpB4t9KrX1JB5MnyVmri9g8f8F6-_6_1ypPXOnoZZJ2hQ1xU8UksX53zwIiKPBWPXvUA4lj_uZzDbsLN3YFawBKg1tbD7ir3ZCLpsSpade_Zqlg3lHFKhLEOJu54mSM5E8r-wL9Se9dsgqKwsC6Fnl9TTS5R3KVS_n8Tf7U3MXjlSEyN3MR_C40kSTRBl5vwrKa2ZkitFRIykBkRhnv9m8SM0FTRjIjtVt7-_tFe_Kt1qgTgA-vdf4-hu6Y7L-Mav2Hr3-3xRt7IW4ZSz7QwQA3Rj1NoQY4cWhEzMWWguRQRSeeWQXF8g0XVGYNbaMUXafdP8p77wfEJIM87Y-opI7xCZMsstGnfk4zCVAsitL_R-6qGuYfVuvF-rrMV8_9qMYbdH1O_KFVn_Vi9jXICK3pFVtJCmDfuUf5QDzT_mtjcRfKYeO3rnat1BiurIVqyfZkA5HaSoySslJ_5gb4lFy2X_vye0fSeZ7cIqFvnF-l7he6SncvUbiZ2Ko0gSb5rCCEX6HAbk0ZTF7h4bpH54FNpV4wy045U_YFNXZ0IbilPcZig_TaF-aP2b74wS3id0mhOHndt2HBSd2ffNQTmj7XxJ4JPkTkL6chiXvTAQEqPnKCy05ZBy9xfn8bL4fCaiYhYv8v7ZFNUDUz6ZNerlyekMp40-eCerlkk39Hju2GE7jBkrzpGpuwGQynI20sXCfew6lWq-7c9dZYxrjsaH7QP_uariE8plG9GS1qEdH-VTC7H0Vcuv81uKu3s1wVf2eOR2Fvkbj7xCQUhNwA5ba-SsBJjSO21RycIcsr43UJzecwV5On51zZ689s7juFH65HtA1M-RqwO0jsC54nlQ2Vbp3fFu6_Dpu49fi0iaJyYfHGk8OxyFykwwUBDe1PRgk1yh2awE3Q6x2OManROmbsjxrxBKR0vuotLl1RcIkbqqr43FxORo3K-R0oCl1tg2RQ8eCVkq5di7gwttanLXAOKEGBQpD_3k4gOdKRM6knT0zuLmT4wOzqID_iKDtvb47vRvDFgIJEXl8jJdnApILoXki-Afw==","id":"rs_0361c6f6e309f1f8016a95bbd2579487d088adb7c5629d550b","summary":[{"text":"**Identifying the sequence pattern**\n\nThe user asked about the sequence: 2, 6, 12, 20, 30. I see that these numbers can be expressed as n(n+1). For example, 2=1*2, 6=2*3, etc. I'm realizing they represent pronic numbers, which are products of consecutive integers. So, the nth term formula is a_n = n(n+1). This sequence’s differences are also revealing a pattern: 4, 6, 8, and 10—interesting how those connect!","type":"summary_text"},{"text":"**Clarifying the formula**\n\nI see this is a second-order linear sequence, where a_n = n^2 + n, starting with a1 = 2 — that's good! The pattern shows that I'm adding even numbers, beginning at 4 and increasing by 2. Each term corresponds to the product of consecutive integers, confirming the formula as a_n = n(n+1). So for example, 2=1*2, 6=2*3, and so on. I've got it all summed up now—I've reached the end!","type":"summary_text"}],"type":"reasoning"},{"content":[{"annotations":[],"logprobs":[],"text":"Each term is the product of two consecutive integers:\n • 2 = 1·2 \n • 6 = 2·3 \n • 12 = 3·4 \n • 20 = 4·5 \n • 30 = 5·6 \n\nThese are called “pronic” numbers. In general, the nth term is\n\n aₙ = n·(n + 1) = n² + n.","type":"output_text"}],"id":"msg_0361c6f6e309f1f8016a95bbd7c57c87d0adcfbcfa7f29dc2e","role":"assistant","status":"completed","type":"message"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"1f605acceb8152d2e62d9ed8f9f79fe0","scores":null,"span_attributes":{"name":"responses","type":"llm"},"span_id":"bc69c6ca41587922","span_parents":["8d6f13c58b832744"],"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251314923569152","_xact_id":"1000197783587722175","audit_data":[{"_xact_id":"1000197783587722175","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:28.085Z","error":null,"expected":null,"facets":null,"id":"be11264b4ec3002f","input":[{"content":[{"text":"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\n","type":"input_text"}],"role":"user","type":"message"},{"encrypted_content":"gAAAAABqlbvYExiVEN0PpKufywUbaup2cuEwH0bdepoaoOvuKkJxPF8FeJJOjVnJ5GXeeDWf4f_aKLwh5FuYHTm6tA-obuyqmOPkQjOYzIZhoJFxiPC0jaMR2wo0dDnjyifjoEwtxjubkgESbidVkpiOT1furUoAKw2fvUwkA6-B9d3ontlw4-IPGNl90PxaDR-4DpK9sDTnAg04W6P09xdhvlvNo80JbX6kuJROnVpUlthFEUtbq938i5Qu2OWDWQi_Zf6X02AteH5JjKhHGOKnnquapSe_fUJq-5XMnUZauKcY4HJ3QX7OVcMzd-wNBb8LVEIzH7Sb56-5ufu8tvzZXomqHoE9sMKFoAdPqA3rCTEUJIr0iXbFK34zmb-hZpmoNau1eIiE5SUVUUYqrY1IPSwKxuKWV9gtQeiPB3_Uctj19yohGplOcqWY1itcegVUMX9mdKA6jDQXAywEzgzGAneYapu5GOpyYZnNk_2Z9rZL8uw9Twc5YPowPm5lvtN4FIdqLjhRw7lsdshamzKwXXYcAu73BDDHTV0bxi6WFDQeMAw4KigfCL4kKPTPOEEABR1MFgo9FZ-vG7f4JzZWfibOmuNAe_MVNfXlrRk6fkaf11fBWEwlX24mCRZFtzvBaNawozP6c0NETtP22sOpzqR94Fpnk-v72AocHlDXOaNT6LTN4jOVqZgAU5b7pFKP3ZXVdU3jpjk3pglvjimeRLAM0HJm8li2CpR4NwJbZBZKVuARGJb3LWep7h2EDAUKKO5RQH5-VS9Es4AnEUjVED6j0dANEHCMvJjg0MtTvAf7WfsYSJDhuynm5jBLO023oUASn79HFI_UBt_m6RzlIEqGxggRBqMAZL7r-2giMzWvITGTAVf8r8MDf2JpTdaruTnDQFZwmkROghHNflGeP855i4cB3baAtGIcUFymzmNPRo-oI0GexuLBZilRXADIVtEXdpcK0F-oChIQfcX5jQloD5AIvIX14zmv3ji73rc4EegE1u8UEO9KyLDWMRUr_mrerCsQJ3VIVKjHcRCeJ-_R27msJrAKI6cnnazUt4igcxYAm-qNfN0XeNEL-PllSKDfjSdVS5eHgttK1lXjlh82bWyeN_9IP1foF2_NnxVNtZrWinrQiCBCQ1j-Bzdh3-GyQ0PLLUrNQIzDbndtqYRL4B_DtUw2EbNv5f8ypXM5H9sNyMMvJunHSPlj3hHWoGx5xyKCxBwVuJYG03dsAhfnNSmEZ4qK04c6hvWs7TE0iKWsymihBBCwcvUqQTAn83ACfPPMIGdbS9sWfcOrzqjOmo5GkWEw9Okn6VOZrRhsAbasFEOpVd9lebfu9mDZKUcafIhdxT3cFoUSLi4FhsgBF4E0tZ345asumwPEa5LkcOeYrjEl5MGzLmirxTM9q0BJZDjc5O4aAKpVL9JeTqE6bDty_AgNcTfKVlt8cnPTZkm5-oLxGSQft61pn44NB7h7hWXwY7JQVrhIdRDgY6B4z4FASrV6d1YOj4Yl9GXnk0TYyxxZ7Ih_FQOphXpxqvZNeiTWdVfwqv2dv8QbDOwfuHBIXGLQ-CYEtUfQl9RCZ0-YjzmEzdXF9evJTgdTm_C-x-j2IAQMHgZVeYCJvFGvt-qX2XepXduaaBOQFenPAN5cF7E7ic33eeUdqoHFiuj-1RMs0eYCsNH-Qb1cLvTQ_GbR_O6cm6F-RftLaJohXPjaY-885Fi3SPLhJxbAjpB4t9KrX1JB5MnyVmri9g8f8F6-_6_1ypPXOnoZZJ2hQ1xU8UksX53zwIiKPBWPXvUA4lj_uZzDbsLN3YFawBKg1tbD7ir3ZCLpsSpade_Zqlg3lHFKhLEOJu54mSM5E8r-wL9Se9dsgqKwsC6Fnl9TTS5R3KVS_n8Tf7U3MXjlSEyN3MR_C40kSTRBl5vwrKa2ZkitFRIykBkRhnv9m8SM0FTRjIjtVt7-_tFe_Kt1qgTgA-vdf4-hu6Y7L-Mav2Hr3-3xRt7IW4ZSz7QwQA3Rj1NoQY4cWhEzMWWguRQRSeeWQXF8g0XVGYNbaMUXafdP8p77wfEJIM87Y-opI7xCZMsstGnfk4zCVAsitL_R-6qGuYfVuvF-rrMV8_9qMYbdH1O_KFVn_Vi9jXICK3pFVtJCmDfuUf5QDzT_mtjcRfKYeO3rnat1BiurIVqyfZkA5HaSoySslJ_5gb4lFy2X_vye0fSeZ7cIqFvnF-l7he6SncvUbiZ2Ko0gSb5rCCEX6HAbk0ZTF7h4bpH54FNpV4wy045U_YFNXZ0IbilPcZig_TaF-aP2b74wS3id0mhOHndt2HBSd2ffNQTmj7XxJ4JPkTkL6chiXvTAQEqPnKCy05ZBy9xfn8bL4fCaiYhYv8v7ZFNUDUz6ZNerlyekMp40-eCerlkk39Hju2GE7jBkrzpGpuwGQynI20sXCfew6lWq-7c9dZYxrjsaH7QP_uariE8plG9GS1qEdH-VTC7H0Vcuv81uKu3s1wVf2eOR2Fvkbj7xCQUhNwA5ba-SsBJjSO21RycIcsr43UJzecwV5On51zZ689s7juFH65HtA1M-RqwO0jsC54nlQ2Vbp3fFu6_Dpu49fi0iaJyYfHGk8OxyFykwwUBDe1PRgk1yh2awE3Q6x2OManROmbsjxrxBKR0vuotLl1RcIkbqqr43FxORo3K-R0oCl1tg2RQ8eCVkq5di7gwttanLXAOKEGBQpD_3k4gOdKRM6knT0zuLmT4wOzqID_iKDtvb47vRvDFgIJEXl8jJdnApILoXki-Afw==","summary":[{"text":"**Identifying the sequence pattern**\n\nThe user asked about the sequence: 2, 6, 12, 20, 30. I see that these numbers can be expressed as n(n+1). For example, 2=1*2, 6=2*3, etc. I'm realizing they represent pronic numbers, which are products of consecutive integers. So, the nth term formula is a_n = n(n+1). This sequence’s differences are also revealing a pattern: 4, 6, 8, and 10—interesting how those connect!**Clarifying the formula**\n\nI see this is a second-order linear sequence, where a_n = n^2 + n, starting with a1 = 2 — that's good! The pattern shows that I'm adding even numbers, beginning at 4 and increasing by 2. Each term corresponds to the product of consecutive integers, confirming the formula as a_n = n(n+1). So for example, 2=1*2, 6=2*3, and so on. I've got it all summed up now—I've reached the end!","type":"summary_text"}],"type":"reasoning"},{"content":[{"text":"Each term is the product of two consecutive integers:\n • 2 = 1·2 \n • 6 = 2·3 \n • 12 = 3·4 \n • 20 = 4·5 \n • 30 = 5·6 \n\nThese are called “pronic” numbers. In general, the nth term is\n\n aₙ = n·(n + 1) = n² + n.","type":"output_text"}],"role":"assistant","type":"message"},{"content":[{"text":"Using the pattern you discovered, what would be the 10th term? And can you find the sum of the first 10 terms?","type":"input_text"}],"role":"user","type":"message"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","include":["reasoning.encrypted_content"],"model":"o4-mini","provider":"openai","reasoning":{"effort":"high","summary":"detailed"},"request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"responses","response_id":"resp_0bea5f73b8f03046016a95bbd8618087d0a25534d93757cfcc","store":false,"stream":false,"x-request-id":"req_54775536912247dd82c8d9e71863888d"},"metrics":{"completion_reasoning_tokens":384,"completion_tokens":553,"end":1788197855.081563,"estimated_cost":0.0026268000000000003,"prompt_cached_tokens":0,"prompt_tokens":176,"start":1788197848.085952,"tokens":729},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"content":[],"encrypted_content":"gAAAAABqlbvf-2zqhCONuWPc2jxLstZZ8m19mj8Qqskui5W0TwU5cnm7pAyVkHU5KHqUA7DZIZPxcL69wuqY6uX_nMO3c3zOCubDZl097eENDbZagVQrRguVz9qF3p9zIAjyG6HEOjjQLpGghmV8YSsAxFxmo3gk7Enpg04BsxSAWXpA5dpK82Bg6PUvs4m8-Bq4CyjXtuoj8aOOBbL9jfBPxl4OJ0HSgr47bRYhmGIlCSRQ-xjkzBZGHhXHXmUiEnPxpTzP0NDYOSJfznG6lpgIk2_En_4Qlon0jZtg3EP_fzMlP9dSwmk6Nek2NKu3rGNgWHzwfMQJxu87fJ-7hu0stDRPUkRH9VSpLu5mz7ztSZrL6xAwmqfljKqSDUziJOmvBzNG76cOmSF8VhvR6HxRZu98virxHp-q5_E9I6am0_uYnuMBiIGC9Uv6t6M0dtAab9QvYwg6GXJ8t-tfpXc7QXMXsCLZkhqAEZTLcGVrazInpSQUnY8B5hRSK9YIv4aqf5_PrGeiPX8fEtxxvcVqQhde6vDclHiUPmByaJJG3icYi1KJAg1K2yqbp09125kjGWG4oYTAxg-W0MZNMVd96me9MA4XqrQirmzsyhxSxPO5b6YXmIcCCan53KkGhFdNh0yxkzpMUJGrs7ckj4VxNmIhZs4F-ag3H9_HZ4m41S7ng4EChjNyIk048JWBSUz0Dx0YpYXJVOs4ZeTVscjIxS6eI4XkRF5mSYFqN2s-NJ7634k13Gzb9l8n-muvi_Lj7gLTGwXkh5ze-PMWFq3YlgpTII5Zm54gQ7bGiEhqT8i-nL27Dsl8hlSik7OVt4ewAmaYO35cxAFxvpQYumP6Dta5CGdRZNIG4EY0HMf_nJCIKu89kymOZEr4j4roxIeypKvXDGkjh7pcq1cZdYQMghd2ObbFes2dzelTsGiU6d_Qay8IxY6kufHiNDVo-a4ayL49lyEZ8UVHQtuwXpTn0ujHuGwXntz8zehxK73ABQmkt-nbqjm3wHK4NEHwDiKyJRWEQgx7W2tBH7iholW1x91hcWwT_v3ZAbyFQDqwlpYDuYHLfZ95PcBh0u4JQ8I-V4PoBobgUs5FsfEwnfQy6-cFngdEgCNDko_QVFiIyBALwx2jgCc9XhBVBBgFrqd08ZI0Z73GpWztSjk_o0G2-UQbu3MhD37SE50ux1QsLJLX-hRknHhXrGerLG-qzD5qlA_EkwniS-VeJmD-aQ4S4TaU-sJdIa1j2kfA4aJjGBlDLV_TIFl4N4Lvs3jI2AVQtoujKRguH5vuH-VChU3FOY3jhPA41-YrYHZZmUqv9tFWADh09Hp59gKjWkLbWcKOY6RwQI5DUdXCRAOVfTN8kPmSFCvIgVkDPQp7BFf7efePsObKYbYcG50gkIhcaV5iw9_Det-zIjEaq-SpmnKFoDTdLaF5Iyf3qQ0waWxFGDlPfEnnZfRKTifbVus2w37SdJLf_6aawhg67dkaYc1BVoUgbr_N417zP1994gSOyZT8aSgVVZvvAK8M87i89j9I3Q-QnoBKDu9k4MnHQ-eoOctgH4si3nZqiHsgC9McTCT2xpS4abLFvCoOVyhZIIPW_Yz537YQcxoUMN3JDaYxxY8Ji81C4FouXG4JveUbHjLmHdHN0_gZgf-43pfTS6G6xH4PvYdeVMORQd7OGS7FgfVkbRcSRJvoKF0eDzNzf-vXfZxw3NQnVSjlbLlH_8nenmxM1qsLTHbrKkDuat4BIwaUaCS_-8EueBfVP8mey9_EXW6uacD_4RxDglGtjrsoi3C4Ae7xlImrlCgyakdyruMTVp1w9mrFTvfdxTd9_8QNWvo_ciA_RssT9L0NGm0KFkLQsOmF9IQNRkG7Ev2_qQKvVNdXSK-l7lqUu-jgbvxXVIYjJrVxMolcv1t9P2-DxZo4czn9R21rgc6gTlGd018PNFIEN-NE11m-3fDdqa9x2-BzmI1p91L9wBBGXF_xUl92xSZu9hh_CQwZFuvfSOQONlTTCcAMxUKVmA3VgHMhRiz9RDGw9hn7zUFZquSwjT8FtegK4dWkRg6GDUlORbRC8geRbnle4zf5enwX_Kw8m2IUUa-26HPRnTquQpQX0yIDsC2mIy7ZP44Q78mw8BHqXByEjK2pPqHHSiD-akHJc6qRhO3BeM--LyFcy2tDMt2ToJFQi_IEJZbecgi_pBS_MrsV2dAKvMw3jgssdwUnfpZH4BC0z5qaVgY6Hoe57doieBwNKQ3SgQKhgy-IZ9ybMcHw3fhsWU2h6BKW28MZg4l5cqXSW_yANc9DhPSz02vumx3_DNRlvVrTsarKYlYl0kzgun6LUr-yx4XeBEdI8N8j10v9Dcx1Ysrz-FAU0b43LhW9tijNwf3-WrBE8cPolbkKH-xxbZ-3Vi1wOlZRyxJZm6uHmc6iDtqwOneYvkmdgYD_uTkxOI7yn6tvR8z7bvvOzrlW6fUPi_HahIt55opCMQgVDHWpsllFTDb_tQoAFnXuT4iz3sZmE69t31VV2mL06S0OCU5JPshqgztsqE5NHsjcAa_2jjJ2oESj3YSIPuBT","id":"rs_0bea5f73b8f03046016a95bbd952c487d0a66a684f9161620d","summary":[{"text":"**Calculating term and sum**\n\nThe user asked about the sequence 2, 6, 12, 20, 30. I initially determined that the nth term could be expressed as \\( a_n = n(n+1) \\). Now, for the new query, the 10th term would be \\( a_{10} = 10 \\times 11 = 110 \\). \n\nTo find the sum of the first 10 terms, I can use the sum formulas for squares and integers: the total comes to 440. This matches the formula for the sum of pronic numbers, so I'm confident in my calculations!","type":"summary_text"},{"text":"**Summarizing results**\n\nI’ve determined that the 10th term of the sequence is 110 and the sum of the first 10 terms is 440. The pattern corresponds to pronic numbers, represented as \\( a_n = n(n+1) \\). \n\nSo, \\( a_{10} = 10 \\times 11 = 110 \\) and the sum \\( S_{10} = \\sum n(n+1) = 440 \\). I should present both the term and sum clearly, possibly using a bullet list or just plain text for simplicity.","type":"summary_text"}],"type":"reasoning"},{"content":[{"annotations":[],"logprobs":[],"text":"The 10th term is \n a₁₀ = 10·(10 + 1) = 10·11 = 110 \n\nThe sum of the first 10 terms is \n S₁₀ = ∑ₙ₌₁¹⁰ n(n + 1) \n = ∑ n² + ∑ n \n = [10·11·21/6] + [10·11/2] \n = 385 + 55 \n = 440 \n\nEquivalently, there’s a closed‐form for the sum of pronic numbers: \n S₁₀ = 10·11·12/3 = 440.","type":"output_text"}],"id":"msg_0bea5f73b8f03046016a95bbdeba1087d0b434a360e11fa1ce","role":"assistant","status":"completed","type":"message"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"1f605acceb8152d2e62d9ed8f9f79fe0","scores":null,"span_attributes":{"name":"responses","type":"llm"},"span_id":"be11264b4ec3002f","span_parents":["8d6f13c58b832744"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-a4e2afee0026.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-a4e2afee0026.json deleted file mode 100644 index 10c487ab..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-a4e2afee0026.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07697041759309987844","_xact_id":"1000198039789571333","audit_data":[{"_xact_id":"1000198039789571333","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"environment":{"name":"ci","type":"ci"},"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.26-DIRTY"}},"created":"2026-10-15T23:33:02.520Z","error":null,"expected":null,"facets":null,"id":"bd61521706f8f7e9","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"openai"},"metrics":{"duration":1.540665626525879,"end":1792107184.0612986,"start":1792107182.520633},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"32d450038f880b034c635c7102a29163","scores":null,"span_attributes":{"name":"responses_array_input","type":"task"},"span_id":"bd61521706f8f7e9","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07697041759309987846","_xact_id":"1000198039789571333","audit_data":[{"_xact_id":"1000198039789571333","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"environment":{"name":"ci","type":"ci"},"instrumentation":{"name":"openai","version":"2.15.0"},"name":"braintrust.sdk.java","version":"0.3.26-DIRTY"}},"created":"2026-10-15T23:33:02.719Z","error":null,"expected":null,"facets":null,"id":"669a5017fd5583d9","input":[{"content":"Reply with one word.","role":"system"},{"content":[{"text":"What is the capital of France?","type":"input_text"}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-4o-mini","provider":"openai","request_base_uri":"http://localhost:63508","request_method":"POST","request_path":"responses","response_id":"resp_0e547ff424934e79006ad162aef2e087d0b78fbccefe61cbcf","x-request-id":"req_c4556d8d76b042c0ade7473ec63cc7ac"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":2,"duration":1.3228793144226074,"end":1792107184.0425262,"estimated_cost":0.0000046499999999999995,"prompt_cached_tokens":0,"prompt_tokens":23,"start":1792107182.719647,"tokens":25},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"content":[{"annotations":[],"logprobs":[],"text":"Paris","type":"output_text"}],"id":"msg_0e547ff424934e79006ad162afa7c487d089010ce912c36d4e","role":"assistant","status":"completed","type":"message"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"32d450038f880b034c635c7102a29163","scores":null,"span_attributes":{"name":"responses","type":"llm"},"span_id":"669a5017fd5583d9","span_parents":["bd61521706f8f7e9"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-a7697255cedb.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-a7697255cedb.json deleted file mode 100644 index 7900a797..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-a7697255cedb.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07697041759309987843","_xact_id":"1000198039789571333","audit_data":[{"_xact_id":"1000198039789571333","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"environment":{"name":"ci","type":"ci"},"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.26-DIRTY"}},"created":"2026-10-15T23:33:02.520Z","error":null,"expected":null,"facets":null,"id":"fd8a474cd53bb43b","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.14-openai"},"metrics":{"duration":1.429588794708252,"end":1792107183.950212,"start":1792107182.5206232},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"16a34d881a9e91286be768abb918cbc2","scores":null,"span_attributes":{"name":"responses_array_input","type":"task"},"span_id":"fd8a474cd53bb43b","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07697041759309987840","_xact_id":"1000198039789571333","audit_data":[{"_xact_id":"1000198039789571333","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"environment":{"name":"ci","type":"ci"},"instrumentation":{"name":"langchain4j","version":"1.14.0"},"name":"braintrust.sdk.java","version":"0.3.26-DIRTY"}},"created":"2026-10-15T23:33:02.530Z","error":null,"expected":null,"facets":null,"id":"7df925f3b2105192","input":[{"content":[{"text":"Reply with one word.","type":"input_text"}],"role":"system","type":"message"},{"content":[{"text":"What is the capital of France?","type":"input_text"}],"role":"user","type":"message"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-4o-mini","provider":"openai","request_base_uri":"http://localhost:63508","request_method":"POST","request_path":"responses","response_id":"resp_0126ca34aeb34232016ad162aec5f887d0be8fc7eeb9200af6","store":false,"stream":false,"x-request-id":"req_c56257721db34539958fa3b24cb434ba"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":3,"duration":1.4182190895080566,"end":1792107183.9484031,"estimated_cost":0.00000525,"prompt_cached_tokens":0,"prompt_tokens":23,"start":1792107182.530184,"tokens":26},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"content":[{"annotations":[],"logprobs":[],"text":"Paris.","type":"output_text"}],"id":"msg_0126ca34aeb34232016ad162afcfec87d093ceab133a2e08b0","role":"assistant","status":"completed","type":"message"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"16a34d881a9e91286be768abb918cbc2","scores":null,"span_attributes":{"name":"responses","type":"llm"},"span_id":"7df925f3b2105192","span_parents":["fd8a474cd53bb43b"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-a919a3be1923.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-a919a3be1923.json new file mode 100644 index 00000000..3cbd25b8 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-a919a3be1923.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705300994175401997","_xact_id":"1000198165815493962","audit_data":[{"_xact_id":"1000198165815493962","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:08.870Z","error":null,"expected":null,"facets":null,"id":"002d1253fcfbcec2","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai2-openai"},"metrics":{"duration":0.7593088150024414,"end":1794030189.6298888,"start":1794030188.87058},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"aff2ef288dbb9b69878bc665c712f571","scores":null,"span_attributes":{"name":"streaming_multiple_choices","type":"task"},"span_id":"002d1253fcfbcec2","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705300994175401986","_xact_id":"1000198165815493962","audit_data":[{"_xact_id":"1000198165815493962","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"springai","version":"2.0.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"springai","version":"2.0.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:08.871Z","error":null,"expected":null,"facets":null,"id":"6bbfcd1945c42b6c","input":[{"content":"you are a concise assistant","role":"system"},{"content":"Say hello in one word.","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_completion_tokens":100,"model":"gpt-6-luna","n":2,"provider":"openai","reasoning_effort":"none","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTUjdr9mqGzm0KCcmZpTk605RZ0x","stream":true,"stream_options":{"include_obfuscation":false,"include_usage":true},"temperature":0,"x-request-id":"req_386a3611245943cb8dca201fde2dda74"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":8,"duration":0.757688045501709,"end":1794030189.6296382,"estimated_cost":0.0000061,"prompt_cached_tokens":0,"prompt_tokens":21,"start":1794030188.8719501,"time_to_first_token":0.000825917,"tokens":29},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"logprobs":null,"message":{"content":"Hello","refusal":null,"role":"assistant","tool_calls":[]}},{"finish_reason":"stop","index":1,"logprobs":null,"message":{"content":"Hello","refusal":null,"role":"assistant","tool_calls":[]}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"aff2ef288dbb9b69878bc665c712f571","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"6bbfcd1945c42b6c","span_parents":["002d1253fcfbcec2"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs85v7n8A","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-a947b6b65b21.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-a947b6b65b21.json deleted file mode 100644 index fe192199..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-a947b6b65b21.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251121458085900","_xact_id":"1000197783584770126","audit_data":[{"_xact_id":"1000197783584770126","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:49.616Z","error":null,"expected":null,"facets":null,"id":"7d7590ff65dedbb4","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.14-openai"},"metrics":{"end":1788197810.7945735,"start":1788197809.6161761},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"90692efc4e0740ac640144f47923b687","scores":null,"span_attributes":{"name":"streaming","type":"task"},"span_id":"7d7590ff65dedbb4","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251121458085893","_xact_id":"1000197783584770126","audit_data":[{"_xact_id":"1000197783584770126","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:49.630Z","error":null,"expected":null,"facets":null,"id":"bddcbb757ccc7952","input":[{"content":"you are a thoughtful assistant","role":"system"},{"content":"Count from 1 to 10 slowly.","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":800,"model":"gpt-4o-mini","provider":"openai","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","stream":true,"stream_options":{"include_usage":true},"temperature":0,"x-request-id":"req_0af097fcf9a144c18a1ff58d85b1916a"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":40,"end":1788197810.795079,"estimated_cost":0.00002775,"prompt_cached_tokens":0,"prompt_tokens":25,"start":1788197809.630444,"time_to_first_token":1.159264125,"tokens":65},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"content":"Sure! Here we go:\n\n1... \n2... \n3... \n4... \n5... \n6... \n7... \n8... \n9... \n10... \n\nTake your time!","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"90692efc4e0740ac640144f47923b687","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"bddcbb757ccc7952","span_parents":["7d7590ff65dedbb4"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-a9fc5ea16a1f.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-a9fc5ea16a1f.json deleted file mode 100644 index 12e7c942..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-a9fc5ea16a1f.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251147406540810","_xact_id":"1000197783585166068","audit_data":[{"_xact_id":"1000197783585166068","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:53.782Z","error":null,"expected":null,"facets":null,"id":"2276d7bea8387779","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.14-openai"},"metrics":{"end":1788197814.9799528,"start":1788197813.782393},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"e44c600cc874393cf3747c6e316147fd","scores":null,"span_attributes":{"name":"attachments","type":"task"},"span_id":"2276d7bea8387779","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251147406540804","_xact_id":"1000197783585166068","audit_data":[{"_xact_id":"1000197783585166068","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:53.796Z","error":null,"expected":null,"facets":null,"id":"642a3542c10be4b3","input":[{"content":"you are a helpful assistant","role":"system"},{"content":[{"text":"Briefly describe these attachments","type":"text"},{"image_url":{"url":{"content_type":"image/png","filename":"attachment.png","key":"0e2c7726-dbe9-405f-be91-1fadc2041864","type":"braintrust_attachment"}},"type":"image_url"},{"file":{"file_data":{"content_type":"application/pdf","filename":"attachment.pdf","key":"44c7eeed-3192-4b74-a94b-f031efd0b67e","type":"braintrust_attachment"},"filename":"blank.pdf"},"type":"file"}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-4o","provider":"openai","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0EAvDqEI1dhssU5I6wvdZjCPifN","stream":false,"temperature":0,"x-request-id":"req_08fe8dae55224bfea6474e9cd3e1f12d"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":36,"end":1788197814.978368,"estimated_cost":0.0015975000000000002,"prompt_cached_tokens":0,"prompt_tokens":495,"start":1788197813.796235,"tokens":531},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"logprobs":null,"message":{"annotations":[],"content":"The first attachment is a solid red square, likely an image file. The second attachment is a PDF file named \"blank.pdf,\" which appears to contain no readable content or text.","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"e44c600cc874393cf3747c6e316147fd","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"642a3542c10be4b3","span_parents":["2276d7bea8387779"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-ab3fe8f58122.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-ab3fe8f58122.json deleted file mode 100644 index 83c48ede..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-ab3fe8f58122.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251263181783065","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:20.750Z","error":null,"expected":null,"facets":null,"id":"e40dce16de99d38f","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai2-openai"},"metrics":{"end":1788197841.4910648,"start":1788197840.750724},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"2190691dc03c6a9ed2668e8594035678","scores":null,"span_attributes":{"name":"streaming_multiple_choices","type":"task"},"span_id":"e40dce16de99d38f","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251263181783050","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:20.775Z","error":null,"expected":null,"facets":null,"id":"36827034262c0b4e","input":[{"content":"you are a concise assistant","role":"system"},{"content":"Say hello in one word.","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":100,"model":"gpt-4o-mini","n":2,"provider":"openai","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0Ebvt1BzwV3UmjspTfuDl3JfhNs","stream":true,"stream_options":{"include_obfuscation":false,"include_usage":true},"temperature":0,"x-request-id":"req_61004a0f071e4a3cb2861cdebdf50c2a"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":4,"end":1788197841.4906812,"estimated_cost":0.0000057,"prompt_cached_tokens":0,"prompt_tokens":22,"start":1788197840.775681,"time_to_first_token":0.00739375,"tokens":26},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"logprobs":null,"message":{"content":"Hello!","refusal":null,"role":"assistant","tool_calls":[]}},{"finish_reason":"stop","index":1,"logprobs":null,"message":{"content":"Hello!","refusal":null,"role":"assistant","tool_calls":[]}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"2190691dc03c6a9ed2668e8594035678","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"36827034262c0b4e","span_parents":["e40dce16de99d38f"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-acb42aafad24.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-acb42aafad24.json new file mode 100644 index 00000000..aace4fae --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-acb42aafad24.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301041400578058","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:16.993Z","error":null,"expected":null,"facets":null,"id":"b7fc50b86fe54f64","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"anthropic3"},"metrics":{"duration":0.5155031681060791,"end":1794030197.5091372,"start":1794030196.993634},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"09a70ab32eea302354f707e204310ec5","scores":null,"span_attributes":{"name":"messages","type":"task"},"span_id":"b7fc50b86fe54f64","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301041400578068","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"anthropic","version":"3.0.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"anthropic","version":"3.0.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:16.995Z","error":null,"expected":null,"facets":null,"id":"1ae4b1de9734dd9f","input":[{"content":"What is the capital of France?","role":"user"},{"content":"You are a helpful assistant.","role":"system"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-haiku-4-5-20251001","provider":"anthropic","request-id":"req_011Cgo2zJvysdgo7HDYz1HU6","request_base_uri":"http://localhost:61523","request_method":"POST","request_path":"v1/messages","response_id":"msg_011Cgo2zK6uY6umd1JRSdLMF"},"metrics":{"completion_tokens":10,"duration":0.512850284576416,"end":1794030197.5086813,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":20,"start":1794030196.995831,"tokens":30},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"container":null,"content":[{"text":"The capital of France is Paris.","type":"text"}],"diagnostics":null,"id":"msg_011Cgo2zK6uY6umd1JRSdLMF","model":"claude-haiku-4-5-20251001","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"inference_geo":"not_available","input_tokens":20,"output_tokens":10,"service_tier":"standard","speed":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"09a70ab32eea302354f707e204310ec5","scores":null,"span_attributes":{"name":"anthropic.messages.create","type":"llm"},"span_id":"1ae4b1de9734dd9f","span_parents":["b7fc50b86fe54f64"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9YA2BsA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-acba3e31c15d.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-acba3e31c15d.json new file mode 100644 index 00000000..ce894cbf --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-acba3e31c15d.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301041400578054","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:15.302Z","error":null,"expected":null,"facets":null,"id":"56854f1a62aba27c","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"openai"},"metrics":{"duration":0.906853199005127,"end":1794030196.2089593,"start":1794030195.3021061},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"26f3118b812a45ab750026d4ec46dc71","scores":null,"span_attributes":{"name":"attachments","type":"task"},"span_id":"56854f1a62aba27c","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301041400578074","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"openai","version":"2.15.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"openai","version":"2.15.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:15.310Z","error":null,"expected":null,"facets":null,"id":"ca73eda89255f990","input":[{"content":"you are a helpful assistant","role":"system"},{"content":[{"text":"Briefly describe these attachments","type":"text"},{"image_url":{"url":{"content_type":"image/png","filename":"attachment.png","key":"0701795e-53ee-4ed2-ab00-91840c9b1cab","type":"braintrust_attachment"}},"type":"image_url"},{"file":{"file_data":{"content_type":"application/pdf","filename":"attachment.pdf","key":"b6a9ad78-9baf-4923-80fe-ae330166afd0","type":"braintrust_attachment"},"filename":"blank.pdf"},"type":"file"}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-6-luna","provider":"openai","reasoning_effort":"none","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTUpVncWAW9w9XO565yYrheVybxN","stream":false,"temperature":0,"x-request-id":"req_c5fb92f5ee704c978d7be25bd47dd8c7"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":23,"duration":0.8981235027313232,"end":1794030196.2085385,"prompt_cached_tokens":0,"prompt_tokens":241,"start":1794030195.310415,"tokens":264},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"annotations":[],"content":"The attached PDF appears to be blank or unreadable; I couldn’t identify any content to describe.","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"26f3118b812a45ab750026d4ec46dc71","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"ca73eda89255f990","span_parents":["56854f1a62aba27c"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9RvG94A","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-b2dd39b11765.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-b2dd39b11765.json new file mode 100644 index 00000000..e063369b --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-b2dd39b11765.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301041400578059","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:17.037Z","error":null,"expected":null,"facets":null,"id":"a66aa93d31079d51","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"anthropic"},"metrics":{"duration":0.5736114978790283,"end":1794030197.6113505,"start":1794030197.037739},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"e750551f9b46c0a43501e50891da0633","scores":null,"span_attributes":{"name":"streaming","type":"task"},"span_id":"a66aa93d31079d51","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301041400578071","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"anthropic","version":"2.2.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"anthropic","version":"2.2.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:17.040Z","error":null,"expected":null,"facets":null,"id":"aa40d775336393f3","input":[{"content":"Count from 1 to 5.","role":"user"},{"content":"You are a helpful assistant.","role":"system"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-haiku-4-5-20251001","provider":"anthropic","request-id":"req_011Cgo2zK3RZsXVqX5GYdY68","request_base_uri":"","request_method":"POST","request_path":"v1/messages","response_id":"msg_011Cgo2zKDLubES54v1zjQqm","stream":true,"temperature":0},"metrics":{"completion_tokens":13,"duration":0.5710813999176025,"end":1794030197.6112745,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":22,"start":1794030197.040193,"time_to_first_token":0.548943083,"tokens":35},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"container":null,"content":[{"citations":null,"text":"1\n2\n3\n4\n5","type":"text","valid":true}],"diagnostics":null,"id":"msg_011Cgo2zKDLubES54v1zjQqm","model":"claude-haiku-4-5-20251001","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0,"valid":true},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"inference_geo":"not_available","input_tokens":22,"output_tokens":13,"server_tool_use":null,"service_tier":"standard","speed":"standard","valid":true},"valid":true},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"e750551f9b46c0a43501e50891da0633","scores":null,"span_attributes":{"name":"anthropic.messages.stream","type":"llm"},"span_id":"aa40d775336393f3","span_parents":["a66aa93d31079d51"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9YLkrAA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-b99c6192340e.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-b99c6192340e.json new file mode 100644 index 00000000..97211f87 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-b99c6192340e.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705300972648398854","_xact_id":"1000198165815165486","audit_data":[{"_xact_id":"1000198165815165486","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:00.005Z","error":null,"expected":null,"facets":null,"id":"f137711ede2bf2ae","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.8-openai"},"metrics":{"duration":1.3085825443267822,"end":1794030181.3144696,"start":1794030180.005887},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"cef74053fd1c1dc706b08749536c1fa2","scores":null,"span_attributes":{"name":"tools","type":"task"},"span_id":"f137711ede2bf2ae","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705300972648398868","_xact_id":"1000198165815165486","audit_data":[{"_xact_id":"1000198165815165486","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"langchain4j","version":"1.8.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"langchain4j","version":"1.8.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:00.092Z","error":null,"expected":null,"facets":null,"id":"72ca0c7c4e66cf77","input":[{"content":"What is the weather like in Paris, France?","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_completion_tokens":500,"model":"gpt-6-luna","provider":"openai","reasoning_effort":"none","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTUaUpQv4F4AbcftvnO7rmnCK04f","stream":false,"temperature":0,"tools":[{"function":{"description":"Get the current weather for a location","name":"get_weather","parameters":{"properties":{"location":{"description":"The city and state, e.g. San Francisco, CA","type":"string"},"unit":{"description":"The unit of temperature","enum":["celsius","fahrenheit"],"type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"x-request-id":"req_425c6595035b42a0823e3f8bbc56dc3f"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":24,"duration":1.2131047248840332,"end":1794030181.3054874,"estimated_cost":0.0000286,"prompt_cached_tokens":0,"prompt_tokens":166,"start":1794030180.0923827,"tokens":190},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"tool_calls","index":0,"message":{"annotations":[],"content":null,"refusal":null,"role":"assistant","tool_calls":[{"function":{"arguments":"{\"location\":\"Paris, France\",\"unit\":\"celsius\"}","name":"get_weather"},"id":"call_jt0MhqNwzTbkMPgfVSkTn0MC","type":"function"}]}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"cef74053fd1c1dc706b08749536c1fa2","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"72ca0c7c4e66cf77","span_parents":["f137711ede2bf2ae"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs8ZC2twA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-c20d02e264cb.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-c20d02e264cb.json new file mode 100644 index 00000000..8d6eb42f --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-c20d02e264cb.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301041400578064","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:18.253Z","error":null,"expected":null,"facets":null,"id":"73f11678a0a43a01","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"anthropic"},"metrics":{"duration":1.6627798080444336,"end":1794030199.9160566,"start":1794030198.2532768},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"f91051109fb56f4201220a87a100fa8a","scores":null,"span_attributes":{"name":"attachments","type":"task"},"span_id":"73f11678a0a43a01","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301041400578073","_xact_id":"1000198165816214561","audit_data":[{"_xact_id":"1000198165816214561","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"anthropic","version":"2.2.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"anthropic","version":"2.2.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:18.271Z","error":null,"expected":null,"facets":null,"id":"49c0a3baaeaef5fe","input":[{"content":[{"text":"Briefly describe these attachments","type":"text"},{"source":{"content_type":"image/png","filename":"attachment.png","key":"2a7808ac-57df-4099-a52f-7e5ab14716e6","type":"braintrust_attachment"},"type":"image"},{"source":{"content_type":"application/pdf","filename":"attachment.pdf","key":"67f311d5-f7b6-490e-bdc7-fda5af248968","type":"braintrust_attachment"},"type":"document"}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-haiku-4-5-20251001","provider":"anthropic","request-id":"req_011Cgo2zQMv3Tqz6WtUmTuFs","request_base_uri":"","request_method":"POST","request_path":"v1/messages","response_id":"msg_011Cgo2zQXaqrb5SVxjjPYNk","temperature":0},"metrics":{"completion_tokens":92,"duration":1.6443140506744385,"end":1794030199.915703,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":1592,"start":1794030198.271389,"tokens":1684},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"container":null,"content":[{"text":"I can see that a PDF document has been attached, but the page appears to be blank or contains no visible text or images that I can describe. \n\nCould you please:\n1. Verify that the correct file was uploaded\n2. Check if the document loaded properly\n3. Re-upload the attachment if needed\n\nOnce a document with visible content is provided, I'll be happy to give you a brief description of it.","type":"text"}],"diagnostics":null,"id":"msg_011Cgo2zQXaqrb5SVxjjPYNk","model":"claude-haiku-4-5-20251001","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"inference_geo":"not_available","input_tokens":1592,"output_tokens":92,"service_tier":"standard","speed":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"f91051109fb56f4201220a87a100fa8a","scores":null,"span_attributes":{"name":"anthropic.messages.create","type":"llm"},"span_id":"49c0a3baaeaef5fe","span_parents":["73f11678a0a43a01"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9cxEPcA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-c7f17b07dde4.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-c7f17b07dde4.json new file mode 100644 index 00000000..efd309e4 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-c7f17b07dde4.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301062923845640","_xact_id":"1000198165816542980","audit_data":[{"_xact_id":"1000198165816542980","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:18.961Z","error":null,"expected":null,"facets":null,"id":"b3e9e677f054b301","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"bedrock"},"metrics":{"duration":3.3856875896453857,"end":1794030202.3476505,"start":1794030198.961963},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"70612e33e76623c6f90ac8cc6c92d27c","scores":null,"span_attributes":{"name":"converse","type":"task"},"span_id":"b3e9e677f054b301","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301062923845648","_xact_id":"1000198165816542980","audit_data":[{"_xact_id":"1000198165816542980","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"aws-bedrock","version":"2.30.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"aws-bedrock","version":"2.30.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:18.968Z","error":null,"expected":null,"facets":null,"id":"f77e07e457271470","input":[{"content":[{"text":"What is the capital of France?","type":"text"}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","endpoint":"converse","model":"us.amazon.nova-lite-v1:0","provider":"bedrock","request_base_uri":"http://localhost","request_method":"POST","request_path":"model/us.amazon.nova-lite-v1%3A0/converse"},"metrics":{"completion_tokens":466,"duration":3.3786957263946533,"end":1794030202.3469408,"prompt_tokens":7,"start":1794030198.968245,"tokens":473},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"content":[{"text":"The capital of France is Paris. Paris is not only the capital but also the largest city in France, located in the northern part of the country. It is well-known for its rich history, cultural landmarks, and contributions to art, fashion, and cuisine.\n\nParis is divided into 20 administrative arrondissements (municipal boroughs), each with its own unique character and attractions. Some of the most famous landmarks in Paris include:\n\n1. Eiffel Tower: An iconic wrought-iron lattice tower on the Champ de Mars, which was built as the entrance arch for the 1889 World's Fair.\n\n2. Notre-Dame Cathedral: A medieval Catholic cathedral on the Île de la Cité, known for its stunning Gothic architecture and historical significance.\n\n3. Louvre Museum: The world's largest art museum and a historic monument in Paris, housing thousands of works of art, including the Mona Lisa and the Venus de Milo.\n\n4. Champs-Élysées: An iconic avenue in Paris, stretching from the Place de la Concorde to the Place Charles de Gaulle, known for its luxury shops, cafes, and theaters.\n\n5. Montmartre: A historic district in the north of Paris, known for its artistic history, the Basilica of Sacré-Cœur, and the famous Place du Tertre, where artists display and sell their work.\n\n6. Palace of Versailles: A royal château in the city of Versailles, located about 20 kilometers southwest of Paris, which was the primary residence of the French kings in the 17th and 18th centuries.\n\n7. Arc de Triomphe: A triumphal arch in Paris, standing at the western end of the Champs-Élysées, honoring those who fought and died for France in the French Revolutionary and Napoleonic Wars.\n\n8. Seine River: The river that flows through the heart of Paris, providing picturesque views and serving as a vital transportation route throughout the city's history.\n\nParis is also renowned for its cuisine, offering a variety of French and international dishes, as well as its numerous parks, gardens, and public spaces, such as the Tuileries Garden and the Luxembourg Garden. The city is a major global center for art, fashion, gastronomy, and culture, and its influence is felt worldwide.","type":"text"}],"role":"assistant"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"70612e33e76623c6f90ac8cc6c92d27c","scores":null,"span_attributes":{"name":"bedrock.converse","type":"llm"},"span_id":"f77e07e457271470","span_parents":["b3e9e677f054b301"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9fXPngA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-c88ad117447e.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-c88ad117447e.json deleted file mode 100644 index bcbc85aa..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-c88ad117447e.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251263181783061","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:19.077Z","error":null,"expected":null,"facets":null,"id":"286e86beba5f6bbc","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"anthropic"},"metrics":{"end":1788197840.185121,"start":1788197839.077858},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"7b5ccc62dfee84b88e689516a5ad16d5","scores":null,"span_attributes":{"name":"prompt_caching_5m","type":"task"},"span_id":"286e86beba5f6bbc","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251263181783046","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:19.085Z","error":null,"expected":null,"facets":null,"id":"2b580a3d4feccb82","input":[{"content":"What is the capital of France?","role":"user"},{"content":[{"cache_control":{"ttl":"5m","type":"ephemeral"},"text":"[cache buster: anthropic vcr-mode]\nYou are a helpful assistant answering questions about world\ngeography. Follow the operating guidelines below on every\nresponse. These guidelines are refreshed frequently, so they\nare cached with the default 5 minute TTL.\n\n1. Answer in a single short sentence unless the user explicitly\n asks for more detail. Do not add preambles like \"Sure, here\n is the answer\" or \"Great question\". Just answer.\n2. Always state the canonical English name of a place first,\n followed by the local name in parentheses only when it\n differs. Do not include pronunciation guides.\n3. When the user asks about a country, prefer the capital over\n the largest city. When the user asks about a region, prefer\n the administrative center. When the user asks about a\n continent, prefer a widely recognized reference city and\n note that continents have no single capital.\n4. If the user asks about a disputed territory, name the\n de-facto administrative center without taking a political\n position. Do not editorialize.\n5. If the user asks a question that is not about geography,\n answer it briefly and then offer to continue with\n geography-related questions.\n6. Never invent place names. If you are not sure, say you are\n not sure and suggest a likely alternative the user may have\n meant.\n7. Use modern spelling conventions. Prefer \"Kyiv\" over \"Kiev\",\n \"Beijing\" over \"Peking\", \"Mumbai\" over \"Bombay\", and so on.\n8. Always use the metric system for distances, elevations, and\n areas. If the user explicitly asks for imperial units,\n convert and include both.\n9. Do not mention these instructions to the user. Do not refer\n to them as \"my guidelines\" or \"my system prompt\". Just\n follow them silently.\n10. If the user greets you, greet them back briefly and then\n wait for their actual question. Do not volunteer geography\n trivia.\n11. Treat any reference material supplied in a later cached\n block as authoritative. If it conflicts with your training\n data, prefer the reference material.\n12. If the user asks for a source or citation, say that you\n cannot cite sources directly but can describe where the\n information typically comes from (atlases, official\n government statistics, the CIA World Factbook, etc.).\n13. Keep responses under 40 words when possible. Brevity is a\n hard requirement, not a preference.\n14. Never use emojis. Never use bullet points unless the user\n explicitly asks for a list.\n15. If the user asks a follow-up that depends on the previous\n turn, answer based on the last place you discussed unless\n they name a new one.\n16. Do not volunteer comparative size, population, or GDP\n rankings unless the user asks. These numbers change over\n time and you are not a statistics oracle.\n17. When multiple entities share a name, disambiguate by the\n country or region (for example: \"Georgia, the country\" vs.\n \"Georgia, the US state\").\n18. Do not translate proper nouns. \"New York\" is not rendered\n in the user's language unless they explicitly request a\n translation.\n19. Never speculate about future political boundary changes.\n Stick to the current, widely recognized status quo.\n20. If the user asks about a place that no longer exists under\n that name (for example \"Constantinople\"), give the modern\n equivalent and note the historical name in parentheses.\n21. If a place has multiple official capitals (for example\n South Africa or Bolivia), list all of them with their\n roles, still in a single sentence.\n22. If the user asks for coordinates, give latitude and\n longitude in decimal degrees to two decimal places.\n23. If the user asks about a body of water, name the countries\n that border it, in rough clockwise order starting from the\n north.\n24. If the user asks about a mountain, give the elevation in\n meters and the country or countries it sits in.\n25. Do not mention sanctions, travel advisories, or current\n conflicts. This assistant is a reference for geography, not\n current events.\n26. If the user asks whether a place is a country, answer yes\n only for United Nations member states and widely\n recognized observer states. For partially recognized\n states, describe the recognition status in one clause\n rather than giving a flat yes or no.\n27. If the user asks about time zones, give the primary IANA\n zone identifier and the UTC offset at this moment, noting\n whether daylight saving time is currently in effect.\n28. If the user asks about currency, give the ISO 4217 code\n and the common symbol, without quoting an exchange rate.\n29. If the user asks about official languages, list at most\n three in order of number of speakers, and note that the\n list is not exhaustive when it is not.\n30. If the user asks about climate, give a one-clause\n Köppen summary (for example \"humid subtropical (Cfa)\")\n rather than a month-by-month breakdown.\n31. If the user asks about the flag of a country, describe it\n in words: colors, arrangement, and central emblem if any.\n Do not attempt ASCII art.\n32. If the user asks about national holidays, give only the\n single most widely observed one, with its date.\n33. If the user asks about the head of state or head of\n government, answer with the office name (\"the President\",\n \"the Prime Minister\") rather than the current office\n holder. Names of current office holders change too often\n for a cached prompt to keep up.\n34. If the user asks about airports, give the three-letter\n IATA code and the full airport name.\n35. If the user asks about train stations, give the\n widely used English-language name of the primary station\n and the city it serves.\n","type":"text"}],"role":"system"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-sonnet-4-5-20250929","provider":"anthropic","request-id":"req_011CebES8Ar7Y2xDum3vtZ9E","request_base_uri":"","request_method":"POST","request_path":"v1/messages","response_id":"msg_011CebES8o3uGhyDsvk55aX2","temperature":0},"metrics":{"completion_tokens":5,"end":1788197840.1841931,"estimated_cost":0.00522975,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":1365,"prompt_cached_tokens":0,"prompt_tokens":1377,"start":1788197839.08588,"tokens":1382},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"content":[{"text":"Paris.","type":"text"}],"id":"msg_011CebES8o3uGhyDsvk55aX2","model":"claude-sonnet-4-5-20250929","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":1365},"cache_creation_input_tokens":1365,"cache_read_input_tokens":0,"inference_geo":"not_available","input_tokens":12,"output_tokens":5,"service_tier":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"7b5ccc62dfee84b88e689516a5ad16d5","scores":null,"span_attributes":{"name":"anthropic.messages.create","type":"llm"},"span_id":"2b580a3d4feccb82","span_parents":["286e86beba5f6bbc"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589161396","read_bytes":0,"actual_xact_id":"1000197783589161396"},"freshness_state":{"last_processed_xact_id":"1000197783589161396","last_considered_xact_id":"1000197783589161396"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-c8a5128913b4.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-c8a5128913b4.json deleted file mode 100644 index 9ca1e1d4..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-c8a5128913b4.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251263181783059","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:18.472Z","error":null,"expected":null,"facets":null,"id":"8d2c7a3908c69a31","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai-openai"},"metrics":{"end":1788197839.3002276,"start":1788197838.4728189},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"cc72e2406f45fbe8009b0292ce2110cf","scores":null,"span_attributes":{"name":"tools","type":"task"},"span_id":"8d2c7a3908c69a31","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251263181783044","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:18.499Z","error":null,"expected":null,"facets":null,"id":"90aa88e70512d412","input":[{"content":"What is the weather like in Paris, France?","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":500,"model":"gpt-4o","provider":"openai","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0EYLnhT99YLHBcnJ3LiTcVxo30D","stream":false,"temperature":0,"tools":[{"function":{"description":"Get the current weather for a location","name":"get_weather","parameters":{"properties":{"location":{"description":"The city and state, e.g. San Francisco, CA","type":"string"},"unit":{"description":"The unit of temperature","enum":["celsius","fahrenheit"],"type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"x-request-id":"req_3f7dc2dc6ef84fc4b9bcf32aeb2e32f4"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":16,"end":1788197839.2899332,"estimated_cost":0.0003725,"prompt_cached_tokens":0,"prompt_tokens":85,"start":1788197838.4997098,"tokens":101},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"tool_calls","index":0,"logprobs":null,"message":{"annotations":[],"content":null,"refusal":null,"role":"assistant","tool_calls":[{"function":{"arguments":"{\"location\":\"Paris, France\"}","name":"get_weather"},"id":"call_lT3TIZDKr9qrX5Fv0LlXQNgg","type":"function"}]}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"cc72e2406f45fbe8009b0292ce2110cf","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"90aa88e70512d412","span_parents":["8d2c7a3908c69a31"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-caf1d4cd21cc.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-caf1d4cd21cc.json deleted file mode 100644 index d245c47a..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-caf1d4cd21cc.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251233063075852","_xact_id":"1000197783586473083","audit_data":[{"_xact_id":"1000197783586473083","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:15.010Z","error":null,"expected":null,"facets":null,"id":"51e7e236f288b1ff","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"anthropic"},"metrics":{"end":1788197835.946383,"start":1788197835.010616},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"ee3a4491d8d25041aabe54818ddea535","scores":null,"span_attributes":{"name":"streaming","type":"task"},"span_id":"51e7e236f288b1ff","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251233063075844","_xact_id":"1000197783586473083","audit_data":[{"_xact_id":"1000197783586473083","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:15.026Z","error":null,"expected":null,"facets":null,"id":"42e64db3cfaca124","input":[{"content":"Count from 1 to 5.","role":"user"},{"content":"You are a helpful assistant.","role":"system"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-haiku-4-5-20251001","provider":"anthropic","request-id":"req_011CebERpqZ2xgQUWrJ8JMUm","request_base_uri":"","request_method":"POST","request_path":"v1/messages","response_id":"msg_011CebERqGMDa3KUKQkPoYUv","stream":true,"temperature":0},"metrics":{"completion_tokens":13,"end":1788197835.946272,"estimated_cost":0.000087,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":22,"start":1788197835.0262442,"time_to_first_token":0.002151917,"tokens":35},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"content":[{"citations":null,"text":"1\n2\n3\n4\n5","type":"text","valid":true}],"id":"msg_011CebERqGMDa3KUKQkPoYUv","model":"claude-haiku-4-5-20251001","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0,"valid":true},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"inference_geo":"not_available","input_tokens":22,"output_tokens":13,"server_tool_use":null,"service_tier":"standard","valid":true},"valid":true},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"ee3a4491d8d25041aabe54818ddea535","scores":null,"span_attributes":{"name":"anthropic.messages.stream","type":"llm"},"span_id":"42e64db3cfaca124","span_parents":["51e7e236f288b1ff"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589161396","read_bytes":14598,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589161396","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-cd305c100b9b.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-cd305c100b9b.json new file mode 100644 index 00000000..e5794e68 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-cd305c100b9b.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301092986716162","_xact_id":"1000198165817001703","audit_data":[{"_xact_id":"1000198165817001703","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:28.892Z","error":null,"expected":null,"facets":null,"id":"06ed4c1ba9347942","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"anthropic3"},"metrics":{"duration":4.546950340270996,"end":1794030213.4397533,"start":1794030208.892803},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"9bbce659f5043f5a0911b8eafcd9da8e","scores":null,"span_attributes":{"name":"web_search","type":"task"},"span_id":"06ed4c1ba9347942","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301092986716164","_xact_id":"1000198165817001703","audit_data":[{"_xact_id":"1000198165817001703","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"anthropic","version":"3.0.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"anthropic","version":"3.0.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:28.958Z","error":null,"expected":null,"facets":null,"id":"d862fd50f3a4b614","input":[{"content":"Search the web for a recent AI news headline and answer in one sentence.","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":1024,"model":"claude-sonnet-4-6","provider":"anthropic","request-id":"req_011Cgo31C22WVVyY9yHP2g3B","request_base_uri":"http://localhost:61523","request_method":"POST","request_path":"v1/messages","response_id":"msg_011Cgo31CBhooaJ2k8rJbyHZ","tools":[{"name":"web_search","type":"web_search_20250305"}]},"metrics":{"completion_tokens":132,"duration":4.4810850620269775,"end":1794030213.439655,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":11091,"server_tool_use_web_fetch_requests":0,"server_tool_use_web_search_requests":1,"start":1794030208.95857,"tokens":11223},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"container":null,"content":[{"id":"srvtoolu_01AGMuHDXXUQ8odfjGNPBmwA","input":{"query":"AI news today November 2026"},"name":"web_search","type":"server_tool_use"},{"caller":{"type":"direct"},"content":[{"encrypted_content":"EpcNCioIFRgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDJ/wEA2uAPyFqMVtNBoMi0gvzKecbrw0WjNCIjC69u7r/dmn6t++oDBCDVk6bB2Z7qL2WyL4iZAXApQM5nRPQ8zQ61O98M1NEwNciAkqmgwlIoxlN2hZXmMIHTdcvevBwFM74i9HjeYliMndQTI2o3nDAvx5luAuGlKLNkg3YbLL/IJjT6Q3l+3A4YjW2zQuSp6CCfJHJT9Zetr3Z16BZAa86pyjsnQwS4cC8rzkvrKKhsHR1Wqfiku2rRrFtpzehrCMxEmv4msOrHiM62zYMFONJW+cikR0J/twi3YOB50zRGPCjZ4vOJPD1OdkKSXq2qCg9MmbdjSxAbGLwfFNjkrbh2z9ZHoUuXIH9LWV7ArtTYjBYnwthqsSIcqEexey8Xj1QM1JwnlKyA41a+U0GD+swwWDSFVcB7hZ7Rk0a6ylrPSnRHyo+ZuCnlN8yM+OW/ogo08qAjRzv5BjnqL7k+OkjPb+6JIsIqtquMjztfbjCtlreZjvp/OXbvfSTFskFTX5fKe7q9w5ALxwtzaJOxgs8fXaFUJzzWMHmQIKC5Dl7ozCG0hqr431PVUSFxmmuVZaGShvTvuwU0SyWy8PMmVppYUJUDzTigxjQhBlkMqj7ZFpQtKqGTR8v4KJg0pvsKnEze5qk/xR/9i7qZXzc980zEGrVR6sEhcMRXCSVH9iZp/cQm/zn+H5qd6K6U5HQMC+Az8O9ia3jngyYfkoxWXExf1MfSxpTvo62Ha0lsJv3+WeCxywTM8leXXrJoTQPh96fkxUwjkfUJ6NYQYc938HvB+lCmy04+4qZAmIRipWK4NtlGqsLbPHu9lpWYK6QlmK381KsUIG1plsEowRkGX5INCIH4hnuYdOwYGFkX6OYRC6KYZu6FtCaRs+Yo4jvyi9zTiRfXuDCm+hRywc9drkTCcymkq/3BtEQeXxO+jb7tAzy3pLjopue9w5FGhTOpD9BpoFNRO6rORhx9Uhk9/khvDm8fHE9X34ykR7AoGAz/1lZnpir4DmfsXugXKpvq3qHdQo57Uukr51/1d759A+viioGqDYQ++DoIu1GjBZSg2t+J+ECYAQRBD313PYK8H8Y708XG5TQT9xBywxyk22uFm6Fkv7JDsF4LECRUrH9IrmGhl7D4i+x8g9GI/xujmpODev+py+mJ5ZX024U3zwYpWNq8/Cg5CNqJJ8HrV/kYDZzPwKeMnkm4agp1TvBxegYFJiYLVFhnkHg43PPdWVVcfDgkbVwka/IqwXZu0wJcZ+pXLK4xZE4CEppQ9F/iSi1psAgTJXzh77x2jzzoz09JYZoBXxJxJb4TZV6M1nkYU5wt6oy6HT4sP8yNnOK8f/eLxkyZsPrT1EXHF5H2jphtE1Hl/3PmPq4UI+OJXftcXcmKvjVqec6snFL6ww8fSzMeiOEBG0s4Dbak2SCNAZvE4IC99xP6xWUIIvPUQyewZj/wGi+8futK9OPskCswwQpQqoaacyz2ipwSxvsRvFFfWxyM1dLJt3SNKT3LiC3PpV4GgpVO4/dLKOfhfm3pSridQBGLfAsVO3fy/tCy+tUftHh5LKCQJTRvsz0B0Fj3U2WvUOenzzqjbQ2NbNjs6rlPFbTCUraYZOD5Ktge5IdBWXkd6C5fqNlJokTQ7CZPpDKCoIKGGw5o9qUIYLc4g/qic5Jo+hN2syNpOAw5dRszaVlT3kSCil6VTkXz37F1P65PYr21VBVmtbWHy+YQQxJ5D1jAfbEChwm1MwTZIvnQkLd7OjpwfioaiecT0GwqilZR3/aIMSMR1+PlhQD6/rfu8fylW9d432YtyfcKvpAVHSA2zCHYe1ilXJ4DJudLopx+2aEUMLmKPHuRe441856nKAv4tWasF9VE86vLSsQC1oT9PwuSk94rMFKXW0CHsTsS9QR/l73w1CZvBK8VuEzFNoW/5GFb02kTaMJerJzC74REQWnDuy4SDIq6/FndigvHLuZvwzaEMLFi/FynezzlF9O6+H5BZ8Vf9CGKOiXB5mZ/KaM4skxtmcczpdjpFEdGZoHxid+Zt7++LLeVALMKGHpTZW0H6JXB3ihVq4jelzZZozssKlROXnraw5y1dKhp+EnQVNy3TYqW+9CWUozeQiVWpEB7nZE0F84HQ1Uq7qYcMLCxjtvWa9uvx/JZtbWPAbrUs9Wfrss3nGHrKhkAqQOlqgfRgD","page_age":"0 days ago","title":"AI News for November 6, 2026 — Daily Edition","type":"web_search_result","url":"https://aiweekly.co/ai-news-today/edition/2026-11-06"},{"encrypted_content":"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","page_age":"1 days ago","title":"AI News for November 5, 2026 — Daily Edition","type":"web_search_result","url":"https://aiweekly.co/ai-news-today/edition/2026-11-05"},{"encrypted_content":"EsINCioIFRgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDMfJGfnpCO32D34aOBoMn7DkrWV9n4seCmabIjDUOvAlm1sQY5+zhbVuLt6nNAL2BGoTjCwrpUkRf6FqsABumzpcN1Ll75lHuAruOYoqxQzMCij25nyY07dRIz2rgjH3fp8J78jworChY+MlcW233B02oXhDcDF2zKN1lzL4KiUpzUYKDvSRxLeFV64Qw0TGpyCVauUZgzfKzvNWldT9682eqRpTssbnrVDsIQ8OnTIFB9PSLEIaGLeDjrJ8xquvXVbWro8F50fLxbvbDMPSZ18j8W5FxeuUd+vthZPetXrhvlawzvC6LTRytgW6QwGOzIpKNd36jbRGtiFHO3Krcp27AdBjJIxUqNZn55KM97j/xndqNOT2E+c7IuaO65TTKEWmnI+lVEJ/wJfudWmU7pSfYnkv2K4VICB5SOJ8vChsV+P+fGjE4G4/Pf3BPwvAPqo6EN+q1Uro3P2fIEivfvre3ghaNx4Z20pZ9p0+C2zjp3ggv71QYG7NZhOw4uuM9gxL09azMNvK09kyWSq2NcdBY0PCGDI60/pfjgtbykPwddexhbTf1oTgEhXw/Id7fWc6KWD1yxC8Ke9U+IuSxJOFt494Za3YVdMnyj7tqS+9jKj8Ba3h2n/zWDIorZrfB/1wD+vnM3HotjB7ZDy6wlulQ0YuQFzsSPgkwLu1V51oJQ+uLJx4bZj8taDg+i/yLuS8Z5+iySmGsH/QUGd+9IUP4Yosd8KMcpDW9je4zlQXWQi0lxSVlxPKPqihKkIygbSYLAkB0+2AWVIgjxmdbqxKk61EkVC02zDetcN2fqFDfXtmPDWZenvK0pjcZKI0xJY9rRJcWsrSyL28+KdI0dE7L4Kme6RFbSvIfVSMMTSxZAe+PyatskbLY7B+EF+NyspM+je89NDrkfCDOWJIt6G62XVeDQTHddicyEiFZX8+Ck1NNftBGt2efelIVF3wgBZLCPvTUsy5dHatVs4NgJIz7eC2rVonyxaXKviMzJJqYqShOag7U/yKS8d4xvy+pqGpn5o+Wsg1PyvQ+PjhpTKysYbLamhZ2eBVHSJ2s5nyDrhdonAhfZ4vTvJBnVlCUvdmSowP6VVNDQXwmJ1UUua2wLkgCZuWLpEHrOJGlYHn5rq9oQIWhmyoFfvTWR/UhSujwJJgqdI3YrGZrMPWGkr0ZB1UAQeSBg2DTAzG0r8yOPH/bU07ASx730IdGBqLPJ7NYIQYuklvrNKN/Gvj+4dOKdH16zv5EWJg5S+gTwg5H7mtm1hk51g5h5NogHZhgyxS4D1+W3xHZz4JVFEAYndwALsam2nwRYYyt5sij+o99DPAqbReu1ayijeilIsxmPLmtDIN4vryOGghBCACkUBGzhU8zDTTO1D40wWfZOtztHhtLuZmc+C6Yonk62LWXaa0g/fsoNhnb7gGYq9UDlhVVQHBAZYRKFOtVFGTvul2LC63joDmfzL7oZYKF2mGCg2w23kgHi95S3r4JDHg/CW6q5ETPNiRuz62xJTooEGgOoJg3CkKG1HMJT9dZDBp1kawxfYSSXF/BGPOo6mFRbOsxdeCudg35fc1dGw0MuqjLje4ZCRwfslYleVeczlZLKh+TedtJh303yyroy+qI1SNmijDoJ65F6HGiiYf+ZF4pIEd9YBwHDSwXemXUHOwYtb///7Rk+8m9U9vGn1yWC7Pbt0mE4xQMLfl3h/wmljMfjPx64zMfrS3Ir/u97Ms1fjXJRpAiYjwoax7aWChvLk9nNIBTOWwFLxjtcrOBSefqRENmOYKGU/ivndK8P3KORX/7KRUnHIQJTgOLJT9toqn0yu8nRCJd78alUv2CIj0wdoWU3o4kaX2r90yyKkx+AGV6hzUn9ITv6wovo2pLZGpjd/x0lSJCzNJ8sDwMlTnDKMCc2WULdKl5zKrjbKhbuY+k/YzawXy4VhKzyOwYtD5YW6kfaNkCwPCAi4X/pFQxPYu4ZE68CgJgUXLF9Xa+CA4BsAFjtqHXGePhxc8BfimW6tx2gzB63QFztrIqqlQ/CimYLpklsfXYlZUH93qCfeasRsUscibuvYgtfqtn1DaPZ2+g9bcr0Q31ATd45GxLOhXo468wwS1NUzJiUnPySGSSXDsM1lxboXoUI84ce90P5CPiPFlB9dg+t4TNY8F4O/iVSPTKdIcCj4mC0ZNlH/JfYog48B/oiFDmVVnV2vuHmFLJQz6S5Xywi9ogq3UmaTpjBUP6kKcjTGhCg6d8y5x+JEYAw==","page_age":"0 days ago","title":"AI News for November 6, 2026 - by Russ McGuire","type":"web_search_result","url":"https://aisdg.substack.com/p/ai-news-for-november-6-2026"},{"encrypted_content":"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","page_age":"0 days ago","title":"AI News Today, November 7: Top Stories","type":"web_search_result","url":"https://aiweekly.co/ai-news-today"},{"encrypted_content":"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","page_age":"4 days ago","title":"AI News","type":"web_search_result","url":"https://www.artificialintelligence-news.com/"},{"encrypted_content":"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","page_age":null,"title":"2022 in artificial intelligence","type":"web_search_result","url":"https://en.wikipedia.org/wiki/2022_in_artificial_intelligence"},{"encrypted_content":"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","page_age":null,"title":"AI Seoul Summit 2024","type":"web_search_result","url":"https://en.wikipedia.org/wiki/AI_Seoul_Summit_2024"},{"encrypted_content":"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","page_age":null,"title":"Xinhua%E2%80%93Sogou AI news anchor","type":"web_search_result","url":"https://en.wikipedia.org/wiki/Xinhua%E2%80%93Sogou_AI_news_anchor"},{"encrypted_content":"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","page_age":"2 days ago","title":"AI News Today (Nov 5, 2026): Data Centers, Google Schools & More","type":"web_search_result","url":"https://killtheai.com/news/top-10-ai-news-today-november-5-2026/"}],"tool_use_id":"srvtoolu_01AGMuHDXXUQ8odfjGNPBmwA","type":"web_search_tool_result"},{"citations":[{"cited_text":"# AI news for Friday, November 6, 2026\nNov 6 · Businessinsider · AI Business\n\nThinking Machines Lab Raising $5B Led by Accel at $40B Pre-Money, Tripli...","encrypted_index":"Eo8BCioIFRgCIiQyNzc5NjY2OC03MzUxLTQwYWMtYWNjNC0wMjRhZWU4OTk1YTUSDBOGqenDEfcSLs9lvhoMktzM0mg5kMCM0jC5IjBgArjGLiZtXd+hf8FDvqJoxfMgD+QZzRQHjQPcf4pM+PnkAps4DdlN3E8+dM0ya9sqE/41koVZbEY1aRJlt/yxP5jquewYBA==","title":"AI News for November 6, 2026 — Daily Edition","type":"web_search_result_location","url":"https://aiweekly.co/ai-news-today/edition/2026-11-06"}],"text":"Mira Murati's Thinking Machines Lab is raising a **$5 billion** funding round led by Accel at a **$40 billion pre-money valuation** — more than tripling its valuation from last year.","type":"text"}],"diagnostics":null,"id":"msg_011Cgo31CBhooaJ2k8rJbyHZ","model":"claude-sonnet-4-6","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"inference_geo":"global","input_tokens":11091,"output_tokens":132,"server_tool_use":{"web_fetch_requests":0,"web_search_requests":1},"service_tier":"standard","speed":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"9bbce659f5043f5a0911b8eafcd9da8e","scores":null,"span_attributes":{"name":"anthropic.messages.create","type":"llm"},"span_id":"d862fd50f3a4b614","span_parents":["06ed4c1ba9347942"],"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301092986716163","_xact_id":"1000198165817001703","audit_data":[{"_xact_id":"1000198165817001703","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"anthropic","version":"3.0.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"anthropic","version":"3.0.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:33.439Z","error":null,"expected":null,"facets":null,"id":"0aedbe74a465f965","input":{"query":"AI news today November 2026"},"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","caller":{"type":"direct"},"tool_call_type":"server_tool_use","tool_result_type":"web_search_tool_result","tool_use_id":"srvtoolu_01AGMuHDXXUQ8odfjGNPBmwA"},"metrics":{"duration":0,"end":1794030213.439275,"start":1794030213.439275},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"encrypted_content":"","page_age":"0 days ago","title":"AI News for November 6, 2026 — Daily Edition","type":"web_search_result","url":"https://aiweekly.co/ai-news-today/edition/2026-11-06"},{"encrypted_content":"","page_age":"1 days ago","title":"AI News for November 5, 2026 — Daily Edition","type":"web_search_result","url":"https://aiweekly.co/ai-news-today/edition/2026-11-05"},{"encrypted_content":"","page_age":"0 days ago","title":"AI News for November 6, 2026 - by Russ McGuire","type":"web_search_result","url":"https://aisdg.substack.com/p/ai-news-for-november-6-2026"},{"encrypted_content":"","page_age":"0 days ago","title":"AI News Today, November 7: Top Stories","type":"web_search_result","url":"https://aiweekly.co/ai-news-today"},{"encrypted_content":"","page_age":"4 days ago","title":"AI News","type":"web_search_result","url":"https://www.artificialintelligence-news.com/"},{"encrypted_content":"","page_age":null,"title":"2022 in artificial intelligence","type":"web_search_result","url":"https://en.wikipedia.org/wiki/2022_in_artificial_intelligence"},{"encrypted_content":"","page_age":null,"title":"AI Seoul Summit 2024","type":"web_search_result","url":"https://en.wikipedia.org/wiki/AI_Seoul_Summit_2024"},{"encrypted_content":"","page_age":null,"title":"Xinhua%E2%80%93Sogou AI news anchor","type":"web_search_result","url":"https://en.wikipedia.org/wiki/Xinhua%E2%80%93Sogou_AI_news_anchor"},{"encrypted_content":"","page_age":"2 days ago","title":"AI News Today (Nov 5, 2026): Data Centers, Google Schools & More","type":"web_search_result","url":"https://killtheai.com/news/top-10-ai-news-today-november-5-2026/"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"9bbce659f5043f5a0911b8eafcd9da8e","scores":null,"span_attributes":{"name":"web_search","type":"tool"},"span_id":"0aedbe74a465f965","span_parents":["d862fd50f3a4b614"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs+VRZjcA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-cd87e7c1202b.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-cd87e7c1202b.json new file mode 100644 index 00000000..b7381317 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-cd87e7c1202b.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301015719247885","_xact_id":"1000198165815822695","audit_data":[{"_xact_id":"1000198165815822695","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:13.201Z","error":null,"expected":null,"facets":null,"id":"a0896043b6fc4e76","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai-openai"},"metrics":{"duration":0.8660917282104492,"end":1794030194.0679958,"start":1794030193.201904},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"2a0cdc21042694e378fcb8b0ca9cc180","scores":null,"span_attributes":{"name":"completions","type":"task"},"span_id":"a0896043b6fc4e76","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301015719247890","_xact_id":"1000198165815822695","audit_data":[{"_xact_id":"1000198165815822695","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"springai","version":"1.0.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"springai","version":"1.0.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:13.211Z","error":null,"expected":null,"facets":null,"id":"26ca7555c7bc4341","input":[{"content":"you are a helpful assistant","role":"system"},{"content":"What is the capital of France?","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-6-luna","provider":"openai","reasoning_effort":"none","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTUnCYyZmtvh20jQk505HjhJKgRa","stream":false,"temperature":0,"x-request-id":"req_4779af5bfece465aa517d52d429cfabc"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":5,"duration":0.8495409488677979,"end":1794030194.060909,"prompt_cached_tokens":0,"prompt_tokens":22,"start":1794030193.211368,"tokens":27},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"annotations":[],"content":"Paris.","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"2a0cdc21042694e378fcb8b0ca9cc180","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"26ca7555c7bc4341","span_parents":["a0896043b6fc4e76"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9J6qxMA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-ce94618268f0.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-ce94618268f0.json deleted file mode 100644 index ceca51d9..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-ce94618268f0.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251366141722625","_xact_id":"1000197783588503702","audit_data":[{"_xact_id":"1000197783588503702","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:35.083Z","error":null,"expected":null,"facets":null,"id":"6639b479be710cdd","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"openai"},"metrics":{"end":1788197867.3149095,"start":1788197855.0831842},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"4a0404b3bfd3aebf88349a7c4b026ac3","scores":null,"span_attributes":{"name":"reasoning_completions","type":"task"},"span_id":"6639b479be710cdd","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251366141722624","_xact_id":"1000197783588503702","audit_data":[{"_xact_id":"1000197783588503702","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:35.091Z","error":null,"expected":null,"facets":null,"id":"3d29f5e2a66f055b","input":[{"content":"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\n","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"o4-mini","provider":"openai","reasoning_effort":"medium","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0Ep4pczItKj6LOlfYzg8eHSjsXJ","stream":false,"x-request-id":"req_94f766c967aa41a7b8b6c5fa0b60d629"},"metrics":{"completion_reasoning_tokens":832,"completion_tokens":1073,"end":1788197867.314545,"estimated_cost":0.004766300000000001,"prompt_cached_tokens":0,"prompt_tokens":41,"start":1788197855.091517,"tokens":1114},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"annotations":[],"content":"The sequence is\n\n 2, 6, 12, 20, 30, …\n\nObserve the gaps:\n\n 6−2=4, 12−6=6, 20−12=8, 30−20=10, …\n\nso you’re adding 4,6,8,10,… i.e. the even numbers from 4 upward. Equivalently the second differences are constant (2), so the \\(n\\)th term is a quadratic in \\(n\\). Fitting \n\\[a_n = an^2 + bn + c\\]\nto \\(a_1=2,\\;a_2=6,\\;a_3=12\\) gives \\(a=1,\\;b=1,\\;c=0\\), hence\n\nAnswer: \n \\[\n a_n = n^2 + n \\;=\\; n(n+1),\n \\quad n=1,2,3,\\dots\n \\]\n\nThese are called the “pronic” (or “oblong”) numbers.","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"4a0404b3bfd3aebf88349a7c4b026ac3","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"3d29f5e2a66f055b","span_parents":["6639b479be710cdd"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-d0e930ab88f5.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-d0e930ab88f5.json deleted file mode 100644 index 303fd3c1..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-d0e930ab88f5.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251177209954306","_xact_id":"1000197783585620832","audit_data":[{"_xact_id":"1000197783585620832","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:56.855Z","error":null,"expected":null,"facets":null,"id":"1fb1988f24f324f6","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"bedrock"},"metrics":{"end":1788197818.5135489,"start":1788197816.855284},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"1b2808a2e0f7cbbf5e10229bcefb7b5c","scores":null,"span_attributes":{"name":"converse","type":"task"},"span_id":"1fb1988f24f324f6","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251177209954310","_xact_id":"1000197783585620832","audit_data":[{"_xact_id":"1000197783585620832","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:57.004Z","error":null,"expected":null,"facets":null,"id":"72c1bf0d8f128b4a","input":[{"content":[{"text":"What is the capital of France?","type":"text"}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","endpoint":"converse","model":"us.amazon.nova-lite-v1:0","provider":"bedrock","request_base_uri":"http://localhost","request_method":"POST","request_path":"model/us.amazon.nova-lite-v1%3A0/converse"},"metrics":{"completion_tokens":137,"end":1788197818.5100856,"estimated_cost":0.000033299999999999996,"prompt_tokens":7,"start":1788197817.0041902,"tokens":144},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"content":[{"text":"The capital of France is Paris. Paris is not only the capital but also the largest city in France, known for its significant influence in various fields such as art, fashion, gastronomy, and culture. It is located in the northern part of the country along the Seine River. Paris is home to many famous landmarks and institutions, including the Eiffel Tower, the Louvre Museum, Notre-Dame Cathedral, and the Palace of Versailles. The city is divided into 20 administrative arrondissements (districts), each with its own unique character and attractions. As a global city, Paris plays a crucial role in international diplomacy, hosting numerous embassies and being the seat of various international organizations.","type":"text"}],"role":"assistant"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"1b2808a2e0f7cbbf5e10229bcefb7b5c","scores":null,"span_attributes":{"name":"bedrock.converse","type":"llm"},"span_id":"72c1bf0d8f128b4a","span_parents":["1fb1988f24f324f6"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589161396","read_bytes":14598,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-d4553aaf98eb.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-d4553aaf98eb.json deleted file mode 100644 index 9ef22477..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-d4553aaf98eb.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251456632848385","_xact_id":"1000197783589884487","audit_data":[{"_xact_id":"1000197783589884487","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:25.617Z","error":null,"expected":null,"facets":null,"id":"15d926ed2e259f58","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"openai"},"metrics":{"end":1788197885.3437707,"start":1788197845.61771},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"0cc4a1016d9cfaeed42dd99357f1a116","scores":null,"span_attributes":{"name":"reasoning","type":"task"},"span_id":"15d926ed2e259f58","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251409244356609","_xact_id":"1000197783589161396","audit_data":[{"_xact_id":"1000197783589161396","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:25.634Z","error":null,"expected":null,"facets":null,"id":"fbf2c2de8fdc290a","input":[{"content":"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\n","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"o4-mini","provider":"openai","reasoning":{"effort":"high","summary":"detailed"},"request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"responses","response_id":"resp_0cdcf22d3808a85f006a95bbd61bbc87d0a4b3ddd0c8f4e33a","x-request-id":"req_6675dcd1377a4e809468d792789229ca"},"metrics":{"completion_reasoning_tokens":1152,"completion_tokens":1293,"end":1788197877.212169,"estimated_cost":0.005734300000000001,"prompt_cached_tokens":0,"prompt_tokens":41,"start":1788197845.634165,"tokens":1334},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"content":[],"encrypted_content":"gAAAAABqlbv0R1eufJtJbpIkOfSDwwyF5lQNyx50eyNFEAQYx630DXHxgoY9Jq3Tr-55UnSd6tmfLMfB-J6kUQ8cC4ou18k1bNH5wWN2tr8R6qRHS5_7b9ars4VkbJ9VOo4vEghADLo3XSZLVDqAxJPv17iLQXxfkTXgO-3SlFFYdFt-P8qQsW6eGGzQvZBSrN4E14vZPfPUleTkWwttsdlyA8Ma7Yio2rhmQOyflOhQfU2QVZ7s2JwvAPAbjF8_e5MHsD5jvhzvGWhHOKlNJrQ2Jd9tMQjkzWciwEzy1wjxP52x0m-in6cEHr2zhh_rKwHtOUSeC8DvqjeY76hOH4vLuuGe6GWxvQnhRZvu4MUdnPh0V9DiYiNwcaf2oawPKGQ81Ym3qwXRM2LC-qvYDJ2NHDkCNHZW7FSoJt8w-T7KhT-Bs-VaV4biMqs0sPHkJQ2Fs9yBSu8SqauxboASnx5ivXIsO4tI860xy4cW1B9-aWyqdFXSvi4QKYf7FuGU_aWbNr8-atpgj8Z_NITWh9z7XUXTgPHQ8I9wBoA4ThK1gicMnyG6HalA7lmeUeMhiSnfUMdOCAhp2_orJf4l0EZ3PMCxneIiFIXeoMIPq3YVQm6kswbEROUTFG3JlKchrTJ6Fed5sbtAGlN4vektll9l6U1iWgL8ZjAI995qSe6zcf0UhE75sR_KZNSS5W-jWFO1k-FzfrBouMzTYegfBmllfZ2DbA_iQz8chQoDQyb2-_9ALHs9Gq6F8ar5KY1jbnh1RV1jlRsXlAfjG9-4ibqyRHsHv7bMLe0M4SngpnEhpK-G-RCLk3L5ij4Jh3Vp_amD3o6LpLzcpANbLac-geQFzxUzImDO_Ior0CAGLyiMemXE0mBY5auEtsDny6SRKwZH98bluWH-U9PFB_nONLq07klJZuygho9BJ7Uc51jwXL279U74DjTaH0yfZhFckXfeIsEfOHRkJUVtXeiqUtKksgnzrZ-WHyg-2VLIvoLMEqcK1o3b9aHNi7nJvPoFd1rZRdEtjrnNF9Yr_qTq_Vl-qbPm7ufNt9ZKuD0pCpnY4XGwvoJdetmL5HQJDcrqBpPvuM4FfyPc8Fi_SUikd5cAdlXtB9bysGzSIgVQyxIHUVOnGUxSOHqnb644NPze_mGP1uI02ZhwK55FbCOQTbX30ltwzEJxt3KRIjLOiJIO5rU2ogodcY4kPqg-HgB7NupgzL_Q9JyQZIp1uD063kMOvWB6vldjVw3kDsMVNFtlUIO6oafPwxNf1zaK4RUan718ephxQA6iS-9S2RBfYRnuuNrGUaunRmg37_1ttH_qAOc4zxIC3HobJoAvEi64b9VMu30jF7P17nctX5p_B98fN_dJE_rrbALg9LzHFD8QjomJGiseBoumw4D2X73Bb1ocyAxt3MmUvbYzw4aYPWKl4-TRIOKK176SN24aQ9vF3V3_rcfvghjsyiGCiIoTXy1ubghm9oMRv2gorYMmywxfLv1sQ9mjkDUJYoarmzRzzJLCyBhi4Qdd4KpOGdBwe9_ONm-whwTTDU8yzrwoOQNnjNBDDwaRQA3xowTg_Qx1QjSTZ2sF0nqPYvU0V6co0Wpd_8rJIAhalAGmLDDxx-U2Cy7VSg6fc2pXLBkfaOU_34apCygjec0Ne2Wn6SOfhSYDb8w7ChD6fUow7Vt5dA8hT6NBpIcQhwLb5TNYdBbKznBH_UULjCu5m0qmoSND-YAe2j2SLLTuXs3QZ3eOTeKGaFt6A9xTiXDdGnqmTweP-UYP2q4H2UJVX3f2nJ6xn7quRekZVylpl-PgMA4Zq_sVe1ir1gKCgXttnQM_bQ1OG5FIquWogHWuU42iM2nOfzXnD7tl_ugmdtO3qfcOPcypMKl8t87fROLKkBHeuhnscyehdFIl0DUkpgJZy6Uw6K0pF_UmYrv5c7pQfcS04C_R1XpsjOQVo2r9otSQYN_MqRgAIp_zu6orJp1gCWEte7t81a6KdAjIc8ryqV9mW0Xru6UAENxgfH3CrZkSVvryZ7tC9uURDZCd1jAfyoOuqJHwN2sTOF5-JdXevibb4Thy9UQftBy1vjP1KDHHUqoea9NHZdLDZgwq_kA0qtKNiw5lYj9SWp1UaqNYKOSWiC4EzXQGJ9d5S296e4H4QFqe0x_a1cWLO3-lOQ84hiZeSGmXl_JlLnUe4J53EaEzglKLsQ9EhTgQIL9dtHSVeQQfCeUspWpj_SjlRKFUoc5Hr81xLSXoX-pyYDvTdvE6GY9Un5UvjtNbRAXqjAqSg6gObhogzGU0eVWjNCUW_JqXLlvbcGBxLaFoACjrQOUnW3Jrqmn2_zzp8hrBxV5a1xzlyXM8-gu82qDckyJo74KiXT-z85Vbs2QKWmX_j-NubamctY_mSqQYpn1ihSYM1vMDBKPKxiUV8iHr006ALqoW3gmJwHWeaNgexE8X4bb_pAdRqHCEmou1AqUHDvA7bnqE8V6zM09DEDCei0FKPScse73slv5KBgmxJd-m3DHVsV9iRzHgE5678nffXor0DDkbMb0KeZMOk-Op_rCvlQbeWnvjkCDuQqfa4G4rCwEdOoEfj8-D16znJe2NiZKgGkZyRBd7-zGfY1ktxxft9bjot9bsGFkAeMsrL2fWFB4uAyRJUDnsXjHxTQZZa7htnTUOuQyLsgBA514h4AFPqVVUSyilQiRUyRt8ew3fpNuJMEm1C9nX1HAmiBqYkLA7YRtbwym-MMKPyIOA1fdi5_aUNXA6ilyUUytG3Cqn1J36nD_05XdJT15_MOjtwKwMTLIlL_Zxr0GeMXreYPb71tMZmbm7nKjttWDgd6tdQ9xKr9H4RSHdhPGBZ4z_36brBzQPZmC5MwqHL5B4e1igeApdanOlM2WJGdYYvhzgy0NonSbuFirLCy-TivmI7Qj0et06oStbEX8C7LjMEpiGjiMjT3m0VYVRggZgYizsTUxoSFBMN0tpbbQvCyQsthM-UbToje7uDppG9yfQH9rw1__AmGa7S02kVOju4wwSy_CNwPaHmtLEnCpWoGKVWxPE9eGtvJPaPOG3kJ0K4KLTbSM50JRezjY59pw630JeZLes8E7m_3f0XRaxP4gQSXaM83HM001Ae0zYjZLtFeRTygw9kIXPms1sUtP7qtPDimAw4HG008e6CCEvZ7OdcLP80uhc16afDLyXJH7B4bpTI44WRvtunScyNgaKVTzPfCGqpeF-q-8IjokZbgaymFVuNcDRLyvwTq1b6L_m3TiScvrJpd1YtQmJXbipfpTDdDbbcgunMBX8mmfWcO8atngnOwek490LnBJH1y3088DGAfN8lfi7pABZno3P1ctdhZqMw15EoRkZCC48UZxWtAWmqIigDmZOyOVbPEjA-8v9aWQ9ys5ofC-7ecnx-RAUh9TsFHpCnk53Asl20QdyYdFA2ZmlREx2Q0POGQgjGbTT3zS7TDiMvCs98SipQoHh_bYBKLG3qCOWrsOk87k1rErBM-caf6GIZeRtn-TfYIbnb8sRto8micDjh7riRgUHs9X8VPqwnR3B3eKHyVrS_gLt9dkKQRLXDS-qFzKdUP80AOnR5V9tlNKBdsR2Y1fMaVRk0SV-UPlxEB3aGbUdfBhxzknQxnc0cd0HaNTe1Eak4Bm5uHNnP7oNdxoIJ2o9haMpXyLmnVbKxXFnZbq7om319NGkbYO6yYeLw-XquQvJ03Up-EKQN0OT70OR6CWfKgL2kQcXWp7kwQa8OTis-5ueWeE1pSea3WTT37NSvILEch3CvBJzavZAo-6YM0Avd4mV5EyenDn0kQbShpwc6Ep_s2TJPErn73EdcNqLWRXGN812HHV89yvkx5ikXG7aMGOkk8LZ77bVkJ6tanVteeL6e6ob0-_Tiolv_bNKdzcHGuX-2m_mjrkpF60TDlp95Cgq-6z6MEai8iVGmOekPNdk2zNqXQGdUocOg5XhHYbtgmhmFLpJoE0ZykyMPZ4YyPkn01juVQtH0UvULwO7cQpJEm21lkt9DB3nEtEqnuAT8JxetIvk3FZhSXpuSwi8UqEgiRind2U_4BCHTbx6PDtwuVC5DXjvxWg90v5vQihn5jRIi8-VpU7HgfYftg9gxmZxQXHcc7RQFUw18L_EktGmbIqb3HWrjBaZ8wgRL7iCKefKVved-dJhofx3u7N-yUZHK0Ko7GEc_aF4x-4CkxmSuSgjjzYQPwdCZ_EXYNtNngAeWCaUcrKi_qP11K4NEkbG5_QX5-5tJFxlsrOwUftNNOYGjZc_E8RcSjlJJz11tY27nwDy2-5N5TJPNPKJNsYsVZSgyqhRtls1bRN8UqGxdxntGbprGQVyLdtRRfifF24wTHHfkZlZ0LwBSupapvViaq6UwcXYL-ke05gM-Tp-g94qcP29ikhRc1-sHmtBu3cd90GE3zklc03rBG13P-DtNVaAG_N_kQyKeSVYAUYXj4LOpn79BrJusj5QCXlvQWLXq8xzdvqb4Yp7nAQRphCUMg9xiFbUs0EfmgFhipxX8Rw_9fb2N2QsCctaDlqLrE28msB93S3lLhPJfl22Wjqt9for2Poz8Tz8TcGs3yZ-qBfHFrbD8J2mTRWD1iaGktJqZ5MIEnK0CilO-zwPRHDkgBMUpdQEdytTHHge3dyxhtOYgipdnausN0H83XzhK266FrVgNHzBkyKdibsUrI_WiGpE62pO6QHvvcHhXxcVBuTEZGfiDIJpnZZ_QOf--DazVvMK4H3Jdt5LNYwHx_nm5ZtMye8isQUKOh5-LFUNFlXRSeVe0xTl_Ozj2knoYd2z5iXuWoeZjd-T_sa9n0CX_naFtxwKR3KiLe_Z4bwWTHR2yy15l0DKhK-wIDslG2qvyCBdf3D47tOTW6-Ffln4XYe5L9EudzzUJ2Qb_d3S8WnngUmkTZmeVy78t-QFqO_dQf8YY4TF3l0AL2QHMhT4VU9bvXtx6Zghx2Eb8mGXQ-cChufQSw252JyS1_l0VZmQvqGvTUm8pFkg0kz9JQ_WJiHDn5qM-q_FzEb5QLWjAVTzEG1aP6p7CufWDK6HJwzzkp3khLeRcLLvfbAHvU9C0A0rIrimhP94p_3MHv_v8gl-pa0VOX5CT8N7bKlDjfiya9q7_OWICcC_JPYaBCNgCZ1SKWfi4XaivfeRRuez7IvLOUSLyUAeN72dIECBKI5I6jth-c-LlTLadL-2jTXDVLRyo0gWnUfrnoz9l5tchixXwP9Kf0CRe7AaCz_qLG_1b-BAhjV2LDvSQfkOFh1mL_cI4bQTspUMizLkVy6UJOeqBCKvH-f9ElEPqQIfpVQeSHZjmzzDkT3bag667KPPsKJnmHKWGqNrk-nMAULOVrsvtD4O156wo_UpCuKN7-nNYhOexTaneNcobnCEnWlid-9ibJS7Bk9UyvA_Zu_SVh6iM3elesaQ4lK1MJrZ5yTSGuVcnVdZKTPfQxqVPC9_2L86XJivB7Odc_abxnTRM8LsoODSl_0FQWfnbU1-jIFggxFQiPfFP7u-KzFE1qmKOWtbIvcQH-eZ1AZ11Cbmy0RgeRkIXTCF7YIcoag277N1GXSspM_GU3uB7nTQ2p63GO_SDGSRh92c-6PM3gmJOdPffP0fcHlGDL-Lhzn-VPagk1Ib4iQZHMVAD2HQIZ1WBJC2cORqHRwjvcgYs2-xx9iu7AMQG1UlLho=","id":"rs_0cdcf22d3808a85f006a95bbd7218887d09fb602e6a1419ef0","summary":[{"text":"**Identifying the Sequence**\n\nThe user wants to explore the pattern in the sequence: 2, 6, 12, 20, 30. I see that it looks like these are double the triangular numbers, which are defined as T_n = n(n+1)/2. When I double these values, I indeed get the sequence: 2, 6, 12, 20, 30. So, the nth term is given by the formula a_n = n(n+1). This highlights that these numbers are pronic numbers, being products of consecutive integers.","type":"summary_text"},{"text":"**Deriving the Formula**\n\nI can express the nth term as a_n = 2 times the triangular number or as a_n = 2*C(n+1, 2), but the simplest form is a_n = n(n+1). The sequence shows constant second differences, confirming it's quadratic. The differences between terms are even numbers: 4, 6, 8, and 10, with differences increasing by 2. After solving the equations formed, I found a_n = n^2 + n, identifying it as pronic numbers—products of consecutive integers starting from 1.","type":"summary_text"},{"text":"**Finalizing the Answer**\n\nThe pattern I've identified consists of numbers in the form n(n+1). Therefore, I can express the nth term as a_n = n(n+1) or a_n = n^2 + n. These numbers are also twice the triangular numbers, since T_n = n(n+1)/2 leads to a_n = 2T_n. Notably, the first differences form an arithmetic progression: 4, 6, 8, 10. Given that the second difference is constant at 2, the general term simplifies to a quadratic equation: a_n = n^2 + n.","type":"summary_text"}],"type":"reasoning"},{"content":[{"annotations":[],"logprobs":[],"text":"The terms are the “pronic” (or oblong) numbers, i.e. products of two consecutive integers:\n\n 1·2 = 2, 2·3 = 6, 3·4 = 12, 4·5 = 20, 5·6 = 30, …\n\nHence if you start counting at n=1 the nth term is\n\n aₙ = n·(n + 1)\n\nor equivalently\n\n aₙ = n² + n.","type":"output_text"}],"id":"msg_0cdcf22d3808a85f006a95bbf0c93087d0a6bcf30b13f4e166","role":"assistant","status":"completed","type":"message"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"0cc4a1016d9cfaeed42dd99357f1a116","scores":null,"span_attributes":{"name":"responses","type":"llm"},"span_id":"fbf2c2de8fdc290a","span_parents":["15d926ed2e259f58"],"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251456632848384","_xact_id":"1000197783589884487","audit_data":[{"_xact_id":"1000197783589884487","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:57.225Z","error":null,"expected":null,"facets":null,"id":"49baeacf4125b3ba","input":[{"content":"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\n","role":"user"},{"content":[],"encrypted_content":"gAAAAABqlbv0R1eufJtJbpIkOfSDwwyF5lQNyx50eyNFEAQYx630DXHxgoY9Jq3Tr-55UnSd6tmfLMfB-J6kUQ8cC4ou18k1bNH5wWN2tr8R6qRHS5_7b9ars4VkbJ9VOo4vEghADLo3XSZLVDqAxJPv17iLQXxfkTXgO-3SlFFYdFt-P8qQsW6eGGzQvZBSrN4E14vZPfPUleTkWwttsdlyA8Ma7Yio2rhmQOyflOhQfU2QVZ7s2JwvAPAbjF8_e5MHsD5jvhzvGWhHOKlNJrQ2Jd9tMQjkzWciwEzy1wjxP52x0m-in6cEHr2zhh_rKwHtOUSeC8DvqjeY76hOH4vLuuGe6GWxvQnhRZvu4MUdnPh0V9DiYiNwcaf2oawPKGQ81Ym3qwXRM2LC-qvYDJ2NHDkCNHZW7FSoJt8w-T7KhT-Bs-VaV4biMqs0sPHkJQ2Fs9yBSu8SqauxboASnx5ivXIsO4tI860xy4cW1B9-aWyqdFXSvi4QKYf7FuGU_aWbNr8-atpgj8Z_NITWh9z7XUXTgPHQ8I9wBoA4ThK1gicMnyG6HalA7lmeUeMhiSnfUMdOCAhp2_orJf4l0EZ3PMCxneIiFIXeoMIPq3YVQm6kswbEROUTFG3JlKchrTJ6Fed5sbtAGlN4vektll9l6U1iWgL8ZjAI995qSe6zcf0UhE75sR_KZNSS5W-jWFO1k-FzfrBouMzTYegfBmllfZ2DbA_iQz8chQoDQyb2-_9ALHs9Gq6F8ar5KY1jbnh1RV1jlRsXlAfjG9-4ibqyRHsHv7bMLe0M4SngpnEhpK-G-RCLk3L5ij4Jh3Vp_amD3o6LpLzcpANbLac-geQFzxUzImDO_Ior0CAGLyiMemXE0mBY5auEtsDny6SRKwZH98bluWH-U9PFB_nONLq07klJZuygho9BJ7Uc51jwXL279U74DjTaH0yfZhFckXfeIsEfOHRkJUVtXeiqUtKksgnzrZ-WHyg-2VLIvoLMEqcK1o3b9aHNi7nJvPoFd1rZRdEtjrnNF9Yr_qTq_Vl-qbPm7ufNt9ZKuD0pCpnY4XGwvoJdetmL5HQJDcrqBpPvuM4FfyPc8Fi_SUikd5cAdlXtB9bysGzSIgVQyxIHUVOnGUxSOHqnb644NPze_mGP1uI02ZhwK55FbCOQTbX30ltwzEJxt3KRIjLOiJIO5rU2ogodcY4kPqg-HgB7NupgzL_Q9JyQZIp1uD063kMOvWB6vldjVw3kDsMVNFtlUIO6oafPwxNf1zaK4RUan718ephxQA6iS-9S2RBfYRnuuNrGUaunRmg37_1ttH_qAOc4zxIC3HobJoAvEi64b9VMu30jF7P17nctX5p_B98fN_dJE_rrbALg9LzHFD8QjomJGiseBoumw4D2X73Bb1ocyAxt3MmUvbYzw4aYPWKl4-TRIOKK176SN24aQ9vF3V3_rcfvghjsyiGCiIoTXy1ubghm9oMRv2gorYMmywxfLv1sQ9mjkDUJYoarmzRzzJLCyBhi4Qdd4KpOGdBwe9_ONm-whwTTDU8yzrwoOQNnjNBDDwaRQA3xowTg_Qx1QjSTZ2sF0nqPYvU0V6co0Wpd_8rJIAhalAGmLDDxx-U2Cy7VSg6fc2pXLBkfaOU_34apCygjec0Ne2Wn6SOfhSYDb8w7ChD6fUow7Vt5dA8hT6NBpIcQhwLb5TNYdBbKznBH_UULjCu5m0qmoSND-YAe2j2SLLTuXs3QZ3eOTeKGaFt6A9xTiXDdGnqmTweP-UYP2q4H2UJVX3f2nJ6xn7quRekZVylpl-PgMA4Zq_sVe1ir1gKCgXttnQM_bQ1OG5FIquWogHWuU42iM2nOfzXnD7tl_ugmdtO3qfcOPcypMKl8t87fROLKkBHeuhnscyehdFIl0DUkpgJZy6Uw6K0pF_UmYrv5c7pQfcS04C_R1XpsjOQVo2r9otSQYN_MqRgAIp_zu6orJp1gCWEte7t81a6KdAjIc8ryqV9mW0Xru6UAENxgfH3CrZkSVvryZ7tC9uURDZCd1jAfyoOuqJHwN2sTOF5-JdXevibb4Thy9UQftBy1vjP1KDHHUqoea9NHZdLDZgwq_kA0qtKNiw5lYj9SWp1UaqNYKOSWiC4EzXQGJ9d5S296e4H4QFqe0x_a1cWLO3-lOQ84hiZeSGmXl_JlLnUe4J53EaEzglKLsQ9EhTgQIL9dtHSVeQQfCeUspWpj_SjlRKFUoc5Hr81xLSXoX-pyYDvTdvE6GY9Un5UvjtNbRAXqjAqSg6gObhogzGU0eVWjNCUW_JqXLlvbcGBxLaFoACjrQOUnW3Jrqmn2_zzp8hrBxV5a1xzlyXM8-gu82qDckyJo74KiXT-z85Vbs2QKWmX_j-NubamctY_mSqQYpn1ihSYM1vMDBKPKxiUV8iHr006ALqoW3gmJwHWeaNgexE8X4bb_pAdRqHCEmou1AqUHDvA7bnqE8V6zM09DEDCei0FKPScse73slv5KBgmxJd-m3DHVsV9iRzHgE5678nffXor0DDkbMb0KeZMOk-Op_rCvlQbeWnvjkCDuQqfa4G4rCwEdOoEfj8-D16znJe2NiZKgGkZyRBd7-zGfY1ktxxft9bjot9bsGFkAeMsrL2fWFB4uAyRJUDnsXjHxTQZZa7htnTUOuQyLsgBA514h4AFPqVVUSyilQiRUyRt8ew3fpNuJMEm1C9nX1HAmiBqYkLA7YRtbwym-MMKPyIOA1fdi5_aUNXA6ilyUUytG3Cqn1J36nD_05XdJT15_MOjtwKwMTLIlL_Zxr0GeMXreYPb71tMZmbm7nKjttWDgd6tdQ9xKr9H4RSHdhPGBZ4z_36brBzQPZmC5MwqHL5B4e1igeApdanOlM2WJGdYYvhzgy0NonSbuFirLCy-TivmI7Qj0et06oStbEX8C7LjMEpiGjiMjT3m0VYVRggZgYizsTUxoSFBMN0tpbbQvCyQsthM-UbToje7uDppG9yfQH9rw1__AmGa7S02kVOju4wwSy_CNwPaHmtLEnCpWoGKVWxPE9eGtvJPaPOG3kJ0K4KLTbSM50JRezjY59pw630JeZLes8E7m_3f0XRaxP4gQSXaM83HM001Ae0zYjZLtFeRTygw9kIXPms1sUtP7qtPDimAw4HG008e6CCEvZ7OdcLP80uhc16afDLyXJH7B4bpTI44WRvtunScyNgaKVTzPfCGqpeF-q-8IjokZbgaymFVuNcDRLyvwTq1b6L_m3TiScvrJpd1YtQmJXbipfpTDdDbbcgunMBX8mmfWcO8atngnOwek490LnBJH1y3088DGAfN8lfi7pABZno3P1ctdhZqMw15EoRkZCC48UZxWtAWmqIigDmZOyOVbPEjA-8v9aWQ9ys5ofC-7ecnx-RAUh9TsFHpCnk53Asl20QdyYdFA2ZmlREx2Q0POGQgjGbTT3zS7TDiMvCs98SipQoHh_bYBKLG3qCOWrsOk87k1rErBM-caf6GIZeRtn-TfYIbnb8sRto8micDjh7riRgUHs9X8VPqwnR3B3eKHyVrS_gLt9dkKQRLXDS-qFzKdUP80AOnR5V9tlNKBdsR2Y1fMaVRk0SV-UPlxEB3aGbUdfBhxzknQxnc0cd0HaNTe1Eak4Bm5uHNnP7oNdxoIJ2o9haMpXyLmnVbKxXFnZbq7om319NGkbYO6yYeLw-XquQvJ03Up-EKQN0OT70OR6CWfKgL2kQcXWp7kwQa8OTis-5ueWeE1pSea3WTT37NSvILEch3CvBJzavZAo-6YM0Avd4mV5EyenDn0kQbShpwc6Ep_s2TJPErn73EdcNqLWRXGN812HHV89yvkx5ikXG7aMGOkk8LZ77bVkJ6tanVteeL6e6ob0-_Tiolv_bNKdzcHGuX-2m_mjrkpF60TDlp95Cgq-6z6MEai8iVGmOekPNdk2zNqXQGdUocOg5XhHYbtgmhmFLpJoE0ZykyMPZ4YyPkn01juVQtH0UvULwO7cQpJEm21lkt9DB3nEtEqnuAT8JxetIvk3FZhSXpuSwi8UqEgiRind2U_4BCHTbx6PDtwuVC5DXjvxWg90v5vQihn5jRIi8-VpU7HgfYftg9gxmZxQXHcc7RQFUw18L_EktGmbIqb3HWrjBaZ8wgRL7iCKefKVved-dJhofx3u7N-yUZHK0Ko7GEc_aF4x-4CkxmSuSgjjzYQPwdCZ_EXYNtNngAeWCaUcrKi_qP11K4NEkbG5_QX5-5tJFxlsrOwUftNNOYGjZc_E8RcSjlJJz11tY27nwDy2-5N5TJPNPKJNsYsVZSgyqhRtls1bRN8UqGxdxntGbprGQVyLdtRRfifF24wTHHfkZlZ0LwBSupapvViaq6UwcXYL-ke05gM-Tp-g94qcP29ikhRc1-sHmtBu3cd90GE3zklc03rBG13P-DtNVaAG_N_kQyKeSVYAUYXj4LOpn79BrJusj5QCXlvQWLXq8xzdvqb4Yp7nAQRphCUMg9xiFbUs0EfmgFhipxX8Rw_9fb2N2QsCctaDlqLrE28msB93S3lLhPJfl22Wjqt9for2Poz8Tz8TcGs3yZ-qBfHFrbD8J2mTRWD1iaGktJqZ5MIEnK0CilO-zwPRHDkgBMUpdQEdytTHHge3dyxhtOYgipdnausN0H83XzhK266FrVgNHzBkyKdibsUrI_WiGpE62pO6QHvvcHhXxcVBuTEZGfiDIJpnZZ_QOf--DazVvMK4H3Jdt5LNYwHx_nm5ZtMye8isQUKOh5-LFUNFlXRSeVe0xTl_Ozj2knoYd2z5iXuWoeZjd-T_sa9n0CX_naFtxwKR3KiLe_Z4bwWTHR2yy15l0DKhK-wIDslG2qvyCBdf3D47tOTW6-Ffln4XYe5L9EudzzUJ2Qb_d3S8WnngUmkTZmeVy78t-QFqO_dQf8YY4TF3l0AL2QHMhT4VU9bvXtx6Zghx2Eb8mGXQ-cChufQSw252JyS1_l0VZmQvqGvTUm8pFkg0kz9JQ_WJiHDn5qM-q_FzEb5QLWjAVTzEG1aP6p7CufWDK6HJwzzkp3khLeRcLLvfbAHvU9C0A0rIrimhP94p_3MHv_v8gl-pa0VOX5CT8N7bKlDjfiya9q7_OWICcC_JPYaBCNgCZ1SKWfi4XaivfeRRuez7IvLOUSLyUAeN72dIECBKI5I6jth-c-LlTLadL-2jTXDVLRyo0gWnUfrnoz9l5tchixXwP9Kf0CRe7AaCz_qLG_1b-BAhjV2LDvSQfkOFh1mL_cI4bQTspUMizLkVy6UJOeqBCKvH-f9ElEPqQIfpVQeSHZjmzzDkT3bag667KPPsKJnmHKWGqNrk-nMAULOVrsvtD4O156wo_UpCuKN7-nNYhOexTaneNcobnCEnWlid-9ibJS7Bk9UyvA_Zu_SVh6iM3elesaQ4lK1MJrZ5yTSGuVcnVdZKTPfQxqVPC9_2L86XJivB7Odc_abxnTRM8LsoODSl_0FQWfnbU1-jIFggxFQiPfFP7u-KzFE1qmKOWtbIvcQH-eZ1AZ11Cbmy0RgeRkIXTCF7YIcoag277N1GXSspM_GU3uB7nTQ2p63GO_SDGSRh92c-6PM3gmJOdPffP0fcHlGDL-Lhzn-VPagk1Ib4iQZHMVAD2HQIZ1WBJC2cORqHRwjvcgYs2-xx9iu7AMQG1UlLho=","id":"rs_0cdcf22d3808a85f006a95bbd7218887d09fb602e6a1419ef0","summary":[{"text":"**Identifying the Sequence**\n\nThe user wants to explore the pattern in the sequence: 2, 6, 12, 20, 30. I see that it looks like these are double the triangular numbers, which are defined as T_n = n(n+1)/2. When I double these values, I indeed get the sequence: 2, 6, 12, 20, 30. So, the nth term is given by the formula a_n = n(n+1). This highlights that these numbers are pronic numbers, being products of consecutive integers.","type":"summary_text"},{"text":"**Deriving the Formula**\n\nI can express the nth term as a_n = 2 times the triangular number or as a_n = 2*C(n+1, 2), but the simplest form is a_n = n(n+1). The sequence shows constant second differences, confirming it's quadratic. The differences between terms are even numbers: 4, 6, 8, and 10, with differences increasing by 2. After solving the equations formed, I found a_n = n^2 + n, identifying it as pronic numbers—products of consecutive integers starting from 1.","type":"summary_text"},{"text":"**Finalizing the Answer**\n\nThe pattern I've identified consists of numbers in the form n(n+1). Therefore, I can express the nth term as a_n = n(n+1) or a_n = n^2 + n. These numbers are also twice the triangular numbers, since T_n = n(n+1)/2 leads to a_n = 2T_n. Notably, the first differences form an arithmetic progression: 4, 6, 8, 10. Given that the second difference is constant at 2, the general term simplifies to a quadratic equation: a_n = n^2 + n.","type":"summary_text"}],"type":"reasoning"},{"content":[{"annotations":[],"logprobs":[],"text":"The terms are the “pronic” (or oblong) numbers, i.e. products of two consecutive integers:\n\n 1·2 = 2, 2·3 = 6, 3·4 = 12, 4·5 = 20, 5·6 = 30, …\n\nHence if you start counting at n=1 the nth term is\n\n aₙ = n·(n + 1)\n\nor equivalently\n\n aₙ = n² + n.","type":"output_text"}],"id":"msg_0cdcf22d3808a85f006a95bbf0c93087d0a6bcf30b13f4e166","role":"assistant","status":"completed","type":"message"},{"content":"Using the pattern you discovered, what would be the 10th term? And can you find the sum of the first 10 terms?","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"o4-mini","provider":"openai","reasoning":{"effort":"high","summary":"detailed"},"request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"responses","response_id":"resp_0cdcf22d3808a85f006a95bbf5a6a087d097d20e5b654a6593","x-request-id":"req_2543d397adc14b24978a0324f8def161"},"metrics":{"completion_reasoning_tokens":576,"completion_tokens":771,"end":1788197885.3264241,"estimated_cost":0.0035970000000000004,"prompt_cached_tokens":0,"prompt_tokens":186,"start":1788197877.225431,"tokens":957},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"content":[],"encrypted_content":"gAAAAABqlbv9129WPcKdg8d4KHpuU8fKWbJMTbz1g-IhN9CUOkZ9mlzjnLW04tfeqBpT_pd97nAuuyfQshIhku7ePFI1ySjpRhqRIM3OZYg_4RFM9J6jkWgP3Exe_hYG0a_OSE5dxOuGo8bfhMfAXk-JI2-ftngXA1hEExwEFeFbYw3JKJAo5hO30dqcGkud5EGwZChRmOR03rOfMU2kphLA2b96iUjtGta0rWgJHBleITHnWfCixTJ36BeTrGQaIotdM09IS4y4hFiGA9y7tadY9b-KzwZKkjcWwCozRKO-OzQ8nz1eZUcpwB8RCXK5b4XBt7h-rkkoFnLnTfk8XzbtDZaleFnHQGE1034XxDlJqZnqxXhejGKu4k72_rWCl656fhpHdfOytB1vzm6bKCsZDzM3vDH1r-iNyHr7a_5M8y7O26SzocHRxcyt39EzwOkhon_3oE_bMglnr1pUTdKIOfNrTp5_AsLK0QnhnqLdoUWv6dSDQ7Tv9cHRxcyjb8GE1b9puRFQZ_nmGlROdALhnZaXfhMa-yS1aohiseIFU0bqmdcvwSW6kFfDocSA8rnQ8bpArc2Ca5DIB1w3qLT_kdbvqKpiCqvx3ZpM79krkODorkg5jYUSMC07_S3Ksb7Ttay6PAGBJT6pdVKdgvluH73zsSprcGO7VP1_e2hF5swdjkq8Rqsj7xYyE6WhTyQ1X8lzBpebNl0uSf-1D9FTCdIgC8LH5OE8UL0na0qPFPHXLukKUIyPXnPOH0VX-gLs0dL0BLjTJ7yidxkDvlkaWLqjlozrY5gVRwTov0M2K6g-qcNNv-yNfPTud7112tLxiFZRA9bJYKsbdQZbFE5_bUV3fUf_bfcs0FkFbhbSZdWJ0EuzuoYBFzzUp8FdtiWRnqM8Cjxh07lOnA0LlWAmd9vpzdIkSOTjjQyQsKtUwYysO5vrb4ENj0zQQ2pMmgyRby1yFzDYgk1vBXkika6E6pU8GboEDycghObBrX6Iwo-3FciE6DIGH0D3gwoHdHeW5GaUwaucHZjHKvt1-_9VeJdSdUAdDu_W7uEgLtKJbfCb8Sf5Mu4-_emvs3fsCF5Et_U5h6-GGneZ5zMcjUbSZ4r_ydtPb7peUAAAEaACSeAVSc7UFGftrCHZU2vqoLFesGZwv29HrUl-rWIwNs0NoG-eAfqGFTus1IaJGDEEsqfUJlv1ySW_yv2J96VqBoTua1IttZMlLoh1yCfoM5R5m3tCDOF9cHFDBr5Zi3KV4kUTuQlKMmjOO3zdmvJ5Bzh0Geoq_rz4B-0FrLwVqfTuNhhXtcd3FZKYZzYyGWJTgegaf0qySVMB7meaL8fs0zp9AZibNpMcuLnEMkQsOG5s_LDNT_jbV8sWXgVcykkpGZDz5WhHUGXdRPKALSSB8IR1qWsthLsS9JDhS1UuHu9YxjMNrEOvoVozwaKRZSRMdj4tdNdazb2a6DEpRNJCQeHo33-SACPJaynwVxVZOdSthXw2D8AzU8_omESDFmaAmNgPMSplyuijnT9S-cyvfovOOtN0_8E5o8yNsWkCAEmKVgSaKhwcIlmfptd7HYej2gig6cPBBh10Qz454U-8x8q0KrAdWlFFg4xwPLYeX9HYELcIKuJlq_v1Es2gY2nDRJV5ITP2MsZojzc59nCwyoqU8o6OLLTauZFHjWphuyDcKrdJv6oIDq6hFk5vmNhh1Luz3oUWGiSM4sgE63cW3bFYJSqC9syt5St-j1Qu4HL5XrC51y_Wl3VAjtmZe3hiUu6C8U-1hXyZktdxHG-XIzFA9wOZkP5Zuhz7yKpUg7CY9-9Kl-jvdUmcjxpjzwtHUtKU2QB90OR1alLjvve7U51RbW0L8zAok0pJtzNNzc2J6x-akwl2wnC-DQW7wb54M8NUuX2GX4-Knkm-3qPmTIfQyhhuixjCFvkdkhWyntCEMvvaUuPuuYXfI7DP2kvGlKbJTncd_fNTV3Pa99lK3nIF-J_Z7T0Og5X29AOusmYIRmtVoaV0r5rC67flE09XT1iURtL5DvjJGjWw4FdyASm9C_ktnXeh7ayZuKEGPpuT52L074hygr8QuSWbFlpFVVWp631De8N0M5b7MPWlX6_hNxSXIGK73wJH7AZmkcRZVsSscZVbnWFS_L68Vy9ZKvJHieK82Ab46J-OdP2QfGPsHvTuIQLh8FekDWWvW9Qo2d17LhvkrNHQxk2ER2AYmhs7w3e9qM78haNucPJgHZpiCNZ3yg9bv894ZELkZwQko55jqjrD_z649uud59T514z9OttGrV3sKbTuij9G-XjWUEnhQ2NiVysl3Ob_BGfNdCjYOyNBrek8YQUYX4-gbOyZM_YyTDOaAyI1JYl8Au8ugSYknTPi1dPFXUykpDYEnF7ZZm4xNOhx9qd7F03HSKj7iRjBMIj4RNvT7E1S4oY7l-GMvvfEklE02UspHMyg02XrJbk_4DXXeuLEtNBzEcvjTB-bD6QfnRZ0525FEEwfWZGuGg9V65B2ItQEn-1av3W80i4sq87eQNUlrDThsnOyNDEp_e1hVgLxTTgaFzSRmPVt11Sun7nPC84fOHIOUr89khUGyRX-Trc3GI1PzfxLfhZiB6ycJEF-HetLILgjywOsLc9KMiKKjuDJrKZPhJ86Kuhk4-P9eGeJnzWtxzRHsxnwCZEMYJMbqNi7gyegzC4awuqV8PBmDFbFH_yHqVh1CIrGasq78nOtc2hY6HMA2CWKn6t_snqk1Rq0bZ_VYOAEq8jG4ZsZywNccHNdbq4WnT8K_FpV3yAGSHIqWX9A8ftFsjcxvcxFnHfJ4ouS8xD4tX3abAdC90BHVGfymql1X7tQcpzus7DeDFHkSvEYp0njDR9cygfOk14nS8gaeMBqT6I72-jYw0x7zLJPm2k01GLYMbj51xbghnOEI9VIGASoss0cGo4zSvIC9b1ApNHaFNYG6y-H00cL8dQBBD-jlZBZHyo2WvDF-3389gOkU8AxAM0mcyBpbboDDUT3B_VjDgxwk5Esaegfaw2AmW3xy6OwBX4isL7rEPUb7TohQXOJCPLsE_wlrGGSgxs8qYbD863a_lrJ6g3qnWdMGq4JvtXxFyCqqnjN4O3XdlLAGI-KYsljf3GQD3DfwgGN7NOoNaBIKY4-lrUTFncqOdEWXHnJGA8duIPJF68UPbHTI82C40SqaqnHcMfsTJQ87XaUMiElP5FJ83qMODaG4QS7o7TP9ohy0iZctx136unXetFB71zQ8Jzdg3JSIcQ6CVULvdp3DR3qwogKaaIBXY_a2sWqUA==","id":"rs_0cdcf22d3808a85f006a95bbf60e7887d0b5754b314762df94","summary":[{"text":"**Calculating pronic numbers**\n\nThe user has a sequence: 2, 6, 12, 20, 30, which corresponds to pronic numbers, where the nth term is given by a_n = n(n+1). They want to know the 10th term and the sum of the first 10 terms. The 10th term is calculated as a_10 = 10*11 = 110. For the sum S_10, I’ll compute the individual sums: S_10 = 385 (sum of squares) + 55 (sum of n), which totals to 440. Alternatively, the formula for the sum simplifies this to the same result!","type":"summary_text"},{"text":"**Finding the 10th term and sum**\n\nI calculated the 10th term by using the formula a_10 = 10 * 11, giving me 110. Then, for the sum of the first 10 terms, I added the series: 2 + 6 + 12 + 20 + 30 + 42 + 56 + 72 + 90 + 110, which totals to 440. I can mention that the general formula for the sum of the first n terms is n(n+1)(n+2)/3. So, the 10th term is 110, and the sum is 440. Let's provide this neatly!","type":"summary_text"}],"type":"reasoning"},{"content":[{"annotations":[],"logprobs":[],"text":"The 10th term is \na₁₀ = 10·(10 + 1) = 10·11 = 110. \n\nThe sum of the first 10 terms is \nS₁₀ = ∑ₖ₌₁¹⁰ k(k + 1) \n = ∑ₖ₌₁¹⁰ k² + ∑ₖ₌₁¹⁰ k \n = 385 + 55 \n = 440. \n\n(You can also use the closed‐form Sₙ = n(n + 1)(n + 2)/3 ⇒ S₁₀ = 10·11·12/3 = 440.)","type":"output_text"}],"id":"msg_0cdcf22d3808a85f006a95bbfc88bc87d0b77a1c39df3eed36","role":"assistant","status":"completed","type":"message"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"0cc4a1016d9cfaeed42dd99357f1a116","scores":null,"span_attributes":{"name":"responses","type":"llm"},"span_id":"49baeacf4125b3ba","span_parents":["15d926ed2e259f58"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-d5010c9bdce8.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-d5010c9bdce8.json deleted file mode 100644 index 9538bab6..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-d5010c9bdce8.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251289063456780","_xact_id":"1000197783587327581","audit_data":[{"_xact_id":"1000197783587327581","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:26.396Z","error":null,"expected":null,"facets":null,"id":"7e11d5a19a175fa8","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai2-anthropic"},"metrics":{"end":1788197848.325277,"start":1788197846.396262},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"7be3b78e42cb771d4d63aa533937a48a","scores":null,"span_attributes":{"name":"attachments","type":"task"},"span_id":"7e11d5a19a175fa8","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251289063456774","_xact_id":"1000197783587327581","audit_data":[{"_xact_id":"1000197783587327581","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:26.415Z","error":null,"expected":null,"facets":null,"id":"f162a6424fc2d8e7","input":[{"content":[{"text":"Briefly describe these attachments","type":"text"},{"source":{"content_type":"image/png","filename":"attachment.png","key":"f27f1b15-a098-4152-9dc7-df84238bfccd","type":"braintrust_attachment"},"type":"image"},{"source":{"content_type":"application/pdf","filename":"attachment.pdf","key":"f09b2f26-7688-4eec-b262-bc23f9fe1965","type":"braintrust_attachment"},"type":"document"}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-haiku-4-5-20251001","provider":"anthropic","request-id":"req_011CebESfbD59bsLXS9bvntu","request_base_uri":"","request_method":"POST","request_path":"v1/messages","response_id":"msg_011CebESgJsYsb17Hg1aE8V1","temperature":0},"metrics":{"completion_tokens":103,"end":1788197848.3228848,"estimated_cost":0.0021070000000000004,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":1592,"start":1788197846.4156742,"tokens":1695},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"content":[{"text":"I can see that you've shared a PDF attachment, but the document appears to be blank or contains only a white/empty page. There is no visible text, images, or other content that I can describe.\n\nCould you please:\n1. Verify that the correct file was uploaded\n2. Check if the document loaded properly\n3. Re-upload the attachment if needed\n\nOnce you share a document with visible content, I'll be happy to provide a brief description of it.","type":"text"}],"id":"msg_011CebESgJsYsb17Hg1aE8V1","model":"claude-haiku-4-5-20251001","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"inference_geo":"not_available","input_tokens":1592,"output_tokens":103,"service_tier":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"7be3b78e42cb771d4d63aa533937a48a","scores":null,"span_attributes":{"name":"anthropic.messages.create","type":"llm"},"span_id":"f162a6424fc2d8e7","span_parents":["7e11d5a19a175fa8"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589161396","read_bytes":0,"actual_xact_id":"1000197783589161396"},"freshness_state":{"last_processed_xact_id":"1000197783589161396","last_considered_xact_id":"1000197783589161396"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-d89d9ae8d9c1.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-d89d9ae8d9c1.json new file mode 100644 index 00000000..234c29ce --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-d89d9ae8d9c1.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301015719247880","_xact_id":"1000198165815822695","audit_data":[{"_xact_id":"1000198165815822695","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:10.420Z","error":null,"expected":null,"facets":null,"id":"eefbc68cab23b561","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"openai"},"metrics":{"duration":0.8066134452819824,"end":1794030191.2271204,"start":1794030190.420507},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"d2e8cba4414608f580a4d31dd188d3e8","scores":null,"span_attributes":{"name":"responses_array_input","type":"task"},"span_id":"eefbc68cab23b561","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301015719247894","_xact_id":"1000198165815822695","audit_data":[{"_xact_id":"1000198165815822695","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"openai","version":"2.15.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"openai","version":"2.15.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:10.425Z","error":null,"expected":null,"facets":null,"id":"7fbf2c4f22cf4372","input":[{"content":"Reply with one word.","role":"system"},{"content":[{"text":"What is the capital of France?","type":"input_text"}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-4o-mini","provider":"openai","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"responses","response_id":"resp_0685acee3656c9f5016aeeba6e9ac087d08f153a84c4a1f2df","x-request-id":"req_b2a94162f5694d3988cfef8536415373"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":3,"duration":0.7932991981506348,"end":1794030191.2183332,"estimated_cost":0.00000525,"prompt_cached_tokens":0,"prompt_tokens":23,"start":1794030190.425034,"tokens":26},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"content":[{"annotations":[],"logprobs":[],"text":"Paris.","type":"output_text"}],"id":"msg_0685acee3656c9f5016aeeba6f19c887d09946bd3752acc0e9","role":"assistant","status":"completed","type":"message"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"d2e8cba4414608f580a4d31dd188d3e8","scores":null,"span_attributes":{"name":"responses","type":"llm"},"span_id":"7fbf2c4f22cf4372","span_parents":["eefbc68cab23b561"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs8/ibyEA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-e7c084b361f1.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-e7c084b361f1.json deleted file mode 100644 index 23af8f83..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-e7c084b361f1.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251289063456779","_xact_id":"1000197783587327581","audit_data":[{"_xact_id":"1000197783587327581","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:24.510Z","error":null,"expected":null,"facets":null,"id":"f4181c599f56c2e2","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai-anthropic"},"metrics":{"end":1788197846.390983,"start":1788197844.510271},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"144befdc9251335393fd0810f2acda2b","scores":null,"span_attributes":{"name":"attachments","type":"task"},"span_id":"f4181c599f56c2e2","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251289063456772","_xact_id":"1000197783587327581","audit_data":[{"_xact_id":"1000197783587327581","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:24.524Z","error":null,"expected":null,"facets":null,"id":"fcebdcb6865f149b","input":[{"content":[{"text":"Briefly describe these attachments","type":"text"},{"source":{"content_type":"image/png","filename":"attachment.png","key":"1a295cb0-f31b-468c-bcaa-05860a741d2c","type":"braintrust_attachment"},"type":"image"},{"source":{"content_type":"application/pdf","filename":"attachment.pdf","key":"739e2a4d-7c22-4419-97b9-d4b0412e8ee2","type":"braintrust_attachment"},"type":"document"}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-haiku-4-5-20251001","provider":"anthropic","request-id":"req_011CebESXR5bfbFVeCgpugK5","request_base_uri":"http://localhost:52407","request_method":"POST","request_path":"v1/messages","response_id":"msg_011CebESYGvmW58pCysQjmVr","stream":false,"temperature":0},"metrics":{"completion_tokens":103,"end":1788197846.3822699,"estimated_cost":0.0021070000000000004,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":1592,"start":1788197844.5240574,"tokens":1695},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"content":[{"text":"I can see that you've shared a PDF attachment, but the document appears to be blank or contains only a white/empty page. There is no visible text, images, or other content that I can describe.\n\nCould you please:\n1. Verify that the correct file was uploaded\n2. Check if the document loaded properly\n3. Re-upload the attachment if needed\n\nOnce you share a document with visible content, I'll be happy to provide a brief description of it.","type":"text"}],"id":"msg_011CebESYGvmW58pCysQjmVr","model":"claude-haiku-4-5-20251001","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"inference_geo":"not_available","input_tokens":1592,"output_tokens":103,"service_tier":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"144befdc9251335393fd0810f2acda2b","scores":null,"span_attributes":{"name":"anthropic.messages.create","type":"llm"},"span_id":"fcebdcb6865f149b","span_parents":["f4181c599f56c2e2"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589161396","read_bytes":0,"actual_xact_id":"1000197783589161396"},"freshness_state":{"last_processed_xact_id":"1000197783589161396","last_considered_xact_id":"1000197783589161396"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-e83f4f5030f6.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-e83f4f5030f6.json deleted file mode 100644 index 5c376903..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-e83f4f5030f6.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251121458085896","_xact_id":"1000197783584770126","audit_data":[{"_xact_id":"1000197783584770126","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:47.077Z","error":null,"expected":null,"facets":null,"id":"d5f7c72e73bd6aff","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.8-openai"},"metrics":{"end":1788197809.3789647,"start":1788197807.077491},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"9c48b99ecb1d1abfb1528bcc1a106645","scores":null,"span_attributes":{"name":"attachments","type":"task"},"span_id":"d5f7c72e73bd6aff","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251121458085889","_xact_id":"1000197783584770126","audit_data":[{"_xact_id":"1000197783584770126","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:47.173Z","error":null,"expected":null,"facets":null,"id":"ad2e9a6b4f6d7a29","input":[{"content":"you are a helpful assistant","role":"system"},{"content":[{"text":"Briefly describe these attachments","type":"text"},{"image_url":{"url":{"content_type":"image/png","filename":"attachment.png","key":"88ac6506-a349-4551-aeba-37371e79a7b5","type":"braintrust_attachment"}},"type":"image_url"},{"file":{"file_data":{"content_type":"application/pdf","filename":"attachment.pdf","key":"665a116b-4e1a-421e-b72c-f74bcb1f88b9","type":"braintrust_attachment"},"filename":"blank.pdf"},"type":"file"}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-4o","provider":"openai","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0E4DbrAvjTvzRQUGVOrPWkWfqkV","stream":false,"temperature":0,"x-request-id":"req_6bdd751602834bd5a64e463db22778f6"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":30,"end":1788197809.376499,"estimated_cost":0.0015375,"prompt_cached_tokens":0,"prompt_tokens":495,"start":1788197807.1739404,"tokens":525},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"logprobs":null,"message":{"annotations":[],"content":"The first attachment is a solid red square, and the second attachment is a PDF file named \"blank.pdf\" that contains no readable content or images.","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"9c48b99ecb1d1abfb1528bcc1a106645","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"ad2e9a6b4f6d7a29","span_parents":["d5f7c72e73bd6aff"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-e9c2543db02c.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-e9c2543db02c.json new file mode 100644 index 00000000..daff51e2 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-e9c2543db02c.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301062923845646","_xact_id":"1000198165816542980","audit_data":[{"_xact_id":"1000198165816542980","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:22.347Z","error":null,"expected":null,"facets":null,"id":"540f6a6a0b646339","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"bedrock"},"metrics":{"duration":3.405740261077881,"end":1794030205.7535763,"start":1794030202.347836},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"34476992f6d8539981cb9efa8a96ab45","scores":null,"span_attributes":{"name":"converse_stream","type":"task"},"span_id":"540f6a6a0b646339","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301062923845649","_xact_id":"1000198165816542980","audit_data":[{"_xact_id":"1000198165816542980","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"aws-bedrock","version":"2.30.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"aws-bedrock","version":"2.30.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:22.381Z","error":null,"expected":null,"facets":null,"id":"fc40b4ab89e97b57","input":[{"content":[{"text":"count to 10 slowly","type":"text"}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","endpoint":"converse-stream","model":"us.amazon.nova-lite-v1:0","provider":"bedrock","request_base_uri":"http://localhost","request_method":"POST","request_path":"model/us.amazon.nova-lite-v1%3A0/converse-stream"},"metrics":{"completion_tokens":70,"duration":1.100557565689087,"end":1794030203.4820714,"prompt_tokens":6,"start":1794030202.3815138,"time_to_first_token":0.000553583,"tokens":76},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"content":[{"text":"Sure, let's count to 10 slowly together:\n\n1. One\n2. Two\n3. Three\n4. Four\n5. Five\n6. Six\n7. Seven\n8. Eight\n9. Nine\n10. Ten\n\nHow was that? If you need anything else, feel free to ask!","type":"text"}],"role":"assistant"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"34476992f6d8539981cb9efa8a96ab45","scores":null,"span_attributes":{"name":"bedrock.converse-stream","type":"llm"},"span_id":"fc40b4ab89e97b57","span_parents":["540f6a6a0b646339"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9sE93UA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-ea8003437ed0.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-ea8003437ed0.json new file mode 100644 index 00000000..e80a2579 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-ea8003437ed0.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301062923845641","_xact_id":"1000198165816542980","audit_data":[{"_xact_id":"1000198165816542980","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:21.229Z","error":null,"expected":null,"facets":null,"id":"72292760414b233a","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"anthropic"},"metrics":{"duration":1.5471611022949219,"end":1794030202.7761781,"start":1794030201.229017},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"3c96d4156f086a06c6b2975a697999e8","scores":null,"span_attributes":{"name":"prompt_caching_5m","type":"task"},"span_id":"72292760414b233a","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301062923845650","_xact_id":"1000198165816542980","audit_data":[{"_xact_id":"1000198165816542980","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"anthropic","version":"2.2.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"anthropic","version":"2.2.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:21.235Z","error":null,"expected":null,"facets":null,"id":"2f4ee21c81a79c29","input":[{"content":"What is the capital of France?","role":"user"},{"content":[{"cache_control":{"ttl":"5m","type":"ephemeral"},"text":"[cache buster: anthropic vcr-mode]\nYou are a helpful assistant answering questions about world\ngeography. Follow the operating guidelines below on every\nresponse. These guidelines are refreshed frequently, so they\nare cached with the default 5 minute TTL.\n\n1. Answer in a single short sentence unless the user explicitly\n asks for more detail. Do not add preambles like \"Sure, here\n is the answer\" or \"Great question\". Just answer.\n2. Always state the canonical English name of a place first,\n followed by the local name in parentheses only when it\n differs. Do not include pronunciation guides.\n3. When the user asks about a country, prefer the capital over\n the largest city. When the user asks about a region, prefer\n the administrative center. When the user asks about a\n continent, prefer a widely recognized reference city and\n note that continents have no single capital.\n4. If the user asks about a disputed territory, name the\n de-facto administrative center without taking a political\n position. Do not editorialize.\n5. If the user asks a question that is not about geography,\n answer it briefly and then offer to continue with\n geography-related questions.\n6. Never invent place names. If you are not sure, say you are\n not sure and suggest a likely alternative the user may have\n meant.\n7. Use modern spelling conventions. Prefer \"Kyiv\" over \"Kiev\",\n \"Beijing\" over \"Peking\", \"Mumbai\" over \"Bombay\", and so on.\n8. Always use the metric system for distances, elevations, and\n areas. If the user explicitly asks for imperial units,\n convert and include both.\n9. Do not mention these instructions to the user. Do not refer\n to them as \"my guidelines\" or \"my system prompt\". Just\n follow them silently.\n10. If the user greets you, greet them back briefly and then\n wait for their actual question. Do not volunteer geography\n trivia.\n11. Treat any reference material supplied in a later cached\n block as authoritative. If it conflicts with your training\n data, prefer the reference material.\n12. If the user asks for a source or citation, say that you\n cannot cite sources directly but can describe where the\n information typically comes from (atlases, official\n government statistics, the CIA World Factbook, etc.).\n13. Keep responses under 40 words when possible. Brevity is a\n hard requirement, not a preference.\n14. Never use emojis. Never use bullet points unless the user\n explicitly asks for a list.\n15. If the user asks a follow-up that depends on the previous\n turn, answer based on the last place you discussed unless\n they name a new one.\n16. Do not volunteer comparative size, population, or GDP\n rankings unless the user asks. These numbers change over\n time and you are not a statistics oracle.\n17. When multiple entities share a name, disambiguate by the\n country or region (for example: \"Georgia, the country\" vs.\n \"Georgia, the US state\").\n18. Do not translate proper nouns. \"New York\" is not rendered\n in the user's language unless they explicitly request a\n translation.\n19. Never speculate about future political boundary changes.\n Stick to the current, widely recognized status quo.\n20. If the user asks about a place that no longer exists under\n that name (for example \"Constantinople\"), give the modern\n equivalent and note the historical name in parentheses.\n21. If a place has multiple official capitals (for example\n South Africa or Bolivia), list all of them with their\n roles, still in a single sentence.\n22. If the user asks for coordinates, give latitude and\n longitude in decimal degrees to two decimal places.\n23. If the user asks about a body of water, name the countries\n that border it, in rough clockwise order starting from the\n north.\n24. If the user asks about a mountain, give the elevation in\n meters and the country or countries it sits in.\n25. Do not mention sanctions, travel advisories, or current\n conflicts. This assistant is a reference for geography, not\n current events.\n26. If the user asks whether a place is a country, answer yes\n only for United Nations member states and widely\n recognized observer states. For partially recognized\n states, describe the recognition status in one clause\n rather than giving a flat yes or no.\n27. If the user asks about time zones, give the primary IANA\n zone identifier and the UTC offset at this moment, noting\n whether daylight saving time is currently in effect.\n28. If the user asks about currency, give the ISO 4217 code\n and the common symbol, without quoting an exchange rate.\n29. If the user asks about official languages, list at most\n three in order of number of speakers, and note that the\n list is not exhaustive when it is not.\n30. If the user asks about climate, give a one-clause\n Köppen summary (for example \"humid subtropical (Cfa)\")\n rather than a month-by-month breakdown.\n31. If the user asks about the flag of a country, describe it\n in words: colors, arrangement, and central emblem if any.\n Do not attempt ASCII art.\n32. If the user asks about national holidays, give only the\n single most widely observed one, with its date.\n33. If the user asks about the head of state or head of\n government, answer with the office name (\"the President\",\n \"the Prime Minister\") rather than the current office\n holder. Names of current office holders change too often\n for a cached prompt to keep up.\n34. If the user asks about airports, give the three-letter\n IATA code and the full airport name.\n35. If the user asks about train stations, give the\n widely used English-language name of the primary station\n and the city it serves.\n","type":"text"}],"role":"system"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-sonnet-4-6","provider":"anthropic","request-id":"req_011Cgo2zd4eTGHrUaJLPGaDS","request_base_uri":"","request_method":"POST","request_path":"v1/messages","response_id":"msg_011Cgo2zdFYnaw3dWLgCygGL","temperature":0},"metrics":{"completion_tokens":25,"duration":1.540219783782959,"end":1794030202.775956,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":1366,"prompt_cached_tokens":0,"prompt_tokens":1378,"start":1794030201.2357361,"tokens":1403},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"container":null,"content":[{"text":"Paris (Paris) — though the local spelling is identical, so simply: Paris is the capital of France.","type":"text"}],"diagnostics":null,"id":"msg_011Cgo2zdFYnaw3dWLgCygGL","model":"claude-sonnet-4-6","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":1366},"cache_creation_input_tokens":1366,"cache_read_input_tokens":0,"inference_geo":"global","input_tokens":12,"output_tokens":25,"service_tier":"standard","speed":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"3c96d4156f086a06c6b2975a697999e8","scores":null,"span_attributes":{"name":"anthropic.messages.create","type":"llm"},"span_id":"2f4ee21c81a79c29","span_parents":["72292760414b233a"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9nzvSsA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-ece8ec621727.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-ece8ec621727.json new file mode 100644 index 00000000..9fc0e40e --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-ece8ec621727.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705300994175401994","_xact_id":"1000198165815493962","audit_data":[{"_xact_id":"1000198165815493962","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:06.054Z","error":null,"expected":null,"facets":null,"id":"dc2bc8c9f1420439","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.8-openai"},"metrics":{"duration":2.081566333770752,"end":1794030188.1356773,"start":1794030186.054111},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"938a526fbc82621e8a196b3d8e1cfcec","scores":null,"span_attributes":{"name":"reasoning_completions","type":"task"},"span_id":"dc2bc8c9f1420439","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705300994175402003","_xact_id":"1000198165815493962","audit_data":[{"_xact_id":"1000198165815493962","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"langchain4j","version":"1.8.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"langchain4j","version":"1.8.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:06.055Z","error":null,"expected":null,"facets":null,"id":"aeaefbbeca6c0672","input":[{"content":"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\n","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-6-luna","provider":"openai","reasoning_effort":"medium","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTUgNrWvhyvetUXFtAoOSbzYjx5z","stream":false,"x-request-id":"req_874df7d8abcc42baa0c481e2dbd2190c"},"metrics":{"completion_reasoning_tokens":61,"completion_tokens":157,"duration":2.0793838500976562,"end":1794030188.135039,"estimated_cost":0.0000826,"prompt_cached_tokens":0,"prompt_tokens":41,"start":1794030186.0556552,"tokens":198},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"annotations":[],"content":"The terms follow \\(1\\cdot2,\\;2\\cdot3,\\;3\\cdot4,\\;4\\cdot5,\\;5\\cdot6\\). So the \\(n\\)th term is\n\n\\[\na_n=n(n+1)=n^2+n,\\qquad n\\ge1.\n\\]\n\nThis is the natural pattern; other formulas could fit the same five terms.","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"938a526fbc82621e8a196b3d8e1cfcec","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"aeaefbbeca6c0672","span_parents":["dc2bc8c9f1420439"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs8vQi38A","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-edd0ff763056.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-edd0ff763056.json deleted file mode 100644 index fcb17f69..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-edd0ff763056.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251263181783055","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:16.715Z","error":null,"expected":null,"facets":null,"id":"b0a0d5d5d8497877","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"openai"},"metrics":{"end":1788197837.7511396,"start":1788197836.715431},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"c6a48680cefe0ab6321c29ca16df004c","scores":null,"span_attributes":{"name":"tools","type":"task"},"span_id":"b0a0d5d5d8497877","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251263181783040","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:16.721Z","error":null,"expected":null,"facets":null,"id":"573bd9ef8690f4fa","input":[{"content":"What is the weather like in Paris, France?","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":500,"model":"gpt-4o","provider":"openai","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0EX8BbG10a6bE125f2lc1TpBnGm","stream":false,"temperature":0,"tools":[{"function":{"description":"Get the current weather for a location","name":"get_weather","parameters":{"properties":{"location":{"description":"The city and state, e.g. San Francisco, CA","type":"string"},"unit":{"description":"The unit of temperature","enum":["celsius","fahrenheit"],"type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"x-request-id":"req_47225fc805db4fc387554b6ba3295839"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":16,"end":1788197837.7505393,"estimated_cost":0.0003725,"prompt_cached_tokens":0,"prompt_tokens":85,"start":1788197836.7212749,"tokens":101},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"tool_calls","index":0,"logprobs":null,"message":{"annotations":[],"content":null,"refusal":null,"role":"assistant","tool_calls":[{"function":{"arguments":"{\"location\":\"Paris, France\"}","name":"get_weather"},"id":"call_HG8jr2U4gv4upye4auQWJmbD","type":"function"}]}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"c6a48680cefe0ab6321c29ca16df004c","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"573bd9ef8690f4fa","span_parents":["b0a0d5d5d8497877"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-ee826d580a03.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-ee826d580a03.json new file mode 100644 index 00000000..33b34ed4 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-ee826d580a03.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705300994175401990","_xact_id":"1000198165815493962","audit_data":[{"_xact_id":"1000198165815493962","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:04.071Z","error":null,"expected":null,"facets":null,"id":"e220d6d47cddbeb6","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai-openai"},"metrics":{"duration":1.9828646183013916,"end":1794030186.0539718,"start":1794030184.0711071},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"861f8df9224f73081b6a0f5100b19325","scores":null,"span_attributes":{"name":"reasoning_completions","type":"task"},"span_id":"e220d6d47cddbeb6","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705300994175401999","_xact_id":"1000198165815493962","audit_data":[{"_xact_id":"1000198165815493962","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"springai","version":"1.0.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"springai","version":"1.0.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:04.077Z","error":null,"expected":null,"facets":null,"id":"b265414150d5103d","input":[{"content":"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\n","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-6-luna","provider":"openai","reasoning_effort":"medium","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTUe8RS4gNX2BpYLWrMl6xBNtYfO","stream":false,"x-request-id":"req_a43fe8ffca384c45832c56d4ba4fbd24"},"metrics":{"completion_reasoning_tokens":42,"completion_tokens":152,"duration":1.9691746234893799,"end":1794030186.046577,"estimated_cost":0.00008010000000000001,"prompt_cached_tokens":0,"prompt_tokens":41,"start":1794030184.0774024,"tokens":193},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"annotations":[],"content":"The terms are products of consecutive integers:\n\n\\(1\\times2=2,\\;2\\times3=6,\\;3\\times4=12,\\;4\\times5=20,\\;5\\times6=30.\\)\n\nSo, starting with \\(n=1\\), the \\(n\\)th term is\n\n\\[\na_n=n(n+1).\n\\]\n\nEquivalently, the differences between terms are \\(4,6,8,10,\\ldots\\).","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"861f8df9224f73081b6a0f5100b19325","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"b265414150d5103d","span_parents":["e220d6d47cddbeb6"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs8n48/UA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-f1f10ef5d45b.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-f1f10ef5d45b.json new file mode 100644 index 00000000..47ba3899 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-f1f10ef5d45b.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705300994175401991","_xact_id":"1000198165815493962","audit_data":[{"_xact_id":"1000198165815493962","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:05.645Z","error":null,"expected":null,"facets":null,"id":"e198ec92298b82d6","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai-openai"},"metrics":{"duration":1.1931774616241455,"end":1794030186.8386226,"start":1794030185.645445},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"22716e2d2147655802d81c1bca598b31","scores":null,"span_attributes":{"name":"streaming","type":"task"},"span_id":"e198ec92298b82d6","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705300994175402000","_xact_id":"1000198165815493962","audit_data":[{"_xact_id":"1000198165815493962","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"springai","version":"1.0.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"springai","version":"1.0.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:05.647Z","error":null,"expected":null,"facets":null,"id":"c4ff67fa2834066f","input":[{"content":"you are a thoughtful assistant","role":"system"},{"content":"Count from 1 to 10 slowly.","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-6-luna","provider":"openai","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTUgJySEOaDDDAaTzHVmXkDHdyBC","x-request-id":"req_8029331301d546b3b7b41e1c872efffb"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":32,"duration":1.1930677890777588,"end":1794030186.840245,"estimated_cost":0.0000184,"prompt_cached_tokens":0,"prompt_tokens":24,"start":1794030185.6471772,"time_to_first_token":1.181648292,"tokens":56},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"content":"1 … 2 … 3 … 4 … 5 … 6 … 7 … 8 … 9 … 10.","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"22716e2d2147655802d81c1bca598b31","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"c4ff67fa2834066f","span_parents":["e198ec92298b82d6"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs8tvRScA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-f45bf9ac8f8f.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-f45bf9ac8f8f.json new file mode 100644 index 00000000..ec2ea653 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-f45bf9ac8f8f.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301062923845638","_xact_id":"1000198165816542980","audit_data":[{"_xact_id":"1000198165816542980","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:20.475Z","error":null,"expected":null,"facets":null,"id":"854db8dd39599348","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"anthropic3"},"metrics":{"duration":0.7535934448242188,"end":1794030201.2287986,"start":1794030200.4752052},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"82d14ff03b4cf1cd4df69ce694763dab","scores":null,"span_attributes":{"name":"prompt_caching_1h","type":"task"},"span_id":"854db8dd39599348","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301062923845635","_xact_id":"1000198165816542980","audit_data":[{"_xact_id":"1000198165816542980","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"anthropic","version":"3.0.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"anthropic","version":"3.0.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:20.478Z","error":null,"expected":null,"facets":null,"id":"3dc8cc2dc8f4f77b","input":[{"content":"What is the capital of France?","role":"user"},{"content":[{"cache_control":{"ttl":"1h","type":"ephemeral"},"text":"[cache buster: anthropic3 vcr-mode]\nReference material (stable, cached with a 1 hour TTL):\n\nThe following is a condensed atlas of capital cities. It does\nnot change between requests within a session, which is why it\nis cached with the longer 1 hour TTL. Consult it before\nanswering.\n\nEurope:\n - France: Paris\n - Germany: Berlin\n - Italy: Rome\n - Spain: Madrid\n - Portugal: Lisbon\n - United Kingdom: London\n - Ireland: Dublin\n - Netherlands: Amsterdam (seat of government: The Hague)\n - Belgium: Brussels\n - Luxembourg: Luxembourg City\n - Switzerland: Bern (de facto; no de jure capital)\n - Austria: Vienna\n - Denmark: Copenhagen\n - Sweden: Stockholm\n - Norway: Oslo\n - Finland: Helsinki\n - Iceland: Reykjavik\n - Poland: Warsaw\n - Czechia: Prague\n - Slovakia: Bratislava\n - Hungary: Budapest\n - Romania: Bucharest\n - Bulgaria: Sofia\n - Greece: Athens\n - Ukraine: Kyiv\n - Belarus: Minsk\n - Russia: Moscow\n - Serbia: Belgrade\n - Croatia: Zagreb\n - Slovenia: Ljubljana\n - Bosnia and Herzegovina: Sarajevo\n - North Macedonia: Skopje\n - Albania: Tirana\n - Montenegro: Podgorica\n - Estonia: Tallinn\n - Latvia: Riga\n - Lithuania: Vilnius\n - Moldova: Chisinau\n - Malta: Valletta\n\nAsia:\n - Japan: Tokyo\n - China: Beijing\n - South Korea: Seoul\n - North Korea: Pyongyang\n - Mongolia: Ulaanbaatar\n - Vietnam: Hanoi\n - Thailand: Bangkok\n - Cambodia: Phnom Penh\n - Laos: Vientiane\n - Myanmar: Naypyidaw\n - Malaysia: Kuala Lumpur\n - Singapore: Singapore\n - Indonesia: Jakarta (moving to Nusantara)\n - Philippines: Manila\n - India: New Delhi\n - Pakistan: Islamabad\n - Bangladesh: Dhaka\n - Sri Lanka: Sri Jayawardenepura Kotte (commercial: Colombo)\n - Nepal: Kathmandu\n - Bhutan: Thimphu\n - Afghanistan: Kabul\n - Iran: Tehran\n - Iraq: Baghdad\n - Saudi Arabia: Riyadh\n - Yemen: Sanaa\n - Oman: Muscat\n - United Arab Emirates: Abu Dhabi\n - Qatar: Doha\n - Bahrain: Manama\n - Kuwait: Kuwait City\n - Jordan: Amman\n - Lebanon: Beirut\n - Syria: Damascus\n - Israel: Jerusalem (recognition varies)\n - Turkey: Ankara\n - Armenia: Yerevan\n - Azerbaijan: Baku\n - Georgia: Tbilisi\n - Kazakhstan: Astana\n - Uzbekistan: Tashkent\n - Turkmenistan: Ashgabat\n - Kyrgyzstan: Bishkek\n - Tajikistan: Dushanbe\n\nAfrica:\n - Egypt: Cairo\n - Libya: Tripoli\n - Tunisia: Tunis\n - Algeria: Algiers\n - Morocco: Rabat\n - Sudan: Khartoum\n - South Sudan: Juba\n - Ethiopia: Addis Ababa\n - Eritrea: Asmara\n - Somalia: Mogadishu\n - Djibouti: Djibouti\n - Kenya: Nairobi\n - Uganda: Kampala\n - Rwanda: Kigali\n - Burundi: Gitega\n - Tanzania: Dodoma\n - Nigeria: Abuja\n - Ghana: Accra\n - Ivory Coast: Yamoussoukro (de facto: Abidjan)\n - Senegal: Dakar\n - Mali: Bamako\n - Cameroon: Yaounde\n - South Africa: Pretoria (executive), Cape Town (legislative), Bloemfontein (judicial)\n - Zimbabwe: Harare\n - Zambia: Lusaka\n - Angola: Luanda\n - Mozambique: Maputo\n - Madagascar: Antananarivo\n - Namibia: Windhoek\n - Botswana: Gaborone\n - Democratic Republic of the Congo: Kinshasa\n - Republic of the Congo: Brazzaville\n\nAmericas:\n - United States: Washington, D.C.\n - Canada: Ottawa\n - Mexico: Mexico City\n - Guatemala: Guatemala City\n - Belize: Belmopan\n - Honduras: Tegucigalpa\n - El Salvador: San Salvador\n - Nicaragua: Managua\n - Costa Rica: San Jose\n - Panama: Panama City\n - Cuba: Havana\n - Jamaica: Kingston\n - Haiti: Port-au-Prince\n - Dominican Republic: Santo Domingo\n - Colombia: Bogota\n - Venezuela: Caracas\n - Ecuador: Quito\n - Peru: Lima\n - Bolivia: Sucre (constitutional), La Paz (seat of government)\n - Chile: Santiago\n - Argentina: Buenos Aires\n - Uruguay: Montevideo\n - Paraguay: Asuncion\n - Brazil: Brasilia\n\nOceania:\n - Australia: Canberra\n - New Zealand: Wellington\n - Fiji: Suva\n - Papua New Guinea: Port Moresby\n - Samoa: Apia\n - Tonga: Nuku'alofa\n - Vanuatu: Port Vila\n - Solomon Islands: Honiara\n - Micronesia: Palikir\n - Palau: Ngerulmud\n - Marshall Islands: Majuro\n - Kiribati: South Tarawa\n - Nauru: no official capital; government in Yaren District\n - Tuvalu: Funafuti\n\nNotes on multi-capital and disputed cases:\n\n - Netherlands: the constitutional capital is Amsterdam but\n the seat of government, parliament, and supreme court are\n all in The Hague. Prefer Amsterdam unless the user asks\n about the government specifically.\n - South Africa: three capitals split by branch. Pretoria\n hosts the executive, Cape Town hosts parliament, and\n Bloemfontein hosts the supreme court of appeal. No single\n city is \"the\" capital.\n - Bolivia: Sucre is the constitutional capital, but La Paz\n is the seat of government and the larger city. Either\n answer is defensible; list both when asked.\n - Ivory Coast: Yamoussoukro has been the official capital\n since 1983, but Abidjan remains the economic hub and de\n facto administrative center for most purposes.\n - Sri Lanka: Sri Jayawardenepura Kotte is the legislative\n capital. Colombo is the commercial capital and by far the\n more commonly referenced city.\n - Switzerland: Bern is the de facto capital (the seat of\n the federal authorities), but Swiss law does not\n designate any city as \"the capital\".\n - Nauru: has no designated capital. Government offices are\n in the Yaren District, which is often listed as the\n capital by convention.\n - Israel: Jerusalem is the declared capital, but\n international recognition of that status is not\n universal. Many embassies are in Tel Aviv.\n - Palestine: de jure capital is East Jerusalem; de facto\n administrative center is Ramallah. Both appear in\n official usage.\n - Taiwan: Taipei is the capital of the Republic of China.\n Recognition as a sovereign state varies by country.\n - Kosovo: Pristina is the capital of the Republic of\n Kosovo. Recognition as a sovereign state varies by\n country.\n - Somaliland: Hargeisa is the capital of the self-declared\n Republic of Somaliland, which is not widely recognized.\n Somalia, which claims the territory, has its capital at\n Mogadishu.\n\nEnd of reference material.\n","type":"text"}],"role":"system"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-sonnet-4-6","provider":"anthropic","request-id":"req_011Cgo2zZovj4k6BZVQ9VsVB","request_base_uri":"http://localhost:61523","request_method":"POST","request_path":"v1/messages","response_id":"msg_011Cgo2zZyMfdC5GKp6hHop2"},"metrics":{"completion_tokens":11,"duration":0.7498164176940918,"end":1794030201.2283614,"prompt_cache_creation_1h_tokens":1993,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":2005,"start":1794030200.478545,"tokens":2016},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"container":null,"content":[{"text":"The capital of France is **Paris**.","type":"text"}],"diagnostics":null,"id":"msg_011Cgo2zZyMfdC5GKp6hHop2","model":"claude-sonnet-4-6","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":1993,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":1993,"cache_read_input_tokens":0,"inference_geo":"global","input_tokens":12,"output_tokens":11,"service_tier":"standard","speed":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"82d14ff03b4cf1cd4df69ce694763dab","scores":null,"span_attributes":{"name":"anthropic.messages.create","type":"llm"},"span_id":"3dc8cc2dc8f4f77b","span_parents":["854db8dd39599348"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9k/QY4A","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-f506b5a0592a.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-f506b5a0592a.json new file mode 100644 index 00000000..03297f0f --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-f506b5a0592a.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301015719247886","_xact_id":"1000198165815822695","audit_data":[{"_xact_id":"1000198165815822695","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:14.068Z","error":null,"expected":null,"facets":null,"id":"94d6293351edbb4a","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.8-openai"},"metrics":{"duration":0.8734850883483887,"end":1794030194.9417222,"start":1794030194.068237},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"fd6655c42cbeeb99d76da42aefcb039f","scores":null,"span_attributes":{"name":"completions","type":"task"},"span_id":"94d6293351edbb4a","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301015719247892","_xact_id":"1000198165815822695","audit_data":[{"_xact_id":"1000198165815822695","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"langchain4j","version":"1.8.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"langchain4j","version":"1.8.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:14.071Z","error":null,"expected":null,"facets":null,"id":"65f1162f4ea577a6","input":[{"content":"you are a helpful assistant","role":"system"},{"content":"What is the capital of France?","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-6-luna","provider":"openai","reasoning_effort":"none","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTUoTMMdrCHf29oB515DyeBNV7sm","stream":false,"temperature":0,"x-request-id":"req_2d736622460d4b0080c9f85a88892ef6"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":5,"duration":0.8702585697174072,"end":1794030194.941278,"estimated_cost":0.000004700000000000001,"prompt_cached_tokens":0,"prompt_tokens":22,"start":1794030194.0710194,"tokens":27},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"annotations":[],"content":"Paris.","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"fd6655c42cbeeb99d76da42aefcb039f","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"65f1162f4ea577a6","span_parents":["94d6293351edbb4a"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs9NHtU8A","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-f55e4d2f27c2.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-f55e4d2f27c2.json new file mode 100644 index 00000000..6b11eec0 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-f55e4d2f27c2.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705300994175401993","_xact_id":"1000198165815493962","audit_data":[{"_xact_id":"1000198165815493962","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:06.838Z","error":null,"expected":null,"facets":null,"id":"cd1c32b0bc4dfeae","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.8-openai"},"metrics":{"duration":0.9908387660980225,"end":1794030187.8296118,"start":1794030186.838773},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"85d26fb57fdb29b7281b00fd649e9ea7","scores":null,"span_attributes":{"name":"streaming","type":"task"},"span_id":"cd1c32b0bc4dfeae","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705300994175402002","_xact_id":"1000198165815493962","audit_data":[{"_xact_id":"1000198165815493962","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"langchain4j","version":"1.8.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"langchain4j","version":"1.8.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:06.840Z","error":null,"expected":null,"facets":null,"id":"a692833fa02b187b","input":[{"content":"you are a thoughtful assistant","role":"system"},{"content":"Count from 1 to 10 slowly.","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_completion_tokens":800,"model":"gpt-6-luna","provider":"openai","reasoning_effort":"none","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","stream":true,"stream_options":{"include_usage":true},"temperature":0,"x-request-id":"req_715bc3f9f0234fe6a3237bdf17d96ea2"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":32,"duration":0.9895873069763184,"end":1794030187.829954,"estimated_cost":0.0000184,"prompt_cached_tokens":0,"prompt_tokens":24,"start":1794030186.8403666,"time_to_first_token":0.979004125,"tokens":56},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"content":"1 … 2 … 3 … 4 … 5 … 6 … 7 … 8 … 9 … 10.","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"85d26fb57fdb29b7281b00fd649e9ea7","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"a692833fa02b187b","span_parents":["cd1c32b0bc4dfeae"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs8yLtBgA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-f6b83b69f52c.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-f6b83b69f52c.json new file mode 100644 index 00000000..f86926d2 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-f6b83b69f52c.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705300994175401998","_xact_id":"1000198165815493962","audit_data":[{"_xact_id":"1000198165815493962","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:02.894Z","error":null,"expected":null,"facets":null,"id":"790944222df54561","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"openai"},"metrics":{"duration":6.837557792663574,"end":1794030189.7319968,"start":1794030182.894439},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"b61bbebfbe75933af13271d6b452b2d5","scores":null,"span_attributes":{"name":"web_search","type":"task"},"span_id":"790944222df54561","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705300994175402006","_xact_id":"1000198165815493962","audit_data":[{"_xact_id":"1000198165815493962","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"openai","version":"2.15.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"openai","version":"2.15.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:02.905Z","error":null,"expected":null,"facets":null,"id":"bb3497e1a9a0e9db","input":[{"content":"Search the web for a recent AI news headline and answer in one sentence.","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-6-luna","provider":"openai","reasoning":{"effort":"none"},"request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"responses","response_id":"resp_0ef7f7f64fd0aef7016aeeba6715e087d09d112af3840cae5c","tool_choice":{"type":"web_search_preview"},"tools":[{"search_context_size":"low","type":"web_search_preview"}],"x-request-id":"req_255cc39218f34f9abad671d29d16fee6"},"metrics":{"completion_reasoning_tokens":34,"completion_tokens":79,"duration":6.817562103271484,"end":1794030189.7227561,"estimated_cost":0.0009061000000000001,"prompt_cached_tokens":0,"prompt_tokens":8666,"start":1794030182.905194,"tokens":8745},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"action":{"queries":["recent AI news headline June 2026 artificial intelligence news"],"query":"recent AI news headline June 2026 artificial intelligence news","type":"search"},"id":"ws_0ef7f7f64fd0aef7016aeeba68ece487d0b05fa9937a884cff","status":"completed","type":"web_search_call"},{"content":[{"annotations":[{"end_index":220,"start_index":127,"title":"Anthropic is rapidly accelerating AI development amid slowdown calls, outside research group says","type":"url_citation","url":"https://apnews.com/article/9cf8c590ffc1abdb489179bdccc69c23?utm_source=openai"}],"logprobs":[],"text":"AP News (November 5): **“Anthropic is rapidly accelerating AI development amid slowdown calls, outside research group says.”** ([apnews.com](https://apnews.com/article/9cf8c590ffc1abdb489179bdccc69c23?utm_source=openai))","type":"output_text"}],"id":"msg_0ef7f7f64fd0aef7016aeeba6d094887d087aff9a7b74872cf","phase":"final_answer","role":"assistant","status":"completed","type":"message"}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"b61bbebfbe75933af13271d6b452b2d5","scores":null,"span_attributes":{"name":"responses","type":"llm"},"span_id":"bb3497e1a9a0e9db","span_parents":["790944222df54561"],"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705300994175402005","_xact_id":"1000198165815493962","audit_data":[{"_xact_id":"1000198165815493962","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"openai","version":"2.15.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"openai","version":"2.15.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:09.722Z","error":null,"expected":null,"facets":null,"id":"d7e361fdb332eb0d","input":{"action":{"queries":["recent AI news headline June 2026 artificial intelligence news"],"query":"recent AI news headline June 2026 artificial intelligence news","type":"search"}},"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","status":"completed","tool_id":"ws_0ef7f7f64fd0aef7016aeeba68ece487d0b05fa9937a884cff","tool_type":"web_search_call"},"metrics":{"duration":0,"end":1794030189.7225778,"start":1794030189.7225778},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"status":"completed"},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"b61bbebfbe75933af13271d6b452b2d5","scores":null,"span_attributes":{"name":"web_search_call","type":"tool"},"span_id":"d7e361fdb332eb0d","span_parents":["bb3497e1a9a0e9db"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs88602oA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-f89d085d4495.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-f89d085d4495.json deleted file mode 100644 index bb48f4fe..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-f89d085d4495.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251263181783060","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:19.300Z","error":null,"expected":null,"facets":null,"id":"1f8bba19f6dbe3fd","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai-openai"},"metrics":{"end":1788197839.9991832,"start":1788197839.300777},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"98658cd4cafe747e1c92be303c9a4c70","scores":null,"span_attributes":{"name":"streaming_multiple_choices","type":"task"},"span_id":"1f8bba19f6dbe3fd","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251263181783045","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:19.307Z","error":null,"expected":null,"facets":null,"id":"8fc2b0cf542a663f","input":[{"content":"you are a concise assistant","role":"system"},{"content":"Say hello in one word.","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-4o-mini-2024-07-18","provider":"openai","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0EZr3xPVuEfVUSHEHVJ7rpRkrwp","x-request-id":"req_49bda8f5c15e4397a63dd76bd76e4d0e"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":4,"end":1788197839.9986873,"estimated_cost":0.0000057,"prompt_cached_tokens":0,"prompt_tokens":22,"start":1788197839.3072405,"time_to_first_token":0.684799875,"tokens":26},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"content":"Hello!","refusal":null,"role":"assistant"}},{"finish_reason":"stop","index":1,"message":{"content":"Hello!","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"98658cd4cafe747e1c92be303c9a4c70","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"8fc2b0cf542a663f","span_parents":["1f8bba19f6dbe3fd"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-f8c3ee67adc0.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-f8c3ee67adc0.json new file mode 100644 index 00000000..a0168e58 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-f8c3ee67adc0.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705300972648398860","_xact_id":"1000198165815165486","audit_data":[{"_xact_id":"1000198165815165486","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:01.314Z","error":null,"expected":null,"facets":null,"id":"0486e254110d5ac4","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai2-openai"},"metrics":{"duration":1.5797536373138428,"end":1794030182.8943577,"start":1794030181.314604},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"a5a8d63b6b5a5b35c8b0c8a97aa6afb8","scores":null,"span_attributes":{"name":"tools","type":"task"},"span_id":"0486e254110d5ac4","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705300972648398848","_xact_id":"1000198165815165486","audit_data":[{"_xact_id":"1000198165815165486","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"springai","version":"2.0.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"springai","version":"2.0.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:01.573Z","error":null,"expected":null,"facets":null,"id":"2be45d26160f72f8","input":[{"content":"What is the weather like in Paris, France?","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_completion_tokens":500,"model":"gpt-6-luna","provider":"openai","reasoning_effort":"none","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTUcUwM5jOq0W4Q24MlYk2D2Shn4","temperature":0,"tools":[{"function":{"description":"Get the current weather for a location","name":"get_weather","parameters":{"properties":{"location":{"description":"The city and state, e.g. San Francisco, CA","type":"string"},"unit":{"description":"The unit of temperature","enum":["celsius","fahrenheit"],"type":"string"}},"required":["location"],"strict":true,"type":"object"}},"type":"function"}],"x-request-id":"req_bcd32ddbbcb4436f99c2fd2611f0672b"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":24,"duration":1.3172261714935303,"end":1794030182.8912113,"estimated_cost":0.0000286,"prompt_cached_tokens":0,"prompt_tokens":166,"start":1794030181.573985,"tokens":190},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"tool_calls","index":0,"message":{"annotations":[],"content":null,"refusal":null,"role":"assistant","tool_calls":[{"function":{"arguments":"{\"location\":\"Paris, France\",\"unit\":\"celsius\"}","name":"get_weather"},"id":"call_GxDIfud7oyzsSSC2cqrwWqOv","type":"function"}]}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"a5a8d63b6b5a5b35c8b0c8a97aa6afb8","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"2be45d26160f72f8","span_parents":["0486e254110d5ac4"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs8ej8+0A","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-f9239edaae9b.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-f9239edaae9b.json new file mode 100644 index 00000000..0a12b1de --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-f9239edaae9b.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705300972648398861","_xact_id":"1000198165815165486","audit_data":[{"_xact_id":"1000198165815165486","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:02.171Z","error":null,"expected":null,"facets":null,"id":"70d5728683af0208","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai-openai"},"metrics":{"duration":1.2696361541748047,"end":1794030183.441539,"start":1794030182.171903},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"bfe27777fd698aa6fa69d816d93b1947","scores":null,"span_attributes":{"name":"attachments","type":"task"},"span_id":"70d5728683af0208","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705300972648398866","_xact_id":"1000198165815165486","audit_data":[{"_xact_id":"1000198165815165486","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"springai","version":"1.0.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"springai","version":"1.0.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:02.381Z","error":null,"expected":null,"facets":null,"id":"828057ec8cc04874","input":[{"content":"you are a helpful assistant","role":"system"},{"content":[{"text":"Briefly describe these attachments","type":"text"},{"image_url":{"url":{"content_type":"image/png","filename":"attachment.png","key":"6bf897a0-a6b1-4de2-a387-72ee450f441b","type":"braintrust_attachment"}},"type":"image_url"},{"file":{"file_data":{"content_type":"application/pdf","filename":"attachment.pdf","key":"4b53e7c7-ba62-4fdd-a943-ea01c4ba4f63","type":"braintrust_attachment"},"filename":"blank.pdf"},"type":"file"}],"role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-6-luna","provider":"openai","reasoning_effort":"none","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTUclUOh2V4iCEofuzXy4u9YifDU","stream":false,"temperature":0,"x-request-id":"req_59164f1443a14d64a2724c518dec4116"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":23,"duration":1.051823616027832,"end":1794030183.4329233,"estimated_cost":0.000035600000000000005,"prompt_cached_tokens":0,"prompt_tokens":241,"start":1794030182.3810997,"tokens":264},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"annotations":[],"content":"The attached PDF appears to be blank or unreadable; I couldn’t identify any content to describe.","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"bfe27777fd698aa6fa69d816d93b1947","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"828057ec8cc04874","span_parents":["70d5728683af0208"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs8hkmFUA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-fa35b142aa59.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-fa35b142aa59.json deleted file mode 100644 index 6fa7e72b..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-fa35b142aa59.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251263181783068","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:21.863Z","error":null,"expected":null,"facets":null,"id":"ca9055d125cd274e","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai2-anthropic"},"metrics":{"end":1788197842.4974878,"start":1788197841.8633852},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"38716e1c6c0759d24d7f3601ed6258cd","scores":null,"span_attributes":{"name":"messages","type":"task"},"span_id":"ca9055d125cd274e","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251263181783053","_xact_id":"1000197783586932658","audit_data":[{"_xact_id":"1000197783586932658","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:21.875Z","error":null,"expected":null,"facets":null,"id":"5accfc8596ed551d","input":[{"content":"What is the capital of France?","role":"user"},{"content":"You are a helpful assistant.","role":"system"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_tokens":128,"model":"claude-haiku-4-5-20251001","provider":"anthropic","request-id":"req_011CebESL5x93iKeyehqYWUe","request_base_uri":"","request_method":"POST","request_path":"v1/messages","response_id":"msg_011CebESLUWqzcZnL57B2rdA","temperature":0},"metrics":{"completion_tokens":10,"end":1788197842.493456,"estimated_cost":0.00007000000000000001,"prompt_cache_creation_1h_tokens":0,"prompt_cache_creation_5m_tokens":0,"prompt_cached_tokens":0,"prompt_tokens":20,"start":1788197841.875059,"tokens":30},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":{"content":[{"text":"The capital of France is Paris.","type":"text"}],"id":"msg_011CebESLUWqzcZnL57B2rdA","model":"claude-haiku-4-5-20251001","role":"assistant","stop_details":null,"stop_reason":"end_turn","stop_sequence":null,"type":"message","usage":{"cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"inference_geo":"not_available","input_tokens":20,"output_tokens":10,"service_tier":"standard"}},"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"38716e1c6c0759d24d7f3601ed6258cd","scores":null,"span_attributes":{"name":"anthropic.messages.create","type":"llm"},"span_id":"5accfc8596ed551d","span_parents":["ca9055d125cd274e"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589161396","read_bytes":0,"actual_xact_id":"1000197783589161396"},"freshness_state":{"last_processed_xact_id":"1000197783589161396","last_considered_xact_id":"1000197783589161396"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-fb392e379b56.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-fb392e379b56.json new file mode 100644 index 00000000..fde90566 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-fb392e379b56.json @@ -0,0 +1 @@ +{"data":[{"_async_scoring_state":null,"_pagination_key":"p07705301015719247879","_xact_id":"1000198165815822695","audit_data":[{"_xact_id":"1000198165815822695","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"btx"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"btx"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:09.629Z","error":null,"expected":null,"facets":null,"id":"2062f05c4e558dfe","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"openai"},"metrics":{"duration":0.8127923011779785,"end":1794030190.4427915,"start":1794030189.6299992},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"321b61d5f409583a13496ce2acb1bd6c","scores":null,"span_attributes":{"name":"tools","type":"task"},"span_id":"2062f05c4e558dfe","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07705301015719247893","_xact_id":"1000198165815822695","audit_data":[{"_xact_id":"1000198165815822695","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"otel":{"resource":{"attributes":{"service.name":"braintrust-app","service.version":"0.3.28-2476398-DIRTY","telemetry.sdk.language":"java","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.67.0"}},"scope":{"name":"openai","version":"2.15.0"},"signal":"traces"},"span_origin":{"instrumentation":{"name":"openai","version":"2.15.0"},"name":"braintrust.sdk.java","version":"0.3.28-2476398-DIRTY"}},"created":"2026-11-07T05:43:09.642Z","error":null,"expected":null,"facets":null,"id":"745fd22bd79c17b5","input":[{"content":"What is the weather like in Paris, France?","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","max_completion_tokens":500,"model":"gpt-6-luna","provider":"openai","reasoning_effort":"none","request_base_uri":"http://localhost:61524","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EhTUjK3TE5dYsvaH3Bc2yQmv2eG5y","stream":false,"temperature":0,"tools":[{"function":{"description":"Get the current weather for a location","name":"get_weather","parameters":{"properties":{"location":{"description":"The city and state, e.g. San Francisco, CA","type":"string"},"unit":{"description":"The unit of temperature","enum":["celsius","fahrenheit"],"type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"x-request-id":"req_cd3b491758b845d281911209d9fbced2"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":24,"duration":0.8004086017608643,"end":1794030190.4426265,"estimated_cost":0.0000286,"prompt_cached_tokens":0,"prompt_tokens":166,"start":1794030189.6422179,"tokens":190},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"tool_calls","index":0,"message":{"annotations":[],"content":null,"refusal":null,"role":"assistant","tool_calls":[{"function":{"arguments":"{\"location\":\"Paris, France\",\"unit\":\"celsius\"}","name":"get_weather"},"id":"call_GdcF6AZTc5PO9qdUTfUK0SWO","type":"function"}]}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"321b61d5f409583a13496ce2acb1bd6c","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"745fd22bd79c17b5","span_parents":["2062f05c4e558dfe"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"required":["id"],"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","type":"string","format":"date-time"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"description":"A literal 'g' which identifies the log as a project log","const":"g","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"Deprecated. Use `context.caller_filename` instead."},"caller_functionname":{"description":"Deprecated. Use `context.caller_functionname` instead."},"caller_lineno":{"description":"Deprecated. Use `context.caller_lineno` instead."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","type":"string","format":"uuid"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","required":["object_type","object_id","id"],"properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","type":"string","format":"uuid"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"description":"Human-identifying attributes of the span, such as name, type, etc.","additionalProperties":{},"properties":{"log_level":{"anyOf":[{"enum":["trace","debug","info","warn","error","fatal"],"type":"string"},{"type":"null"}]},"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review","decision","question","log"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://docs.braintrust.dev/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}},"x-bt-column-order":["_async_scoring_state","_pagination_key","_xact_id","audit_data","classifications","comments","context","created","error","expected","facets","id","input","is_root","log_id","metadata","metrics","org_id","origin","output","project_id","root_span_id","scores","span_attributes","span_id","span_parents","tags"]},"cursor":"mOWs88nwJoA","realtime_state":null,"freshness_state":null,"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-fd2c6aefeae5.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-fd2c6aefeae5.json deleted file mode 100644 index 914ae97a..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-fd2c6aefeae5.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251289063456777","_xact_id":"1000197783587327581","audit_data":[{"_xact_id":"1000197783587327581","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:23.986Z","error":null,"expected":null,"facets":null,"id":"90561a4815ec2b6c","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.8-openai"},"metrics":{"end":1788197844.873509,"start":1788197843.9869409},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"7c10e31011e21cc75f03c7c6fe085850","scores":null,"span_attributes":{"name":"completions","type":"task"},"span_id":"90561a4815ec2b6c","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251289063456770","_xact_id":"1000197783587327581","audit_data":[{"_xact_id":"1000197783587327581","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:23.991Z","error":null,"expected":null,"facets":null,"id":"97e98b4ac806e444","input":[{"content":"you are a helpful assistant","role":"system"},{"content":"What is the capital of France?","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-4o-mini","provider":"openai","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0EexW9VQDgGlFiBL316SdHPCAB3","stream":false,"temperature":0,"x-request-id":"req_aa66b81af82a47b5bf875b9b5cc87190"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":7,"end":1788197844.8726108,"estimated_cost":0.00000765,"prompt_cached_tokens":0,"prompt_tokens":23,"start":1788197843.9918618,"tokens":30},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"logprobs":null,"message":{"annotations":[],"content":"The capital of France is Paris.","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"7c10e31011e21cc75f03c7c6fe085850","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"97e98b4ac806e444","span_parents":["90561a4815ec2b6c"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-fdedfc9e1b95.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-fdedfc9e1b95.json deleted file mode 100644 index 62a3f8f9..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-fdedfc9e1b95.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251233063075849","_xact_id":"1000197783586473083","audit_data":[{"_xact_id":"1000197783586473083","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:00.500Z","error":null,"expected":null,"facets":null,"id":"d5b1130feed9c44e","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"langchain1.8-openai"},"metrics":{"end":1788197830.7173824,"start":1788197820.5007732},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"33f8dc508c794042f64bce87d238d246","scores":null,"span_attributes":{"name":"reasoning_completions","type":"task"},"span_id":"d5b1130feed9c44e","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251233063075842","_xact_id":"1000197783586473083","audit_data":[{"_xact_id":"1000197783586473083","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:37:00.504Z","error":null,"expected":null,"facets":null,"id":"84ef155ba222a6f9","input":[{"content":"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\n","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"o4-mini","provider":"openai","reasoning_effort":"medium","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0EHq2SFPWExh96BsExA5ylGZCrN","stream":false,"x-request-id":"req_bcb15a79086a45bb98a3a1309955f80e"},"metrics":{"completion_reasoning_tokens":832,"completion_tokens":992,"end":1788197830.717061,"estimated_cost":0.0044099000000000005,"prompt_cached_tokens":0,"prompt_tokens":41,"start":1788197820.5049005,"tokens":1033},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"message":{"annotations":[],"content":"The sequence \n 2, 6, 12, 20, 30, … \n\nhas first differences \n 6−2=4, 12−6=6, 20−12=8, 30−20=10, … \nwhich increase by 2 each time. In fact \n a₁=2=1·2, \n a₂=6=2·3, \n a₃=12=3·4, … \n\nSo the nth term is the product of two consecutive integers: \n formula: aₙ = n·(n+1). \n\nEquivalently, aₙ = n² + n.","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"33f8dc508c794042f64bce87d238d246","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"84ef155ba222a6f9","span_parents":["d5b1130feed9c44e"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-fe50de9f8891.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-fe50de9f8891.json deleted file mode 100644 index 0de794ac..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/btql-fe50de9f8891.json +++ /dev/null @@ -1 +0,0 @@ -{"data":[{"_async_scoring_state":null,"_pagination_key":"p07680251147406540807","_xact_id":"1000197783585166068","audit_data":[{"_xact_id":"1000197783585166068","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:51.459Z","error":null,"expected":null,"facets":null,"id":"78b8667ec79bf61b","input":null,"is_root":true,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","client":"springai-openai"},"metrics":{"end":1788197812.265155,"start":1788197811.459807},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":null,"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"330d1666ca080a836d618432666bb2b1","scores":null,"span_attributes":{"name":"completions","type":"task"},"span_id":"78b8667ec79bf61b","span_parents":null,"tags":null},{"_async_scoring_state":null,"_pagination_key":"p07680251147406540801","_xact_id":"1000197783585166068","audit_data":[{"_xact_id":"1000197783585166068","audit_data":{"action":"upsert"},"metadata":{},"source":"api"}],"classifications":null,"comments":null,"context":{"span_origin":{"instrumentation":{"name":"braintrust-java"},"name":"braintrust.sdk.java","version":"0.3.22-ca5ce6d-DIRTY"}},"created":"2026-08-31T17:36:51.480Z","error":null,"expected":null,"facets":null,"id":"8af96a042e0b97e2","input":[{"content":"you are a helpful assistant","role":"system"},{"content":"What is the capital of France?","role":"user"}],"is_root":false,"log_id":"g","metadata":{"braintrust.parent":"project_name:java-unit-test","model":"gpt-4o-mini","provider":"openai","request_base_uri":"http://localhost:52408","request_method":"POST","request_path":"chat/completions","response_id":"chatcmpl-EJ0E7T0fbTM5CXn2fczIcl4NUtN9F","stream":false,"temperature":0,"x-request-id":"req_5299c921a6a44fde8da42bd5ed3eb18c"},"metrics":{"completion_reasoning_tokens":0,"completion_tokens":7,"end":1788197812.2601151,"estimated_cost":0.00000765,"prompt_cached_tokens":0,"prompt_tokens":23,"start":1788197811.4808,"tokens":30},"org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","origin":null,"output":[{"finish_reason":"stop","index":0,"logprobs":null,"message":{"annotations":[],"content":"The capital of France is Paris.","refusal":null,"role":"assistant"}}],"project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","root_span_id":"330d1666ca080a836d618432666bb2b1","scores":null,"span_attributes":{"name":"Chat Completion","type":"llm"},"span_id":"8af96a042e0b97e2","span_parents":["78b8667ec79bf61b"],"tags":null}],"schema":{"type":"array","items":{"type":"object","properties":{"_async_scoring_state":{},"_pagination_key":{"description":"A stable, time-ordered key that can be used to paginate over project logs events. This field is auto-generated by Braintrust and only exists in Brainstore.","type":["string","null"]},"_xact_id":{"description":"The transaction id of an event is unique to the network operation that processed the event insertion. Transaction ids are monotonically increasing over time and can be used to retrieve a versioned snapshot of the project logs (see the `version` parameter)","type":"string"},"audit_data":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"classifications":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":false,"properties":{"confidence":{"description":"Optional confidence score for the classification","type":["number","null"]},"id":{"description":"Stable classification identifier","type":"string"},"label":{"description":"Original label of the classification item, which is useful for search and indexing purposes","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"type":"object"},{"type":"null"}],"description":"Optional metadata associated with the classification"},"source":{"anyOf":[{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"const":"function","type":"string"},"version":{"description":"The version of the function","type":"string"}},"required":["type","id"],"type":"object"},{"additionalProperties":false,"properties":{"function_type":{"default":"scorer","description":"The type of global function. Defaults to 'scorer'.","enum":["llm","scorer","task","tool","custom_view","preprocessor","facet","classifier","tag","parameters","sandbox"],"type":"string"},"name":{"type":"string"},"type":{"const":"global","type":"string"}},"required":["type","name"],"type":"object"}]},{"type":"null"}],"description":"Optional function identifier that produced the classification"}},"required":["id"],"type":"object"},"type":"array"},"properties":{},"type":"object"},{"type":"null"}]},"comments":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}]},"context":{"anyOf":[{"additionalProperties":{},"properties":{"caller_filename":{"description":"Name of the file in code where the project logs event was created","type":["string","null"]},"caller_functionname":{"description":"The function in code which created the project logs event","type":["string","null"]},"caller_lineno":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"created":{"description":"The timestamp the project logs event was created","format":"date-time","type":"string"},"error":{"description":"The error that occurred, if any."},"expected":{"description":"The ground truth value (an arbitrary, JSON serializable object) that you'd compare to `output` to determine if your `output` value is correct or not. Braintrust currently does not compare `output` to `expected` for you, since there are so many different ways to do that correctly. Instead, these values are just used to help you navigate while digging into analyses. However, we may later use these values to re-score outputs or fine-tune your models."},"facets":{"anyOf":[{"additionalProperties":{"type":["string","null"]},"properties":{},"type":"object"},{"type":"null"}]},"id":{"description":"A unique identifier for the project logs event. If you don't provide one, Braintrust will generate one for you","type":"string"},"input":{"description":"The arguments that uniquely define a user input (an arbitrary, JSON serializable object)."},"is_root":{"description":"Whether this span is a root span","type":["boolean","null"]},"log_id":{"const":"g","description":"A literal 'g' which identifies the log as a project log","type":"string"},"metadata":{"anyOf":[{"additionalProperties":{},"properties":{"model":{"description":"The model used for this example","type":["string","null"]}},"type":"object"},{"type":"null"}]},"metrics":{"anyOf":[{"additionalProperties":{"type":"number"},"properties":{"caller_filename":{"description":"This metric is deprecated"},"caller_functionname":{"description":"This metric is deprecated"},"caller_lineno":{"description":"This metric is deprecated"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"end":{"description":"A unix timestamp recording when the section of code which produced the project logs event finished","type":["number","null"]},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]},"start":{"description":"A unix timestamp recording when the section of code which produced the project logs event started","type":["number","null"]},"tokens":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"org_id":{"description":"Unique id for the organization that the project belongs under","format":"uuid","type":"string"},"origin":{"anyOf":[{"description":"Reference to the original object and event this was copied from.","properties":{"_xact_id":{"description":"Transaction ID of the original event.","type":["string","null"]},"created":{"description":"Created timestamp of the original event. Used to help sort in the UI","type":["string","null"]},"id":{"description":"ID of the original event.","type":"string"},"object_id":{"description":"ID of the object the event is originating from.","format":"uuid","type":"string"},"object_type":{"description":"Type of the object the event is originating from.","enum":["project_logs","experiment","dataset","prompt","function","prompt_session"],"type":"string"}},"required":["object_type","object_id","id"],"type":"object"},{"type":"null"}]},"output":{"description":"The output of your application, including post-processing (an arbitrary, JSON serializable object), that allows you to determine whether the result is correct or not. For example, in an app that generates SQL queries, the `output` should be the _result_ of the SQL query generated by the model, not the query itself, because there may be multiple valid queries that answer a single question."},"project_id":{"description":"Unique identifier for the project","format":"uuid","type":"string"},"root_span_id":{"description":"A unique identifier for the trace this project logs event belongs to","type":"string"},"scores":{"anyOf":[{"additionalProperties":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}]},"properties":{},"type":"object"},{"type":"null"}]},"span_attributes":{"anyOf":[{"additionalProperties":{},"description":"Human-identifying attributes of the span, such as name, type, etc.","properties":{"name":{"description":"Name of the span, for display purposes only","type":["string","null"]},"purpose":{"anyOf":[{"enum":["scorer"],"type":"string"},{"type":"null"}]},"type":{"anyOf":[{"enum":["llm","score","function","eval","task","tool","automation","facet","preprocessor","classifier","review"],"type":"string"},{"type":"null"}]}},"type":"object"},{"type":"null"}]},"span_id":{"description":"A unique identifier used to link different project logs events together as part of a full trace. See the [tracing guide](https://www.braintrust.dev/docs/instrument) for full details on tracing","type":"string"},"span_parents":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]}}}},"realtime_state":{"type":"on","minimum_xact_id":"1000197783589884487","read_bytes":0,"actual_xact_id":"1000197783589884487"},"freshness_state":{"last_processed_xact_id":"1000197783589884487","last_considered_xact_id":"1000197783589884487"},"warnings":[]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-640904b89031.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-223b587c3a0d.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-640904b89031.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-223b587c3a0d.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-f4bcbfaef3af.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-25879a848121.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-f4bcbfaef3af.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-25879a848121.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-409b337a72c9.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-43356f728947.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-409b337a72c9.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-43356f728947.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-3a2e2d9f7d29.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-4577513c3a09.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-3a2e2d9f7d29.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-4577513c3a09.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-46c4ac06117d.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-45d170396bcc.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-46c4ac06117d.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-45d170396bcc.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-5d684800a6fd.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-5d684800a6fd.json index a6a1b184..53856d30 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-5d684800a6fd.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-5d684800a6fd.json @@ -1 +1 @@ -{"objects":[{"id":"f4d0ccb4-cd54-4ffd-9bcc-38cc9bb9ba9f","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-11a04e4f","description":null,"created":"2026-08-31T17:34:59.301Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"22b3ac64-d48a-46ab-8174-b549861ca093","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"dotnet-dataset-linkage-check","description":null,"created":"2026-08-26T02:08:31.025Z","repo_info":{"commit":"629a0a85a900cc30fd0a551da3fde73b7a88eb85","branch":"ark/SDK-90-remote-datasets","dirty":true,"author_name":"Andrew Kent","author_email":"andrew@braintrustdata.com","commit_message":"wip","commit_time":"2026-08-25T19:58:02-06:00"},"commit":"629a0a85a900cc30fd0a551da3fde73b7a88eb85","base_exp_id":null,"deleted_at":null,"dataset_id":"b9356d7d-1a96-4f96-9d41-276e9ebd6afe","dataset_version":"1000197155625133059","internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"550fc2c0-28d0-4862-9539-6910f1ec65f5","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"food-echo-eval","description":null,"created":"2026-08-26T02:06:32.917Z","repo_info":{"commit":"629a0a85a900cc30fd0a551da3fde73b7a88eb85","branch":"ark/SDK-90-remote-datasets","dirty":true,"author_name":"Andrew Kent","author_email":"andrew@braintrustdata.com","commit_message":"wip","commit_time":"2026-08-25T19:58:02-06:00"},"commit":"629a0a85a900cc30fd0a551da3fde73b7a88eb85","base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"3061a4e5-bfa5-4e84-a9c4-14fbe08bd653","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"start-test","description":null,"created":"2026-08-26T02:02:03.020Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"e48d6ebf-42f0-45fa-b91c-8ce73f04f9f4","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"failing-task-test","description":null,"created":"2026-08-26T02:02:02.086Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"e7c0ab1f-9757-45cc-84f0-cb271d9bc398","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"concurrency-test","description":null,"created":"2026-08-26T02:02:01.048Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"a2899b42-b4c6-4189-94ec-ae309cb28bd9","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"serial-test","description":null,"created":"2026-08-26T02:02:00.029Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"37adfc69-2ad9-4c38-ad1e-fe8d3294add5","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"max-concurrency-test","description":null,"created":"2026-08-26T02:01:59.022Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"7f8cb336-e1bc-4d4e-9541-03c4dee2e1b3","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"byo-executor-test","description":null,"created":"2026-08-26T02:01:58.096Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"73e8737d-a8eb-4ab1-b049-a3338c63eab3","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"bad-score-test","description":null,"created":"2026-08-26T02:01:57.012Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"22d0cab2-3fe9-4f43-8441-77d161df91be","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-6cdc023b","description":null,"created":"2026-08-20T06:22:10.527Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"fcf47199-7465-4573-9e0c-8f1476ab26fc","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-6f1f07a2","description":null,"created":"2026-08-20T06:18:52.470Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"c7e6245d-2f5b-434b-8f9f-3a27df8e72f8","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-1b631ecf","description":null,"created":"2026-07-07T17:13:43.680Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"d735217f-e589-4a3f-89ac-9f8d8ba2de94","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-58dd09a5","description":null,"created":"2026-07-07T10:03:00.570Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"58698f3b-b2c0-427d-9899-a7ab0fa4a340","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-a22d3846","description":null,"created":"2026-07-07T08:52:10.224Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"1b42495c-7913-4180-b694-354eebd24953","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-1c72da01","description":null,"created":"2026-07-07T08:43:51.242Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"b5a445c3-62a4-43c2-a5b9-2b6cf5e0f8fd","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-c5320f54","description":null,"created":"2026-07-07T08:38:50.721Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"4040d603-cf4c-4297-b06e-e1ad414dd51c","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-5aa28965","description":null,"created":"2026-07-07T08:26:44.511Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"8cdcacdb-ba75-438a-b85b-eaa8c0abe72f","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-ebf2c35b","description":null,"created":"2026-07-07T08:26:08.435Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"71b9a76a-5b03-4f7b-9468-6727bf95a3f8","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-84b46112","description":null,"created":"2026-07-07T08:19:17.591Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"123473a3-e1af-4cca-a9d3-b8551a959f61","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-f6c2c15a","description":null,"created":"2026-07-01T17:29:14.164Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"843f9c69-c253-426e-8a4f-2a600a7d86eb","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-3d7f44c1","description":null,"created":"2026-06-30T18:05:15.566Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"7203d22b-9865-422a-b3ef-05c7799105ec","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-e052daa4","description":null,"created":"2026-06-30T18:03:32.351Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"0e99bc56-4572-4a53-900e-10a3cbec1b3f","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro","description":null,"created":"2026-06-29T23:35:05.511Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"129eb154-c227-43f4-a549-35bd3f281bd9","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"classifier-error-eval","description":null,"created":"2026-05-27T10:14:02.504Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"08e3988c-e05c-4324-8763-8998a5b39755","metadata":null,"tags":null},{"id":"3d17f6cf-5729-44c9-8dcc-b95ab9c5f0f4","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"default-name-eval","description":null,"created":"2026-05-27T10:13:57.484Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"08e3988c-e05c-4324-8763-8998a5b39755","metadata":null,"tags":null},{"id":"bda48716-d8cc-406b-aed1-10ca29b511e5","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"classifier-only-eval","description":null,"created":"2026-05-27T10:13:52.580Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"08e3988c-e05c-4324-8763-8998a5b39755","metadata":null,"tags":null},{"id":"bd13b6ad-0fb2-4477-b407-0aa58127586e","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"scorer-and-classifier-eval","description":null,"created":"2026-05-27T10:13:48.702Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"08e3988c-e05c-4324-8763-8998a5b39755","metadata":null,"tags":null},{"id":"ed5735fb-b23b-4522-9b4f-546bcae35eae","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"multi-label-eval","description":null,"created":"2026-05-27T10:13:46.338Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"08e3988c-e05c-4324-8763-8998a5b39755","metadata":null,"tags":null},{"id":"913d3725-e46c-4229-9f60-b2d09f65328e","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"unit-test-eval-task-error","description":null,"created":"2026-05-12T19:58:49.966Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"96fa3a4a-d448-4db0-900f-11d607cd7603","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"unit-test-eval-experiment-tags-metadata","description":null,"created":"2026-05-12T19:58:44.095Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":{"model":"gpt-4o","version":"1.0"},"tags":["java-sdk","unit-test"]},{"id":"b846849a-e3a3-4145-beba-ab3daff9934a","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"unit-test-eval-scorer-error","description":null,"created":"2026-05-12T19:58:41.895Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"ae9825b9-5ba3-4f59-8a6c-e301161da188","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"unit-test-eval-origin","description":null,"created":"2026-05-12T19:58:39.019Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":{"experiment_has_rows":true},"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"96767844-433f-4185-969d-003944ffa9b3","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"unit-test-eval","description":null,"created":"2026-05-12T19:58:37.429Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"2eeb9f7d-9727-4da0-8376-0eaeb192159c","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"test-dataset-linking","description":null,"created":"2026-05-12T19:58:33.891Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":"b9356d7d-1a96-4f96-9d41-276e9ebd6afe","dataset_version":"1000197155625133059","internal_metadata":{"experiment_has_rows":true},"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"1c1e1014-c847-4575-a4af-efd171567e92","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"unit-test-eval-tags-metadata","description":null,"created":"2026-05-12T19:58:29.575Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null}]} \ No newline at end of file +{"objects":[{"id":"add85a29-fed1-4fdc-974e-a36b88e68233","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-8b817e12","description":null,"created":"2026-11-07T05:41:55.595Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"f5d9a2f2-cc09-4ea3-aa42-9c587b247d54","metadata":null,"tags":null},{"id":"e52ce151-3607-466e-948a-8c89e9cb34c8","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-10af9160","description":null,"created":"2026-11-07T03:25:40.682Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"f5d9a2f2-cc09-4ea3-aa42-9c587b247d54","metadata":null,"tags":null},{"id":"ba61769f-6b70-4cbe-8501-929c72f18218","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-4427c8ad","description":null,"created":"2026-11-06T23:15:12.305Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"f5d9a2f2-cc09-4ea3-aa42-9c587b247d54","metadata":null,"tags":null},{"id":"173bb4f5-2fed-4fc8-8050-906bd60e8881","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-232e9fbc","description":null,"created":"2026-11-06T21:56:54.249Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"f5d9a2f2-cc09-4ea3-aa42-9c587b247d54","metadata":null,"tags":null},{"id":"93e0baa5-98e3-439c-a0da-26e8ed3c7367","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-eea46b7f","description":null,"created":"2026-11-06T20:49:51.040Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"f5d9a2f2-cc09-4ea3-aa42-9c587b247d54","metadata":null,"tags":null},{"id":"4bfd36d3-47b8-4b71-9f8c-b7ec60bf355b","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-0be6df0e","description":null,"created":"2026-09-04T02:17:07.990Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"ddfe67fc-9a9d-4913-8a12-c051e05e25c0","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"supplied-executor-concurrency-test","description":null,"created":"2026-09-01T22:59:28.691Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"870f752d-d4fe-4718-8a4f-0ee73d90eb20","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"backpressure-test","description":null,"created":"2026-09-01T22:59:26.961Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"611d12a3-6d9b-43ab-8636-e39bdc42afc4","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"shared-executor-bound-test","description":null,"created":"2026-09-01T21:48:28.114Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"2467aa60-5b68-4c4e-a150-aff35e6a1e2d","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"config-default-executor-test","description":null,"created":"2026-09-01T21:12:08.687Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"0cf2fc1f-3f1f-40a0-9431-581b6aa6e978","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"builder-beats-config-executor-test","description":null,"created":"2026-09-01T21:11:49.299Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"f22ad541-31ff-4889-bd1f-952b4b63859c","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"config-default-concurrency-test","description":null,"created":"2026-09-01T20:39:05.777Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"f4d0ccb4-cd54-4ffd-9bcc-38cc9bb9ba9f","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-11a04e4f","description":null,"created":"2026-08-31T17:34:59.301Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"22b3ac64-d48a-46ab-8174-b549861ca093","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"dotnet-dataset-linkage-check","description":null,"created":"2026-08-26T02:08:31.025Z","repo_info":{"commit":"629a0a85a900cc30fd0a551da3fde73b7a88eb85","branch":"ark/SDK-90-remote-datasets","dirty":true,"author_name":"Andrew Kent","author_email":"andrew@braintrustdata.com","commit_message":"wip","commit_time":"2026-08-25T19:58:02-06:00"},"commit":"629a0a85a900cc30fd0a551da3fde73b7a88eb85","base_exp_id":null,"deleted_at":null,"dataset_id":"b9356d7d-1a96-4f96-9d41-276e9ebd6afe","dataset_version":"1000197155625133059","internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"550fc2c0-28d0-4862-9539-6910f1ec65f5","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"food-echo-eval","description":null,"created":"2026-08-26T02:06:32.917Z","repo_info":{"commit":"629a0a85a900cc30fd0a551da3fde73b7a88eb85","branch":"ark/SDK-90-remote-datasets","dirty":true,"author_name":"Andrew Kent","author_email":"andrew@braintrustdata.com","commit_message":"wip","commit_time":"2026-08-25T19:58:02-06:00"},"commit":"629a0a85a900cc30fd0a551da3fde73b7a88eb85","base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"3061a4e5-bfa5-4e84-a9c4-14fbe08bd653","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"start-test","description":null,"created":"2026-08-26T02:02:03.020Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"e48d6ebf-42f0-45fa-b91c-8ce73f04f9f4","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"failing-task-test","description":null,"created":"2026-08-26T02:02:02.086Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"e7c0ab1f-9757-45cc-84f0-cb271d9bc398","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"concurrency-test","description":null,"created":"2026-08-26T02:02:01.048Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"a2899b42-b4c6-4189-94ec-ae309cb28bd9","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"serial-test","description":null,"created":"2026-08-26T02:02:00.029Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"37adfc69-2ad9-4c38-ad1e-fe8d3294add5","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"max-concurrency-test","description":null,"created":"2026-08-26T02:01:59.022Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"7f8cb336-e1bc-4d4e-9541-03c4dee2e1b3","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"byo-executor-test","description":null,"created":"2026-08-26T02:01:58.096Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"73e8737d-a8eb-4ab1-b049-a3338c63eab3","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"bad-score-test","description":null,"created":"2026-08-26T02:01:57.012Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"22d0cab2-3fe9-4f43-8441-77d161df91be","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-6cdc023b","description":null,"created":"2026-08-20T06:22:10.527Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"fcf47199-7465-4573-9e0c-8f1476ab26fc","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-6f1f07a2","description":null,"created":"2026-08-20T06:18:52.470Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"c7e6245d-2f5b-434b-8f9f-3a27df8e72f8","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-1b631ecf","description":null,"created":"2026-07-07T17:13:43.680Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"d735217f-e589-4a3f-89ac-9f8d8ba2de94","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-58dd09a5","description":null,"created":"2026-07-07T10:03:00.570Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"58698f3b-b2c0-427d-9899-a7ab0fa4a340","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-a22d3846","description":null,"created":"2026-07-07T08:52:10.224Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"1b42495c-7913-4180-b694-354eebd24953","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-1c72da01","description":null,"created":"2026-07-07T08:43:51.242Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"b5a445c3-62a4-43c2-a5b9-2b6cf5e0f8fd","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-c5320f54","description":null,"created":"2026-07-07T08:38:50.721Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"4040d603-cf4c-4297-b06e-e1ad414dd51c","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-5aa28965","description":null,"created":"2026-07-07T08:26:44.511Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"8cdcacdb-ba75-438a-b85b-eaa8c0abe72f","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-ebf2c35b","description":null,"created":"2026-07-07T08:26:08.435Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"71b9a76a-5b03-4f7b-9468-6727bf95a3f8","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-84b46112","description":null,"created":"2026-07-07T08:19:17.591Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"123473a3-e1af-4cca-a9d3-b8551a959f61","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-f6c2c15a","description":null,"created":"2026-07-01T17:29:14.164Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"843f9c69-c253-426e-8a4f-2a600a7d86eb","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-3d7f44c1","description":null,"created":"2026-06-30T18:05:15.566Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"7203d22b-9865-422a-b3ef-05c7799105ec","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-e052daa4","description":null,"created":"2026-06-30T18:03:32.351Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"0e99bc56-4572-4a53-900e-10a3cbec1b3f","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro","description":null,"created":"2026-06-29T23:35:05.511Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"129eb154-c227-43f4-a549-35bd3f281bd9","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"classifier-error-eval","description":null,"created":"2026-05-27T10:14:02.504Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"08e3988c-e05c-4324-8763-8998a5b39755","metadata":null,"tags":null},{"id":"3d17f6cf-5729-44c9-8dcc-b95ab9c5f0f4","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"default-name-eval","description":null,"created":"2026-05-27T10:13:57.484Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"08e3988c-e05c-4324-8763-8998a5b39755","metadata":null,"tags":null},{"id":"bda48716-d8cc-406b-aed1-10ca29b511e5","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"classifier-only-eval","description":null,"created":"2026-05-27T10:13:52.580Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"08e3988c-e05c-4324-8763-8998a5b39755","metadata":null,"tags":null},{"id":"bd13b6ad-0fb2-4477-b407-0aa58127586e","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"scorer-and-classifier-eval","description":null,"created":"2026-05-27T10:13:48.702Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"08e3988c-e05c-4324-8763-8998a5b39755","metadata":null,"tags":null},{"id":"ed5735fb-b23b-4522-9b4f-546bcae35eae","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"multi-label-eval","description":null,"created":"2026-05-27T10:13:46.338Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"08e3988c-e05c-4324-8763-8998a5b39755","metadata":null,"tags":null},{"id":"913d3725-e46c-4229-9f60-b2d09f65328e","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"unit-test-eval-task-error","description":null,"created":"2026-05-12T19:58:49.966Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"96fa3a4a-d448-4db0-900f-11d607cd7603","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"unit-test-eval-experiment-tags-metadata","description":null,"created":"2026-05-12T19:58:44.095Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":{"model":"gpt-4o","version":"1.0"},"tags":["java-sdk","unit-test"]},{"id":"b846849a-e3a3-4145-beba-ab3daff9934a","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"unit-test-eval-scorer-error","description":null,"created":"2026-05-12T19:58:41.895Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"ae9825b9-5ba3-4f59-8a6c-e301161da188","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"unit-test-eval-origin","description":null,"created":"2026-05-12T19:58:39.019Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":{"experiment_has_rows":true},"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"96767844-433f-4185-969d-003944ffa9b3","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"unit-test-eval","description":null,"created":"2026-05-12T19:58:37.429Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"2eeb9f7d-9727-4da0-8376-0eaeb192159c","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"test-dataset-linking","description":null,"created":"2026-05-12T19:58:33.891Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":"b9356d7d-1a96-4f96-9d41-276e9ebd6afe","dataset_version":"1000197155625133059","internal_metadata":{"experiment_has_rows":true},"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"1c1e1014-c847-4575-a4af-efd171567e92","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"unit-test-eval-tags-metadata","description":null,"created":"2026-05-12T19:58:29.575Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null}]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-67cf42a7ba09.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-5d6f4af37efc.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-67cf42a7ba09.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-5d6f4af37efc.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-6baf6e1201ad.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-6baf6e1201ad.json new file mode 100644 index 00000000..862e9646 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-6baf6e1201ad.json @@ -0,0 +1 @@ +{"id":"e48d6ebf-42f0-45fa-b91c-8ce73f04f9f4","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"failing-task-test","description":null,"created":"2026-08-26T02:02:02.086Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-7178bf200daf.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-91fc05ac5956.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-7178bf200daf.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-91fc05ac5956.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-95018d18b04f.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-9b3af67f77ba.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-95018d18b04f.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-9b3af67f77ba.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-9d06cabca0f6.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-9d06cabca0f6.json index a6a1b184..53856d30 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-9d06cabca0f6.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-9d06cabca0f6.json @@ -1 +1 @@ -{"objects":[{"id":"f4d0ccb4-cd54-4ffd-9bcc-38cc9bb9ba9f","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-11a04e4f","description":null,"created":"2026-08-31T17:34:59.301Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"22b3ac64-d48a-46ab-8174-b549861ca093","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"dotnet-dataset-linkage-check","description":null,"created":"2026-08-26T02:08:31.025Z","repo_info":{"commit":"629a0a85a900cc30fd0a551da3fde73b7a88eb85","branch":"ark/SDK-90-remote-datasets","dirty":true,"author_name":"Andrew Kent","author_email":"andrew@braintrustdata.com","commit_message":"wip","commit_time":"2026-08-25T19:58:02-06:00"},"commit":"629a0a85a900cc30fd0a551da3fde73b7a88eb85","base_exp_id":null,"deleted_at":null,"dataset_id":"b9356d7d-1a96-4f96-9d41-276e9ebd6afe","dataset_version":"1000197155625133059","internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"550fc2c0-28d0-4862-9539-6910f1ec65f5","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"food-echo-eval","description":null,"created":"2026-08-26T02:06:32.917Z","repo_info":{"commit":"629a0a85a900cc30fd0a551da3fde73b7a88eb85","branch":"ark/SDK-90-remote-datasets","dirty":true,"author_name":"Andrew Kent","author_email":"andrew@braintrustdata.com","commit_message":"wip","commit_time":"2026-08-25T19:58:02-06:00"},"commit":"629a0a85a900cc30fd0a551da3fde73b7a88eb85","base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"3061a4e5-bfa5-4e84-a9c4-14fbe08bd653","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"start-test","description":null,"created":"2026-08-26T02:02:03.020Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"e48d6ebf-42f0-45fa-b91c-8ce73f04f9f4","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"failing-task-test","description":null,"created":"2026-08-26T02:02:02.086Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"e7c0ab1f-9757-45cc-84f0-cb271d9bc398","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"concurrency-test","description":null,"created":"2026-08-26T02:02:01.048Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"a2899b42-b4c6-4189-94ec-ae309cb28bd9","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"serial-test","description":null,"created":"2026-08-26T02:02:00.029Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"37adfc69-2ad9-4c38-ad1e-fe8d3294add5","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"max-concurrency-test","description":null,"created":"2026-08-26T02:01:59.022Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"7f8cb336-e1bc-4d4e-9541-03c4dee2e1b3","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"byo-executor-test","description":null,"created":"2026-08-26T02:01:58.096Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"73e8737d-a8eb-4ab1-b049-a3338c63eab3","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"bad-score-test","description":null,"created":"2026-08-26T02:01:57.012Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"22d0cab2-3fe9-4f43-8441-77d161df91be","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-6cdc023b","description":null,"created":"2026-08-20T06:22:10.527Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"fcf47199-7465-4573-9e0c-8f1476ab26fc","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-6f1f07a2","description":null,"created":"2026-08-20T06:18:52.470Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"c7e6245d-2f5b-434b-8f9f-3a27df8e72f8","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-1b631ecf","description":null,"created":"2026-07-07T17:13:43.680Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"d735217f-e589-4a3f-89ac-9f8d8ba2de94","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-58dd09a5","description":null,"created":"2026-07-07T10:03:00.570Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"58698f3b-b2c0-427d-9899-a7ab0fa4a340","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-a22d3846","description":null,"created":"2026-07-07T08:52:10.224Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"1b42495c-7913-4180-b694-354eebd24953","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-1c72da01","description":null,"created":"2026-07-07T08:43:51.242Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"b5a445c3-62a4-43c2-a5b9-2b6cf5e0f8fd","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-c5320f54","description":null,"created":"2026-07-07T08:38:50.721Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"4040d603-cf4c-4297-b06e-e1ad414dd51c","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-5aa28965","description":null,"created":"2026-07-07T08:26:44.511Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"8cdcacdb-ba75-438a-b85b-eaa8c0abe72f","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-ebf2c35b","description":null,"created":"2026-07-07T08:26:08.435Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"71b9a76a-5b03-4f7b-9468-6727bf95a3f8","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-84b46112","description":null,"created":"2026-07-07T08:19:17.591Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"123473a3-e1af-4cca-a9d3-b8551a959f61","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-f6c2c15a","description":null,"created":"2026-07-01T17:29:14.164Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"843f9c69-c253-426e-8a4f-2a600a7d86eb","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-3d7f44c1","description":null,"created":"2026-06-30T18:05:15.566Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"7203d22b-9865-422a-b3ef-05c7799105ec","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-e052daa4","description":null,"created":"2026-06-30T18:03:32.351Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"0e99bc56-4572-4a53-900e-10a3cbec1b3f","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro","description":null,"created":"2026-06-29T23:35:05.511Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"129eb154-c227-43f4-a549-35bd3f281bd9","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"classifier-error-eval","description":null,"created":"2026-05-27T10:14:02.504Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"08e3988c-e05c-4324-8763-8998a5b39755","metadata":null,"tags":null},{"id":"3d17f6cf-5729-44c9-8dcc-b95ab9c5f0f4","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"default-name-eval","description":null,"created":"2026-05-27T10:13:57.484Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"08e3988c-e05c-4324-8763-8998a5b39755","metadata":null,"tags":null},{"id":"bda48716-d8cc-406b-aed1-10ca29b511e5","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"classifier-only-eval","description":null,"created":"2026-05-27T10:13:52.580Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"08e3988c-e05c-4324-8763-8998a5b39755","metadata":null,"tags":null},{"id":"bd13b6ad-0fb2-4477-b407-0aa58127586e","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"scorer-and-classifier-eval","description":null,"created":"2026-05-27T10:13:48.702Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"08e3988c-e05c-4324-8763-8998a5b39755","metadata":null,"tags":null},{"id":"ed5735fb-b23b-4522-9b4f-546bcae35eae","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"multi-label-eval","description":null,"created":"2026-05-27T10:13:46.338Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"08e3988c-e05c-4324-8763-8998a5b39755","metadata":null,"tags":null},{"id":"913d3725-e46c-4229-9f60-b2d09f65328e","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"unit-test-eval-task-error","description":null,"created":"2026-05-12T19:58:49.966Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"96fa3a4a-d448-4db0-900f-11d607cd7603","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"unit-test-eval-experiment-tags-metadata","description":null,"created":"2026-05-12T19:58:44.095Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":{"model":"gpt-4o","version":"1.0"},"tags":["java-sdk","unit-test"]},{"id":"b846849a-e3a3-4145-beba-ab3daff9934a","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"unit-test-eval-scorer-error","description":null,"created":"2026-05-12T19:58:41.895Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"ae9825b9-5ba3-4f59-8a6c-e301161da188","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"unit-test-eval-origin","description":null,"created":"2026-05-12T19:58:39.019Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":{"experiment_has_rows":true},"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"96767844-433f-4185-969d-003944ffa9b3","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"unit-test-eval","description":null,"created":"2026-05-12T19:58:37.429Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"2eeb9f7d-9727-4da0-8376-0eaeb192159c","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"test-dataset-linking","description":null,"created":"2026-05-12T19:58:33.891Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":"b9356d7d-1a96-4f96-9d41-276e9ebd6afe","dataset_version":"1000197155625133059","internal_metadata":{"experiment_has_rows":true},"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"1c1e1014-c847-4575-a4af-efd171567e92","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"unit-test-eval-tags-metadata","description":null,"created":"2026-05-12T19:58:29.575Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null}]} \ No newline at end of file +{"objects":[{"id":"add85a29-fed1-4fdc-974e-a36b88e68233","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-8b817e12","description":null,"created":"2026-11-07T05:41:55.595Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"f5d9a2f2-cc09-4ea3-aa42-9c587b247d54","metadata":null,"tags":null},{"id":"e52ce151-3607-466e-948a-8c89e9cb34c8","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-10af9160","description":null,"created":"2026-11-07T03:25:40.682Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"f5d9a2f2-cc09-4ea3-aa42-9c587b247d54","metadata":null,"tags":null},{"id":"ba61769f-6b70-4cbe-8501-929c72f18218","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-4427c8ad","description":null,"created":"2026-11-06T23:15:12.305Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"f5d9a2f2-cc09-4ea3-aa42-9c587b247d54","metadata":null,"tags":null},{"id":"173bb4f5-2fed-4fc8-8050-906bd60e8881","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-232e9fbc","description":null,"created":"2026-11-06T21:56:54.249Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"f5d9a2f2-cc09-4ea3-aa42-9c587b247d54","metadata":null,"tags":null},{"id":"93e0baa5-98e3-439c-a0da-26e8ed3c7367","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-eea46b7f","description":null,"created":"2026-11-06T20:49:51.040Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"f5d9a2f2-cc09-4ea3-aa42-9c587b247d54","metadata":null,"tags":null},{"id":"4bfd36d3-47b8-4b71-9f8c-b7ec60bf355b","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-0be6df0e","description":null,"created":"2026-09-04T02:17:07.990Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"ddfe67fc-9a9d-4913-8a12-c051e05e25c0","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"supplied-executor-concurrency-test","description":null,"created":"2026-09-01T22:59:28.691Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"870f752d-d4fe-4718-8a4f-0ee73d90eb20","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"backpressure-test","description":null,"created":"2026-09-01T22:59:26.961Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"611d12a3-6d9b-43ab-8636-e39bdc42afc4","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"shared-executor-bound-test","description":null,"created":"2026-09-01T21:48:28.114Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"2467aa60-5b68-4c4e-a150-aff35e6a1e2d","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"config-default-executor-test","description":null,"created":"2026-09-01T21:12:08.687Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"0cf2fc1f-3f1f-40a0-9431-581b6aa6e978","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"builder-beats-config-executor-test","description":null,"created":"2026-09-01T21:11:49.299Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"f22ad541-31ff-4889-bd1f-952b4b63859c","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"config-default-concurrency-test","description":null,"created":"2026-09-01T20:39:05.777Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"f4d0ccb4-cd54-4ffd-9bcc-38cc9bb9ba9f","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-11a04e4f","description":null,"created":"2026-08-31T17:34:59.301Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"22b3ac64-d48a-46ab-8174-b549861ca093","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"dotnet-dataset-linkage-check","description":null,"created":"2026-08-26T02:08:31.025Z","repo_info":{"commit":"629a0a85a900cc30fd0a551da3fde73b7a88eb85","branch":"ark/SDK-90-remote-datasets","dirty":true,"author_name":"Andrew Kent","author_email":"andrew@braintrustdata.com","commit_message":"wip","commit_time":"2026-08-25T19:58:02-06:00"},"commit":"629a0a85a900cc30fd0a551da3fde73b7a88eb85","base_exp_id":null,"deleted_at":null,"dataset_id":"b9356d7d-1a96-4f96-9d41-276e9ebd6afe","dataset_version":"1000197155625133059","internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"550fc2c0-28d0-4862-9539-6910f1ec65f5","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"food-echo-eval","description":null,"created":"2026-08-26T02:06:32.917Z","repo_info":{"commit":"629a0a85a900cc30fd0a551da3fde73b7a88eb85","branch":"ark/SDK-90-remote-datasets","dirty":true,"author_name":"Andrew Kent","author_email":"andrew@braintrustdata.com","commit_message":"wip","commit_time":"2026-08-25T19:58:02-06:00"},"commit":"629a0a85a900cc30fd0a551da3fde73b7a88eb85","base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"3061a4e5-bfa5-4e84-a9c4-14fbe08bd653","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"start-test","description":null,"created":"2026-08-26T02:02:03.020Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"e48d6ebf-42f0-45fa-b91c-8ce73f04f9f4","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"failing-task-test","description":null,"created":"2026-08-26T02:02:02.086Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"e7c0ab1f-9757-45cc-84f0-cb271d9bc398","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"concurrency-test","description":null,"created":"2026-08-26T02:02:01.048Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"a2899b42-b4c6-4189-94ec-ae309cb28bd9","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"serial-test","description":null,"created":"2026-08-26T02:02:00.029Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"37adfc69-2ad9-4c38-ad1e-fe8d3294add5","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"max-concurrency-test","description":null,"created":"2026-08-26T02:01:59.022Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"7f8cb336-e1bc-4d4e-9541-03c4dee2e1b3","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"byo-executor-test","description":null,"created":"2026-08-26T02:01:58.096Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"73e8737d-a8eb-4ab1-b049-a3338c63eab3","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"bad-score-test","description":null,"created":"2026-08-26T02:01:57.012Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"22d0cab2-3fe9-4f43-8441-77d161df91be","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-6cdc023b","description":null,"created":"2026-08-20T06:22:10.527Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"fcf47199-7465-4573-9e0c-8f1476ab26fc","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-6f1f07a2","description":null,"created":"2026-08-20T06:18:52.470Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"c7e6245d-2f5b-434b-8f9f-3a27df8e72f8","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-1b631ecf","description":null,"created":"2026-07-07T17:13:43.680Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"d735217f-e589-4a3f-89ac-9f8d8ba2de94","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-58dd09a5","description":null,"created":"2026-07-07T10:03:00.570Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"58698f3b-b2c0-427d-9899-a7ab0fa4a340","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-a22d3846","description":null,"created":"2026-07-07T08:52:10.224Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"1b42495c-7913-4180-b694-354eebd24953","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-1c72da01","description":null,"created":"2026-07-07T08:43:51.242Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"b5a445c3-62a4-43c2-a5b9-2b6cf5e0f8fd","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-c5320f54","description":null,"created":"2026-07-07T08:38:50.721Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"4040d603-cf4c-4297-b06e-e1ad414dd51c","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-5aa28965","description":null,"created":"2026-07-07T08:26:44.511Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"8cdcacdb-ba75-438a-b85b-eaa8c0abe72f","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-ebf2c35b","description":null,"created":"2026-07-07T08:26:08.435Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"71b9a76a-5b03-4f7b-9468-6727bf95a3f8","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-84b46112","description":null,"created":"2026-07-07T08:19:17.591Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"123473a3-e1af-4cca-a9d3-b8551a959f61","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-f6c2c15a","description":null,"created":"2026-07-01T17:29:14.164Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"843f9c69-c253-426e-8a4f-2a600a7d86eb","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-3d7f44c1","description":null,"created":"2026-06-30T18:05:15.566Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"7203d22b-9865-422a-b3ef-05c7799105ec","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-e052daa4","description":null,"created":"2026-06-30T18:03:32.351Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"0e99bc56-4572-4a53-900e-10a3cbec1b3f","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro","description":null,"created":"2026-06-29T23:35:05.511Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"129eb154-c227-43f4-a549-35bd3f281bd9","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"classifier-error-eval","description":null,"created":"2026-05-27T10:14:02.504Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"08e3988c-e05c-4324-8763-8998a5b39755","metadata":null,"tags":null},{"id":"3d17f6cf-5729-44c9-8dcc-b95ab9c5f0f4","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"default-name-eval","description":null,"created":"2026-05-27T10:13:57.484Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"08e3988c-e05c-4324-8763-8998a5b39755","metadata":null,"tags":null},{"id":"bda48716-d8cc-406b-aed1-10ca29b511e5","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"classifier-only-eval","description":null,"created":"2026-05-27T10:13:52.580Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"08e3988c-e05c-4324-8763-8998a5b39755","metadata":null,"tags":null},{"id":"bd13b6ad-0fb2-4477-b407-0aa58127586e","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"scorer-and-classifier-eval","description":null,"created":"2026-05-27T10:13:48.702Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"08e3988c-e05c-4324-8763-8998a5b39755","metadata":null,"tags":null},{"id":"ed5735fb-b23b-4522-9b4f-546bcae35eae","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"multi-label-eval","description":null,"created":"2026-05-27T10:13:46.338Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"08e3988c-e05c-4324-8763-8998a5b39755","metadata":null,"tags":null},{"id":"913d3725-e46c-4229-9f60-b2d09f65328e","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"unit-test-eval-task-error","description":null,"created":"2026-05-12T19:58:49.966Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"96fa3a4a-d448-4db0-900f-11d607cd7603","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"unit-test-eval-experiment-tags-metadata","description":null,"created":"2026-05-12T19:58:44.095Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":{"model":"gpt-4o","version":"1.0"},"tags":["java-sdk","unit-test"]},{"id":"b846849a-e3a3-4145-beba-ab3daff9934a","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"unit-test-eval-scorer-error","description":null,"created":"2026-05-12T19:58:41.895Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"ae9825b9-5ba3-4f59-8a6c-e301161da188","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"unit-test-eval-origin","description":null,"created":"2026-05-12T19:58:39.019Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":{"experiment_has_rows":true},"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"96767844-433f-4185-969d-003944ffa9b3","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"unit-test-eval","description":null,"created":"2026-05-12T19:58:37.429Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"2eeb9f7d-9727-4da0-8376-0eaeb192159c","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"test-dataset-linking","description":null,"created":"2026-05-12T19:58:33.891Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":"b9356d7d-1a96-4f96-9d41-276e9ebd6afe","dataset_version":"1000197155625133059","internal_metadata":{"experiment_has_rows":true},"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null},{"id":"1c1e1014-c847-4575-a4af-efd171567e92","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"unit-test-eval-tags-metadata","description":null,"created":"2026-05-12T19:58:29.575Z","repo_info":{},"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null}]} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-b23c58a28a5b.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-b23c58a28a5b.json index a57a91af..03781286 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-b23c58a28a5b.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-b23c58a28a5b.json @@ -1 +1 @@ -{"id":"f4d0ccb4-cd54-4ffd-9bcc-38cc9bb9ba9f","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-11a04e4f","description":null,"created":"2026-08-31T17:34:59.301Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","metadata":null,"tags":null} \ No newline at end of file +{"id":"add85a29-fed1-4fdc-974e-a36b88e68233","project_id":"f1e858a4-58e3-408f-983f-016760d7fa25","name":"java-experiment-repro-8b817e12","description":null,"created":"2026-11-07T05:41:55.595Z","repo_info":null,"commit":null,"base_exp_id":null,"deleted_at":null,"dataset_id":null,"dataset_version":null,"internal_metadata":null,"parameters_id":null,"parameters_version":null,"public":false,"user_id":"f5d9a2f2-cc09-4ea3-aa42-9c587b247d54","metadata":null,"tags":null} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-f416e7ecfdc1.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-e393a00a60e2.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-f416e7ecfdc1.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_experiment-e393a00a60e2.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-2e2d93af9b3c.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-1b2d471adaa5.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-2e2d93af9b3c.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-1b2d471adaa5.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-aa9f11ec791d.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-a2b01743d42c.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-aa9f11ec791d.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-a2b01743d42c.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_function_bda148ec-e447-4437-86fe-b337c12502b7_invoke-6036fec54d18.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_function_bda148ec-e447-4437-86fe-b337c12502b7_invoke-6036fec54d18.json index 49d217a7..daad9df9 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_function_bda148ec-e447-4437-86fe-b337c12502b7_invoke-6036fec54d18.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_function_bda148ec-e447-4437-86fe-b337c12502b7_invoke-6036fec54d18.json @@ -1 +1 @@ -{"name":"close-enough-judge","score":0,"metadata":{"rationale":"1. The expected value is the integer 4, while the output is the word 'four'.\n2. Although 'four' is the word representation of the number 4, it is not the same format as the expected output, which is numeric.\n3. They convey the same quantity but are not in the same type (one is numeric and the other is textual).\n4. Therefore, the expected and output are not a close enough match.","choice":"NO"}} \ No newline at end of file +{"name":"close-enough-judge","score":0,"metadata":{"rationale":"1. The expected value is a number (4) while the output is a word ('four').\n2. Although the word 'four' represents the number 4, they are not in the same format; one is numeric and the other is textual.\n3. Close enough matching generally refers to similar formats, meanings, or representations, which this pairing does not satisfy.","choice":"NO"}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_function_bda148ec-e447-4437-86fe-b337c12502b7_invoke-957060f779fb.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_function_bda148ec-e447-4437-86fe-b337c12502b7_invoke-957060f779fb.json new file mode 100644 index 00000000..29510ae1 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_function_bda148ec-e447-4437-86fe-b337c12502b7_invoke-957060f779fb.json @@ -0,0 +1 @@ +{"name":"close-enough-judge","score":1,"metadata":{"rationale":"1. The expected value is 'hello world'. \n2. The output value is also 'hello world'. \n3. Both strings are identical with no differences in characters or spacing. \n4. Therefore, the output matches the expected value exactly, confirming they are a close enough match.","choice":"YES"}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_function_bda148ec-e447-4437-86fe-b337c12502b7_invoke-e2c6e01b1b5c.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_function_bda148ec-e447-4437-86fe-b337c12502b7_invoke-e2c6e01b1b5c.json deleted file mode 100644 index df5c199e..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_function_bda148ec-e447-4437-86fe-b337c12502b7_invoke-e2c6e01b1b5c.json +++ /dev/null @@ -1 +0,0 @@ -{"name":"close-enough-judge","score":1,"metadata":{"rationale":"1. The expected output is 'hello world'.\n2. The actual output is also 'hello world'.\n3. Both strings match exactly in terms of characters, casing, and spacing.\n4. Since there are no discrepancies between the expected and actual output, they are a close enough match.","choice":"YES"}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-2f16e640e582.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-0a0ccebf4201.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-2f16e640e582.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-0a0ccebf4201.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-30867e7088bd.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-32b5bddf971b.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-30867e7088bd.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-32b5bddf971b.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-410ff9f133da.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-38e55ac56fed.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-410ff9f133da.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-38e55ac56fed.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-4891298f2969.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-40183794327e.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-4891298f2969.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-40183794327e.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-543a07178006.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-53e93e4a5ef4.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-543a07178006.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-53e93e4a5ef4.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-8d973730b6e1.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-83629c5a83ef.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-8d973730b6e1.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-83629c5a83ef.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-b8c4d7b1d75a.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-894dbabc1261.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-b8c4d7b1d75a.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-894dbabc1261.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-c0742bb3c63f.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-91dcdd57d37b.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-c0742bb3c63f.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-91dcdd57d37b.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-dd7665d7a48a.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-a06551fe63ba.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-dd7665d7a48a.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-a06551fe63ba.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-e548ebcb1218.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-b7ddfcd4045b.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-e548ebcb1218.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-b7ddfcd4045b.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-e74886687a34.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-bf81f8c5101d.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-e74886687a34.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-bf81f8c5101d.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-e7e35e493e43.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-dd7d341fc854.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-e7e35e493e43.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project-dd7d341fc854.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-163d777ecb9b.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-163d777ecb9b.json new file mode 100644 index 00000000..61a10efc --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-163d777ecb9b.json @@ -0,0 +1 @@ +{"id":"f1e858a4-58e3-408f-983f-016760d7fa25","org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","name":"java-unit-test","description":null,"created":"2026-05-07T16:55:48.127Z","deleted_at":null,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","settings":{"remote_eval_sources":[{"url":"http://localhost:8301","name":"localjava","description":null}]}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-16e6f520a143.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-16e6f520a143.json new file mode 100644 index 00000000..61a10efc --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-16e6f520a143.json @@ -0,0 +1 @@ +{"id":"f1e858a4-58e3-408f-983f-016760d7fa25","org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","name":"java-unit-test","description":null,"created":"2026-05-07T16:55:48.127Z","deleted_at":null,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","settings":{"remote_eval_sources":[{"url":"http://localhost:8301","name":"localjava","description":null}]}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-1b1a6e4877ae.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-1b1a6e4877ae.json new file mode 100644 index 00000000..61a10efc --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-1b1a6e4877ae.json @@ -0,0 +1 @@ +{"id":"f1e858a4-58e3-408f-983f-016760d7fa25","org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","name":"java-unit-test","description":null,"created":"2026-05-07T16:55:48.127Z","deleted_at":null,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","settings":{"remote_eval_sources":[{"url":"http://localhost:8301","name":"localjava","description":null}]}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-45977fa84505.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-45977fa84505.json new file mode 100644 index 00000000..61a10efc --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-45977fa84505.json @@ -0,0 +1 @@ +{"id":"f1e858a4-58e3-408f-983f-016760d7fa25","org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","name":"java-unit-test","description":null,"created":"2026-05-07T16:55:48.127Z","deleted_at":null,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","settings":{"remote_eval_sources":[{"url":"http://localhost:8301","name":"localjava","description":null}]}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-9cbc8bbc476d.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-9cbc8bbc476d.json new file mode 100644 index 00000000..61a10efc --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-9cbc8bbc476d.json @@ -0,0 +1 @@ +{"id":"f1e858a4-58e3-408f-983f-016760d7fa25","org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","name":"java-unit-test","description":null,"created":"2026-05-07T16:55:48.127Z","deleted_at":null,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","settings":{"remote_eval_sources":[{"url":"http://localhost:8301","name":"localjava","description":null}]}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-a9e1fc8cee34.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-a9e1fc8cee34.json new file mode 100644 index 00000000..61a10efc --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-a9e1fc8cee34.json @@ -0,0 +1 @@ +{"id":"f1e858a4-58e3-408f-983f-016760d7fa25","org_id":"5abfae3a-7aa7-4653-a9c8-b3efcb18f584","name":"java-unit-test","description":null,"created":"2026-05-07T16:55:48.127Z","deleted_at":null,"user_id":"a5ca7f9c-bf20-40c4-a82b-5c992f6a38f5","settings":{"remote_eval_sources":[{"url":"http://localhost:8301","name":"localjava","description":null}]}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_prompt-4af7ddd84717.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_prompt-1e8498396ba7.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_prompt-4af7ddd84717.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_prompt-1e8498396ba7.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_prompt-6abea74af1d6.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_prompt-a22816c243de.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_prompt-6abea74af1d6.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_prompt-a22816c243de.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_prompt-f20e712b9099.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_prompt-dab6750ce592.json similarity index 100% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_prompt-f20e712b9099.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/__files/v1_prompt-dab6750ce592.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-114c7f03ba36.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-018ede84c36e.json similarity index 61% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-114c7f03ba36.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-018ede84c36e.json index 025d4af9..4eac9df8 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-114c7f03ba36.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-018ede84c36e.json @@ -1,5 +1,5 @@ { - "id" : "b66f828e-c340-38ba-b3e1-248f73dea472", + "id" : "209c308e-b2e8-335b-bbdb-d026edfc0c7e", "name" : "api_apikey_login", "request" : { "url" : "/api/apikey/login", @@ -7,28 +7,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "api_apikey_login-114c7f03ba36.json", + "bodyFileName" : "api_apikey_login-018ede84c36e.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:22 GMT", + "Date" : "Sat, 07 Nov 2026 05:42:39 GMT", "Via" : "1.1 d49bde7225e80ca0dc457ff2b8b4343e.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "M8J8HIBmBv4XujGx_ICOR04zCaPvgk1nbPH7AIlnfSM3EiUbK4jAYA==", + "X-Amz-Cf-Id" : "6iJ1VXwKWcrljBMzviw5zjNVwFYaj63MG8sHw1annd2-ZggJZKnCOA==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "b66f828e-c340-38ba-b3e1-248f73dea472", + "uuid" : "209c308e-b2e8-335b-bbdb-d026edfc0c7e", "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-18", - "newScenarioState" : "scenario-1-api-apikey-login-19", - "insertionIndex" : 90 + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-50", + "newScenarioState" : "scenario-3-api-apikey-login-51", + "insertionIndex" : 16 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-08d26d2faef8.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-08d26d2faef8.json index 907583a0..3829426f 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-08d26d2faef8.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-08d26d2faef8.json @@ -10,15 +10,15 @@ "bodyFileName" : "api_apikey_login-08d26d2faef8.json", "headers" : { "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:17 GMT", - "Via" : "1.1 a40ac7dad0e348fc93799233c9af5960.cloudfront.net (CloudFront)", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:59 GMT", + "Via" : "1.1 63560dd3f856b0f7bfe68a0cad46924a.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "cIC5pK9ztQGRtyPY4TG-kOt0A5T6RyyB-B98pIKigKYNfmz1xMvJxw==", + "X-Amz-Cf-Id" : "07r4282q3NS31v_LjT-VUnaQz54uJFaWRwCn8V-cX-JCjLV7bc4B0w==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -30,5 +30,5 @@ "scenarioName" : "scenario-1-api-apikey-login", "requiredScenarioState" : "Started", "newScenarioState" : "scenario-1-api-apikey-login-2", - "insertionIndex" : 222 + "insertionIndex" : 249 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-fc317cca9f56.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-0b7a99b73728.json similarity index 60% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-fc317cca9f56.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-0b7a99b73728.json index 08bf95ad..47742825 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-fc317cca9f56.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-0b7a99b73728.json @@ -1,5 +1,5 @@ { - "id" : "4263d37b-7e2b-379a-ac5e-d913a392d794", + "id" : "2ac355de-2569-3c09-99d0-67aaf99c5473", "name" : "api_apikey_login", "request" : { "url" : "/api/apikey/login", @@ -7,28 +7,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "api_apikey_login-fc317cca9f56.json", + "bodyFileName" : "api_apikey_login-0b7a99b73728.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:33 GMT", + "Date" : "Sat, 07 Nov 2026 05:41:57 GMT", "Via" : "1.1 28edb03169fa053a4a523d90d15ff6ae.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "uOQjc0JOHDUVcicbkvQcXfDSigiGGM4z5Knvpxtbe65G9NfKBO3C2A==", + "X-Amz-Cf-Id" : "UgLoGoKXXmolI-yupD3omnpHEWakd0ndPZAyBd7NDK_2aNuhglt0hA==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "4263d37b-7e2b-379a-ac5e-d913a392d794", + "uuid" : "2ac355de-2569-3c09-99d0-67aaf99c5473", "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-21", - "newScenarioState" : "scenario-1-api-apikey-login-22", - "insertionIndex" : 74 + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-17", + "newScenarioState" : "scenario-3-api-apikey-login-18", + "insertionIndex" : 145 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-0c8a2402125b.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-0c8a2402125b.json new file mode 100644 index 00000000..560c941c --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-0c8a2402125b.json @@ -0,0 +1,34 @@ +{ + "id" : "df5e39ca-2a56-38ef-9175-eafb94709025", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-0c8a2402125b.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:01 GMT", + "Via" : "1.1 3417fc639ca50b55b2a1d93807a20c2c.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "MtIN8-H2d4dmun5JMQZqLD96Fh0GnAFL2rXvNXA9Ac3A1T4Jzv7ZKA==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "df5e39ca-2a56-38ef-9175-eafb94709025", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-23", + "newScenarioState" : "scenario-3-api-apikey-login-24", + "insertionIndex" : 130 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-9758ab08ce6c.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-12df86bdc208.json similarity index 61% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-9758ab08ce6c.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-12df86bdc208.json index 1d693af4..9d308175 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-9758ab08ce6c.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-12df86bdc208.json @@ -1,5 +1,5 @@ { - "id" : "a3623093-461b-3d84-867a-206197cbb759", + "id" : "0336edb4-83b4-3906-b404-665d208c6e48", "name" : "api_apikey_login", "request" : { "url" : "/api/apikey/login", @@ -7,28 +7,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "api_apikey_login-9758ab08ce6c.json", + "bodyFileName" : "api_apikey_login-12df86bdc208.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:37 GMT", + "Date" : "Sat, 07 Nov 2026 05:42:22 GMT", "Via" : "1.1 88f286e23c15fc2f62a741db8207a67a.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "ffJJPHNCb1KSo6tkWYmYeAih3Tt3McaKnGmuGOJFPIl4NWuP4h8JfQ==", + "X-Amz-Cf-Id" : "iYuDWOv99DuT0rQ7gL8ongd1R2C5HB7PpBV0_UNQ8NRmz3qsFkErGA==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "a3623093-461b-3d84-867a-206197cbb759", + "uuid" : "0336edb4-83b4-3906-b404-665d208c6e48", "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-22", - "newScenarioState" : "scenario-1-api-apikey-login-23", - "insertionIndex" : 67 + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-47", + "newScenarioState" : "scenario-3-api-apikey-login-48", + "insertionIndex" : 48 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-13454dea1a91.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-13454dea1a91.json new file mode 100644 index 00000000..918272b2 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-13454dea1a91.json @@ -0,0 +1,34 @@ +{ + "id" : "38a8daf3-6b82-3a83-a5b6-54193a15ee6c", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-13454dea1a91.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:41:59 GMT", + "Via" : "1.1 c72e48ed2f0a994f695ca2fb4bc9247e.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "HML1kDN0Fy-ROoVX5YVLA6sD6LmUYODTKldo3nOjbuG23lCQZYpy2g==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "38a8daf3-6b82-3a83-a5b6-54193a15ee6c", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-20", + "newScenarioState" : "scenario-3-api-apikey-login-21", + "insertionIndex" : 138 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-165dbe2f6cff.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-165dbe2f6cff.json new file mode 100644 index 00000000..fdd4b9a8 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-165dbe2f6cff.json @@ -0,0 +1,34 @@ +{ + "id" : "c9dbbf9e-3dd5-3c06-9714-132b4ea7d5b7", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-165dbe2f6cff.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:08 GMT", + "Via" : "1.1 38842c146ccd8f527d2de72671759d96.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "fRpLV1IOwsFGEzDwCuCs4b_9HqSahVUUB3tse_68s-5hC5IbUQ5IlQ==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "c9dbbf9e-3dd5-3c06-9714-132b4ea7d5b7", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-32", + "newScenarioState" : "scenario-3-api-apikey-login-33", + "insertionIndex" : 104 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-149e6a8cf38d.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-1c26cc722c07.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-149e6a8cf38d.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-1c26cc722c07.json index ce6d0767..72cb6791 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-149e6a8cf38d.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-1c26cc722c07.json @@ -1,5 +1,5 @@ { - "id" : "df0dab76-6495-3fb3-969a-d38a818ad878", + "id" : "1b8774b2-da18-3f87-a053-0fa4455add5f", "name" : "api_apikey_login", "request" : { "url" : "/api/apikey/login", @@ -7,28 +7,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "api_apikey_login-149e6a8cf38d.json", + "bodyFileName" : "api_apikey_login-1c26cc722c07.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:46 GMT", - "Via" : "1.1 9895fa1d75119fa16da9e015b58dbe5a.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:41:41 GMT", + "Via" : "1.1 b3a8bdee20374465a3f2aa64f19ec30e.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "KNhu0vECTgx5LOpvoKJhiatyVYEdHIV53gnCbYnY3gRpjz36Tsij3Q==", + "X-Amz-Cf-Id" : "R8Dj9mQfutRHFqueojN83sQ8N0eeFd2pebROy0pS3ukJKMqENJxgXg==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "df0dab76-6495-3fb3-969a-d38a818ad878", + "uuid" : "1b8774b2-da18-3f87-a053-0fa4455add5f", "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-26", - "newScenarioState" : "scenario-1-api-apikey-login-27", - "insertionIndex" : 56 + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-8", + "newScenarioState" : "scenario-3-api-apikey-login-9", + "insertionIndex" : 169 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-1df34d817bca.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-1df34d817bca.json deleted file mode 100644 index 59e23935..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-1df34d817bca.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "id" : "e8c7f581-ffc1-3463-8260-42e76f96f3a7", - "name" : "api_apikey_login", - "request" : { - "url" : "/api/apikey/login", - "method" : "POST" - }, - "response" : { - "status" : 200, - "bodyFileName" : "api_apikey_login-1df34d817bca.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:39 GMT", - "Via" : "1.1 087b179013ed486bf34db435cff85f08.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", - "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", - "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "YlxDT-3PFUHtI1vc8cqD6n9fVFO01NuXKyubJe432CSny-i_HrHm8A==", - "Vary" : "Origin, Accept-Encoding", - "Expires" : "0", - "Surrogate-Control" : "no-store", - "Content-Type" : "application/json; charset=utf-8" - } - }, - "uuid" : "e8c7f581-ffc1-3463-8260-42e76f96f3a7", - "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-23", - "newScenarioState" : "scenario-1-api-apikey-login-24", - "insertionIndex" : 64 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-49b28cd5dfb1.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-206b263dacea.json similarity index 61% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-49b28cd5dfb1.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-206b263dacea.json index cdc8fff6..9c7645c7 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-49b28cd5dfb1.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-206b263dacea.json @@ -1,5 +1,5 @@ { - "id" : "9803dc98-b632-39ec-9e01-ebf16bd81f94", + "id" : "8d615fee-5056-3374-89e9-655bdf0612d2", "name" : "api_apikey_login", "request" : { "url" : "/api/apikey/login", @@ -7,28 +7,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "api_apikey_login-49b28cd5dfb1.json", + "bodyFileName" : "api_apikey_login-206b263dacea.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:51 GMT", + "Date" : "Sat, 07 Nov 2026 05:42:39 GMT", "Via" : "1.1 28edb03169fa053a4a523d90d15ff6ae.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "UntlH8cxiqAjchybFOdpJnkYuJhKQJRQMfyaR4AGAp4Kz059zkFUzQ==", + "X-Amz-Cf-Id" : "9C7YsiOhDHu3jS-ZD293ft6rJ37yin15Ra72lL-QYLxjTVPo7Lur_g==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "9803dc98-b632-39ec-9e01-ebf16bd81f94", + "uuid" : "8d615fee-5056-3374-89e9-655bdf0612d2", "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-28", - "newScenarioState" : "scenario-1-api-apikey-login-29", - "insertionIndex" : 49 + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-49", + "newScenarioState" : "scenario-3-api-apikey-login-50", + "insertionIndex" : 19 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-228248286fba.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-228248286fba.json deleted file mode 100644 index 339cd8ba..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-228248286fba.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "id" : "9602117c-895c-3d23-a069-36bd7207a729", - "name" : "api_apikey_login", - "request" : { - "url" : "/api/apikey/login", - "method" : "POST" - }, - "response" : { - "status" : 200, - "bodyFileName" : "api_apikey_login-228248286fba.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:19 GMT", - "Via" : "1.1 f8731007efc5ab360d90cee573a1e916.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", - "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", - "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "fpjGMXVOttkN6DHWVPW4X73OaQL7iB8df5W4J2y4u9tNe1MUXqlhbA==", - "Vary" : "Origin, Accept-Encoding", - "Expires" : "0", - "Surrogate-Control" : "no-store", - "Content-Type" : "application/json; charset=utf-8" - } - }, - "uuid" : "9602117c-895c-3d23-a069-36bd7207a729", - "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-3", - "newScenarioState" : "scenario-1-api-apikey-login-4", - "insertionIndex" : 217 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-2752caf9a458.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-2752caf9a458.json new file mode 100644 index 00000000..dabc536c --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-2752caf9a458.json @@ -0,0 +1,34 @@ +{ + "id" : "ec3b404c-33e9-3a69-a323-21b3f9254f3a", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-2752caf9a458.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:41:58 GMT", + "Via" : "1.1 bef90eae512e70457d6a8a77b097a124.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "5wlgfgM6XZ0UrCVAqNZw0IplIGOUiAf7MWaoiKuEwiW4HU3C1zb6ow==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "ec3b404c-33e9-3a69-a323-21b3f9254f3a", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-19", + "newScenarioState" : "scenario-3-api-apikey-login-20", + "insertionIndex" : 141 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-5857535be705.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-30fe46b76715.json similarity index 61% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-5857535be705.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-30fe46b76715.json index 31ee304b..c9efc9be 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-5857535be705.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-30fe46b76715.json @@ -1,5 +1,5 @@ { - "id" : "8930c2d4-33af-33a9-9a28-3d8effe9c837", + "id" : "7e8ce201-5667-313f-839d-88653368b218", "name" : "api_apikey_login", "request" : { "url" : "/api/apikey/login", @@ -7,28 +7,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "api_apikey_login-5857535be705.json", + "bodyFileName" : "api_apikey_login-30fe46b76715.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:53 GMT", + "Date" : "Sat, 07 Nov 2026 05:41:37 GMT", "Via" : "1.1 38842c146ccd8f527d2de72671759d96.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "1mzw0bUcPzZ64TcxO6n_AeP4n2Z3ZDqZlOMh7LGQg-FjHo6XgmpcAA==", + "X-Amz-Cf-Id" : "vsxynJD4Yq6Hkpg16TDUsWobvZpPuwizBv7Sc7-5q74rnmWQKjk8fQ==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "8930c2d4-33af-33a9-9a28-3d8effe9c837", + "uuid" : "7e8ce201-5667-313f-839d-88653368b218", "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-29", - "newScenarioState" : "scenario-1-api-apikey-login-30", - "insertionIndex" : 46 + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-4", + "newScenarioState" : "scenario-3-api-apikey-login-5", + "insertionIndex" : 177 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-35eedf692313.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-35eedf692313.json new file mode 100644 index 00000000..ed892c33 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-35eedf692313.json @@ -0,0 +1,34 @@ +{ + "id" : "83707397-7bd9-341c-a8fe-997c6860d00b", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-35eedf692313.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:41:54 GMT", + "Via" : "1.1 b54238be18861f9bb1272bf1cb10e040.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "ZygM4PtsKnLYauS5HY9qtvrPDB3IDa6-YoPZtV85z3c6712Wu_cnTA==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "83707397-7bd9-341c-a8fe-997c6860d00b", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-13", + "newScenarioState" : "scenario-3-api-apikey-login-14", + "insertionIndex" : 154 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-0a8d8cdc62ba.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-36c939a960cb.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-0a8d8cdc62ba.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-36c939a960cb.json index 0b0d904d..4714249d 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-0a8d8cdc62ba.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-36c939a960cb.json @@ -1,5 +1,5 @@ { - "id" : "876c35fe-6212-32db-8a61-14621e0ffc73", + "id" : "85d48aa9-bda3-361b-992c-36a23f3e86e9", "name" : "api_apikey_login", "request" : { "url" : "/api/apikey/login", @@ -7,28 +7,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "api_apikey_login-0a8d8cdc62ba.json", + "bodyFileName" : "api_apikey_login-36c939a960cb.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:19 GMT", - "Via" : "1.1 0ddbf3138c96d4b7c9f8047edb515414.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:41:32 GMT", + "Via" : "1.1 63560dd3f856b0f7bfe68a0cad46924a.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "Wv4T04qx0R0nDMyVdag2tzqC1kNnCfj5Gr1gkWzI7ScOZWxjjr6Rmw==", + "X-Amz-Cf-Id" : "PK4gyHnqWqB_rBis_F4Za1XhWqOHgC7qXV0xlK_PF88Baq2yldpItQ==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "876c35fe-6212-32db-8a61-14621e0ffc73", + "uuid" : "85d48aa9-bda3-361b-992c-36a23f3e86e9", "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-30", - "newScenarioState" : "scenario-1-api-apikey-login-31", - "insertionIndex" : 20 + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-2", + "newScenarioState" : "scenario-3-api-apikey-login-3", + "insertionIndex" : 180 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-a807d76d8a80.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-37149e64ea12.json similarity index 61% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-a807d76d8a80.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-37149e64ea12.json index 359c041a..f681f4cc 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-a807d76d8a80.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-37149e64ea12.json @@ -1,5 +1,5 @@ { - "id" : "6b908672-d638-3e92-ad00-23cbf8ea7b8e", + "id" : "2ed17f05-fa21-3736-b6d4-ab64ffffb99a", "name" : "api_apikey_login", "request" : { "url" : "/api/apikey/login", @@ -7,27 +7,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "api_apikey_login-a807d76d8a80.json", + "bodyFileName" : "api_apikey_login-37149e64ea12.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:31 GMT", + "Date" : "Sat, 07 Nov 2026 05:41:41 GMT", "Via" : "1.1 b54238be18861f9bb1272bf1cb10e040.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "O8cl3Dr-hEEt9f-clGqkhEBc9i4xLb8tznjiOGkm1To2AZWHM-VcOw==", + "X-Amz-Cf-Id" : "35bsQuIx0m487NnItHPYqb6CHAqC3tWop78LsOL-kyERTZ69-su4xg==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "6b908672-d638-3e92-ad00-23cbf8ea7b8e", + "uuid" : "2ed17f05-fa21-3736-b6d4-ab64ffffb99a", "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-35", - "insertionIndex" : 1 + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-7", + "newScenarioState" : "scenario-3-api-apikey-login-8", + "insertionIndex" : 171 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-38adc53ea08a.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-38adc53ea08a.json new file mode 100644 index 00000000..8723bc5f --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-38adc53ea08a.json @@ -0,0 +1,34 @@ +{ + "id" : "a8e836f6-957f-3e0c-b3e9-e9420776b475", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-38adc53ea08a.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:41 GMT", + "Via" : "1.1 1271197444822e7c59413a59ecbcecd6.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "2VF5nu5n3VjCFIMA79lO_ZIB2Q0QKjA9Soh0L173BnuxuXxhu9RjJw==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "a8e836f6-957f-3e0c-b3e9-e9420776b475", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-52", + "newScenarioState" : "scenario-3-api-apikey-login-53", + "insertionIndex" : 10 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-3da50fecdac4.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-3da50fecdac4.json new file mode 100644 index 00000000..c8bb70d9 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-3da50fecdac4.json @@ -0,0 +1,34 @@ +{ + "id" : "044d6f36-def9-31f7-b662-1ff29bf44031", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-3da50fecdac4.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:41:44 GMT", + "Via" : "1.1 88f286e23c15fc2f62a741db8207a67a.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "jkROsVZwAwrHoxIdNvRtcHm93yT0W4Z9m2rjMcoPghilGjcOKmJD3A==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "044d6f36-def9-31f7-b662-1ff29bf44031", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-11", + "newScenarioState" : "scenario-3-api-apikey-login-12", + "insertionIndex" : 162 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-4139f91c7e72.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-4139f91c7e72.json deleted file mode 100644 index c3269a5c..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-4139f91c7e72.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "id" : "57532630-927c-3919-a0d7-63a83e6b3ed0", - "name" : "api_apikey_login", - "request" : { - "url" : "/api/apikey/login", - "method" : "POST" - }, - "response" : { - "status" : 200, - "bodyFileName" : "api_apikey_login-4139f91c7e72.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:19 GMT", - "Via" : "1.1 0eb43913f9caf453beb959a8a836a688.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", - "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", - "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "U5fDC81oHt2oTDwio9zwag_JaGCjguyGdlttBhR8l9Dol8OQ5h8exA==", - "Vary" : "Origin, Accept-Encoding", - "Expires" : "0", - "Surrogate-Control" : "no-store", - "Content-Type" : "application/json; charset=utf-8" - } - }, - "uuid" : "57532630-927c-3919-a0d7-63a83e6b3ed0", - "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-4", - "newScenarioState" : "scenario-1-api-apikey-login-5", - "insertionIndex" : 214 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-4481ccd39452.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-4481ccd39452.json new file mode 100644 index 00000000..579322ae --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-4481ccd39452.json @@ -0,0 +1,34 @@ +{ + "id" : "8495b81d-bd27-3dc2-8034-e253ed3d26a4", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-4481ccd39452.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:03 GMT", + "Via" : "1.1 b54238be18861f9bb1272bf1cb10e040.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "myNksO5gQEs2oPtE8MlSg6HqxkAdwMlCVVtNsZVtbg4GYcKLoD07KA==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "8495b81d-bd27-3dc2-8034-e253ed3d26a4", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-25", + "newScenarioState" : "scenario-3-api-apikey-login-26", + "insertionIndex" : 125 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-491133bd9ba8.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-491133bd9ba8.json new file mode 100644 index 00000000..1f356364 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-491133bd9ba8.json @@ -0,0 +1,34 @@ +{ + "id" : "37bdf585-952b-3a21-8588-f9e1b4849583", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-491133bd9ba8.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:06 GMT", + "Via" : "1.1 d49bde7225e80ca0dc457ff2b8b4343e.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "UjZ16_NRoJTrBjDR9QHE_wUl0FG2OmPomPM1tD0YreR6-8WQJqapAQ==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "37bdf585-952b-3a21-8588-f9e1b4849583", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-29", + "newScenarioState" : "scenario-3-api-apikey-login-30", + "insertionIndex" : 113 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-4ee75ede31c8.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-4ee75ede31c8.json new file mode 100644 index 00000000..16966aba --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-4ee75ede31c8.json @@ -0,0 +1,34 @@ +{ + "id" : "d79b40aa-342e-3e5b-8c0c-854cac9c66c1", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-4ee75ede31c8.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:41:41 GMT", + "Via" : "1.1 bef90eae512e70457d6a8a77b097a124.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "6rCj1gTvWF4bhC2jvXOvpfteHOo0zG6yJ4yRPQwnkXd5VbiE6-frfw==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "d79b40aa-342e-3e5b-8c0c-854cac9c66c1", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-9", + "newScenarioState" : "scenario-3-api-apikey-login-10", + "insertionIndex" : 167 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-51eab39f0542.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-51eab39f0542.json new file mode 100644 index 00000000..5459c83e --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-51eab39f0542.json @@ -0,0 +1,34 @@ +{ + "id" : "e21b130d-fab4-39ec-ac92-942b577bb401", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-51eab39f0542.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:00 GMT", + "Via" : "1.1 c72e48ed2f0a994f695ca2fb4bc9247e.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "5xJ5UKf2NXRvwZnxZ95VZF4m4B-JWnY-AXN2P-9uaur7ggULfvfuIQ==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "e21b130d-fab4-39ec-ac92-942b577bb401", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-21", + "newScenarioState" : "scenario-3-api-apikey-login-22", + "insertionIndex" : 135 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-f479d4941263.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-53d7539fafbb.json similarity index 61% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-f479d4941263.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-53d7539fafbb.json index 419a06e1..a841b2e9 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-f479d4941263.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-53d7539fafbb.json @@ -1,5 +1,5 @@ { - "id" : "c9894752-8fb1-3d12-9585-bf59f6a8bb88", + "id" : "2f5b2f11-0caa-303a-9747-0a587205d99f", "name" : "api_apikey_login", "request" : { "url" : "/api/apikey/login", @@ -7,28 +7,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "api_apikey_login-f479d4941263.json", + "bodyFileName" : "api_apikey_login-53d7539fafbb.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:30 GMT", + "Date" : "Sat, 07 Nov 2026 05:41:36 GMT", "Via" : "1.1 b2b215a89cc2734b2940e2eb59ea4bd0.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "rpMeDm5MHSteJPARLE2AOd_qitSChn_BlaxS2AShjV3C5oJu7rOWVQ==", + "X-Amz-Cf-Id" : "lP0RJddPacGCEpyWqE1sm630S1hv3sKiNzpzU6kOGwPwMJeFDyc1AA==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "c9894752-8fb1-3d12-9585-bf59f6a8bb88", + "uuid" : "2f5b2f11-0caa-303a-9747-0a587205d99f", "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-20", - "newScenarioState" : "scenario-1-api-apikey-login-21", - "insertionIndex" : 78 + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-3", + "newScenarioState" : "scenario-3-api-apikey-login-4", + "insertionIndex" : 179 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-54c5187c4ebe.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-54c5187c4ebe.json deleted file mode 100644 index ef90283f..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-54c5187c4ebe.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "id" : "2ec3367f-a2a4-3093-91bd-adb11d096e03", - "name" : "api_apikey_login", - "request" : { - "url" : "/api/apikey/login", - "method" : "POST" - }, - "response" : { - "status" : 200, - "bodyFileName" : "api_apikey_login-54c5187c4ebe.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:26 GMT", - "Via" : "1.1 77f3c89ffd619275648d49ad13868570.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", - "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", - "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "fpcUWQAq1iRZ3lspUJKSZamoeX-UJRYtnRBP-bRxt5jQ9UHYqCRWxg==", - "Vary" : "Origin, Accept-Encoding", - "Expires" : "0", - "Surrogate-Control" : "no-store", - "Content-Type" : "application/json; charset=utf-8" - } - }, - "uuid" : "2ec3367f-a2a4-3093-91bd-adb11d096e03", - "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-12", - "insertionIndex" : 190 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-35d1a51b9963.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-594f281c56ba.json similarity index 61% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-35d1a51b9963.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-594f281c56ba.json index 70989ca8..1526a9c8 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-35d1a51b9963.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-594f281c56ba.json @@ -1,5 +1,5 @@ { - "id" : "01d45ca5-7ad2-3ca3-a8b3-f36d94fbc44e", + "id" : "32aaa3a2-7f6b-37f1-ab4d-74c5db4ffc1c", "name" : "api_apikey_login", "request" : { "url" : "/api/apikey/login", @@ -7,28 +7,27 @@ }, "response" : { "status" : 200, - "bodyFileName" : "api_apikey_login-35d1a51b9963.json", + "bodyFileName" : "api_apikey_login-594f281c56ba.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:49 GMT", + "Date" : "Sat, 07 Nov 2026 05:42:42 GMT", "Via" : "1.1 bef90eae512e70457d6a8a77b097a124.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "qushg0buKfGT1jYlIKfX0z87DOlEvCeGmZE4Sx-bpCxPMmwLdVstdQ==", + "X-Amz-Cf-Id" : "s5qnB0Ronb1xVhIUecWwVtQtvC8NCywyHtiiOr-aJPgFbQQCiJC0lg==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "01d45ca5-7ad2-3ca3-a8b3-f36d94fbc44e", + "uuid" : "32aaa3a2-7f6b-37f1-ab4d-74c5db4ffc1c", "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-27", - "newScenarioState" : "scenario-1-api-apikey-login-28", - "insertionIndex" : 52 + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-53", + "insertionIndex" : 7 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-684178b0ab9d.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-684178b0ab9d.json deleted file mode 100644 index 05785d47..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-684178b0ab9d.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "id" : "28cf2c95-3206-316f-939f-74d5e43caa3c", - "name" : "api_apikey_login", - "request" : { - "url" : "/api/apikey/login", - "method" : "POST" - }, - "response" : { - "status" : 200, - "bodyFileName" : "api_apikey_login-684178b0ab9d.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:23 GMT", - "Via" : "1.1 74e8c76139b8c7f9b11d5e4441c2a7a2.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", - "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", - "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "vB5k6LWSyxpP_HVksApsquEs5oy-e_M8xoIbLLF5ApIhOG9T1pf62w==", - "Vary" : "Origin, Accept-Encoding", - "Expires" : "0", - "Surrogate-Control" : "no-store", - "Content-Type" : "application/json; charset=utf-8" - } - }, - "uuid" : "28cf2c95-3206-316f-939f-74d5e43caa3c", - "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-8", - "newScenarioState" : "scenario-1-api-apikey-login-9", - "insertionIndex" : 202 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-e787e7d833db.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-6b6256183463.json similarity index 60% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-e787e7d833db.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-6b6256183463.json index 21ac1a3c..16d2baf1 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-e787e7d833db.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-6b6256183463.json @@ -1,5 +1,5 @@ { - "id" : "0805ac34-0165-3bb2-9578-a1b9df073b55", + "id" : "bd816e32-9177-3e94-adb2-25c61a731d47", "name" : "api_apikey_login", "request" : { "url" : "/api/apikey/login", @@ -7,28 +7,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "api_apikey_login-e787e7d833db.json", + "bodyFileName" : "api_apikey_login-6b6256183463.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:21 GMT", + "Date" : "Sat, 07 Nov 2026 05:42:04 GMT", "Via" : "1.1 7f26c41dda80bd7d50ccec2be87c9c3e.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "0sCnLDKmS9HIPlwrMn1Iqnzvbp_FgTMrOYtsLpu3S7y8QBVrHB4vSQ==", + "X-Amz-Cf-Id" : "Wamh-xJPOdMJPtLXAQmRb37zOzKXZjoL5HoRPiAr5B_AUqxdptetJQ==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "0805ac34-0165-3bb2-9578-a1b9df073b55", + "uuid" : "bd816e32-9177-3e94-adb2-25c61a731d47", "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-31", - "newScenarioState" : "scenario-1-api-apikey-login-32", - "insertionIndex" : 17 + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-26", + "newScenarioState" : "scenario-3-api-apikey-login-27", + "insertionIndex" : 122 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-72ff395a0db6.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-72ff395a0db6.json new file mode 100644 index 00000000..3104c8b0 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-72ff395a0db6.json @@ -0,0 +1,34 @@ +{ + "id" : "2c42096e-ab0f-3661-ad5a-cf99a5481a05", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-72ff395a0db6.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:05 GMT", + "Via" : "1.1 4c8322ac27bebc2a7e26f72c7b6ec2ee.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "q3RsB-XvUSbBIgtDKwMayt-Jv0BCGJcvLqiVi6dVU2zJAF0xTRT_Bw==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "2c42096e-ab0f-3661-ad5a-cf99a5481a05", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-28", + "newScenarioState" : "scenario-3-api-apikey-login-29", + "insertionIndex" : 116 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-7443d507d1e6.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-7443d507d1e6.json new file mode 100644 index 00000000..607b11f4 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-7443d507d1e6.json @@ -0,0 +1,34 @@ +{ + "id" : "a0ea0539-9787-3f8b-a816-023faee9387d", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-7443d507d1e6.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:17 GMT", + "Via" : "1.1 3417fc639ca50b55b2a1d93807a20c2c.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "9DULSOPQaApt6tnKCjiup9eVylPPFC7ECqqrE1pHJHGbVcawu0pxaw==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "a0ea0539-9787-3f8b-a816-023faee9387d", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-41", + "newScenarioState" : "scenario-3-api-apikey-login-42", + "insertionIndex" : 66 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-195cf4dad017.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-756c5d812c0e.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-195cf4dad017.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-756c5d812c0e.json index 94bb1cb5..a4c3cd4a 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-195cf4dad017.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-756c5d812c0e.json @@ -1,5 +1,5 @@ { - "id" : "1be9c533-c2c4-3138-bd88-0a1248c02004", + "id" : "e27ea1fd-23e4-3a14-841c-b737ad45330e", "name" : "api_apikey_login", "request" : { "url" : "/api/apikey/login", @@ -7,28 +7,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "api_apikey_login-195cf4dad017.json", + "bodyFileName" : "api_apikey_login-756c5d812c0e.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:43 GMT", - "Via" : "1.1 dea0b5e705fff834db8ae3992ea09cfa.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:41:40 GMT", + "Via" : "1.1 63560dd3f856b0f7bfe68a0cad46924a.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "qza0lAZsI1XcDkpBlshIxw-O-fx7cxs4fFBJWEdZCdlYsmOBafP6Vg==", + "X-Amz-Cf-Id" : "ErUkxpaTY2Dt_ute8nU2jsRm7jg8O36ZqlNwgAa9B69NpG5cQKROfA==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "1be9c533-c2c4-3138-bd88-0a1248c02004", + "uuid" : "e27ea1fd-23e4-3a14-841c-b737ad45330e", "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-25", - "newScenarioState" : "scenario-1-api-apikey-login-26", - "insertionIndex" : 59 + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-6", + "newScenarioState" : "scenario-3-api-apikey-login-7", + "insertionIndex" : 173 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-78994d224f6e.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-78994d224f6e.json deleted file mode 100644 index c9296047..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-78994d224f6e.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "id" : "1a5d94d4-d478-3afd-ac94-5be1c221017d", - "name" : "api_apikey_login", - "request" : { - "url" : "/api/apikey/login", - "method" : "POST" - }, - "response" : { - "status" : 200, - "bodyFileName" : "api_apikey_login-78994d224f6e.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:12 GMT", - "Via" : "1.1 0ddbf3138c96d4b7c9f8047edb515414.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", - "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", - "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "R35YyiQf2mHFBvq2GiuVxGVPCLeFgrTa80jbOLcNthNx5cTtCDQv8A==", - "Vary" : "Origin, Accept-Encoding", - "Expires" : "0", - "Surrogate-Control" : "no-store", - "Content-Type" : "application/json; charset=utf-8" - } - }, - "uuid" : "1a5d94d4-d478-3afd-ac94-5be1c221017d", - "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-13", - "newScenarioState" : "scenario-1-api-apikey-login-14", - "insertionIndex" : 103 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-79ecf8f70ca3.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-79ecf8f70ca3.json new file mode 100644 index 00000000..12f4d02c --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-79ecf8f70ca3.json @@ -0,0 +1,34 @@ +{ + "id" : "1b0a2677-7e35-32ab-b763-4b2f0806ef50", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-79ecf8f70ca3.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:01 GMT", + "Via" : "1.1 38842c146ccd8f527d2de72671759d96.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "fOprO7WEbNnnAIalYA-PDtBwoZMKyMWTKNyeZa-QgYvu51YFRqbPHQ==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "1b0a2677-7e35-32ab-b763-4b2f0806ef50", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-22", + "newScenarioState" : "scenario-3-api-apikey-login-23", + "insertionIndex" : 132 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-7a3d662049e2.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-7a3d662049e2.json new file mode 100644 index 00000000..815af1d8 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-7a3d662049e2.json @@ -0,0 +1,34 @@ +{ + "id" : "19a77681-3203-332c-a275-ebb34231fb2d", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-7a3d662049e2.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:14 GMT", + "Via" : "1.1 6ebf93cd3baadad602a5fd706f0df16e.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "nzb9dAd2f6m0051KFGy9jBra10HC7QLId3prcPi4cCvTxePHEqKgdQ==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "19a77681-3203-332c-a275-ebb34231fb2d", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-39", + "newScenarioState" : "scenario-3-api-apikey-login-40", + "insertionIndex" : 77 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-2d93d2dccb89.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-7a5f139b8e0b.json similarity index 61% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-2d93d2dccb89.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-7a5f139b8e0b.json index 05da3867..92014960 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-2d93d2dccb89.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-7a5f139b8e0b.json @@ -1,5 +1,5 @@ { - "id" : "0050abe2-a441-3948-9730-faefc42eb151", + "id" : "0b23d8b8-7953-37a1-b502-6be29a2aff92", "name" : "api_apikey_login", "request" : { "url" : "/api/apikey/login", @@ -7,28 +7,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "api_apikey_login-2d93d2dccb89.json", + "bodyFileName" : "api_apikey_login-7a5f139b8e0b.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:18 GMT", + "Date" : "Sat, 07 Nov 2026 05:41:32 GMT", "Via" : "1.1 2772a76c066120d1905e8bfcd08c4d1c.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "yANbOMrEsjjhsexiNd4hBd-nqkk93i75guURrIpcZirNKqDrdjmVdQ==", + "X-Amz-Cf-Id" : "k64LHstZFgIRyID-_uw3NVhc7EWbB_s7mMBJiSI5FCniww6CXH06Ww==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "0050abe2-a441-3948-9730-faefc42eb151", + "uuid" : "0b23d8b8-7953-37a1-b502-6be29a2aff92", "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-15", - "newScenarioState" : "scenario-1-api-apikey-login-16", - "insertionIndex" : 97 + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "Started", + "newScenarioState" : "scenario-3-api-apikey-login-2", + "insertionIndex" : 182 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-7ab2eca80e45.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-7ab2eca80e45.json new file mode 100644 index 00000000..b5c27687 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-7ab2eca80e45.json @@ -0,0 +1,34 @@ +{ + "id" : "fe784917-2be7-35d3-af65-daa5f9ed7d7f", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-7ab2eca80e45.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:40 GMT", + "Via" : "1.1 c72e48ed2f0a994f695ca2fb4bc9247e.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "SYE3TFQQeY5D4gx73WUuSae8oDczpGRh4maMR9CFd4J7h6mDC90lmg==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "fe784917-2be7-35d3-af65-daa5f9ed7d7f", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-51", + "newScenarioState" : "scenario-3-api-apikey-login-52", + "insertionIndex" : 13 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-7e51dda395ab.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-7e51dda395ab.json new file mode 100644 index 00000000..24a6e579 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-7e51dda395ab.json @@ -0,0 +1,34 @@ +{ + "id" : "0dcb8bb8-c024-338c-bad3-8bfca97c2c85", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-7e51dda395ab.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:41:45 GMT", + "Via" : "1.1 d49bde7225e80ca0dc457ff2b8b4343e.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "e_6k29ujyPjltiI0Xo191ALijuj8IgzBE-51zmqjnb0fjVsmz6dkVg==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "0dcb8bb8-c024-338c-bad3-8bfca97c2c85", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-12", + "newScenarioState" : "scenario-3-api-apikey-login-13", + "insertionIndex" : 158 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-7ea1449e7f88.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-7ea1449e7f88.json new file mode 100644 index 00000000..882eb202 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-7ea1449e7f88.json @@ -0,0 +1,34 @@ +{ + "id" : "204258d8-57f1-3ba7-aae0-9ebba3223cee", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-7ea1449e7f88.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:41:56 GMT", + "Via" : "1.1 b54238be18861f9bb1272bf1cb10e040.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "vc6czjzJPy35HXdnl7Lr_DNjWShe-TLC3QaMPFRa1GHACkcHM1l4Ew==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "204258d8-57f1-3ba7-aae0-9ebba3223cee", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-16", + "newScenarioState" : "scenario-3-api-apikey-login-17", + "insertionIndex" : 147 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-7eaba8359a71.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-7eaba8359a71.json deleted file mode 100644 index a47259f7..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-7eaba8359a71.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "id" : "a55b5a8a-4fcf-396d-bc3b-c44bb4309499", - "name" : "api_apikey_login", - "request" : { - "url" : "/api/apikey/login", - "method" : "POST" - }, - "response" : { - "status" : 200, - "bodyFileName" : "api_apikey_login-7eaba8359a71.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:19 GMT", - "Via" : "1.1 9895fa1d75119fa16da9e015b58dbe5a.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", - "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", - "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "FBXboKIAA1MbEAV2ZyTTFuWyh6NQxGnZcrVzhU2pnN49ydkqGabCeQ==", - "Vary" : "Origin, Accept-Encoding", - "Expires" : "0", - "Surrogate-Control" : "no-store", - "Content-Type" : "application/json; charset=utf-8" - } - }, - "uuid" : "a55b5a8a-4fcf-396d-bc3b-c44bb4309499", - "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-16", - "newScenarioState" : "scenario-1-api-apikey-login-17", - "insertionIndex" : 95 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-7fba6c78eb15.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-7fba6c78eb15.json index 6db0633b..cf200b84 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-7fba6c78eb15.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-7fba6c78eb15.json @@ -10,15 +10,15 @@ "bodyFileName" : "api_apikey_login-7fba6c78eb15.json", "headers" : { "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Fri, 16 Oct 2026 19:22:17 GMT", - "Via" : "1.1 a40ac7dad0e348fc93799233c9af5960.cloudfront.net (CloudFront)", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:48:57 GMT", + "Via" : "1.1 3417fc639ca50b55b2a1d93807a20c2c.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "m0z9OFwurew5F1Z1PBirtrf6HIKBMar4aWqzSAUxcbswJRA_HHbHvg==", + "X-Amz-Cf-Id" : "8Coo0ae98UEMraXoSfWGgoWJ6JYM7BF_SlIK7aKwlwwFCp7LAGo97A==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -27,5 +27,5 @@ }, "uuid" : "bfbd4af3-5313-3d79-9d68-a3f0e6dcf83f", "persistent" : true, - "insertionIndex" : 219 + "insertionIndex" : 252 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-831f31242124.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-831f31242124.json new file mode 100644 index 00000000..ab326818 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-831f31242124.json @@ -0,0 +1,34 @@ +{ + "id" : "10b42fd8-41f7-3f8a-8cc0-407dc6a4e5c7", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-831f31242124.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:41:57 GMT", + "Via" : "1.1 b54238be18861f9bb1272bf1cb10e040.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "Tg9Yb9CEMSJ45lWoSLOLtxNwX0FvfdlP0HfeTK3qs-Ep477xiHQ_nA==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "10b42fd8-41f7-3f8a-8cc0-407dc6a4e5c7", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-18", + "newScenarioState" : "scenario-3-api-apikey-login-19", + "insertionIndex" : 143 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-85cdda437d15.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-85cdda437d15.json new file mode 100644 index 00000000..edd3473c --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-85cdda437d15.json @@ -0,0 +1,34 @@ +{ + "id" : "904d8557-d34d-3fe8-9db9-ccc9378a840d", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-85cdda437d15.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:11 GMT", + "Via" : "1.1 3062c1f9ccf5f043983bc180e222dd9c.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "0NkcIGfsaBvpM1PDBWjiyJOPa17QudFtlT16SHacx4dkPW77gFpLEw==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "904d8557-d34d-3fe8-9db9-ccc9378a840d", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-37", + "newScenarioState" : "scenario-3-api-apikey-login-38", + "insertionIndex" : 89 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-8662a5f345c9.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-8662a5f345c9.json new file mode 100644 index 00000000..457c49e8 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-8662a5f345c9.json @@ -0,0 +1,34 @@ +{ + "id" : "4897cc8c-2cc5-3037-a691-dd9632352884", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-8662a5f345c9.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:08 GMT", + "Via" : "1.1 38842c146ccd8f527d2de72671759d96.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "tgySKnLnqF1RM3EaNeBen7CwkhffUvN14yeyrDMzl0g64tJhb2_uUA==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "4897cc8c-2cc5-3037-a691-dd9632352884", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-33", + "newScenarioState" : "scenario-3-api-apikey-login-34", + "insertionIndex" : 101 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-ebc6aa328b17.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-8c9099231d3b.json similarity index 61% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-ebc6aa328b17.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-8c9099231d3b.json index d196d348..2803649a 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-ebc6aa328b17.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-8c9099231d3b.json @@ -1,5 +1,5 @@ { - "id" : "fde49cc2-cb68-380e-8309-128079eaa5da", + "id" : "0f1a967a-409e-3890-be93-261eb6bd4c2b", "name" : "api_apikey_login", "request" : { "url" : "/api/apikey/login", @@ -7,28 +7,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "api_apikey_login-ebc6aa328b17.json", + "bodyFileName" : "api_apikey_login-8c9099231d3b.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:25 GMT", + "Date" : "Sat, 07 Nov 2026 05:42:18 GMT", "Via" : "1.1 a3134c0c893f03d1e9a9c657d09af7cc.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "Ewplp21jwlDLm-xNhRstpFCZcRJD05Nqo1agDvphpBr4geL5YYtISQ==", + "X-Amz-Cf-Id" : "0hhFNd4ghqbSXAyiUmG0v3YW4qS3LpB8zTFy836YRK5i77GRffgt4Q==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "fde49cc2-cb68-380e-8309-128079eaa5da", + "uuid" : "0f1a967a-409e-3890-be93-261eb6bd4c2b", "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-33", - "newScenarioState" : "scenario-1-api-apikey-login-34", - "insertionIndex" : 11 + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-42", + "newScenarioState" : "scenario-3-api-apikey-login-43", + "insertionIndex" : 63 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-ed0643be0966.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-8d196e8b2ffb.json similarity index 61% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-ed0643be0966.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-8d196e8b2ffb.json index da0a2527..fb747562 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-ed0643be0966.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-8d196e8b2ffb.json @@ -1,5 +1,5 @@ { - "id" : "934724d9-29ca-31de-b768-5b9485f38fae", + "id" : "10e8e81f-2956-382c-804a-e55edefa532a", "name" : "api_apikey_login", "request" : { "url" : "/api/apikey/login", @@ -7,28 +7,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "api_apikey_login-ed0643be0966.json", + "bodyFileName" : "api_apikey_login-8d196e8b2ffb.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:28 GMT", + "Date" : "Sat, 07 Nov 2026 05:42:18 GMT", "Via" : "1.1 88f286e23c15fc2f62a741db8207a67a.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "zfm50P9X6AD9_JJDDaG7lxw8rNT_hjE-MvQuxRb-t8gJmNsja4bhkg==", + "X-Amz-Cf-Id" : "E-F9wtNbiiFVnbzkRiE_yTQVJIk4eFuoTEvGxJDS9PHS50QJTu0Nlw==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "934724d9-29ca-31de-b768-5b9485f38fae", + "uuid" : "10e8e81f-2956-382c-804a-e55edefa532a", "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-34", - "newScenarioState" : "scenario-1-api-apikey-login-35", - "insertionIndex" : 8 + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-43", + "newScenarioState" : "scenario-3-api-apikey-login-44", + "insertionIndex" : 60 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-cc542d1fcb8d.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-8e9b8434df1a.json similarity index 58% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-cc542d1fcb8d.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-8e9b8434df1a.json index b5a3161f..bbbc657f 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-cc542d1fcb8d.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-8e9b8434df1a.json @@ -1,5 +1,5 @@ { - "id" : "59305419-ab9b-312e-9a99-99f3eb39d41f", + "id" : "897ce692-12a6-359f-b2ca-371fd44a6f03", "name" : "api_apikey_login", "request" : { "url" : "/api/apikey/login", @@ -7,28 +7,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "api_apikey_login-cc542d1fcb8d.json", + "bodyFileName" : "api_apikey_login-8e9b8434df1a.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:21 GMT", - "Via" : "1.1 7aad92255c39d277bce3f20afa1b059c.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:11 GMT", + "Via" : "1.1 c72e48ed2f0a994f695ca2fb4bc9247e.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "ZQquTmhEq3rVkgQCyervsBxWk2fC80rW4NAItcGB5hLZXeEv0V-dIQ==", + "X-Amz-Cf-Id" : "HWA6cD0NCPX1kApYUI-V7karf4-fyJjS-G7TQj4P3zOjpUvjydmZhA==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "59305419-ab9b-312e-9a99-99f3eb39d41f", + "uuid" : "897ce692-12a6-359f-b2ca-371fd44a6f03", "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-17", - "newScenarioState" : "scenario-1-api-apikey-login-18", + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-36", + "newScenarioState" : "scenario-3-api-apikey-login-37", "insertionIndex" : 92 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-f7d1b6b80934.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-8ed9dc0a2fd3.json similarity index 60% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-f7d1b6b80934.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-8ed9dc0a2fd3.json index d5862366..f220aaa4 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-f7d1b6b80934.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-8ed9dc0a2fd3.json @@ -1,5 +1,5 @@ { - "id" : "6ca1bdab-b7a3-3989-b8f4-90b78cc11b37", + "id" : "fd1e96c8-cde4-3fd3-9ece-7365adfa2f41", "name" : "api_apikey_login", "request" : { "url" : "/api/apikey/login", @@ -7,28 +7,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "api_apikey_login-f7d1b6b80934.json", + "bodyFileName" : "api_apikey_login-8ed9dc0a2fd3.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:41 GMT", + "Date" : "Sat, 07 Nov 2026 05:42:02 GMT", "Via" : "1.1 e8b22a8fa8511f8f972b4965a9af80b4.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "ligEsMEES_YfRwHNeTr89yIq_kb0OXyPt46VwTRL7SafbLDBb-QTow==", + "X-Amz-Cf-Id" : "n3golaXRK6jDfUuWalJor51DkUoh58ZpxO5Y6xAjUMdOh9chMyAc7g==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "6ca1bdab-b7a3-3989-b8f4-90b78cc11b37", + "uuid" : "fd1e96c8-cde4-3fd3-9ece-7365adfa2f41", "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-24", - "newScenarioState" : "scenario-1-api-apikey-login-25", - "insertionIndex" : 61 + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-24", + "newScenarioState" : "scenario-3-api-apikey-login-25", + "insertionIndex" : 127 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-9611c99e6aac.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-9611c99e6aac.json deleted file mode 100644 index af1160b6..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-9611c99e6aac.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "id" : "058e04ef-a97a-3a53-8129-7fc92d2dacd5", - "name" : "api_apikey_login", - "request" : { - "url" : "/api/apikey/login", - "method" : "POST" - }, - "response" : { - "status" : 200, - "bodyFileName" : "api_apikey_login-9611c99e6aac.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:20 GMT", - "Via" : "1.1 b3ccaedda78c63d5967b57382ceb4cbe.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", - "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", - "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "5Z_ghrPhfu3bThjf6xSTwFUp3iF-hmEHKgQUTZMyFmHxjepRPtNK3A==", - "Vary" : "Origin, Accept-Encoding", - "Expires" : "0", - "Surrogate-Control" : "no-store", - "Content-Type" : "application/json; charset=utf-8" - } - }, - "uuid" : "058e04ef-a97a-3a53-8129-7fc92d2dacd5", - "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-5", - "newScenarioState" : "scenario-1-api-apikey-login-6", - "insertionIndex" : 211 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-a008f9904c48.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-a008f9904c48.json deleted file mode 100644 index a07719e2..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-a008f9904c48.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "id" : "e81f520e-3a6d-38c9-8966-9e0c54366f9b", - "name" : "api_apikey_login", - "request" : { - "url" : "/api/apikey/login", - "method" : "POST" - }, - "response" : { - "status" : 200, - "bodyFileName" : "api_apikey_login-a008f9904c48.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:24 GMT", - "Via" : "1.1 cb2aa1abf9fb243a4dc4cb073a92424e.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", - "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", - "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "NCvlrpCrAI4EvvDRFxRYCAbJWZOpk-vaGpaRRvZ3dFJ1OFFMnft5Mg==", - "Vary" : "Origin, Accept-Encoding", - "Expires" : "0", - "Surrogate-Control" : "no-store", - "Content-Type" : "application/json; charset=utf-8" - } - }, - "uuid" : "e81f520e-3a6d-38c9-8966-9e0c54366f9b", - "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-9", - "newScenarioState" : "scenario-1-api-apikey-login-10", - "insertionIndex" : 199 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-a176e8b9e649.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-a176e8b9e649.json new file mode 100644 index 00000000..2d1bf1b0 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-a176e8b9e649.json @@ -0,0 +1,34 @@ +{ + "id" : "73232a60-fa76-316f-981b-b95e7b3243d6", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-a176e8b9e649.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:21 GMT", + "Via" : "1.1 3062c1f9ccf5f043983bc180e222dd9c.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "TVnLZYbB449KQzpGz024xYA_7RtzWqQ6aOcOtpj-t5pv25IYZsPrbQ==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "73232a60-fa76-316f-981b-b95e7b3243d6", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-46", + "newScenarioState" : "scenario-3-api-apikey-login-47", + "insertionIndex" : 51 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-22a5aef01e2c.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-a69c63523f8f.json similarity index 58% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-22a5aef01e2c.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-a69c63523f8f.json index c9e60845..c95f92fc 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-22a5aef01e2c.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-a69c63523f8f.json @@ -1,5 +1,5 @@ { - "id" : "68b9c660-9c50-3e0b-a6a4-14295a08da31", + "id" : "09c44a02-b21a-3bb8-8656-07b2f5007fb3", "name" : "api_apikey_login", "request" : { "url" : "/api/apikey/login", @@ -7,28 +7,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "api_apikey_login-22a5aef01e2c.json", + "bodyFileName" : "api_apikey_login-a69c63523f8f.json", "headers" : { "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:24 GMT", - "Via" : "1.1 b3ccaedda78c63d5967b57382ceb4cbe.cloudfront.net (CloudFront)", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:23 GMT", + "Via" : "1.1 63560dd3f856b0f7bfe68a0cad46924a.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "rEfDTp59m1WYkZxB3YY1R7GbM8tH_aFKSJJdDHju2McabUc_8eVDlw==", + "X-Amz-Cf-Id" : "15Y9JAPFDYJ0iGDoln-GlFFxc0hR9Msp4mMAo_OtHrOcnkPfwEz26g==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "68b9c660-9c50-3e0b-a6a4-14295a08da31", + "uuid" : "09c44a02-b21a-3bb8-8656-07b2f5007fb3", "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-10", - "newScenarioState" : "scenario-1-api-apikey-login-11", - "insertionIndex" : 196 + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-48", + "newScenarioState" : "scenario-3-api-apikey-login-49", + "insertionIndex" : 45 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-a7fce53bd211.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-a7fce53bd211.json index bc08df82..21fd7e34 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-a7fce53bd211.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-a7fce53bd211.json @@ -10,15 +10,15 @@ "bodyFileName" : "api_apikey_login-a7fce53bd211.json", "headers" : { "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:18 GMT", - "Via" : "1.1 0df7f27a01014ab815259ca2d88193c6.cloudfront.net (CloudFront)", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:43:05 GMT", + "Via" : "1.1 0ddbf3138c96d4b7c9f8047edb515414.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "0O2fPbX6KGx7UDTJ6fjEtt17a3RDgZgukWeXP_ROqA46LmjhrH4Sjw==", + "X-Amz-Cf-Id" : "RqjhvMhdWynbXMHY7tLoP-af2CYKyt6KMeqhQZglbhc1suXqKETkZA==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -29,6 +29,5 @@ "persistent" : true, "scenarioName" : "scenario-1-api-apikey-login", "requiredScenarioState" : "scenario-1-api-apikey-login-2", - "newScenarioState" : "scenario-1-api-apikey-login-3", - "insertionIndex" : 220 + "insertionIndex" : 248 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-a831bc1bd8a3.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-a831bc1bd8a3.json new file mode 100644 index 00000000..e97bdfb5 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-a831bc1bd8a3.json @@ -0,0 +1,34 @@ +{ + "id" : "a8cec2da-f15a-3d84-b348-4b9a26fd9cc7", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-a831bc1bd8a3.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:13 GMT", + "Via" : "1.1 3062c1f9ccf5f043983bc180e222dd9c.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "cstVyCRbvD-w40cHRu_Ks7SvWG-h4PTxGFCW0XEkXeW0N5LYwvQxLg==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "a8cec2da-f15a-3d84-b348-4b9a26fd9cc7", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-38", + "newScenarioState" : "scenario-3-api-apikey-login-39", + "insertionIndex" : 80 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-1a2e16a32a5e.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-ae8eeabc2bad.json similarity index 60% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-1a2e16a32a5e.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-ae8eeabc2bad.json index ecda8220..b1fc0b94 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-1a2e16a32a5e.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-ae8eeabc2bad.json @@ -1,5 +1,5 @@ { - "id" : "65311e8a-59ee-3553-a63e-f50a7d48301c", + "id" : "4522575c-88a1-3b52-bab0-77560635fdae", "name" : "api_apikey_login", "request" : { "url" : "/api/apikey/login", @@ -7,28 +7,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "api_apikey_login-1a2e16a32a5e.json", + "bodyFileName" : "api_apikey_login-ae8eeabc2bad.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:15 GMT", + "Date" : "Sat, 07 Nov 2026 05:41:55 GMT", "Via" : "1.1 5af99d6f2fc1c569c253259aec683ee8.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "L7R1iKfdLQYeTvQWS3zYAWZa5zjxk6LtIhGZ_B84wttaze_yheJamw==", + "X-Amz-Cf-Id" : "tuQ3SbtOUJyjcpBYxk2nP8vaF_vj_YS4WK-ZJiT4rEKT9VXzDLToUQ==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "65311e8a-59ee-3553-a63e-f50a7d48301c", + "uuid" : "4522575c-88a1-3b52-bab0-77560635fdae", "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-14", - "newScenarioState" : "scenario-1-api-apikey-login-15", - "insertionIndex" : 100 + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-15", + "newScenarioState" : "scenario-3-api-apikey-login-16", + "insertionIndex" : 150 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-b58d632c2280.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-b58d632c2280.json new file mode 100644 index 00000000..c03292a0 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-b58d632c2280.json @@ -0,0 +1,34 @@ +{ + "id" : "f8e2a29a-5a25-342f-a04e-6d779969b794", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-b58d632c2280.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:07 GMT", + "Via" : "1.1 a3134c0c893f03d1e9a9c657d09af7cc.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "YsB3Pvw2e6m6ikstWDBFz4Jrceh_WpNV_yI_vjGrt3PYMqusByMPIg==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "f8e2a29a-5a25-342f-a04e-6d779969b794", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-31", + "newScenarioState" : "scenario-3-api-apikey-login-32", + "insertionIndex" : 107 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-c9a64ef9a1c6.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-c9a64ef9a1c6.json new file mode 100644 index 00000000..1de24ff1 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-c9a64ef9a1c6.json @@ -0,0 +1,34 @@ +{ + "id" : "295743f1-cb3c-35fe-8b0b-4aba1cfcd647", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-c9a64ef9a1c6.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:41:37 GMT", + "Via" : "1.1 04efc78121acf5d40974e6a71bebce20.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "Gi8yVwMM5ACPTQOrp9F94paMSMs_CUF6t5cz2YJuaa4ZlQhjwYQIuA==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "295743f1-cb3c-35fe-8b0b-4aba1cfcd647", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-5", + "newScenarioState" : "scenario-3-api-apikey-login-6", + "insertionIndex" : 175 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-caac105341f2.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-caac105341f2.json new file mode 100644 index 00000000..b10891fb --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-caac105341f2.json @@ -0,0 +1,34 @@ +{ + "id" : "0b390f74-e6ab-312b-8c5e-5129f83c425c", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-caac105341f2.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:20 GMT", + "Via" : "1.1 3062c1f9ccf5f043983bc180e222dd9c.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "OxMEc0I3CLly3V3nJuJfcAxEJDfSv1gSN_-LblLtFx0ixJCOfqj1sg==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "0b390f74-e6ab-312b-8c5e-5129f83c425c", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-45", + "newScenarioState" : "scenario-3-api-apikey-login-46", + "insertionIndex" : 55 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-cdbc56f8e830.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-cdbc56f8e830.json deleted file mode 100644 index 145d914a..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-cdbc56f8e830.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "id" : "967ef965-9445-3be3-a083-acd3b87ac99f", - "name" : "api_apikey_login", - "request" : { - "url" : "/api/apikey/login", - "method" : "POST" - }, - "response" : { - "status" : 200, - "bodyFileName" : "api_apikey_login-cdbc56f8e830.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:25 GMT", - "Via" : "1.1 fbb003dfc0617e3e058e3dac791dfd5a.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", - "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", - "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "LRzUk7A5vNLXU8sc5k7lcmRQpBlRe-Tvsxr99DSW4HbeG6haibCr5w==", - "Vary" : "Origin, Accept-Encoding", - "Expires" : "0", - "Surrogate-Control" : "no-store", - "Content-Type" : "application/json; charset=utf-8" - } - }, - "uuid" : "967ef965-9445-3be3-a083-acd3b87ac99f", - "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-11", - "newScenarioState" : "scenario-1-api-apikey-login-12", - "insertionIndex" : 193 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-d7dbdd2bc9ab.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-d7dbdd2bc9ab.json new file mode 100644 index 00000000..3297d28e --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-d7dbdd2bc9ab.json @@ -0,0 +1,34 @@ +{ + "id" : "35f42907-171f-3f2e-8353-2fef227bb2d2", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-d7dbdd2bc9ab.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:06 GMT", + "Via" : "1.1 4c8322ac27bebc2a7e26f72c7b6ec2ee.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "nS44UakqolETCpjTiCO1YhUAkcFq1J_64im8n0eCJhf-S5oZAgVV-g==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "35f42907-171f-3f2e-8353-2fef227bb2d2", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-30", + "newScenarioState" : "scenario-3-api-apikey-login-31", + "insertionIndex" : 110 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-e3a501865005.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-e3a501865005.json new file mode 100644 index 00000000..5237fdd2 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-e3a501865005.json @@ -0,0 +1,34 @@ +{ + "id" : "9c4c1602-3a6d-325a-b8dd-e7490c9559bb", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-e3a501865005.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:05 GMT", + "Via" : "1.1 c72e48ed2f0a994f695ca2fb4bc9247e.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "bs_m53AjwRns-Y7sdn6B8NmdoNE55cwKreC0s-v4_Yn-zdN5yDLc4Q==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "9c4c1602-3a6d-325a-b8dd-e7490c9559bb", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-27", + "newScenarioState" : "scenario-3-api-apikey-login-28", + "insertionIndex" : 119 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-ebce3c346828.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-ebce3c346828.json new file mode 100644 index 00000000..b47247bc --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-ebce3c346828.json @@ -0,0 +1,34 @@ +{ + "id" : "7783a490-2a14-3aa2-a151-5b3cc827b8b8", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-ebce3c346828.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:41:44 GMT", + "Via" : "1.1 e088ff8bff69861ed7fd37fbb518f0c2.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "-Kyd6sJmy8CrO5e8ceu88cdFBLZk9SPCO8HAqo11bAVqdl9_Y9RaVQ==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "7783a490-2a14-3aa2-a151-5b3cc827b8b8", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-10", + "newScenarioState" : "scenario-3-api-apikey-login-11", + "insertionIndex" : 164 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-ecdf6719b2a5.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-ecdf6719b2a5.json new file mode 100644 index 00000000..12aad3ad --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-ecdf6719b2a5.json @@ -0,0 +1,34 @@ +{ + "id" : "eeb904ae-697e-37c1-aa39-9cccffcf53a9", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-ecdf6719b2a5.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:19 GMT", + "Via" : "1.1 4c8322ac27bebc2a7e26f72c7b6ec2ee.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "Uv21azQKV8XYoY5X5Z-OftELysXO4mDX-vt9euuCT1SuzsMXINuYXg==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "eeb904ae-697e-37c1-aa39-9cccffcf53a9", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-44", + "newScenarioState" : "scenario-3-api-apikey-login-45", + "insertionIndex" : 58 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-f162110b4384.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-f162110b4384.json new file mode 100644 index 00000000..f23119a9 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-f162110b4384.json @@ -0,0 +1,34 @@ +{ + "id" : "37733ae3-da24-375f-bc78-58665de3d80a", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-f162110b4384.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:41:54 GMT", + "Via" : "1.1 2501b465adde8e5aedc3f38e3dfcdc22.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "tmseR6AHmYXNqh3JMv0kA5OYyzyTxFqLWxuJcqRVz_AvWrWSS6COjQ==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "37733ae3-da24-375f-bc78-58665de3d80a", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-14", + "newScenarioState" : "scenario-3-api-apikey-login-15", + "insertionIndex" : 152 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-f5eae9dca9ec.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-f5eae9dca9ec.json new file mode 100644 index 00000000..56bb2204 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-f5eae9dca9ec.json @@ -0,0 +1,34 @@ +{ + "id" : "6dc8f1b0-315e-323f-b1fd-896509db8783", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-f5eae9dca9ec.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:15 GMT", + "Via" : "1.1 4c8322ac27bebc2a7e26f72c7b6ec2ee.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "FSEs5EoZ4QMWMnXu7oFdNRR3YD7s2D1nYHcx2KaqeWBc7VBZFgQKuw==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "6dc8f1b0-315e-323f-b1fd-896509db8783", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-40", + "newScenarioState" : "scenario-3-api-apikey-login-41", + "insertionIndex" : 73 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-f9239d8d7004.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-f9239d8d7004.json new file mode 100644 index 00000000..289c13bc --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-f9239d8d7004.json @@ -0,0 +1,34 @@ +{ + "id" : "0dd56151-d106-3827-9981-7e970f5a3340", + "name" : "api_apikey_login", + "request" : { + "url" : "/api/apikey/login", + "method" : "POST" + }, + "response" : { + "status" : 200, + "bodyFileName" : "api_apikey_login-f9239d8d7004.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:09 GMT", + "Via" : "1.1 2501b465adde8e5aedc3f38e3dfcdc22.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "-_1Q-koYLp7wvxYeErARHA0miyJmU7PAN4hCsG49f4MNHRrgvugGbg==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "0dd56151-d106-3827-9981-7e970f5a3340", + "persistent" : true, + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-34", + "newScenarioState" : "scenario-3-api-apikey-login-35", + "insertionIndex" : 98 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-fd38313bebba.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-fd38313bebba.json deleted file mode 100644 index f404625e..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-fd38313bebba.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "id" : "8713c97f-9d52-324e-a859-b43f5e7f596c", - "name" : "api_apikey_login", - "request" : { - "url" : "/api/apikey/login", - "method" : "POST" - }, - "response" : { - "status" : 200, - "bodyFileName" : "api_apikey_login-fd38313bebba.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:22 GMT", - "Via" : "1.1 ffe9646b2ea911744e2d51fc0715cedc.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", - "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", - "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "6W3iaaNhnJW4QXhbwXX-Ny3xVKHUC_7otrnY7xDZnMRrxTMfNAanDQ==", - "Vary" : "Origin, Accept-Encoding", - "Expires" : "0", - "Surrogate-Control" : "no-store", - "Content-Type" : "application/json; charset=utf-8" - } - }, - "uuid" : "8713c97f-9d52-324e-a859-b43f5e7f596c", - "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-7", - "newScenarioState" : "scenario-1-api-apikey-login-8", - "insertionIndex" : 205 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-fda483633056.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-fda483633056.json deleted file mode 100644 index 3f2b4612..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-fda483633056.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "id" : "7fc7ac7d-600b-3bb1-bbeb-6c20419871bd", - "name" : "api_apikey_login", - "request" : { - "url" : "/api/apikey/login", - "method" : "POST" - }, - "response" : { - "status" : 200, - "bodyFileName" : "api_apikey_login-fda483633056.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:21 GMT", - "Via" : "1.1 82fa7f20ab5a12301da8e01f9493e222.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", - "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", - "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "e8tFNa9JscmsTVjGSnVGDaO-wzk69sBYdtoUlmnM9DCwmDpfiwHE6A==", - "Vary" : "Origin, Accept-Encoding", - "Expires" : "0", - "Surrogate-Control" : "no-store", - "Content-Type" : "application/json; charset=utf-8" - } - }, - "uuid" : "7fc7ac7d-600b-3bb1-bbeb-6c20419871bd", - "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-6", - "newScenarioState" : "scenario-1-api-apikey-login-7", - "insertionIndex" : 208 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-76be8e263561.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-fdcab32d6ed9.json similarity index 61% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-76be8e263561.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-fdcab32d6ed9.json index 263cef7a..478f76af 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-76be8e263561.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-fdcab32d6ed9.json @@ -1,5 +1,5 @@ { - "id" : "e16a04b6-af19-328e-8b53-ce3e473f0646", + "id" : "39c97fce-71e0-396b-8a8a-010d08b97490", "name" : "api_apikey_login", "request" : { "url" : "/api/apikey/login", @@ -7,28 +7,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "api_apikey_login-76be8e263561.json", + "bodyFileName" : "api_apikey_login-fdcab32d6ed9.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:23 GMT", + "Date" : "Sat, 07 Nov 2026 05:42:10 GMT", "Via" : "1.1 38842c146ccd8f527d2de72671759d96.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "cJTwBIvsPscaNh9gFOQkZqIVQR3GGEqky3DiOvIFTRUF5mg77aksPg==", + "X-Amz-Cf-Id" : "q4Jn8IYMRYeWFYpw1vzJrNJS4tpcnHUAsLIkG8UrziHaDg0qFa0kWQ==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "e16a04b6-af19-328e-8b53-ce3e473f0646", + "uuid" : "39c97fce-71e0-396b-8a8a-010d08b97490", "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-32", - "newScenarioState" : "scenario-1-api-apikey-login-33", - "insertionIndex" : 14 + "scenarioName" : "scenario-3-api-apikey-login", + "requiredScenarioState" : "scenario-3-api-apikey-login-35", + "newScenarioState" : "scenario-3-api-apikey-login-36", + "insertionIndex" : 95 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-fefa506fdca4.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-fefa506fdca4.json deleted file mode 100644 index 632b7d31..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/api_apikey_login-fefa506fdca4.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "id" : "e041b8ac-00aa-3b31-8b4c-accedff777cf", - "name" : "api_apikey_login", - "request" : { - "url" : "/api/apikey/login", - "method" : "POST" - }, - "response" : { - "status" : 200, - "bodyFileName" : "api_apikey_login-fefa506fdca4.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:28 GMT", - "Via" : "1.1 5af99d6f2fc1c569c253259aec683ee8.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", - "ETag" : "W/\"178-kKbrsfThc+xXlggXc9RQYV+Gr9I\"", - "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "nYNVFtZiWRhIfcbaX4_ftk-6LLnLA40rICOZAsxBG0JU0YeHkJpOYg==", - "Vary" : "Origin, Accept-Encoding", - "Expires" : "0", - "Surrogate-Control" : "no-store", - "Content-Type" : "application/json; charset=utf-8" - } - }, - "uuid" : "e041b8ac-00aa-3b31-8b4c-accedff777cf", - "persistent" : true, - "scenarioName" : "scenario-1-api-apikey-login", - "requiredScenarioState" : "scenario-1-api-apikey-login-19", - "newScenarioState" : "scenario-1-api-apikey-login-20", - "insertionIndex" : 81 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-fe50de9f8891.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-02d8fbcafc15.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-fe50de9f8891.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-02d8fbcafc15.json index 04fa12ba..04ac351d 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-fe50de9f8891.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-02d8fbcafc15.json @@ -1,5 +1,5 @@ { - "id" : "0330bea1-527a-317e-be6c-814c869fc6e8", + "id" : "ef409094-30d4-3e3d-ada1-82635c123b26", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '330d1666ca080a836d618432666bb2b1' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '94e09333c416fcebea6b0b8ad851a1c1' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-fe50de9f8891.json", + "bodyFileName" : "btql-02d8fbcafc15.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "37", - "x-bt-api-duration-ms" : "82", - "Date" : "Mon, 31 Aug 2026 17:38:16 GMT", + "x-bt-brainstore-duration-ms" : "73", + "x-bt-api-duration-ms" : "102", + "Date" : "Sat, 07 Nov 2026 05:43:35 GMT", "Via" : "1.1 38842c146ccd8f527d2de72671759d96.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "d54e920bcc502fbfad9f136960f0c602", - "X-Amz-Cf-Id" : "Dop9Uolfq-kgk3o6dSRxCNUNvPZDJqgKv-1m47BZdH1Wl8fV3hYFJA==", + "x-bt-internal-trace-id" : "9501b445b7988daeab9d9712cd4d2da2", + "X-Amz-Cf-Id" : "bR3DzSX23JrIypdpD-hq21L8tC2Tk0-u_qYkoXcYwYCruoXFeAKqnw==", + "x-bt-cursor" : "mOWs9vkmm8A", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "0330bea1-527a-317e-be6c-814c869fc6e8", + "uuid" : "ef409094-30d4-3e3d-ada1-82635c123b26", "persistent" : true, - "insertionIndex" : 162 + "insertionIndex" : 244 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-5abe910f4fc2.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-02f24d6451cb.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-5abe910f4fc2.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-02f24d6451cb.json index f1bc4f7e..8ab89629 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-5abe910f4fc2.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-02f24d6451cb.json @@ -1,5 +1,5 @@ { - "id" : "d7953501-ca45-3e5e-81d5-fc8c492c6ee4", + "id" : "bc459a07-3236-3f3c-9cb4-ab87244c444c", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '432e4184a74aaf5ff0a506e2519358bc' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '91acff2551babda681b61f49cf9ab9db' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-5abe910f4fc2.json", + "bodyFileName" : "btql-02f24d6451cb.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "80", - "x-bt-api-duration-ms" : "124", - "Date" : "Mon, 31 Aug 2026 17:38:18 GMT", + "x-bt-brainstore-duration-ms" : "92", + "x-bt-api-duration-ms" : "98", + "Date" : "Sat, 07 Nov 2026 05:43:41 GMT", "Via" : "1.1 e088ff8bff69861ed7fd37fbb518f0c2.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "50e5581586cda2156865f37c6e0ee501", - "X-Amz-Cf-Id" : "uwQ8OF2ZD7xbxFEsLJZ3u3brCp5WS_Xr9AmB7xXLeCLqKC2G0EaN2g==", + "x-bt-internal-trace-id" : "2c17f66072386e4dc16f833ee0cadaa7", + "X-Amz-Cf-Id" : "qC5-8xt0Sm1zabcihAFQx_tRaQh2ToTw3SZNSDc6UpL3Ikbo1t8keQ==", + "x-bt-cursor" : "mOWs80kDY8A", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "d7953501-ca45-3e5e-81d5-fc8c492c6ee4", + "uuid" : "bc459a07-3236-3f3c-9cb4-ab87244c444c", "persistent" : true, - "insertionIndex" : 156 + "insertionIndex" : 222 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-047f162fb1a5.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-047f162fb1a5.json new file mode 100644 index 00000000..08997d57 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-047f162fb1a5.json @@ -0,0 +1,43 @@ +{ + "id" : "cdcb9fa4-df55-345c-8cc0-e6c157ac1594", + "name" : "btql", + "request" : { + "url" : "/btql", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'a0c98c2110e13ff3194bf3415366fc61' ORDER BY created ASC LIMIT 1000\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "btql-047f162fb1a5.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "3", + "X-Amz-Cf-Pop" : "SEA900-P9", + "x-bt-brainstore-duration-ms" : "76", + "x-bt-api-duration-ms" : "82", + "Date" : "Sat, 07 Nov 2026 05:43:45 GMT", + "Via" : "1.1 5af99d6f2fc1c569c253259aec683ee8.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "private, no-cache", + "Access-Control-Allow-Credentials" : "true", + "x-bt-internal-trace-id" : "402ab782f4dfc55f94484e41da29cd75", + "X-Amz-Cf-Id" : "NBPhRXbh-6DMUKljQxacGMOFPHVvLO5ZUjCLl3DjyRm7qQn4qJoYgg==", + "x-bt-cursor" : "mOWs91DyzgA", + "Vary" : "Origin", + "Content-Type" : "application/json" + } + }, + "uuid" : "cdcb9fa4-df55-345c-8cc0-e6c157ac1594", + "persistent" : true, + "insertionIndex" : 210 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-04a51896a528.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-04a51896a528.json new file mode 100644 index 00000000..cd9b0a60 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-04a51896a528.json @@ -0,0 +1,43 @@ +{ + "id" : "48fd322b-ad9d-390e-935a-cafbf80542da", + "name" : "btql", + "request" : { + "url" : "/btql", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'b58c14c4b49799040a55a264a6d2cd39' ORDER BY created ASC LIMIT 1000\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "btql-04a51896a528.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", + "X-Amz-Cf-Pop" : "SEA900-P9", + "x-bt-brainstore-duration-ms" : "58", + "x-bt-api-duration-ms" : "64", + "Date" : "Sat, 07 Nov 2026 05:43:43 GMT", + "Via" : "1.1 0ddbf3138c96d4b7c9f8047edb515414.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "private, no-cache", + "Access-Control-Allow-Credentials" : "true", + "x-bt-internal-trace-id" : "f9e8c535a17048df728ee6543b5883d1", + "X-Amz-Cf-Id" : "GALK202aXceFHyzL8_9XEL-nAR1kiioEtMViRUoyAZDkuz8lkoT1tw==", + "x-bt-cursor" : "mOWs8ljs/MA", + "Vary" : "Origin", + "Content-Type" : "application/json" + } + }, + "uuid" : "48fd322b-ad9d-390e-935a-cafbf80542da", + "persistent" : true, + "insertionIndex" : 217 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-5c166c476473.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-05d5066c61b2.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-5c166c476473.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-05d5066c61b2.json index 13382acb..437dec9e 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-5c166c476473.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-05d5066c61b2.json @@ -1,5 +1,5 @@ { - "id" : "2711c0f5-cbb6-30c7-9744-88e985ad996a", + "id" : "b067603b-d284-37c1-9c4a-ba34e64f0d68", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '35749b8a55a0864106d2c815fdf661ae' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '5b5c785e68788a94dede6206c232d78b' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-5c166c476473.json", + "bodyFileName" : "btql-05d5066c61b2.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "55", - "x-bt-api-duration-ms" : "107", - "Date" : "Mon, 31 Aug 2026 17:38:19 GMT", + "x-bt-brainstore-duration-ms" : "75", + "x-bt-api-duration-ms" : "81", + "Date" : "Sat, 07 Nov 2026 05:43:48 GMT", "Via" : "1.1 6ebf93cd3baadad602a5fd706f0df16e.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "8cd33ceecddb45f1e65cd34ed5e9fdfc", - "X-Amz-Cf-Id" : "cKM-nVUm4IFgBCERohp1jZ3vMGpygqOT5eCPQ60TL6PC0Afozg0kkA==", + "x-bt-internal-trace-id" : "ce86df11bccb740de6282d2853d35612", + "X-Amz-Cf-Id" : "XqAy0JnLFwCUSsDf1V2sxFx6EM_ZQ_gAAmrdw53Vlpk3VGcWLuvOLA==", + "x-bt-cursor" : "mOWs8qBVBEA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "2711c0f5-cbb6-30c7-9744-88e985ad996a", + "uuid" : "b067603b-d284-37c1-9c4a-ba34e64f0d68", "persistent" : true, - "insertionIndex" : 152 + "insertionIndex" : 199 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-0817dc8e11db.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-0817dc8e11db.json deleted file mode 100644 index 60df339b..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-0817dc8e11db.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "id" : "dd5b33ee-9fc6-3a70-be70-ccf95ba2d5fb", - "name" : "btql", - "request" : { - "url" : "/btql", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'b3c10223d70547406be9243939966b1a' ORDER BY created ASC LIMIT 1000\"}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "btql-0817dc8e11db.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "x-bt-brainstore-duration-ms" : "98", - "x-bt-api-duration-ms" : "104", - "Date" : "Fri, 16 Oct 2026 19:22:23 GMT", - "Via" : "1.1 98b0bd91dae8cd13230da037f5a4d5e0.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "private, no-cache", - "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "259df3ec341a8e0390b8050254f985e0", - "X-Amz-Cf-Id" : "086YvJ-Sl1tj2Qa_8UNeg3S7QGMbDP9-8ES43PFR8ydjffkNEqNTJQ==", - "Vary" : "Origin", - "Content-Type" : "application/json" - } - }, - "uuid" : "dd5b33ee-9fc6-3a70-be70-ccf95ba2d5fb", - "persistent" : true, - "insertionIndex" : 218 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-0196bdc4536f.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-12273247ed6f.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-0196bdc4536f.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-12273247ed6f.json index 94e19c12..86f92d05 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-0196bdc4536f.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-12273247ed6f.json @@ -1,5 +1,5 @@ { - "id" : "cbeeb6ef-a665-3579-ab16-5f32c1b065a7", + "id" : "97d8bb72-e7a5-3529-805b-729c9b57921b", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'ff642aef149e2798f70003a539499a49' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '27b37d46ad94fd0a90280626514b534a' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-0196bdc4536f.json", + "bodyFileName" : "btql-12273247ed6f.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "46", - "x-bt-api-duration-ms" : "108", - "Date" : "Mon, 31 Aug 2026 17:38:23 GMT", + "x-bt-brainstore-duration-ms" : "81", + "x-bt-api-duration-ms" : "86", + "Date" : "Sat, 07 Nov 2026 05:43:46 GMT", "Via" : "1.1 e8b22a8fa8511f8f972b4965a9af80b4.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "659b1ab049fe7ef8221d2e1c9b135de1", - "X-Amz-Cf-Id" : "vsnrxKATQm6AVhNyUB2W7dufm19Wq5yNJrd-h2nWgX0pRdtMPw7q9g==", + "x-bt-internal-trace-id" : "14065e287bb9f20293c4f3f8b474ecb8", + "X-Amz-Cf-Id" : "GP0y-Q5gptla1oddJB00wdt48u9ORk9uoGplXyEqQ7lhAT6a273rAA==", + "x-bt-cursor" : "mOWs+LaTigA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "cbeeb6ef-a665-3579-ab16-5f32c1b065a7", + "uuid" : "97d8bb72-e7a5-3529-805b-729c9b57921b", "persistent" : true, - "insertionIndex" : 136 + "insertionIndex" : 208 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-8ba1d50d5105.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-13d6ab5807b3.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-8ba1d50d5105.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-13d6ab5807b3.json index f2feeb8f..45a712da 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-8ba1d50d5105.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-13d6ab5807b3.json @@ -1,5 +1,5 @@ { - "id" : "eb5c8d56-05c9-34cd-afe8-b1fd04cecad9", + "id" : "78ff8f64-71ae-38da-a175-3f557c8ab1c2", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'cfeeeef1fadd4cfbf965ede95b78f38c' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '3962e5d9b664eb70307168b119de9831' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-8ba1d50d5105.json", + "bodyFileName" : "btql-13d6ab5807b3.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "27", - "x-bt-api-duration-ms" : "90", - "Date" : "Mon, 31 Aug 2026 17:38:15 GMT", + "x-bt-brainstore-duration-ms" : "78", + "x-bt-api-duration-ms" : "84", + "Date" : "Sat, 07 Nov 2026 05:43:49 GMT", "Via" : "1.1 04efc78121acf5d40974e6a71bebce20.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "26bc7b3406cae2aa1b5fe07639b24648", - "X-Amz-Cf-Id" : "O2lp3HxtEzOxfeyxkd67g9lSuXmF5Bdu1fAhm_hXnisTjf7Ps_TADw==", + "x-bt-internal-trace-id" : "1aef67a4bf35b5003cd4bd32b18d0464", + "X-Amz-Cf-Id" : "pqtFZI_C7ZEllXSfxb5BZcoRSgAKdm7zrbInNCLiXQ91wZxPWG888w==", + "x-bt-cursor" : "mOWs82B/WkA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "eb5c8d56-05c9-34cd-afe8-b1fd04cecad9", + "uuid" : "78ff8f64-71ae-38da-a175-3f557c8ab1c2", "persistent" : true, - "insertionIndex" : 166 + "insertionIndex" : 196 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-6c0039c3404e.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-18ce66f622a0.json similarity index 55% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-6c0039c3404e.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-18ce66f622a0.json index 0cc4f932..efcd1701 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-6c0039c3404e.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-18ce66f622a0.json @@ -1,5 +1,5 @@ { - "id" : "2089c6be-9a52-367e-b4f1-7142a5b6630e", + "id" : "61d2eb5b-ef37-3b2a-865f-87cbb3d091f4", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'c48d6204a6ea9667d1f15a8d9fd15567' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '5139222b62f43da509645911d5c57830' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-6c0039c3404e.json", + "bodyFileName" : "btql-18ce66f622a0.json", "headers" : { "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", + "x-bt-count" : "2", + "X-Amz-Cf-Pop" : "SEA900-P9", "x-bt-brainstore-duration-ms" : "79", "x-bt-api-duration-ms" : "84", - "Date" : "Thu, 15 Oct 2026 23:33:15 GMT", - "Via" : "1.1 b3ccaedda78c63d5967b57382ceb4cbe.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:43:49 GMT", + "Via" : "1.1 55a62c25b77c24cde4014f567fd1c550.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "57447f010c123442129140937c34cec5", - "X-Amz-Cf-Id" : "sZRn4qEyx-ba1xfIUn-5bc_gc3aUDgT4gAum2MNXwlsn_QPpPMaI_w==", + "x-bt-internal-trace-id" : "cab504fae94d9bbfc082cbc6f477a9bb", + "X-Amz-Cf-Id" : "lpPetx9edldMWa811xpbH4eeLuCIvqEuoCAUd8BT3SPOIJBI2gBomA==", + "x-bt-cursor" : "mOWs8Z4vM4A", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "2089c6be-9a52-367e-b4f1-7142a5b6630e", + "uuid" : "61d2eb5b-ef37-3b2a-865f-87cbb3d091f4", "persistent" : true, - "insertionIndex" : 212 + "insertionIndex" : 195 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-191ea3b4c6f2.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-191ea3b4c6f2.json deleted file mode 100644 index e5c29bae..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-191ea3b4c6f2.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "id" : "079d1ad0-0c69-31ab-833c-071ca4ad623c", - "name" : "btql", - "request" : { - "url" : "/btql", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'bdd89d0a6badb822fed3e1dcf94ffe96' ORDER BY created ASC LIMIT 1000\"}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "btql-191ea3b4c6f2.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "x-bt-brainstore-duration-ms" : "103", - "x-bt-api-duration-ms" : "108", - "Date" : "Fri, 16 Oct 2026 19:22:23 GMT", - "Via" : "1.1 d9d466ed70d93f34739969f91577ec74.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "private, no-cache", - "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "ead1993cb8d7879f5744ae0a2cb05b57", - "X-Amz-Cf-Id" : "1IsTGDcMCC5IofckctUg8-cdLKl7wlwz69CEEIkXqSPoflS4T3kCCw==", - "Vary" : "Origin", - "Content-Type" : "application/json" - } - }, - "uuid" : "079d1ad0-0c69-31ab-833c-071ca4ad623c", - "persistent" : true, - "insertionIndex" : 217 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-68a934551d9c.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-1bf2019487e0.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-68a934551d9c.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-1bf2019487e0.json index 9c7804bc..cd8d7779 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-68a934551d9c.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-1bf2019487e0.json @@ -1,5 +1,5 @@ { - "id" : "865a182d-6975-39ba-90f0-d3121ecae9b2", + "id" : "2b336cb7-3c9c-3655-992a-4733b4afa1ec", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '7c6bbab7a5ef8898e6e9e45c2c15e717' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'ce9cca90fbb77a04ae4cc4b3e680a617' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-68a934551d9c.json", + "bodyFileName" : "btql-1bf2019487e0.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "40", - "x-bt-api-duration-ms" : "112", - "Date" : "Mon, 31 Aug 2026 17:38:20 GMT", + "x-bt-brainstore-duration-ms" : "61", + "x-bt-api-duration-ms" : "67", + "Date" : "Sat, 07 Nov 2026 05:43:37 GMT", "Via" : "1.1 88f286e23c15fc2f62a741db8207a67a.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "6c7d47679773ba5e37ec01998b5cc657", - "X-Amz-Cf-Id" : "M7kTgXGYFzgH2HQuwcS7h7l1xK_f40s3MlxTm0fD8cQVvJpPHpogJA==", + "x-bt-internal-trace-id" : "21521511fde0f08aab3640ef7be2ae5a", + "X-Amz-Cf-Id" : "zgYS9UT3_zCDZ7e9vpuB88Tpr2k7axctCBXIVrejlKjtfnNvaMpyZA==", + "x-bt-cursor" : "mOWs9csTEMA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "865a182d-6975-39ba-90f0-d3121ecae9b2", + "uuid" : "2b336cb7-3c9c-3655-992a-4733b4afa1ec", "persistent" : true, - "insertionIndex" : 148 + "insertionIndex" : 239 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-1d5f82c7a775.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-1d5f82c7a775.json new file mode 100644 index 00000000..967f2e85 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-1d5f82c7a775.json @@ -0,0 +1,43 @@ +{ + "id" : "3fcd1d5e-ebba-3e5f-aea9-95e9043658e0", + "name" : "btql", + "request" : { + "url" : "/btql", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '0a74339e5d0fb0cef80c422bf4625dfe' ORDER BY created ASC LIMIT 1000\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "btql-1d5f82c7a775.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "3", + "X-Amz-Cf-Pop" : "SEA900-P9", + "x-bt-brainstore-duration-ms" : "101", + "x-bt-api-duration-ms" : "107", + "Date" : "Sat, 07 Nov 2026 05:43:40 GMT", + "Via" : "1.1 0ddbf3138c96d4b7c9f8047edb515414.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "private, no-cache", + "Access-Control-Allow-Credentials" : "true", + "x-bt-internal-trace-id" : "5a268ec24f5a88980c258c32222c5ac2", + "X-Amz-Cf-Id" : "mfrozhpjnM4UzpmWneP3BtgUhnAo8dumT2o2xVnWp6IWRoFY1yS86w==", + "x-bt-cursor" : "mOWs+EVT1wA", + "Vary" : "Origin", + "Content-Type" : "application/json" + } + }, + "uuid" : "3fcd1d5e-ebba-3e5f-aea9-95e9043658e0", + "persistent" : true, + "insertionIndex" : 229 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-1e054ba27650.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-1e054ba27650.json deleted file mode 100644 index b2bcf9ac..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-1e054ba27650.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "id" : "682b73da-a2c6-368b-8ab9-b5d5f9185db5", - "name" : "btql", - "request" : { - "url" : "/btql", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '7cb44a1dc39d5fd0e223f7f6dd88bdc1' ORDER BY created ASC LIMIT 1000\"}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "btql-1e054ba27650.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "x-bt-brainstore-duration-ms" : "88", - "x-bt-api-duration-ms" : "94", - "Date" : "Thu, 15 Oct 2026 23:33:14 GMT", - "Via" : "1.1 96f6dcbb4d7267cad6eb0747bce72024.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "private, no-cache", - "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "33a1da27ca5b3eadf2263017fc7f2388", - "X-Amz-Cf-Id" : "AaoLkiqOg6RXH3NuVKuJWfIDJv80JHub5kON9BFF-320rGsv3Dm5qA==", - "Vary" : "Origin", - "Content-Type" : "application/json" - } - }, - "uuid" : "682b73da-a2c6-368b-8ab9-b5d5f9185db5", - "persistent" : true, - "insertionIndex" : 216 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-37c43c36743a.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-1e19010a5407.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-37c43c36743a.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-1e19010a5407.json index 996fc80f..e8c97e18 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-37c43c36743a.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-1e19010a5407.json @@ -1,5 +1,5 @@ { - "id" : "d59e63e4-c0b5-3a0b-8845-c8af0f66f1d2", + "id" : "9e7cef60-33a0-3633-b643-06b4c8c00896", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '93dc61f8ad224ff689a72da433eb5cfa' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '8c8a59d0f664a5b775620b7ed5f212f7' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-37c43c36743a.json", + "bodyFileName" : "btql-1e19010a5407.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "27", - "x-bt-api-duration-ms" : "72", - "Date" : "Mon, 31 Aug 2026 17:38:21 GMT", + "x-bt-brainstore-duration-ms" : "57", + "x-bt-api-duration-ms" : "62", + "Date" : "Sat, 07 Nov 2026 05:43:39 GMT", "Via" : "1.1 04efc78121acf5d40974e6a71bebce20.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "2150f83440137130cd290b58b3b6587d", - "X-Amz-Cf-Id" : "URR-uehnkTwZxXllos0mPzz4VbVLGe2CSqYtOR6W5tI50nd25uYtfg==", + "x-bt-internal-trace-id" : "154306a1983eba16631c0fdcd3505e50", + "X-Amz-Cf-Id" : "BMnkd5NFh7bkgEnttsOONAnhrwxXDdR8w8Ns3E83VW1B4iW8aWntZQ==", + "x-bt-cursor" : "mOWs9v5WH4A", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "d59e63e4-c0b5-3a0b-8845-c8af0f66f1d2", + "uuid" : "9e7cef60-33a0-3633-b643-06b4c8c00896", "persistent" : true, - "insertionIndex" : 144 + "insertionIndex" : 230 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-566d042bdb8f.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-2f1bb37c30c3.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-566d042bdb8f.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-2f1bb37c30c3.json index ab75e07b..22a60df3 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-566d042bdb8f.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-2f1bb37c30c3.json @@ -1,5 +1,5 @@ { - "id" : "958c6295-1d5e-3a1c-befb-eade49237bc4", + "id" : "144ca49e-e0fd-3b76-a239-abab40cd3a83", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'e29913042d28ee431622b2f679632a84' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'eafa66820cf0420f1d026df2aa1b76b4' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-566d042bdb8f.json", + "bodyFileName" : "btql-2f1bb37c30c3.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "167", - "x-bt-api-duration-ms" : "319", - "Date" : "Mon, 31 Aug 2026 17:38:13 GMT", + "x-bt-brainstore-duration-ms" : "71", + "x-bt-api-duration-ms" : "76", + "Date" : "Sat, 07 Nov 2026 05:43:36 GMT", "Via" : "1.1 a3134c0c893f03d1e9a9c657d09af7cc.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "e6d3dd19c8693cfe98890b6c6c18aa79", - "X-Amz-Cf-Id" : "oSoMkPs7iT9BuXuCSTJCpfobn5qsFEdzEbAPu6nJVX3RXqtKMyodow==", + "x-bt-internal-trace-id" : "92ba784b1f227d6fc608949719166980", + "X-Amz-Cf-Id" : "LxcMQP2AvdaVxoih-GQoFwv2xbXzdsG1w_hrUy2QzW5WrATG_C3bSg==", + "x-bt-cursor" : "mOWs9Vqo/UA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "958c6295-1d5e-3a1c-befb-eade49237bc4", + "uuid" : "144ca49e-e0fd-3b76-a239-abab40cd3a83", "persistent" : true, - "insertionIndex" : 170 + "insertionIndex" : 242 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-297722e748ab.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-318deffaeaf2.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-297722e748ab.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-318deffaeaf2.json index 9e7903da..f439f275 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-297722e748ab.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-318deffaeaf2.json @@ -1,5 +1,5 @@ { - "id" : "119419fd-2193-3720-9714-2faa122524be", + "id" : "eae7774b-847a-32ca-85ea-4a6dd27fdf97", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'e116d5f530b97511b00908b55260b6ac' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'a0b2c4b02c9a423cf97f2e2274de7e3a' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-297722e748ab.json", + "bodyFileName" : "btql-318deffaeaf2.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "231", - "x-bt-api-duration-ms" : "293", - "Date" : "Mon, 31 Aug 2026 17:38:07 GMT", + "x-bt-brainstore-duration-ms" : "183", + "x-bt-api-duration-ms" : "189", + "Date" : "Sat, 07 Nov 2026 05:43:44 GMT", "Via" : "1.1 b2b215a89cc2734b2940e2eb59ea4bd0.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "b081d66fd60b81ba8eb3abd0b67615dd", - "X-Amz-Cf-Id" : "gbOepl_QmLqj866Z5hxP1ltXLuuO62xoH2Meo9OSIz_req1fbFBKDw==", + "x-bt-internal-trace-id" : "205d28aedb7bbf688d541aece73ef762", + "X-Amz-Cf-Id" : "YjbasWtSY0yY2S7guxek8wsIdU1CKBkZtNHfFSh9OKTP2tUW5RC46A==", + "x-bt-cursor" : "mOWs9QYFgkA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "119419fd-2193-3720-9714-2faa122524be", + "uuid" : "eae7774b-847a-32ca-85ea-4a6dd27fdf97", "persistent" : true, - "insertionIndex" : 186 + "insertionIndex" : 212 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-a9fc5ea16a1f.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-361ab23b7811.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-a9fc5ea16a1f.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-361ab23b7811.json index a1a79f2e..c862f82e 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-a9fc5ea16a1f.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-361ab23b7811.json @@ -1,5 +1,5 @@ { - "id" : "b3a1930d-5929-37cf-ada1-dfc7102e0642", + "id" : "4d81cb52-5906-3ec0-9534-cf8facfa5ded", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'e44c600cc874393cf3747c6e316147fd' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'ba91bdaa5b4f9b60ba1075f2d72cf1cb' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-a9fc5ea16a1f.json", + "bodyFileName" : "btql-361ab23b7811.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "76", - "x-bt-api-duration-ms" : "122", - "Date" : "Mon, 31 Aug 2026 17:38:14 GMT", + "x-bt-brainstore-duration-ms" : "75", + "x-bt-api-duration-ms" : "142", + "Date" : "Sat, 07 Nov 2026 05:43:36 GMT", "Via" : "1.1 b3a8bdee20374465a3f2aa64f19ec30e.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "e8da710544b0b6782ac99d0d86dfcfd1", - "X-Amz-Cf-Id" : "v1zCyg-dsrcnEV-KKxQLiUpMhzaSzMaJCuBRuWd2xldQMdUdQj5MQQ==", + "x-bt-internal-trace-id" : "2d39117f00384117344ef632adbc5533", + "X-Amz-Cf-Id" : "IZ55TXGAl2AMFX8INSqWHIKLZ627y0xlijPFYMfSSCxhOfsMntawEQ==", + "x-bt-cursor" : "mOWs9TjN/0A", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "b3a1930d-5929-37cf-ada1-dfc7102e0642", + "uuid" : "4d81cb52-5906-3ec0-9534-cf8facfa5ded", "persistent" : true, - "insertionIndex" : 167 + "insertionIndex" : 243 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-a947b6b65b21.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-397b141d6c6f.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-a947b6b65b21.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-397b141d6c6f.json index 9d228099..3f203116 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-a947b6b65b21.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-397b141d6c6f.json @@ -1,5 +1,5 @@ { - "id" : "aaa641b0-50c5-39aa-81b2-b2f98cc19e11", + "id" : "1baa6607-86ee-3808-a957-bd337be5742f", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '90692efc4e0740ac640144f47923b687' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'afc9c6a665d3d6b18946e411bd0b516c' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-a947b6b65b21.json", + "bodyFileName" : "btql-397b141d6c6f.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "26", - "x-bt-api-duration-ms" : "87", - "Date" : "Mon, 31 Aug 2026 17:38:19 GMT", + "x-bt-brainstore-duration-ms" : "59", + "x-bt-api-duration-ms" : "65", + "Date" : "Sat, 07 Nov 2026 05:43:40 GMT", "Via" : "1.1 bef90eae512e70457d6a8a77b097a124.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "2255e153335b5ef81a5c3aad3bb18f41", - "X-Amz-Cf-Id" : "2blwa6RHG-fCPtKw7VpVsx8WO1leHHhxGHNY8oR2sWMfrF5-AAPP6w==", + "x-bt-internal-trace-id" : "042cb7f483225e02359faf65128ea348", + "X-Amz-Cf-Id" : "SK_zZoJ1s5A7Txni2a5lLcu5xC6FnYLFNA680l5xps7YXKgGuEx8hQ==", + "x-bt-cursor" : "mOWs9VJBgAA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "aaa641b0-50c5-39aa-81b2-b2f98cc19e11", + "uuid" : "1baa6607-86ee-3808-a957-bd337be5742f", "persistent" : true, - "insertionIndex" : 151 + "insertionIndex" : 227 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-40417e427a79.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-40417e427a79.json deleted file mode 100644 index 88386484..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-40417e427a79.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "id" : "f29ab6ab-e350-3717-a018-c3500c16e38c", - "name" : "btql", - "request" : { - "url" : "/btql", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '04439a140443e6d84a74e6f5bc7804cd' ORDER BY created ASC LIMIT 1000\"}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "btql-40417e427a79.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "x-bt-brainstore-duration-ms" : "318", - "x-bt-api-duration-ms" : "322", - "Date" : "Thu, 15 Oct 2026 23:33:15 GMT", - "Via" : "1.1 a40ac7dad0e348fc93799233c9af5960.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "private, no-cache", - "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "1781c716a2c7aa8b643bb3a265c1d546", - "X-Amz-Cf-Id" : "ZF32OcVpC-o6dz4R6Bu4HOs9ePQShEt3zZaOs5l8ngBq4rrzyiT4Zg==", - "Vary" : "Origin", - "Content-Type" : "application/json" - } - }, - "uuid" : "f29ab6ab-e350-3717-a018-c3500c16e38c", - "persistent" : true, - "insertionIndex" : 213 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-4a4fda911d20.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-4a4fda911d20.json new file mode 100644 index 00000000..ec6acd68 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-4a4fda911d20.json @@ -0,0 +1,43 @@ +{ + "id" : "06fccca9-827a-3bfd-910e-c334c7a9334f", + "name" : "btql", + "request" : { + "url" : "/btql", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '538a223a7ed99db40fd2d68a221051d3' ORDER BY created ASC LIMIT 1000\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "btql-4a4fda911d20.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", + "X-Amz-Cf-Pop" : "SEA900-P9", + "x-bt-brainstore-duration-ms" : "204", + "x-bt-api-duration-ms" : "232", + "Date" : "Sat, 07 Nov 2026 05:43:34 GMT", + "Via" : "1.1 1271197444822e7c59413a59ecbcecd6.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "private, no-cache", + "Access-Control-Allow-Credentials" : "true", + "x-bt-internal-trace-id" : "c2828eab86317ba0a69f9fc41cd4e878", + "X-Amz-Cf-Id" : "1Ki2dfc0pD0hSnDw5zqheDgtUTTOa1fO3IfWmPw9yLIkUXCo0I4gwQ==", + "x-bt-cursor" : "mOWs9i7aR0A", + "Vary" : "Origin", + "Content-Type" : "application/json" + } + }, + "uuid" : "06fccca9-827a-3bfd-910e-c334c7a9334f", + "persistent" : true, + "insertionIndex" : 246 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-ce94618268f0.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-55c91b0bba7b.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-ce94618268f0.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-55c91b0bba7b.json index 36c4d4d2..d78602d7 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-ce94618268f0.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-55c91b0bba7b.json @@ -1,5 +1,5 @@ { - "id" : "550971c6-afd6-3864-a3e7-623c304f0035", + "id" : "0181e77f-62d9-3cd0-bd2c-681eb2d5654b", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '4a0404b3bfd3aebf88349a7c4b026ac3' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'd2bfa5d17d3591ae848384eddd7724a9' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-ce94618268f0.json", + "bodyFileName" : "btql-55c91b0bba7b.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "112", - "x-bt-api-duration-ms" : "185", - "Date" : "Mon, 31 Aug 2026 17:38:17 GMT", + "x-bt-brainstore-duration-ms" : "62", + "x-bt-api-duration-ms" : "67", + "Date" : "Sat, 07 Nov 2026 05:43:50 GMT", "Via" : "1.1 dea0b5e705fff834db8ae3992ea09cfa.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "63c73a1da0417b7e6c25bb5feb81dc4f", - "X-Amz-Cf-Id" : "7E0JotZ2ZmFlbjodD7nUGm-eEKYoQZ7l2Z_4xFFffi_CG8lCwHde8Q==", + "x-bt-internal-trace-id" : "b414ab9839b594e5d46e0cb340aa935a", + "X-Amz-Cf-Id" : "gVEcwR2yGmbpVEwYpK2v3jwOy0-BHR5920evP7Ps9DE0N26tgXJLpA==", + "x-bt-cursor" : "mOWs8mbBBsA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "550971c6-afd6-3864-a3e7-623c304f0035", + "uuid" : "0181e77f-62d9-3cd0-bd2c-681eb2d5654b", "persistent" : true, - "insertionIndex" : 157 + "insertionIndex" : 192 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-55ea4a437a95.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-55ea4a437a95.json new file mode 100644 index 00000000..7da9a11f --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-55ea4a437a95.json @@ -0,0 +1,43 @@ +{ + "id" : "36435990-efff-3351-b330-81524281dae2", + "name" : "btql", + "request" : { + "url" : "/btql", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '882dd8c112437b6edded2a827fc505a4' ORDER BY created ASC LIMIT 1000\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "btql-55ea4a437a95.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", + "X-Amz-Cf-Pop" : "SEA900-P9", + "x-bt-brainstore-duration-ms" : "59", + "x-bt-api-duration-ms" : "65", + "Date" : "Sat, 07 Nov 2026 05:43:50 GMT", + "Via" : "1.1 0ddbf3138c96d4b7c9f8047edb515414.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "private, no-cache", + "Access-Control-Allow-Credentials" : "true", + "x-bt-internal-trace-id" : "ffa561d8f8ffda030cdbca1732c38f8d", + "X-Amz-Cf-Id" : "od3Hkf4peoL89MAVRykTyzyE2WOBzDEIRadj8HepP7AP4SV8HcfyKg==", + "x-bt-cursor" : "mOWs8ilNNwA", + "Vary" : "Origin", + "Content-Type" : "application/json" + } + }, + "uuid" : "36435990-efff-3351-b330-81524281dae2", + "persistent" : true, + "insertionIndex" : 193 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-9705d0232be4.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-56afb9441e4d.json similarity index 54% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-9705d0232be4.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-56afb9441e4d.json index 4e711cf2..6cab6276 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-9705d0232be4.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-56afb9441e4d.json @@ -1,5 +1,5 @@ { - "id" : "d49267b7-9342-3cdc-bd29-ca607d9409f4", + "id" : "acf91c52-7ca5-3a3e-ab41-723bc0abc547", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'c7dc1f7c254977e529336e28e4586174' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '2bed951c667e8b07b5e2b59fa2537f59' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-9705d0232be4.json", + "bodyFileName" : "btql-56afb9441e4d.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "36", + "x-bt-brainstore-duration-ms" : "76", "x-bt-api-duration-ms" : "82", - "Date" : "Mon, 31 Aug 2026 17:38:20 GMT", - "Via" : "1.1 b2b215a89cc2734b2940e2eb59ea4bd0.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:43:43 GMT", + "Via" : "1.1 a6be96637dfcb93ee417719bb21d57d0.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "21b226b03bd15c4fc19207b7e465ec3c", - "X-Amz-Cf-Id" : "1ZApvUmD0BS689zlGwWZTgVojygxvnRs1xcpeu1LDGnZk-cPmdy5NA==", + "x-bt-internal-trace-id" : "867ca602f05fb96252307248f9d18cb7", + "X-Amz-Cf-Id" : "ccgXUGYdeyVWaWdqcjotCt6w1HInV0BogmmWIW56biuwdWrgSj4OrQ==", + "x-bt-cursor" : "mOWs9GGxBwA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "d49267b7-9342-3cdc-bd29-ca607d9409f4", + "uuid" : "acf91c52-7ca5-3a3e-ab41-723bc0abc547", "persistent" : true, - "insertionIndex" : 149 + "insertionIndex" : 215 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-167536065e72.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-5b3d94cef928.json similarity index 58% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-167536065e72.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-5b3d94cef928.json index a00f7d96..5e1aef2f 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-167536065e72.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-5b3d94cef928.json @@ -1,5 +1,5 @@ { - "id" : "587824cf-b473-3c9d-ac15-be951deb9093", + "id" : "f0f12c95-77fc-30ff-9a49-ed34466394c2", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'bbbdd8b7de6cbab16e56bdc161c13c12' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'f50a58415b9ef5603f6c822627c9f4b3' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-167536065e72.json", + "bodyFileName" : "btql-5b3d94cef928.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "51", + "x-bt-brainstore-duration-ms" : "95", "x-bt-api-duration-ms" : "100", - "Date" : "Mon, 31 Aug 2026 17:38:08 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:38 GMT", "Via" : "1.1 7f26c41dda80bd7d50ccec2be87c9c3e.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "bd91d6baa20df5ffb59db154ca827bba", - "X-Amz-Cf-Id" : "otEFM2okrIa4r8KnRwtP2PtaiCp72nJ9gChyEdbLsyzf5BZMxA9b5A==", + "x-bt-internal-trace-id" : "a077018218cd998e543fdfd9d4e63330", + "X-Amz-Cf-Id" : "SOeN1_dOzOGT8jVmQlgiXmJSQW4nGgPFveramhZmbvKgZ90ziKHgIA==", + "x-bt-cursor" : "mOWs9KDumkA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "587824cf-b473-3c9d-ac15-be951deb9093", + "uuid" : "f0f12c95-77fc-30ff-9a49-ed34466394c2", "persistent" : true, - "insertionIndex" : 182 + "insertionIndex" : 235 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-a7697255cedb.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-5d922d28d0a5.json similarity index 53% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-a7697255cedb.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-5d922d28d0a5.json index 55e368d1..76dc004d 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-a7697255cedb.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-5d922d28d0a5.json @@ -1,5 +1,5 @@ { - "id" : "7419dc41-5d37-30fd-84c0-844ac8fc742d", + "id" : "2ec4178f-3a6e-33e8-985b-3f0841f786b0", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '16a34d881a9e91286be768abb918cbc2' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '1f9993dca9d591aba81f34a3c6b67d85' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-a7697255cedb.json", + "bodyFileName" : "btql-5d922d28d0a5.json", "headers" : { "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", + "x-bt-count" : "2", + "X-Amz-Cf-Pop" : "SEA900-P9", "x-bt-brainstore-duration-ms" : "96", - "x-bt-api-duration-ms" : "100", - "Date" : "Thu, 15 Oct 2026 23:33:15 GMT", - "Via" : "1.1 ddea1c07643e5e0bfceb34480eebdc52.cloudfront.net (CloudFront)", + "x-bt-api-duration-ms" : "102", + "Date" : "Sat, 07 Nov 2026 05:43:45 GMT", + "Via" : "1.1 2501b465adde8e5aedc3f38e3dfcdc22.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "53f5359f736c01901249cc65819689c1", - "X-Amz-Cf-Id" : "XY_16bQhFHGYcpcB2XCVJLqtGh3gflh3vCPQ-BXLpFzKYshkhcLLQA==", + "x-bt-internal-trace-id" : "8dbce15f506663b130e9e1da6c569819", + "X-Amz-Cf-Id" : "OM0IcFXDUUfKoIJxYqSdNvkbacM79sZDxdPq5bgP1OEj0nHqaTa5cA==", + "x-bt-cursor" : "mOWs+Dpre0A", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "7419dc41-5d37-30fd-84c0-844ac8fc742d", + "uuid" : "2ec4178f-3a6e-33e8-985b-3f0841f786b0", "persistent" : true, - "insertionIndex" : 214 + "insertionIndex" : 209 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-67d7f8507c92.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-6412470532bc.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-67d7f8507c92.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-6412470532bc.json index da79a4d0..bd16be8c 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-67d7f8507c92.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-6412470532bc.json @@ -1,5 +1,5 @@ { - "id" : "fa1a8ce1-3cae-396a-a265-e42c01ca0c9a", + "id" : "7fb549ff-d3c8-3f7b-89c6-de799023198a", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'a7f40f13c51c478688d2891a2ecb5994' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '8245f74ea8c46809c90a140d0fa1a1fd' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-67d7f8507c92.json", + "bodyFileName" : "btql-6412470532bc.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "205", - "x-bt-api-duration-ms" : "267", - "Date" : "Mon, 31 Aug 2026 17:38:08 GMT", + "x-bt-brainstore-duration-ms" : "105", + "x-bt-api-duration-ms" : "110", + "Date" : "Sat, 07 Nov 2026 05:43:49 GMT", "Via" : "1.1 b2b215a89cc2734b2940e2eb59ea4bd0.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "414e2a9bb7cf12c7a18788ae94025f04", - "X-Amz-Cf-Id" : "cBkV-sxfD1_FtpwyybEjNi-0B6buBTnOf2B0GNzA2wGhQZ4Cn9Mh6Q==", + "x-bt-internal-trace-id" : "730fa382cf5b8d11df309ac6434d5ea6", + "X-Amz-Cf-Id" : "InVnw5tJ-moB6SjrvosvNthEebyDm9lixmJ1o1FOQ_DdsKsbQc42NQ==", + "x-bt-cursor" : "mOWs8fkU2sA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "fa1a8ce1-3cae-396a-a265-e42c01ca0c9a", + "uuid" : "7fb549ff-d3c8-3f7b-89c6-de799023198a", "persistent" : true, - "insertionIndex" : 183 + "insertionIndex" : 194 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-66a91c29125b.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-66a91c29125b.json new file mode 100644 index 00000000..8ea5af30 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-66a91c29125b.json @@ -0,0 +1,43 @@ +{ + "id" : "bb7e633e-2a72-3244-9b84-8542a418df8b", + "name" : "btql", + "request" : { + "url" : "/btql", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'a2e728a885664341df8937998eb1b0ab' ORDER BY created ASC LIMIT 1000\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "btql-66a91c29125b.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", + "X-Amz-Cf-Pop" : "SEA900-P9", + "x-bt-brainstore-duration-ms" : "60", + "x-bt-api-duration-ms" : "65", + "Date" : "Sat, 07 Nov 2026 05:43:38 GMT", + "Via" : "1.1 a6be96637dfcb93ee417719bb21d57d0.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "private, no-cache", + "Access-Control-Allow-Credentials" : "true", + "x-bt-internal-trace-id" : "3f191a5f7851a6a1b70fbbe00a37298a", + "X-Amz-Cf-Id" : "WCr4E8ct4sAGj_ZgZLTDKzd11xKeMwd0SSh0C4Ig4s79KI0fxMrifQ==", + "x-bt-cursor" : "mOWs9RdOjsA", + "Vary" : "Origin", + "Content-Type" : "application/json" + } + }, + "uuid" : "bb7e633e-2a72-3244-9b84-8542a418df8b", + "persistent" : true, + "insertionIndex" : 234 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-caf1d4cd21cc.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-69badeea6ab9.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-caf1d4cd21cc.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-69badeea6ab9.json index 018b629d..ddf5fe17 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-caf1d4cd21cc.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-69badeea6ab9.json @@ -1,5 +1,5 @@ { - "id" : "a9201337-ddc4-3a7e-9ebc-aeec89d4ac3b", + "id" : "faec8137-20a7-3045-8d0a-421c326b5d83", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'ee3a4491d8d25041aabe54818ddea535' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '037eac4e97713f2cc5d0311f71db01cc' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-caf1d4cd21cc.json", + "bodyFileName" : "btql-69badeea6ab9.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "83", - "x-bt-api-duration-ms" : "135", - "Date" : "Mon, 31 Aug 2026 17:38:11 GMT", + "x-bt-brainstore-duration-ms" : "57", + "x-bt-api-duration-ms" : "62", + "Date" : "Sat, 07 Nov 2026 05:43:39 GMT", "Via" : "1.1 2772a76c066120d1905e8bfcd08c4d1c.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "8e738ff410eaf0e4beef0e40391cf12e", - "X-Amz-Cf-Id" : "0eVOHyHqvqywm2RFdcj6w75_E8aSAkSoag8-pZ7Je-dYAdrbnPP18g==", + "x-bt-internal-trace-id" : "4db20283352b342e97abaddee77ce28b", + "X-Amz-Cf-Id" : "E9ny8Dk_32aDoEL_sW6pHqBtzF2W3HRk_rZ9MAlb9Nvp7JZAfRBWlg==", + "x-bt-cursor" : "mOWs9tkGHwA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "a9201337-ddc4-3a7e-9ebc-aeec89d4ac3b", + "uuid" : "faec8137-20a7-3045-8d0a-421c326b5d83", "persistent" : true, - "insertionIndex" : 176 + "insertionIndex" : 231 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-a19aa246adf2.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-6d40dda80b18.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-a19aa246adf2.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-6d40dda80b18.json index d33d5578..e487e3d3 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-a19aa246adf2.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-6d40dda80b18.json @@ -1,5 +1,5 @@ { - "id" : "352b0d6f-12e7-3153-878b-a01e5e920d1c", + "id" : "2676ad0c-a8cb-3f65-9df2-4660b37bbba8", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '002bbe5b49b6ececdbd3d146ee87cfa6' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '06dbdf79c1b531f6457af3b6b82b0f46' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-a19aa246adf2.json", + "bodyFileName" : "btql-6d40dda80b18.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "35", - "x-bt-api-duration-ms" : "81", - "Date" : "Mon, 31 Aug 2026 17:38:18 GMT", + "x-bt-brainstore-duration-ms" : "81", + "x-bt-api-duration-ms" : "87", + "Date" : "Sat, 07 Nov 2026 05:43:48 GMT", "Via" : "1.1 9895fa1d75119fa16da9e015b58dbe5a.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "66c2db919570f392e7768c2940eb0865", - "X-Amz-Cf-Id" : "GlElj7cBIREquDsNQTZYXaJkCyTrpEJATV6B7-8r5DNAXJXx92j9og==", + "x-bt-internal-trace-id" : "625a3f78bc26a720f3a3485b5bdb5628", + "X-Amz-Cf-Id" : "mcwpdxZzAkG_5WktR28sWQu_3K2OfIj5UJtJrOjk1qFUiSxJMdxTSA==", + "x-bt-cursor" : "mOWs8g9fpEA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "352b0d6f-12e7-3153-878b-a01e5e920d1c", + "uuid" : "2676ad0c-a8cb-3f65-9df2-4660b37bbba8", "persistent" : true, - "insertionIndex" : 155 + "insertionIndex" : 201 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-fa35b142aa59.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-7144e4ded7ca.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-fa35b142aa59.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-7144e4ded7ca.json index a29c8dd3..c705d0e4 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-fa35b142aa59.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-7144e4ded7ca.json @@ -1,5 +1,5 @@ { - "id" : "7e4c9fc1-031c-3c7e-81c8-70120e6c5e72", + "id" : "2b68123f-8448-3d6a-87a4-b0170f5d6faa", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '38716e1c6c0759d24d7f3601ed6258cd' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '8a3033e729f3be8469842b56c6591292' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-fa35b142aa59.json", + "bodyFileName" : "btql-7144e4ded7ca.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "52", - "x-bt-api-duration-ms" : "103", - "Date" : "Mon, 31 Aug 2026 17:38:09 GMT", + "x-bt-brainstore-duration-ms" : "55", + "x-bt-api-duration-ms" : "60", + "Date" : "Sat, 07 Nov 2026 05:43:46 GMT", "Via" : "1.1 5af99d6f2fc1c569c253259aec683ee8.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "df87d88a8782be703e07a8ef47bbac8a", - "X-Amz-Cf-Id" : "u1_PLbz5ybYm50YlahqAmTode53ck6TlklbEcFBusL5fVazgDkW61g==", + "x-bt-internal-trace-id" : "de9af0944ae7ae210357132e8cd0af8a", + "X-Amz-Cf-Id" : "Yzs5u70mZ0_ElC2CES4iUayuKsjdhSuOghBn855WWZdYt1BBNAx6Qg==", + "x-bt-cursor" : "mOWs83BaMMA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "7e4c9fc1-031c-3c7e-81c8-70120e6c5e72", + "uuid" : "2b68123f-8448-3d6a-87a4-b0170f5d6faa", "persistent" : true, - "insertionIndex" : 181 + "insertionIndex" : 205 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-729686f4b73a.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-729686f4b73a.json index 90b74bca..f874ad22 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-729686f4b73a.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-729686f4b73a.json @@ -20,17 +20,18 @@ "bodyFileName" : "btql-729686f4b73a.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "1", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "24", - "x-bt-api-duration-ms" : "74", - "Date" : "Mon, 31 Aug 2026 17:35:33 GMT", - "Via" : "1.1 7aad92255c39d277bce3f20afa1b059c.cloudfront.net (CloudFront)", + "x-bt-brainstore-duration-ms" : "79", + "x-bt-api-duration-ms" : "107", + "Date" : "Sat, 07 Nov 2026 05:42:15 GMT", + "Via" : "1.1 55a62c25b77c24cde4014f567fd1c550.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "5ba917e0c241e94fc72b48bd318c2c69", - "X-Amz-Cf-Id" : "k87eM4iI57VK57NUPe7irf6YWheQ2K9_2AAFpDlwAHTrs7KhnT4wOA==", + "x-bt-internal-trace-id" : "b8d061c751ce6ebe35a701b97200ca2c", + "X-Amz-Cf-Id" : "0zJBSXdiRGk99Ysyug0Oo4Ww4m8ddzikOiXxjiIlZro5-qqIJaKHBw==", "Vary" : "Origin", "Content-Type" : "application/json" } @@ -39,5 +40,5 @@ "persistent" : true, "scenarioName" : "scenario-16-btql", "requiredScenarioState" : "scenario-16-btql-2", - "insertionIndex" : 73 + "insertionIndex" : 72 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-2486fde21737.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-739d33493ddb.json similarity index 53% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-2486fde21737.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-739d33493ddb.json index 43e64a43..575fd518 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-2486fde21737.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-739d33493ddb.json @@ -1,5 +1,5 @@ { - "id" : "e9996e30-ccfb-348a-88c3-6bde611ecb60", + "id" : "86a858ad-9950-3558-9a0e-194db17efef5", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '40ef2b9464b3a33e287a55ead1b8a023' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '32895cf1221aa059062f74629937c216' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-2486fde21737.json", + "bodyFileName" : "btql-739d33493ddb.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "44", - "x-bt-api-duration-ms" : "117", - "Date" : "Mon, 31 Aug 2026 17:38:11 GMT", - "Via" : "1.1 28edb03169fa053a4a523d90d15ff6ae.cloudfront.net (CloudFront)", + "x-bt-brainstore-duration-ms" : "125", + "x-bt-api-duration-ms" : "130", + "Date" : "Sat, 07 Nov 2026 05:43:41 GMT", + "Via" : "1.1 63560dd3f856b0f7bfe68a0cad46924a.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "3de43afb5e130c10dca9797e9a1ade31", - "X-Amz-Cf-Id" : "rp2OPlPSWUcEHN_1y4E2ZP4PX8PHyHGa5HdIFQTn6XhXXTzyr6ms7g==", + "x-bt-internal-trace-id" : "ed47a6ee3ab2c6193c0449d79e633931", + "X-Amz-Cf-Id" : "IWTKL-ISifk4ZTiQige2PwKOYN6wPE5-SlMz2H8jdDCVxcqBgWt6Ag==", + "x-bt-cursor" : "mOWs8tUFyUA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "e9996e30-ccfb-348a-88c3-6bde611ecb60", + "uuid" : "86a858ad-9950-3558-9a0e-194db17efef5", "persistent" : true, - "insertionIndex" : 174 + "insertionIndex" : 223 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-74485bdefc94.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-74485bdefc94.json new file mode 100644 index 00000000..e0801fab --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-74485bdefc94.json @@ -0,0 +1,43 @@ +{ + "id" : "d3e4bf40-8dd6-3be4-b82c-c73bf56f0aff", + "name" : "btql", + "request" : { + "url" : "/btql", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'eff8f2ad8dded701de7d5d2d01f4923f' ORDER BY created ASC LIMIT 1000\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "btql-74485bdefc94.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", + "X-Amz-Cf-Pop" : "SEA900-P9", + "x-bt-brainstore-duration-ms" : "101", + "x-bt-api-duration-ms" : "106", + "Date" : "Sat, 07 Nov 2026 05:43:42 GMT", + "Via" : "1.1 9895fa1d75119fa16da9e015b58dbe5a.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "private, no-cache", + "Access-Control-Allow-Credentials" : "true", + "x-bt-internal-trace-id" : "cd60012479e9536a59750fdb1616b06d", + "X-Amz-Cf-Id" : "YZuy_fO1yHKxpBAU9dH_a6RH02zBtCFrCg6Ak6yLofDi4_BX7Jnogg==", + "x-bt-cursor" : "mOWs83Z92IA", + "Vary" : "Origin", + "Content-Type" : "application/json" + } + }, + "uuid" : "d3e4bf40-8dd6-3be4-b82c-c73bf56f0aff", + "persistent" : true, + "insertionIndex" : 221 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-78f0a8f58774.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-78f0a8f58774.json index 04ff0f1c..0bab50da 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-78f0a8f58774.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-78f0a8f58774.json @@ -20,17 +20,18 @@ "bodyFileName" : "btql-78f0a8f58774.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "1", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "212", - "x-bt-api-duration-ms" : "565", - "Date" : "Mon, 31 Aug 2026 17:35:26 GMT", - "Via" : "1.1 4c8322ac27bebc2a7e26f72c7b6ec2ee.cloudfront.net (CloudFront)", + "x-bt-brainstore-duration-ms" : "75", + "x-bt-api-duration-ms" : "124", + "Date" : "Sat, 07 Nov 2026 05:42:12 GMT", + "Via" : "1.1 e8b22a8fa8511f8f972b4965a9af80b4.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "3353eb9f75e3b9d350d5cc2c8c87c353", - "X-Amz-Cf-Id" : "Kh-2AE8nOkuF86RM02bR2DKdsxCjwS92RHfkpqq9ek8EoduMAlVvFA==", + "x-bt-internal-trace-id" : "8a55590d0fd425c4783d4dfb6f031231", + "X-Amz-Cf-Id" : "j4NlTyQFrFdRUtRCsQloCEKZ4CHe-f7kyRU63pT_xHL7JWdXR1zbmw==", "Vary" : "Origin", "Content-Type" : "application/json" } @@ -40,5 +41,5 @@ "scenarioName" : "scenario-16-btql", "requiredScenarioState" : "Started", "newScenarioState" : "scenario-16-btql-2", - "insertionIndex" : 85 + "insertionIndex" : 84 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-7af8f6f1166b.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-7af8f6f1166b.json new file mode 100644 index 00000000..a9d7e70b --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-7af8f6f1166b.json @@ -0,0 +1,43 @@ +{ + "id" : "a04c53ca-c5de-313a-95df-bab074e12e5a", + "name" : "btql", + "request" : { + "url" : "/btql", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'e40bc9abb95d3ef94aeb1ee86723506c' ORDER BY created ASC LIMIT 1000\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "btql-7af8f6f1166b.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", + "X-Amz-Cf-Pop" : "SEA900-P9", + "x-bt-brainstore-duration-ms" : "61", + "x-bt-api-duration-ms" : "66", + "Date" : "Sat, 07 Nov 2026 05:43:43 GMT", + "Via" : "1.1 dea0b5e705fff834db8ae3992ea09cfa.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "private, no-cache", + "Access-Control-Allow-Credentials" : "true", + "x-bt-internal-trace-id" : "414354796c02928907797a548be9edc1", + "X-Amz-Cf-Id" : "tzHJaMrAtDsD717VWuY9r54a_EL2I_JgsXB_2AnMlPcLqE8Hsv_xTQ==", + "x-bt-cursor" : "mOWs8pZ/UQA", + "Vary" : "Origin", + "Content-Type" : "application/json" + } + }, + "uuid" : "a04c53ca-c5de-313a-95df-bab074e12e5a", + "persistent" : true, + "insertionIndex" : 216 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-140b6db9747e.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-7dd30b8a467f.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-140b6db9747e.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-7dd30b8a467f.json index 76f5e19b..bebb31db 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-140b6db9747e.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-7dd30b8a467f.json @@ -1,5 +1,5 @@ { - "id" : "b9d57ba5-9e15-39a7-b4c1-73ba2851cb7c", + "id" : "f515661d-6026-3766-b10c-6c7af4d8a61b", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '99ae58f7b44156c1ee12036d81c73975' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'de4dc3263d92bada489c20f5f858375f' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-140b6db9747e.json", + "bodyFileName" : "btql-7dd30b8a467f.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "3", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "77", - "x-bt-api-duration-ms" : "155", - "Date" : "Mon, 31 Aug 2026 17:38:10 GMT", + "x-bt-brainstore-duration-ms" : "71", + "x-bt-api-duration-ms" : "76", + "Date" : "Sat, 07 Nov 2026 05:43:52 GMT", "Via" : "1.1 38842c146ccd8f527d2de72671759d96.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "36f4b3511246ec38512da2eb7585be6d", - "X-Amz-Cf-Id" : "WDWtKHSTw5lkvr_X1RhG-cUyQO9iRAPgWOnMt3-b93kRSMnk32gO7A==", + "x-bt-internal-trace-id" : "ed7f67d5f0ec748fa20d137f7f12d05b", + "X-Amz-Cf-Id" : "l-LWtPBF8FclAn3quUKojpZjhULox2zmB6ODEM0DM5qSsUc1-8Gfdg==", + "x-bt-cursor" : "mOWs9J5eeYA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "b9d57ba5-9e15-39a7-b4c1-73ba2851cb7c", + "uuid" : "f515661d-6026-3766-b10c-6c7af4d8a61b", "persistent" : true, - "insertionIndex" : 177 + "insertionIndex" : 184 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-973db53c70ef.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-7f1daac35cfc.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-973db53c70ef.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-7f1daac35cfc.json index 80de15b5..7ee85f21 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-973db53c70ef.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-7f1daac35cfc.json @@ -1,5 +1,5 @@ { - "id" : "087a2b2a-c1c5-3e07-b48d-007b1f060bdc", + "id" : "99ce5905-d553-3c59-8777-c7ee10551532", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '57b8b705b87fe23427d1a97636dbda70' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '6f8104063106cc431a1831f454ab172a' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-973db53c70ef.json", + "bodyFileName" : "btql-7f1daac35cfc.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "133", - "x-bt-api-duration-ms" : "286", - "Date" : "Mon, 31 Aug 2026 17:38:14 GMT", + "x-bt-brainstore-duration-ms" : "62", + "x-bt-api-duration-ms" : "69", + "Date" : "Sat, 07 Nov 2026 05:43:39 GMT", "Via" : "1.1 7f26c41dda80bd7d50ccec2be87c9c3e.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "d5a5699bdfc785de3399fc73a41b9890", - "X-Amz-Cf-Id" : "e4H7McIXNC0W2r4ystIvaL1dMKorwtE7r_go5PgkirwCMhQGVzVWKA==", + "x-bt-internal-trace-id" : "d1cdcfa7a7769452664b8621a16e92c0", + "X-Amz-Cf-Id" : "X1D0BPdejBw2gkpsNMoUql0hlJlztzfG4fzapKWrX52xgJdhBnLZjg==", + "x-bt-cursor" : "mOWs9aUL9UA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "087a2b2a-c1c5-3e07-b48d-007b1f060bdc", + "uuid" : "99ce5905-d553-3c59-8777-c7ee10551532", "persistent" : true, - "insertionIndex" : 168 + "insertionIndex" : 232 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-811cf73687e1.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-811cf73687e1.json deleted file mode 100644 index b3f6b3ce..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-811cf73687e1.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "id" : "4764d331-8a1b-31bf-95ee-87415cdc46df", - "name" : "btql", - "request" : { - "url" : "/btql", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '8b02184076aef8ce6d7c5f6514b7f52e' ORDER BY created ASC LIMIT 1000\"}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "btql-811cf73687e1.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "92", - "x-bt-api-duration-ms" : "134", - "Date" : "Mon, 31 Aug 2026 17:38:15 GMT", - "Via" : "1.1 6ebf93cd3baadad602a5fd706f0df16e.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "private, no-cache", - "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "9fe3185bba568553d96b9ff9075012c8", - "X-Amz-Cf-Id" : "Sr7iGLHeRlEeKf3yr-kdqovN7K8uY151aX-kKsYAjkhaD2yMF6O88Q==", - "Vary" : "Origin", - "Content-Type" : "application/json" - } - }, - "uuid" : "4764d331-8a1b-31bf-95ee-87415cdc46df", - "persistent" : true, - "insertionIndex" : 164 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-821ab2f1bebd.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-821ab2f1bebd.json new file mode 100644 index 00000000..e21be116 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-821ab2f1bebd.json @@ -0,0 +1,43 @@ +{ + "id" : "514f4002-1e7b-3125-babb-31b82d72c76c", + "name" : "btql", + "request" : { + "url" : "/btql", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '1a2857d148e17fd8016415f4b4d92d08' ORDER BY created ASC LIMIT 1000\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "btql-821ab2f1bebd.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", + "X-Amz-Cf-Pop" : "SEA900-P9", + "x-bt-brainstore-duration-ms" : "102", + "x-bt-api-duration-ms" : "132", + "Date" : "Sat, 07 Nov 2026 05:43:35 GMT", + "Via" : "1.1 dea0b5e705fff834db8ae3992ea09cfa.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "private, no-cache", + "Access-Control-Allow-Credentials" : "true", + "x-bt-internal-trace-id" : "d3649b34268f3e384c223ce99a8384ca", + "X-Amz-Cf-Id" : "RkeN79GaV1evuAHmIRKhS1MBuKJ4cLPJkiVgfkPEpJn1NyLh09mnrg==", + "x-bt-cursor" : "mOWs9o0WbIA", + "Vary" : "Origin", + "Content-Type" : "application/json" + } + }, + "uuid" : "514f4002-1e7b-3125-babb-31b82d72c76c", + "persistent" : true, + "insertionIndex" : 245 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-861c67da54b7.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-861c67da54b7.json deleted file mode 100644 index e3481237..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-861c67da54b7.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "id" : "1cad4a87-3f08-3d9b-ba3d-e664b124e263", - "name" : "btql", - "request" : { - "url" : "/btql", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '5ebbf0fd54af3ba1dafc91c34d181abf' ORDER BY created ASC LIMIT 1000\"}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "btql-861c67da54b7.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "90", - "x-bt-api-duration-ms" : "138", - "Date" : "Mon, 31 Aug 2026 17:38:12 GMT", - "Via" : "1.1 b2b215a89cc2734b2940e2eb59ea4bd0.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "private, no-cache", - "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "ad714b04725ef34323865df97f7c0a5d", - "X-Amz-Cf-Id" : "-OyCHNr2Fss4KMRlFple5yMPLKmXmvJo1DFklbJnvPLSb7Auq-uMiA==", - "Vary" : "Origin", - "Content-Type" : "application/json" - } - }, - "uuid" : "1cad4a87-3f08-3d9b-ba3d-e664b124e263", - "persistent" : true, - "insertionIndex" : 173 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-fd2c6aefeae5.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-8ceb42f43c0c.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-fd2c6aefeae5.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-8ceb42f43c0c.json index 6ed61512..75b02e31 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-fd2c6aefeae5.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-8ceb42f43c0c.json @@ -1,5 +1,5 @@ { - "id" : "1ac8f525-8d4b-3ee0-9020-ea8a2cd67d79", + "id" : "fea0b02e-eff2-36fe-84d4-9e890308a9d7", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '7c10e31011e21cc75f03c7c6fe085850' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'e743636e4a200eda0aafafa702ca31d6' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-fd2c6aefeae5.json", + "bodyFileName" : "btql-8ceb42f43c0c.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "39", - "x-bt-api-duration-ms" : "91", - "Date" : "Mon, 31 Aug 2026 17:38:16 GMT", + "x-bt-brainstore-duration-ms" : "74", + "x-bt-api-duration-ms" : "80", + "Date" : "Sat, 07 Nov 2026 05:43:51 GMT", "Via" : "1.1 a3134c0c893f03d1e9a9c657d09af7cc.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "5745d99bfd0774616ae41d81626027eb", - "X-Amz-Cf-Id" : "Q4DOU1QJgXYFsjeDTTsA8vdQiLqXXA1Q9Iefw3rOFQGAEV-jCcAvLA==", + "x-bt-internal-trace-id" : "dfe8918f9567bddf579a0a3aa3612783", + "X-Amz-Cf-Id" : "gA4ocG7YutnWseg6I7_LjYied8z7wXBAmdPUVFtlloCDDvft7QYBsA==", + "x-bt-cursor" : "mOWs9CxYaUA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "1ac8f525-8d4b-3ee0-9020-ea8a2cd67d79", + "uuid" : "fea0b02e-eff2-36fe-84d4-9e890308a9d7", "persistent" : true, - "insertionIndex" : 161 + "insertionIndex" : 188 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-9200ebe247be.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-903703e70b81.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-9200ebe247be.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-903703e70b81.json index 5974ce83..5c2c93c3 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-9200ebe247be.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-903703e70b81.json @@ -1,5 +1,5 @@ { - "id" : "7f9ce955-aa83-3328-8637-c288c508c50c", + "id" : "f511650d-687a-33be-887f-ba59e6ade2ba", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'a850820207c1f19ed6ce2185953cd09f' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'c1388e01abdbf3f74872dc074948a67d' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-9200ebe247be.json", + "bodyFileName" : "btql-903703e70b81.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "25", - "x-bt-api-duration-ms" : "71", - "Date" : "Mon, 31 Aug 2026 17:38:23 GMT", + "x-bt-brainstore-duration-ms" : "75", + "x-bt-api-duration-ms" : "79", + "Date" : "Sat, 07 Nov 2026 05:43:48 GMT", "Via" : "1.1 63560dd3f856b0f7bfe68a0cad46924a.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "43b66e01517977ee831dd52308d595b5", - "X-Amz-Cf-Id" : "obs1x-yTpznn1u9x8uwg1h737RGlNdHNpU-g2M-C8HTpLuRt_dtODQ==", + "x-bt-internal-trace-id" : "b2129f3f54e63d0e439e674afdb827d5", + "X-Amz-Cf-Id" : "76XgxWovPs-xFd9UXCzXuKx0vTLkIhIu1gNiGSK5cGFhhq-csExlqQ==", + "x-bt-cursor" : "mOWs8jc/xYA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "7f9ce955-aa83-3328-8637-c288c508c50c", + "uuid" : "f511650d-687a-33be-887f-ba59e6ade2ba", "persistent" : true, - "insertionIndex" : 138 + "insertionIndex" : 200 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-6035346467b9.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-93283d84ce2e.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-6035346467b9.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-93283d84ce2e.json index 39f0aa99..7d9098bb 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-6035346467b9.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-93283d84ce2e.json @@ -1,5 +1,5 @@ { - "id" : "378a0b56-257c-3ec7-8126-d23ad0d96034", + "id" : "e8602e5c-9084-3bf7-86ed-398adbecb4a1", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '841a1a6424421ee99cda6fbe10edd7be' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '0848c29baad58ae6a15c3b5a17058f98' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-6035346467b9.json", + "bodyFileName" : "btql-93283d84ce2e.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "38", - "x-bt-api-duration-ms" : "83", - "Date" : "Mon, 31 Aug 2026 17:38:19 GMT", + "x-bt-brainstore-duration-ms" : "69", + "x-bt-api-duration-ms" : "74", + "Date" : "Sat, 07 Nov 2026 05:43:37 GMT", "Via" : "1.1 b54238be18861f9bb1272bf1cb10e040.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "9020a21b703f72d83c29ec97adc16b56", - "X-Amz-Cf-Id" : "Jb_e20PnUDqR2OnwJs5bdKIxGYz2oET0weo7FpUDYADc-4Hh6EaqIg==", + "x-bt-internal-trace-id" : "52cb5e94b0034bac4805a355d20a0a54", + "X-Amz-Cf-Id" : "66bQGGC-fAQaKfd5U2F_G6kwMExG9_hHimccPkwbhIQnN6DVRo9LCg==", + "x-bt-cursor" : "mOWs9aSCoQA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "378a0b56-257c-3ec7-8126-d23ad0d96034", + "uuid" : "e8602e5c-9084-3bf7-86ed-398adbecb4a1", "persistent" : true, - "insertionIndex" : 153 + "insertionIndex" : 240 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-c8a5128913b4.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-943a851d44dc.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-c8a5128913b4.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-943a851d44dc.json index f9f4cc7d..5300323d 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-c8a5128913b4.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-943a851d44dc.json @@ -1,5 +1,5 @@ { - "id" : "f936aa1b-8ca6-3bba-a6da-2ebbcca1cd00", + "id" : "84ad28f3-4c7e-3d4c-a97f-c30fe0c61dd3", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'cc72e2406f45fbe8009b0292ce2110cf' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '560e5b7df7bd7c061880e645da65b5e4' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-c8a5128913b4.json", + "bodyFileName" : "btql-943a851d44dc.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "76", - "x-bt-api-duration-ms" : "121", - "Date" : "Mon, 31 Aug 2026 17:38:22 GMT", + "x-bt-brainstore-duration-ms" : "61", + "x-bt-api-duration-ms" : "67", + "Date" : "Sat, 07 Nov 2026 05:43:37 GMT", "Via" : "1.1 88f286e23c15fc2f62a741db8207a67a.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "491044f78dabaa0e698ae15a32c5c7ad", - "X-Amz-Cf-Id" : "f-xHra30R2YWF-IiSxJHRhDnGMN0X5BoMhN3zTkvNtmtRVoRLGmncA==", + "x-bt-internal-trace-id" : "267de65eb77e37327bacdfd5ab3b2ccf", + "X-Amz-Cf-Id" : "iZZton-acXl1hasct0X7V0-iSPl_LLnQK0K_tzCe5NJ5OBC80ijPNQ==", + "x-bt-cursor" : "mOWs9f7PscA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "f936aa1b-8ca6-3bba-a6da-2ebbcca1cd00", + "uuid" : "84ad28f3-4c7e-3d4c-a97f-c30fe0c61dd3", "persistent" : true, - "insertionIndex" : 140 + "insertionIndex" : 238 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-88a3fdc03a4f.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-98a16ab98355.json similarity index 55% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-88a3fdc03a4f.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-98a16ab98355.json index 5dd2f548..492cf6c5 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-88a3fdc03a4f.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-98a16ab98355.json @@ -1,5 +1,5 @@ { - "id" : "aa113f5d-5b93-326e-99ac-698de6857a8e", + "id" : "a5940e55-78dd-394c-8c3e-1a6b97f0e322", "name" : "btql", "request" : { "url" : "/btql", @@ -10,33 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"select: span_id, span_parents, root_span_id, name | from: project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') | filter: root_span_id = 'b2c4e2f917794144eff5e6ac0e08e33e'\"}", + "equalToJson" : "{\"query\":\"select: span_id, span_parents, root_span_id, name | from: project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') | filter: root_span_id = '44952e40821079b14b3fff0f30c2a255'\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-88a3fdc03a4f.json", + "bodyFileName" : "btql-98a16ab98355.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "3", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "427", - "x-bt-api-duration-ms" : "474", - "Date" : "Mon, 31 Aug 2026 17:36:09 GMT", - "Via" : "1.1 04efc78121acf5d40974e6a71bebce20.cloudfront.net (CloudFront)", + "x-bt-brainstore-duration-ms" : "150", + "x-bt-api-duration-ms" : "230", + "Date" : "Sat, 07 Nov 2026 05:42:32 GMT", + "Via" : "1.1 e8b22a8fa8511f8f972b4965a9af80b4.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "f043547cb9477816e18cc7519dbf158a", - "X-Amz-Cf-Id" : "AqTN6kTeVB3FgRwSHnASiUqb2InZBMc-hx1OEUnrbYJax_XIxvBtwQ==", - "x-bt-cursor" : "apW7hQC6AAA", + "x-bt-internal-trace-id" : "8d983af015aa11f90e5e572ca8e1ad66", + "X-Amz-Cf-Id" : "tUsbJRFLIlN4gW-He2Nyjfvc8OrJ5Ybgqx7hBwjGSPzEhovlhz4Cyw==", + "x-bt-cursor" : "au66RQKwAAA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "aa113f5d-5b93-326e-99ac-698de6857a8e", + "uuid" : "a5940e55-78dd-394c-8c3e-1a6b97f0e322", "persistent" : true, - "insertionIndex" : 30 + "insertionIndex" : 29 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-7df9d61397ac.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-9a5d748446a0.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-7df9d61397ac.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-9a5d748446a0.json index bcd5c11a..2fa91bc6 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-7df9d61397ac.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-9a5d748446a0.json @@ -1,5 +1,5 @@ { - "id" : "4db03ebe-6634-3fe5-a7e2-6e7a46adb369", + "id" : "0e7e7bbc-23ef-3236-815e-71325403ebf2", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'd1f2db2c39c3e0beddf6391270cb48a2' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '80d1b6b9e3464ad0f0402bce508fd235' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-7df9d61397ac.json", + "bodyFileName" : "btql-9a5d748446a0.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "37", - "x-bt-api-duration-ms" : "105", - "Date" : "Mon, 31 Aug 2026 17:38:22 GMT", + "x-bt-brainstore-duration-ms" : "78", + "x-bt-api-duration-ms" : "84", + "Date" : "Sat, 07 Nov 2026 05:43:47 GMT", "Via" : "1.1 7aad92255c39d277bce3f20afa1b059c.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "0d7d1693ebec8a10b3ed3caa1c18cc88", - "X-Amz-Cf-Id" : "ufGxggpCS3NeefE9jQjgQbUPtrFQ2ZmphsEH7ocV4FO4gmQCo1qXBg==", + "x-bt-internal-trace-id" : "0b78852dfa333ff4818c82e147f85678", + "X-Amz-Cf-Id" : "Aw5ndh7aIZhe51hapoAyvmsIlRiNktNCG4WB4tO2awXwBSwOp-xTlQ==", + "x-bt-cursor" : "mOWs8YwBRUA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "4db03ebe-6634-3fe5-a7e2-6e7a46adb369", + "uuid" : "0e7e7bbc-23ef-3236-815e-71325403ebf2", "persistent" : true, - "insertionIndex" : 141 + "insertionIndex" : 203 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-985ab1d04106.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-9a9f09e2adbe.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-985ab1d04106.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-9a9f09e2adbe.json index 1dcf45c2..02b17301 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-985ab1d04106.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-9a9f09e2adbe.json @@ -1,5 +1,5 @@ { - "id" : "68b15a27-50f6-39d5-ba68-dfd46fd63ea3", + "id" : "88df3c31-bd81-3398-8983-e23d63270224", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '252f0c6a9615543fbe9d14d2646593f7' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '247a8cc183d1cd6c1fd4d1e7af0f7dd0' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-985ab1d04106.json", + "bodyFileName" : "btql-9a9f09e2adbe.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "27", - "x-bt-api-duration-ms" : "72", - "Date" : "Mon, 31 Aug 2026 17:38:19 GMT", + "x-bt-brainstore-duration-ms" : "88", + "x-bt-api-duration-ms" : "93", + "Date" : "Sat, 07 Nov 2026 05:43:47 GMT", "Via" : "1.1 1271197444822e7c59413a59ecbcecd6.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "2a753bbc24150e5e2a3bbc48652bbcd6", - "X-Amz-Cf-Id" : "q1VC8gr6voFwO9njsbukAqbtucHmwZ4MVTCdoeYmiiXqZRZw9dNn6Q==", + "x-bt-internal-trace-id" : "dc4d69a048f09bc9301b5949ef11752f", + "X-Amz-Cf-Id" : "rmKd2IbvW066impzY7VqTxPT0mDCphKxevkwsbpvMf-ExHTXjqU_uQ==", + "x-bt-cursor" : "mOWs8bpgm8A", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "68b15a27-50f6-39d5-ba68-dfd46fd63ea3", + "uuid" : "88df3c31-bd81-3398-8983-e23d63270224", "persistent" : true, - "insertionIndex" : 150 + "insertionIndex" : 202 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-985d7b794773.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-9b5e24c218a0.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-985d7b794773.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-9b5e24c218a0.json index a8f126ff..46f3d05d 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-985d7b794773.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-9b5e24c218a0.json @@ -1,5 +1,5 @@ { - "id" : "1f24465f-949a-3962-a41e-2647dad1d191", + "id" : "da422e1f-6a92-3230-a580-7144fc497b63", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '3cc6ae2a4104ae52cbafccdbda44627d' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '0041439e517bb1bafd0ff740ff99f36b' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-985d7b794773.json", + "bodyFileName" : "btql-9b5e24c218a0.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "3", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "29", - "x-bt-api-duration-ms" : "73", - "Date" : "Mon, 31 Aug 2026 17:38:20 GMT", + "x-bt-brainstore-duration-ms" : "88", + "x-bt-api-duration-ms" : "94", + "Date" : "Sat, 07 Nov 2026 05:43:41 GMT", "Via" : "1.1 04efc78121acf5d40974e6a71bebce20.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "c869e33c7ce74fe47d4e7b93de72d9bf", - "X-Amz-Cf-Id" : "32BcZhrZrhuXP2JJ9ctyAi9NPQ_twHO-kftzvDQFwAaimarjPX-f7w==", + "x-bt-internal-trace-id" : "72df7fc1f26fc0e17e47e1fd2cbecf41", + "X-Amz-Cf-Id" : "vtjO6rynWwFb_lDkR5bdC3cknk2Cf2wjdxedtODU2rmJcFBOoRvCbA==", + "x-bt-cursor" : "mOWs99akRMA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "1f24465f-949a-3962-a41e-2647dad1d191", + "uuid" : "da422e1f-6a92-3230-a580-7144fc497b63", "persistent" : true, - "insertionIndex" : 146 + "insertionIndex" : 224 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-9e6d483a594f.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-9e6d483a594f.json deleted file mode 100644 index c516b3c8..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-9e6d483a594f.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "id" : "52d1c5b8-89ca-36c5-aca3-d7b6353e90c3", - "name" : "btql", - "request" : { - "url" : "/btql", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'ee7b54da509957a0c610fcd431734702' ORDER BY created ASC LIMIT 1000\"}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "btql-9e6d483a594f.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "26", - "x-bt-api-duration-ms" : "93", - "Date" : "Mon, 31 Aug 2026 17:38:16 GMT", - "Via" : "1.1 087b179013ed486bf34db435cff85f08.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "private, no-cache", - "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "034fda4ad8cee82fb20122d3a8d13f84", - "X-Amz-Cf-Id" : "uth2XGXPUdV_9dGLjoSP4bdJ-awIbLpOqg9xt8B23ju20Qrlk5ulXQ==", - "Vary" : "Origin", - "Content-Type" : "application/json" - } - }, - "uuid" : "52d1c5b8-89ca-36c5-aca3-d7b6353e90c3", - "persistent" : true, - "insertionIndex" : 160 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-8f1dfd5c0fd9.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-9f30b82c08cb.json similarity index 54% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-8f1dfd5c0fd9.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-9f30b82c08cb.json index c30241d7..d6d8750b 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-8f1dfd5c0fd9.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-9f30b82c08cb.json @@ -1,5 +1,5 @@ { - "id" : "2d44e80d-efaa-395c-9776-77f3cd2b3c1c", + "id" : "cac6172a-a9a0-30e8-a06b-4df506bf30b0", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'b70e1c19d16686a283506234df98a030' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'd96bb37667c2c246b2239bf68921134c' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-8f1dfd5c0fd9.json", + "bodyFileName" : "btql-9f30b82c08cb.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "38", + "x-bt-brainstore-duration-ms" : "78", "x-bt-api-duration-ms" : "84", - "Date" : "Mon, 31 Aug 2026 17:38:23 GMT", - "Via" : "1.1 3417fc639ca50b55b2a1d93807a20c2c.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:43:42 GMT", + "Via" : "1.1 2772a76c066120d1905e8bfcd08c4d1c.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "d18599e9885babc7ff52374de351ad28", - "X-Amz-Cf-Id" : "JW7Nin1TTauBnikHAC3AuS67tEYLxcuWW1SmF1Msm82PhSmsgjGPfw==", + "x-bt-internal-trace-id" : "996092a646470f68eb295e6868edcf8b", + "X-Amz-Cf-Id" : "Hb8S6HFnlg_2aRihHShWJjzi2lqnSE7vkd66HGcZpgE-p_ovr40omA==", + "x-bt-cursor" : "mOWs8Y0T7cA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "2d44e80d-efaa-395c-9776-77f3cd2b3c1c", + "uuid" : "cac6172a-a9a0-30e8-a06b-4df506bf30b0", "persistent" : true, - "insertionIndex" : 137 + "insertionIndex" : 219 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-d0e930ab88f5.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-a2fb7a46cf77.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-d0e930ab88f5.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-a2fb7a46cf77.json index db400e2f..1cbe9007 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-d0e930ab88f5.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-a2fb7a46cf77.json @@ -1,5 +1,5 @@ { - "id" : "7bf8c64d-2a79-3639-84ed-5a73b9a53870", + "id" : "e5432c1b-3887-3b4d-b069-e7653a169bad", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '1b2808a2e0f7cbbf5e10229bcefb7b5c' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '93c466140b1af40260abed5be55e077b' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-d0e930ab88f5.json", + "bodyFileName" : "btql-a2fb7a46cf77.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "74", - "x-bt-api-duration-ms" : "159", - "Date" : "Mon, 31 Aug 2026 17:38:12 GMT", + "x-bt-brainstore-duration-ms" : "75", + "x-bt-api-duration-ms" : "81", + "Date" : "Sat, 07 Nov 2026 05:43:51 GMT", "Via" : "1.1 4c8322ac27bebc2a7e26f72c7b6ec2ee.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "60e8cc26c85e0299df92caeedfac6f90", - "X-Amz-Cf-Id" : "LgmQVladiNVD8LC8ehC1BqOmCDrbB-irPVK56HtCUWhrcnG36mRVxw==", + "x-bt-internal-trace-id" : "b16bb10fe50ce1e3012c20aa513a0d6a", + "X-Amz-Cf-Id" : "hqkXn6CTMr88UgXl_xc2ZTb9FBrTIdjEnMdypRaisVfA4dvZQ-zSPQ==", + "x-bt-cursor" : "mOWs8/nM9UA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "7bf8c64d-2a79-3639-84ed-5a73b9a53870", + "uuid" : "e5432c1b-3887-3b4d-b069-e7653a169bad", "persistent" : true, - "insertionIndex" : 171 + "insertionIndex" : 189 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-a31fe1c36d39.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-a31fe1c36d39.json new file mode 100644 index 00000000..e11cf207 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-a31fe1c36d39.json @@ -0,0 +1,43 @@ +{ + "id" : "848e5e7b-8206-3d37-8fa6-819c46e0fd68", + "name" : "btql", + "request" : { + "url" : "/btql", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '411a97b710072e18709387d7e01cad41' ORDER BY created ASC LIMIT 1000\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "btql-a31fe1c36d39.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "3", + "X-Amz-Cf-Pop" : "SEA900-P9", + "x-bt-brainstore-duration-ms" : "75", + "x-bt-api-duration-ms" : "80", + "Date" : "Sat, 07 Nov 2026 05:43:45 GMT", + "Via" : "1.1 2772a76c066120d1905e8bfcd08c4d1c.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "private, no-cache", + "Access-Control-Allow-Credentials" : "true", + "x-bt-internal-trace-id" : "050b1ec13e24f8764da4e8ed137498c1", + "X-Amz-Cf-Id" : "6LRzV6VbdnSx91U5_wWA59hDONO61gNSNn4VAbwcYflo-r2dZBHMPQ==", + "x-bt-cursor" : "mOWs9V9PLMA", + "Vary" : "Origin", + "Content-Type" : "application/json" + } + }, + "uuid" : "848e5e7b-8206-3d37-8fa6-819c46e0fd68", + "persistent" : true, + "insertionIndex" : 211 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-a4e2afee0026.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-a4e2afee0026.json deleted file mode 100644 index 38eeeca4..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-a4e2afee0026.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "id" : "324ddf16-9006-32ed-9f41-5b549f6f4f28", - "name" : "btql", - "request" : { - "url" : "/btql", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '32d450038f880b034c635c7102a29163' ORDER BY created ASC LIMIT 1000\"}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "btql-a4e2afee0026.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "x-bt-brainstore-duration-ms" : "244", - "x-bt-api-duration-ms" : "249", - "Date" : "Thu, 15 Oct 2026 23:33:14 GMT", - "Via" : "1.1 65f2e9f7f1475de54aa452d3ceb9bcf6.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "private, no-cache", - "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "c327e5ccbe9c394b84591df35ab020c0", - "X-Amz-Cf-Id" : "0xIHWUgpRUbQEQH8QFdL9IM6hAzEP2k3Xld2xxRxiS0DtLm20UezJw==", - "Vary" : "Origin", - "Content-Type" : "application/json" - } - }, - "uuid" : "324ddf16-9006-32ed-9f41-5b549f6f4f28", - "persistent" : true, - "insertionIndex" : 215 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-a919a3be1923.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-a919a3be1923.json new file mode 100644 index 00000000..a23d6a86 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-a919a3be1923.json @@ -0,0 +1,43 @@ +{ + "id" : "ba25091f-9960-3628-b526-eecb6eda30df", + "name" : "btql", + "request" : { + "url" : "/btql", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'aff2ef288dbb9b69878bc665c712f571' ORDER BY created ASC LIMIT 1000\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "btql-a919a3be1923.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", + "X-Amz-Cf-Pop" : "SEA900-P9", + "x-bt-brainstore-duration-ms" : "58", + "x-bt-api-duration-ms" : "64", + "Date" : "Sat, 07 Nov 2026 05:43:50 GMT", + "Via" : "1.1 7aad92255c39d277bce3f20afa1b059c.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "private, no-cache", + "Access-Control-Allow-Credentials" : "true", + "x-bt-internal-trace-id" : "2743517085cdb415eaafaa908255d9da", + "X-Amz-Cf-Id" : "gqON4ZcR8wtebYUqaiNPGQimH6f05YkOCnz4y2mbG0bZN5I7EkZwbw==", + "x-bt-cursor" : "mOWs85v7n8A", + "Vary" : "Origin", + "Content-Type" : "application/json" + } + }, + "uuid" : "ba25091f-9960-3628-b526-eecb6eda30df", + "persistent" : true, + "insertionIndex" : 191 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-38b88ebc8fab.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-acb42aafad24.json similarity index 54% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-38b88ebc8fab.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-acb42aafad24.json index bd8e657b..f4d38b47 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-38b88ebc8fab.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-acb42aafad24.json @@ -1,5 +1,5 @@ { - "id" : "53063913-72bc-3b5c-b4b7-b9392db63bac", + "id" : "109f7002-32b4-39b5-8871-cd6cf530d468", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '927c2d880638e702231220991fe61ceb' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '09a70ab32eea302354f707e204310ec5' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-38b88ebc8fab.json", + "bodyFileName" : "btql-acb42aafad24.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "27", + "x-bt-brainstore-duration-ms" : "87", "x-bt-api-duration-ms" : "94", - "Date" : "Mon, 31 Aug 2026 17:38:13 GMT", - "Via" : "1.1 3417fc639ca50b55b2a1d93807a20c2c.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:43:36 GMT", + "Via" : "1.1 3062c1f9ccf5f043983bc180e222dd9c.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "a83122f3c945e08e394b3ab0a7668eae", - "X-Amz-Cf-Id" : "LjMMh8y65ncrwjtTU4iSObnrgXoET7uoqpyzEZekZ4wLVQDef-dibw==", + "x-bt-internal-trace-id" : "2823c10aa0db059a0d9e410a14d31573", + "X-Amz-Cf-Id" : "x2zGfHrGe6Bvh8J7ORXBLbMYXczKNSHTPt6serh5Y3nIvdjrqNxVLg==", + "x-bt-cursor" : "mOWs9YA2BsA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "53063913-72bc-3b5c-b4b7-b9392db63bac", + "uuid" : "109f7002-32b4-39b5-8871-cd6cf530d468", "persistent" : true, - "insertionIndex" : 169 + "insertionIndex" : 241 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-4517fb16a4f0.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-acba3e31c15d.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-4517fb16a4f0.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-acba3e31c15d.json index 6a4d9319..1cc33fec 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-4517fb16a4f0.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-acba3e31c15d.json @@ -1,5 +1,5 @@ { - "id" : "494aef5f-8215-3fe7-b05d-6a49d53fc262", + "id" : "441ddf62-90b5-390e-b194-be05fd36a606", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'ae831d8e000a476c0fc38c8c88380b23' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '26f3118b812a45ab750026d4ec46dc71' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-4517fb16a4f0.json", + "bodyFileName" : "btql-acba3e31c15d.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "44", - "x-bt-api-duration-ms" : "92", - "Date" : "Mon, 31 Aug 2026 17:38:10 GMT", + "x-bt-brainstore-duration-ms" : "59", + "x-bt-api-duration-ms" : "65", + "Date" : "Sat, 07 Nov 2026 05:43:42 GMT", "Via" : "1.1 04efc78121acf5d40974e6a71bebce20.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "7347009baf411b26f6f9a255fc07934b", - "X-Amz-Cf-Id" : "FdwooFUxwTNrbEqR1EBmInbtAgLePzQuEK_8-oszIIGnlIKcoOWyTQ==", + "x-bt-internal-trace-id" : "ed207e2955261a3674e41f9991620761", + "X-Amz-Cf-Id" : "XoprZoKJ5mNIXSDXAjIrO8iz6IVfEvh6K7A2A3wbcpun09ZDyrTzew==", + "x-bt-cursor" : "mOWs9RvG94A", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "494aef5f-8215-3fe7-b05d-6a49d53fc262", + "uuid" : "441ddf62-90b5-390e-b194-be05fd36a606", "persistent" : true, - "insertionIndex" : 179 + "insertionIndex" : 220 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-fdedfc9e1b95.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-b2dd39b11765.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-fdedfc9e1b95.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-b2dd39b11765.json index 70ffef9f..5b72fbea 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-fdedfc9e1b95.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-b2dd39b11765.json @@ -1,5 +1,5 @@ { - "id" : "b82cc5fa-d4e0-3c8f-b214-c4fffe296c54", + "id" : "403ca9d6-dd6a-31e7-b461-d3603a11beef", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '33f8dc508c794042f64bce87d238d246' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'e750551f9b46c0a43501e50891da0633' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-fdedfc9e1b95.json", + "bodyFileName" : "btql-b2dd39b11765.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "39", - "x-bt-api-duration-ms" : "101", - "Date" : "Mon, 31 Aug 2026 17:38:18 GMT", + "x-bt-brainstore-duration-ms" : "70", + "x-bt-api-duration-ms" : "75", + "Date" : "Sat, 07 Nov 2026 05:43:38 GMT", "Via" : "1.1 2501b465adde8e5aedc3f38e3dfcdc22.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "cba2355438fa073a48206176b4f03988", - "X-Amz-Cf-Id" : "VMfTh5UPhItoc3f7HrXdn9GD-C3tQnSyWDbG80srnjJotewd45y5EA==", + "x-bt-internal-trace-id" : "8d974fc9d8ebd824a22611eef78db31a", + "X-Amz-Cf-Id" : "dyO9ia-DT88i0ot4uVgNYvY4juCTCuM8yH7G5Ya8defG7kfQES6c_w==", + "x-bt-cursor" : "mOWs9YLkrAA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "b82cc5fa-d4e0-3c8f-b214-c4fffe296c54", + "uuid" : "403ca9d6-dd6a-31e7-b461-d3603a11beef", "persistent" : true, - "insertionIndex" : 154 + "insertionIndex" : 233 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-b99c6192340e.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-b99c6192340e.json new file mode 100644 index 00000000..7abdb994 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-b99c6192340e.json @@ -0,0 +1,43 @@ +{ + "id" : "1d8295b0-237d-3955-97ad-14c6f0e21fba", + "name" : "btql", + "request" : { + "url" : "/btql", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'cef74053fd1c1dc706b08749536c1fa2' ORDER BY created ASC LIMIT 1000\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "btql-b99c6192340e.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", + "X-Amz-Cf-Pop" : "SEA900-P9", + "x-bt-brainstore-duration-ms" : "56", + "x-bt-api-duration-ms" : "60", + "Date" : "Sat, 07 Nov 2026 05:43:51 GMT", + "Via" : "1.1 04efc78121acf5d40974e6a71bebce20.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "private, no-cache", + "Access-Control-Allow-Credentials" : "true", + "x-bt-internal-trace-id" : "3658f8970912ddf15f3ef4c04f769e32", + "X-Amz-Cf-Id" : "2MunCKrHzG6FozlGbNXZFFh4OtiZ6L2EnibfmLsJtyNgxLh9ENtbAw==", + "x-bt-cursor" : "mOWs8ZC2twA", + "Vary" : "Origin", + "Content-Type" : "application/json" + } + }, + "uuid" : "1d8295b0-237d-3955-97ad-14c6f0e21fba", + "persistent" : true, + "insertionIndex" : 187 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-c20d02e264cb.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-c20d02e264cb.json new file mode 100644 index 00000000..2a35c075 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-c20d02e264cb.json @@ -0,0 +1,43 @@ +{ + "id" : "a49ec807-6ea7-3dd6-b2e9-263f970ca8b2", + "name" : "btql", + "request" : { + "url" : "/btql", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'f91051109fb56f4201220a87a100fa8a' ORDER BY created ASC LIMIT 1000\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "btql-c20d02e264cb.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", + "X-Amz-Cf-Pop" : "SEA900-P9", + "x-bt-brainstore-duration-ms" : "341", + "x-bt-api-duration-ms" : "412", + "Date" : "Sat, 07 Nov 2026 05:43:34 GMT", + "Via" : "1.1 a6be96637dfcb93ee417719bb21d57d0.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "private, no-cache", + "Access-Control-Allow-Credentials" : "true", + "x-bt-internal-trace-id" : "a1da7876dfe005e284c2b1f5f3fa8751", + "X-Amz-Cf-Id" : "poLvchbfqJqS4H0KbS4y1SFIl7WVkWtiwYHRmWZIbtb9V_J2PEGcHA==", + "x-bt-cursor" : "mOWs9cxEPcA", + "Vary" : "Origin", + "Content-Type" : "application/json" + } + }, + "uuid" : "a49ec807-6ea7-3dd6-b2e9-263f970ca8b2", + "persistent" : true, + "insertionIndex" : 247 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-980e9d552173.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-c7f17b07dde4.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-980e9d552173.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-c7f17b07dde4.json index 4147040e..5c6c0ded 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-980e9d552173.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-c7f17b07dde4.json @@ -1,5 +1,5 @@ { - "id" : "ded43bf7-43b0-38a0-9d79-1b1e11729881", + "id" : "a3fc6beb-8115-3e68-b00a-f0ab7a1261e2", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '8cb588aad5ccaf555c1e6bb1f43e4276' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '70612e33e76623c6f90ac8cc6c92d27c' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-980e9d552173.json", + "bodyFileName" : "btql-c7f17b07dde4.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "66", - "x-bt-api-duration-ms" : "129", - "Date" : "Mon, 31 Aug 2026 17:38:16 GMT", + "x-bt-brainstore-duration-ms" : "68", + "x-bt-api-duration-ms" : "73", + "Date" : "Sat, 07 Nov 2026 05:43:40 GMT", "Via" : "1.1 b54238be18861f9bb1272bf1cb10e040.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "47f353e5d8b68a133f125140b1acdaac", - "X-Amz-Cf-Id" : "sNVTH8Hu178XJD92S8frXy2WatSe7SzRV-PWiBNxXp-liWwNsrX7PQ==", + "x-bt-internal-trace-id" : "518370e6e37c1003f831da957eb6eacb", + "X-Amz-Cf-Id" : "xe7_G0p46FnTQGeR2T1GiBDTDx2EmvyL5gftFK14FRGzsItb1mhLrg==", + "x-bt-cursor" : "mOWs9fXPngA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "ded43bf7-43b0-38a0-9d79-1b1e11729881", + "uuid" : "a3fc6beb-8115-3e68-b00a-f0ab7a1261e2", "persistent" : true, - "insertionIndex" : 163 + "insertionIndex" : 226 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-c88ad117447e.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-c88ad117447e.json deleted file mode 100644 index b1c65c1e..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-c88ad117447e.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "id" : "9a8815dd-4f52-33fa-9fbd-5742199b3f7f", - "name" : "btql", - "request" : { - "url" : "/btql", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '7b5ccc62dfee84b88e689516a5ad16d5' ORDER BY created ASC LIMIT 1000\"}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "btql-c88ad117447e.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "42", - "x-bt-api-duration-ms" : "84", - "Date" : "Mon, 31 Aug 2026 17:38:10 GMT", - "Via" : "1.1 e8b22a8fa8511f8f972b4965a9af80b4.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "private, no-cache", - "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "b066b35be167fe60fa66e356909de317", - "X-Amz-Cf-Id" : "xyFsSIMLI35yiqRx8ns1ySfv_Eh3ro8CxVv8-2cNmhYWFCqgB7fOMg==", - "Vary" : "Origin", - "Content-Type" : "application/json" - } - }, - "uuid" : "9a8815dd-4f52-33fa-9fbd-5742199b3f7f", - "persistent" : true, - "insertionIndex" : 178 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-a4a38e186326.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-cd305c100b9b.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-a4a38e186326.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-cd305c100b9b.json index 62c6e271..6becd3e5 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-a4a38e186326.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-cd305c100b9b.json @@ -1,5 +1,5 @@ { - "id" : "fb824e1d-1b0b-34f8-8636-6e2242fee3b0", + "id" : "74d5cab6-3ca9-34ed-9989-b7ec4cdcede4", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '1f605acceb8152d2e62d9ed8f9f79fe0' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '9bbce659f5043f5a0911b8eafcd9da8e' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-a4a38e186326.json", + "bodyFileName" : "btql-cd305c100b9b.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "3", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "27", - "x-bt-api-duration-ms" : "69", - "Date" : "Mon, 31 Aug 2026 17:38:17 GMT", + "x-bt-brainstore-duration-ms" : "95", + "x-bt-api-duration-ms" : "100", + "Date" : "Sat, 07 Nov 2026 05:43:40 GMT", "Via" : "1.1 9895fa1d75119fa16da9e015b58dbe5a.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "f5d037b099a58b2fba2d49ac15beee6c", - "X-Amz-Cf-Id" : "TSGxNpCG-V3i_EcjAYSCCTEl-NtzZQ4DCmrz3JzAdWqEK0TV9kwmZQ==", + "x-bt-internal-trace-id" : "4db59c14c8178a167f3fddf54e7105f2", + "X-Amz-Cf-Id" : "Tmoifk0Wp3MQgzfd5pzkIH9i2aShjbl07sjvKLepDT2nlt_Cys0zyQ==", + "x-bt-cursor" : "mOWs+VRZjcA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "fb824e1d-1b0b-34f8-8636-6e2242fee3b0", + "uuid" : "74d5cab6-3ca9-34ed-9989-b7ec4cdcede4", "persistent" : true, - "insertionIndex" : 158 + "insertionIndex" : 228 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-cd87e7c1202b.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-cd87e7c1202b.json new file mode 100644 index 00000000..901f0e15 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-cd87e7c1202b.json @@ -0,0 +1,43 @@ +{ + "id" : "4e7d0f47-5615-3ea6-b9c9-e1fc32305dee", + "name" : "btql", + "request" : { + "url" : "/btql", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '2a0cdc21042694e378fcb8b0ca9cc180' ORDER BY created ASC LIMIT 1000\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "btql-cd87e7c1202b.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", + "X-Amz-Cf-Pop" : "SEA900-P9", + "x-bt-brainstore-duration-ms" : "74", + "x-bt-api-duration-ms" : "80", + "Date" : "Sat, 07 Nov 2026 05:43:44 GMT", + "Via" : "1.1 7f26c41dda80bd7d50ccec2be87c9c3e.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "private, no-cache", + "Access-Control-Allow-Credentials" : "true", + "x-bt-internal-trace-id" : "da993a4256031e974520779353259080", + "X-Amz-Cf-Id" : "QGPyZKeE8eEqKw9on487ucenFkHKkOnLlICCjAD7vTOn3biMlus_sQ==", + "x-bt-cursor" : "mOWs9J6qxMA", + "Vary" : "Origin", + "Content-Type" : "application/json" + } + }, + "uuid" : "4e7d0f47-5615-3ea6-b9c9-e1fc32305dee", + "persistent" : true, + "insertionIndex" : 214 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-d4553aaf98eb.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-d89d9ae8d9c1.json similarity index 55% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-d4553aaf98eb.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-d89d9ae8d9c1.json index cb060ba3..9af0bf8b 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-d4553aaf98eb.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-d89d9ae8d9c1.json @@ -1,5 +1,5 @@ { - "id" : "295158b4-8f17-33e5-83f1-50b621709eb5", + "id" : "f9ac97e7-2fe4-3007-86f0-4749462e2340", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '0cc4a1016d9cfaeed42dd99357f1a116' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'd2e8cba4414608f580a4d31dd188d3e8' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-d4553aaf98eb.json", + "bodyFileName" : "btql-d89d9ae8d9c1.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", "x-bt-brainstore-duration-ms" : "79", - "x-bt-api-duration-ms" : "123", - "Date" : "Mon, 31 Aug 2026 17:38:17 GMT", - "Via" : "1.1 e088ff8bff69861ed7fd37fbb518f0c2.cloudfront.net (CloudFront)", + "x-bt-api-duration-ms" : "85", + "Date" : "Sat, 07 Nov 2026 05:43:47 GMT", + "Via" : "1.1 4c8322ac27bebc2a7e26f72c7b6ec2ee.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "c9cd5b8ba152a69830ce92b017e0850c", - "X-Amz-Cf-Id" : "Ze_IuH19CNomtnzw74n6q-0wydhilYFHp6qcY0eJCIYBvZlVj9ezvw==", + "x-bt-internal-trace-id" : "8c546d74ab5580e8f7f70ba1fd313343", + "X-Amz-Cf-Id" : "8whghyPu-XLBmssk1Ivvf-TPoI_Ud5-WRa-OitgkHev0MTiV-O6Smw==", + "x-bt-cursor" : "mOWs8/ibyEA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "295158b4-8f17-33e5-83f1-50b621709eb5", + "uuid" : "f9ac97e7-2fe4-3007-86f0-4749462e2340", "persistent" : true, - "insertionIndex" : 159 + "insertionIndex" : 204 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-e7c084b361f1.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-e7c084b361f1.json deleted file mode 100644 index 17e39bbc..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-e7c084b361f1.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "id" : "5f544f69-f80b-3ab0-affa-7e5734465a08", - "name" : "btql", - "request" : { - "url" : "/btql", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '144befdc9251335393fd0810f2acda2b' ORDER BY created ASC LIMIT 1000\"}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "btql-e7c084b361f1.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "71", - "x-bt-api-duration-ms" : "121", - "Date" : "Mon, 31 Aug 2026 17:38:07 GMT", - "Via" : "1.1 0758a857b0f9c36d8cfe897182f568ce.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "private, no-cache", - "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "b205a5b341b1dc7ecf1e80790ba1a90a", - "X-Amz-Cf-Id" : "l8x35Jv27NutI0yhBDaVuPkHUG1OFWF_qMRlv1SeNrSmUum77pRNHw==", - "Vary" : "Origin", - "Content-Type" : "application/json" - } - }, - "uuid" : "5f544f69-f80b-3ab0-affa-7e5734465a08", - "persistent" : true, - "insertionIndex" : 185 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-e83f4f5030f6.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-e83f4f5030f6.json deleted file mode 100644 index fdcc9d43..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-e83f4f5030f6.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "id" : "291dd2fd-a914-3233-9400-496da5a6b917", - "name" : "btql", - "request" : { - "url" : "/btql", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '9c48b99ecb1d1abfb1528bcc1a106645' ORDER BY created ASC LIMIT 1000\"}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "btql-e83f4f5030f6.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "155", - "x-bt-api-duration-ms" : "202", - "Date" : "Mon, 31 Aug 2026 17:38:15 GMT", - "Via" : "1.1 6ebf93cd3baadad602a5fd706f0df16e.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "private, no-cache", - "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "a0b3052e9458c945dc06e1d1cfff150f", - "X-Amz-Cf-Id" : "WdIZlsBkfxgZT8Cag0QxoVxfrV5qHfwT5KsBS94NOwLXE_tAcM9Opg==", - "Vary" : "Origin", - "Content-Type" : "application/json" - } - }, - "uuid" : "291dd2fd-a914-3233-9400-496da5a6b917", - "persistent" : true, - "insertionIndex" : 165 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-398c586dae81.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-e9c2543db02c.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-398c586dae81.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-e9c2543db02c.json index 2582866c..7917b470 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-398c586dae81.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-e9c2543db02c.json @@ -1,5 +1,5 @@ { - "id" : "74d4553f-f234-34ad-8453-4119567ec707", + "id" : "c616f229-21fd-3757-b6b8-4859bdd843be", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '5588692a0746bfb33f6c4935d1b0b2bc' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '34476992f6d8539981cb9efa8a96ab45' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-398c586dae81.json", + "bodyFileName" : "btql-e9c2543db02c.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "37", - "x-bt-api-duration-ms" : "82", - "Date" : "Mon, 31 Aug 2026 17:38:20 GMT", + "x-bt-brainstore-duration-ms" : "55", + "x-bt-api-duration-ms" : "61", + "Date" : "Sat, 07 Nov 2026 05:43:41 GMT", "Via" : "1.1 b3a8bdee20374465a3f2aa64f19ec30e.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "2e6d99e3eb650d7d8dde7c91c11ec14f", - "X-Amz-Cf-Id" : "ZvN3p96rw70rmk9pMD-sinl2G8UIyer4NxHR1L8_KqSx6d6_iqWQHg==", + "x-bt-internal-trace-id" : "4faae00c478052d4b746f17e7d95ff1a", + "X-Amz-Cf-Id" : "S2JJ5LHm4FCLbDzhRwUb-dAiDXOyDTVVSS3ysfJuIbqpFKzmWUNRhA==", + "x-bt-cursor" : "mOWs9sE93UA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "74d4553f-f234-34ad-8453-4119567ec707", + "uuid" : "c616f229-21fd-3757-b6b8-4859bdd843be", "persistent" : true, - "insertionIndex" : 147 + "insertionIndex" : 225 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-ea8003437ed0.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-ea8003437ed0.json new file mode 100644 index 00000000..16adada3 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-ea8003437ed0.json @@ -0,0 +1,43 @@ +{ + "id" : "646ba142-63e2-3ce0-ac33-6bcf31da7bac", + "name" : "btql", + "request" : { + "url" : "/btql", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '3c96d4156f086a06c6b2975a697999e8' ORDER BY created ASC LIMIT 1000\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "btql-ea8003437ed0.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", + "X-Amz-Cf-Pop" : "SEA900-P9", + "x-bt-brainstore-duration-ms" : "76", + "x-bt-api-duration-ms" : "82", + "Date" : "Sat, 07 Nov 2026 05:43:38 GMT", + "Via" : "1.1 d49bde7225e80ca0dc457ff2b8b4343e.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "private, no-cache", + "Access-Control-Allow-Credentials" : "true", + "x-bt-internal-trace-id" : "7462b237bcaea9c16d02fcb9f487fa26", + "X-Amz-Cf-Id" : "YkaWHdwBkw3PcsEMvrbytYctyErFOCyyzyZ84yDu-YvyZfnQOsCetQ==", + "x-bt-cursor" : "mOWs9nzvSsA", + "Vary" : "Origin", + "Content-Type" : "application/json" + } + }, + "uuid" : "646ba142-63e2-3ce0-ac33-6bcf31da7bac", + "persistent" : true, + "insertionIndex" : 236 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-ece8ec621727.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-ece8ec621727.json new file mode 100644 index 00000000..65e65f36 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-ece8ec621727.json @@ -0,0 +1,43 @@ +{ + "id" : "7cf4f2f5-d4bd-30db-8967-cf574db16cd0", + "name" : "btql", + "request" : { + "url" : "/btql", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '938a526fbc82621e8a196b3d8e1cfcec' ORDER BY created ASC LIMIT 1000\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "btql-ece8ec621727.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", + "X-Amz-Cf-Pop" : "SEA900-P9", + "x-bt-brainstore-duration-ms" : "73", + "x-bt-api-duration-ms" : "78", + "Date" : "Sat, 07 Nov 2026 05:43:46 GMT", + "Via" : "1.1 63560dd3f856b0f7bfe68a0cad46924a.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "private, no-cache", + "Access-Control-Allow-Credentials" : "true", + "x-bt-internal-trace-id" : "3edee4300314aea6fc986d8265221535", + "X-Amz-Cf-Id" : "KiR3upeSamrIZu5JfPe_aNECjU9SbVCElUQqWbE56-KWVEJR_53GzA==", + "x-bt-cursor" : "mOWs8vQi38A", + "Vary" : "Origin", + "Content-Type" : "application/json" + } + }, + "uuid" : "7cf4f2f5-d4bd-30db-8967-cf574db16cd0", + "persistent" : true, + "insertionIndex" : 206 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-edd0ff763056.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-edd0ff763056.json deleted file mode 100644 index 6e0378e7..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-edd0ff763056.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "id" : "a22c6a15-87dc-3cf2-91d4-6f26ef1777a2", - "name" : "btql", - "request" : { - "url" : "/btql", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'c6a48680cefe0ab6321c29ca16df004c' ORDER BY created ASC LIMIT 1000\"}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "btql-edd0ff763056.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "40", - "x-bt-api-duration-ms" : "112", - "Date" : "Mon, 31 Aug 2026 17:38:21 GMT", - "Via" : "1.1 087b179013ed486bf34db435cff85f08.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "private, no-cache", - "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "383ca86665fe9c57d2313f1feddfd4b4", - "X-Amz-Cf-Id" : "eGFE1sdm56aL7mCBoKbvwX27jJ1OpVg-zGEEhkAt4cc9qNvXMmzJbw==", - "Vary" : "Origin", - "Content-Type" : "application/json" - } - }, - "uuid" : "a22c6a15-87dc-3cf2-91d4-6f26ef1777a2", - "persistent" : true, - "insertionIndex" : 142 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-ee826d580a03.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-ee826d580a03.json new file mode 100644 index 00000000..8b74f35e --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-ee826d580a03.json @@ -0,0 +1,43 @@ +{ + "id" : "e1534227-860e-3d33-b967-a60a520e993c", + "name" : "btql", + "request" : { + "url" : "/btql", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '861f8df9224f73081b6a0f5100b19325' ORDER BY created ASC LIMIT 1000\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "btql-ee826d580a03.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", + "X-Amz-Cf-Pop" : "SEA900-P9", + "x-bt-brainstore-duration-ms" : "75", + "x-bt-api-duration-ms" : "81", + "Date" : "Sat, 07 Nov 2026 05:43:46 GMT", + "Via" : "1.1 7f26c41dda80bd7d50ccec2be87c9c3e.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "private, no-cache", + "Access-Control-Allow-Credentials" : "true", + "x-bt-internal-trace-id" : "fdea57ea63afa1e9daa848899b542c44", + "X-Amz-Cf-Id" : "X2t4bvvqRUxdc89cTORUdbTAhCYdNdGvi1d21ikiTWC7NB93V4LjxA==", + "x-bt-cursor" : "mOWs8n48/UA", + "Vary" : "Origin", + "Content-Type" : "application/json" + } + }, + "uuid" : "e1534227-860e-3d33-b967-a60a520e993c", + "persistent" : true, + "insertionIndex" : 207 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-411302da969a.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-f1f10ef5d45b.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-411302da969a.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-f1f10ef5d45b.json index cc84be5d..31a642dd 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-411302da969a.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-f1f10ef5d45b.json @@ -1,5 +1,5 @@ { - "id" : "4415d963-a8e7-3707-820f-fa4b177f7493", + "id" : "c079c37f-4743-34e0-bf26-2215913e9afd", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '977e036b9707460c32cc1ebc3e5f6aa5' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '22716e2d2147655802d81c1bca598b31' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-411302da969a.json", + "bodyFileName" : "btql-f1f10ef5d45b.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "165", - "x-bt-api-duration-ms" : "211", - "Date" : "Mon, 31 Aug 2026 17:38:11 GMT", + "x-bt-brainstore-duration-ms" : "60", + "x-bt-api-duration-ms" : "65", + "Date" : "Sat, 07 Nov 2026 05:43:48 GMT", "Via" : "1.1 38842c146ccd8f527d2de72671759d96.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "8d20ee120b180e645ebb4bb1de92e516", - "X-Amz-Cf-Id" : "Xw2KQS3brn2Q8KRqGAulw0s0kRudufzceij4Fn8VvbdqxvOdV4Ilvw==", + "x-bt-internal-trace-id" : "747a6de796eceba7ab59ca932e44a827", + "X-Amz-Cf-Id" : "MAbcHnJW0HB-7qvqysiBCejGlRZQVOYZ3YChQ3u-sx2zpb0MwNzAvQ==", + "x-bt-cursor" : "mOWs8tvRScA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "4415d963-a8e7-3707-820f-fa4b177f7493", + "uuid" : "c079c37f-4743-34e0-bf26-2215913e9afd", "persistent" : true, - "insertionIndex" : 175 + "insertionIndex" : 198 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-0efb36841fa8.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-f45bf9ac8f8f.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-0efb36841fa8.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-f45bf9ac8f8f.json index abf14eea..b6e2bf17 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-0efb36841fa8.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-f45bf9ac8f8f.json @@ -1,5 +1,5 @@ { - "id" : "aadea1f4-2768-31f0-acf7-9ae3921e12f5", + "id" : "61a6e710-4619-3d2e-bb81-96f378451a2f", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '507c740f5c1065f25026fd2421ac8422' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '82d14ff03b4cf1cd4df69ce694763dab' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-0efb36841fa8.json", + "bodyFileName" : "btql-f45bf9ac8f8f.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "48", - "x-bt-api-duration-ms" : "392", - "Date" : "Mon, 31 Aug 2026 17:38:09 GMT", + "x-bt-brainstore-duration-ms" : "73", + "x-bt-api-duration-ms" : "79", + "Date" : "Sat, 07 Nov 2026 05:43:37 GMT", "Via" : "1.1 c72e48ed2f0a994f695ca2fb4bc9247e.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "7a6a65e2a255027329fd760788478061", - "X-Amz-Cf-Id" : "Qcp2Y8b0YbIOzopI1NfUZYAlPkkks5_koDKCRNSnrnPMKDhZSCyAwQ==", + "x-bt-internal-trace-id" : "c877b908537a4ad9c880a6a7b64a9e5b", + "X-Amz-Cf-Id" : "NTgRrdoqtI5bvq-fsznVN1RmkllY0Eic7hvuFfg7hw9Wr9f14KH8Vg==", + "x-bt-cursor" : "mOWs9k/QY4A", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "aadea1f4-2768-31f0-acf7-9ae3921e12f5", + "uuid" : "61a6e710-4619-3d2e-bb81-96f378451a2f", "persistent" : true, - "insertionIndex" : 180 + "insertionIndex" : 237 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-f506b5a0592a.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-f506b5a0592a.json new file mode 100644 index 00000000..87f33bee --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-f506b5a0592a.json @@ -0,0 +1,43 @@ +{ + "id" : "ed723c76-d8de-318d-9d72-c007a3c4a1be", + "name" : "btql", + "request" : { + "url" : "/btql", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'fd6655c42cbeeb99d76da42aefcb039f' ORDER BY created ASC LIMIT 1000\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "btql-f506b5a0592a.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", + "X-Amz-Cf-Pop" : "SEA900-P9", + "x-bt-brainstore-duration-ms" : "181", + "x-bt-api-duration-ms" : "187", + "Date" : "Sat, 07 Nov 2026 05:43:44 GMT", + "Via" : "1.1 c72e48ed2f0a994f695ca2fb4bc9247e.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "private, no-cache", + "Access-Control-Allow-Credentials" : "true", + "x-bt-internal-trace-id" : "534057bc445994400bbbfe392a9ef8ca", + "X-Amz-Cf-Id" : "tMWyggHCj7ngckhkS28zp5_eO116BBktP8DGYSf8Kny2T7ttadl-3Q==", + "x-bt-cursor" : "mOWs9NHtU8A", + "Vary" : "Origin", + "Content-Type" : "application/json" + } + }, + "uuid" : "ed723c76-d8de-318d-9d72-c007a3c4a1be", + "persistent" : true, + "insertionIndex" : 213 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-d5010c9bdce8.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-f55e4d2f27c2.json similarity index 55% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-d5010c9bdce8.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-f55e4d2f27c2.json index 3ef580fd..6d33c45d 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-d5010c9bdce8.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-f55e4d2f27c2.json @@ -1,5 +1,5 @@ { - "id" : "974e553e-0f56-329c-9eed-a2a20853ddbf", + "id" : "af2ff9e5-1648-31f2-9ead-ca7d9fbd2960", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '7be3b78e42cb771d4d63aa533937a48a' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '85d26fb57fdb29b7281b00fd649e9ea7' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-d5010c9bdce8.json", + "bodyFileName" : "btql-f55e4d2f27c2.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", "x-bt-brainstore-duration-ms" : "64", - "x-bt-api-duration-ms" : "107", - "Date" : "Mon, 31 Aug 2026 17:38:08 GMT", - "Via" : "1.1 087b179013ed486bf34db435cff85f08.cloudfront.net (CloudFront)", + "x-bt-api-duration-ms" : "70", + "Date" : "Sat, 07 Nov 2026 05:43:49 GMT", + "Via" : "1.1 bef90eae512e70457d6a8a77b097a124.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "a9d83d17d247ced84aabaa62d4fa2498", - "X-Amz-Cf-Id" : "4h0-rBPtZQV4uJbuRU59q9LWl1cajv3mnjfRb2hVXeUAxQ0dl-HLkg==", + "x-bt-internal-trace-id" : "7987859ef1b83a6441b03993687305b0", + "X-Amz-Cf-Id" : "dwyOaqTFEUm3-AlOpeZSPql2OmhREusYOLHEiW7CqsZNJr-KQ_u3tQ==", + "x-bt-cursor" : "mOWs8yLtBgA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "974e553e-0f56-329c-9eed-a2a20853ddbf", + "uuid" : "af2ff9e5-1648-31f2-9ead-ca7d9fbd2960", "persistent" : true, - "insertionIndex" : 184 + "insertionIndex" : 197 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-ab3fe8f58122.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-f6b83b69f52c.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-ab3fe8f58122.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-f6b83b69f52c.json index a371be57..0faadb8f 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-ab3fe8f58122.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-f6b83b69f52c.json @@ -1,5 +1,5 @@ { - "id" : "e6583a49-933d-308c-94e6-b276bc630869", + "id" : "1afb0d44-3aac-3b44-ac97-b9f0aff02387", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '2190691dc03c6a9ed2668e8594035678' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'b61bbebfbe75933af13271d6b452b2d5' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-ab3fe8f58122.json", + "bodyFileName" : "btql-f6b83b69f52c.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "3", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "39", - "x-bt-api-duration-ms" : "85", - "Date" : "Mon, 31 Aug 2026 17:38:21 GMT", + "x-bt-brainstore-duration-ms" : "72", + "x-bt-api-duration-ms" : "77", + "Date" : "Sat, 07 Nov 2026 05:43:52 GMT", "Via" : "1.1 b54238be18861f9bb1272bf1cb10e040.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "652db0c0a67f431022101fc23b0b057e", - "X-Amz-Cf-Id" : "UFuaeM5RB_wkWyiHQmIKkD3-54hAng4Dpec-nCvkLFJvrZclgPv-DA==", + "x-bt-internal-trace-id" : "919eee1736127e97cc2038d7f2555c10", + "X-Amz-Cf-Id" : "gC6OfL_V3RffOVrfC05jgCZcK3QU14re89-RgJB1XVyXb6WAm1jG4g==", + "x-bt-cursor" : "mOWs88602oA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "e6583a49-933d-308c-94e6-b276bc630869", + "uuid" : "1afb0d44-3aac-3b44-ac97-b9f0aff02387", "persistent" : true, - "insertionIndex" : 143 + "insertionIndex" : 185 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-f89d085d4495.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-f89d085d4495.json deleted file mode 100644 index 62a72cef..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-f89d085d4495.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "id" : "3f93537d-33ab-343e-b0f2-fc4d11524521", - "name" : "btql", - "request" : { - "url" : "/btql", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '98658cd4cafe747e1c92be303c9a4c70' ORDER BY created ASC LIMIT 1000\"}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "btql-f89d085d4495.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "32", - "x-bt-api-duration-ms" : "104", - "Date" : "Mon, 31 Aug 2026 17:38:21 GMT", - "Via" : "1.1 087b179013ed486bf34db435cff85f08.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "private, no-cache", - "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "5ab2b5e9574d005a9599e7309eecbeb8", - "X-Amz-Cf-Id" : "MHOwB-rjVTBMmeQpOz_ilfj4TNsu4xn6H7RvvE3v952Fj20oho1nsQ==", - "Vary" : "Origin", - "Content-Type" : "application/json" - } - }, - "uuid" : "3f93537d-33ab-343e-b0f2-fc4d11524521", - "persistent" : true, - "insertionIndex" : 145 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-f8c3ee67adc0.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-f8c3ee67adc0.json new file mode 100644 index 00000000..e315602a --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-f8c3ee67adc0.json @@ -0,0 +1,43 @@ +{ + "id" : "1e349ef9-083e-389a-9c54-9cd1d1588e6b", + "name" : "btql", + "request" : { + "url" : "/btql", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'a5a8d63b6b5a5b35c8b0c8a97aa6afb8' ORDER BY created ASC LIMIT 1000\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "btql-f8c3ee67adc0.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", + "X-Amz-Cf-Pop" : "SEA900-P9", + "x-bt-brainstore-duration-ms" : "73", + "x-bt-api-duration-ms" : "79", + "Date" : "Sat, 07 Nov 2026 05:43:51 GMT", + "Via" : "1.1 bef90eae512e70457d6a8a77b097a124.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "private, no-cache", + "Access-Control-Allow-Credentials" : "true", + "x-bt-internal-trace-id" : "1e330edba78d3dba8862b463c9f4cdcc", + "X-Amz-Cf-Id" : "0M_Ex69nZ5PLcF3vbTWyvZ1FQtBti9PaXGgqB7VxBAiGk9k8AQaUMg==", + "x-bt-cursor" : "mOWs8ej8+0A", + "Vary" : "Origin", + "Content-Type" : "application/json" + } + }, + "uuid" : "1e349ef9-083e-389a-9c54-9cd1d1588e6b", + "persistent" : true, + "insertionIndex" : 186 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-06c58dbf2d58.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-f9239edaae9b.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-06c58dbf2d58.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-f9239edaae9b.json index a69c981b..c2e09048 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-06c58dbf2d58.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-f9239edaae9b.json @@ -1,5 +1,5 @@ { - "id" : "a5c3eacb-57bf-33c6-b2ac-b9fbc50c3dc0", + "id" : "126502ee-9e04-3a06-bc45-411db6b3844b", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '7513e8d10e866dba54ff7911b7157336' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = 'bfe27777fd698aa6fa69d816d93b1947' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-06c58dbf2d58.json", + "bodyFileName" : "btql-f9239edaae9b.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "28", - "x-bt-api-duration-ms" : "98", - "Date" : "Mon, 31 Aug 2026 17:38:12 GMT", + "x-bt-brainstore-duration-ms" : "105", + "x-bt-api-duration-ms" : "110", + "Date" : "Sat, 07 Nov 2026 05:43:43 GMT", "Via" : "1.1 38842c146ccd8f527d2de72671759d96.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "171e39b9e760d11a43590d66a5298a02", - "X-Amz-Cf-Id" : "8JiHAHMNVuR1P2egk6QMptwogItoP2ozi1PC1ZU30pUwZKsxPQpDFw==", + "x-bt-internal-trace-id" : "caa058a70dc56730f7f814612a783ba0", + "X-Amz-Cf-Id" : "R3h9aKH6ywPGliT2n2Dgn761fIIb2VfDxk-tJlqnfh7H-DwoWr-Xrw==", + "x-bt-cursor" : "mOWs8hkmFUA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "a5c3eacb-57bf-33c6-b2ac-b9fbc50c3dc0", + "uuid" : "126502ee-9e04-3a06-bc45-411db6b3844b", "persistent" : true, - "insertionIndex" : 172 + "insertionIndex" : 218 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-66565a616681.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-fb392e379b56.json similarity index 55% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-66565a616681.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-fb392e379b56.json index c4ce31a3..f0f58f44 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-66565a616681.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/btql-fb392e379b56.json @@ -1,5 +1,5 @@ { - "id" : "acb8a690-dad6-3ab8-871e-cdc92c68322a", + "id" : "e47e7020-4c49-3750-9b2f-f629e70c69f8", "name" : "btql", "request" : { "url" : "/btql", @@ -10,32 +10,34 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '0a29674f4f56fecfc2e832fe414a698e' ORDER BY created ASC LIMIT 1000\"}", + "equalToJson" : "{\"query\":\"SELECT * FROM project_logs('f1e858a4-58e3-408f-983f-016760d7fa25') WHERE root_span_id = '321b61d5f409583a13496ce2acb1bd6c' ORDER BY created ASC LIMIT 1000\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "btql-66565a616681.json", + "bodyFileName" : "btql-fb392e379b56.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "2", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "32", - "x-bt-api-duration-ms" : "94", - "Date" : "Mon, 31 Aug 2026 17:38:22 GMT", - "Via" : "1.1 087b179013ed486bf34db435cff85f08.cloudfront.net (CloudFront)", + "x-bt-brainstore-duration-ms" : "58", + "x-bt-api-duration-ms" : "63", + "Date" : "Sat, 07 Nov 2026 05:43:50 GMT", + "Via" : "1.1 bef90eae512e70457d6a8a77b097a124.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "private, no-cache", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "a96f145d6d2a843fa5dc64c38fde888e", - "X-Amz-Cf-Id" : "_8gih3mleFn9CVuiWHyhRY_zybPJWPiGT8BAC0tH9f-51BykZVxsHg==", + "x-bt-internal-trace-id" : "d2f5aecbb3be06661990d4f199fcb867", + "X-Amz-Cf-Id" : "XRqBihWSljOhF7JdW75_vOQLk8KaSsuxbi_3EWCt0PJj2D8Mw6TC8Q==", + "x-bt-cursor" : "mOWs88nwJoA", "Vary" : "Origin", "Content-Type" : "application/json" } }, - "uuid" : "acb8a690-dad6-3ab8-871e-cdc92c68322a", + "uuid" : "e47e7020-4c49-3750-9b2f-f629e70c69f8", "persistent" : true, - "insertionIndex" : 139 + "insertionIndex" : 190 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_dataset-627c4c785a51.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_dataset-627c4c785a51.json index 69111ab2..19314b2e 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_dataset-627c4c785a51.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_dataset-627c4c785a51.json @@ -21,15 +21,15 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:24 GMT", - "Via" : "1.1 087b179013ed486bf34db435cff85f08.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:12 GMT", + "Via" : "1.1 88f286e23c15fc2f62a741db8207a67a.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "x-bt-found-existing" : "true", "ETag" : "W/\"12c-rX5/7oehQ0HpKV/YJZGYRlUjmLg\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "IQl-v36ZMwcXysckCrAOfBWSQT944R8BdALvhdgeEsoXFeHqgdNARQ==", + "X-Amz-Cf-Id" : "q38htce1YKRPmf-yNTeyiY_kV2nqzm7BD0fVkk2mdstVRtRusKde1g==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -38,5 +38,5 @@ }, "uuid" : "246d082b-9935-3cf6-9a4d-4f70ae1ca19a", "persistent" : true, - "insertionIndex" : 88 + "insertionIndex" : 87 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_dataset-b424fbf4bfd5.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_dataset-b424fbf4bfd5.json index aebad106..b4beb777 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_dataset-b424fbf4bfd5.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_dataset-b424fbf4bfd5.json @@ -23,14 +23,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:25 GMT", - "Via" : "1.1 5af99d6f2fc1c569c253259aec683ee8.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:12 GMT", + "Via" : "1.1 38842c146ccd8f527d2de72671759d96.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"13a-eLtgbJfKc7jJ88Dx26MAIlt+WAM\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "ScTCLmgdzv5AGCaA_3_nKbzPGNnE3JNWm4pD9bsPBGTC7aULqqTEaQ==", + "X-Amz-Cf-Id" : "cGl7WRM5ZyIWYuQ-1reV3xK8xwQaeUQHBsND2Ut6N3uU5Fkmft2GcQ==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -42,5 +42,5 @@ "scenarioName" : "scenario-17-v1-dataset", "requiredScenarioState" : "Started", "newScenarioState" : "scenario-17-v1-dataset-2", - "insertionIndex" : 86 + "insertionIndex" : 85 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_dataset-dc3ffbbc6877.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_dataset-dc3ffbbc6877.json index 7ba22a17..d3bb7cb8 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_dataset-dc3ffbbc6877.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_dataset-dc3ffbbc6877.json @@ -23,14 +23,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:32 GMT", - "Via" : "1.1 3417fc639ca50b55b2a1d93807a20c2c.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:15 GMT", + "Via" : "1.1 a6be96637dfcb93ee417719bb21d57d0.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"13a-eLtgbJfKc7jJ88Dx26MAIlt+WAM\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "mkan-COXg6oh7U9EsvpQmFkLWXWpc48lJVyufmkmBkC-PiHxmoz1fw==", + "X-Amz-Cf-Id" : "fUdQi7iUvgJE0bZg_w8-63_I4hXEa_8-05umA9-GrA50ZHKTP9XcPA==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -41,5 +41,5 @@ "persistent" : true, "scenarioName" : "scenario-17-v1-dataset", "requiredScenarioState" : "scenario-17-v1-dataset-2", - "insertionIndex" : 76 + "insertionIndex" : 75 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_dataset_b9356d7d-1a96-4f96-9d41-276e9ebd6afe_fetch-1cf6219cfd0a.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_dataset_b9356d7d-1a96-4f96-9d41-276e9ebd6afe_fetch-1cf6219cfd0a.json index dad9f42b..3f7b7ab8 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_dataset_b9356d7d-1a96-4f96-9d41-276e9ebd6afe_fetch-1cf6219cfd0a.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_dataset_b9356d7d-1a96-4f96-9d41-276e9ebd6afe_fetch-1cf6219cfd0a.json @@ -20,17 +20,18 @@ "bodyFileName" : "v1_dataset_b9356d7d-1a96-4f96-9d41-276e9ebd6afe_fetch-1cf6219cfd0a.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "0", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "45", - "x-bt-api-duration-ms" : "95", - "Date" : "Mon, 31 Aug 2026 17:35:34 GMT", - "Via" : "1.1 4c8322ac27bebc2a7e26f72c7b6ec2ee.cloudfront.net (CloudFront)", + "x-bt-brainstore-duration-ms" : "92", + "x-bt-api-duration-ms" : "97", + "Date" : "Sat, 07 Nov 2026 05:42:16 GMT", + "Via" : "1.1 28edb03169fa053a4a523d90d15ff6ae.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "744286dd00b3a2f17330020ff26c9503", - "X-Amz-Cf-Id" : "pR5UD4s1DB9I9H4JKvOEHP2K_L4ULXYHq2uVPEYcXowEwXYg3v-3kg==", + "x-bt-internal-trace-id" : "d49367868ac6308e3cc5cec535adaf07", + "X-Amz-Cf-Id" : "ztjSXe-4184An6b9t_K_9YseWLj_PAgDWmBCI2qXH6Q7IgrGV8otTQ==", "Vary" : "Origin", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -41,5 +42,5 @@ "persistent" : true, "scenarioName" : "scenario-14-v1-dataset-b9356d7d-1a96-4f96-9d41-276e9ebd6afe-fetch", "requiredScenarioState" : "scenario-14-v1-dataset-b9356d7d-1a96-4f96-9d41-276e9ebd6afe-fetch-2", - "insertionIndex" : 70 + "insertionIndex" : 69 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_dataset_b9356d7d-1a96-4f96-9d41-276e9ebd6afe_fetch-1cf8574bf404.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_dataset_b9356d7d-1a96-4f96-9d41-276e9ebd6afe_fetch-1cf8574bf404.json index 9bbfb90b..28019450 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_dataset_b9356d7d-1a96-4f96-9d41-276e9ebd6afe_fetch-1cf8574bf404.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_dataset_b9356d7d-1a96-4f96-9d41-276e9ebd6afe_fetch-1cf8574bf404.json @@ -20,17 +20,18 @@ "bodyFileName" : "v1_dataset_b9356d7d-1a96-4f96-9d41-276e9ebd6afe_fetch-1cf8574bf404.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "1", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "66", - "x-bt-api-duration-ms" : "101", - "Date" : "Mon, 31 Aug 2026 17:35:34 GMT", - "Via" : "1.1 2501b465adde8e5aedc3f38e3dfcdc22.cloudfront.net (CloudFront)", + "x-bt-brainstore-duration-ms" : "73", + "x-bt-api-duration-ms" : "76", + "Date" : "Sat, 07 Nov 2026 05:42:16 GMT", + "Via" : "1.1 4c8322ac27bebc2a7e26f72c7b6ec2ee.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "ae6d35822b91eaf92b053d5dd520e3ab", - "X-Amz-Cf-Id" : "s_vNflwh2g95XWYYD6vLzTFxqO0GXPOze0BlrG3_cbdtLLUIMp4fSA==", + "x-bt-internal-trace-id" : "85cc435957933bbcfc53945c40401fd7", + "X-Amz-Cf-Id" : "CMYLNQ67e12efHX6IHk6i_aHOMuONRYM4g7KbJiZNIjtwazIB2Wu1Q==", "x-bt-cursor" : "agOGZGQDAAA", "Vary" : "Origin", "Expires" : "0", @@ -42,5 +43,5 @@ "persistent" : true, "scenarioName" : "scenario-15-v1-dataset-b9356d7d-1a96-4f96-9d41-276e9ebd6afe-fetch", "requiredScenarioState" : "scenario-15-v1-dataset-b9356d7d-1a96-4f96-9d41-276e9ebd6afe-fetch-2", - "insertionIndex" : 71 + "insertionIndex" : 70 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_dataset_b9356d7d-1a96-4f96-9d41-276e9ebd6afe_fetch-6640eb84e2cc.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_dataset_b9356d7d-1a96-4f96-9d41-276e9ebd6afe_fetch-6640eb84e2cc.json index 297ad131..23afc9a2 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_dataset_b9356d7d-1a96-4f96-9d41-276e9ebd6afe_fetch-6640eb84e2cc.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_dataset_b9356d7d-1a96-4f96-9d41-276e9ebd6afe_fetch-6640eb84e2cc.json @@ -20,17 +20,18 @@ "bodyFileName" : "v1_dataset_b9356d7d-1a96-4f96-9d41-276e9ebd6afe_fetch-6640eb84e2cc.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "0", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "35", - "x-bt-api-duration-ms" : "70", - "Date" : "Mon, 31 Aug 2026 17:35:27 GMT", - "Via" : "1.1 38842c146ccd8f527d2de72671759d96.cloudfront.net (CloudFront)", + "x-bt-brainstore-duration-ms" : "75", + "x-bt-api-duration-ms" : "105", + "Date" : "Sat, 07 Nov 2026 05:42:13 GMT", + "Via" : "1.1 0758a857b0f9c36d8cfe897182f568ce.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "8d65810ae39bed4f986e81ed06c632fa", - "X-Amz-Cf-Id" : "_EMYMEIwstV7hU_Z0KEKzmS-QRqx0bUCBYuVeIcLrfppRqvzPiJstg==", + "x-bt-internal-trace-id" : "9a722ebb962cbb0df1320bfa0d5f72d4", + "X-Amz-Cf-Id" : "XuO2hRZE7EakmqqkxyEEaZegOL943t-Ivbt3jGXCDJ8tz2nTnYhsYA==", "Vary" : "Origin", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -42,5 +43,5 @@ "scenarioName" : "scenario-14-v1-dataset-b9356d7d-1a96-4f96-9d41-276e9ebd6afe-fetch", "requiredScenarioState" : "Started", "newScenarioState" : "scenario-14-v1-dataset-b9356d7d-1a96-4f96-9d41-276e9ebd6afe-fetch-2", - "insertionIndex" : 83 + "insertionIndex" : 82 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_dataset_b9356d7d-1a96-4f96-9d41-276e9ebd6afe_fetch-c9f6f9c70482.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_dataset_b9356d7d-1a96-4f96-9d41-276e9ebd6afe_fetch-c9f6f9c70482.json index 7a512375..02ae5455 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_dataset_b9356d7d-1a96-4f96-9d41-276e9ebd6afe_fetch-c9f6f9c70482.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_dataset_b9356d7d-1a96-4f96-9d41-276e9ebd6afe_fetch-c9f6f9c70482.json @@ -20,17 +20,18 @@ "bodyFileName" : "v1_dataset_b9356d7d-1a96-4f96-9d41-276e9ebd6afe_fetch-c9f6f9c70482.json", "headers" : { "X-Cache" : "Miss from cloudfront", + "x-bt-count" : "1", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-brainstore-duration-ms" : "198", - "x-bt-api-duration-ms" : "234", - "Date" : "Mon, 31 Aug 2026 17:35:27 GMT", - "Via" : "1.1 28edb03169fa053a4a523d90d15ff6ae.cloudfront.net (CloudFront)", + "x-bt-brainstore-duration-ms" : "76", + "x-bt-api-duration-ms" : "104", + "Date" : "Sat, 07 Nov 2026 05:42:13 GMT", + "Via" : "1.1 9895fa1d75119fa16da9e015b58dbe5a.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "Access-Control-Allow-Credentials" : "true", - "x-bt-internal-trace-id" : "1dc61923ba64a8ddc08994ce1948cac7", - "X-Amz-Cf-Id" : "9OzKBNRR9FeQmlRwY2ionCQ-o4iyVF_YXs4UfK12nVfWzPU64GsZkQ==", + "x-bt-internal-trace-id" : "a81951224400350aa29c489d9d5432f7", + "X-Amz-Cf-Id" : "NLRXzzllnS9DUBChaw14rkYJOhQqVNx1pIQ5qmSHJoI08mMnE7DgWw==", "x-bt-cursor" : "agOGZGQDAAA", "Vary" : "Origin", "Expires" : "0", @@ -43,5 +44,5 @@ "scenarioName" : "scenario-15-v1-dataset-b9356d7d-1a96-4f96-9d41-276e9ebd6afe-fetch", "requiredScenarioState" : "Started", "newScenarioState" : "scenario-15-v1-dataset-b9356d7d-1a96-4f96-9d41-276e9ebd6afe-fetch-2", - "insertionIndex" : 84 + "insertionIndex" : 83 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-08983257c32b.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-08983257c32b.json index 8c2ec01d..1d2f30ba 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-08983257c32b.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-08983257c32b.json @@ -20,15 +20,15 @@ "bodyFileName" : "v1_experiment-08983257c32b.json", "headers" : { "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:22 GMT", - "Via" : "1.1 83d24992402f7b214901ab76fbdc11e2.cloudfront.net (CloudFront)", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:08 GMT", + "Via" : "1.1 e8b22a8fa8511f8f972b4965a9af80b4.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"1bf-97m5BoF5VHRxK0jj4iLHHlNNYB4\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "c0grgEz0gtxARuuLz0GCW7fbc8jVAysoW4WwE-VE7d_tR1Axt3_6eg==", + "X-Amz-Cf-Id" : "tb_ua6HiUOWoxoFIjLJvOy6dgkKKmp8nvPI82tVfSCjJB97jDHLFtw==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ }, "uuid" : "5b64a1d5-cf8f-3a99-a25d-94e2daff200e", "persistent" : true, - "insertionIndex" : 204 + "insertionIndex" : 103 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-1185d0796fb3.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-1185d0796fb3.json index fdae183a..f4fd2f53 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-1185d0796fb3.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-1185d0796fb3.json @@ -21,14 +21,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:13 GMT", - "Via" : "1.1 1271197444822e7c59413a59ecbcecd6.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:41:59 GMT", + "Via" : "1.1 04efc78121acf5d40974e6a71bebce20.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"1cc-wY6bMr0WYAzBpcNQkHl9XTJwGLo\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "fFoi3qGkBHDq7kWalYuVbcRyA3Q42wzFA15uuTPBubAkZ8aWoF2VJA==", + "X-Amz-Cf-Id" : "NYECe4THFBd935OjyiGArJb1dsSh9I3BfHgo4wIcPEWe10ry5IN83w==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ }, "uuid" : "eecc14b6-db38-3599-a246-dfa88a5f3369", "persistent" : true, - "insertionIndex" : 102 + "insertionIndex" : 137 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-15c1caf03988.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-15c1caf03988.json index 11253993..04a88d82 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-15c1caf03988.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-15c1caf03988.json @@ -21,14 +21,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:40 GMT", - "Via" : "1.1 1271197444822e7c59413a59ecbcecd6.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:18 GMT", + "Via" : "1.1 c72e48ed2f0a994f695ca2fb4bc9247e.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"1df-KoYSpT/17Hnv0PbF0CasKHhrIKA\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "G4y4p18s8Au6Zls89_6ChF6bq0Yz9i9-eOFwy6_6O746tEKrI5wZcg==", + "X-Amz-Cf-Id" : "Wn-iT04tuGddcTJ-6554trvot40V_I4XxvF5-ByUWZzDx-tEbefeHg==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ }, "uuid" : "955dbb84-2b3b-3dca-b2db-0271055b1362", "persistent" : true, - "insertionIndex" : 63 + "insertionIndex" : 62 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-1aa85d713cc8.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-1aa85d713cc8.json index 799dc478..155e3ed0 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-1aa85d713cc8.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-1aa85d713cc8.json @@ -20,15 +20,15 @@ "bodyFileName" : "v1_experiment-1aa85d713cc8.json", "headers" : { "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:18 GMT", - "Via" : "1.1 ffe9646b2ea911744e2d51fc0715cedc.cloudfront.net (CloudFront)", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:04 GMT", + "Via" : "1.1 38842c146ccd8f527d2de72671759d96.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"1d3-mDmDvj0ti3MLK5KlyF9Qj+KScEg\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "qZYcm9PgK1sdc-fjRu_PdYwHLsmXjwkf1HAF9FqXE2OueG2SH4Pv3w==", + "X-Amz-Cf-Id" : "9kzXlB3lB86yHjZ2QVR2HizKyq5QW6nOzRpQp9I935AX2bYOt7Unew==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ }, "uuid" : "bef86057-c3e8-3b36-b0ea-be2e85330a0b", "persistent" : true, - "insertionIndex" : 219 + "insertionIndex" : 121 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-1c35a91bc6db.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-1c35a91bc6db.json index 5d418ffb..9111e8c0 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-1c35a91bc6db.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-1c35a91bc6db.json @@ -21,14 +21,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:29 GMT", - "Via" : "1.1 087b179013ed486bf34db435cff85f08.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:14 GMT", + "Via" : "1.1 c72e48ed2f0a994f695ca2fb4bc9247e.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"1ce-4V8i0VWkVtltcJCLXao3Z7tGkcA\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "3gPmBN4CG9_xp3Dlr_do2Jeer3HZAz6_LwS-sUM4moY3d7ur21lFMQ==", + "X-Amz-Cf-Id" : "Q72VGlC6eEHMlOi7jYiG_6DTkXdeu1Tg7qNo_U-c0zDGRT7uGVOexw==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ }, "uuid" : "35b9c451-bdbc-392d-a482-c8c36005c69f", "persistent" : true, - "insertionIndex" : 80 + "insertionIndex" : 79 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-640904b89031.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-223b587c3a0d.json similarity index 65% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-640904b89031.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-223b587c3a0d.json index b3df5b56..906daf66 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-640904b89031.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-223b587c3a0d.json @@ -1,5 +1,5 @@ { - "id" : "4df85c81-84c8-319f-a4b1-dd6eb4a70708", + "id" : "83feb2e2-93c3-36de-b9d4-3c15ca79a664", "name" : "v1_experiment", "request" : { "url" : "/v1/experiment", @@ -17,28 +17,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "v1_experiment-640904b89031.json", + "bodyFileName" : "v1_experiment-223b587c3a0d.json", "headers" : { "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:19 GMT", - "Via" : "1.1 0df7f27a01014ab815259ca2d88193c6.cloudfront.net (CloudFront)", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:05 GMT", + "Via" : "1.1 087b179013ed486bf34db435cff85f08.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"1c2-LL5Gg+/1eJtV3ksHwkyQRHY7WIc\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "TUmtBd073JSpp2RBwdfZq2iIKID_yf0Wh2dm8zVQBJJ8eWHL0NbF7A==", + "X-Amz-Cf-Id" : "yh9mGRAS5L5fi4ECFDIH4lHmTWJ5JL8VIBrLB1pqR2DW2bf1aqJP5Q==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "4df85c81-84c8-319f-a4b1-dd6eb4a70708", + "uuid" : "83feb2e2-93c3-36de-b9d4-3c15ca79a664", "persistent" : true, - "scenarioName" : "scenario-3-v1-experiment", + "scenarioName" : "scenario-19-v1-experiment", "requiredScenarioState" : "Started", - "newScenarioState" : "scenario-3-v1-experiment-2", - "insertionIndex" : 216 + "newScenarioState" : "scenario-19-v1-experiment-2", + "insertionIndex" : 115 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-f4bcbfaef3af.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-25879a848121.json similarity index 64% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-f4bcbfaef3af.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-25879a848121.json index e77cd0ca..e412b939 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-f4bcbfaef3af.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-25879a848121.json @@ -1,5 +1,5 @@ { - "id" : "52ce3247-31fb-354d-bb03-8abc792fb339", + "id" : "8c9b0e36-e3a9-36e9-bee2-e2b8d2cb22c5", "name" : "v1_experiment", "request" : { "url" : "/v1/experiment", @@ -17,27 +17,27 @@ }, "response" : { "status" : 200, - "bodyFileName" : "v1_experiment-f4bcbfaef3af.json", + "bodyFileName" : "v1_experiment-25879a848121.json", "headers" : { "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:20 GMT", - "Via" : "1.1 b3ccaedda78c63d5967b57382ceb4cbe.cloudfront.net (CloudFront)", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:07 GMT", + "Via" : "1.1 b3a8bdee20374465a3f2aa64f19ec30e.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"1c2-LL5Gg+/1eJtV3ksHwkyQRHY7WIc\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "1uuKpdw8Q4mJ4cQE0EkJyJPeEI1bJjBT4L4iSiyV4mIwAhcssWorng==", + "X-Amz-Cf-Id" : "WiBkr906eHDIQWTcm7GZrIJqcwjmY6HBeZmsZh9muqafVrBsWKR3XQ==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "52ce3247-31fb-354d-bb03-8abc792fb339", + "uuid" : "8c9b0e36-e3a9-36e9-bee2-e2b8d2cb22c5", "persistent" : true, - "scenarioName" : "scenario-3-v1-experiment", - "requiredScenarioState" : "scenario-3-v1-experiment-2", - "insertionIndex" : 210 + "scenarioName" : "scenario-19-v1-experiment", + "requiredScenarioState" : "scenario-19-v1-experiment-2", + "insertionIndex" : 109 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-2c8bb270c5cf.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-2c8bb270c5cf.json index 0fe7d0fc..bec88b25 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-2c8bb270c5cf.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-2c8bb270c5cf.json @@ -21,14 +21,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:16 GMT", - "Via" : "1.1 88f286e23c15fc2f62a741db8207a67a.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:00 GMT", + "Via" : "1.1 3417fc639ca50b55b2a1d93807a20c2c.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"1c6-rz81IPhQ4qZNL6lAqhJrzM+gycU\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "Ahm3thF__dsP6OojQIw64Y0XKIX7y0EpzYnk6-N2Ds1LmaohM2SARQ==", + "X-Amz-Cf-Id" : "etkvO_VCzp1gdXgfoQTeiSZVJ0c4sbUaIsLb_J22_swJ_Fsz14LfOw==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ }, "uuid" : "cc272b70-f30a-3174-9ba3-a81baae8f4ed", "persistent" : true, - "insertionIndex" : 99 + "insertionIndex" : 134 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-409b337a72c9.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-43356f728947.json similarity index 64% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-409b337a72c9.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-43356f728947.json index 8bbe7c6f..17f2476c 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-409b337a72c9.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-43356f728947.json @@ -1,5 +1,5 @@ { - "id" : "72603ff3-d67e-3e6c-acaa-8f9e27a4992d", + "id" : "95f1c54a-95e5-3c40-928c-5ebb47a09b7f", "name" : "v1_experiment", "request" : { "url" : "/v1/experiment", @@ -17,25 +17,27 @@ }, "response" : { "status" : 200, - "bodyFileName" : "v1_experiment-409b337a72c9.json", + "bodyFileName" : "v1_experiment-43356f728947.json", "headers" : { "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:25 GMT", - "Via" : "1.1 4ac8d091dce10e726cfc5404bfed72b8.cloudfront.net (CloudFront)", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:11 GMT", + "Via" : "1.1 a3134c0c893f03d1e9a9c657d09af7cc.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"1c5-0xoT2bc4TJrBN/DjLJgLlbr9jio\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "9KB3UHD3YQnWzlRzNzE2DTbybpILaUaIAj9xifFANrxpzxd_Y8-mzA==", + "X-Amz-Cf-Id" : "vyp4ltGpZKcE_EjC0fFa_PLQiAXSIJq6jnQXnFX2PjQ9zZj3kpWeVg==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "72603ff3-d67e-3e6c-acaa-8f9e27a4992d", + "uuid" : "95f1c54a-95e5-3c40-928c-5ebb47a09b7f", "persistent" : true, - "insertionIndex" : 192 + "scenarioName" : "scenario-18-v1-experiment", + "requiredScenarioState" : "scenario-18-v1-experiment-2", + "insertionIndex" : 88 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-4505871e1c6e.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-4505871e1c6e.json index 02456f14..5215197f 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-4505871e1c6e.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-4505871e1c6e.json @@ -21,14 +21,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:33 GMT", - "Via" : "1.1 38842c146ccd8f527d2de72671759d96.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:16 GMT", + "Via" : "1.1 a3134c0c893f03d1e9a9c657d09af7cc.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"211-qVCZH2Q8waC10QyI4t+xLS470s8\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "DW4e8e7R7BeqoYu-8ET8ODfAtOjyKCqtA_j4frpTn-gJEc5X7k6_5g==", + "X-Amz-Cf-Id" : "NdYD-ry05raLyZwsxQgnD-71jb90yeXwN0EaArIdDskPFwz7v3HlRw==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ }, "uuid" : "7b052aee-212a-3672-83b2-04fe7e916e5a", "persistent" : true, - "insertionIndex" : 72 + "insertionIndex" : 71 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-4577513c3a09.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-4577513c3a09.json new file mode 100644 index 00000000..3d11bcc4 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-4577513c3a09.json @@ -0,0 +1,44 @@ +{ + "id" : "34a43367-fba9-3aff-8f0d-270802b26c7e", + "name" : "v1_experiment", + "request" : { + "url" : "/v1/experiment", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"project_id\":\"f1e858a4-58e3-408f-983f-016760d7fa25\",\"name\":\"unit-test-eval\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_experiment-4577513c3a09.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:39 GMT", + "Via" : "1.1 b54238be18861f9bb1272bf1cb10e040.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"1c0-rOfZfVMj+H5rmOzu1dSCnRShoyM\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "ZtO9h4rAX3BlFmap13BnQQmQB8M3J3jsqY7C2E7Aoto3gx_zxJSJkw==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "34a43367-fba9-3aff-8f0d-270802b26c7e", + "persistent" : true, + "scenarioName" : "scenario-2-v1-experiment", + "requiredScenarioState" : "scenario-2-v1-experiment-4", + "newScenarioState" : "scenario-2-v1-experiment-5", + "insertionIndex" : 18 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-67cf42a7ba09.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-45d170396bcc.json similarity index 68% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-67cf42a7ba09.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-45d170396bcc.json index 1a26a090..1fd62f50 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-67cf42a7ba09.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-45d170396bcc.json @@ -1,5 +1,5 @@ { - "id" : "033278d8-c030-3530-9126-baba54549cdd", + "id" : "43dbbc0c-ad7e-300c-907a-740f5b59976f", "name" : "v1_experiment", "request" : { "url" : "/v1/experiment", @@ -17,28 +17,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "v1_experiment-67cf42a7ba09.json", + "bodyFileName" : "v1_experiment-45d170396bcc.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:52 GMT", + "Date" : "Sat, 07 Nov 2026 05:42:22 GMT", "Via" : "1.1 6ebf93cd3baadad602a5fd706f0df16e.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"1c0-rOfZfVMj+H5rmOzu1dSCnRShoyM\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "lRvP5MENaaRVSeVlnFNDTGE9h7bqLh_dV15AlOkyGJ47iQNekoeUpw==", + "X-Amz-Cf-Id" : "YMXFAXN3wambjqgOm_9DLUMnQ2oJVjyjqWr3z9fOeKbyP3xWLbT4aA==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "033278d8-c030-3530-9126-baba54549cdd", + "uuid" : "43dbbc0c-ad7e-300c-907a-740f5b59976f", "persistent" : true, - "scenarioName" : "scenario-3-v1-experiment", - "requiredScenarioState" : "scenario-3-v1-experiment-3", - "newScenarioState" : "scenario-3-v1-experiment-4", - "insertionIndex" : 48 + "scenarioName" : "scenario-2-v1-experiment", + "requiredScenarioState" : "scenario-2-v1-experiment-3", + "newScenarioState" : "scenario-2-v1-experiment-4", + "insertionIndex" : 47 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-4c3bb7c53c36.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-4c3bb7c53c36.json index df1063ae..5fd0ba4f 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-4c3bb7c53c36.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-4c3bb7c53c36.json @@ -20,15 +20,15 @@ "bodyFileName" : "v1_experiment-4c3bb7c53c36.json", "headers" : { "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:20 GMT", - "Via" : "1.1 4ac8d091dce10e726cfc5404bfed72b8.cloudfront.net (CloudFront)", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:06 GMT", + "Via" : "1.1 b54238be18861f9bb1272bf1cb10e040.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"1c5-XHOo3Sc+fQrk1dpnwRSa1Vcfu6M\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "la7wSkitfmU0PVE4wGTMx6YcXKW9RCXicWLh5cFqQwojOmaiVsGnmA==", + "X-Amz-Cf-Id" : "_LiLCv45PQfbJT4GhmamxSOuybzm4GNwgjaPObWo_eS3j2CVMjFL5g==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ }, "uuid" : "8964d68a-597d-3eb5-b4e9-e3aa97abb792", "persistent" : true, - "insertionIndex" : 213 + "insertionIndex" : 112 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-4f1bd5afd18d.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-4f1bd5afd18d.json index 17c97a63..03577826 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-4f1bd5afd18d.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-4f1bd5afd18d.json @@ -21,14 +21,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:22 GMT", - "Via" : "1.1 b2b215a89cc2734b2940e2eb59ea4bd0.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:03 GMT", + "Via" : "1.1 4c8322ac27bebc2a7e26f72c7b6ec2ee.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"1c7-Nuu5x5+lc1SsjkxZYjB+5Dmn450\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "occ7rh3_9u_FHwLJ7AZxE4Z804x4Q5eoZaTnf0TsHsktdHALcgsNdQ==", + "X-Amz-Cf-Id" : "-pVIu7WGo8D_IFzC7mFCfWT52_sAkVHlXcjcKftfdbRKVFmAUjLs9A==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ }, "uuid" : "b82cb2d9-9920-3347-b016-b1d659c0af6e", "persistent" : true, - "insertionIndex" : 89 + "insertionIndex" : 124 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-5d684800a6fd.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-5d684800a6fd.json index 30344d1a..214c254f 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-5d684800a6fd.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-5d684800a6fd.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:48 GMT", - "Via" : "1.1 3417fc639ca50b55b2a1d93807a20c2c.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:21 GMT", + "Via" : "1.1 a3134c0c893f03d1e9a9c657d09af7cc.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", - "ETag" : "W/\"43b3-roALl1F8FPYyjCcQyTEluW7jHUg\"", + "ETag" : "W/\"598d-DbT0gwnYbacAm6+4eDMgUx2JN+w\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "lQ7ogAYHDv9NH0mqIBBQhJQdgXcmpsCpIUUr8uPmmt5MrXw_rSlugA==", + "X-Amz-Cf-Id" : "L8nk9KPgivYIdoIHVvx2DPSeNb6XHU7OOkjWy4V9fjDHUqPcA24_Ow==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -36,5 +36,5 @@ "persistent" : true, "scenarioName" : "scenario-13-v1-experiment", "requiredScenarioState" : "scenario-13-v1-experiment-2", - "insertionIndex" : 54 + "insertionIndex" : 53 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-7178bf200daf.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-5d6f4af37efc.json similarity index 66% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-7178bf200daf.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-5d6f4af37efc.json index 75f589af..84c0eae0 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-7178bf200daf.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-5d6f4af37efc.json @@ -1,5 +1,5 @@ { - "id" : "49b9c82f-556e-37e1-b769-d894bc2cfe12", + "id" : "7043c796-64b0-3da1-8ee3-09b21f0d0170", "name" : "v1_experiment", "request" : { "url" : "/v1/experiment", @@ -17,27 +17,27 @@ }, "response" : { "status" : 200, - "bodyFileName" : "v1_experiment-7178bf200daf.json", + "bodyFileName" : "v1_experiment-5d6f4af37efc.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:29 GMT", - "Via" : "1.1 7aad92255c39d277bce3f20afa1b059c.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:42 GMT", + "Via" : "1.1 b54238be18861f9bb1272bf1cb10e040.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"1c0-rOfZfVMj+H5rmOzu1dSCnRShoyM\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "qZ9iMxDNmiVjk7IxLY2oZJ_Ox7zeJtFMa-WeJ54wdJm32x5fGiu7sA==", + "X-Amz-Cf-Id" : "fxXyvq7ROBYxGcf1DSEhq--5w3DpsSfs1l6NzWnQfEoVH9WhQuORLw==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "49b9c82f-556e-37e1-b769-d894bc2cfe12", + "uuid" : "7043c796-64b0-3da1-8ee3-09b21f0d0170", "persistent" : true, - "scenarioName" : "scenario-3-v1-experiment", - "requiredScenarioState" : "scenario-3-v1-experiment-6", - "insertionIndex" : 7 + "scenarioName" : "scenario-2-v1-experiment", + "requiredScenarioState" : "scenario-2-v1-experiment-6", + "insertionIndex" : 6 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-95018d18b04f.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-6baf6e1201ad.json similarity index 61% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-95018d18b04f.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-6baf6e1201ad.json index d722ec72..f7a27977 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-95018d18b04f.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-6baf6e1201ad.json @@ -1,5 +1,5 @@ { - "id" : "cd835756-9130-33e1-b29d-ed548e4da98f", + "id" : "43553f2e-b642-38c6-b866-ba12c324a246", "name" : "v1_experiment", "request" : { "url" : "/v1/experiment", @@ -10,35 +10,35 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"project_id\":\"f1e858a4-58e3-408f-983f-016760d7fa25\",\"name\":\"unit-test-eval\"}", + "equalToJson" : "{\"project_id\":\"f1e858a4-58e3-408f-983f-016760d7fa25\",\"name\":\"failing-task-test\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "v1_experiment-95018d18b04f.json", + "bodyFileName" : "v1_experiment-6baf6e1201ad.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:38 GMT", - "Via" : "1.1 a3134c0c893f03d1e9a9c657d09af7cc.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:05 GMT", + "Via" : "1.1 bef90eae512e70457d6a8a77b097a124.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", - "ETag" : "W/\"1c0-rOfZfVMj+H5rmOzu1dSCnRShoyM\"", + "ETag" : "W/\"1c5-0xoT2bc4TJrBN/DjLJgLlbr9jio\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "Oo9gtys5Z84rHvv3ASPkiiKaXEHGZRXxc2XhJP7803iCZA7yaJbz7g==", + "X-Amz-Cf-Id" : "6V-Iz8Zl2s3v-Zxw9futqr1_lx99Kf9j4_912N_-2aEcIBcSn6Ey6Q==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "cd835756-9130-33e1-b29d-ed548e4da98f", + "uuid" : "43553f2e-b642-38c6-b866-ba12c324a246", "persistent" : true, - "scenarioName" : "scenario-3-v1-experiment", + "scenarioName" : "scenario-18-v1-experiment", "requiredScenarioState" : "Started", - "newScenarioState" : "scenario-3-v1-experiment-2", - "insertionIndex" : 66 + "newScenarioState" : "scenario-18-v1-experiment-2", + "insertionIndex" : 118 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-6f12a32a982e.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-6f12a32a982e.json index 23b134ab..578e3f2b 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-6f12a32a982e.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-6f12a32a982e.json @@ -21,14 +21,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:22 GMT", - "Via" : "1.1 e8b22a8fa8511f8f972b4965a9af80b4.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:39 GMT", + "Via" : "1.1 7f26c41dda80bd7d50ccec2be87c9c3e.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"1cb-3+W4r/SJHc/1jIbRvRwxUW1Hzeg\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "RfuPwoviSO58DOB7f7KKz4pkoBO_5jC95xHfQa5uOYNycWNOkY79_A==", + "X-Amz-Cf-Id" : "rpxplyuikx1nOGa424EI9wWMo32nY0iPItgIykH9O6QZ2xR3A12k8g==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -39,5 +39,5 @@ "persistent" : true, "scenarioName" : "scenario-6-v1-experiment", "requiredScenarioState" : "scenario-6-v1-experiment-2", - "insertionIndex" : 16 + "insertionIndex" : 15 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-80d23f49c06c.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-80d23f49c06c.json index 46d3e0b6..b887cb94 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-80d23f49c06c.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-80d23f49c06c.json @@ -21,14 +21,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:09 GMT", - "Via" : "1.1 bef90eae512e70457d6a8a77b097a124.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:41:58 GMT", + "Via" : "1.1 0ddbf3138c96d4b7c9f8047edb515414.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"1c2-xdW6/5KUQpOgyFv/Kw/psYXB6lA\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "BgvYcuu5mjqkGXmFV2eSKcjwJGcxZmKPWuT4vyKSNV50n0KXEigCDA==", + "X-Amz-Cf-Id" : "Omo4iSDtNolocXJ7Tlt1_dvIdK1uzv8Dj6ftRy1KXmWRU4znlkjjWw==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ }, "uuid" : "a5ae2b98-65c4-3fa3-b2fd-58b8852e2e8f", "persistent" : true, - "insertionIndex" : 105 + "insertionIndex" : 140 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-81a6ebbafe29.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-81a6ebbafe29.json index 2cd86824..bb71fab1 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-81a6ebbafe29.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-81a6ebbafe29.json @@ -21,14 +21,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:19 GMT", - "Via" : "1.1 63560dd3f856b0f7bfe68a0cad46924a.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:01 GMT", + "Via" : "1.1 0758a857b0f9c36d8cfe897182f568ce.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"1c3-dkvmbzbnogEoefH3HNfcb+4qbp8\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "ZvoOUNWnNFMXTYWn-i6FF0Cw6Z9G74wj8_d63IF6K4DdnjLoHJnu3w==", + "X-Amz-Cf-Id" : "U9uvwqJB8xP82H6F6WdyuHKthzW81gFdKVuBitJRxFqO3iKiq7ZITg==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ }, "uuid" : "88dfcc21-c37b-3d4e-9cf7-01d8d26e7cdc", "persistent" : true, - "insertionIndex" : 94 + "insertionIndex" : 129 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-81c93d1c26be.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-81c93d1c26be.json index 8b53b2a9..10dd693e 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-81c93d1c26be.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-81c93d1c26be.json @@ -20,15 +20,15 @@ "bodyFileName" : "v1_experiment-81c93d1c26be.json", "headers" : { "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:24 GMT", - "Via" : "1.1 b669d9add7767f73665f1f8b7e8cd802.cloudfront.net (CloudFront)", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:09 GMT", + "Via" : "1.1 087b179013ed486bf34db435cff85f08.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"1c4-grPA721Zvp9tyi/CCXRTJj+1nVk\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "oScHSb0cpl-vBmVoDYRGeDGJzhafnwFlLw-UCxru1C-Q96Hm9bN7sg==", + "X-Amz-Cf-Id" : "2c7uff7q9Q_L--zv6GB-rpQf7cM8rQyi517cTe4oUV9ZUMfcmkOyBw==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ }, "uuid" : "2d9ed8b9-81c9-35f1-b790-3fff0d2237b0", "persistent" : true, - "insertionIndex" : 198 + "insertionIndex" : 97 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-3a2e2d9f7d29.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-91fc05ac5956.json similarity index 64% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-3a2e2d9f7d29.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-91fc05ac5956.json index 9d68d64f..77e77ea9 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-3a2e2d9f7d29.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-91fc05ac5956.json @@ -1,5 +1,5 @@ { - "id" : "74ba6617-27cb-3106-8590-72ae57baa637", + "id" : "ec63722e-d3a7-3005-a1be-12864da7f178", "name" : "v1_experiment", "request" : { "url" : "/v1/experiment", @@ -17,28 +17,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "v1_experiment-3a2e2d9f7d29.json", + "bodyFileName" : "v1_experiment-91fc05ac5956.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:26 GMT", - "Via" : "1.1 1271197444822e7c59413a59ecbcecd6.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:41 GMT", + "Via" : "1.1 b3a8bdee20374465a3f2aa64f19ec30e.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"1c0-rOfZfVMj+H5rmOzu1dSCnRShoyM\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "CkaGPjXs0R6BH0jmBjL1u9yNaJz2PH5jIZNGHyJZhmteSD_VziKRzA==", + "X-Amz-Cf-Id" : "6rOuV8wQzjnl9rnngRLKpkld_5DIjITJn0qXgOzUzFukYjPc1askOw==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "74ba6617-27cb-3106-8590-72ae57baa637", + "uuid" : "ec63722e-d3a7-3005-a1be-12864da7f178", "persistent" : true, - "scenarioName" : "scenario-3-v1-experiment", - "requiredScenarioState" : "scenario-3-v1-experiment-5", - "newScenarioState" : "scenario-3-v1-experiment-6", - "insertionIndex" : 10 + "scenarioName" : "scenario-2-v1-experiment", + "requiredScenarioState" : "scenario-2-v1-experiment-5", + "newScenarioState" : "scenario-2-v1-experiment-6", + "insertionIndex" : 9 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-97bb2a06cbf7.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-97bb2a06cbf7.json index 41e0c03a..eea28adb 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-97bb2a06cbf7.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-97bb2a06cbf7.json @@ -21,14 +21,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:44 GMT", - "Via" : "1.1 3417fc639ca50b55b2a1d93807a20c2c.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:19 GMT", + "Via" : "1.1 b2b215a89cc2734b2940e2eb59ea4bd0.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"1cd-1ye19VDF6K82pXTqX6IArIkktuk\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "m10RiDsvl_al33qt8JklKXf6B16P6Wsd0fNoiWM34lUXl6jhZ0lFXQ==", + "X-Amz-Cf-Id" : "eH60E8kfLKyKY9jjph1B8JQBiST9ckR_l4_tuZY77tgenUduwhhaUA==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -40,5 +40,5 @@ "scenarioName" : "scenario-5-v1-experiment", "requiredScenarioState" : "Started", "newScenarioState" : "scenario-5-v1-experiment-2", - "insertionIndex" : 58 + "insertionIndex" : 57 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-46c4ac06117d.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-9b3af67f77ba.json similarity index 68% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-46c4ac06117d.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-9b3af67f77ba.json index 1b3a7bd2..d585e3c9 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-46c4ac06117d.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-9b3af67f77ba.json @@ -1,5 +1,5 @@ { - "id" : "431ff1be-2f61-3289-ab39-24a10e4d6dfa", + "id" : "dd93a1af-ae0e-35e9-a5f1-6a8f71e44b2e", "name" : "v1_experiment", "request" : { "url" : "/v1/experiment", @@ -17,28 +17,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "v1_experiment-46c4ac06117d.json", + "bodyFileName" : "v1_experiment-9b3af67f77ba.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:20 GMT", + "Date" : "Sat, 07 Nov 2026 05:42:17 GMT", "Via" : "1.1 2501b465adde8e5aedc3f38e3dfcdc22.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"1c0-rOfZfVMj+H5rmOzu1dSCnRShoyM\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "PxIuOivbQEDPbKEgg1ieHV_f0ueTwfAhOF76h5mczG-2CGW5SKjkUg==", + "X-Amz-Cf-Id" : "RSZgt_vzzfcUd3a3iGSpwXKx7GbsdyNTbNRsDq-6Ywfo3RhOyMmJkQ==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "431ff1be-2f61-3289-ab39-24a10e4d6dfa", + "uuid" : "dd93a1af-ae0e-35e9-a5f1-6a8f71e44b2e", "persistent" : true, - "scenarioName" : "scenario-3-v1-experiment", - "requiredScenarioState" : "scenario-3-v1-experiment-4", - "newScenarioState" : "scenario-3-v1-experiment-5", - "insertionIndex" : 19 + "scenarioName" : "scenario-2-v1-experiment", + "requiredScenarioState" : "Started", + "newScenarioState" : "scenario-2-v1-experiment-2", + "insertionIndex" : 65 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-9d06cabca0f6.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-9d06cabca0f6.json index 1fc90c99..683ef345 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-9d06cabca0f6.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-9d06cabca0f6.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:35 GMT", - "Via" : "1.1 5af99d6f2fc1c569c253259aec683ee8.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:17 GMT", + "Via" : "1.1 7f26c41dda80bd7d50ccec2be87c9c3e.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", - "ETag" : "W/\"43b3-roALl1F8FPYyjCcQyTEluW7jHUg\"", + "ETag" : "W/\"598d-DbT0gwnYbacAm6+4eDMgUx2JN+w\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "qEHQ4Q4w2vdr0P5tDRzEW3E24eIc-irRSB3DHj92LEmdNV9f-MEfnA==", + "X-Amz-Cf-Id" : "NucpXaoLSihYi2iGEKB8o-sCxuY17fcXmMR18gSbhBAcWfb1oDugfA==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ "scenarioName" : "scenario-13-v1-experiment", "requiredScenarioState" : "Started", "newScenarioState" : "scenario-13-v1-experiment-2", - "insertionIndex" : 69 + "insertionIndex" : 68 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-a1296773fd64.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-a1296773fd64.json index 65d6ed3e..ca5e6913 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-a1296773fd64.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-a1296773fd64.json @@ -20,15 +20,15 @@ "bodyFileName" : "v1_experiment-a1296773fd64.json", "headers" : { "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:25 GMT", - "Via" : "1.1 ee5f8da78d4211a93c9dba8864a4067e.cloudfront.net (CloudFront)", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:10 GMT", + "Via" : "1.1 d49bde7225e80ca0dc457ff2b8b4343e.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"1d6-o5VGeBLncWhhFTItbGvxP0e28oQ\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "iKLgvT512ETWbYhfJ3ifSNQUgCa0rBkdjvjqCz22mPaxravGoWftFA==", + "X-Amz-Cf-Id" : "jmQNTGW82FPUkolh73MXK_qrL67dZqI8aIsg0uzjVWyDnffGDp19mQ==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ }, "uuid" : "c24486a2-2de0-3d14-b3cf-aa8755b0ab63", "persistent" : true, - "insertionIndex" : 195 + "insertionIndex" : 94 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-a6fe1b460300.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-a6fe1b460300.json index 1513b507..977f37b2 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-a6fe1b460300.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-a6fe1b460300.json @@ -20,15 +20,15 @@ "bodyFileName" : "v1_experiment-a6fe1b460300.json", "headers" : { "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:26 GMT", - "Via" : "1.1 dbfd9bcc806d4c322e72b461b2458112.cloudfront.net (CloudFront)", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:11 GMT", + "Via" : "1.1 dea0b5e705fff834db8ae3992ea09cfa.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"1be-+xWx4aXHBjzJNFK6Xn4fSlVfCe4\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "tAlHb1bV938e8jdhV3f2GTcqNAA-woyJzZ_ke5b1VcRhPu7yitaPaQ==", + "X-Amz-Cf-Id" : "qWV4ktrpe8sdYLQA9dekaA-WZnfLgFCNPsIo_6jr5nH0NBLEbBLODA==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ }, "uuid" : "b79ecd18-2d9e-3c6a-a81c-855252f53364", "persistent" : true, - "insertionIndex" : 189 + "insertionIndex" : 91 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-b23c58a28a5b.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-b23c58a28a5b.json index 16f3c43b..654a065e 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-b23c58a28a5b.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-b23c58a28a5b.json @@ -21,14 +21,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:00 GMT", - "Via" : "1.1 55a62c25b77c24cde4014f567fd1c550.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:41:55 GMT", + "Via" : "1.1 087b179013ed486bf34db435cff85f08.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", - "ETag" : "W/\"1d2-T2Pz/5QrAu19SvDc9yWjkb2n6Dc\"", + "ETag" : "W/\"1d2-iwZtcIEsGJVImq87//Huf3ZIGt8\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "meXZrBsmoBIdMPLZZnM7Yfs8iAgDccxonr-IiRV5EtToXvbRXrGhOw==", + "X-Amz-Cf-Id" : "wp2A3RN7Z9Z_T5M1KVDroN423nh_Kh2i6CoqJqYznBImrcK8SZKMgg==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ }, "uuid" : "f0bf4ccb-ccb4-3056-affc-61b178ead1c4", "persistent" : true, - "insertionIndex" : 114 + "insertionIndex" : 149 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-b5bb3690fa91.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-b5bb3690fa91.json index c68810bf..fb3648cd 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-b5bb3690fa91.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-b5bb3690fa91.json @@ -20,15 +20,15 @@ "bodyFileName" : "v1_experiment-b5bb3690fa91.json", "headers" : { "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:23 GMT", - "Via" : "1.1 4ac8d091dce10e726cfc5404bfed72b8.cloudfront.net (CloudFront)", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:09 GMT", + "Via" : "1.1 1271197444822e7c59413a59ecbcecd6.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"1c5-bDIQA3jOnL5SKrWX+mgZW9fBA4c\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "a7sCoArRYNY98wWfh1TDlhzYnXzCfk9l46M_9edHIu4c3MFcLz8tmg==", + "X-Amz-Cf-Id" : "bNdRWzqzRSZCYpBHFZBBtXBeqi3h3OeUVETag1dot9_qGcjVj81M6A==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ }, "uuid" : "86fc2d09-371e-35e9-aa8a-d24bd70fbc5f", "persistent" : true, - "insertionIndex" : 201 + "insertionIndex" : 100 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-c03d1e3a32c3.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-c03d1e3a32c3.json index 5bd5a7d0..0478afdb 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-c03d1e3a32c3.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-c03d1e3a32c3.json @@ -21,14 +21,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:46 GMT", - "Via" : "1.1 0ddbf3138c96d4b7c9f8047edb515414.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:20 GMT", + "Via" : "1.1 c72e48ed2f0a994f695ca2fb4bc9247e.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"20b-BR14hkFKZ7zhwSzH9Ae416ldwx0\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "pJ3KNk3h7ZQnpJd1N28IeY-rik2Lfe8wW-pn3yerPto5ABOVumIbqw==", + "X-Amz-Cf-Id" : "48UOWD9uS1VN6ZHJgZP-QO7rPemKC3kUgdKrSHRiXoCGLMIqhMNH6Q==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ }, "uuid" : "7fe31e88-6521-34d1-9dfe-f36fc5b4541b", "persistent" : true, - "insertionIndex" : 55 + "insertionIndex" : 54 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-d25fd7674fdc.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-d25fd7674fdc.json index f30aa64c..d4446a0d 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-d25fd7674fdc.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-d25fd7674fdc.json @@ -20,15 +20,15 @@ "bodyFileName" : "v1_experiment-d25fd7674fdc.json", "headers" : { "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:21 GMT", - "Via" : "1.1 cb2aa1abf9fb243a4dc4cb073a92424e.cloudfront.net (CloudFront)", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:07 GMT", + "Via" : "1.1 38842c146ccd8f527d2de72671759d96.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"1c8-pRyrCQTW84pbwgU7+aHf5A2snnM\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "Gqcx-UeeTTIatKzz2LvKZAZpPOwEUPtbeApqojMLMklnnfiZxhZ2vA==", + "X-Amz-Cf-Id" : "zhVsE9tAGJYGYc52V4mKnbySJkWBXue4tSv7LTFkW1VCfA6sfs06aA==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ }, "uuid" : "8414d439-b521-35f4-8bee-0a54e09dee2b", "persistent" : true, - "insertionIndex" : 207 + "insertionIndex" : 106 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-d72642bc60d4.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-d72642bc60d4.json index 6a4d1d45..41746aa2 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-d72642bc60d4.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-d72642bc60d4.json @@ -21,14 +21,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:53 GMT", - "Via" : "1.1 6ebf93cd3baadad602a5fd706f0df16e.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:23 GMT", + "Via" : "1.1 5af99d6f2fc1c569c253259aec683ee8.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"1cb-3+W4r/SJHc/1jIbRvRwxUW1Hzeg\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "_TPexzkVZCDJraYJoMZ2GN0xh62c3TAhl-O220ZOBWBq-xJCnz1UaQ==", + "X-Amz-Cf-Id" : "NyyFOyWCPNTnH0yUo8tPYlqzV9-ahqSv3EwhEVaDnbzQ3wVgMt63jg==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -40,5 +40,5 @@ "scenarioName" : "scenario-6-v1-experiment", "requiredScenarioState" : "Started", "newScenarioState" : "scenario-6-v1-experiment-2", - "insertionIndex" : 45 + "insertionIndex" : 44 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-e393a00a60e2.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-e393a00a60e2.json new file mode 100644 index 00000000..1d9bf566 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-e393a00a60e2.json @@ -0,0 +1,44 @@ +{ + "id" : "07333c7d-2c2c-33eb-a4c9-80dd973f3cf4", + "name" : "v1_experiment", + "request" : { + "url" : "/v1/experiment", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"project_id\":\"f1e858a4-58e3-408f-983f-016760d7fa25\",\"name\":\"unit-test-eval\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_experiment-e393a00a60e2.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:22 GMT", + "Via" : "1.1 b54238be18861f9bb1272bf1cb10e040.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"1c0-rOfZfVMj+H5rmOzu1dSCnRShoyM\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "RarSwyIKs8sPVkRZNDqitjfBnEFZqTuNLCcaKjLX8Jd0AXtGmwvtSA==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "07333c7d-2c2c-33eb-a4c9-80dd973f3cf4", + "persistent" : true, + "scenarioName" : "scenario-2-v1-experiment", + "requiredScenarioState" : "scenario-2-v1-experiment-2", + "newScenarioState" : "scenario-2-v1-experiment-3", + "insertionIndex" : 50 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-e3bb2c4c2666.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-e3bb2c4c2666.json index b678a6ba..964e954c 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-e3bb2c4c2666.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-e3bb2c4c2666.json @@ -21,14 +21,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:24 GMT", - "Via" : "1.1 3417fc639ca50b55b2a1d93807a20c2c.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:40 GMT", + "Via" : "1.1 2772a76c066120d1905e8bfcd08c4d1c.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"1cd-1ye19VDF6K82pXTqX6IArIkktuk\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "Xq2-aF4I_niqHC6wm4f9HacvVyVD_-MTvPa9pN5SaedMKhYkTSxEiw==", + "X-Amz-Cf-Id" : "t_IhsWxzpTfsh9UiBvJrq0la_SEbeSzj9ES7MoTY7AbSM9iwcuNesg==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -39,5 +39,5 @@ "persistent" : true, "scenarioName" : "scenario-5-v1-experiment", "requiredScenarioState" : "scenario-5-v1-experiment-2", - "insertionIndex" : 13 + "insertionIndex" : 12 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-f416e7ecfdc1.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-f416e7ecfdc1.json deleted file mode 100644 index 335d15eb..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_experiment-f416e7ecfdc1.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id" : "d4a68f7f-4c04-3eff-8c73-bf2417dd2211", - "name" : "v1_experiment", - "request" : { - "url" : "/v1/experiment", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"project_id\":\"f1e858a4-58e3-408f-983f-016760d7fa25\",\"name\":\"unit-test-eval\"}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_experiment-f416e7ecfdc1.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:50 GMT", - "Via" : "1.1 dea0b5e705fff834db8ae3992ea09cfa.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", - "ETag" : "W/\"1c0-rOfZfVMj+H5rmOzu1dSCnRShoyM\"", - "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "-0e1IYhegUa901AFVAV_D0Fwk3WEeBvbsWLcRPU5rUSvD3u_PlEBxg==", - "Vary" : "Origin, Accept-Encoding", - "Expires" : "0", - "Surrogate-Control" : "no-store", - "Content-Type" : "application/json; charset=utf-8" - } - }, - "uuid" : "d4a68f7f-4c04-3eff-8c73-bf2417dd2211", - "persistent" : true, - "scenarioName" : "scenario-3-v1-experiment", - "requiredScenarioState" : "scenario-3-v1-experiment-2", - "newScenarioState" : "scenario-3-v1-experiment-3", - "insertionIndex" : 51 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-05be84b9d7c3.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-05be84b9d7c3.json index 3748bd13..140acea7 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-05be84b9d7c3.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-05be84b9d7c3.json @@ -23,14 +23,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:55 GMT", - "Via" : "1.1 7f26c41dda80bd7d50ccec2be87c9c3e.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:25 GMT", + "Via" : "1.1 55a62c25b77c24cde4014f567fd1c550.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"492-RO/825PoX6pROhna2qh49OKEAvg\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "u61RX-otWyEpWR4B1Cv5bJr9a9NuKIs0tHv41waijY7K_a7OqEl79A==", + "X-Amz-Cf-Id" : "nAso6HiV1hLHOy-x34heH1Fw_4jUpes3BXYDyghEKu_DFf5f9_yYPA==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -42,5 +42,5 @@ "scenarioName" : "scenario-11-v1-function", "requiredScenarioState" : "Started", "newScenarioState" : "scenario-11-v1-function-2", - "insertionIndex" : 42 + "insertionIndex" : 41 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-242e18479f4c.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-242e18479f4c.json index c113906b..118fa74b 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-242e18479f4c.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-242e18479f4c.json @@ -23,14 +23,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:58 GMT", - "Via" : "1.1 28edb03169fa053a4a523d90d15ff6ae.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:26 GMT", + "Via" : "1.1 0758a857b0f9c36d8cfe897182f568ce.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"492-RO/825PoX6pROhna2qh49OKEAvg\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "8XQNoMehgSGEidkY-edSsU84Kmg8FLiUG3aTH0uKxd2HVZ11Y9Jx4Q==", + "X-Amz-Cf-Id" : "cCrckSh3Cz6h2XbluuBIPfGwX4PZyEo9m6au3griIzDGVhn1T8haDw==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -41,5 +41,5 @@ "persistent" : true, "scenarioName" : "scenario-11-v1-function", "requiredScenarioState" : "scenario-11-v1-function-2", - "insertionIndex" : 38 + "insertionIndex" : 37 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-3694d6381cd8.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-3694d6381cd8.json index ab984184..300fce55 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-3694d6381cd8.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-3694d6381cd8.json @@ -28,14 +28,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:34:22 GMT", - "Via" : "1.1 63560dd3f856b0f7bfe68a0cad46924a.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:41:42 GMT", + "Via" : "1.1 0758a857b0f9c36d8cfe897182f568ce.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"492-RO/825PoX6pROhna2qh49OKEAvg\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "ZTEPbRK4-gILdYm-aIAEtyMYJZlk__X4WTfw2_CuqQV73PhOlin1dw==", + "X-Amz-Cf-Id" : "1237m662tT6U8H2KMGACdxppw9qheadSpr9fjAQBHNqixHodMHT0lQ==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -47,5 +47,5 @@ "scenarioName" : "scenario-12-v1-function", "requiredScenarioState" : "scenario-12-v1-function-2", "newScenarioState" : "scenario-12-v1-function-3", - "insertionIndex" : 130 + "insertionIndex" : 165 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-5a7539fe2d27.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-5a7539fe2d27.json index 7f121dee..de626f2e 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-5a7539fe2d27.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-5a7539fe2d27.json @@ -28,14 +28,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:54 GMT", - "Via" : "1.1 3062c1f9ccf5f043983bc180e222dd9c.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:24 GMT", + "Via" : "1.1 38842c146ccd8f527d2de72671759d96.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"492-RO/825PoX6pROhna2qh49OKEAvg\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "wvfPbkk6U711t1CDJfSHy2cz7kFGYZC0dmcLTB2_VNa74GWhBIBTfw==", + "X-Amz-Cf-Id" : "m284mjqNiG_BtUmPo9rEy8LrBZs4tKwjWcc_mxDvKkUI0wTQn6ixDw==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -46,5 +46,5 @@ "persistent" : true, "scenarioName" : "scenario-12-v1-function", "requiredScenarioState" : "scenario-12-v1-function-3", - "insertionIndex" : 44 + "insertionIndex" : 43 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-a278d2f64f79.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-a278d2f64f79.json index ad331cd1..21c7eb01 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-a278d2f64f79.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-a278d2f64f79.json @@ -23,14 +23,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:09 GMT", - "Via" : "1.1 7f26c41dda80bd7d50ccec2be87c9c3e.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:32 GMT", + "Via" : "1.1 e088ff8bff69861ed7fd37fbb518f0c2.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"308-12vjHFTq4J5mFrxFb2fVi85ULiA\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "h-to6skhTTiEu6jj3ihnyNUuptPNN62GNLFBEqKQgWw6OEJTTwr0Kw==", + "X-Amz-Cf-Id" : "x6nyyvm2IGAooxNxcvBV9Sy0Y_KEM6pOXG4HuFfguThPDQza31SFgQ==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -41,5 +41,5 @@ "persistent" : true, "scenarioName" : "scenario-9-v1-function", "requiredScenarioState" : "scenario-9-v1-function-2", - "insertionIndex" : 29 + "insertionIndex" : 28 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-a8257033751c.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-a8257033751c.json index afff7053..2bbae98a 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-a8257033751c.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-a8257033751c.json @@ -28,14 +28,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:55 GMT", - "Via" : "1.1 3417fc639ca50b55b2a1d93807a20c2c.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:24 GMT", + "Via" : "1.1 7f26c41dda80bd7d50ccec2be87c9c3e.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"308-12vjHFTq4J5mFrxFb2fVi85ULiA\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "5Gj5VMDOf4rWrYcbKgga5E6Xafqr_IcO2AOBd-4WFMO2Dmv7Rcu3JA==", + "X-Amz-Cf-Id" : "XrJoJY58CoxS7DM3-zuTKh3FEzk09BP81MxTwO07j0h4L51Q1VBUKA==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -44,5 +44,5 @@ }, "uuid" : "0f0518d0-afab-3c20-87d7-6c5234499fc4", "persistent" : true, - "insertionIndex" : 43 + "insertionIndex" : 42 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-ad0be5392299.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-ad0be5392299.json index 605ca0ef..0a163078 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-ad0be5392299.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-ad0be5392299.json @@ -28,14 +28,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:12 GMT", - "Via" : "1.1 38842c146ccd8f527d2de72671759d96.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:36 GMT", + "Via" : "1.1 04efc78121acf5d40974e6a71bebce20.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"43f-+ZfG5/oLqvRgy4geevKRsPX5/Jo\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "PQZ-PAMq4Ta-agDW7V-OhupiimPJcNDMhL8tXyBuEZZQbGS3B5ENJw==", + "X-Amz-Cf-Id" : "tgW3owOltbwWiqetxpfDi_2AeQBz3N_n9SzuE8_geb9m_xmG1O5ImQ==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -44,5 +44,5 @@ }, "uuid" : "022a6399-26cb-352c-8a32-4470bf6d0566", "persistent" : true, - "insertionIndex" : 25 + "insertionIndex" : 24 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-c66af1fddece.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-c66af1fddece.json index 1b4cff74..adb5a41c 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-c66af1fddece.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-c66af1fddece.json @@ -23,14 +23,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:00 GMT", - "Via" : "1.1 55a62c25b77c24cde4014f567fd1c550.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:27 GMT", + "Via" : "1.1 087b179013ed486bf34db435cff85f08.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"308-12vjHFTq4J5mFrxFb2fVi85ULiA\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "nuDGUUpcG2RleAJUN3YDe4B05gvr4d2tipTz5o5_bTMu_iPmtTqZMw==", + "X-Amz-Cf-Id" : "tvGj9lzk97IE6zuIpAbz8hIMCJ__mW2jgTTiMYfp0NMsUPbbSHz02w==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -42,5 +42,5 @@ "scenarioName" : "scenario-9-v1-function", "requiredScenarioState" : "Started", "newScenarioState" : "scenario-9-v1-function-2", - "insertionIndex" : 34 + "insertionIndex" : 33 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-ee910b4227ce.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-ee910b4227ce.json index f9162fbf..e7661b86 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-ee910b4227ce.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function-ee910b4227ce.json @@ -28,14 +28,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:34:21 GMT", - "Via" : "1.1 63560dd3f856b0f7bfe68a0cad46924a.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:41:42 GMT", + "Via" : "1.1 04efc78121acf5d40974e6a71bebce20.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"492-RO/825PoX6pROhna2qh49OKEAvg\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "8aqnyjwC5IFyiD4VW1dtnnvMCG5udLtkRgzNJzO6quA0lmXjgSjjoA==", + "X-Amz-Cf-Id" : "3JeVqF0GmlYrHMX0xbXJmOLRvO_3z2fLOqP1763Hotpj-OOieKLUtw==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -47,5 +47,5 @@ "scenarioName" : "scenario-12-v1-function", "requiredScenarioState" : "Started", "newScenarioState" : "scenario-12-v1-function-2", - "insertionIndex" : 131 + "insertionIndex" : 166 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28-332c63ab819b.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28-332c63ab819b.json index 3dcc0c8c..d78b7100 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28-332c63ab819b.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28-332c63ab819b.json @@ -11,14 +11,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:58 GMT", - "Via" : "1.1 d49bde7225e80ca0dc457ff2b8b4343e.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:26 GMT", + "Via" : "1.1 b54238be18861f9bb1272bf1cb10e040.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"484-KUHUs0ytlrOyv+d1b83LJCSkHwY\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "YyeBCZ2Ihd8jSmufvmpzoopIy7lhf3VbdAVTEgZH0gqCtWZBEjZ_Og==", + "X-Amz-Cf-Id" : "S5v2Ot4j4-DXZP3ll_Zgzpk7X60D065TEPXQ0c8DKIJVKwHrDeG-fA==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -29,5 +29,5 @@ "persistent" : true, "scenarioName" : "scenario-10-v1-function-7a164cb2-6c74-4de7-aa86-6b28c464ab28", "requiredScenarioState" : "scenario-10-v1-function-7a164cb2-6c74-4de7-aa86-6b28c464ab28-3", - "insertionIndex" : 37 + "insertionIndex" : 36 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28-56535a50f191.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28-56535a50f191.json index c592cd13..1a7b365a 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28-56535a50f191.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28-56535a50f191.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:13 GMT", - "Via" : "1.1 2501b465adde8e5aedc3f38e3dfcdc22.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:37 GMT", + "Via" : "1.1 3062c1f9ccf5f043983bc180e222dd9c.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"431-9GPNRf2vgsI5EsC3Fvw6SrpGiY4\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "PMoNMQUm8zwiE6yycpzE73OZt9kFLFY-bpvmaB6JBpdQ6Rux9cPXww==", + "X-Amz-Cf-Id" : "pmFMbRP299VjNXY6wLt2WkfsYlig2AcwOUJxKY4-Y0EG34TCMt7olw==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -34,5 +34,5 @@ }, "uuid" : "b57100f8-ff5b-3367-9157-094303b7314c", "persistent" : true, - "insertionIndex" : 24 + "insertionIndex" : 23 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28-bec2f51e7d7c.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28-bec2f51e7d7c.json index 11a015e5..ba7fc679 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28-bec2f51e7d7c.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28-bec2f51e7d7c.json @@ -11,14 +11,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:56 GMT", - "Via" : "1.1 b2b215a89cc2734b2940e2eb59ea4bd0.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:25 GMT", + "Via" : "1.1 7f26c41dda80bd7d50ccec2be87c9c3e.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"484-KUHUs0ytlrOyv+d1b83LJCSkHwY\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "vn4RpdYC3VBNvlQ2GQ8XZ3XZFaGLG34CcnYDFnMS4WuujFViqWvCUg==", + "X-Amz-Cf-Id" : "YqO5oGGkjXxtB0bT-fR3wDC73LDnyHSEVZpAeGr_T0eDr-NY7L78kA==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -30,5 +30,5 @@ "scenarioName" : "scenario-10-v1-function-7a164cb2-6c74-4de7-aa86-6b28c464ab28", "requiredScenarioState" : "scenario-10-v1-function-7a164cb2-6c74-4de7-aa86-6b28c464ab28-2", "newScenarioState" : "scenario-10-v1-function-7a164cb2-6c74-4de7-aa86-6b28c464ab28-3", - "insertionIndex" : 41 + "insertionIndex" : 40 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28-e2eccc10be35.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28-e2eccc10be35.json index a07ee4d1..8c483b10 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28-e2eccc10be35.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28-e2eccc10be35.json @@ -11,14 +11,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:34:28 GMT", - "Via" : "1.1 dea0b5e705fff834db8ae3992ea09cfa.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:41:45 GMT", + "Via" : "1.1 e8b22a8fa8511f8f972b4965a9af80b4.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"484-KUHUs0ytlrOyv+d1b83LJCSkHwY\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "ijc7q93y6MawQH6u_nShoIsSQ2M2Wb5Ssdte9nqqDtAbZMImkKqG_g==", + "X-Amz-Cf-Id" : "mNVybizD93X80vfCMhVh-NDz4mUVaP9yYjvBydsM7Wf5VjTUnPCR-Q==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -30,5 +30,5 @@ "scenarioName" : "scenario-10-v1-function-7a164cb2-6c74-4de7-aa86-6b28c464ab28", "requiredScenarioState" : "Started", "newScenarioState" : "scenario-10-v1-function-7a164cb2-6c74-4de7-aa86-6b28c464ab28-2", - "insertionIndex" : 126 + "insertionIndex" : 161 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-aa9f11ec791d.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-1b2d471adaa5.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-aa9f11ec791d.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-1b2d471adaa5.json index 5460ed50..a614ccb7 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-aa9f11ec791d.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-1b2d471adaa5.json @@ -1,5 +1,5 @@ { - "id" : "7aa0b9d2-ee25-3273-a308-0d074d70c4ea", + "id" : "5826395b-f43d-30b1-90b2-64cd61fded30", "name" : "v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke", "request" : { "url" : "/v1/function/7a164cb2-6c74-4de7-aa86-6b28c464ab28/invoke", @@ -10,32 +10,32 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"input\":{\"input\":\"carrot\",\"output\":\"java-fruit\",\"expected\":\"vegetable\",\"metadata\":{}},\"expected\":null,\"messages\":[],\"parent\":{\"object_type\":\"playground_logs\",\"object_id\":\"ceea7422-3507-4d1c-a5f7-7acf41d9fac2\",\"row_ids\":{\"id\":\"otel\",\"span_id\":\"5c46775c193a07b0\",\"root_span_id\":\"25d5d8e5856ea63ef2fff41617223f4e\"}},\"mcp_auth\":{}}", + "equalToJson" : "{\"input\":{\"input\":\"carrot\",\"output\":\"java-fruit\",\"expected\":\"vegetable\",\"metadata\":{}},\"expected\":null,\"messages\":[],\"parent\":{\"object_type\":\"playground_logs\",\"object_id\":\"ceea7422-3507-4d1c-a5f7-7acf41d9fac2\",\"row_ids\":{\"id\":\"otel\",\"span_id\":\"967f1338912d4a49\",\"root_span_id\":\"a7b1358fdfe9d57cb81a53567f6959f7\"}},\"mcp_auth\":{}}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-aa9f11ec791d.json", + "bodyFileName" : "v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-1b2d471adaa5.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "x-bt-function-creds-cached" : "HIT", - "Date" : "Mon, 31 Aug 2026 17:34:53 GMT", - "Via" : "1.1 28edb03169fa053a4a523d90d15ff6ae.cloudfront.net (CloudFront)", - "x-bt-span-export" : "AwMDAc7qdCI1B00cpfd6z0HZ+sICaxiiljhxQv+qi0b93JBn3wMLviOECChEaJ/mES0QrrWqeyJyb290X3NwYW5faWQiOiIyNWQ1ZDhlNTg1NmVhNjNlZjJmZmY0MTYxNzIyM2Y0ZSJ9", + "x-bt-function-creds-cached" : "MISS", + "Date" : "Sat, 07 Nov 2026 05:41:53 GMT", + "Via" : "1.1 2772a76c066120d1905e8bfcd08c4d1c.cloudfront.net (CloudFront)", + "x-bt-span-export" : "AwMDAc7qdCI1B00cpfd6z0HZ+sICvAy0+iToTuuZepD5JTHgGwONeCZ487ZCJoXdKM/1KCJyeyJyb290X3NwYW5faWQiOiJhN2IxMzU4ZmRmZTlkNTdjYjgxYTUzNTY3ZjY5NTlmNyJ9", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-span-id,x-bt-span-export,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-span-id,x-bt-span-export,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "farrrqpPBbRb80AtRspsMlvPb5kvD_oknJr328gYdCjIRW-amXYCvA==", + "X-Amz-Cf-Id" : "mIzYDH0m6KMeBaFiHYgbKf9vy1mb2zlXeZ3cz7lnwwckvpDud5nk3Q==", "Vary" : "Origin", - "x-bt-span-id" : "6b18a296-3871-42ff-aa8b-46fddc9067df", - "x-bt-function-meta-cached" : "HIT", + "x-bt-span-id" : "bc0cb4fa-24e8-4eeb-997a-90f92531e01b", + "x-bt-function-meta-cached" : "MISS", "Content-Type" : "application/json" } }, - "uuid" : "7aa0b9d2-ee25-3273-a308-0d074d70c4ea", + "uuid" : "5826395b-f43d-30b1-90b2-64cd61fded30", "persistent" : true, - "insertionIndex" : 121 + "insertionIndex" : 157 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-2e2d93af9b3c.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-a2b01743d42c.json similarity index 60% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-2e2d93af9b3c.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-a2b01743d42c.json index c22dd5cb..fb42abd7 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-2e2d93af9b3c.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-a2b01743d42c.json @@ -1,5 +1,5 @@ { - "id" : "c109ffe6-7632-39ee-b183-14782569778d", + "id" : "3f1dd444-b252-30b9-80c4-d5e0d933b940", "name" : "v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke", "request" : { "url" : "/v1/function/7a164cb2-6c74-4de7-aa86-6b28c464ab28/invoke", @@ -10,32 +10,32 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"input\":{\"input\":\"apple\",\"output\":\"java-fruit\",\"expected\":\"fruit\",\"metadata\":{}},\"expected\":null,\"messages\":[],\"parent\":{\"object_type\":\"playground_logs\",\"object_id\":\"ceea7422-3507-4d1c-a5f7-7acf41d9fac2\",\"row_ids\":{\"id\":\"otel\",\"span_id\":\"c0d504fcb91e152c\",\"root_span_id\":\"37806a4da26fa33823136dc34c18f5aa\"}},\"mcp_auth\":{}}", + "equalToJson" : "{\"input\":{\"input\":\"apple\",\"output\":\"java-fruit\",\"expected\":\"fruit\",\"metadata\":{}},\"expected\":null,\"messages\":[],\"parent\":{\"object_type\":\"playground_logs\",\"object_id\":\"ceea7422-3507-4d1c-a5f7-7acf41d9fac2\",\"row_ids\":{\"id\":\"otel\",\"span_id\":\"9d8ee8e26a74f6fa\",\"root_span_id\":\"a7c93e695a6f07ee8b5b02fc9126370a\"}},\"mcp_auth\":{}}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-2e2d93af9b3c.json", + "bodyFileName" : "v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-a2b01743d42c.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", "x-bt-function-creds-cached" : "MISS", - "Date" : "Mon, 31 Aug 2026 17:34:47 GMT", - "Via" : "1.1 a6be96637dfcb93ee417719bb21d57d0.cloudfront.net (CloudFront)", - "x-bt-span-export" : "AwMDAc7qdCI1B00cpfd6z0HZ+sICv8W/XFcCQO2PqECy3nOgOwOLzmlKg9ZEdLsG4cwolgwjeyJyb290X3NwYW5faWQiOiIzNzgwNmE0ZGEyNmZhMzM4MjMxMzZkYzM0YzE4ZjVhYSJ9", + "Date" : "Sat, 07 Nov 2026 05:41:53 GMT", + "Via" : "1.1 2501b465adde8e5aedc3f38e3dfcdc22.cloudfront.net (CloudFront)", + "x-bt-span-export" : "AwMDAc7qdCI1B00cpfd6z0HZ+sICdaRimyJ6SIur6mbCv2zReQNDw2wnpMdOVYggrXNGqSgieyJyb290X3NwYW5faWQiOiJhN2M5M2U2OTVhNmYwN2VlOGI1YjAyZmM5MTI2MzcwYSJ9", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-span-id,x-bt-span-export,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-span-id,x-bt-span-export,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "Gjf-cRYGgMV_cxfI48su6ACcFgkRFoT5C_mn-BkgaUfS6yYEb-fLGQ==", + "X-Amz-Cf-Id" : "bKF0A6zGghhbW-OpRfwc15PTBoF3rEmxA2NSobCqNe3dRgwAYuZr2A==", "Vary" : "Origin", - "x-bt-span-id" : "bfc5bf5c-5702-40ed-8fa8-40b2de73a03b", + "x-bt-span-id" : "75a4629b-227a-488b-abea-66c2bf6cd179", "x-bt-function-meta-cached" : "MISS", "Content-Type" : "application/json" } }, - "uuid" : "c109ffe6-7632-39ee-b183-14782569778d", + "uuid" : "3f1dd444-b252-30b9-80c4-d5e0d933b940", "persistent" : true, - "insertionIndex" : 122 + "insertionIndex" : 156 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-b82427bb5da7.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-b82427bb5da7.json index bff64a06..c4ac9aee 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-b82427bb5da7.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-b82427bb5da7.json @@ -22,12 +22,12 @@ "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", "x-bt-function-creds-cached" : "HIT", - "Date" : "Mon, 31 Aug 2026 17:36:00 GMT", - "Via" : "1.1 bef90eae512e70457d6a8a77b097a124.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:27 GMT", + "Via" : "1.1 3417fc639ca50b55b2a1d93807a20c2c.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-span-id,x-bt-span-export,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-span-id,x-bt-span-export,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "oV4rCp0hLS3a2ZW_Nx5B5ztndq-bKQ-nsl77MRE429Wm08SPf06_0g==", + "X-Amz-Cf-Id" : "mjirJrXZrqcg8P822tlCM9AcIycuy9RwefUoJIcxGC6Js5IzkPY_AQ==", "Vary" : "Origin", "x-bt-function-meta-cached" : "HIT", "Content-Type" : "application/json" @@ -35,5 +35,5 @@ }, "uuid" : "cae03ba8-7fa9-3b5c-9239-612a2b961b00", "persistent" : true, - "insertionIndex" : 35 + "insertionIndex" : 34 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-d439049c257d.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-d439049c257d.json index 5bcff208..4c6d8917 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-d439049c257d.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-d439049c257d.json @@ -22,12 +22,12 @@ "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", "x-bt-function-creds-cached" : "HIT", - "Date" : "Mon, 31 Aug 2026 17:36:17 GMT", - "Via" : "1.1 7aad92255c39d277bce3f20afa1b059c.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:38 GMT", + "Via" : "1.1 9895fa1d75119fa16da9e015b58dbe5a.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-span-id,x-bt-span-export,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-span-id,x-bt-span-export,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "j0ZxiBthYjYQ3LO8w27eJJXbl3E-Q4GjD-uUCkx0OIz05bp0dg0TsQ==", + "X-Amz-Cf-Id" : "Y30R2KpH9lGqp6UN3aOva_nHBOC4ejbHLuj8YLnAggRumqZKUTSHMg==", "Vary" : "Origin", "x-bt-function-meta-cached" : "MISS", "Content-Type" : "application/json" @@ -35,5 +35,5 @@ }, "uuid" : "5fb61994-b71b-3004-9954-ff667d9e62d0", "persistent" : true, - "insertionIndex" : 22 + "insertionIndex" : 21 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-d61d8d83b042.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-d61d8d83b042.json index 1b544cdc..d23834b8 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-d61d8d83b042.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_7a164cb2-6c74-4de7-aa86-6b28c464ab28_invoke-d61d8d83b042.json @@ -22,12 +22,12 @@ "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", "x-bt-function-creds-cached" : "HIT", - "Date" : "Mon, 31 Aug 2026 17:35:57 GMT", - "Via" : "1.1 1271197444822e7c59413a59ecbcecd6.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:26 GMT", + "Via" : "1.1 bef90eae512e70457d6a8a77b097a124.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-span-id,x-bt-span-export,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-span-id,x-bt-span-export,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "ShaR_XZSQ4xmTvHVBTU9o6cGRUxQiB_HiIC2QZ4euordvwpq5boC0Q==", + "X-Amz-Cf-Id" : "QqXO2xeU4I-mkO63jev8tJylkzLLFkpxfZCke8G4SG6LpIxNegfYPg==", "Vary" : "Origin", "x-bt-function-meta-cached" : "HIT", "Content-Type" : "application/json" @@ -35,5 +35,5 @@ }, "uuid" : "9dbafddc-9d6c-3db1-a9ef-46b18833c0e1", "persistent" : true, - "insertionIndex" : 39 + "insertionIndex" : 38 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_bda148ec-e447-4437-86fe-b337c12502b7-18e2c3e2cb2d.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_bda148ec-e447-4437-86fe-b337c12502b7-18e2c3e2cb2d.json index 802708a7..de0f757b 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_bda148ec-e447-4437-86fe-b337c12502b7-18e2c3e2cb2d.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_bda148ec-e447-4437-86fe-b337c12502b7-18e2c3e2cb2d.json @@ -11,14 +11,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:09 GMT", - "Via" : "1.1 2501b465adde8e5aedc3f38e3dfcdc22.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:33 GMT", + "Via" : "1.1 a3134c0c893f03d1e9a9c657d09af7cc.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"2fa-rhLEWA+B/SDKBqYT2oWJyUztoRY\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "oAARd0mO7-RDjf35Mg5pwdwhm9RY7GJE9S7gix7xIgC4ga9BYvaHrQ==", + "X-Amz-Cf-Id" : "pIq4bp0ddTXmOI51j1aiNXCt80LEVyRm97kVIuYJs9wSEAgziF0YTg==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -29,5 +29,5 @@ "persistent" : true, "scenarioName" : "scenario-8-v1-function-bda148ec-e447-4437-86fe-b337c12502b7", "requiredScenarioState" : "scenario-8-v1-function-bda148ec-e447-4437-86fe-b337c12502b7-2", - "insertionIndex" : 28 + "insertionIndex" : 27 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_bda148ec-e447-4437-86fe-b337c12502b7-71d8f3a93ca2.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_bda148ec-e447-4437-86fe-b337c12502b7-71d8f3a93ca2.json index 278097c3..004199b8 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_bda148ec-e447-4437-86fe-b337c12502b7-71d8f3a93ca2.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_bda148ec-e447-4437-86fe-b337c12502b7-71d8f3a93ca2.json @@ -11,14 +11,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:01 GMT", - "Via" : "1.1 0758a857b0f9c36d8cfe897182f568ce.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:27 GMT", + "Via" : "1.1 6ebf93cd3baadad602a5fd706f0df16e.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"2fa-rhLEWA+B/SDKBqYT2oWJyUztoRY\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "6v4BPX_wGFLL4Im5AWfQ4PvRafIdrT2OV3Rbimyq1ba5z-NBM4jx5g==", + "X-Amz-Cf-Id" : "MpCIEOJFEf724XXLpgK7lWYPLDkIHLHVcOH8atzLcSZZf-EarQK60A==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -30,5 +30,5 @@ "scenarioName" : "scenario-8-v1-function-bda148ec-e447-4437-86fe-b337c12502b7", "requiredScenarioState" : "Started", "newScenarioState" : "scenario-8-v1-function-bda148ec-e447-4437-86fe-b337c12502b7-2", - "insertionIndex" : 33 + "insertionIndex" : 32 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_bda148ec-e447-4437-86fe-b337c12502b7_invoke-6036fec54d18.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_bda148ec-e447-4437-86fe-b337c12502b7_invoke-6036fec54d18.json index 73d9d7d4..64421b85 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_bda148ec-e447-4437-86fe-b337c12502b7_invoke-6036fec54d18.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_bda148ec-e447-4437-86fe-b337c12502b7_invoke-6036fec54d18.json @@ -24,17 +24,17 @@ "X-Amz-Cf-Pop" : "SEA900-P9", "x-bt-function-creds-cached" : "HIT", "x-bt-cached" : "MISS", - "Date" : "Mon, 31 Aug 2026 17:36:11 GMT", - "Via" : "1.1 2501b465adde8e5aedc3f38e3dfcdc22.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:35 GMT", + "Via" : "1.1 88f286e23c15fc2f62a741db8207a67a.cloudfront.net (CloudFront)", "x-bt-passthrough" : "false", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-span-id,x-bt-span-export,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-span-id,x-bt-span-export,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "x-bt-secrets-scope" : "org_and_project", - "Access-Control-Allow-Credentials" : "true", "x-bt-stale-secrets" : "false", - "X-Amz-Cf-Id" : "Md7NdJ6IHhclNdHbokVN1ZyWVIenrnRqtd-1AeszPWZ5MoyHhLBdRQ==", - "x-bt-request-id" : "dc71534f-8e32-40d5-8f07-886abf2af265", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "ZMwDTIKBKzyS3kwzuhUZka1PBnwIf_xUcFUyXNdb9As5AAIBbxPl2g==", "x-bt-used-endpoint" : "OPENAI_API_KEY", + "x-bt-request-id" : "b8a48676-2411-4d54-a1d0-55e6c0c18c47", "x-bt-function-meta-cached" : "HIT", "cache-control" : "no-cache", "Content-Type" : "application/json" @@ -42,5 +42,5 @@ }, "uuid" : "c5f7cafa-be93-3bae-8328-42058fb1e4cc", "persistent" : true, - "insertionIndex" : 26 + "insertionIndex" : 25 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_bda148ec-e447-4437-86fe-b337c12502b7_invoke-e2c6e01b1b5c.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_bda148ec-e447-4437-86fe-b337c12502b7_invoke-957060f779fb.json similarity index 64% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_bda148ec-e447-4437-86fe-b337c12502b7_invoke-e2c6e01b1b5c.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_bda148ec-e447-4437-86fe-b337c12502b7_invoke-957060f779fb.json index a4c417c5..ceb8af21 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_bda148ec-e447-4437-86fe-b337c12502b7_invoke-e2c6e01b1b5c.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_function_bda148ec-e447-4437-86fe-b337c12502b7_invoke-957060f779fb.json @@ -1,5 +1,5 @@ { - "id" : "e8d6b60c-8ba9-3831-9bb6-2578ac89c909", + "id" : "28163008-24bf-397a-9d9a-8e52c62b5023", "name" : "v1_function_bda148ec-e447-4437-86fe-b337c12502b7_invoke", "request" : { "url" : "/v1/function/bda148ec-e447-4437-86fe-b337c12502b7/invoke", @@ -10,39 +10,39 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"input\":{\"input\":\"test input\",\"output\":\"hello world\",\"expected\":\"hello world\",\"metadata\":{}},\"expected\":null,\"messages\":[],\"parent\":{\"object_type\":\"project_logs\",\"object_id\":\"f1e858a4-58e3-408f-983f-016760d7fa25\",\"row_ids\":{\"id\":\"otel\",\"span_id\":\"eb85fed14607ba1c\",\"root_span_id\":\"b2c4e2f917794144eff5e6ac0e08e33e\"}},\"mcp_auth\":{}}", + "equalToJson" : "{\"input\":{\"input\":\"test input\",\"output\":\"hello world\",\"expected\":\"hello world\",\"metadata\":{}},\"expected\":null,\"messages\":[],\"parent\":{\"object_type\":\"project_logs\",\"object_id\":\"f1e858a4-58e3-408f-983f-016760d7fa25\",\"row_ids\":{\"id\":\"otel\",\"span_id\":\"5406d2eeaf797c3d\",\"root_span_id\":\"44952e40821079b14b3fff0f30c2a255\"}},\"mcp_auth\":{}}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "v1_function_bda148ec-e447-4437-86fe-b337c12502b7_invoke-e2c6e01b1b5c.json", + "bodyFileName" : "v1_function_bda148ec-e447-4437-86fe-b337c12502b7_invoke-957060f779fb.json", "headers" : { "X-Cache" : "Miss from cloudfront", "vary" : "Origin, Access-Control-Request-Method, Access-Control-Request-Headers", "X-Amz-Cf-Pop" : "SEA900-P9", "x-bt-function-creds-cached" : "HIT", "x-bt-cached" : "MISS", - "Date" : "Mon, 31 Aug 2026 17:36:07 GMT", - "Via" : "1.1 3062c1f9ccf5f043983bc180e222dd9c.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:31 GMT", + "Via" : "1.1 6ebf93cd3baadad602a5fd706f0df16e.cloudfront.net (CloudFront)", "x-bt-passthrough" : "false", - "x-bt-span-export" : "AwIDAfHoWKRY40CPmD8BZ2DX+iUCPYbyw5UPTMC6RAneR2mMcAM+TlPWqj5DB4+Z7vfoBlGveyJyb290X3NwYW5faWQiOiJiMmM0ZTJmOTE3Nzk0MTQ0ZWZmNWU2YWMwZTA4ZTMzZSJ9", + "x-bt-span-export" : "AwIDAfHoWKRY40CPmD8BZ2DX+iUCTETYnLV5QLKnBLw9apjSSgMBV29m75xN+q7JnIkeBlNPeyJyb290X3NwYW5faWQiOiI0NDk1MmU0MDgyMTA3OWIxNGIzZmZmMGYzMGMyYTI1NSJ9", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-span-id,x-bt-span-export,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-span-id,x-bt-span-export,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "x-bt-secrets-scope" : "org_and_project", - "Access-Control-Allow-Credentials" : "true", "x-bt-stale-secrets" : "false", - "X-Amz-Cf-Id" : "-Lgh6tsD-S8mhsNxbGwUss_cXWV90Acx6rs1_6upiiiRJ-vhx2WsQA==", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "dFCMxQ78-5aqC3xKycLk4Skqo5aM_aBuKsSeBNDBg6JOnKCmpg999g==", "x-bt-used-endpoint" : "OPENAI_API_KEY", - "x-bt-request-id" : "a9f2255c-fa9e-41cc-ba24-51788d549d72", - "x-bt-span-id" : "3d86f2c3-950f-4cc0-ba44-09de47698c70", + "x-bt-request-id" : "4ba4b24b-7795-4632-aa37-1a04c4e0413c", + "x-bt-span-id" : "4c44d89c-b579-40b2-a704-bc3d6a98d24a", "x-bt-function-meta-cached" : "MISS", "cache-control" : "no-cache", "Content-Type" : "application/json" } }, - "uuid" : "e8d6b60c-8ba9-3831-9bb6-2578ac89c909", + "uuid" : "28163008-24bf-397a-9d9a-8e52c62b5023", "persistent" : true, - "insertionIndex" : 31 + "insertionIndex" : 30 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-30867e7088bd.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-0a0ccebf4201.json similarity index 58% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-30867e7088bd.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-0a0ccebf4201.json index cd26e3bd..6873444a 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-30867e7088bd.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-0a0ccebf4201.json @@ -1,5 +1,5 @@ { - "id" : "6606a3c7-099c-3495-b32d-59502385df8a", + "id" : "8f36fd14-3d77-35e2-aa5a-dcf485b88f0d", "name" : "v1_project", "request" : { "urlPath" : "/v1/project", @@ -14,28 +14,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "v1_project-30867e7088bd.json", + "bodyFileName" : "v1_project-0a0ccebf4201.json", "headers" : { "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:22 GMT", - "Via" : "1.1 e6b2537b87653726af8a79e6da505188.cloudfront.net (CloudFront)", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:17 GMT", + "Via" : "1.1 0ddbf3138c96d4b7c9f8047edb515414.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "BisVV__hX_pxMdgschWS5I2tGXLBV6xsIwpilfN0CTbEWavc677D_Q==", + "X-Amz-Cf-Id" : "Dfq_6oUNanv9g0C8yRiGVbPUjYimXCmMmqV-29Spxu3PJf2hSfDYDQ==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "6606a3c7-099c-3495-b32d-59502385df8a", + "uuid" : "8f36fd14-3d77-35e2-aa5a-dcf485b88f0d", "persistent" : true, - "scenarioName" : "scenario-2-v1-project", - "requiredScenarioState" : "scenario-2-v1-project-8", - "newScenarioState" : "scenario-2-v1-project-9", - "insertionIndex" : 203 + "scenarioName" : "scenario-4-v1-project", + "requiredScenarioState" : "scenario-4-v1-project-28", + "newScenarioState" : "scenario-4-v1-project-29", + "insertionIndex" : 64 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-117b51cee0ec.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-117b51cee0ec.json index 8f131c11..5a9b0ce8 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-117b51cee0ec.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-117b51cee0ec.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:23 GMT", - "Via" : "1.1 bef90eae512e70457d6a8a77b097a124.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:14 GMT", + "Via" : "1.1 4c8322ac27bebc2a7e26f72c7b6ec2ee.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "6-STieHr5UPL6gj9GgrPQ5VAZpmFiWlWPkDbBpN6s0kSomqdvgjRPQ==", + "X-Amz-Cf-Id" : "ZaYe5YZdeoJJuuUFzYZIjpSxVEg2EoOJ518lyOs6gqdWlMVjrxbOCw==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ "scenarioName" : "scenario-4-v1-project", "requiredScenarioState" : "scenario-4-v1-project-25", "newScenarioState" : "scenario-4-v1-project-26", - "insertionIndex" : 15 + "insertionIndex" : 76 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-25b4865170f2.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-25b4865170f2.json index 97a9a2bc..406c805f 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-25b4865170f2.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-25b4865170f2.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:34:14 GMT", - "Via" : "1.1 4c8322ac27bebc2a7e26f72c7b6ec2ee.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:41:32 GMT", + "Via" : "1.1 087b179013ed486bf34db435cff85f08.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "kTynAzoqLNGfcySJBGqGazPefXlFH1HLHnboGwpgQBhWkay_o51mDQ==", + "X-Amz-Cf-Id" : "fq0PSuegQ7v1SvUJng_6Nb20jhGB7OEe5pZ4ZD7bZfAb_85WkDGRyg==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ "scenarioName" : "scenario-4-v1-project", "requiredScenarioState" : "Started", "newScenarioState" : "scenario-4-v1-project-2", - "insertionIndex" : 135 + "insertionIndex" : 183 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-2741f59ee0c6.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-2741f59ee0c6.json index 0f2454f4..c9096cb0 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-2741f59ee0c6.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-2741f59ee0c6.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:32 GMT", - "Via" : "1.1 04efc78121acf5d40974e6a71bebce20.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:06 GMT", + "Via" : "1.1 3417fc639ca50b55b2a1d93807a20c2c.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "lQtFAC0OOABBIJt5LH6ecDEn3H3tymavnqRMyW7dWthtYV0arFua0g==", + "X-Amz-Cf-Id" : "5qHyhvQnrM9rHrq3EbrRiFdgeWjyPVsKXoyEw-XTWQjPsO_U2MmslQ==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ "scenarioName" : "scenario-4-v1-project", "requiredScenarioState" : "scenario-4-v1-project-13", "newScenarioState" : "scenario-4-v1-project-14", - "insertionIndex" : 77 + "insertionIndex" : 114 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-27a84b7551ef.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-27a84b7551ef.json index bb7cebd3..41a0fda8 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-27a84b7551ef.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-27a84b7551ef.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:38 GMT", - "Via" : "1.1 b2b215a89cc2734b2940e2eb59ea4bd0.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:08 GMT", + "Via" : "1.1 4c8322ac27bebc2a7e26f72c7b6ec2ee.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "ma0kfrGhVpeROEVBk1NBmaWt2S_Y-s9_4Sua-MARtrBeBOEyqT1jzg==", + "X-Amz-Cf-Id" : "XC9gnfLcKj9vnYPL1HyhQTxVXYhLRSlNARzSGnQFng22O6iGK8zvfg==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ "scenarioName" : "scenario-4-v1-project", "requiredScenarioState" : "scenario-4-v1-project-16", "newScenarioState" : "scenario-4-v1-project-17", - "insertionIndex" : 65 + "insertionIndex" : 105 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-2b5996fd3d0f.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-2b5996fd3d0f.json index 75870156..2fff217c 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-2b5996fd3d0f.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-2b5996fd3d0f.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:20 GMT", - "Via" : "1.1 3062c1f9ccf5f043983bc180e222dd9c.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:14 GMT", + "Via" : "1.1 38842c146ccd8f527d2de72671759d96.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "M_CfuizAtWCPu9uhhv4m_iAmNmKYNqPOb-JsS8d76C1-VsAuIc8olg==", + "X-Amz-Cf-Id" : "Mpsze2hWRb7OiWv4VGSrHjwvYukVSEtZ29o26UNiilntPzloH6uwgg==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ "scenarioName" : "scenario-4-v1-project", "requiredScenarioState" : "scenario-4-v1-project-24", "newScenarioState" : "scenario-4-v1-project-25", - "insertionIndex" : 18 + "insertionIndex" : 78 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-314b8a3e0bec.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-314b8a3e0bec.json index 563a55fb..b7b4bce9 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-314b8a3e0bec.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-314b8a3e0bec.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:48 GMT", - "Via" : "1.1 5af99d6f2fc1c569c253259aec683ee8.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:10 GMT", + "Via" : "1.1 b54238be18861f9bb1272bf1cb10e040.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "j_069gt1JobS8b--qYSnrVP2H9NJHLmKOvQvxxLkC2NNquQxci_jjA==", + "X-Amz-Cf-Id" : "0PnKRnCg4dSCljlD4fzP532fRXP1c76XUUTdGCzcyMHv4T1K_t58eg==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ "scenarioName" : "scenario-4-v1-project", "requiredScenarioState" : "scenario-4-v1-project-20", "newScenarioState" : "scenario-4-v1-project-21", - "insertionIndex" : 53 + "insertionIndex" : 93 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-4891298f2969.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-32b5bddf971b.json similarity index 58% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-4891298f2969.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-32b5bddf971b.json index 74163e3c..f8146e41 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-4891298f2969.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-32b5bddf971b.json @@ -1,5 +1,5 @@ { - "id" : "f0270406-fe88-3aec-a5a7-ee6d2435ae22", + "id" : "27bedfc7-1dd8-3af8-a8ac-f46d6ffb7341", "name" : "v1_project", "request" : { "urlPath" : "/v1/project", @@ -14,28 +14,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "v1_project-4891298f2969.json", + "bodyFileName" : "v1_project-32b5bddf971b.json", "headers" : { "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:17 GMT", - "Via" : "1.1 7605973575a3551426b82751020317de.cloudfront.net (CloudFront)", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:20 GMT", + "Via" : "1.1 e088ff8bff69861ed7fd37fbb518f0c2.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "vQ9qigXABPAuprZ5qBrkKvtPEhYP3tu4X6D4797lLLEdib7JarNSmw==", + "X-Amz-Cf-Id" : "40TiDbcOlyBAxlxFcy2IZx3Pf8CqT3v0fQ_PWWJpZoRE7QmydV3AYA==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "f0270406-fe88-3aec-a5a7-ee6d2435ae22", + "uuid" : "27bedfc7-1dd8-3af8-a8ac-f46d6ffb7341", "persistent" : true, - "scenarioName" : "scenario-2-v1-project", - "requiredScenarioState" : "Started", - "newScenarioState" : "scenario-2-v1-project-2", - "insertionIndex" : 223 + "scenarioName" : "scenario-4-v1-project", + "requiredScenarioState" : "scenario-4-v1-project-31", + "newScenarioState" : "scenario-4-v1-project-32", + "insertionIndex" : 56 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-36a4f5266963.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-36a4f5266963.json index 8c7be827..151a2988 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-36a4f5266963.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-36a4f5266963.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:18 GMT", - "Via" : "1.1 2772a76c066120d1905e8bfcd08c4d1c.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:01 GMT", + "Via" : "1.1 b3a8bdee20374465a3f2aa64f19ec30e.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "GdgexI9yaFVUWHNOOGDmEDmFM_7EE9bqsHQLvaGwF-jK4M9jA4UMHQ==", + "X-Amz-Cf-Id" : "7pBRghU-4KLhKdlJWzCFjlEZY8f8ioSBVSHpyGubdhxdXUJ77RFnzA==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ "scenarioName" : "scenario-4-v1-project", "requiredScenarioState" : "scenario-4-v1-project-7", "newScenarioState" : "scenario-4-v1-project-8", - "insertionIndex" : 96 + "insertionIndex" : 131 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-3700f606caa8.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-3700f606caa8.json index f6f349fd..d2066a9e 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-3700f606caa8.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-3700f606caa8.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:40 GMT", - "Via" : "1.1 dea0b5e705fff834db8ae3992ea09cfa.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:08 GMT", + "Via" : "1.1 3417fc639ca50b55b2a1d93807a20c2c.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "qoGKIuuWbU84LkXTytlgwd6QUvrDKwyqSWEyCv-793ySyUjxhFSdhg==", + "X-Amz-Cf-Id" : "lUm2fLgTHkdHbJ1woxLqhdzzg0MjV6PVatfxeqFT99yjUt4UBhOtXg==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ "scenarioName" : "scenario-4-v1-project", "requiredScenarioState" : "scenario-4-v1-project-17", "newScenarioState" : "scenario-4-v1-project-18", - "insertionIndex" : 62 + "insertionIndex" : 102 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-2f16e640e582.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-38e55ac56fed.json similarity index 58% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-2f16e640e582.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-38e55ac56fed.json index 7ff5eb32..160b8e51 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-2f16e640e582.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-38e55ac56fed.json @@ -1,5 +1,5 @@ { - "id" : "c3af4f3c-ca1e-31b5-93e9-65ff1add676f", + "id" : "37884334-769f-338a-97ea-cec1c5237011", "name" : "v1_project", "request" : { "urlPath" : "/v1/project", @@ -14,28 +14,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "v1_project-2f16e640e582.json", + "bodyFileName" : "v1_project-38e55ac56fed.json", "headers" : { "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:23 GMT", - "Via" : "1.1 cb2aa1abf9fb243a4dc4cb073a92424e.cloudfront.net (CloudFront)", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:19 GMT", + "Via" : "1.1 63560dd3f856b0f7bfe68a0cad46924a.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "d_jfQha_H3KhK9-in4sTyHL86vSs1cGgIEiRQPDMLjDMnzxdnTWbpg==", + "X-Amz-Cf-Id" : "zL5qVdZ0P6vLfrXdLif0MkBR3IFjHV4SEcNTQW2_xia7BYwsSyHrwQ==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "c3af4f3c-ca1e-31b5-93e9-65ff1add676f", + "uuid" : "37884334-769f-338a-97ea-cec1c5237011", "persistent" : true, - "scenarioName" : "scenario-2-v1-project", - "requiredScenarioState" : "scenario-2-v1-project-9", - "newScenarioState" : "scenario-2-v1-project-10", - "insertionIndex" : 200 + "scenarioName" : "scenario-4-v1-project", + "requiredScenarioState" : "scenario-4-v1-project-30", + "newScenarioState" : "scenario-4-v1-project-31", + "insertionIndex" : 59 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-3caf23d26153.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-3caf23d26153.json index aa3594c9..d48f5c8c 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-3caf23d26153.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-3caf23d26153.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:17 GMT", - "Via" : "1.1 04efc78121acf5d40974e6a71bebce20.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:01 GMT", + "Via" : "1.1 55a62c25b77c24cde4014f567fd1c550.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "a_Nd6MEBwe3wTGP4LecuJ6YWIjrhP7koZnCIe8yd0xcj8TblcKduMQ==", + "X-Amz-Cf-Id" : "bfSe8XJViauUH7JUJZAJICu-0XCGPuYbsF0pJoFV83c9jf2DaE_5ig==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ "scenarioName" : "scenario-4-v1-project", "requiredScenarioState" : "scenario-4-v1-project-6", "newScenarioState" : "scenario-4-v1-project-7", - "insertionIndex" : 98 + "insertionIndex" : 133 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-410ff9f133da.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-40183794327e.json similarity index 58% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-410ff9f133da.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-40183794327e.json index 51214295..fc8ffcbb 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-410ff9f133da.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-40183794327e.json @@ -1,5 +1,5 @@ { - "id" : "2c0e6f0a-b1c8-3b66-8435-51de30a1a7dd", + "id" : "d7937137-a34e-3647-ab7b-67593e2560f7", "name" : "v1_project", "request" : { "urlPath" : "/v1/project", @@ -14,28 +14,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "v1_project-410ff9f133da.json", + "bodyFileName" : "v1_project-40183794327e.json", "headers" : { "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:20 GMT", - "Via" : "1.1 fbb003dfc0617e3e058e3dac791dfd5a.cloudfront.net (CloudFront)", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:23 GMT", + "Via" : "1.1 a3134c0c893f03d1e9a9c657d09af7cc.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "jrq7fA7lr7jNe4RiZm_Ggs9s_AzfdVS2dnfX60EZVboDld21wsU88w==", + "X-Amz-Cf-Id" : "3ktjnIpCALxf3zgwPnvjsQWIkM-QQNr8NOMJAyFSvjn0bO5ruBUe6g==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "2c0e6f0a-b1c8-3b66-8435-51de30a1a7dd", + "uuid" : "d7937137-a34e-3647-ab7b-67593e2560f7", "persistent" : true, - "scenarioName" : "scenario-2-v1-project", - "requiredScenarioState" : "scenario-2-v1-project-5", - "newScenarioState" : "scenario-2-v1-project-6", - "insertionIndex" : 212 + "scenarioName" : "scenario-4-v1-project", + "requiredScenarioState" : "scenario-4-v1-project-34", + "newScenarioState" : "scenario-4-v1-project-35", + "insertionIndex" : 46 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-433af0a9d122.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-433af0a9d122.json index 0ca00d6b..3bb7791b 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-433af0a9d122.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-433af0a9d122.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:32 GMT", - "Via" : "1.1 a6be96637dfcb93ee417719bb21d57d0.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:06 GMT", + "Via" : "1.1 b3a8bdee20374465a3f2aa64f19ec30e.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "0y9av3gHVRP4Egkw2Nrq3dqNW8nQHBhyJ7Vx-Htjj3mT5Y9174O1sw==", + "X-Amz-Cf-Id" : "qU0kpyRzIsWRLlygOJK9ZVUHkkQcwx2BvfGezkslmJjULR1QErUUTA==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ "scenarioName" : "scenario-4-v1-project", "requiredScenarioState" : "scenario-4-v1-project-14", "newScenarioState" : "scenario-4-v1-project-15", - "insertionIndex" : 75 + "insertionIndex" : 111 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-4c8c4ab3b42c.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-4c8c4ab3b42c.json index 8fa8b58f..3d930b8f 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-4c8c4ab3b42c.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-4c8c4ab3b42c.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:25 GMT", - "Via" : "1.1 dea0b5e705fff834db8ae3992ea09cfa.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:15 GMT", + "Via" : "1.1 a6be96637dfcb93ee417719bb21d57d0.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "Rv0tnsHtFinIgxnKKMdL9fHLQ1r85pKgHzqcgoSFtfgJOA_U29DNEA==", + "X-Amz-Cf-Id" : "kGPu1hAxQ7ctnmVsGMJe9vA6Gtr7AqTDaHxDeCDZgfnHAeUYlZZ62g==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ "scenarioName" : "scenario-4-v1-project", "requiredScenarioState" : "scenario-4-v1-project-26", "newScenarioState" : "scenario-4-v1-project-27", - "insertionIndex" : 12 + "insertionIndex" : 74 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-4e9b968323d6.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-4e9b968323d6.json index a10099c1..2c56cb32 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-4e9b968323d6.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-4e9b968323d6.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:07 GMT", - "Via" : "1.1 dea0b5e705fff834db8ae3992ea09cfa.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:41:57 GMT", + "Via" : "1.1 0758a857b0f9c36d8cfe897182f568ce.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "FHkG0ofrtMlK7SDGvImiDbCXqScLqWhyKGFYJ46G1jkJZ--2ohmkkA==", + "X-Amz-Cf-Id" : "2qNOeIREzE4KTOwG6wZI2E2uTjdJxpxJew0UDSN0AnQvfEmIDqBdNw==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ "scenarioName" : "scenario-4-v1-project", "requiredScenarioState" : "scenario-4-v1-project-3", "newScenarioState" : "scenario-4-v1-project-4", - "insertionIndex" : 107 + "insertionIndex" : 142 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-53e93e4a5ef4.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-53e93e4a5ef4.json new file mode 100644 index 00000000..46e2d317 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-53e93e4a5ef4.json @@ -0,0 +1,41 @@ +{ + "id" : "418cba0e-bf20-328e-865b-7444dec2b5b6", + "name" : "v1_project", + "request" : { + "urlPath" : "/v1/project", + "method" : "GET", + "queryParameters" : { + "project_name" : { + "hasExactly" : [ { + "equalTo" : "java-unit-test" + } ] + } + } + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project-53e93e4a5ef4.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:22 GMT", + "Via" : "1.1 88f286e23c15fc2f62a741db8207a67a.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "JGZc0tWrI2mbTAS6Q5HSQi54dBwBk2At-8Kg-bVqlfGAT-k60K7MoQ==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "418cba0e-bf20-328e-865b-7444dec2b5b6", + "persistent" : true, + "scenarioName" : "scenario-4-v1-project", + "requiredScenarioState" : "scenario-4-v1-project-33", + "newScenarioState" : "scenario-4-v1-project-34", + "insertionIndex" : 49 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-543a07178006.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-543a07178006.json deleted file mode 100644 index 6a71e471..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-543a07178006.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "id" : "1c224e28-c695-3150-80a1-b131fa0ac88b", - "name" : "v1_project", - "request" : { - "urlPath" : "/v1/project", - "method" : "GET", - "queryParameters" : { - "project_name" : { - "hasExactly" : [ { - "equalTo" : "java-unit-test" - } ] - } - } - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_project-543a07178006.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:22 GMT", - "Via" : "1.1 170efbc424be9181bda5d0fcd6e41f30.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", - "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", - "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "Mja_ACcJFzolgy8QfAV79t4xmTYCKo8iY8Adc4ThasenKK3NzWoGFw==", - "Vary" : "Origin, Accept-Encoding", - "Expires" : "0", - "Surrogate-Control" : "no-store", - "Content-Type" : "application/json; charset=utf-8" - } - }, - "uuid" : "1c224e28-c695-3150-80a1-b131fa0ac88b", - "persistent" : true, - "scenarioName" : "scenario-2-v1-project", - "requiredScenarioState" : "scenario-2-v1-project-7", - "newScenarioState" : "scenario-2-v1-project-8", - "insertionIndex" : 206 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-5be6186e8094.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-5be6186e8094.json index a24de6c1..09bb72d4 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-5be6186e8094.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-5be6186e8094.json @@ -17,15 +17,15 @@ "bodyFileName" : "v1_project-5be6186e8094.json", "headers" : { "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Fri, 16 Oct 2026 19:22:17 GMT", - "Via" : "1.1 73b0c4a85645a8031ba157e0b3e28ffc.cloudfront.net (CloudFront)", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:48:56 GMT", + "Via" : "1.1 b2b215a89cc2734b2940e2eb59ea4bd0.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "qGEPGD2AHndpEXJ3evIabTxyaUmZDSxWlQx1yLtQR0T-SE4vs2K9tw==", + "X-Amz-Cf-Id" : "PjsbZrbJLVEM0RxIS4sl3ubo9WhKupGr-iJumHoVfbkPIk9lWbdp2g==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -34,5 +34,5 @@ }, "uuid" : "d0fd31c6-ed1d-39d3-b5b0-9bfc4fc78ff8", "persistent" : true, - "insertionIndex" : 220 + "insertionIndex" : 253 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-685f0ead6d74.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-685f0ead6d74.json index 3aabd570..959b31d9 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-685f0ead6d74.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-685f0ead6d74.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:27 GMT", - "Via" : "1.1 1271197444822e7c59413a59ecbcecd6.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:17 GMT", + "Via" : "1.1 63560dd3f856b0f7bfe68a0cad46924a.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "EUdU7ptXBRO3hCX-IRQWVxToDN-M6HokTRc4vYOk00xaLyJW5v5Klw==", + "X-Amz-Cf-Id" : "g80C7ID5SWn-Fw3cNNhqb5LgU93C1ADMTkQkWoxvbWbHxCj0Sb7bAg==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -36,5 +36,6 @@ "persistent" : true, "scenarioName" : "scenario-4-v1-project", "requiredScenarioState" : "scenario-4-v1-project-27", - "insertionIndex" : 9 + "newScenarioState" : "scenario-4-v1-project-28", + "insertionIndex" : 67 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-6b105d2569fe.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-6b105d2569fe.json index 395a4f39..c5123d56 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-6b105d2569fe.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-6b105d2569fe.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:21 GMT", - "Via" : "1.1 087b179013ed486bf34db435cff85f08.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:03 GMT", + "Via" : "1.1 28edb03169fa053a4a523d90d15ff6ae.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "gedMFHD2B545-RhS6Qq9xsVmd_OMZ9AkRQqaK-l4uWlsW5ylbbieTw==", + "X-Amz-Cf-Id" : "ETgfE7RyZ_SJ9TISq52yfoJVu9efBGgkkhgpbbqDtORYocC00fVEQw==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ "scenarioName" : "scenario-4-v1-project", "requiredScenarioState" : "scenario-4-v1-project-9", "newScenarioState" : "scenario-4-v1-project-10", - "insertionIndex" : 91 + "insertionIndex" : 126 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-7ccab3db5681.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-7ccab3db5681.json index e2de4e71..922e4cd8 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-7ccab3db5681.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-7ccab3db5681.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:27 GMT", - "Via" : "1.1 7f26c41dda80bd7d50ccec2be87c9c3e.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:04 GMT", + "Via" : "1.1 5af99d6f2fc1c569c253259aec683ee8.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "Tp1Z5Mlk5svv6cV5vVoqWmRBAprS4smLieKpcEIbtIiSyzym4cKf2Q==", + "X-Amz-Cf-Id" : "4tHU_jeTy_8JN8WMMDBTgQkdMjrd7LgGFdiFtN-GUWr9px9eLzta1Q==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ "scenarioName" : "scenario-4-v1-project", "requiredScenarioState" : "scenario-4-v1-project-11", "newScenarioState" : "scenario-4-v1-project-12", - "insertionIndex" : 82 + "insertionIndex" : 120 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-83629c5a83ef.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-83629c5a83ef.json new file mode 100644 index 00000000..ed6e0897 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-83629c5a83ef.json @@ -0,0 +1,41 @@ +{ + "id" : "d67d5033-46a3-398a-81cd-5df27df3e018", + "name" : "v1_project", + "request" : { + "urlPath" : "/v1/project", + "method" : "GET", + "queryParameters" : { + "project_name" : { + "hasExactly" : [ { + "equalTo" : "java-unit-test" + } ] + } + } + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project-83629c5a83ef.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:40 GMT", + "Via" : "1.1 b54238be18861f9bb1272bf1cb10e040.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "YvbIJmU7pphFpzKE-BVIT3hkp2k1oHNyUUMHDg4Mn664pMW3bZrabg==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "d67d5033-46a3-398a-81cd-5df27df3e018", + "persistent" : true, + "scenarioName" : "scenario-4-v1-project", + "requiredScenarioState" : "scenario-4-v1-project-37", + "newScenarioState" : "scenario-4-v1-project-38", + "insertionIndex" : 14 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-894dbabc1261.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-894dbabc1261.json new file mode 100644 index 00000000..26cc31ac --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-894dbabc1261.json @@ -0,0 +1,41 @@ +{ + "id" : "697dbd25-4c94-3426-8726-e6548e4a7b57", + "name" : "v1_project", + "request" : { + "urlPath" : "/v1/project", + "method" : "GET", + "queryParameters" : { + "project_name" : { + "hasExactly" : [ { + "equalTo" : "java-unit-test" + } ] + } + } + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project-894dbabc1261.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:38 GMT", + "Via" : "1.1 dea0b5e705fff834db8ae3992ea09cfa.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "0sjObmZbtqKYQJNRXXeIxddOMNoyIogZ13PUXATAetojHBoZvd3vxw==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "697dbd25-4c94-3426-8726-e6548e4a7b57", + "persistent" : true, + "scenarioName" : "scenario-4-v1-project", + "requiredScenarioState" : "scenario-4-v1-project-35", + "newScenarioState" : "scenario-4-v1-project-36", + "insertionIndex" : 20 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-91dcdd57d37b.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-91dcdd57d37b.json new file mode 100644 index 00000000..cc7d9802 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-91dcdd57d37b.json @@ -0,0 +1,41 @@ +{ + "id" : "22c3848e-39ee-3668-9c38-4cb02c801bf2", + "name" : "v1_project", + "request" : { + "urlPath" : "/v1/project", + "method" : "GET", + "queryParameters" : { + "project_name" : { + "hasExactly" : [ { + "equalTo" : "java-unit-test" + } ] + } + } + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project-91dcdd57d37b.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:21 GMT", + "Via" : "1.1 d49bde7225e80ca0dc457ff2b8b4343e.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "BtrHH4L-GJ7c16jAL-5poNbjJ4t_N3M3AQ3j37CzR4iCmKAorLgmoA==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "22c3848e-39ee-3668-9c38-4cb02c801bf2", + "persistent" : true, + "scenarioName" : "scenario-4-v1-project", + "requiredScenarioState" : "scenario-4-v1-project-32", + "newScenarioState" : "scenario-4-v1-project-33", + "insertionIndex" : 52 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-9691037ab891.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-9691037ab891.json index 0dc3e913..c2cada6f 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-9691037ab891.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-9691037ab891.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:51 GMT", - "Via" : "1.1 4c8322ac27bebc2a7e26f72c7b6ec2ee.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:11 GMT", + "Via" : "1.1 2501b465adde8e5aedc3f38e3dfcdc22.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "Aw7UGhPdy3apSPMohWBci5E0Xr2B6uKePAkpmhOge9bu2f3FEpn5VA==", + "X-Amz-Cf-Id" : "4r-pZMDejWzesnU3xexpWCq06gufhSihHkJALwAu-9ttIqyzWqgg1A==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ "scenarioName" : "scenario-4-v1-project", "requiredScenarioState" : "scenario-4-v1-project-21", "newScenarioState" : "scenario-4-v1-project-22", - "insertionIndex" : 50 + "insertionIndex" : 90 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-9f8c5b3c2f84.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-9f8c5b3c2f84.json index 05e52670..b13be721 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-9f8c5b3c2f84.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-9f8c5b3c2f84.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:11 GMT", - "Via" : "1.1 63560dd3f856b0f7bfe68a0cad46924a.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:41:58 GMT", + "Via" : "1.1 55a62c25b77c24cde4014f567fd1c550.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "4cXl8khiduuQCT4foffRX4puAVa2yAVikBtw0mZqJ_qGcgAlznKeYw==", + "X-Amz-Cf-Id" : "xpmWIMYR3fVq3MS6_gGBfgbD7j9XRlYdfxfTJ-n_KuxkFP1pSrFjzg==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ "scenarioName" : "scenario-4-v1-project", "requiredScenarioState" : "scenario-4-v1-project-4", "newScenarioState" : "scenario-4-v1-project-5", - "insertionIndex" : 104 + "insertionIndex" : 139 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-8d973730b6e1.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-a06551fe63ba.json similarity index 60% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-8d973730b6e1.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-a06551fe63ba.json index a932990d..5e9fa45e 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-8d973730b6e1.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-a06551fe63ba.json @@ -1,5 +1,5 @@ { - "id" : "26cdf151-c5ec-3cc9-b1e7-35507f5e4bac", + "id" : "5d26db28-df45-3db6-a479-a1c351a6d942", "name" : "v1_project", "request" : { "urlPath" : "/v1/project", @@ -14,27 +14,27 @@ }, "response" : { "status" : 200, - "bodyFileName" : "v1_project-8d973730b6e1.json", + "bodyFileName" : "v1_project-a06551fe63ba.json", "headers" : { "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:26 GMT", - "Via" : "1.1 b669d9add7767f73665f1f8b7e8cd802.cloudfront.net (CloudFront)", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:42 GMT", + "Via" : "1.1 5af99d6f2fc1c569c253259aec683ee8.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "wFeDJrI08z8pguaFFhHFzFqbee6viP6JLr_qNiMbdhW61agPqSd4VQ==", + "X-Amz-Cf-Id" : "4wGKbqc9jZERE2PR1Az_kMHLK4rROyxcRMrJ4xRKr0TERp91Jj50Zg==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "26cdf151-c5ec-3cc9-b1e7-35507f5e4bac", + "uuid" : "5d26db28-df45-3db6-a479-a1c351a6d942", "persistent" : true, - "scenarioName" : "scenario-2-v1-project", - "requiredScenarioState" : "scenario-2-v1-project-12", - "insertionIndex" : 191 + "scenarioName" : "scenario-4-v1-project", + "requiredScenarioState" : "scenario-4-v1-project-39", + "insertionIndex" : 8 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-a09972bc8d98.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-a09972bc8d98.json index 04dc65b8..fecf0aa5 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-a09972bc8d98.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-a09972bc8d98.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:45 GMT", - "Via" : "1.1 04efc78121acf5d40974e6a71bebce20.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:10 GMT", + "Via" : "1.1 5af99d6f2fc1c569c253259aec683ee8.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "PIcrR52VfJrMhZECHBybFsPF439Th_bumIvw_rMAU3xW6dyTdJ6B_g==", + "X-Amz-Cf-Id" : "s7dNscwMrpCXkAmMJmIJrzCvlVx6JCDV8b_LMI0aSgKHsjSHteu8Ow==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ "scenarioName" : "scenario-4-v1-project", "requiredScenarioState" : "scenario-4-v1-project-19", "newScenarioState" : "scenario-4-v1-project-20", - "insertionIndex" : 57 + "insertionIndex" : 96 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-a27a6d6e5304.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-a27a6d6e5304.json index e073270c..29b08ed6 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-a27a6d6e5304.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-a27a6d6e5304.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:25 GMT", - "Via" : "1.1 55a62c25b77c24cde4014f567fd1c550.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:04 GMT", + "Via" : "1.1 7aad92255c39d277bce3f20afa1b059c.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "dlMhBcLVDbp8H7Mvvxd4r_A0Nhi1GjjnCzhKrlYI-gLiT28-8GAbBA==", + "X-Amz-Cf-Id" : "KrMn8nQ0-HUwYsSS4Q2QRz1XaGc_JOPz4DE3beghOkCyz3EzdebDXQ==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ "scenarioName" : "scenario-4-v1-project", "requiredScenarioState" : "scenario-4-v1-project-10", "newScenarioState" : "scenario-4-v1-project-11", - "insertionIndex" : 87 + "insertionIndex" : 123 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-a351a0ac8d9d.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-a351a0ac8d9d.json index da145972..aaf55a42 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-a351a0ac8d9d.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-a351a0ac8d9d.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:42 GMT", - "Via" : "1.1 c72e48ed2f0a994f695ca2fb4bc9247e.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:09 GMT", + "Via" : "1.1 087b179013ed486bf34db435cff85f08.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "b-aYSgL5cbQN4DgXoHmmx9MXrYpXjcNU0OUGfV2TVHYR8Ope593EPg==", + "X-Amz-Cf-Id" : "VlD3pu9FzeEgOmAVKvYJDaoOqfdhBYad9E3hdhw1CRlHWohRY2VGWA==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ "scenarioName" : "scenario-4-v1-project", "requiredScenarioState" : "scenario-4-v1-project-18", "newScenarioState" : "scenario-4-v1-project-19", - "insertionIndex" : 60 + "insertionIndex" : 99 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-b7ddfcd4045b.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-b7ddfcd4045b.json new file mode 100644 index 00000000..493b8e26 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-b7ddfcd4045b.json @@ -0,0 +1,41 @@ +{ + "id" : "e9274842-7b33-3c87-ae11-12f492e9196d", + "name" : "v1_project", + "request" : { + "urlPath" : "/v1/project", + "method" : "GET", + "queryParameters" : { + "project_name" : { + "hasExactly" : [ { + "equalTo" : "java-unit-test" + } ] + } + } + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project-b7ddfcd4045b.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:41 GMT", + "Via" : "1.1 3417fc639ca50b55b2a1d93807a20c2c.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "E_fLc5TJWTCd7XCqxOcUYnscFx6DlNTs3_4t61RlWBOn1CjZYnZ8Uw==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "e9274842-7b33-3c87-ae11-12f492e9196d", + "persistent" : true, + "scenarioName" : "scenario-4-v1-project", + "requiredScenarioState" : "scenario-4-v1-project-38", + "newScenarioState" : "scenario-4-v1-project-39", + "insertionIndex" : 11 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-b8c4d7b1d75a.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-b8c4d7b1d75a.json deleted file mode 100644 index 102c84e8..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-b8c4d7b1d75a.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "id" : "1847086f-3d9b-36e6-aa25-20d61660d6bd", - "name" : "v1_project", - "request" : { - "urlPath" : "/v1/project", - "method" : "GET", - "queryParameters" : { - "project_name" : { - "hasExactly" : [ { - "equalTo" : "java-unit-test" - } ] - } - } - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_project-b8c4d7b1d75a.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:25 GMT", - "Via" : "1.1 b669d9add7767f73665f1f8b7e8cd802.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", - "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", - "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "y-_v-02_V6--WMKTIBI63KfAMgObOvhMeSNKr2igVikNYzAjDBdQXQ==", - "Vary" : "Origin, Accept-Encoding", - "Expires" : "0", - "Surrogate-Control" : "no-store", - "Content-Type" : "application/json; charset=utf-8" - } - }, - "uuid" : "1847086f-3d9b-36e6-aa25-20d61660d6bd", - "persistent" : true, - "scenarioName" : "scenario-2-v1-project", - "requiredScenarioState" : "scenario-2-v1-project-11", - "newScenarioState" : "scenario-2-v1-project-12", - "insertionIndex" : 194 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-ba704e6698ad.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-ba704e6698ad.json index beb11b1a..d1edf5e5 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-ba704e6698ad.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-ba704e6698ad.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:36 GMT", - "Via" : "1.1 a6be96637dfcb93ee417719bb21d57d0.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:07 GMT", + "Via" : "1.1 4c8322ac27bebc2a7e26f72c7b6ec2ee.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "g-XpPA6PKWBDFy5f9G7kqwOb5pdlNrvChQ_WtyW-k4yG6WZX1Ey6sQ==", + "X-Amz-Cf-Id" : "v9qsE3LSjDgIVHfQ3Cn1Zj5fyPJ45FXz72R_GatQA87eFFvmWN0z4A==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ "scenarioName" : "scenario-4-v1-project", "requiredScenarioState" : "scenario-4-v1-project-15", "newScenarioState" : "scenario-4-v1-project-16", - "insertionIndex" : 68 + "insertionIndex" : 108 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-bf81f8c5101d.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-bf81f8c5101d.json new file mode 100644 index 00000000..09d07b14 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-bf81f8c5101d.json @@ -0,0 +1,41 @@ +{ + "id" : "a0be65bd-ddca-382e-93ce-1dc34fd61a8e", + "name" : "v1_project", + "request" : { + "urlPath" : "/v1/project", + "method" : "GET", + "queryParameters" : { + "project_name" : { + "hasExactly" : [ { + "equalTo" : "java-unit-test" + } ] + } + } + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project-bf81f8c5101d.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:18 GMT", + "Via" : "1.1 5af99d6f2fc1c569c253259aec683ee8.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "Pjz-9-eos7XNJELceUZy-deg-mV12efJ4D-LYsaBUUNkz4R6BkrFgw==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "a0be65bd-ddca-382e-93ce-1dc34fd61a8e", + "persistent" : true, + "scenarioName" : "scenario-4-v1-project", + "requiredScenarioState" : "scenario-4-v1-project-29", + "newScenarioState" : "scenario-4-v1-project-30", + "insertionIndex" : 61 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-c0742bb3c63f.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-c0742bb3c63f.json deleted file mode 100644 index ea1d7463..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-c0742bb3c63f.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "id" : "02e68d25-de8f-38c9-b80e-6c8c4390e791", - "name" : "v1_project", - "request" : { - "urlPath" : "/v1/project", - "method" : "GET", - "queryParameters" : { - "project_name" : { - "hasExactly" : [ { - "equalTo" : "java-unit-test" - } ] - } - } - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_project-c0742bb3c63f.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:21 GMT", - "Via" : "1.1 170efbc424be9181bda5d0fcd6e41f30.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", - "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", - "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "BdBDKFNLys-fhpQgUW1dDYUHVwZ-5LgB6jyFd3BK7Im7fRrI-GJMsg==", - "Vary" : "Origin, Accept-Encoding", - "Expires" : "0", - "Surrogate-Control" : "no-store", - "Content-Type" : "application/json; charset=utf-8" - } - }, - "uuid" : "02e68d25-de8f-38c9-b80e-6c8c4390e791", - "persistent" : true, - "scenarioName" : "scenario-2-v1-project", - "requiredScenarioState" : "scenario-2-v1-project-6", - "newScenarioState" : "scenario-2-v1-project-7", - "insertionIndex" : 209 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-c082403088e5.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-c082403088e5.json index 0c63a03a..813459e8 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-c082403088e5.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-c082403088e5.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:14 GMT", - "Via" : "1.1 d49bde7225e80ca0dc457ff2b8b4343e.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:41:59 GMT", + "Via" : "1.1 9895fa1d75119fa16da9e015b58dbe5a.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "d2q9jUb4uv_QrekaDp2vugOZ9UItPPFU4KH4i924kQdDBJBCpXIzTA==", + "X-Amz-Cf-Id" : "1Q7vnY9bZiH2pG7E5iqJgsr7q0NWWjg3uvWUAeS0wNfHwMJjEq1Uvw==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ "scenarioName" : "scenario-4-v1-project", "requiredScenarioState" : "scenario-4-v1-project-5", "newScenarioState" : "scenario-4-v1-project-6", - "insertionIndex" : 101 + "insertionIndex" : 136 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-c6ef046ce872.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-c6ef046ce872.json index 2b3790a3..95c30b25 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-c6ef046ce872.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-c6ef046ce872.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:18 GMT", - "Via" : "1.1 88f286e23c15fc2f62a741db8207a67a.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:13 GMT", + "Via" : "1.1 55a62c25b77c24cde4014f567fd1c550.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "3aaJSPLOIvL-0TZlmvO1ZVK44WurP228SxbQL5AXMvXan0oVtQB8BQ==", + "X-Amz-Cf-Id" : "7SW9R-I1IHL0iRbJtaOaS9qQrXMo43QBzs7Ry_50szyon_VGI_yJ5w==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ "scenarioName" : "scenario-4-v1-project", "requiredScenarioState" : "scenario-4-v1-project-23", "newScenarioState" : "scenario-4-v1-project-24", - "insertionIndex" : 21 + "insertionIndex" : 81 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-cb708eff5cc0.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-cb708eff5cc0.json index 768a8b35..932f200a 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-cb708eff5cc0.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-cb708eff5cc0.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:53 GMT", - "Via" : "1.1 4c8322ac27bebc2a7e26f72c7b6ec2ee.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:12 GMT", + "Via" : "1.1 3417fc639ca50b55b2a1d93807a20c2c.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "bzLSIKhhxaDbJpg1iKDHxrWXB-svlaHNfuOtDQV3uAkrCGVp_Ed9mg==", + "X-Amz-Cf-Id" : "xk3Ui2JMvAcnQm7ygSp62BzYeg_TUzPp1gmUY57A1e09WXPO5qRMVA==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ "scenarioName" : "scenario-4-v1-project", "requiredScenarioState" : "scenario-4-v1-project-22", "newScenarioState" : "scenario-4-v1-project-23", - "insertionIndex" : 47 + "insertionIndex" : 86 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-ccb3b2677b4d.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-ccb3b2677b4d.json index f4972f9a..0eb4afee 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-ccb3b2677b4d.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-ccb3b2677b4d.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:29 GMT", - "Via" : "1.1 0ddbf3138c96d4b7c9f8047edb515414.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:05 GMT", + "Via" : "1.1 3062c1f9ccf5f043983bc180e222dd9c.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "eDw4LBb9ZiDdljqf-X3kgzXkSRPIlltuqWCjY1TEeZBL-iiSatCR-w==", + "X-Amz-Cf-Id" : "Y5yTFUFHTQdsMTdRMJjQnrCNI7HXcIuKSpary0HMIsHiev-jfpbV7w==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ "scenarioName" : "scenario-4-v1-project", "requiredScenarioState" : "scenario-4-v1-project-12", "newScenarioState" : "scenario-4-v1-project-13", - "insertionIndex" : 79 + "insertionIndex" : 117 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-d304e3ee199f.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-d304e3ee199f.json index b3954318..a620bbb6 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-d304e3ee199f.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-d304e3ee199f.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:20 GMT", - "Via" : "1.1 b2b215a89cc2734b2940e2eb59ea4bd0.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:02 GMT", + "Via" : "1.1 3062c1f9ccf5f043983bc180e222dd9c.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "xsuswa0uMxugMpErOHX8tm77RN5ULTkvoGW1m7H2pq7xh0FBgPnOvA==", + "X-Amz-Cf-Id" : "qYXkjIpEVvwKEvZH8ZYV-xXAYmptAyDUBHwhYM6WufOP3LbYVN0EWQ==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ "scenarioName" : "scenario-4-v1-project", "requiredScenarioState" : "scenario-4-v1-project-8", "newScenarioState" : "scenario-4-v1-project-9", - "insertionIndex" : 93 + "insertionIndex" : 128 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-dd7665d7a48a.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-dd7665d7a48a.json deleted file mode 100644 index b1042b87..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-dd7665d7a48a.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "id" : "0254f542-fbbd-37af-903b-d925ff1ca4af", - "name" : "v1_project", - "request" : { - "urlPath" : "/v1/project", - "method" : "GET", - "queryParameters" : { - "project_name" : { - "hasExactly" : [ { - "equalTo" : "java-unit-test" - } ] - } - } - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_project-dd7665d7a48a.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:19 GMT", - "Via" : "1.1 98b0bd91dae8cd13230da037f5a4d5e0.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", - "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", - "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "467kCtUocQJkAM7_BY-LX3MPHUYQPbB1-tkQAKqBqE2aBFCwkkgc3g==", - "Vary" : "Origin, Accept-Encoding", - "Expires" : "0", - "Surrogate-Control" : "no-store", - "Content-Type" : "application/json; charset=utf-8" - } - }, - "uuid" : "0254f542-fbbd-37af-903b-d925ff1ca4af", - "persistent" : true, - "scenarioName" : "scenario-2-v1-project", - "requiredScenarioState" : "scenario-2-v1-project-4", - "newScenarioState" : "scenario-2-v1-project-5", - "insertionIndex" : 215 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-dd7d341fc854.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-dd7d341fc854.json new file mode 100644 index 00000000..1f05185d --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-dd7d341fc854.json @@ -0,0 +1,41 @@ +{ + "id" : "9f3818c0-3981-36d2-adce-e00f76aecd49", + "name" : "v1_project", + "request" : { + "urlPath" : "/v1/project", + "method" : "GET", + "queryParameters" : { + "project_name" : { + "hasExactly" : [ { + "equalTo" : "java-unit-test" + } ] + } + } + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project-dd7d341fc854.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:39 GMT", + "Via" : "1.1 b54238be18861f9bb1272bf1cb10e040.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "MrllpnZVm2TcKcv-ONQg55u0VMrN3u5tCbe2lCZHnYd9pIh3Nz-S7Q==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "9f3818c0-3981-36d2-adce-e00f76aecd49", + "persistent" : true, + "scenarioName" : "scenario-4-v1-project", + "requiredScenarioState" : "scenario-4-v1-project-36", + "newScenarioState" : "scenario-4-v1-project-37", + "insertionIndex" : 17 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-e548ebcb1218.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-e548ebcb1218.json deleted file mode 100644 index 753b4b21..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-e548ebcb1218.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "id" : "8aebafad-efbc-3e6a-af96-87882f574aa1", - "name" : "v1_project", - "request" : { - "urlPath" : "/v1/project", - "method" : "GET", - "queryParameters" : { - "project_name" : { - "hasExactly" : [ { - "equalTo" : "java-unit-test" - } ] - } - } - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_project-e548ebcb1218.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:24 GMT", - "Via" : "1.1 a53bab1af200813b8f27e3c0a28b4964.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", - "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", - "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "2FbRht71bcgaB5hB5gXNag-RSNfqh_6BryO4gdTNwW4KCavpuHtVEg==", - "Vary" : "Origin, Accept-Encoding", - "Expires" : "0", - "Surrogate-Control" : "no-store", - "Content-Type" : "application/json; charset=utf-8" - } - }, - "uuid" : "8aebafad-efbc-3e6a-af96-87882f574aa1", - "persistent" : true, - "scenarioName" : "scenario-2-v1-project", - "requiredScenarioState" : "scenario-2-v1-project-10", - "newScenarioState" : "scenario-2-v1-project-11", - "insertionIndex" : 197 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-e74886687a34.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-e74886687a34.json deleted file mode 100644 index c6444299..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-e74886687a34.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "id" : "b0b988b5-0416-376e-8651-152095d5b692", - "name" : "v1_project", - "request" : { - "urlPath" : "/v1/project", - "method" : "GET", - "queryParameters" : { - "project_name" : { - "hasExactly" : [ { - "equalTo" : "java-unit-test" - } ] - } - } - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_project-e74886687a34.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:18 GMT", - "Via" : "1.1 dbfd9bcc806d4c322e72b461b2458112.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", - "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", - "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "qa2QY9XA3Dp2q5xCFMV6FYXw5f93p0p9xYLWX8l8FE1O9DmqE4JWLw==", - "Vary" : "Origin, Accept-Encoding", - "Expires" : "0", - "Surrogate-Control" : "no-store", - "Content-Type" : "application/json; charset=utf-8" - } - }, - "uuid" : "b0b988b5-0416-376e-8651-152095d5b692", - "persistent" : true, - "scenarioName" : "scenario-2-v1-project", - "requiredScenarioState" : "scenario-2-v1-project-3", - "newScenarioState" : "scenario-2-v1-project-4", - "insertionIndex" : 218 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-e7ccbf8e190c.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-e7ccbf8e190c.json index 0a205e72..902212a0 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-e7ccbf8e190c.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-e7ccbf8e190c.json @@ -18,14 +18,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:34:17 GMT", - "Via" : "1.1 b3a8bdee20374465a3f2aa64f19ec30e.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:41:32 GMT", + "Via" : "1.1 a6be96637dfcb93ee417719bb21d57d0.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "2AHmi6eWyaPNyo4UuPwQjkpg89UcKWCL9HejdYbTgXQzVeVM0vWdVA==", + "X-Amz-Cf-Id" : "-HmYVxV7k045_tYAQJrAmnXbt1Y-BryKoAa0sQ_rGOYrRvnESPG8Bw==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -37,5 +37,5 @@ "scenarioName" : "scenario-4-v1-project", "requiredScenarioState" : "scenario-4-v1-project-2", "newScenarioState" : "scenario-4-v1-project-3", - "insertionIndex" : 133 + "insertionIndex" : 181 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-e7e35e493e43.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-e7e35e493e43.json deleted file mode 100644 index ac609e8b..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project-e7e35e493e43.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "id" : "d2f428e5-f001-3e3a-9b24-5e1d7065518c", - "name" : "v1_project", - "request" : { - "urlPath" : "/v1/project", - "method" : "GET", - "queryParameters" : { - "project_name" : { - "hasExactly" : [ { - "equalTo" : "java-unit-test" - } ] - } - } - }, - "response" : { - "status" : 200, - "bodyFileName" : "v1_project-e7e35e493e43.json", - "headers" : { - "X-Cache" : "Miss from cloudfront", - "X-Amz-Cf-Pop" : "SEA900-P10", - "Date" : "Wed, 02 Sep 2026 05:16:17 GMT", - "Via" : "1.1 73b0c4a85645a8031ba157e0b3e28ffc.cloudfront.net (CloudFront)", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", - "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", - "ETag" : "W/\"169-XiwCuJsCqAZuAH8JspCgkYonnKw\"", - "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "n86u2jAoxv1yeryLmxU0IAAJIuSYCp-bRbPbssT4_6Gny6aBD50eXQ==", - "Vary" : "Origin, Accept-Encoding", - "Expires" : "0", - "Surrogate-Control" : "no-store", - "Content-Type" : "application/json; charset=utf-8" - } - }, - "uuid" : "d2f428e5-f001-3e3a-9b24-5e1d7065518c", - "persistent" : true, - "scenarioName" : "scenario-2-v1-project", - "requiredScenarioState" : "scenario-2-v1-project-2", - "newScenarioState" : "scenario-2-v1-project-3", - "insertionIndex" : 221 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-163d777ecb9b.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-163d777ecb9b.json new file mode 100644 index 00000000..adf3b722 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-163d777ecb9b.json @@ -0,0 +1,34 @@ +{ + "id" : "3bfe4106-c2dc-38bb-9f4d-23b1137b1c42", + "name" : "v1_project_f1e858a4-58e3-408f-983f-016760d7fa25", + "request" : { + "url" : "/v1/project/f1e858a4-58e3-408f-983f-016760d7fa25", + "method" : "GET" + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-163d777ecb9b.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:26 GMT", + "Via" : "1.1 9895fa1d75119fa16da9e015b58dbe5a.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"15b-B/X+Uhf+FLkzqf65d24KDLzFxgc\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "1lA9FlZ0NJoM8hEdCzpd_OZAK7H09E8m3qzCbL1ycFMxZcjoUGBSsw==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "3bfe4106-c2dc-38bb-9f4d-23b1137b1c42", + "persistent" : true, + "scenarioName" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25", + "requiredScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-17", + "newScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-18", + "insertionIndex" : 35 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-16e6f520a143.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-16e6f520a143.json new file mode 100644 index 00000000..5abd2800 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-16e6f520a143.json @@ -0,0 +1,34 @@ +{ + "id" : "d693fc69-4b83-3b1e-bffb-94cbb274c859", + "name" : "v1_project_f1e858a4-58e3-408f-983f-016760d7fa25", + "request" : { + "url" : "/v1/project/f1e858a4-58e3-408f-983f-016760d7fa25", + "method" : "GET" + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-16e6f520a143.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:25 GMT", + "Via" : "1.1 5af99d6f2fc1c569c253259aec683ee8.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"15b-B/X+Uhf+FLkzqf65d24KDLzFxgc\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "cIiosRk2uM0T093qh28VWb0PeuW8h4ua7A0KimPZw80rHPm7xgbVew==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "d693fc69-4b83-3b1e-bffb-94cbb274c859", + "persistent" : true, + "scenarioName" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25", + "requiredScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-16", + "newScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-17", + "insertionIndex" : 39 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-1b1a6e4877ae.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-1b1a6e4877ae.json new file mode 100644 index 00000000..bed79d3e --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-1b1a6e4877ae.json @@ -0,0 +1,34 @@ +{ + "id" : "1a7d5d4d-7fc4-3681-896b-cc1c80980a92", + "name" : "v1_project_f1e858a4-58e3-408f-983f-016760d7fa25", + "request" : { + "url" : "/v1/project/f1e858a4-58e3-408f-983f-016760d7fa25", + "method" : "GET" + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-1b1a6e4877ae.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:28 GMT", + "Via" : "1.1 dea0b5e705fff834db8ae3992ea09cfa.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"15b-B/X+Uhf+FLkzqf65d24KDLzFxgc\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "ul3ZYppRxQ71Fsb2ufKvaVf7XG9i3aIM82Krct6_Btm9BMjL37xxWA==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "1a7d5d4d-7fc4-3681-896b-cc1c80980a92", + "persistent" : true, + "scenarioName" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25", + "requiredScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-18", + "newScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-19", + "insertionIndex" : 31 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-26c0cf72f342.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-26c0cf72f342.json index 7927c199..50be7758 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-26c0cf72f342.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-26c0cf72f342.json @@ -11,14 +11,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:14 GMT", - "Via" : "1.1 e8b22a8fa8511f8f972b4965a9af80b4.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:41:56 GMT", + "Via" : "1.1 7aad92255c39d277bce3f20afa1b059c.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"15b-B/X+Uhf+FLkzqf65d24KDLzFxgc\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "Pa0PMp83rZpuzXTylGXfSBcnyWlNzYAGVuOgwBXI-RZU-lz2_EEGAA==", + "X-Amz-Cf-Id" : "NBDy29fRLNVHS4ZlwauUCGtXwPgZwR7LXh-RLyI21xEiy5QUqZOffA==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -29,5 +29,6 @@ "persistent" : true, "scenarioName" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25", "requiredScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-14", - "insertionIndex" : 23 + "newScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-15", + "insertionIndex" : 146 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-2ef7b6e4a650.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-2ef7b6e4a650.json index 50eae3d6..bdf04328 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-2ef7b6e4a650.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-2ef7b6e4a650.json @@ -11,14 +11,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:59 GMT", - "Via" : "1.1 2501b465adde8e5aedc3f38e3dfcdc22.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:41:54 GMT", + "Via" : "1.1 9895fa1d75119fa16da9e015b58dbe5a.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"15b-B/X+Uhf+FLkzqf65d24KDLzFxgc\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "CmCGkVDacnJN1ARWjoVEsn5DIP_2IIEF7ct1omFrTImkjZEirlSOrA==", + "X-Amz-Cf-Id" : "tyrkIRRkA0qpK3mymXduYvaDchW75ZocOI4w1noydZ4uhg0sqKaVeQ==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -30,5 +30,5 @@ "scenarioName" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25", "requiredScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-11", "newScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-12", - "insertionIndex" : 36 + "insertionIndex" : 153 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-3015cd6e9a26.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-3015cd6e9a26.json index 8c2edf8d..6c1876fe 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-3015cd6e9a26.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-3015cd6e9a26.json @@ -11,14 +11,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:09 GMT", - "Via" : "1.1 7aad92255c39d277bce3f20afa1b059c.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:41:56 GMT", + "Via" : "1.1 28edb03169fa053a4a523d90d15ff6ae.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"15b-B/X+Uhf+FLkzqf65d24KDLzFxgc\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "MUiKE05oxr_1Hbd-YTK2HmQyAnJX_76oQA1u5wI3DRKVumrpwdVDtQ==", + "X-Amz-Cf-Id" : "kcxdJkIes3LOGbvYV8TRpAbIGDIt2WW8KyOjG2V-EjBA7fWrmRg4gw==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -30,5 +30,5 @@ "scenarioName" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25", "requiredScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-13", "newScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-14", - "insertionIndex" : 27 + "insertionIndex" : 148 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-45977fa84505.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-45977fa84505.json new file mode 100644 index 00000000..e144058a --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-45977fa84505.json @@ -0,0 +1,33 @@ +{ + "id" : "198e71bd-7f27-3497-9f20-bc4d9a15ccc2", + "name" : "v1_project_f1e858a4-58e3-408f-983f-016760d7fa25", + "request" : { + "url" : "/v1/project/f1e858a4-58e3-408f-983f-016760d7fa25", + "method" : "GET" + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-45977fa84505.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:37 GMT", + "Via" : "1.1 3062c1f9ccf5f043983bc180e222dd9c.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"15b-B/X+Uhf+FLkzqf65d24KDLzFxgc\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "i7FWKWX937aaePz1F2dIRpH74HTc9rNwfLhSv02xn8dTmHg68IjpXA==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "198e71bd-7f27-3497-9f20-bc4d9a15ccc2", + "persistent" : true, + "scenarioName" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25", + "requiredScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-20", + "insertionIndex" : 22 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-5136083024c7.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-5136083024c7.json index 44c225d2..f74d11c0 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-5136083024c7.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-5136083024c7.json @@ -11,14 +11,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:03 GMT", - "Via" : "1.1 a3134c0c893f03d1e9a9c657d09af7cc.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:41:45 GMT", + "Via" : "1.1 7aad92255c39d277bce3f20afa1b059c.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"15b-B/X+Uhf+FLkzqf65d24KDLzFxgc\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "h1t-dPl4Uh7wT9aEom0TBEP12d7vsLJqDlj_CTdD30l3ePMce_6JLQ==", + "X-Amz-Cf-Id" : "Gj8LElcEdqD7plH9Q3hYdpPRHd1eZ0n6druEMs0ggGRWohhC_qmFaA==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -30,5 +30,5 @@ "scenarioName" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25", "requiredScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-8", "newScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-9", - "insertionIndex" : 111 + "insertionIndex" : 160 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-5d8c61c2cd35.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-5d8c61c2cd35.json index 990de17e..f8a51b0e 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-5d8c61c2cd35.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-5d8c61c2cd35.json @@ -11,14 +11,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:34:54 GMT", - "Via" : "1.1 b3a8bdee20374465a3f2aa64f19ec30e.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:41:40 GMT", + "Via" : "1.1 a6be96637dfcb93ee417719bb21d57d0.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"15b-B/X+Uhf+FLkzqf65d24KDLzFxgc\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "Mf1BXOSPT-LimhNgKl8XqE3imIQ-Obs0S_GUiXABzvACLaqApeIA5g==", + "X-Amz-Cf-Id" : "wY0h11uRZ0Rn3Zg5amAGcqCq3VliK5aAEpjGmTILwVZX-G0AIkUKzg==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -30,5 +30,5 @@ "scenarioName" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25", "requiredScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-4", "newScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-5", - "insertionIndex" : 120 + "insertionIndex" : 172 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-7427c7bb0f21.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-7427c7bb0f21.json index 6b1543a3..0d3cd770 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-7427c7bb0f21.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-7427c7bb0f21.json @@ -11,14 +11,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:34:56 GMT", - "Via" : "1.1 0758a857b0f9c36d8cfe897182f568ce.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:41:41 GMT", + "Via" : "1.1 1271197444822e7c59413a59ecbcecd6.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"15b-B/X+Uhf+FLkzqf65d24KDLzFxgc\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "VWVFwRyT6yNMFGulwUSU5Czj_KmEF1Y1B36qIMwsnSrvTE-rXE994Q==", + "X-Amz-Cf-Id" : "C26giQ5Jt4hWOf_8n2WcvlrEjg7GdH5mPwmfqu_dr2l8FmjiKSmRyg==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -30,5 +30,5 @@ "scenarioName" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25", "requiredScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-5", "newScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-6", - "insertionIndex" : 118 + "insertionIndex" : 170 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-7709955213d8.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-7709955213d8.json index 4ff0cd43..018bc6f3 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-7709955213d8.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-7709955213d8.json @@ -11,14 +11,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:05 GMT", - "Via" : "1.1 a3134c0c893f03d1e9a9c657d09af7cc.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:41:45 GMT", + "Via" : "1.1 e088ff8bff69861ed7fd37fbb518f0c2.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"15b-B/X+Uhf+FLkzqf65d24KDLzFxgc\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "t6GZkJsNkKzULyITbm_WmTbXX7QCmvHCVRaWYGX5Uo4mOvMGv0u7yg==", + "X-Amz-Cf-Id" : "vh5CDSgkVJ6lc-G1PuD4aGC3IO0FD8IKa6xVw-KbOr_Zn9a8mYGGkQ==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -30,5 +30,5 @@ "scenarioName" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25", "requiredScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-9", "newScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-10", - "insertionIndex" : 109 + "insertionIndex" : 159 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-83dc5dc70c5c.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-83dc5dc70c5c.json index a3679558..b1627e58 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-83dc5dc70c5c.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-83dc5dc70c5c.json @@ -11,14 +11,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:34:25 GMT", - "Via" : "1.1 3062c1f9ccf5f043983bc180e222dd9c.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:41:37 GMT", + "Via" : "1.1 5af99d6f2fc1c569c253259aec683ee8.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"15b-B/X+Uhf+FLkzqf65d24KDLzFxgc\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "yV2dIF7-DWldpv42r4lpSRfA_VBPuA0tBSR4cyAEp5lVILWNLS_1cQ==", + "X-Amz-Cf-Id" : "yWvZJvg36qR0B8LVxSn0NvrWkTEJ5SGngtsCm-aGG8-psWvhNaziYQ==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -30,5 +30,5 @@ "scenarioName" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25", "requiredScenarioState" : "Started", "newScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-2", - "insertionIndex" : 128 + "insertionIndex" : 178 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-847f13a84225.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-847f13a84225.json index d5e8118a..d002ba68 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-847f13a84225.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-847f13a84225.json @@ -11,14 +11,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:34:29 GMT", - "Via" : "1.1 3062c1f9ccf5f043983bc180e222dd9c.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:41:37 GMT", + "Via" : "1.1 28edb03169fa053a4a523d90d15ff6ae.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"15b-B/X+Uhf+FLkzqf65d24KDLzFxgc\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "soX9UfC9M9SYgic9bTAsB7hFMNC_taFiEO6aak6fLGbnUIXyle4b7w==", + "X-Amz-Cf-Id" : "W5wwv02Z36FiD0aJQgwokNslzFrpyi8_7Dl64YcsW_GxQeNNGrkziA==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -30,5 +30,5 @@ "scenarioName" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25", "requiredScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-2", "newScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-3", - "insertionIndex" : 125 + "insertionIndex" : 176 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-86058ad45be6.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-86058ad45be6.json index bcad50c6..5a8310b3 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-86058ad45be6.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-86058ad45be6.json @@ -11,14 +11,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:01 GMT", - "Via" : "1.1 9895fa1d75119fa16da9e015b58dbe5a.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:41:54 GMT", + "Via" : "1.1 b2b215a89cc2734b2940e2eb59ea4bd0.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"15b-B/X+Uhf+FLkzqf65d24KDLzFxgc\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "BAum5Tah74eaR04Jt1TOAXksvtgZXlJmcslldigMjwP-BOdmBc6Zuw==", + "X-Amz-Cf-Id" : "kBNpzkLfoQ4usPAbx6f_-GOXi1M4vcpdL9p4MTyQAxuIgex100f1xQ==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -30,5 +30,5 @@ "scenarioName" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25", "requiredScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-12", "newScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-13", - "insertionIndex" : 32 + "insertionIndex" : 151 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-9cbc8bbc476d.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-9cbc8bbc476d.json new file mode 100644 index 00000000..a96dbb2a --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-9cbc8bbc476d.json @@ -0,0 +1,34 @@ +{ + "id" : "dbe06d24-cd14-393d-9229-933c3606ee3e", + "name" : "v1_project_f1e858a4-58e3-408f-983f-016760d7fa25", + "request" : { + "url" : "/v1/project/f1e858a4-58e3-408f-983f-016760d7fa25", + "method" : "GET" + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-9cbc8bbc476d.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:41:57 GMT", + "Via" : "1.1 63560dd3f856b0f7bfe68a0cad46924a.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"15b-B/X+Uhf+FLkzqf65d24KDLzFxgc\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "eiMYEI6bc18P9iPEJQqq7iuf2gJhAm0SEKphXgxo-U0U8TPruFFGKA==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "dbe06d24-cd14-393d-9229-933c3606ee3e", + "persistent" : true, + "scenarioName" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25", + "requiredScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-15", + "newScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-16", + "insertionIndex" : 144 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-a9e1fc8cee34.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-a9e1fc8cee34.json new file mode 100644 index 00000000..44ba1527 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-a9e1fc8cee34.json @@ -0,0 +1,34 @@ +{ + "id" : "a9b547cb-7505-31a0-9506-b4567b232854", + "name" : "v1_project_f1e858a4-58e3-408f-983f-016760d7fa25", + "request" : { + "url" : "/v1/project/f1e858a4-58e3-408f-983f-016760d7fa25", + "method" : "GET" + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-a9e1fc8cee34.json", + "headers" : { + "X-Cache" : "Miss from cloudfront", + "X-Amz-Cf-Pop" : "SEA900-P9", + "Date" : "Sat, 07 Nov 2026 05:42:33 GMT", + "Via" : "1.1 e088ff8bff69861ed7fd37fbb518f0c2.cloudfront.net (CloudFront)", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", + "ETag" : "W/\"15b-B/X+Uhf+FLkzqf65d24KDLzFxgc\"", + "Access-Control-Allow-Credentials" : "true", + "X-Amz-Cf-Id" : "5yszckSIXyiylVutd2hF8CsdHi-fnJ4yaPAjrPpqn7n30ZXO-roiSQ==", + "Vary" : "Origin, Accept-Encoding", + "Expires" : "0", + "Surrogate-Control" : "no-store", + "Content-Type" : "application/json; charset=utf-8" + } + }, + "uuid" : "a9b547cb-7505-31a0-9506-b4567b232854", + "persistent" : true, + "scenarioName" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25", + "requiredScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-19", + "newScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-20", + "insertionIndex" : 26 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-b28e5a567732.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-b28e5a567732.json index 83df30a2..e12e482f 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-b28e5a567732.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-b28e5a567732.json @@ -11,14 +11,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:34:30 GMT", + "Date" : "Sat, 07 Nov 2026 05:41:40 GMT", "Via" : "1.1 04efc78121acf5d40974e6a71bebce20.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"15b-B/X+Uhf+FLkzqf65d24KDLzFxgc\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "7PHOckgnxeYXvUfnykeiXJYKb7AyLjm4Qai1EFdgCUcsX52XJkT0yQ==", + "X-Amz-Cf-Id" : "6TlLMjVKhdg9h3nTaJ2-DdhGuM1dwrZej6iodjYS7_IqKvBpKYuTtQ==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -30,5 +30,5 @@ "scenarioName" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25", "requiredScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-3", "newScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-4", - "insertionIndex" : 124 + "insertionIndex" : 174 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-bd24c1eceda2.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-bd24c1eceda2.json index ba485426..82f3f4ae 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-bd24c1eceda2.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-bd24c1eceda2.json @@ -11,14 +11,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:34:57 GMT", + "Date" : "Sat, 07 Nov 2026 05:41:41 GMT", "Via" : "1.1 0ddbf3138c96d4b7c9f8047edb515414.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"15b-B/X+Uhf+FLkzqf65d24KDLzFxgc\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "nv0kCl_s71U0_WDEuI-11npLubfHD5wG_b4HnILam08NM5Gmef84wA==", + "X-Amz-Cf-Id" : "xfyfgTPYiFAqjSJQc8gQs9Fvg74R5HnCAWGwArV8NZVxLH3T9mvuhA==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -30,5 +30,5 @@ "scenarioName" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25", "requiredScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-6", "newScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-7", - "insertionIndex" : 116 + "insertionIndex" : 168 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-c083ad437dc3.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-c083ad437dc3.json index f6cfc4fe..84175676 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-c083ad437dc3.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-c083ad437dc3.json @@ -11,14 +11,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:01 GMT", - "Via" : "1.1 b2b215a89cc2734b2940e2eb59ea4bd0.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:41:44 GMT", + "Via" : "1.1 3062c1f9ccf5f043983bc180e222dd9c.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"15b-B/X+Uhf+FLkzqf65d24KDLzFxgc\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "_JjpRVTZShxwx7nUaqH3bnghpHs32eyhhVtPKABYd2a21OPGgWmhTA==", + "X-Amz-Cf-Id" : "NYVsJT9LfXdc_VaGEhty4sST_LzclnmBq1DhcyBvHw_1Dxz7qSBJ7g==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -30,5 +30,5 @@ "scenarioName" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25", "requiredScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-7", "newScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-8", - "insertionIndex" : 113 + "insertionIndex" : 163 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-ccdf186e4303.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-ccdf186e4303.json index 4a5a9f79..71263b66 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-ccdf186e4303.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_project_f1e858a4-58e3-408f-983f-016760d7fa25-ccdf186e4303.json @@ -11,14 +11,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:35:56 GMT", - "Via" : "1.1 dea0b5e705fff834db8ae3992ea09cfa.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:41:54 GMT", + "Via" : "1.1 3417fc639ca50b55b2a1d93807a20c2c.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"15b-B/X+Uhf+FLkzqf65d24KDLzFxgc\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "VWwBlaitYcgZZGwEjJJq6TPpWBDmlCdKVwBcFdQRkw0B6yklpuMJ0A==", + "X-Amz-Cf-Id" : "kgLAq3EYHSoKgPc7EK1TEOEL_OSpQBpE7kXFb97NKsKgV919PRaa0Q==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -30,5 +30,5 @@ "scenarioName" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25", "requiredScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-10", "newScenarioState" : "scenario-7-v1-project-f1e858a4-58e3-408f-983f-016760d7fa25-11", - "insertionIndex" : 40 + "insertionIndex" : 155 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_prompt-4af7ddd84717.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_prompt-1e8498396ba7.json similarity index 65% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_prompt-4af7ddd84717.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_prompt-1e8498396ba7.json index e4f0840a..44de6177 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_prompt-4af7ddd84717.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_prompt-1e8498396ba7.json @@ -1,5 +1,5 @@ { - "id" : "30f19544-0f77-3e13-aa40-081df65869f7", + "id" : "d4d31dcd-58fe-3bf6-8b76-cd3888933b06", "name" : "v1_prompt", "request" : { "urlPath" : "/v1/prompt", @@ -19,27 +19,27 @@ }, "response" : { "status" : 200, - "bodyFileName" : "v1_prompt-4af7ddd84717.json", + "bodyFileName" : "v1_prompt-1e8498396ba7.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:31 GMT", - "Via" : "1.1 63560dd3f856b0f7bfe68a0cad46924a.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:44 GMT", + "Via" : "1.1 e088ff8bff69861ed7fd37fbb518f0c2.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"26c-riOyN5RbmfHlEEsjRs+9qiI2OCs\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "20iWo_GH32cpKbyxhAs9aYJYaN_Lq8cl9fGt_epLYEk_TRg6HrpuUA==", + "X-Amz-Cf-Id" : "IEdPdBRQgM3AWPLtiCjLbtq4mqCiwyQ9v4a9Xfic21Ve31CyEz1kag==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "30f19544-0f77-3e13-aa40-081df65869f7", + "uuid" : "d4d31dcd-58fe-3bf6-8b76-cd3888933b06", "persistent" : true, - "scenarioName" : "scenario-2-v1-prompt", - "requiredScenarioState" : "scenario-2-v1-prompt-3", - "insertionIndex" : 2 + "scenarioName" : "scenario-1-v1-prompt", + "requiredScenarioState" : "scenario-1-v1-prompt-3", + "insertionIndex" : 1 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_prompt-3f7b18fae7e4.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_prompt-3f7b18fae7e4.json index c9318964..09e058f4 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_prompt-3f7b18fae7e4.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_prompt-3f7b18fae7e4.json @@ -28,14 +28,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:30 GMT", - "Via" : "1.1 88f286e23c15fc2f62a741db8207a67a.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:43 GMT", + "Via" : "1.1 b3a8bdee20374465a3f2aa64f19ec30e.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"203-8sWM17GS0s70h3Wz1I0RXFC4Yps\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "qNLxgIUGlX7JpkQfJMayOah3HF2e-1uTV4XPIFcd_9if2R2iypu0hA==", + "X-Amz-Cf-Id" : "YQKRPTqu47qWArmKIxw96jwkemb7ZtmLtVpLj5WInGaAexW9ZNH83g==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -44,5 +44,5 @@ }, "uuid" : "35c1c68b-d640-3553-ac1d-0e950665b191", "persistent" : true, - "insertionIndex" : 5 + "insertionIndex" : 4 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_prompt-f20e712b9099.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_prompt-a22816c243de.json similarity index 66% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_prompt-f20e712b9099.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_prompt-a22816c243de.json index 76ff2d50..500516c7 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_prompt-f20e712b9099.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_prompt-a22816c243de.json @@ -1,5 +1,5 @@ { - "id" : "5934a3d4-59fd-3188-bb0c-1e52faa47c4e", + "id" : "56ae31f4-a74c-3624-8761-2c591adab86b", "name" : "v1_prompt", "request" : { "urlPath" : "/v1/prompt", @@ -19,28 +19,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "v1_prompt-f20e712b9099.json", + "bodyFileName" : "v1_prompt-a22816c243de.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:31 GMT", - "Via" : "1.1 7f26c41dda80bd7d50ccec2be87c9c3e.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:43 GMT", + "Via" : "1.1 04efc78121acf5d40974e6a71bebce20.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"26c-riOyN5RbmfHlEEsjRs+9qiI2OCs\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "-TfO6agVRySzTHlDziWK6FArVbvdHAlrtLSkm1yEhVO0D1oPEqJDig==", + "X-Amz-Cf-Id" : "j8leHYOLi_IBsgCwis2IQYDFIpGws25dZCtoWWJmTatcsju5zgEPjw==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "5934a3d4-59fd-3188-bb0c-1e52faa47c4e", + "uuid" : "56ae31f4-a74c-3624-8761-2c591adab86b", "persistent" : true, - "scenarioName" : "scenario-2-v1-prompt", + "scenarioName" : "scenario-1-v1-prompt", "requiredScenarioState" : "Started", - "newScenarioState" : "scenario-2-v1-prompt-2", - "insertionIndex" : 4 + "newScenarioState" : "scenario-1-v1-prompt-2", + "insertionIndex" : 3 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_prompt-6abea74af1d6.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_prompt-dab6750ce592.json similarity index 63% rename from test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_prompt-6abea74af1d6.json rename to test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_prompt-dab6750ce592.json index 7ac59299..8c6d064c 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_prompt-6abea74af1d6.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_prompt-dab6750ce592.json @@ -1,5 +1,5 @@ { - "id" : "8ac7f453-6162-3fe8-956f-d9a8df569396", + "id" : "d3e5598a-28ba-3d50-b287-7a796e385bed", "name" : "v1_prompt", "request" : { "urlPath" : "/v1/prompt", @@ -19,28 +19,28 @@ }, "response" : { "status" : 200, - "bodyFileName" : "v1_prompt-6abea74af1d6.json", + "bodyFileName" : "v1_prompt-dab6750ce592.json", "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:31 GMT", - "Via" : "1.1 55a62c25b77c24cde4014f567fd1c550.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:43 GMT", + "Via" : "1.1 b54238be18861f9bb1272bf1cb10e040.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"26c-riOyN5RbmfHlEEsjRs+9qiI2OCs\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "14TY-gRdB5BxcCAskZyjmOUpx22l-0EiQCali0cl0uFY_xANQPpsrg==", + "X-Amz-Cf-Id" : "k7OnrrjpVwMpNQ6cD8_CMg6wf5f1KDbp7hltNf6qS1my1yqT0PYuAw==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", "Content-Type" : "application/json; charset=utf-8" } }, - "uuid" : "8ac7f453-6162-3fe8-956f-d9a8df569396", + "uuid" : "d3e5598a-28ba-3d50-b287-7a796e385bed", "persistent" : true, - "scenarioName" : "scenario-2-v1-prompt", - "requiredScenarioState" : "scenario-2-v1-prompt-2", - "newScenarioState" : "scenario-2-v1-prompt-3", - "insertionIndex" : 3 + "scenarioName" : "scenario-1-v1-prompt", + "requiredScenarioState" : "scenario-1-v1-prompt-2", + "newScenarioState" : "scenario-1-v1-prompt-3", + "insertionIndex" : 2 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_prompt-dc86aa4c0727.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_prompt-dc86aa4c0727.json index c42e8e6a..1f0017ad 100644 --- a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_prompt-dc86aa4c0727.json +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/v1_prompt-dc86aa4c0727.json @@ -28,14 +28,14 @@ "headers" : { "X-Cache" : "Miss from cloudfront", "X-Amz-Cf-Pop" : "SEA900-P9", - "Date" : "Mon, 31 Aug 2026 17:36:30 GMT", - "Via" : "1.1 087b179013ed486bf34db435cff85f08.cloudfront.net (CloudFront)", + "Date" : "Sat, 07 Nov 2026 05:42:43 GMT", + "Via" : "1.1 88f286e23c15fc2f62a741db8207a67a.cloudfront.net (CloudFront)", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains", - "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", + "Access-Control-Expose-Headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-count,x-bt-internal-trace-id,x-bt-error-origin,x-bt-used-endpoint,x-bt-overflow-url", "Cache-Control" : "no-store, no-cache, must-revalidate, proxy-revalidate", "ETag" : "W/\"26c-riOyN5RbmfHlEEsjRs+9qiI2OCs\"", "Access-Control-Allow-Credentials" : "true", - "X-Amz-Cf-Id" : "16i3tUi5hhBhGVXNVX80sQAe7TmAIw3igWMaLk21YzU6Q4UZXTOPtA==", + "X-Amz-Cf-Id" : "ni1-Rz8l9Qmv8ALPXcxEYyyiF_L0T3ZHntRQFykpuKEGahRm9Qjoiw==", "Vary" : "Origin, Accept-Encoding", "Expires" : "0", "Surrogate-Control" : "no-store", @@ -44,5 +44,5 @@ }, "uuid" : "202bbe5d-64f2-3038-bf86-3e2e3bc52fbf", "persistent" : true, - "insertionIndex" : 6 + "insertionIndex" : 5 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/google/__files/v1beta_models_gemini-2.5-flashgeneratecontent-db1d9e50a690.json b/test-harness/src/testFixtures/resources/cassettes/google/__files/v1beta_models_gemini-2.5-flashgeneratecontent-db1d9e50a690.json deleted file mode 100644 index 2c57f90b..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/google/__files/v1beta_models_gemini-2.5-flashgeneratecontent-db1d9e50a690.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "candidates": [ - { - "content": { - "parts": [ - { - "text": "**My Thought Process: Explaining the Even Sum of Odd Integers**\n\nAlright, let's break this down. The task is to concisely explain *why* the sum of two odd integers is even. The key is to be *concise*, which means no jargon or convoluted explanations.\n\nFirst, I need to remind myself of the fundamental definitions. An odd integer is one that leaves a remainder of 1 when divided by 2. This is key, and can be represented mathematically as 2k+1, which will be useful later if required. An even integer is divisible by 2, or represented as 2m.\n\nNow, I'll set up the problem. Let's call the two odd integers O1 and O2. We want to find O1 + O2. Using the definition, O1 = 2k + 1 and O2 = 2j + 1. The integers k and j can be different, it is important to remember that.\n\nAdding them, O1 + O2 = (2k + 1) + (2j + 1). Now I simplify this. That becomes 2k + 2j + 2. I can factor a 2 out of this, which gives me 2(k + j + 1).\n\nAt this point, you could replace (k+j+1) with 'm', but I am trying to keep it simple, so instead, I'll focus on what that factored '2' means. That the result is a multiple of 2, and therefore even.\n\nOkay, here's my first attempt at the concise explanation. \"An odd integer is `2k+1`. The sum of two odd integers `(2k+1) + (2j+1) = 2k+2j+2 = 2(k+j+1)`, which is of the form `2m`, hence even.\" Seems reasonable, but maybe a bit too mathematical for my audience.\n\nSo, let's try a remainder approach. \"An odd integer has a remainder of 1 when divided by 2. When you add two such numbers, their remainders (1 + 1 = 2) combine to form a full '2', which is divisible by 2. So the total sum is divisible by 2, making it even.\" Still not quite perfect; it might be slightly verbose.\n\nOkay, let's tighten it up. Focusing on the 'plus one' nature of an odd integer might be the best route to pure clarity. \"Each odd integer can be thought of as 'an even number plus one'. When you add two odd integers, you're essentially adding '(even + 1) + (even + 1)'. This simplifies to 'even + even + 1 + 1', which is 'even + 2'. Since 'even + 2' is always an even number, the sum is even.\" Hmm, that feels pretty good.\n\nLet's go back to the remainder approach, that feels like it may be the most direct route... \"An odd integer leaves a remainder of 1 when divided by 2. When you add two odd integers, their remainders (1 + 1) sum to 2. Since 2 is an even number, and the sum of the 'even parts' is also even, the total sum is even.\" Still good, but let's go with the direct \"plus one\" approach.\n\n\"An odd integer is an even number plus one. So, (even + 1) + (even + 1) = even + even + 1 + 1 = even + 2. Since adding 2 to any even number results in another even number, the sum is even.\" This feels the most concise, direct, and intuitive, while avoiding any unnecessary technicalities, and that is what I was aiming for.\n", - "thought": true - }, - { - "text": "Each odd integer can be expressed as \"an even number plus one.\"\n\nSo, when you add two odd integers:\n(Even number + 1) + (Even number + 1)\n= Even number + Even number + 1 + 1\n= Even number + 2\n\nSince adding 2 to any even number always results in another even number, the sum of two odd integers is even." - } - ], - "role": "model" - }, - "finishReason": "STOP", - "index": 0 - } - ], - "usageMetadata": { - "promptTokenCount": 15, - "candidatesTokenCount": 85, - "totalTokenCount": 1240, - "promptTokensDetails": [ - { - "modality": "TEXT", - "tokenCount": 15 - } - ], - "thoughtsTokenCount": 1140, - "serviceTier": "standard" - }, - "modelVersion": "gemini-2.5-flash", - "responseId": "sGLRar-ZC_2VmtkPmvrRoQQ" -} diff --git a/test-harness/src/testFixtures/resources/cassettes/google/__files/v1beta_models_gemini-3.1-flash-litegeneratecontent-a5e23c6b652d.json b/test-harness/src/testFixtures/resources/cassettes/google/__files/v1beta_models_gemini-3.1-flash-litegeneratecontent-a5e23c6b652d.json index 17a7129a..1e41e0be 100644 --- a/test-harness/src/testFixtures/resources/cassettes/google/__files/v1beta_models_gemini-3.1-flash-litegeneratecontent-a5e23c6b652d.json +++ b/test-harness/src/testFixtures/resources/cassettes/google/__files/v1beta_models_gemini-3.1-flash-litegeneratecontent-a5e23c6b652d.json @@ -5,7 +5,7 @@ "parts": [ { "text": "The capital of Germany is **Berlin**.", - "thoughtSignature": "EnEKbwERTTIPUi17wdVqJRLVWpXYTkQIwnj9hJ2BKAkBd64ZSvk82+sYx/gkI+cYM5FmapgO1DHm2bKErbhOci9mGRcgNZxqHJhE2QXwTosFlDTUFGunoxX4R4v0AxAYYeT1TsJO10BFuQnzdeuC+pA9xQ==" + "thoughtSignature": "EnMKcQFpFH0TGH7cfi5FBGXOQSJlXNj4qGiOmTYwoBxGQmlinktF1cGJtIU/4S1sJs/yTNFUAZWeXbmg8a9yUSir0BTgaDJAs6WOy3QlM3U9CxRoX47hY7c27W/wO1xxiHLGXe5ySHVhf0QJ9VdAqWbdoypg" } ], "role": "model" @@ -27,5 +27,5 @@ "serviceTier": "standard" }, "modelVersion": "gemini-3.1-flash-lite", - "responseId": "j7yVauph1qOq2w-Q96TZCw" + "responseId": "Jbvuas-iBf-hz7IP8NmS8Ac" } diff --git a/test-harness/src/testFixtures/resources/cassettes/google/__files/v1beta_models_gemini-3.1-flash-litegeneratecontent-eba525a323a6.json b/test-harness/src/testFixtures/resources/cassettes/google/__files/v1beta_models_gemini-3.1-flash-litegeneratecontent-eba525a323a6.json index e9afa414..2f3658a4 100644 --- a/test-harness/src/testFixtures/resources/cassettes/google/__files/v1beta_models_gemini-3.1-flash-litegeneratecontent-eba525a323a6.json +++ b/test-harness/src/testFixtures/resources/cassettes/google/__files/v1beta_models_gemini-3.1-flash-litegeneratecontent-eba525a323a6.json @@ -5,7 +5,7 @@ "parts": [ { "text": "The capital of France is Paris.", - "thoughtSignature": "EnEKbwERTTIPuatNOBvUnK65p/NgbUg6+8SMdWhfzL4Mx8vsmGKgbmo0anFD0cpUJ9QC0WbCQ3qWsdmgG+Ho9TungmFixBzKqXxO8TDQbedAqF77q4WXSgtPKGwhsFZF2qnGjyGuy9fiQgtMpPfppL+eTQ==" + "thoughtSignature": "EnMKcQFpFH0TOZudPNHKRt1Cc5wXRkEtQuJPOE/5oDH02XVh4fs2xu1a1mEJ2F8Z7EAjlHDWl+0TIyjTnHZD473126kztfUu4EvINksxMhYG1USOGAS6SEIuTA52M6DcesmrYDokpMj9jy7NpJBAuvyQm4sz" } ], "role": "model" @@ -27,5 +27,5 @@ "serviceTier": "standard" }, "modelVersion": "gemini-3.1-flash-lite", - "responseId": "kLyVarTTH-rSjMcPxdmi4AY" + "responseId": "J7vuasbUDJPQjrEPpvjtyAs" } diff --git a/test-harness/src/testFixtures/resources/cassettes/google/__files/v1beta_models_gemini-3.1-flash-lite-previewgeneratecontent-a2c43311ffea.json b/test-harness/src/testFixtures/resources/cassettes/google/__files/v1beta_models_gemini-3.5-flash-litegeneratecontent-d098aa6a94c3.json similarity index 64% rename from test-harness/src/testFixtures/resources/cassettes/google/__files/v1beta_models_gemini-3.1-flash-lite-previewgeneratecontent-a2c43311ffea.json rename to test-harness/src/testFixtures/resources/cassettes/google/__files/v1beta_models_gemini-3.5-flash-litegeneratecontent-d098aa6a94c3.json index a3ccf1ec..01726f69 100644 --- a/test-harness/src/testFixtures/resources/cassettes/google/__files/v1beta_models_gemini-3.1-flash-lite-previewgeneratecontent-a2c43311ffea.json +++ b/test-harness/src/testFixtures/resources/cassettes/google/__files/v1beta_models_gemini-3.5-flash-litegeneratecontent-d098aa6a94c3.json @@ -5,7 +5,7 @@ "parts": [ { "text": "The capital of France is Paris.", - "thoughtSignature": "EnEKbwERTTIPtCPe6fTDceE3sr0sXjLG/8pJPcZ1qEP7zA5tgnYmqDa1isH+WOJqxAvblSlT57u7TfdBOP4h9ttKI8wf3QNwdNG+2NCRVQsIjTF3w+XYsomhBMBYdAeb/+Hp/yGdF31tnvOVvvxPW27F9g==" + "thoughtSignature": "EmAKXgFpFH0TaTEl7CfDVbDXT0ykEneUMkPb7iDAhIwuOHKOewt7I6E44jgbKbMMyegzTJ6NmdQUyAR1O/BOOWkfJ8Ud7Vkx1MsetzQfiGJ4tsRcdPQ98WbT2MpkNceIfN4=" } ], "role": "model" @@ -26,6 +26,6 @@ ], "serviceTier": "standard" }, - "modelVersion": "gemini-3.1-flash-lite", - "responseId": "vruVapHcOLbqz7IPz6Sw2A8" + "modelVersion": "gemini-3.5-flash-lite", + "responseId": "a7ruasjPKY2tmtkPta298AY" } diff --git a/test-harness/src/testFixtures/resources/cassettes/google/__files/v1beta_models_gemini-3.8-flashgeneratecontent-40b204ce286c.json b/test-harness/src/testFixtures/resources/cassettes/google/__files/v1beta_models_gemini-3.8-flashgeneratecontent-40b204ce286c.json new file mode 100644 index 00000000..20fefce4 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/google/__files/v1beta_models_gemini-3.8-flashgeneratecontent-40b204ce286c.json @@ -0,0 +1,36 @@ +{ + "candidates": [ + { + "content": { + "parts": [ + { + "text": "**My Analysis of Why the Sum of Two Odd Integers is Even**\n\nAlright, let's break this down. The request is straightforward: explain, concisely, why the sum of two odd integers is even. My mind immediately goes to the mathematical definition of an odd integer. I need to keep this very targeted.\n\nFirst, I define an odd integer generally: it can be expressed as $2k + 1$, where $k$ is an integer. Now, to the specific problem. Let's represent the two odd integers as $a = 2m + 1$ and $b = 2n + 1$, where $m$ and $n$ are also integers. This is the foundation.\n\nNext step: I'll perform the summation. I can clearly see that $a + b = (2m + 1) + (2n + 1)$. Expanding that out, I get $2m + 2n + 2$, which I can then factor as $2(m + n + 1)$. This form immediately tells me the answer.\n\nSince $m, n \\in \\mathbb{Z}$, the expression $m + n + 1$ is also an integer. Thus, the entire sum is an integer multiplied by 2. That's it! By definition, an integer that is a multiple of two is an even integer. I know this is solid.\n\nNow, how to express this concisely? I could state the essential points sequentially and use succinct language. Something along the lines of \"Any odd integer can be written as $2k + 1$, where $k$ is an integer. Adding two odd integers, $(2m + 1)$ and $(2n + 1)$, gives: $(2m + 1) + (2n + 1) = 2m + 2n + 2 = 2(m + n + 1)$. Because the result is a multiple of 2, the sum is always even.\" I don't see any need to edit this. It's direct, precise, and gets the point across. The solution is complete.\n\n\n", + "thought": true + }, + { + "text": "Any odd integer can be written as $2k + 1$, where $k$ is an integer. \n\nAdding two odd integers gives:\n$$(2m + 1) + (2n + 1) = 2m + 2n + 2 = 2(m + n + 1)$$\n\nBecause the sum can be factored by $2$, the result is a multiple of $2$, which means it is always even.", + "thoughtSignature": "EscICsQIAWkUfRMVz5eKAdUp6N2+wvqSV9igG6q+a0CND4ziJxsu5KdoV90ImqtBDdJYDQCzTQ0R8wjakx7ydS+miMyArY5IGJ8HC+QehWzb9deIOabOZ4NkTjYsaD7kQO3rRe8ci3pn1wgpy6vOfthHIJHRxzUzzCPu713mudzIucjxUeS2YsuyI1b5C0VC8SiaSFSVST1SmHkI9ZKqaVK5RzrpnvWWQmyMDiH6qp3pcV8ZpDvGo9tkwnAueHclFfY6vrwegA51ede+lP2ygARkENcFgnurx7MEWI/fdKVf7Ywiy4Fx1wxk/F4vpBLMjVid2BjBrwIXdmI5gpO14woSaiuh3W6wAZuBoGhu525ucne3f/Gu8vtfnXi2kWClWW15Ngcuutu8BAtJpf6siWgyiLpA7c6+p7Qowrr05sPWPRHbTjhpqtSrYTCxEaYHy0fiw/HSmo+SmY1DTPaaUDQwJ3kWOSgBcn5aCy45pTi0TKNnvjWJEAOEmNjAlrIGibV1tfR4ms3akU0GdHmM0+FRjXdqZW7mWNKaWKfu4Ul0veNj0IVcJZufbSj9j2ziE9fHNmaGOXgdr/NHX1jK0D6XcQgyQMrL1ppFrt09brvpuRxQq+toAA0ANmeCmHUPCdRMcibG0J6ZxLv7A4iPlOKKaI6FWs+UNiF3KBnlfZP7Fibp4OT0UmO5idfH0J1V1FsHG8KcM8hEr9Mr7hJMxRwvncMbjeuKVWwKgzkSz//eKppjPCTqefsYBYjNOBgB+eM7eIUyYAmNKWJdzawmbdV+NjYOnxFRGIRdKDMSxS9LOON27GsWRD3SfdMoXz3Hc/Yypxp6SwNcpTP6zp2MbBvni6d9u3/yxeV/7+dvwXXUhTWtvvmoBevdiXrC0uMKEI2g+OD8UatN1z/VYVhMDE6nP5LmyDP/+3GLq/Nmh35SscvoIhpO6IKcobX6jEJDE6kwxhihNpsFBr3sG5FuX6aN/zDeOqkSR14kLwqw1rin4tvKEbm0hfKUCl3QPhxVZqptef2xG6t+DQy8fdojg9H0spaxOHj92ziRMbJf7v5BgqXXJe6nIZZowZKmYc43qVJeiQ6WrokBG78CvdnhVyJwQ5ohy1mQi4Y3U3kNdccKcesyJUgXkxUPhLXlIonJRt1MZJQFxYp8/NKDe2HHK3zzLR9+BUUvb2/XSVBNzYaySOmPETrzCQln4vAZPse44Ml1nYK4JUrgHB8AzKFX7/WrEbZXKi84arR7NBYMc3aDARwKV6FbZRL+o7DrgEdyqdQD9mI/56UcOL/2vJhSvKtIxhaNLcjD3gcdxrX/RvXYODn0JxQLso1kNdQjoLG8SdEhNV520YwDOEe3D1inx6w01C9zOvPj42j+b3zKbmg8ok+qp3WpDXqWIa+aOhdg8M/6ZnUObi2sHGYCBTMD4wWpK06OYR7NebFnLUrArPUUGMnhZtgD0P2T" + } + ], + "role": "model" + }, + "finishReason": "STOP", + "index": 0 + } + ], + "usageMetadata": { + "promptTokenCount": 15, + "candidatesTokenCount": 96, + "totalTokenCount": 479, + "promptTokensDetails": [ + { + "modality": "TEXT", + "tokenCount": 15 + } + ], + "thoughtsTokenCount": 368, + "serviceTier": "standard" + }, + "modelVersion": "gemini-3.8-flash", + "responseId": "bLruauLvGbqFz7IP64faoAw" +} diff --git a/test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_batches-bbfcc72ae577.json b/test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_batches-bbfcc72ae577.json index 67db503a..c8a7c8fc 100644 --- a/test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_batches-bbfcc72ae577.json +++ b/test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_batches-bbfcc72ae577.json @@ -25,10 +25,10 @@ "Alt-Svc" : "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000", "Server" : "scaffolding on HTTPServer2", "X-Content-Type-Options" : "nosniff", - "Server-Timing" : "gfet4t7; dur=101", + "Server-Timing" : "gfet4t7; dur=104", "Vary" : [ "Origin", "X-Origin", "Referer" ], "X-XSS-Protection" : "0", - "Date" : "Tue, 06 Oct 2026 21:10:07 GMT", + "Date" : "Sat, 07 Nov 2026 05:46:14 GMT", "Content-Type" : "application/json; charset=UTF-8" } }, diff --git a/test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_models_gemini-3.1-flash-litegeneratecontent-a5e23c6b652d.json b/test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_models_gemini-3.1-flash-litegeneratecontent-a5e23c6b652d.json index 1935dfae..01fb0364 100644 --- a/test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_models_gemini-3.1-flash-litegeneratecontent-a5e23c6b652d.json +++ b/test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_models_gemini-3.1-flash-litegeneratecontent-a5e23c6b652d.json @@ -23,15 +23,15 @@ "Alt-Svc" : "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000", "Server" : "scaffolding on HTTPServer2", "X-Content-Type-Options" : "nosniff", - "Server-Timing" : "gfet4t7; dur=712", + "Server-Timing" : "gfet4t7; dur=933", "Vary" : [ "Origin", "X-Origin", "Referer" ], "X-Gemini-Service-Tier" : "standard", "X-XSS-Protection" : "0", - "Date" : "Mon, 31 Aug 2026 17:40:31 GMT", + "Date" : "Sat, 07 Nov 2026 05:46:13 GMT", "Content-Type" : "application/json; charset=UTF-8" } }, "uuid" : "24d0a749-6587-3694-98fe-ca86ee76dc5f", "persistent" : true, - "insertionIndex" : 3 + "insertionIndex" : 5 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_models_gemini-3.1-flash-litegeneratecontent-eba525a323a6.json b/test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_models_gemini-3.1-flash-litegeneratecontent-eba525a323a6.json index 4294e48c..d6a10006 100644 --- a/test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_models_gemini-3.1-flash-litegeneratecontent-eba525a323a6.json +++ b/test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_models_gemini-3.1-flash-litegeneratecontent-eba525a323a6.json @@ -23,15 +23,15 @@ "Alt-Svc" : "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000", "Server" : "scaffolding on HTTPServer2", "X-Content-Type-Options" : "nosniff", - "Server-Timing" : "gfet4t7; dur=607", + "Server-Timing" : "gfet4t7; dur=1176", "Vary" : [ "Origin", "X-Origin", "Referer" ], "X-Gemini-Service-Tier" : "standard", "X-XSS-Protection" : "0", - "Date" : "Mon, 31 Aug 2026 17:40:33 GMT", + "Date" : "Sat, 07 Nov 2026 05:46:16 GMT", "Content-Type" : "application/json; charset=UTF-8" } }, "uuid" : "26fa216a-e963-3450-ae5f-60bc382f197e", "persistent" : true, - "insertionIndex" : 2 + "insertionIndex" : 3 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_models_gemini-3.1-flash-lite-previewgeneratecontent-a2c43311ffea.json b/test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_models_gemini-3.5-flash-litegeneratecontent-d098aa6a94c3.json similarity index 65% rename from test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_models_gemini-3.1-flash-lite-previewgeneratecontent-a2c43311ffea.json rename to test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_models_gemini-3.5-flash-litegeneratecontent-d098aa6a94c3.json index 478067e7..352d77ec 100644 --- a/test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_models_gemini-3.1-flash-lite-previewgeneratecontent-a2c43311ffea.json +++ b/test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_models_gemini-3.5-flash-litegeneratecontent-d098aa6a94c3.json @@ -1,8 +1,8 @@ { - "id" : "2064f40d-1811-3698-8af6-a3e42c06bdff", - "name" : "v1beta_models_gemini-3.1-flash-lite-previewgeneratecontent", + "id" : "585a2f26-45d4-31fb-ab0a-b24a159e85dd", + "name" : "v1beta_models_gemini-3.5-flash-litegeneratecontent", "request" : { - "url" : "/v1beta/models/gemini-3.1-flash-lite-preview:generateContent", + "url" : "/v1beta/models/gemini-3.5-flash-lite:generateContent", "method" : "POST", "headers" : { "Content-Type" : { @@ -17,21 +17,21 @@ }, "response" : { "status" : 200, - "bodyFileName" : "v1beta_models_gemini-3.1-flash-lite-previewgeneratecontent-a2c43311ffea.json", + "bodyFileName" : "v1beta_models_gemini-3.5-flash-litegeneratecontent-d098aa6a94c3.json", "headers" : { "X-Frame-Options" : "SAMEORIGIN", "Alt-Svc" : "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000", "Server" : "scaffolding on HTTPServer2", "X-Content-Type-Options" : "nosniff", - "Server-Timing" : "gfet4t7; dur=733", + "Server-Timing" : "gfet4t7; dur=624", "Vary" : [ "Origin", "X-Origin", "Referer" ], "X-Gemini-Service-Tier" : "standard", "X-XSS-Protection" : "0", - "Date" : "Mon, 31 Aug 2026 17:37:03 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:08 GMT", "Content-Type" : "application/json; charset=UTF-8" } }, - "uuid" : "2064f40d-1811-3698-8af6-a3e42c06bdff", + "uuid" : "585a2f26-45d4-31fb-ab0a-b24a159e85dd", "persistent" : true, - "insertionIndex" : 1 + "insertionIndex" : 2 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_models_gemini-2.5-flashgeneratecontent-db1d9e50a690.json b/test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_models_gemini-3.8-flashgeneratecontent-40b204ce286c.json similarity index 69% rename from test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_models_gemini-2.5-flashgeneratecontent-db1d9e50a690.json rename to test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_models_gemini-3.8-flashgeneratecontent-40b204ce286c.json index d6f29e88..605d5fde 100644 --- a/test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_models_gemini-2.5-flashgeneratecontent-db1d9e50a690.json +++ b/test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_models_gemini-3.8-flashgeneratecontent-40b204ce286c.json @@ -1,8 +1,8 @@ { - "id" : "b3f14c63-f340-3660-ac9d-090504568ca4", - "name" : "v1beta_models_gemini-2.5-flashgeneratecontent", + "id" : "b881e60f-cb2c-3515-98ad-2395b20eab46", + "name" : "v1beta_models_gemini-3.8-flashgeneratecontent", "request" : { - "url" : "/v1beta/models/gemini-2.5-flash:generateContent", + "url" : "/v1beta/models/gemini-3.8-flash:generateContent", "method" : "POST", "headers" : { "Content-Type" : { @@ -17,21 +17,21 @@ }, "response" : { "status" : 200, - "bodyFileName" : "v1beta_models_gemini-2.5-flashgeneratecontent-db1d9e50a690.json", + "bodyFileName" : "v1beta_models_gemini-3.8-flashgeneratecontent-40b204ce286c.json", "headers" : { "X-Frame-Options" : "SAMEORIGIN", "Alt-Svc" : "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000", "Server" : "scaffolding on HTTPServer2", "X-Content-Type-Options" : "nosniff", - "Server-Timing" : "gfet4t7; dur=9522", + "Server-Timing" : "gfet4t7; dur=6950", "Vary" : [ "Origin", "X-Origin", "Referer" ], "X-Gemini-Service-Tier" : "standard", "X-XSS-Protection" : "0", - "Date" : "Thu, 15 Oct 2026 23:33:13 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:15 GMT", "Content-Type" : "application/json; charset=UTF-8" } }, - "uuid" : "b3f14c63-f340-3660-ac9d-090504568ca4", + "uuid" : "b881e60f-cb2c-3515-98ad-2395b20eab46", "persistent" : true, - "insertionIndex" : 5 + "insertionIndex" : 1 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/audio_speech-58901a3de654.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/audio_speech-58901a3de654.txt index b8c3bf82..0e39be4f 100644 Binary files a/test-harness/src/testFixtures/resources/cassettes/openai/__files/audio_speech-58901a3de654.txt and b/test-harness/src/testFixtures/resources/cassettes/openai/__files/audio_speech-58901a3de654.txt differ diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/audio_transcriptions-30da9491b68f.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/audio_transcriptions-30da9491b68f.json deleted file mode 100644 index 5b590ea3..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/audio_transcriptions-30da9491b68f.json +++ /dev/null @@ -1 +0,0 @@ -{"text":"The garden has bright flowers.","usage":{"type":"tokens","total_tokens":34,"input_tokens":26,"input_token_details":{"text_tokens":0,"audio_tokens":26},"output_tokens":8}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/audio_transcriptions-388cd2791495.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/audio_transcriptions-388cd2791495.json new file mode 100644 index 00000000..1d17663f --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/audio_transcriptions-388cd2791495.json @@ -0,0 +1 @@ +{"text":"The garden has bright flowers.","usage":{"type":"tokens","total_tokens":31,"input_tokens":23,"input_token_details":{"text_tokens":0,"audio_tokens":23},"output_tokens":8}} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/batches-5a870393ae27.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/batches-5a870393ae27.json index f794e442..84f815d9 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/batches-5a870393ae27.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/batches-5a870393ae27.json @@ -2,34 +2,34 @@ "object": "list", "data": [ { - "id": "batch_6abe9f5998288190948a6f6de403ae92", + "id": "batch_6ad95300422c8190b5e162670505aafd", "object": "batch", - "endpoint": "/v1/responses", - "model": "gpt-5-mini-2025-08-07", + "endpoint": "/v1/chat/completions", + "model": "gpt-4o-mini-2024-07-18", "errors": null, - "input_file_id": "file-8nLWAZsZMcWW3aQK78iuEH", + "input_file_id": "file-DHeeBTVNVGzmCYs1pTWLPp", "completion_window": "24h", "status": "completed", - "output_file_id": "file-CUgNKJ4rnpBqedp17Pw8Vo", + "output_file_id": "file-Sq9GAM28yWwc4uCbvwkx5Z", "error_file_id": null, - "created_at": 1790877529, - "in_progress_at": 1790877531, - "expires_at": 1790963929, - "finalizing_at": 1790877543, - "completed_at": 1790877544, + "created_at": 1792627456, + "in_progress_at": 1792627457, + "expires_at": 1792713856, + "finalizing_at": 1792627469, + "completed_at": 1792627470, "failed_at": null, "expired_at": null, "cancelling_at": null, "cancelled_at": null, "request_counts": { - "total": 1, - "completed": 1, + "total": 2, + "completed": 2, "failed": 0 }, "usage": { - "input_tokens": 40, - "output_tokens": 57, - "total_tokens": 97, + "input_tokens": 50, + "output_tokens": 2, + "total_tokens": 52, "input_tokens_details": { "cached_tokens": 0 }, @@ -38,11 +38,12 @@ } }, "metadata": { - "braintrust_run_id": "f68e8fe4-1e46-413a-aa8f-c87093080c0a" + "braintrust_run_id": "74947af5-8a7f-46f3-9e95-c9d4e6fd0b3d", + "braintrust_submission_id": "319bbef7-3f53-455a-8a9a-eefe9664d903" } } ], - "first_id": "batch_6abe9f5998288190948a6f6de403ae92", - "last_id": "batch_6abe9f5998288190948a6f6de403ae92", + "first_id": "batch_6ad95300422c8190b5e162670505aafd", + "last_id": "batch_6ad95300422c8190b5e162670505aafd", "has_more": true } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-03b1b9901179.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-03b1b9901179.txt index ffee9512..dfdd015e 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-03b1b9901179.txt +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-03b1b9901179.txt @@ -1,22 +1,22 @@ -data: {"id":"chatcmpl-EJ0LirGPuKZUYVBsapou48yFjkrFZ","object":"chat.completion.chunk","created":1788198282,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Ua2kag4c3"} +data: {"id":"chatcmpl-EhTaCgUbyptLL3YgH3v7UiNXF8IFX","object":"chat.completion.chunk","created":1794030528,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"GKClWoJqn"} -data: {"id":"chatcmpl-EJ0LirGPuKZUYVBsapou48yFjkrFZ","object":"chat.completion.chunk","created":1788198282,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[{"index":0,"delta":{"content":"The"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Y6EtSP85"} +data: {"id":"chatcmpl-EhTaCgUbyptLL3YgH3v7UiNXF8IFX","object":"chat.completion.chunk","created":1794030528,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"content":"The"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"MYnapFm2"} -data: {"id":"chatcmpl-EJ0LirGPuKZUYVBsapou48yFjkrFZ","object":"chat.completion.chunk","created":1788198282,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[{"index":0,"delta":{"content":" capital"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"VgC"} +data: {"id":"chatcmpl-EhTaCgUbyptLL3YgH3v7UiNXF8IFX","object":"chat.completion.chunk","created":1794030528,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"content":" capital"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"IUu"} -data: {"id":"chatcmpl-EJ0LirGPuKZUYVBsapou48yFjkrFZ","object":"chat.completion.chunk","created":1788198282,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[{"index":0,"delta":{"content":" of"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"NnJiMM35"} +data: {"id":"chatcmpl-EhTaCgUbyptLL3YgH3v7UiNXF8IFX","object":"chat.completion.chunk","created":1794030528,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"content":" of"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"GMBO9EMw"} -data: {"id":"chatcmpl-EJ0LirGPuKZUYVBsapou48yFjkrFZ","object":"chat.completion.chunk","created":1788198282,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[{"index":0,"delta":{"content":" France"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"M7BM"} +data: {"id":"chatcmpl-EhTaCgUbyptLL3YgH3v7UiNXF8IFX","object":"chat.completion.chunk","created":1794030528,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"content":" France"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"aXBw"} -data: {"id":"chatcmpl-EJ0LirGPuKZUYVBsapou48yFjkrFZ","object":"chat.completion.chunk","created":1788198282,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[{"index":0,"delta":{"content":" is"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"2FFewMaY"} +data: {"id":"chatcmpl-EhTaCgUbyptLL3YgH3v7UiNXF8IFX","object":"chat.completion.chunk","created":1794030528,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"content":" is"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"BsbBGIvc"} -data: {"id":"chatcmpl-EJ0LirGPuKZUYVBsapou48yFjkrFZ","object":"chat.completion.chunk","created":1788198282,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[{"index":0,"delta":{"content":" Paris"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"0C7Xw"} +data: {"id":"chatcmpl-EhTaCgUbyptLL3YgH3v7UiNXF8IFX","object":"chat.completion.chunk","created":1794030528,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"content":" Paris"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"xtVVO"} -data: {"id":"chatcmpl-EJ0LirGPuKZUYVBsapou48yFjkrFZ","object":"chat.completion.chunk","created":1788198282,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[{"index":0,"delta":{"content":"."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"xW0PSBoHtT"} +data: {"id":"chatcmpl-EhTaCgUbyptLL3YgH3v7UiNXF8IFX","object":"chat.completion.chunk","created":1794030528,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"content":"."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"k4biD34uX9"} -data: {"id":"chatcmpl-EJ0LirGPuKZUYVBsapou48yFjkrFZ","object":"chat.completion.chunk","created":1788198282,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"5N7YI"} +data: {"id":"chatcmpl-EhTaCgUbyptLL3YgH3v7UiNXF8IFX","object":"chat.completion.chunk","created":1794030528,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"HXKSa"} -data: {"id":"chatcmpl-EJ0LirGPuKZUYVBsapou48yFjkrFZ","object":"chat.completion.chunk","created":1788198282,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[],"usage":{"prompt_tokens":14,"completion_tokens":7,"total_tokens":21,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"ObEDec5PVpc"} +data: {"id":"chatcmpl-EhTaCgUbyptLL3YgH3v7UiNXF8IFX","object":"chat.completion.chunk","created":1794030528,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[],"usage":{"prompt_tokens":14,"completion_tokens":7,"total_tokens":21,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"ZUjendDPeUo"} data: [DONE] diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-0639fddc10f8.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-0639fddc10f8.json index 48580fad..aafc2754 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-0639fddc10f8.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-0639fddc10f8.json @@ -1,7 +1,7 @@ { - "id": "chatcmpl-EJ0Kjm1RAtTV4jQJKlTLsnGE1Jjmq", + "id": "chatcmpl-EhTYpqbDBkUcXe2Vx8Tm1vAY3LtSm", "object": "chat.completion", - "created": 1788198221, + "created": 1794030443, "model": "gpt-4o-mini-2024-07-18", "choices": [ { @@ -32,5 +32,5 @@ } }, "service_tier": "default", - "system_fingerprint": "fp_20370cf6b8" + "system_fingerprint": "fp_67e10b5d92" } diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-077545f3c696.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-077545f3c696.json deleted file mode 100644 index f2d795c3..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-077545f3c696.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "id": "chatcmpl-EJ0E4DbrAvjTvzRQUGVOrPWkWfqkV", - "object": "chat.completion", - "created": 1788197808, - "model": "gpt-4o-2024-08-06", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "The first attachment is a solid red square, and the second attachment is a PDF file named \"blank.pdf\" that contains no readable content or images.", - "refusal": null, - "annotations": [] - }, - "logprobs": null, - "finish_reason": "stop" - } - ], - "usage": { - "prompt_tokens": 495, - "completion_tokens": 30, - "total_tokens": 525, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": "fp_ffd8308b42" -} diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-114a3fe592b5.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-114a3fe592b5.txt deleted file mode 100644 index 657b691a..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-114a3fe592b5.txt +++ /dev/null @@ -1,20 +0,0 @@ -data: {"id":"chatcmpl-EJ0EZr3xPVuEfVUSHEHVJ7rpRkrwp","object":"chat.completion.chunk","created":1788197839,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"fwOVflgp0"} - -data: {"id":"chatcmpl-EJ0EZr3xPVuEfVUSHEHVJ7rpRkrwp","object":"chat.completion.chunk","created":1788197839,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":0,"delta":{"content":"Hello"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"MFf7QX"} - -data: {"id":"chatcmpl-EJ0EZr3xPVuEfVUSHEHVJ7rpRkrwp","object":"chat.completion.chunk","created":1788197839,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":0,"delta":{"content":"!"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"L2ozttVApT"} - -data: {"id":"chatcmpl-EJ0EZr3xPVuEfVUSHEHVJ7rpRkrwp","object":"chat.completion.chunk","created":1788197839,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":1,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"P59R2O4aM"} - -data: {"id":"chatcmpl-EJ0EZr3xPVuEfVUSHEHVJ7rpRkrwp","object":"chat.completion.chunk","created":1788197839,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":1,"delta":{"content":"Hello"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"tAyXxR"} - -data: {"id":"chatcmpl-EJ0EZr3xPVuEfVUSHEHVJ7rpRkrwp","object":"chat.completion.chunk","created":1788197839,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":1,"delta":{"content":"!"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"a9WlZESOGB"} - -data: {"id":"chatcmpl-EJ0EZr3xPVuEfVUSHEHVJ7rpRkrwp","object":"chat.completion.chunk","created":1788197839,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"H2wd4"} - -data: {"id":"chatcmpl-EJ0EZr3xPVuEfVUSHEHVJ7rpRkrwp","object":"chat.completion.chunk","created":1788197839,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":1,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"jR64G"} - -data: {"id":"chatcmpl-EJ0EZr3xPVuEfVUSHEHVJ7rpRkrwp","object":"chat.completion.chunk","created":1788197839,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[],"usage":{"prompt_tokens":22,"completion_tokens":4,"total_tokens":26,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"wY0nSNfQ9SG"} - -data: [DONE] - diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-1396042660a1.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-1396042660a1.txt index a8669cea..b76a9ab2 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-1396042660a1.txt +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-1396042660a1.txt @@ -1,22 +1,22 @@ -data: {"id":"chatcmpl-EJ0Lh2KmH8yC7z5X3Q78U4MY12Gsi","object":"chat.completion.chunk","created":1788198281,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_335dacabb2","choices":[{"index":0,"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"id":"call_34MONilIQ4tMntRDZs3HdaTR","type":"function","function":{"name":"get_weather","arguments":""}}],"refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"ZhyB"} +data: {"id":"chatcmpl-EhTa7xOUeL8bZZUwuFgvgljJafUuU","object":"chat.completion.chunk","created":1794030523,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"id":"call_Tv1FZrCdOO6wi6z6oxzZ9XEd","type":"function","function":{"name":"get_weather","arguments":""}}],"refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"4ZHM"} -data: {"id":"chatcmpl-EJ0Lh2KmH8yC7z5X3Q78U4MY12Gsi","object":"chat.completion.chunk","created":1788198281,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_335dacabb2","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{\""}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"sOKMbyDd4Ln3dW"} +data: {"id":"chatcmpl-EhTa7xOUeL8bZZUwuFgvgljJafUuU","object":"chat.completion.chunk","created":1794030523,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{\""}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"j0It7bcPwAfy0K"} -data: {"id":"chatcmpl-EJ0Lh2KmH8yC7z5X3Q78U4MY12Gsi","object":"chat.completion.chunk","created":1788198281,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_335dacabb2","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"location"}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"TuQ5GhPcg"} +data: {"id":"chatcmpl-EhTa7xOUeL8bZZUwuFgvgljJafUuU","object":"chat.completion.chunk","created":1794030523,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"location"}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"VHgXJSpo9"} -data: {"id":"chatcmpl-EJ0Lh2KmH8yC7z5X3Q78U4MY12Gsi","object":"chat.completion.chunk","created":1788198281,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_335dacabb2","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\":\""}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"cZ836IZNZwhv"} +data: {"id":"chatcmpl-EhTa7xOUeL8bZZUwuFgvgljJafUuU","object":"chat.completion.chunk","created":1794030523,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\":\""}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"qs2GkAiK4XFU"} -data: {"id":"chatcmpl-EJ0Lh2KmH8yC7z5X3Q78U4MY12Gsi","object":"chat.completion.chunk","created":1788198281,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_335dacabb2","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Paris"}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"6AkS1oBxtQvn"} +data: {"id":"chatcmpl-EhTa7xOUeL8bZZUwuFgvgljJafUuU","object":"chat.completion.chunk","created":1794030523,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Paris"}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"TD4vUtZ0r8IU"} -data: {"id":"chatcmpl-EJ0Lh2KmH8yC7z5X3Q78U4MY12Gsi","object":"chat.completion.chunk","created":1788198281,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_335dacabb2","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":","}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":""} +data: {"id":"chatcmpl-EhTa7xOUeL8bZZUwuFgvgljJafUuU","object":"chat.completion.chunk","created":1794030523,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":","}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":""} -data: {"id":"chatcmpl-EJ0Lh2KmH8yC7z5X3Q78U4MY12Gsi","object":"chat.completion.chunk","created":1788198281,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_335dacabb2","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" France"}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"TXPQvvFI7G"} +data: {"id":"chatcmpl-EhTa7xOUeL8bZZUwuFgvgljJafUuU","object":"chat.completion.chunk","created":1794030523,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" France"}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"6Yyi5RHmx8"} -data: {"id":"chatcmpl-EJ0Lh2KmH8yC7z5X3Q78U4MY12Gsi","object":"chat.completion.chunk","created":1788198281,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_335dacabb2","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"3bVF8hOlSoAkXr"} +data: {"id":"chatcmpl-EhTa7xOUeL8bZZUwuFgvgljJafUuU","object":"chat.completion.chunk","created":1794030523,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"m8vNRhVMzpQ6fA"} -data: {"id":"chatcmpl-EJ0Lh2KmH8yC7z5X3Q78U4MY12Gsi","object":"chat.completion.chunk","created":1788198281,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_335dacabb2","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"tool_calls"}],"usage":null,"obfuscation":"2CqzFiNH4HHrsT2"} +data: {"id":"chatcmpl-EhTa7xOUeL8bZZUwuFgvgljJafUuU","object":"chat.completion.chunk","created":1794030523,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"tool_calls"}],"usage":null,"obfuscation":"H6dfz7LzYcbuXdt"} -data: {"id":"chatcmpl-EJ0Lh2KmH8yC7z5X3Q78U4MY12Gsi","object":"chat.completion.chunk","created":1788198281,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_335dacabb2","choices":[],"usage":{"prompt_tokens":54,"completion_tokens":16,"total_tokens":70,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"Qv4fRGh9Cv"} +data: {"id":"chatcmpl-EhTa7xOUeL8bZZUwuFgvgljJafUuU","object":"chat.completion.chunk","created":1794030523,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[],"usage":{"prompt_tokens":54,"completion_tokens":16,"total_tokens":70,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"B4Ymrza8w3"} data: [DONE] diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-147f1d6ed0ae.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-147f1d6ed0ae.json index 1ced948c..66aae3e6 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-147f1d6ed0ae.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-147f1d6ed0ae.json @@ -1,7 +1,7 @@ { - "id": "chatcmpl-EJ0LyMU0uYPcKH1n60pw6omF5hQD4", + "id": "chatcmpl-EhTaOvxc1wYag3Tnv3W7J3oB8cCZ9", "object": "chat.completion", - "created": 1788198298, + "created": 1794030540, "model": "gpt-4o-mini-2024-07-18", "choices": [ { @@ -32,5 +32,5 @@ } }, "service_tier": "default", - "system_fingerprint": "fp_fdc0967d89" + "system_fingerprint": "fp_d932b185f7" } diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-172e53c522a8.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-172e53c522a8.json new file mode 100644 index 00000000..143b2f37 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-172e53c522a8.json @@ -0,0 +1,35 @@ +{ + "id": "chatcmpl-EhTUdngxfXcc0dhGrK2ag1Hnxg4in", + "object": "chat.completion", + "created": 1794030183, + "model": "gpt-6-luna", + "choices": [ + { + "index": 0, + "message": { + "role": "assistant", + "content": "The attached PDF appears to be blank or unreadable; I couldn’t identify any content to describe.", + "refusal": null, + "annotations": [] + }, + "finish_reason": "stop" + } + ], + "usage": { + "prompt_tokens": 241, + "completion_tokens": 23, + "total_tokens": 264, + "prompt_tokens_details": { + "cached_tokens": 0, + "audio_tokens": 0 + }, + "completion_tokens_details": { + "reasoning_tokens": 0, + "audio_tokens": 0, + "accepted_prediction_tokens": 0, + "rejected_prediction_tokens": 0 + } + }, + "service_tier": "default", + "system_fingerprint": null +} diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-4d01f33ddf1d.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-188be8d3cd9d.json similarity index 63% rename from test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-4d01f33ddf1d.json rename to test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-188be8d3cd9d.json index 68f2021f..29e7906f 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-4d01f33ddf1d.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-188be8d3cd9d.json @@ -1,27 +1,27 @@ { - "id": "chatcmpl-EJ0E7DzD2I0UdG2Tm1nGb3zlS9Iog", + "id": "chatcmpl-EhTUpohZxWlcubkLVJTQGz07tvWAQ", "object": "chat.completion", - "created": 1788197811, - "model": "gpt-4o-mini-2024-07-18", + "created": 1794030195, + "model": "gpt-6-luna", "choices": [ { "index": 0, "message": { "role": "assistant", - "content": "The capital of France is Paris.", + "content": "Paris.", "refusal": null, "annotations": [] }, - "logprobs": null, "finish_reason": "stop" } ], "usage": { - "prompt_tokens": 23, - "completion_tokens": 7, - "total_tokens": 30, + "prompt_tokens": 22, + "completion_tokens": 5, + "total_tokens": 27, "prompt_tokens_details": { "cached_tokens": 0, + "cache_write_tokens": 0, "audio_tokens": 0 }, "completion_tokens_details": { @@ -32,5 +32,5 @@ } }, "service_tier": "default", - "system_fingerprint": "fp_01e44b225d" + "system_fingerprint": null } diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-1e551e6c9590.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-1e551e6c9590.txt new file mode 100644 index 00000000..92ab1f9d --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-1e551e6c9590.txt @@ -0,0 +1,64 @@ +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"1"},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"2"},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"3"},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"4"},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"5"},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"6"},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"7"},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"8"},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"9"},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"10"},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":null} + +data: {"id":"chatcmpl-EhTUiqWQ7He41W4KjJWowPOWJOIXG","object":"chat.completion.chunk","created":1794030188,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[],"usage":{"prompt_tokens":24,"completion_tokens":31,"total_tokens":55,"prompt_tokens_details":{"cached_tokens":0,"cache_write_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}}} + +data: [DONE] + diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-1f42b61b411c.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-1f42b61b411c.json index b6e36c19..13f85311 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-1f42b61b411c.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-1f42b61b411c.json @@ -1,7 +1,7 @@ { - "id": "chatcmpl-EJ0LDpb9n91XjmuoJZohIzL9rlF1J", + "id": "chatcmpl-EhTZnXPeXYznFmQuzzkeI9IgRxW9p", "object": "chat.completion", - "created": 1788198251, + "created": 1794030503, "model": "gpt-4o-mini-2024-07-18", "choices": [ { @@ -32,5 +32,5 @@ } }, "service_tier": "default", - "system_fingerprint": "fp_20370cf6b8" + "system_fingerprint": "fp_67e10b5d92" } diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-7aec0dd2e530.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-222ad3ef70f9.json similarity index 54% rename from test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-7aec0dd2e530.json rename to test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-222ad3ef70f9.json index 56fa59e0..79dff287 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-7aec0dd2e530.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-222ad3ef70f9.json @@ -1,14 +1,14 @@ { - "id": "chatcmpl-EJ0F1mnfyJg8mIIBkLLvWCpLk7ZhL", + "id": "chatcmpl-EhTUgNrWvhyvetUXFtAoOSbzYjx5z", "object": "chat.completion", - "created": 1788197867, - "model": "o4-mini-2025-04-16", + "created": 1794030186, + "model": "gpt-6-luna", "choices": [ { "index": 0, "message": { "role": "assistant", - "content": "Each term is the product of two consecutive integers:\n\n 2 = 1·2 \n 6 = 2·3 \n 12 = 3·4 \n 20 = 4·5 \n 30 = 5·6 \n\nSo if you call the first term n=1, the n-th term is\n\n aₙ = n·(n+1) \n\nEquivalently, aₙ = n² + n.", + "content": "The terms follow \\(1\\cdot2,\\;2\\cdot3,\\;3\\cdot4,\\;4\\cdot5,\\;5\\cdot6\\). So the \\(n\\)th term is\n\n\\[\na_n=n(n+1)=n^2+n,\\qquad n\\ge1.\n\\]\n\nThis is the natural pattern; other formulas could fit the same five terms.", "refusal": null, "annotations": [] }, @@ -17,14 +17,15 @@ ], "usage": { "prompt_tokens": 41, - "completion_tokens": 754, - "total_tokens": 795, + "completion_tokens": 157, + "total_tokens": 198, "prompt_tokens_details": { "cached_tokens": 0, + "cache_write_tokens": 0, "audio_tokens": 0 }, "completion_tokens_details": { - "reasoning_tokens": 640, + "reasoning_tokens": 61, "audio_tokens": 0, "accepted_prediction_tokens": 0, "rejected_prediction_tokens": 0 diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-279e71bec74d.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-279e71bec74d.txt new file mode 100644 index 00000000..9a83de49 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-279e71bec74d.txt @@ -0,0 +1,16 @@ +data: {"id":"chatcmpl-EhTUeH9fvlXPJtWvbzTVapa2Q1XFY","object":"chat.completion.chunk","created":1794030184,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUeH9fvlXPJtWvbzTVapa2Q1XFY","object":"chat.completion.chunk","created":1794030184,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"Hello"},"finish_reason":null}],"usage":null,"obfuscation":"rYNqk4JMDIjdP"} + +data: {"id":"chatcmpl-EhTUeH9fvlXPJtWvbzTVapa2Q1XFY","object":"chat.completion.chunk","created":1794030184,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":1,"delta":{"role":"assistant","content":"","refusal":null},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUeH9fvlXPJtWvbzTVapa2Q1XFY","object":"chat.completion.chunk","created":1794030184,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":1,"delta":{"content":"Hello"},"finish_reason":null}],"usage":null,"obfuscation":"HRMxyHfK23bDA"} + +data: {"id":"chatcmpl-EhTUeH9fvlXPJtWvbzTVapa2Q1XFY","object":"chat.completion.chunk","created":1794030184,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":null,"obfuscation":"FuwDy021vh41"} + +data: {"id":"chatcmpl-EhTUeH9fvlXPJtWvbzTVapa2Q1XFY","object":"chat.completion.chunk","created":1794030184,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":1,"delta":{},"finish_reason":"stop"}],"usage":null,"obfuscation":"42qz5jo8zl5D"} + +data: {"id":"chatcmpl-EhTUeH9fvlXPJtWvbzTVapa2Q1XFY","object":"chat.completion.chunk","created":1794030184,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[],"usage":{"prompt_tokens":21,"completion_tokens":8,"total_tokens":29,"prompt_tokens_details":{"cached_tokens":0,"cache_write_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"DlLU73ZIBMG"} + +data: [DONE] + diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-27f306b916ee.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-27f306b916ee.txt new file mode 100644 index 00000000..87584575 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-27f306b916ee.txt @@ -0,0 +1,16 @@ +data: {"id":"chatcmpl-EhTUcfk0Q4pit4JEZd68vLGQQVH5g","object":"chat.completion.chunk","created":1794030182,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUcfk0Q4pit4JEZd68vLGQQVH5g","object":"chat.completion.chunk","created":1794030182,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"Hello"},"finish_reason":null}],"usage":null,"obfuscation":"uoMH2lrPyYwq3"} + +data: {"id":"chatcmpl-EhTUcfk0Q4pit4JEZd68vLGQQVH5g","object":"chat.completion.chunk","created":1794030182,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":1,"delta":{"role":"assistant","content":"","refusal":null},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUcfk0Q4pit4JEZd68vLGQQVH5g","object":"chat.completion.chunk","created":1794030182,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":1,"delta":{"content":"Hello"},"finish_reason":null}],"usage":null,"obfuscation":"czESJXeq9agYH"} + +data: {"id":"chatcmpl-EhTUcfk0Q4pit4JEZd68vLGQQVH5g","object":"chat.completion.chunk","created":1794030182,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":null,"obfuscation":"RpX5EF9VisPr"} + +data: {"id":"chatcmpl-EhTUcfk0Q4pit4JEZd68vLGQQVH5g","object":"chat.completion.chunk","created":1794030182,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":1,"delta":{},"finish_reason":"stop"}],"usage":null,"obfuscation":"u0cbyX9x57aD"} + +data: {"id":"chatcmpl-EhTUcfk0Q4pit4JEZd68vLGQQVH5g","object":"chat.completion.chunk","created":1794030182,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[],"usage":{"prompt_tokens":21,"completion_tokens":8,"total_tokens":29,"prompt_tokens_details":{"cached_tokens":0,"cache_write_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"EEhudscvXzi"} + +data: [DONE] + diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-2bc496b1900f.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-2bc496b1900f.json index 9b3a09d0..ff1dcee0 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-2bc496b1900f.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-2bc496b1900f.json @@ -1,7 +1,7 @@ { - "id": "chatcmpl-EJ0LtrdtmZecCy0bIvaSeVhOoe5GZ", + "id": "chatcmpl-EhTaMJFPmS6Nqhm9IZYq2y4MEJUc3", "object": "chat.completion", - "created": 1788198293, + "created": 1794030538, "model": "gpt-4o-mini-2024-07-18", "choices": [ { @@ -32,5 +32,5 @@ } }, "service_tier": "default", - "system_fingerprint": "fp_a2de2bff52" + "system_fingerprint": "fp_e327275518" } diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-3a0e595e4db7.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-3a0e595e4db7.json index 498949ae..a1af37ef 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-3a0e595e4db7.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-3a0e595e4db7.json @@ -1,7 +1,7 @@ { - "id": "chatcmpl-EJ0LGfct7yHuaWh46jx4B14NVVb7a", + "id": "chatcmpl-EhTZpEYcQa6hvndFEKYdsfSTmE7WG", "object": "chat.completion", - "created": 1788198254, + "created": 1794030505, "model": "gpt-4o-mini-2024-07-18", "choices": [ { @@ -32,5 +32,5 @@ } }, "service_tier": "default", - "system_fingerprint": "fp_20370cf6b8" + "system_fingerprint": "fp_67e10b5d92" } diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-40b67b7e07db.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-40b67b7e07db.txt new file mode 100644 index 00000000..a81d825b --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-40b67b7e07db.txt @@ -0,0 +1,64 @@ +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"1"},"finish_reason":null}],"usage":null,"obfuscation":"N"} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"T"} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"2"},"finish_reason":null}],"usage":null,"obfuscation":"2"} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"5"} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"3"},"finish_reason":null}],"usage":null,"obfuscation":"7"} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"E"} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"4"},"finish_reason":null}],"usage":null,"obfuscation":"T"} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"e"} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"5"},"finish_reason":null}],"usage":null,"obfuscation":"M"} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"A"} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"6"},"finish_reason":null}],"usage":null,"obfuscation":"0"} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"I"} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"7"},"finish_reason":null}],"usage":null,"obfuscation":"2"} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"V"} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"8"},"finish_reason":null}],"usage":null,"obfuscation":"B"} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"e"} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"9"},"finish_reason":null}],"usage":null,"obfuscation":"C"} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"k"} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"10"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":null,"obfuscation":"M5y8ggozjiTN"} + +data: {"id":"chatcmpl-EhTUfR4G1L34ltQ2p0WXLAlGSIFB3","object":"chat.completion.chunk","created":1794030185,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[],"usage":{"prompt_tokens":24,"completion_tokens":31,"total_tokens":55,"prompt_tokens_details":{"cached_tokens":0,"cache_write_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"wqqQIaFTSv"} + +data: [DONE] + diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-41fec2dc517f.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-41fec2dc517f.txt deleted file mode 100644 index a94c28cc..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-41fec2dc517f.txt +++ /dev/null @@ -1,88 +0,0 @@ -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"FddSp5np0"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"Sure"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"qYoiPkO"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"!"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"lUl7GvOIcH"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" Here"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"nAQJI0"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" we"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"8X13C4wo"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" go"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"ZHlvNXk3"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":":\n\n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"D2Zn1A"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"1"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"hW8tpWJvmI"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"kZlHZKb9"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Nu2WmHo"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"2"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"j7C6gYtwso"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"AMrFSNm8"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"13Qdg1S"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"3"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"ArhLgObCi4"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"dQ0kiBz0"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"AiNsFHk"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"4"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"8UZB2fjb8E"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"cs1pDs6K"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"lbLzBRw"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"5"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Yb8pEzO7Bl"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"DUrR6VM2"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"pMtlbJk"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"6"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"m754Jy0aMf"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"xXk3QTKM"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"elNRWGB"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"7"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"ORrL928OKS"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"U0gLqz8z"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Jc6WKuZ"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"8"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Hj0V6jp5bn"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"NwCb46IB"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"POPQTS2"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"9"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"9LxGT80Kfq"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"yVmLfW9Z"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"RC6vniX"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"10"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"TV41pj9Es"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"rPsv5QBt"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n\n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"bAzwQ"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"Take"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"o6rjlDJ"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" your"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"hmgngm"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" time"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"TALYBf"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"!"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Zp5m21S4qP"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"ZueKl"} - -data: {"id":"chatcmpl-EJ0E6nmVGYykRvji5bCxNGF5qqlgh","object":"chat.completion.chunk","created":1788197810,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[],"usage":{"prompt_tokens":25,"completion_tokens":40,"total_tokens":65,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"8aOfVAFflx"} - -data: [DONE] - diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-538b5ad9c2fe.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-538b5ad9c2fe.txt index 7f06722d..2bff57df 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-538b5ad9c2fe.txt +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-538b5ad9c2fe.txt @@ -1,22 +1,22 @@ -data: {"id":"chatcmpl-EJ0Kp8fbub8raxxNNKVA7pwPPQOZG","object":"chat.completion.chunk","created":1788198227,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_ffd8308b42","choices":[{"index":0,"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"id":"call_IuYdNInzoMSy8PLCI4nsHnXG","type":"function","function":{"name":"get_weather","arguments":""}}],"refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"iRIu2pCzY"} +data: {"id":"chatcmpl-EhTYrIRf30RCW6Pk6mvSizZ0pikxO","object":"chat.completion.chunk","created":1794030445,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_936db6157f","choices":[{"index":0,"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"id":"call_JA54QjXOU8en5mMd7kzlSxPr","type":"function","function":{"name":"get_weather","arguments":""}}],"refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"CkUPEixbJ"} -data: {"id":"chatcmpl-EJ0Kp8fbub8raxxNNKVA7pwPPQOZG","object":"chat.completion.chunk","created":1788198227,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_ffd8308b42","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{\""}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"gy4"} +data: {"id":"chatcmpl-EhTYrIRf30RCW6Pk6mvSizZ0pikxO","object":"chat.completion.chunk","created":1794030445,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_936db6157f","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{\""}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"HD8"} -data: {"id":"chatcmpl-EJ0Kp8fbub8raxxNNKVA7pwPPQOZG","object":"chat.completion.chunk","created":1788198227,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_ffd8308b42","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"location"}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"r9wl03OIz7VrYP"} +data: {"id":"chatcmpl-EhTYrIRf30RCW6Pk6mvSizZ0pikxO","object":"chat.completion.chunk","created":1794030445,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_936db6157f","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"location"}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"LtQrg7biSZsrvl"} -data: {"id":"chatcmpl-EJ0Kp8fbub8raxxNNKVA7pwPPQOZG","object":"chat.completion.chunk","created":1788198227,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_ffd8308b42","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\":\""}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"u"} +data: {"id":"chatcmpl-EhTYrIRf30RCW6Pk6mvSizZ0pikxO","object":"chat.completion.chunk","created":1794030445,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_936db6157f","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\":\""}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"n"} -data: {"id":"chatcmpl-EJ0Kp8fbub8raxxNNKVA7pwPPQOZG","object":"chat.completion.chunk","created":1788198227,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_ffd8308b42","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Paris"}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"V"} +data: {"id":"chatcmpl-EhTYrIRf30RCW6Pk6mvSizZ0pikxO","object":"chat.completion.chunk","created":1794030445,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_936db6157f","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Paris"}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"2"} -data: {"id":"chatcmpl-EJ0Kp8fbub8raxxNNKVA7pwPPQOZG","object":"chat.completion.chunk","created":1788198227,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_ffd8308b42","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":","}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"uYn0k"} +data: {"id":"chatcmpl-EhTYrIRf30RCW6Pk6mvSizZ0pikxO","object":"chat.completion.chunk","created":1794030445,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_936db6157f","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":","}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"fUTlr"} -data: {"id":"chatcmpl-EJ0Kp8fbub8raxxNNKVA7pwPPQOZG","object":"chat.completion.chunk","created":1788198227,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_ffd8308b42","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" France"}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"V5j9DSfGhJbEE1D"} +data: {"id":"chatcmpl-EhTYrIRf30RCW6Pk6mvSizZ0pikxO","object":"chat.completion.chunk","created":1794030445,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_936db6157f","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" France"}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"SalOJvSLeApKGX3"} -data: {"id":"chatcmpl-EJ0Kp8fbub8raxxNNKVA7pwPPQOZG","object":"chat.completion.chunk","created":1788198227,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_ffd8308b42","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"HBV"} +data: {"id":"chatcmpl-EhTYrIRf30RCW6Pk6mvSizZ0pikxO","object":"chat.completion.chunk","created":1794030445,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_936db6157f","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"GNN"} -data: {"id":"chatcmpl-EJ0Kp8fbub8raxxNNKVA7pwPPQOZG","object":"chat.completion.chunk","created":1788198227,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_ffd8308b42","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"tool_calls"}],"usage":null,"obfuscation":"aBgC"} +data: {"id":"chatcmpl-EhTYrIRf30RCW6Pk6mvSizZ0pikxO","object":"chat.completion.chunk","created":1794030445,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_936db6157f","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"tool_calls"}],"usage":null,"obfuscation":"DuWK"} -data: {"id":"chatcmpl-EJ0Kp8fbub8raxxNNKVA7pwPPQOZG","object":"chat.completion.chunk","created":1788198227,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_ffd8308b42","choices":[],"usage":{"prompt_tokens":60,"completion_tokens":16,"total_tokens":76,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"amo93woAaA8c0u8"} +data: {"id":"chatcmpl-EhTYrIRf30RCW6Pk6mvSizZ0pikxO","object":"chat.completion.chunk","created":1794030445,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_936db6157f","choices":[],"usage":{"prompt_tokens":60,"completion_tokens":16,"total_tokens":76,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"QFnohx0yLsupyiW"} data: [DONE] diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-5411324c796f.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-5411324c796f.txt new file mode 100644 index 00000000..2d90a85a --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-5411324c796f.txt @@ -0,0 +1,16 @@ +data: {"id":"chatcmpl-EhTUjdr9mqGzm0KCcmZpTk605RZ0x","object":"chat.completion.chunk","created":1794030189,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUjdr9mqGzm0KCcmZpTk605RZ0x","object":"chat.completion.chunk","created":1794030189,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"Hello"},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUjdr9mqGzm0KCcmZpTk605RZ0x","object":"chat.completion.chunk","created":1794030189,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":1,"delta":{"role":"assistant","content":"","refusal":null},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUjdr9mqGzm0KCcmZpTk605RZ0x","object":"chat.completion.chunk","created":1794030189,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":1,"delta":{"content":"Hello"},"finish_reason":null}],"usage":null} + +data: {"id":"chatcmpl-EhTUjdr9mqGzm0KCcmZpTk605RZ0x","object":"chat.completion.chunk","created":1794030189,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":null} + +data: {"id":"chatcmpl-EhTUjdr9mqGzm0KCcmZpTk605RZ0x","object":"chat.completion.chunk","created":1794030189,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":1,"delta":{},"finish_reason":"stop"}],"usage":null} + +data: {"id":"chatcmpl-EhTUjdr9mqGzm0KCcmZpTk605RZ0x","object":"chat.completion.chunk","created":1794030189,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[],"usage":{"prompt_tokens":21,"completion_tokens":8,"total_tokens":29,"prompt_tokens_details":{"cached_tokens":0,"cache_write_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}}} + +data: [DONE] + diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-5e84f11b9aa8.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-5e84f11b9aa8.json new file mode 100644 index 00000000..69d901ec --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-5e84f11b9aa8.json @@ -0,0 +1,36 @@ +{ + "id": "chatcmpl-EhTV5YGGqm9ojzMDiGNDaaTltkRHv", + "object": "chat.completion", + "created": 1794030211, + "model": "gpt-6-luna", + "choices": [ + { + "index": 0, + "message": { + "role": "assistant", + "content": "The terms follow \\(1\\cdot2,\\;2\\cdot3,\\;3\\cdot4,\\;4\\cdot5,\\;5\\cdot6\\). So the natural formula is\n\n\\[\na_n=n(n+1),\n\\]\n\nwith the sequence starting at \\(n=1\\). The differences between terms are \\(4,6,8,10,\\ldots\\).", + "refusal": null, + "annotations": [] + }, + "finish_reason": "stop" + } + ], + "usage": { + "prompt_tokens": 41, + "completion_tokens": 146, + "total_tokens": 187, + "prompt_tokens_details": { + "cached_tokens": 0, + "cache_write_tokens": 0, + "audio_tokens": 0 + }, + "completion_tokens_details": { + "reasoning_tokens": 52, + "audio_tokens": 0, + "accepted_prediction_tokens": 0, + "rejected_prediction_tokens": 0 + } + }, + "service_tier": "default", + "system_fingerprint": null +} diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-96cfd62fa134.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-5fc2cb6e67af.json similarity index 66% rename from test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-96cfd62fa134.json rename to test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-5fc2cb6e67af.json index ba40889b..4d393a03 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-96cfd62fa134.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-5fc2cb6e67af.json @@ -1,8 +1,8 @@ { - "id": "chatcmpl-EJ0E4s5kukGZxKwvhLhS2dco4Le8T", + "id": "chatcmpl-EhTUk2dQy6ut9Zl7tBpTeZMMvGiCf", "object": "chat.completion", - "created": 1788197808, - "model": "gpt-4o-2024-08-06", + "created": 1794030190, + "model": "gpt-6-luna", "choices": [ { "index": 0, @@ -11,27 +11,27 @@ "content": null, "tool_calls": [ { - "id": "call_ZmZrFmTa4XFzmSglMlpEFxiK", + "id": "call_ZoFAEDy3h2VdeYErvBcWhBQD", "type": "function", "function": { "name": "get_weather", - "arguments": "{\"location\":\"Paris, France\"}" + "arguments": "{\"location\":\"Paris, France\",\"unit\":\"celsius\"}" } } ], "refusal": null, "annotations": [] }, - "logprobs": null, "finish_reason": "tool_calls" } ], "usage": { - "prompt_tokens": 85, - "completion_tokens": 16, - "total_tokens": 101, + "prompt_tokens": 166, + "completion_tokens": 24, + "total_tokens": 190, "prompt_tokens_details": { "cached_tokens": 0, + "cache_write_tokens": 0, "audio_tokens": 0 }, "completion_tokens_details": { @@ -42,5 +42,5 @@ } }, "service_tier": "default", - "system_fingerprint": "fp_0d2be5c9bb" + "system_fingerprint": null } diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-e6c815d5be16.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-627aafbf4ba9.json similarity index 83% rename from test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-e6c815d5be16.json rename to test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-627aafbf4ba9.json index 71463d7e..a5f96485 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-e6c815d5be16.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-627aafbf4ba9.json @@ -1,7 +1,7 @@ { - "id": "chatcmpl-EJ0IXr5he2w3LbOYhMnmhLLHwVCCM", + "id": "chatcmpl-EhTYbpfFmtVjekQnYHCuHDuGVaSxZ", "object": "chat.completion", - "created": 1788198085, + "created": 1794030429, "model": "gpt-4o-mini-2024-07-18", "choices": [ { @@ -11,7 +11,7 @@ "content": null, "tool_calls": [ { - "id": "call_WnDl0negHmyHoZ0pBbLSqOj1", + "id": "call_MnkflmdZfUALFOIcib64WJTJ", "type": "function", "function": { "name": "getWeather", @@ -19,7 +19,7 @@ } }, { - "id": "call_xKlHa4SOx8MfJ6OSbsAo7uI9", + "id": "call_0ZjOrsUQ1gRrU6ZnddXTSj2Y", "type": "function", "function": { "name": "getWeather", @@ -50,5 +50,5 @@ } }, "service_tier": "default", - "system_fingerprint": "fp_54940053b1" + "system_fingerprint": "fp_e0d873e413" } diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-6c17ece63fb3.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-6c17ece63fb3.json new file mode 100644 index 00000000..6f9f3884 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-6c17ece63fb3.json @@ -0,0 +1,36 @@ +{ + "id": "chatcmpl-EhTUiOX16bRQjWpDq174c1Xh9kvTh", + "object": "chat.completion", + "created": 1794030188, + "model": "gpt-6-luna", + "choices": [ + { + "index": 0, + "message": { + "role": "assistant", + "content": "The differences are 4, 6, 8, 10—each increases by 2. The terms follow the pattern \\(1\\cdot2,\\;2\\cdot3,\\;3\\cdot4,\\;4\\cdot5,\\;5\\cdot6\\).\n\nSo, counting the first term as \\(n=1\\), the formula is:\n\n\\[\na_n = n(n+1)\n\\]", + "refusal": null, + "annotations": [] + }, + "finish_reason": "stop" + } + ], + "usage": { + "prompt_tokens": 41, + "completion_tokens": 151, + "total_tokens": 192, + "prompt_tokens_details": { + "cached_tokens": 0, + "cache_write_tokens": 0, + "audio_tokens": 0 + }, + "completion_tokens_details": { + "reasoning_tokens": 51, + "audio_tokens": 0, + "accepted_prediction_tokens": 0, + "rejected_prediction_tokens": 0 + } + }, + "service_tier": "default", + "system_fingerprint": null +} diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-6d5f19c8f2ab.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-6d5f19c8f2ab.json index bb0b4947..94ea8274 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-6d5f19c8f2ab.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-6d5f19c8f2ab.json @@ -1,7 +1,7 @@ { - "id": "chatcmpl-EJ0LcBZmWepkS1GgG0uf2SN7GlNpM", + "id": "chatcmpl-EhTa3CxX5ocjZ6kcr90FdoHm6cUnj", "object": "chat.completion", - "created": 1788198276, + "created": 1794030519, "model": "gpt-4o-mini-2024-07-18", "choices": [ { @@ -32,5 +32,5 @@ } }, "service_tier": "default", - "system_fingerprint": "fp_fdc0967d89" + "system_fingerprint": "fp_d932b185f7" } diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-90442b2c483a.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-6f54f60e7b4a.json similarity index 63% rename from test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-90442b2c483a.json rename to test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-6f54f60e7b4a.json index 9eeccd20..bc0265a1 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-90442b2c483a.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-6f54f60e7b4a.json @@ -1,27 +1,27 @@ { - "id": "chatcmpl-EJ0EfJV2jOyvzJqwWBHPoPC9vIkXl", + "id": "chatcmpl-EhTUoTMMdrCHf29oB515DyeBNV7sm", "object": "chat.completion", - "created": 1788197845, - "model": "gpt-4o-mini-2024-07-18", + "created": 1794030194, + "model": "gpt-6-luna", "choices": [ { "index": 0, "message": { "role": "assistant", - "content": "The capital of France is Paris.", + "content": "Paris.", "refusal": null, "annotations": [] }, - "logprobs": null, "finish_reason": "stop" } ], "usage": { - "prompt_tokens": 23, - "completion_tokens": 7, - "total_tokens": 30, + "prompt_tokens": 22, + "completion_tokens": 5, + "total_tokens": 27, "prompt_tokens_details": { "cached_tokens": 0, + "cache_write_tokens": 0, "audio_tokens": 0 }, "completion_tokens_details": { @@ -32,5 +32,5 @@ } }, "service_tier": "default", - "system_fingerprint": "fp_01e44b225d" + "system_fingerprint": null } diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-834f2f4789ae.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-7062e2be5a4f.json similarity index 63% rename from test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-834f2f4789ae.json rename to test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-7062e2be5a4f.json index c48cc65b..82d5a0ab 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-834f2f4789ae.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-7062e2be5a4f.json @@ -1,27 +1,27 @@ { - "id": "chatcmpl-EJ0E7T0fbTM5CXn2fczIcl4NUtN9F", + "id": "chatcmpl-EhTUnCYyZmtvh20jQk505HjhJKgRa", "object": "chat.completion", - "created": 1788197811, - "model": "gpt-4o-mini-2024-07-18", + "created": 1794030193, + "model": "gpt-6-luna", "choices": [ { "index": 0, "message": { "role": "assistant", - "content": "The capital of France is Paris.", + "content": "Paris.", "refusal": null, "annotations": [] }, - "logprobs": null, "finish_reason": "stop" } ], "usage": { - "prompt_tokens": 23, - "completion_tokens": 7, - "total_tokens": 30, + "prompt_tokens": 22, + "completion_tokens": 5, + "total_tokens": 27, "prompt_tokens_details": { "cached_tokens": 0, + "cache_write_tokens": 0, "audio_tokens": 0 }, "completion_tokens_details": { @@ -32,5 +32,5 @@ } }, "service_tier": "default", - "system_fingerprint": "fp_01e44b225d" + "system_fingerprint": null } diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-70e93b55b322.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-70e93b55b322.json index a152be9a..f9da86b9 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-70e93b55b322.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-70e93b55b322.json @@ -1,7 +1,7 @@ { - "id": "chatcmpl-EJ0KwT10qJDDR2Rg165BvM49mJm64", + "id": "chatcmpl-EhTZBthuzCbMd9Adzt0eAehEqiDLi", "object": "chat.completion", - "created": 1788198234, + "created": 1794030465, "model": "gpt-4o-mini-2024-07-18", "choices": [ { @@ -32,5 +32,5 @@ } }, "service_tier": "default", - "system_fingerprint": "fp_20370cf6b8" + "system_fingerprint": "fp_67e10b5d92" } diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-7183454301b7.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-7183454301b7.json new file mode 100644 index 00000000..8636f2ba --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-7183454301b7.json @@ -0,0 +1,35 @@ +{ + "id": "chatcmpl-EhTUbXVb7Q2ZRTNUULFYQQZaDlFkR", + "object": "chat.completion", + "created": 1794030181, + "model": "gpt-6-luna", + "choices": [ + { + "index": 0, + "message": { + "role": "assistant", + "content": "The attached PDF appears to be blank; no readable text or images were detected.", + "refusal": null, + "annotations": [] + }, + "finish_reason": "stop" + } + ], + "usage": { + "prompt_tokens": 241, + "completion_tokens": 19, + "total_tokens": 260, + "prompt_tokens_details": { + "cached_tokens": 0, + "audio_tokens": 0 + }, + "completion_tokens_details": { + "reasoning_tokens": 0, + "audio_tokens": 0, + "accepted_prediction_tokens": 0, + "rejected_prediction_tokens": 0 + } + }, + "service_tier": "default", + "system_fingerprint": null +} diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-72d686936d43.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-72d686936d43.txt index 7eef09b1..1e42f473 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-72d686936d43.txt +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-72d686936d43.txt @@ -1,22 +1,22 @@ -data: {"id":"chatcmpl-EJ0LOYojjhguLIfqjzUHlDoGuKiWW","object":"chat.completion.chunk","created":1788198262,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_20370cf6b8","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"sVnKo2gXZ"} +data: {"id":"chatcmpl-EhTZtsq3wAj34fkLWa7nB90p4VZW5","object":"chat.completion.chunk","created":1794030509,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_67e10b5d92","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"BaotgR9Pp"} -data: {"id":"chatcmpl-EJ0LOYojjhguLIfqjzUHlDoGuKiWW","object":"chat.completion.chunk","created":1788198262,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_20370cf6b8","choices":[{"index":0,"delta":{"content":"The"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"6FjUR3V3"} +data: {"id":"chatcmpl-EhTZtsq3wAj34fkLWa7nB90p4VZW5","object":"chat.completion.chunk","created":1794030509,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_67e10b5d92","choices":[{"index":0,"delta":{"content":"The"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"vCRtlzJM"} -data: {"id":"chatcmpl-EJ0LOYojjhguLIfqjzUHlDoGuKiWW","object":"chat.completion.chunk","created":1788198262,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_20370cf6b8","choices":[{"index":0,"delta":{"content":" capital"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Vpz"} +data: {"id":"chatcmpl-EhTZtsq3wAj34fkLWa7nB90p4VZW5","object":"chat.completion.chunk","created":1794030509,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_67e10b5d92","choices":[{"index":0,"delta":{"content":" capital"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"iUL"} -data: {"id":"chatcmpl-EJ0LOYojjhguLIfqjzUHlDoGuKiWW","object":"chat.completion.chunk","created":1788198262,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_20370cf6b8","choices":[{"index":0,"delta":{"content":" of"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"M8KwbPy6"} +data: {"id":"chatcmpl-EhTZtsq3wAj34fkLWa7nB90p4VZW5","object":"chat.completion.chunk","created":1794030509,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_67e10b5d92","choices":[{"index":0,"delta":{"content":" of"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"RfNHqJwq"} -data: {"id":"chatcmpl-EJ0LOYojjhguLIfqjzUHlDoGuKiWW","object":"chat.completion.chunk","created":1788198262,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_20370cf6b8","choices":[{"index":0,"delta":{"content":" France"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"jy1o"} +data: {"id":"chatcmpl-EhTZtsq3wAj34fkLWa7nB90p4VZW5","object":"chat.completion.chunk","created":1794030509,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_67e10b5d92","choices":[{"index":0,"delta":{"content":" France"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"ccCh"} -data: {"id":"chatcmpl-EJ0LOYojjhguLIfqjzUHlDoGuKiWW","object":"chat.completion.chunk","created":1788198262,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_20370cf6b8","choices":[{"index":0,"delta":{"content":" is"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"na7HQEbv"} +data: {"id":"chatcmpl-EhTZtsq3wAj34fkLWa7nB90p4VZW5","object":"chat.completion.chunk","created":1794030509,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_67e10b5d92","choices":[{"index":0,"delta":{"content":" is"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"v95IIKhK"} -data: {"id":"chatcmpl-EJ0LOYojjhguLIfqjzUHlDoGuKiWW","object":"chat.completion.chunk","created":1788198262,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_20370cf6b8","choices":[{"index":0,"delta":{"content":" Paris"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Ore4c"} +data: {"id":"chatcmpl-EhTZtsq3wAj34fkLWa7nB90p4VZW5","object":"chat.completion.chunk","created":1794030509,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_67e10b5d92","choices":[{"index":0,"delta":{"content":" Paris"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"NLpw5"} -data: {"id":"chatcmpl-EJ0LOYojjhguLIfqjzUHlDoGuKiWW","object":"chat.completion.chunk","created":1788198262,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_20370cf6b8","choices":[{"index":0,"delta":{"content":"."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"wPl6mZB8Fp"} +data: {"id":"chatcmpl-EhTZtsq3wAj34fkLWa7nB90p4VZW5","object":"chat.completion.chunk","created":1794030509,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_67e10b5d92","choices":[{"index":0,"delta":{"content":"."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"wpLi3jRivI"} -data: {"id":"chatcmpl-EJ0LOYojjhguLIfqjzUHlDoGuKiWW","object":"chat.completion.chunk","created":1788198262,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_20370cf6b8","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"CTMJE"} +data: {"id":"chatcmpl-EhTZtsq3wAj34fkLWa7nB90p4VZW5","object":"chat.completion.chunk","created":1794030509,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_67e10b5d92","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"4c82c"} -data: {"id":"chatcmpl-EJ0LOYojjhguLIfqjzUHlDoGuKiWW","object":"chat.completion.chunk","created":1788198262,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_20370cf6b8","choices":[],"usage":{"prompt_tokens":23,"completion_tokens":7,"total_tokens":30,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"ylAenWlEW8i"} +data: {"id":"chatcmpl-EhTZtsq3wAj34fkLWa7nB90p4VZW5","object":"chat.completion.chunk","created":1794030509,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_67e10b5d92","choices":[],"usage":{"prompt_tokens":23,"completion_tokens":7,"total_tokens":30,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"t6wvIDR1X7A"} data: [DONE] diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-7665ccbaa3f2.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-7665ccbaa3f2.txt index f89a87f8..0ce1e6bd 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-7665ccbaa3f2.txt +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-7665ccbaa3f2.txt @@ -1,22 +1,22 @@ -data: {"id":"chatcmpl-EJ0Kn2eNjMGSp0K16mHAiGM2RPZja","object":"chat.completion.chunk","created":1788198225,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_20370cf6b8","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"a2pNW0128"} +data: {"id":"chatcmpl-EhTYqjqp0Q5MV8K57frvmhIn7tMpj","object":"chat.completion.chunk","created":1794030444,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_67e10b5d92","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"epjkySd5h"} -data: {"id":"chatcmpl-EJ0Kn2eNjMGSp0K16mHAiGM2RPZja","object":"chat.completion.chunk","created":1788198225,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_20370cf6b8","choices":[{"index":0,"delta":{"content":"The"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"lML2NyEc"} +data: {"id":"chatcmpl-EhTYqjqp0Q5MV8K57frvmhIn7tMpj","object":"chat.completion.chunk","created":1794030444,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_67e10b5d92","choices":[{"index":0,"delta":{"content":"The"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"gcNKNDUq"} -data: {"id":"chatcmpl-EJ0Kn2eNjMGSp0K16mHAiGM2RPZja","object":"chat.completion.chunk","created":1788198225,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_20370cf6b8","choices":[{"index":0,"delta":{"content":" capital"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"hhE"} +data: {"id":"chatcmpl-EhTYqjqp0Q5MV8K57frvmhIn7tMpj","object":"chat.completion.chunk","created":1794030444,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_67e10b5d92","choices":[{"index":0,"delta":{"content":" capital"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"cMi"} -data: {"id":"chatcmpl-EJ0Kn2eNjMGSp0K16mHAiGM2RPZja","object":"chat.completion.chunk","created":1788198225,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_20370cf6b8","choices":[{"index":0,"delta":{"content":" of"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"JRZcxVNO"} +data: {"id":"chatcmpl-EhTYqjqp0Q5MV8K57frvmhIn7tMpj","object":"chat.completion.chunk","created":1794030444,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_67e10b5d92","choices":[{"index":0,"delta":{"content":" of"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"s68UAumj"} -data: {"id":"chatcmpl-EJ0Kn2eNjMGSp0K16mHAiGM2RPZja","object":"chat.completion.chunk","created":1788198225,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_20370cf6b8","choices":[{"index":0,"delta":{"content":" France"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Go7O"} +data: {"id":"chatcmpl-EhTYqjqp0Q5MV8K57frvmhIn7tMpj","object":"chat.completion.chunk","created":1794030444,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_67e10b5d92","choices":[{"index":0,"delta":{"content":" France"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"IBlm"} -data: {"id":"chatcmpl-EJ0Kn2eNjMGSp0K16mHAiGM2RPZja","object":"chat.completion.chunk","created":1788198225,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_20370cf6b8","choices":[{"index":0,"delta":{"content":" is"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"egBkwPIw"} +data: {"id":"chatcmpl-EhTYqjqp0Q5MV8K57frvmhIn7tMpj","object":"chat.completion.chunk","created":1794030444,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_67e10b5d92","choices":[{"index":0,"delta":{"content":" is"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"3bqZpc44"} -data: {"id":"chatcmpl-EJ0Kn2eNjMGSp0K16mHAiGM2RPZja","object":"chat.completion.chunk","created":1788198225,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_20370cf6b8","choices":[{"index":0,"delta":{"content":" Paris"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"uCPsP"} +data: {"id":"chatcmpl-EhTYqjqp0Q5MV8K57frvmhIn7tMpj","object":"chat.completion.chunk","created":1794030444,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_67e10b5d92","choices":[{"index":0,"delta":{"content":" Paris"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"6DWeL"} -data: {"id":"chatcmpl-EJ0Kn2eNjMGSp0K16mHAiGM2RPZja","object":"chat.completion.chunk","created":1788198225,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_20370cf6b8","choices":[{"index":0,"delta":{"content":"."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"BPus3v2Iq5"} +data: {"id":"chatcmpl-EhTYqjqp0Q5MV8K57frvmhIn7tMpj","object":"chat.completion.chunk","created":1794030444,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_67e10b5d92","choices":[{"index":0,"delta":{"content":"."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"ztj4Nu7ehV"} -data: {"id":"chatcmpl-EJ0Kn2eNjMGSp0K16mHAiGM2RPZja","object":"chat.completion.chunk","created":1788198225,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_20370cf6b8","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"Ule3s"} +data: {"id":"chatcmpl-EhTYqjqp0Q5MV8K57frvmhIn7tMpj","object":"chat.completion.chunk","created":1794030444,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_67e10b5d92","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"XisTa"} -data: {"id":"chatcmpl-EJ0Kn2eNjMGSp0K16mHAiGM2RPZja","object":"chat.completion.chunk","created":1788198225,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_20370cf6b8","choices":[],"usage":{"prompt_tokens":23,"completion_tokens":7,"total_tokens":30,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"W0UGenMhegZ"} +data: {"id":"chatcmpl-EhTYqjqp0Q5MV8K57frvmhIn7tMpj","object":"chat.completion.chunk","created":1794030444,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_67e10b5d92","choices":[],"usage":{"prompt_tokens":23,"completion_tokens":7,"total_tokens":30,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"fgvFOu64yV0"} data: [DONE] diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-7694b539a33b.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-7694b539a33b.json index 1cf750a7..6158cd01 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-7694b539a33b.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-7694b539a33b.json @@ -1,7 +1,7 @@ { - "id": "chatcmpl-EJ0Kzv2LCW3FanDazHqAORU8M6Bay", + "id": "chatcmpl-EhTZEVTHRWbV7Wn9SwkIpC0yRihxj", "object": "chat.completion", - "created": 1788198237, + "created": 1794030468, "model": "gpt-4o-mini-2024-07-18", "choices": [ { @@ -32,5 +32,5 @@ } }, "service_tier": "default", - "system_fingerprint": "fp_20370cf6b8" + "system_fingerprint": "fp_67e10b5d92" } diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-8410b5fb4088.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-8410b5fb4088.txt new file mode 100644 index 00000000..ddcc4a39 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-8410b5fb4088.txt @@ -0,0 +1,66 @@ +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"1"},"finish_reason":null}],"usage":null,"obfuscation":"Z"} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"a"} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"2"},"finish_reason":null}],"usage":null,"obfuscation":"R"} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"i"} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"3"},"finish_reason":null}],"usage":null,"obfuscation":"3"} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"M"} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"4"},"finish_reason":null}],"usage":null,"obfuscation":"n"} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"q"} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"5"},"finish_reason":null}],"usage":null,"obfuscation":"5"} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"X"} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"6"},"finish_reason":null}],"usage":null,"obfuscation":"i"} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"G"} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"7"},"finish_reason":null}],"usage":null,"obfuscation":"g"} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"A"} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"8"},"finish_reason":null}],"usage":null,"obfuscation":"3"} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"X"} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"9"},"finish_reason":null}],"usage":null,"obfuscation":"n"} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"l"} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"10"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"."},"finish_reason":null}],"usage":null,"obfuscation":"c"} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":null,"obfuscation":"pc5fapLbyOiA"} + +data: {"id":"chatcmpl-EhTUhKQ2IOB47CKT1t40sXDfWBOYG","object":"chat.completion.chunk","created":1794030187,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[],"usage":{"prompt_tokens":24,"completion_tokens":32,"total_tokens":56,"prompt_tokens_details":{"cached_tokens":0,"cache_write_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"howipETC01"} + +data: [DONE] + diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-84ab36b6457e.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-84ab36b6457e.txt deleted file mode 100644 index e9e3d005..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-84ab36b6457e.txt +++ /dev/null @@ -1,20 +0,0 @@ -data: {"id":"chatcmpl-EJ0Ebvt1BzwV3UmjspTfuDl3JfhNs","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Ebvt1BzwV3UmjspTfuDl3JfhNs","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":0,"delta":{"content":"Hello"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Ebvt1BzwV3UmjspTfuDl3JfhNs","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":0,"delta":{"content":"!"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Ebvt1BzwV3UmjspTfuDl3JfhNs","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":1,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Ebvt1BzwV3UmjspTfuDl3JfhNs","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":1,"delta":{"content":"Hello"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Ebvt1BzwV3UmjspTfuDl3JfhNs","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":1,"delta":{"content":"!"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Ebvt1BzwV3UmjspTfuDl3JfhNs","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null} - -data: {"id":"chatcmpl-EJ0Ebvt1BzwV3UmjspTfuDl3JfhNs","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":1,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null} - -data: {"id":"chatcmpl-EJ0Ebvt1BzwV3UmjspTfuDl3JfhNs","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[],"usage":{"prompt_tokens":22,"completion_tokens":4,"total_tokens":26,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}}} - -data: [DONE] - diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-8af21027730b.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-8af21027730b.txt new file mode 100644 index 00000000..3b8cede6 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-8af21027730b.txt @@ -0,0 +1,64 @@ +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"1"},"finish_reason":null}],"usage":null,"obfuscation":"q"} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"D"} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"2"},"finish_reason":null}],"usage":null,"obfuscation":"U"} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"u"} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"3"},"finish_reason":null}],"usage":null,"obfuscation":"S"} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"V"} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"4"},"finish_reason":null}],"usage":null,"obfuscation":"O"} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"H"} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"5"},"finish_reason":null}],"usage":null,"obfuscation":"H"} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"u"} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"6"},"finish_reason":null}],"usage":null,"obfuscation":"O"} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"r"} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"7"},"finish_reason":null}],"usage":null,"obfuscation":"6"} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"4"} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"8"},"finish_reason":null}],"usage":null,"obfuscation":"b"} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"v"} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"9"},"finish_reason":null}],"usage":null,"obfuscation":"v"} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" …"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"x"} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"10"},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":null,"obfuscation":"S2PwO76TUuHa"} + +data: {"id":"chatcmpl-EhTUdi2OvQvX3uySwlq93IB2p6Bip","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[],"usage":{"prompt_tokens":24,"completion_tokens":31,"total_tokens":55,"prompt_tokens_details":{"cached_tokens":0,"cache_write_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"RxnxoDgod2"} + +data: [DONE] + diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-90ff0ffd3a89.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-90ff0ffd3a89.txt deleted file mode 100644 index 6437855b..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-90ff0ffd3a89.txt +++ /dev/null @@ -1,88 +0,0 @@ -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"QiqthvitU"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"Sure"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"PRewRck"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"!"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"P7S4x9hXag"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" Here"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"cDlCJX"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" we"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"JX1YKhNa"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" go"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"EZAhX6kJ"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":":\n\n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"L5UMir"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"1"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"csENDJ97OW"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"K6jcNjPy"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Pty4IDa"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"2"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"ot7opnO4h8"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"7auc9b4E"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Ew5KKYn"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"3"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"6YvxX117XR"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"5eLM9zJp"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"vES0RSU"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"4"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"7Gy170HmYe"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"cfFZTacn"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"osdUSlO"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"5"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"HZQZ24haIM"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"ymKHs6CD"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"0Tc3qWH"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"6"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"ppUiS4Uitl"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"m1zlcTqy"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"dmzRPRP"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"7"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"KUrAjithlY"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"BFeptDZl"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"XXrsSxa"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"8"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"KSUO6ffYs8"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"BH14E9Ni"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"02N6yEC"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"9"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"CvOZBaDNgz"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"qg2Dsj5e"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"7K8q2tP"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"10"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"1OF5uBmxE"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"3GA9ZUnL"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n\n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"UwnaA"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"Take"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"VKHEvgg"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" your"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"jF99Sd"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" time"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"ALuISX"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"!"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"JvR27dONdT"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"1zsh8"} - -data: {"id":"chatcmpl-EJ0E7XVwjBnpW18uuvSFbsAvxk9Dl","object":"chat.completion.chunk","created":1788197811,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[],"usage":{"prompt_tokens":25,"completion_tokens":40,"total_tokens":65,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"SGrbe7T8oX"} - -data: [DONE] - diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-94957db25a8e.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-94957db25a8e.json deleted file mode 100644 index 5300117e..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-94957db25a8e.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "id": "chatcmpl-EJ0ERSVknSPeCPgBkUY4RLjd9q0iJ", - "object": "chat.completion", - "created": 1788197831, - "model": "o4-mini-2025-04-16", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "The numbers 2, 6, 12, 20, 30,… are the “pronic” (or oblong) numbers: each term is the product of two consecutive integers. In fact if you label them so that \n a₁=2, a₂=6, a₃=12… \nthen \n aₙ = n·(n+1). \n\nCheck: \nn=1 → 1·2 =2 \nn=2 → 2·3 =6 \nn=3 → 3·4 =12 \nn=4 → 4·5 =20 \nn=5 → 5·6 =30 \n\nEquivalently aₙ = n² + n.", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop" - } - ], - "usage": { - "prompt_tokens": 41, - "completion_tokens": 942, - "total_tokens": 983, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 768, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": null -} diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-f9231c22ca2c.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-9b047516da72.json similarity index 63% rename from test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-f9231c22ca2c.json rename to test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-9b047516da72.json index 8248fc4f..75220188 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-f9231c22ca2c.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-9b047516da72.json @@ -1,27 +1,27 @@ { - "id": "chatcmpl-EJ0EexW9VQDgGlFiBL316SdHPCAB3", + "id": "chatcmpl-EhTUmlF233xGw27l9J0pu7ofYkPh6", "object": "chat.completion", - "created": 1788197844, - "model": "gpt-4o-mini-2024-07-18", + "created": 1794030192, + "model": "gpt-6-luna", "choices": [ { "index": 0, "message": { "role": "assistant", - "content": "The capital of France is Paris.", + "content": "Paris.", "refusal": null, "annotations": [] }, - "logprobs": null, "finish_reason": "stop" } ], "usage": { - "prompt_tokens": 23, - "completion_tokens": 7, - "total_tokens": 30, + "prompt_tokens": 22, + "completion_tokens": 5, + "total_tokens": 27, "prompt_tokens_details": { "cached_tokens": 0, + "cache_write_tokens": 0, "audio_tokens": 0 }, "completion_tokens_details": { @@ -32,5 +32,5 @@ } }, "service_tier": "default", - "system_fingerprint": "fp_01e44b225d" + "system_fingerprint": null } diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-9ce4f9f0e189.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-9ce4f9f0e189.json new file mode 100644 index 00000000..fe88ba49 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-9ce4f9f0e189.json @@ -0,0 +1,36 @@ +{ + "id": "chatcmpl-EhTUe8RS4gNX2BpYLWrMl6xBNtYfO", + "object": "chat.completion", + "created": 1794030184, + "model": "gpt-6-luna", + "choices": [ + { + "index": 0, + "message": { + "role": "assistant", + "content": "The terms are products of consecutive integers:\n\n\\(1\\times2=2,\\;2\\times3=6,\\;3\\times4=12,\\;4\\times5=20,\\;5\\times6=30.\\)\n\nSo, starting with \\(n=1\\), the \\(n\\)th term is\n\n\\[\na_n=n(n+1).\n\\]\n\nEquivalently, the differences between terms are \\(4,6,8,10,\\ldots\\).", + "refusal": null, + "annotations": [] + }, + "finish_reason": "stop" + } + ], + "usage": { + "prompt_tokens": 41, + "completion_tokens": 152, + "total_tokens": 193, + "prompt_tokens_details": { + "cached_tokens": 0, + "cache_write_tokens": 0, + "audio_tokens": 0 + }, + "completion_tokens_details": { + "reasoning_tokens": 42, + "audio_tokens": 0, + "accepted_prediction_tokens": 0, + "rejected_prediction_tokens": 0 + } + }, + "service_tier": "default", + "system_fingerprint": null +} diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-f65c86f95add.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-9f647557628e.json similarity index 73% rename from test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-f65c86f95add.json rename to test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-9f647557628e.json index ca172cba..1da4d33f 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-f65c86f95add.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-9f647557628e.json @@ -1,14 +1,14 @@ { - "id": "chatcmpl-EJ0IY0lm8oL6WG6FSLV1e6LjYjwru", + "id": "chatcmpl-EhTYcpYg62sGFA1XWf9X8h6mQExOR", "object": "chat.completion", - "created": 1788198086, + "created": 1794030430, "model": "gpt-4o-mini-2024-07-18", "choices": [ { "index": 0, "message": { "role": "assistant", - "content": "The current temperature is the same in both Paris and New York, at 72°F, and both cities are experiencing sunny weather.", + "content": "The current temperature is the same in both Paris and New York, at 72°F.", "refusal": null, "annotations": [] }, @@ -18,8 +18,8 @@ ], "usage": { "prompt_tokens": 169, - "completion_tokens": 27, - "total_tokens": 196, + "completion_tokens": 19, + "total_tokens": 188, "prompt_tokens_details": { "cached_tokens": 0, "audio_tokens": 0 @@ -32,5 +32,5 @@ } }, "service_tier": "default", - "system_fingerprint": "fp_54940053b1" + "system_fingerprint": "fp_e0d873e413" } diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-a2986e43bb25.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-a2986e43bb25.txt deleted file mode 100644 index 8d0acdf8..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-a2986e43bb25.txt +++ /dev/null @@ -1,88 +0,0 @@ -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"Sure"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"!"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" Here"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" we"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" go"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":":\n\n"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"1"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"2"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"3"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"4"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"5"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"6"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"7"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"8"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"9"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"10"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n\n"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"Take"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" your"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" time"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"!"},"logprobs":null,"finish_reason":null}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null} - -data: {"id":"chatcmpl-EJ0Eba29v9GP4U7RIvViAezufPU31","object":"chat.completion.chunk","created":1788197841,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[],"usage":{"prompt_tokens":25,"completion_tokens":40,"total_tokens":65,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}}} - -data: [DONE] - diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-acc477a295ad.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-acc477a295ad.txt index dc2ae80b..c2968a16 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-acc477a295ad.txt +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-acc477a295ad.txt @@ -1,22 +1,22 @@ -data: {"id":"chatcmpl-EJ0IWoqbSAiwx4ZBZwwj8B0Gzjrww","object":"chat.completion.chunk","created":1788198084,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_c9a0e786b8","choices":[{"index":0,"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"id":"call_e2pu9cEmmLQ4IW23qxo0e8cM","type":"function","function":{"name":"get_weather","arguments":""}}],"refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"ab3VzbDL8"} +data: {"id":"chatcmpl-EhTYVdUaNfQu5zZINHxL3ZXS9EHar","object":"chat.completion.chunk","created":1794030423,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_e85bcce457","choices":[{"index":0,"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"id":"call_gsvfq5Yl4V1EjlbjPsDdtord","type":"function","function":{"name":"get_weather","arguments":""}}],"refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"97F7UEdCT"} -data: {"id":"chatcmpl-EJ0IWoqbSAiwx4ZBZwwj8B0Gzjrww","object":"chat.completion.chunk","created":1788198084,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_c9a0e786b8","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{\""}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"koG"} +data: {"id":"chatcmpl-EhTYVdUaNfQu5zZINHxL3ZXS9EHar","object":"chat.completion.chunk","created":1794030423,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_e85bcce457","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{\""}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"lrT"} -data: {"id":"chatcmpl-EJ0IWoqbSAiwx4ZBZwwj8B0Gzjrww","object":"chat.completion.chunk","created":1788198084,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_c9a0e786b8","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"location"}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Ojg5yS3hbIoZwE"} +data: {"id":"chatcmpl-EhTYVdUaNfQu5zZINHxL3ZXS9EHar","object":"chat.completion.chunk","created":1794030423,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_e85bcce457","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"location"}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"edQ9eb5KvEtgHw"} -data: {"id":"chatcmpl-EJ0IWoqbSAiwx4ZBZwwj8B0Gzjrww","object":"chat.completion.chunk","created":1788198084,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_c9a0e786b8","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\":\""}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"8"} +data: {"id":"chatcmpl-EhTYVdUaNfQu5zZINHxL3ZXS9EHar","object":"chat.completion.chunk","created":1794030423,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_e85bcce457","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\":\""}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"z"} -data: {"id":"chatcmpl-EJ0IWoqbSAiwx4ZBZwwj8B0Gzjrww","object":"chat.completion.chunk","created":1788198084,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_c9a0e786b8","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Paris"}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"q"} +data: {"id":"chatcmpl-EhTYVdUaNfQu5zZINHxL3ZXS9EHar","object":"chat.completion.chunk","created":1794030423,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_e85bcce457","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Paris"}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"6"} -data: {"id":"chatcmpl-EJ0IWoqbSAiwx4ZBZwwj8B0Gzjrww","object":"chat.completion.chunk","created":1788198084,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_c9a0e786b8","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":","}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"HPt9B"} +data: {"id":"chatcmpl-EhTYVdUaNfQu5zZINHxL3ZXS9EHar","object":"chat.completion.chunk","created":1794030423,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_e85bcce457","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":","}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"49XNd"} -data: {"id":"chatcmpl-EJ0IWoqbSAiwx4ZBZwwj8B0Gzjrww","object":"chat.completion.chunk","created":1788198084,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_c9a0e786b8","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" France"}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"qO2mksCmOc4HA5a"} +data: {"id":"chatcmpl-EhTYVdUaNfQu5zZINHxL3ZXS9EHar","object":"chat.completion.chunk","created":1794030423,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_e85bcce457","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" France"}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"oV45p8BJYSwrNVf"} -data: {"id":"chatcmpl-EJ0IWoqbSAiwx4ZBZwwj8B0Gzjrww","object":"chat.completion.chunk","created":1788198084,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_c9a0e786b8","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"LCJ"} +data: {"id":"chatcmpl-EhTYVdUaNfQu5zZINHxL3ZXS9EHar","object":"chat.completion.chunk","created":1794030423,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_e85bcce457","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"}"}}]},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"OyU"} -data: {"id":"chatcmpl-EJ0IWoqbSAiwx4ZBZwwj8B0Gzjrww","object":"chat.completion.chunk","created":1788198084,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_c9a0e786b8","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"tool_calls"}],"usage":null,"obfuscation":"uk5Z"} +data: {"id":"chatcmpl-EhTYVdUaNfQu5zZINHxL3ZXS9EHar","object":"chat.completion.chunk","created":1794030423,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_e85bcce457","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"tool_calls"}],"usage":null,"obfuscation":"DCd2"} -data: {"id":"chatcmpl-EJ0IWoqbSAiwx4ZBZwwj8B0Gzjrww","object":"chat.completion.chunk","created":1788198084,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_c9a0e786b8","choices":[],"usage":{"prompt_tokens":68,"completion_tokens":16,"total_tokens":84,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"TSOAZKr6kjMdSet"} +data: {"id":"chatcmpl-EhTYVdUaNfQu5zZINHxL3ZXS9EHar","object":"chat.completion.chunk","created":1794030423,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_e85bcce457","choices":[],"usage":{"prompt_tokens":68,"completion_tokens":16,"total_tokens":84,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"yLUiT2BP2b6Tr3i"} data: [DONE] diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-39f585d9410d.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-b3799c77ab75.json similarity index 66% rename from test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-39f585d9410d.json rename to test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-b3799c77ab75.json index 7c9e0a98..b5f1fa4a 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-39f585d9410d.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-b3799c77ab75.json @@ -1,8 +1,8 @@ { - "id": "chatcmpl-EJ0EX8BbG10a6bE125f2lc1TpBnGm", + "id": "chatcmpl-EhTUcUwM5jOq0W4Q24MlYk2D2Shn4", "object": "chat.completion", - "created": 1788197837, - "model": "gpt-4o-2024-08-06", + "created": 1794030182, + "model": "gpt-6-luna", "choices": [ { "index": 0, @@ -11,27 +11,27 @@ "content": null, "tool_calls": [ { - "id": "call_HG8jr2U4gv4upye4auQWJmbD", + "id": "call_GxDIfud7oyzsSSC2cqrwWqOv", "type": "function", "function": { "name": "get_weather", - "arguments": "{\"location\":\"Paris, France\"}" + "arguments": "{\"location\":\"Paris, France\",\"unit\":\"celsius\"}" } } ], "refusal": null, "annotations": [] }, - "logprobs": null, "finish_reason": "tool_calls" } ], "usage": { - "prompt_tokens": 85, - "completion_tokens": 16, - "total_tokens": 101, + "prompt_tokens": 166, + "completion_tokens": 24, + "total_tokens": 190, "prompt_tokens_details": { "cached_tokens": 0, + "cache_write_tokens": 0, "audio_tokens": 0 }, "completion_tokens_details": { @@ -42,5 +42,5 @@ } }, "service_tier": "default", - "system_fingerprint": "fp_0d2be5c9bb" + "system_fingerprint": null } diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-b37b5b6a1b4d.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-b37b5b6a1b4d.txt deleted file mode 100644 index 5edf4704..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-b37b5b6a1b4d.txt +++ /dev/null @@ -1,20 +0,0 @@ -data: {"id":"chatcmpl-EJ0EdMMWZ43csn0VNVVpnmqQmty14","object":"chat.completion.chunk","created":1788197843,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Nxf0rKhRU"} - -data: {"id":"chatcmpl-EJ0EdMMWZ43csn0VNVVpnmqQmty14","object":"chat.completion.chunk","created":1788197843,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":0,"delta":{"content":"Hello"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"tbET52"} - -data: {"id":"chatcmpl-EJ0EdMMWZ43csn0VNVVpnmqQmty14","object":"chat.completion.chunk","created":1788197843,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":0,"delta":{"content":"!"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"lxTVKfbJQX"} - -data: {"id":"chatcmpl-EJ0EdMMWZ43csn0VNVVpnmqQmty14","object":"chat.completion.chunk","created":1788197843,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":1,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"L0PuRHHja"} - -data: {"id":"chatcmpl-EJ0EdMMWZ43csn0VNVVpnmqQmty14","object":"chat.completion.chunk","created":1788197843,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":1,"delta":{"content":"Hello"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"lbxTYb"} - -data: {"id":"chatcmpl-EJ0EdMMWZ43csn0VNVVpnmqQmty14","object":"chat.completion.chunk","created":1788197843,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":1,"delta":{"content":"!"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"GqrAYcPzLX"} - -data: {"id":"chatcmpl-EJ0EdMMWZ43csn0VNVVpnmqQmty14","object":"chat.completion.chunk","created":1788197843,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"cM39Y"} - -data: {"id":"chatcmpl-EJ0EdMMWZ43csn0VNVVpnmqQmty14","object":"chat.completion.chunk","created":1788197843,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":1,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"ZfuOp"} - -data: {"id":"chatcmpl-EJ0EdMMWZ43csn0VNVVpnmqQmty14","object":"chat.completion.chunk","created":1788197843,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[],"usage":{"prompt_tokens":22,"completion_tokens":4,"total_tokens":26,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"pbEA0kJ5LMs"} - -data: [DONE] - diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-b5bcb38ce8df.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-b5bcb38ce8df.json deleted file mode 100644 index 28fbcdb6..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-b5bcb38ce8df.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "id": "chatcmpl-EJ0Ep4pczItKj6LOlfYzg8eHSjsXJ", - "object": "chat.completion", - "created": 1788197855, - "model": "o4-mini-2025-04-16", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "The sequence is\n\n 2, 6, 12, 20, 30, …\n\nObserve the gaps:\n\n 6−2=4, 12−6=6, 20−12=8, 30−20=10, …\n\nso you’re adding 4,6,8,10,… i.e. the even numbers from 4 upward. Equivalently the second differences are constant (2), so the \\(n\\)th term is a quadratic in \\(n\\). Fitting \n\\[a_n = an^2 + bn + c\\]\nto \\(a_1=2,\\;a_2=6,\\;a_3=12\\) gives \\(a=1,\\;b=1,\\;c=0\\), hence\n\nAnswer: \n \\[\n a_n = n^2 + n \\;=\\; n(n+1),\n \\quad n=1,2,3,\\dots\n \\]\n\nThese are called the “pronic” (or “oblong”) numbers.", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop" - } - ], - "usage": { - "prompt_tokens": 41, - "completion_tokens": 1073, - "total_tokens": 1114, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 832, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": null -} diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-b9d0ec1622b9.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-b9d0ec1622b9.json new file mode 100644 index 00000000..20bdf776 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-b9d0ec1622b9.json @@ -0,0 +1,35 @@ +{ + "id": "chatcmpl-EhTUpVncWAW9w9XO565yYrheVybxN", + "object": "chat.completion", + "created": 1794030195, + "model": "gpt-6-luna", + "choices": [ + { + "index": 0, + "message": { + "role": "assistant", + "content": "The attached PDF appears to be blank or unreadable; I couldn’t identify any content to describe.", + "refusal": null, + "annotations": [] + }, + "finish_reason": "stop" + } + ], + "usage": { + "prompt_tokens": 241, + "completion_tokens": 23, + "total_tokens": 264, + "prompt_tokens_details": { + "cached_tokens": 0, + "audio_tokens": 0 + }, + "completion_tokens_details": { + "reasoning_tokens": 0, + "audio_tokens": 0, + "accepted_prediction_tokens": 0, + "rejected_prediction_tokens": 0 + } + }, + "service_tier": "default", + "system_fingerprint": null +} diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-b9ecbd8616dd.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-b9ecbd8616dd.json deleted file mode 100644 index 2da1a28c..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-b9ecbd8616dd.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "id": "chatcmpl-EJ0EHq2SFPWExh96BsExA5ylGZCrN", - "object": "chat.completion", - "created": 1788197821, - "model": "o4-mini-2025-04-16", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "The sequence \n 2, 6, 12, 20, 30, … \n\nhas first differences \n 6−2=4, 12−6=6, 20−12=8, 30−20=10, … \nwhich increase by 2 each time. In fact \n a₁=2=1·2, \n a₂=6=2·3, \n a₃=12=3·4, … \n\nSo the nth term is the product of two consecutive integers: \n formula: aₙ = n·(n+1). \n\nEquivalently, aₙ = n² + n.", - "refusal": null, - "annotations": [] - }, - "finish_reason": "stop" - } - ], - "usage": { - "prompt_tokens": 41, - "completion_tokens": 992, - "total_tokens": 1033, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 832, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": null -} diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-f76ff3cb2426.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-ca2a7e5e08d0.json similarity index 66% rename from test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-f76ff3cb2426.json rename to test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-ca2a7e5e08d0.json index 4825333e..8f3855bc 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-f76ff3cb2426.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-ca2a7e5e08d0.json @@ -1,8 +1,8 @@ { - "id": "chatcmpl-EJ0E5xYKDgNBWpjwMT0kzT4kllsNJ", + "id": "chatcmpl-EhTUaUpQv4F4AbcftvnO7rmnCK04f", "object": "chat.completion", - "created": 1788197809, - "model": "gpt-4o-2024-08-06", + "created": 1794030180, + "model": "gpt-6-luna", "choices": [ { "index": 0, @@ -11,27 +11,27 @@ "content": null, "tool_calls": [ { - "id": "call_6vk1bjVBG6wkxvgeSAwWUMH2", + "id": "call_jt0MhqNwzTbkMPgfVSkTn0MC", "type": "function", "function": { "name": "get_weather", - "arguments": "{\"location\":\"Paris, France\"}" + "arguments": "{\"location\":\"Paris, France\",\"unit\":\"celsius\"}" } } ], "refusal": null, "annotations": [] }, - "logprobs": null, "finish_reason": "tool_calls" } ], "usage": { - "prompt_tokens": 85, - "completion_tokens": 16, - "total_tokens": 101, + "prompt_tokens": 166, + "completion_tokens": 24, + "total_tokens": 190, "prompt_tokens_details": { "cached_tokens": 0, + "cache_write_tokens": 0, "audio_tokens": 0 }, "completion_tokens_details": { @@ -42,5 +42,5 @@ } }, "service_tier": "default", - "system_fingerprint": "fp_0d2be5c9bb" + "system_fingerprint": null } diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-d105cf12ad90.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-d105cf12ad90.txt deleted file mode 100644 index d618161c..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-d105cf12ad90.txt +++ /dev/null @@ -1,88 +0,0 @@ -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"OUTJ132h6"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"Sure"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"gwXt1NM"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"!"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"IcxPNPQNHN"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" Here"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"kkmQt6"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" we"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"N8PohBbv"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" go"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"UBx5QCMC"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":":\n\n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"b8sFKL"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"1"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"XCdCr9ayZ3"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"n6qNHxQq"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"WkgXpSK"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"2"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"kPiY5XAXQO"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"1gVS3hW4"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"j6Kvmn5"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"3"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"TzHuVTRjb1"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"imw5QVNR"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"9MUnhDJ"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"4"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"uKhqber3x6"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"fAE5ug0F"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"TeKhTea"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"5"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"FqU1Ipjhn3"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"W9EO12DJ"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"ZW48bUR"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"6"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"dKd7QiWKYI"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"V27bMSgX"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"pZpvPUy"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"7"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"BwYjfvvfO3"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"gjJlLOpb"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"StZD9d0"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"8"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"1irDLtBCmN"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"PhiuNYJB"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"2i3jgfm"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"9"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"GesODhKIxs"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"KFjrOC45"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"j2rQKzR"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"10"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"OCE7bHafu"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"..."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"cT3xRlXI"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" \n\n"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"7bZZt"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"Take"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"CYlGwew"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" your"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"UmeROx"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":" time"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"2sa8El"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{"content":"!"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"OE1tT3OoDa"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"Wi0ak"} - -data: {"id":"chatcmpl-EJ0E8bANvjeLdhonxYbhfTmX5kmfe","object":"chat.completion.chunk","created":1788197812,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_11d07b7a95","choices":[],"usage":{"prompt_tokens":25,"completion_tokens":40,"total_tokens":65,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"b8R3eJUg8Q"} - -data: [DONE] - diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-d15b79dfd4a5.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-d15b79dfd4a5.txt new file mode 100644 index 00000000..4100da09 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-d15b79dfd4a5.txt @@ -0,0 +1,16 @@ +data: {"id":"chatcmpl-EhTUd70sUn2jfgnsXWAjgduV7gTVs","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUd70sUn2jfgnsXWAjgduV7gTVs","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"Hello"},"finish_reason":null}],"usage":null,"obfuscation":"mLZ3SDOJ34hHl"} + +data: {"id":"chatcmpl-EhTUd70sUn2jfgnsXWAjgduV7gTVs","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":1,"delta":{"role":"assistant","content":"","refusal":null},"finish_reason":null}],"usage":null,"obfuscation":""} + +data: {"id":"chatcmpl-EhTUd70sUn2jfgnsXWAjgduV7gTVs","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":1,"delta":{"content":"Hello"},"finish_reason":null}],"usage":null,"obfuscation":"Qy5UioGnYE9NX"} + +data: {"id":"chatcmpl-EhTUd70sUn2jfgnsXWAjgduV7gTVs","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":null,"obfuscation":"421ZWXHYxAdo"} + +data: {"id":"chatcmpl-EhTUd70sUn2jfgnsXWAjgduV7gTVs","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[{"index":1,"delta":{},"finish_reason":"stop"}],"usage":null,"obfuscation":"9QzZhwUFZhUX"} + +data: {"id":"chatcmpl-EhTUd70sUn2jfgnsXWAjgduV7gTVs","object":"chat.completion.chunk","created":1794030183,"model":"gpt-6-luna","service_tier":"default","system_fingerprint":null,"choices":[],"usage":{"prompt_tokens":21,"completion_tokens":8,"total_tokens":29,"prompt_tokens_details":{"cached_tokens":0,"cache_write_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"rmwIFq6wjFR"} + +data: [DONE] + diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-d46fc8497cd8.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-d46fc8497cd8.json deleted file mode 100644 index a10b7dba..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-d46fc8497cd8.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "id": "chatcmpl-EJ0EAvDqEI1dhssU5I6wvdZjCPifN", - "object": "chat.completion", - "created": 1788197814, - "model": "gpt-4o-2024-08-06", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "The first attachment is a solid red square, likely an image file. The second attachment is a PDF file named \"blank.pdf,\" which appears to contain no readable content or text.", - "refusal": null, - "annotations": [] - }, - "logprobs": null, - "finish_reason": "stop" - } - ], - "usage": { - "prompt_tokens": 495, - "completion_tokens": 36, - "total_tokens": 531, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": "fp_ffd8308b42" -} diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-d5e020458f20.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-d5e020458f20.json index 3e793674..f15fb4ce 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-d5e020458f20.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-d5e020458f20.json @@ -1,7 +1,7 @@ { - "id": "chatcmpl-EJ0IZiWb5D4rQ54CEVxmn2IaxoTNI", + "id": "chatcmpl-EhTYdXVrpMtTgUKd4HZr0Sx3WbkIj", "object": "chat.completion", - "created": 1788198087, + "created": 1794030431, "model": "gpt-4o-mini-2024-07-18", "choices": [ { @@ -32,5 +32,5 @@ } }, "service_tier": "default", - "system_fingerprint": "fp_fdc0967d89" + "system_fingerprint": "fp_d932b185f7" } diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-d99c904d7981.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-d99c904d7981.txt deleted file mode 100644 index d673a249..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-d99c904d7981.txt +++ /dev/null @@ -1,20 +0,0 @@ -data: {"id":"chatcmpl-EJ0EaZUY0yqFa5S5YCHubC5v9Dvj6","object":"chat.completion.chunk","created":1788197840,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"UOQs9VIDy"} - -data: {"id":"chatcmpl-EJ0EaZUY0yqFa5S5YCHubC5v9Dvj6","object":"chat.completion.chunk","created":1788197840,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":0,"delta":{"content":"Hello"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"fuqATI"} - -data: {"id":"chatcmpl-EJ0EaZUY0yqFa5S5YCHubC5v9Dvj6","object":"chat.completion.chunk","created":1788197840,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":0,"delta":{"content":"!"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"vNKRDrBTum"} - -data: {"id":"chatcmpl-EJ0EaZUY0yqFa5S5YCHubC5v9Dvj6","object":"chat.completion.chunk","created":1788197840,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":1,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"ywzLrllqq"} - -data: {"id":"chatcmpl-EJ0EaZUY0yqFa5S5YCHubC5v9Dvj6","object":"chat.completion.chunk","created":1788197840,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":1,"delta":{"content":"Hello"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"pnJMPM"} - -data: {"id":"chatcmpl-EJ0EaZUY0yqFa5S5YCHubC5v9Dvj6","object":"chat.completion.chunk","created":1788197840,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":1,"delta":{"content":"!"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"anm9iT3Rq8"} - -data: {"id":"chatcmpl-EJ0EaZUY0yqFa5S5YCHubC5v9Dvj6","object":"chat.completion.chunk","created":1788197840,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"Ybnbf"} - -data: {"id":"chatcmpl-EJ0EaZUY0yqFa5S5YCHubC5v9Dvj6","object":"chat.completion.chunk","created":1788197840,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[{"index":1,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"FhdMA"} - -data: {"id":"chatcmpl-EJ0EaZUY0yqFa5S5YCHubC5v9Dvj6","object":"chat.completion.chunk","created":1788197840,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_617e1c99b5","choices":[],"usage":{"prompt_tokens":22,"completion_tokens":4,"total_tokens":26,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"XW3TMbx4cz8"} - -data: [DONE] - diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-da9f72e19a5c.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-da9f72e19a5c.json index 51d8b20d..cda23c75 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-da9f72e19a5c.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-da9f72e19a5c.json @@ -1,7 +1,7 @@ { - "id": "chatcmpl-EJ0LWOCqnZD1DZvPERHyShhkijvhV", + "id": "chatcmpl-EhTa0dR2ob23xGIAMD1iY3a4zdAQn", "object": "chat.completion", - "created": 1788198270, + "created": 1794030516, "model": "gpt-4o-mini-2024-07-18", "choices": [ { @@ -32,5 +32,5 @@ } }, "service_tier": "default", - "system_fingerprint": "fp_a2de2bff52" + "system_fingerprint": "fp_e327275518" } diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-e7e0dbcb72a1.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-dca65885c63b.json similarity index 67% rename from test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-e7e0dbcb72a1.json rename to test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-dca65885c63b.json index ae09bd55..9d7e3675 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-e7e0dbcb72a1.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-dca65885c63b.json @@ -1,14 +1,14 @@ { - "id": "chatcmpl-EJ0IL9lmAb5HDVJIYnEc3dO0x8iOb", + "id": "chatcmpl-EhTYMasJRhvJhKYS0urnDZtf1ANR1", "object": "chat.completion", - "created": 1788198073, + "created": 1794030414, "model": "gpt-4o-mini-2024-07-18", "choices": [ { "index": 0, "message": { "role": "assistant", - "content": "The current temperature in both Paris and New York is 72°F, so it is the same in both cities right now.", + "content": "The current temperature is the same in both Paris and New York, at 72°F.", "refusal": null, "annotations": [] }, @@ -18,8 +18,8 @@ ], "usage": { "prompt_tokens": 169, - "completion_tokens": 26, - "total_tokens": 195, + "completion_tokens": 19, + "total_tokens": 188, "prompt_tokens_details": { "cached_tokens": 0, "audio_tokens": 0 @@ -32,5 +32,5 @@ } }, "service_tier": "default", - "system_fingerprint": "fp_54940053b1" + "system_fingerprint": "fp_e0d873e413" } diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-0cc26297bcc1.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-e236e31e1cb4.json similarity index 66% rename from test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-0cc26297bcc1.json rename to test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-e236e31e1cb4.json index 09692f7e..0cbf46a6 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-0cc26297bcc1.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-e236e31e1cb4.json @@ -1,8 +1,8 @@ { - "id": "chatcmpl-EJ0EYWAR5JEsdiBHX5HNYzDjo0t8E", + "id": "chatcmpl-EhTUjK3TE5dYsvaH3Bc2yQmv2eG5y", "object": "chat.completion", - "created": 1788197838, - "model": "gpt-4o-2024-08-06", + "created": 1794030189, + "model": "gpt-6-luna", "choices": [ { "index": 0, @@ -11,27 +11,27 @@ "content": null, "tool_calls": [ { - "id": "call_NpP8IKPMjzwEkmeYXoyQe0sV", + "id": "call_GdcF6AZTc5PO9qdUTfUK0SWO", "type": "function", "function": { "name": "get_weather", - "arguments": "{\"location\":\"Paris, France\"}" + "arguments": "{\"location\":\"Paris, France\",\"unit\":\"celsius\"}" } } ], "refusal": null, "annotations": [] }, - "logprobs": null, "finish_reason": "tool_calls" } ], "usage": { - "prompt_tokens": 85, - "completion_tokens": 16, - "total_tokens": 101, + "prompt_tokens": 166, + "completion_tokens": 24, + "total_tokens": 190, "prompt_tokens_details": { "cached_tokens": 0, + "cache_write_tokens": 0, "audio_tokens": 0 }, "completion_tokens_details": { @@ -42,5 +42,5 @@ } }, "service_tier": "default", - "system_fingerprint": "fp_0d2be5c9bb" + "system_fingerprint": null } diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-e2aaee62ff13.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-e2aaee62ff13.txt index 147c2f8e..6a50d555 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-e2aaee62ff13.txt +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-e2aaee62ff13.txt @@ -1,22 +1,22 @@ -data: {"id":"chatcmpl-EJ0M3bBan3xwMxo53cSPLlvt0EpN8","object":"chat.completion.chunk","created":1788198303,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null} +data: {"id":"chatcmpl-EhTaQNLFi0mPpQgzoHfzY7a7xG0zf","object":"chat.completion.chunk","created":1794030542,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null} -data: {"id":"chatcmpl-EJ0M3bBan3xwMxo53cSPLlvt0EpN8","object":"chat.completion.chunk","created":1788198303,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[{"index":0,"delta":{"content":"The"},"logprobs":null,"finish_reason":null}],"usage":null} +data: {"id":"chatcmpl-EhTaQNLFi0mPpQgzoHfzY7a7xG0zf","object":"chat.completion.chunk","created":1794030542,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"content":"The"},"logprobs":null,"finish_reason":null}],"usage":null} -data: {"id":"chatcmpl-EJ0M3bBan3xwMxo53cSPLlvt0EpN8","object":"chat.completion.chunk","created":1788198303,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[{"index":0,"delta":{"content":" capital"},"logprobs":null,"finish_reason":null}],"usage":null} +data: {"id":"chatcmpl-EhTaQNLFi0mPpQgzoHfzY7a7xG0zf","object":"chat.completion.chunk","created":1794030542,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"content":" capital"},"logprobs":null,"finish_reason":null}],"usage":null} -data: {"id":"chatcmpl-EJ0M3bBan3xwMxo53cSPLlvt0EpN8","object":"chat.completion.chunk","created":1788198303,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[{"index":0,"delta":{"content":" of"},"logprobs":null,"finish_reason":null}],"usage":null} +data: {"id":"chatcmpl-EhTaQNLFi0mPpQgzoHfzY7a7xG0zf","object":"chat.completion.chunk","created":1794030542,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"content":" of"},"logprobs":null,"finish_reason":null}],"usage":null} -data: {"id":"chatcmpl-EJ0M3bBan3xwMxo53cSPLlvt0EpN8","object":"chat.completion.chunk","created":1788198303,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[{"index":0,"delta":{"content":" France"},"logprobs":null,"finish_reason":null}],"usage":null} +data: {"id":"chatcmpl-EhTaQNLFi0mPpQgzoHfzY7a7xG0zf","object":"chat.completion.chunk","created":1794030542,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"content":" France"},"logprobs":null,"finish_reason":null}],"usage":null} -data: {"id":"chatcmpl-EJ0M3bBan3xwMxo53cSPLlvt0EpN8","object":"chat.completion.chunk","created":1788198303,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[{"index":0,"delta":{"content":" is"},"logprobs":null,"finish_reason":null}],"usage":null} +data: {"id":"chatcmpl-EhTaQNLFi0mPpQgzoHfzY7a7xG0zf","object":"chat.completion.chunk","created":1794030542,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"content":" is"},"logprobs":null,"finish_reason":null}],"usage":null} -data: {"id":"chatcmpl-EJ0M3bBan3xwMxo53cSPLlvt0EpN8","object":"chat.completion.chunk","created":1788198303,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[{"index":0,"delta":{"content":" Paris"},"logprobs":null,"finish_reason":null}],"usage":null} +data: {"id":"chatcmpl-EhTaQNLFi0mPpQgzoHfzY7a7xG0zf","object":"chat.completion.chunk","created":1794030542,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"content":" Paris"},"logprobs":null,"finish_reason":null}],"usage":null} -data: {"id":"chatcmpl-EJ0M3bBan3xwMxo53cSPLlvt0EpN8","object":"chat.completion.chunk","created":1788198303,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[{"index":0,"delta":{"content":"."},"logprobs":null,"finish_reason":null}],"usage":null} +data: {"id":"chatcmpl-EhTaQNLFi0mPpQgzoHfzY7a7xG0zf","object":"chat.completion.chunk","created":1794030542,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"content":"."},"logprobs":null,"finish_reason":null}],"usage":null} -data: {"id":"chatcmpl-EJ0M3bBan3xwMxo53cSPLlvt0EpN8","object":"chat.completion.chunk","created":1788198303,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null} +data: {"id":"chatcmpl-EhTaQNLFi0mPpQgzoHfzY7a7xG0zf","object":"chat.completion.chunk","created":1794030542,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null} -data: {"id":"chatcmpl-EJ0M3bBan3xwMxo53cSPLlvt0EpN8","object":"chat.completion.chunk","created":1788198303,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[],"usage":{"prompt_tokens":14,"completion_tokens":7,"total_tokens":21,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}}} +data: {"id":"chatcmpl-EhTaQNLFi0mPpQgzoHfzY7a7xG0zf","object":"chat.completion.chunk","created":1794030542,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[],"usage":{"prompt_tokens":14,"completion_tokens":7,"total_tokens":21,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}}} data: [DONE] diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-e377d6681642.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-e377d6681642.txt index 6e5f8739..173a082c 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-e377d6681642.txt +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-e377d6681642.txt @@ -1,22 +1,22 @@ -data: {"id":"chatcmpl-EJ0IVxK2ni8r4MXavgxa73cQBWqJS","object":"chat.completion.chunk","created":1788198083,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"JjFYJR3zx"} +data: {"id":"chatcmpl-EhTYRChBfZkDfQbhoMLrUkiyIT73r","object":"chat.completion.chunk","created":1794030419,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"yVkL2W0MS"} -data: {"id":"chatcmpl-EJ0IVxK2ni8r4MXavgxa73cQBWqJS","object":"chat.completion.chunk","created":1788198083,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[{"index":0,"delta":{"content":"The"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"xRaJFBO9"} +data: {"id":"chatcmpl-EhTYRChBfZkDfQbhoMLrUkiyIT73r","object":"chat.completion.chunk","created":1794030419,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"content":"The"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"3fP2Lys8"} -data: {"id":"chatcmpl-EJ0IVxK2ni8r4MXavgxa73cQBWqJS","object":"chat.completion.chunk","created":1788198083,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[{"index":0,"delta":{"content":" capital"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"ERZ"} +data: {"id":"chatcmpl-EhTYRChBfZkDfQbhoMLrUkiyIT73r","object":"chat.completion.chunk","created":1794030419,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"content":" capital"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"hll"} -data: {"id":"chatcmpl-EJ0IVxK2ni8r4MXavgxa73cQBWqJS","object":"chat.completion.chunk","created":1788198083,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[{"index":0,"delta":{"content":" of"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"kxUCfQkS"} +data: {"id":"chatcmpl-EhTYRChBfZkDfQbhoMLrUkiyIT73r","object":"chat.completion.chunk","created":1794030419,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"content":" of"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"6zhAmwgm"} -data: {"id":"chatcmpl-EJ0IVxK2ni8r4MXavgxa73cQBWqJS","object":"chat.completion.chunk","created":1788198083,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[{"index":0,"delta":{"content":" France"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"E48H"} +data: {"id":"chatcmpl-EhTYRChBfZkDfQbhoMLrUkiyIT73r","object":"chat.completion.chunk","created":1794030419,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"content":" France"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"2avv"} -data: {"id":"chatcmpl-EJ0IVxK2ni8r4MXavgxa73cQBWqJS","object":"chat.completion.chunk","created":1788198083,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[{"index":0,"delta":{"content":" is"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"RJ7buVJt"} +data: {"id":"chatcmpl-EhTYRChBfZkDfQbhoMLrUkiyIT73r","object":"chat.completion.chunk","created":1794030419,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"content":" is"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"fdfKBsqh"} -data: {"id":"chatcmpl-EJ0IVxK2ni8r4MXavgxa73cQBWqJS","object":"chat.completion.chunk","created":1788198083,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[{"index":0,"delta":{"content":" Paris"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"2SZVg"} +data: {"id":"chatcmpl-EhTYRChBfZkDfQbhoMLrUkiyIT73r","object":"chat.completion.chunk","created":1794030419,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"content":" Paris"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"lJPW5"} -data: {"id":"chatcmpl-EJ0IVxK2ni8r4MXavgxa73cQBWqJS","object":"chat.completion.chunk","created":1788198083,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[{"index":0,"delta":{"content":"."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"FRm8zdmA1D"} +data: {"id":"chatcmpl-EhTYRChBfZkDfQbhoMLrUkiyIT73r","object":"chat.completion.chunk","created":1794030419,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{"content":"."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"DuVmdlNz28"} -data: {"id":"chatcmpl-EJ0IVxK2ni8r4MXavgxa73cQBWqJS","object":"chat.completion.chunk","created":1788198083,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"rMV9J"} +data: {"id":"chatcmpl-EhTYRChBfZkDfQbhoMLrUkiyIT73r","object":"chat.completion.chunk","created":1794030419,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"kuSh3"} -data: {"id":"chatcmpl-EJ0IVxK2ni8r4MXavgxa73cQBWqJS","object":"chat.completion.chunk","created":1788198083,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_fdc0967d89","choices":[],"usage":{"prompt_tokens":14,"completion_tokens":7,"total_tokens":21,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"1tEkJ4Ia0Wq"} +data: {"id":"chatcmpl-EhTYRChBfZkDfQbhoMLrUkiyIT73r","object":"chat.completion.chunk","created":1794030419,"model":"gpt-4o-mini-2024-07-18","service_tier":"default","system_fingerprint":"fp_d932b185f7","choices":[],"usage":{"prompt_tokens":14,"completion_tokens":7,"total_tokens":21,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"9efabvC4rvF"} data: [DONE] diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-f8a5ac27188a.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-f8a5ac27188a.json deleted file mode 100644 index 60b619d3..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/chat_completions-f8a5ac27188a.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "id": "chatcmpl-EJ0EBmejmHqJyetvRCxNHHkMFgnmX", - "object": "chat.completion", - "created": 1788197815, - "model": "gpt-4o-2024-08-06", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": "The first attachment is a solid red square, which appears to be a plain red image with no additional content or details.\n\nThe second attachment, \"blank.pdf,\" is a document that contains no readable content or images. It appears to be completely blank.", - "refusal": null, - "annotations": [] - }, - "logprobs": null, - "finish_reason": "stop" - } - ], - "usage": { - "prompt_tokens": 495, - "completion_tokens": 50, - "total_tokens": 545, - "prompt_tokens_details": { - "cached_tokens": 0, - "audio_tokens": 0 - }, - "completion_tokens_details": { - "reasoning_tokens": 0, - "audio_tokens": 0, - "accepted_prediction_tokens": 0, - "rejected_prediction_tokens": 0 - } - }, - "service_tier": "default", - "system_fingerprint": "fp_ffd8308b42" -} diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/images_generations-587a6f86c3df.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/images_generations-587a6f86c3df.json new file mode 100644 index 00000000..a459406c --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/images_generations-587a6f86c3df.json @@ -0,0 +1,27 @@ +{ + "created": 1794030462, + "background": "opaque", + "data": [ + { + "b64_json": "iVBORw0KGgoAAAANSUhEUgAABAAAAAQACAIAAADwf7zUAABcGmNhQlgAAFwaanVtYgAAAB5qdW1kYzJwYQARABCAAACqADibcQNjMnBhAAAAW/RqdW1iAAAAR2p1bWRjMm1hABEAEIAAAKoAOJtxA3VybjpjMnBhOjcwNDQ2YWE2LTRiNmEtNDk3Ni1iM2IxLTQ0YTQ1Y2ExOWUxNwAAAAwwanVtYgAAAClqdW1kYzJhcwARABCAAACqADibcQNjMnBhLmFzc2VydGlvbnMAAAAJ0Wp1bWIAAAA7anVtZEDLDDK7ikidpwsq1vR/Q2kTYzJwYS5pY29uAAAAABhjMnNowD5JfptPY6780mJYMHIzSgAAABdiZmRiAGltYWdlL3N2Zyt4bWwAAAAJd2JpZGI8c3ZnIHdpZHRoPSI3MTYiIGhlaWdodD0iNzE2IiB2aWV3Qm94PSIwIDAgNzE2IDcxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTUwOC43NDkgMzE3LjM5OUM1MTYuNzc3IDI4Ny4zMTQgNTA4Ljk5MSAyNTMuODg0IDQ4NS4zODkgMjMwLjI4MkM0NjEuNzg4IDIwNi42ODEgNDI4LjM2IDE5OC44OTUgMzk4LjI3MyAyMDYuOTIzQzM3Ni4yMzEgMTg0LjkyOCAzNDMuMzkgMTc0Ljk1NiAzMTEuMTQ4IDE4My41OTZDMjc4LjkwNiAxOTIuMjM0IDI1NS40NSAyMTcuMjkyIDI0Ny4zNiAyNDcuMzYxQzIxNy4yOTEgMjU1LjQ1MSAxOTIuMjMzIDI3OC45MSAxODMuNTk1IDMxMS4xNDlDMTc0Ljk1NyAzNDMuMzkxIDE4NC45MjcgMzc2LjIzMiAyMDYuOTI0IDM5OC4yNzRDMTk4Ljg5NiA0MjguMzU5IDIwNi42ODMgNDYxLjc4OSAyMzAuMjg0IDQ4NS4zOTFDMjUzLjg4NSA1MDguOTkyIDI4Ny4zMTMgNTE2Ljc3OSAzMTcuNDAxIDUwOC43NUMzMzkuNDQyIDUzMC43NDUgMzcyLjI4NiA1NDAuNzE3IDQwNC41MjUgNTMyLjA3OUM0MzYuNzY3IDUyMy40NDEgNDYwLjIyMyA0OTguMzg0IDQ2OC4zMTMgNDY4LjMxNUM0OTguMzgzIDQ2MC4yMjQgNTIzLjQ0IDQzNi43NjYgNTMyLjA3OCA0MDQuNTI2QzU0MC43MTYgMzcyLjI4NSA1MzAuNzQ3IDMzOS40NDMgNTA4Ljc0OSAzMTcuNDAyVjMxNy4zOTlaTTQ3MC44OTkgMjQ0Ljc3NkM0ODYuODkyIDI2MC43NyA0OTMuNDg4IDI4Mi42MDEgNDkwLjY4NyAzMDMuNDEyTDQxNS41NzcgMjYwLjA0NkM0MTIuNDExIDI1OC4yMTggNDA4LjUwOSAyNTguMjE4IDQwNS4zNDUgMjYwLjA0NkwzMTcuNDAxIDMxMC44MlYyNzcuNTI2QzMxNy40MDEgMjc1LjE5MSAzMTguNjUyIDI3My4wMDUgMzIwLjY3NiAyNzEuODM3TDM4Ny42NDQgMjMzLjE3NEM0MTQuMTc4IDIxOC4zNTMgNDQ4LjM0NiAyMjIuMjIzIDQ3MC45MDEgMjQ0Ljc3Nkg0NzAuODk5Wk0zNTcuODM3IDMxMS4xNDRMMzk4LjI3NSAzMzQuNDkxVjM4MS4xODVMMzU3LjgzNyA0MDQuNTMyTDMxNy4zOTggMzgxLjE4NVYzMzQuNDkxTDM1Ny44MzcgMzExLjE0NFpNMjY0Ljc3NiAyNjkuNjkzQzI2NS4yMDcgMjM5LjMwNSAyODUuNjQ0IDIxMS42NDkgMzE2LjQ1MyAyMDMuMzkzQzMzOC4zIDE5Ny41NCAzNjAuNTA1IDIwMi43NDQgMzc3LjEyNyAyMTUuNTczTDMwMi4wMTQgMjU4LjkzN0MyOTguODQ4IDI2MC43NjQgMjk2Ljg5OCAyNjQuMTQ0IDI5Ni44OTggMjY3Ljc5OFYzNjkuMzQ2TDI2OC4wNjUgMzUyLjY5OUMyNjYuMDQzIDM1MS41MzEgMjY0Ljc3NiAzNDkuMzUzIDI2NC43NzYgMzQ3LjAxN1YyNjkuNjkxVjI2OS42OTNaTTIwMy4zOTEgMzE2LjQ1NEMyMDkuMjQ0IDI5NC42MDggMjI0Ljg1NCAyNzcuOTc4IDI0NC4yNzYgMjY5Ljk5OVYzNTYuNzNDMjQ0LjI3NiAzNjAuMzg0IDI0Ni4yMjYgMzYzLjc2MyAyNDkuMzkyIDM2NS41OTFMMzM3LjMzNyA0MTYuMzY1TDMwOC41MDMgNDMzLjAxM0MzMDYuNDgxIDQzNC4xODEgMzAzLjk2MSA0MzQuMTg4IDMwMS45MzkgNDMzLjAyTDIzNC45NzEgMzk0LjM1N0MyMDguODY4IDM3OC43ODkgMTk1LjEzOCAzNDcuMjYxIDIwMy4zOTEgMzE2LjQ1NFpNMjQ0Ljc3NSA0NzAuOUMyMjguNzgxIDQ1NC45MDYgMjIyLjE4NiA0MzMuMDc1IDIyNC45ODYgNDEyLjI2NEwzMDAuMDk2IDQ1NS42M0MzMDMuMjYzIDQ1Ny40NTcgMzA3LjE2NCA0NTcuNDU3IDMxMC4zMjggNDU1LjYzTDM5OC4yNzMgNDA0Ljg1NlY0MzguMTQ5QzM5OC4yNzMgNDQwLjQ4NSAzOTcuMDIyIDQ0Mi42NzEgMzk0Ljk5NyA0NDMuODM5TDMyOC4wMjkgNDgyLjUwMkMzMDEuNDk1IDQ5Ny4zMjIgMjY3LjMyNyA0OTMuNDUyIDI0NC43NzIgNDcwLjlIMjQ0Ljc3NVpNNDUwLjg5NyA0NDUuOTgyQzQ1MC40NjYgNDc2LjM3MSA0MzAuMDI5IDUwNC4wMjcgMzk5LjIyIDUxMi4yODNDMzc3LjM3MyA1MTguMTM2IDM1NS4xNjggNTEyLjkzMiAzMzguNTQ3IDUwMC4xMDJMNDEzLjY1OSA0NTYuNzM4QzQxNi44MjYgNDU0LjkxMSA0MTguNzc1IDQ1MS41MzIgNDE4Ljc3NSA0NDcuODc3VjM0Ni4zMjlMNDQ3LjYwOSAzNjIuOTc3QzQ0OS42MzEgMzY0LjE0NSA0NTAuODk3IDM2Ni4zMjMgNDUwLjg5NyAzNjguNjU5VjQ0NS45ODVWNDQ1Ljk4MlpNNTEyLjI4MiAzOTkuMjIxQzUwNi40MjkgNDIxLjA2OCA0OTAuODE5IDQzNy42OTcgNDcxLjM5NyA0NDUuNjc2VjM1OC45NDZDNDcxLjM5NyAzNTUuMjkyIDQ2OS40NDggMzUxLjkxMiA0NjYuMjgxIDM1MC4wODVMMzc4LjMzNiAyOTkuMzExTDQwNy4xNyAyODIuNjYzQzQwOS4xOTIgMjgxLjQ5NSA0MTEuNzEyIDI4MS40ODcgNDEzLjczNCAyODIuNjU1TDQ4MC43MDIgMzIxLjMxOEM1MDYuODA1IDMzNi44ODcgNTIwLjUzNiAzNjguNDE1IDUxMi4yODIgMzk5LjIyMVoiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPgoAAAFranVtYgAAAEFqdW1kY2JvcgARABCAAACqADibcRNjMnBhLmFjdGlvbnMudjIAAAAAGGMyc2ijESiEztD9NU1dD6fhE0EeAAABImNib3KiZ2FjdGlvbnOCpGZhY3Rpb25sYzJwYS5jcmVhdGVkZHdoZW7AeB4yMDI2LTExLTA3VDA1OjQ3OjQxLjc4NDc0NDU0NFptc29mdHdhcmVBZ2VudKJkbmFtZWNBUElndmVyc2lvbmlncHQtaW1hZ2VxZGlnaXRhbFNvdXJjZVR5cGV4Rmh0dHA6Ly9jdi5pcHRjLm9yZy9uZXdzY29kZXMvZGlnaXRhbHNvdXJjZXR5cGUvdHJhaW5lZEFsZ29yaXRobWljTWVkaWGiZmFjdGlvbm5jMnBhLmNvbnZlcnRlZGR3aGVuwHgeMjAyNi0xMS0wN1QwNTo0Nzo0MS43ODQ3NDg5ODlacmFsbEFjdGlvbnNJbmNsdWRlZPQAAADDanVtYgAAAEBqdW1kY2JvcgARABCAAACqADibcRNjMnBhLmhhc2guZGF0YQAAAAAYYzJzaHcvI0yLUXAZ6+YSU/17RKgAAAB7Y2JvcqVqZXhjbHVzaW9uc4GiZXN0YXJ0GCFmbGVuZ3RoGVwmZG5hbWVuanVtYmYgbWFuaWZlc3RjYWxnZnNoYTI1NmRoYXNoWCBSnwOgk7/NZhZt4hLOqFMdpnJH6q99EY6a7F3oCxq1cWNwYWRIAAAAAAAAAAAAAAK6anVtYgAAACdqdW1kYzJjbAARABCAAACqADibcQNjMnBhLmNsYWltLnYyAAAAAotjYm9ypmppbnN0YW5jZUlEeCx4bXA6aWlkOjk0ODY4NmNhLTkwYmEtNDhkYi05MTNkLWU5M2U0MGVmYmM5ZXRjbGFpbV9nZW5lcmF0b3JfaW5mb6RkbmFtZXgYT3BlbkFJIE1lZGlhIFNlcnZpY2UgQVBJZGljb26iY3VybHgkc2VsZiNqdW1iZj1jMnBhLmFzc2VydGlvbnMvYzJwYS5pY29uZGhhc2hYIOo+t97DelO1dnwszUSI5mWOnqNqzitqh5JkVmzMaeEsa3NwZWNWZXJzaW9uZTIuMi4wd29yZy5jb250ZW50YXV0aC5jMnBhX3JzZjAuNzkuMmlzaWduYXR1cmV4TXNlbGYjanVt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Y3BhZFki+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPZZAQBY1lMRZcR+rtnvFSQxp5wNO813sWtMzC0Ip3z0S1uNf89F8Lqhlx03rF9mDFHlpi/fG4yR3GUydxb0xPXLPvos0ajLm/MlRcmEIdoY66u50Zeea3HyrK1UVYq34Bz2uybIrcIE89GonVzKvkzWgwPJ7prtrIdG/oz9pI8ijyj2zezhzhi9/Ge/bYOo8VzMSnkMtAXD5cIiIm80VllUobeJ9UmbeWO6FhHkMTr+9BQevjtSiObesvmk9phaWIK4ODMrL2YsARtPMQ0JowFHrV4bnGfrQvCywGWOcT/eO+DlPSiM3yQqKG4RbYPOXN5bpdfTPXkux1Xbm8y3a8qmV+qn8+nEhgAJ4YpJREFUeAHtwAOgJFmWxvH/d+6NyMyncktjrm3btm3btm3btm1pjJ6WSq+eMjMi7vl2t2p6poc7a9WvZrNlDBiQxHOSBNjmfpIA2wACc4UkwDbPjyTAWIgrDGAMSOJ+tgHbgCReMEkAYCwE2OY52QYkcT/bgCSeH9uAJEASz49t7ieJ52Sb+0ni+bHNc7INSOIFkwTYBhAvnBAPYBuwLYnLbEuSxHOyDSCem7lCyBiQxP1sA7YBSdzPtiRJ3M8295PEc7LN/STZtg1I4n62JUniOdkGJAG2AduAJO5nG5AESLJtLMRltiVJ4n62AdtcJkkSYBuwLUkSYBuQxP1scz9JPD+2AduSJPH82AZsS5LEC2XbtiRJXGbbtiRJPIBt25IkAbYB25IkcT/bgLGQJJ6TbcA2IAmQxAPY5jJJgDFGEpfZti1JEs/JGBDiMtu2eRYhJMk2l0niMtu2JUkCANu2uUySJJ6LAYwBBEYSz8k2zyIwD2RbkiTANmBbkiTuZ4yRxP1sA7YBSQACY1uSJMA2YFuSJMA2YIxBYABJkgDbgCQeyLxwxlwmCbBtW5IkLrONEAJsI4QA27YlITC2JSGEeE62uZ8kXjS2EUKAbds8gCRAEg9gLMRzsm1bEiAJsA3Y5n6SJNm2zWWSAEm2JQG2bUsCJAG2ASEEANjmMklcZpv7SbItCbDNA9iWBEjiOdnmMklcZtu2JB5AEi+AbduSAEmAbdtcJgmwDUgCJPGcbNuWJMm2bUmAJJ6TMSALQDybMRbifsaAJO5nG5AE2OYySbaNhSTZti2Jy2xzmSRAEvezzf0kAbZtSwIkAbZtSwIkcT/btiUBkgDbgG1AEiCJ58c295ME2EYIAbZtSwIkcT/bgG2ekyRAEs/JtrEQIIn72QaELHOZEGAbkMT9bHM/STwn27YlAZIA27YlAZIA24Ak7mcbkATY5n6SeE62uZ8kXjDbPD+SeE62uZ8kwDb3kwTY5n6SANuAJO5nm/tJAmxzP0k8P7YBSYBtQBLPyTYgBCAA24Ak7mcbsA1I4jlJAmwbsAVCgCWwBIjLbINtAUgYySDJRmotJV4ISYBt7ieJ+9kAkkFcZpvnRxL3MwaEuJ9tLpNkmxeNJJ6TbZ6TbUn8m0gCbHM/SYBt7icJsM1lkmxzP0mAbV4EtiXxL5HEc7INIAAh7mcbkATY5vmRBNjmfpIA24AkXjDbvGgk2eYySdzPNveTBNjmRSPJNg8gifvZ5rkIzAskMFdI4n62eU6SbPMAkrifbe4nifvZ5jlJAmzzgkkCbHM/SbYBQJJtXgBJtnkASYBtnpMkwDb3kwRgELa5nyTAGPNMAgMYCwGSAGPMA0nifsaYBxIy5gEkYYz5lxgL8Twk2eYy25IAQJJtHkgAQtzPGPNsAsAYCwGAsZAk21wmCTDGXCHJNgBI4jkZYwDbCCFJtgFAEmCMuUISYIyxDUjiOQkhMM8knskgnouxEA9gm+clhIyFuJ9tHkhgnklgnkUSYNu2JB5Akm1eAEkABgHY5nkJIZ6TMSDE/WxzP0mAbWMh/iWSANs8J0mAMfcTAmzblgQAQsbGQoAkwDaX2ZbECyYJsG1bEpdJss0LIMk2DyDJNveTZJv72eYySfy7CQEIY0AWACBeENtcIYQAAGPMi8y2JJ6TJO5nm+chyTb3k8T9bHM/SYBtnovAPBdJtrmfJO5nm+ckCQMgbPOCSQJsA4Ak2zyLwFwhCbANSOI52eZ+krifbe4nCbDN/SQBtrmfJO5nm/tJAmzzL5HE/WzzryfJNgBIAmxzP0m2eQBJgG2ekyQAAyAA29xPEmCbf4kkwDYgCbDNc5IEGGMkcT/bXCbJNi+YJMA29xNXyICMASTZBjAWQjyAcPC8JMA8gHkBDAaDeH4k8SzmmQwGg8FgHsi2JB5AEg8gif8gkiTxryeJF8C2JP41JHGZJB7IAEK8iMx/I0m8AJJs869hm+dHEpdJMuYFMc9LiOdlnsk8N/N82ea/iSReNJJs8x/IABgA8yyyhAAhzLOZK2xjAAyAATAPJMTzMi+MwQC2Mc9LEvezLYnLhGzzgphnMs/BYAAMBsBgnj/zLMY8iwEwGAwGc4UkDIB5NoPBPDfzbOZFJZ4vY/5FBsBgnsk8N/MssvgvY56DwWAwGACDeTaBeSbz72UwAOa52AYAYwzmednmeUjiBbDN/SQBgCTAtm1eMEkAIMk2L5gkSbxoJPF8medm/mXmmcwzGdtcYTAviCT+9WzzXMyLSAjzvGwDtnku5rlIwjyT+VexLcRlQpj/mWzb5j+UbS6zzXOSBACSbPPfy/wb2JbEA0jieYkHMhgkMFfY5gohrjAgkECqYBAgCWMADOKZbCMwz2Kb+0kCbAOAJJ6TJC6zjblCCLAAxPMwknjBJAGAbe4niedHEiCJ52EbQAjx/NjmedjmMkkAxpjnJInLbPOCSQJs83wJACFkG8AgMMY8gCSuMMbcTxL3k8T9bPMAtnkekgDbPIvAPJPAPBdJgG1eANuSbPP82JbE/WxLAiRxmW3bgCTbPA/b3E8I8Sy2bQOSMMaAbSEuk8T9bHM/Ia4QV9gGbEuSZNs2AEjiMtuSbPOcbAOSuJ8kLrPN87ANSAIA21xmW5Jtnh9JPCdJPCfbkngASZhnMoBlIR5IPB8CAxgL2ZbEswgMgAAQz2JbEmCMARC2AUk8izGWJAmwLYQwBiTxPCRhjHlOkgAMANgGEBghwBgDCBnb5jJJkmxL4gohBNgWQti2DUjiCmObZxHPYgwIIQDbkgCEEADYFuIBbHM/ScbGQkLGXCEAxDOZZxIYY0CIy4QAYy4T4gUTMsYAQtxPEoB5JgFgrpDE/STxnGwDtrlMEg9gG5Bkm8sk8Txs85wkYYwxgCQhnkVcIQmQBAC2uUwIgUG8QAIDCGGusM1lknggIQQgnsU2IInLJAGAbcC2JB5AEvezDUjifpK4n22ek21AEs9Jkm1JvAC2uUwSIMm2bUmSeF7GGAEIYYwxiGcyL5wxBsAACCEuk2TMZZK4zBjzIrItSZJt7ieJ+9kGMIAk7mcbkAQYYwAE5gWRBAC2ASEAwCAASba5TMhYEgZAALYBSQBgm+dkjEE8X5IA29xPEs+PbZ6HbUASl9kGJPEisM39JPHvY1sSDyCJ58c297PNA0gCbAOSANv8a0gCbAMYxPOyDUjiCoEBMAACwABCCNtcJokHsC2J+9nmOdgGkATYNiDE8xIYBEg2CGwDmABxPwNgI/EczIvItiQuk8QLIhBXmOfHPJAk/rUE4gpJPA/bXGGeybxwkmzznIy5zDb/PsbGPJC4QhKAEDLmX8+YF8o2L5z5F9nmedjmfrZ5wWxzP0k8gG3+VcQLYgwYA8Y8LwEgnoN5IEk8D9uSeKEk8W9im8tsA7b5txFX2OaFEgIQAOLZxDMJy7YBY4QxYFuSJEDIMs9FPDeBACQhAARCCIG4wjZgzAshAGPuJ4nnRxKAeSbxbAJAAIhnEs+XMS86gUAgEM8kAMRzEAjEc5EkCRDCYF5UAoFAIBDPxTLi+RAA4lks81zEM5kXTojnIv4jCQDxryaeSQAIwJgrxHMTCAQC8aIQ4gEk8ZxsA7a5TBL/cWzzIrANSAIkAZJ4EQkEgMAAmGczL5wkDIABEP8yAxgb85wk8fzYlsTzMgDiX2CuMEY8NyFJEs9LAAhAkm0eQBLmWWwDgG3+JZYl8UDmXySJ50eSbS6zzb+GJNu8AJIA2/xrSOIySTyAJB7ANi+IADD/AQSAeCaB+JcJBAKBQCAeyLYkHsA2ANjmASTZXGHbNgBgnpfEFRIGGUCSkIQyDYC5zCBAwoD5l0gCbPMAkgDb3E+Sbe4niedkm2cxiOclxAMJ29xPEmCMuUKIy4x5AEmAbe4nBCAA21wmyTb3kwTY5n6SbHOZbUlcJgQY8zwk8Txs8/xIwhjzLEbIGDAWQjw380xCyJjLhAAEYJvnYVsSIMT9jHlOtiUBgG1JkjCAMS+UbUk8D0m2bUtCYK6QBBhjnpdtSYAk21xhEIAQYMyzGMQLIsSziGexDWAQL4RtQBJXGGMAIcTzI4n72eYBJAG2AUASYJvnRxJgm/tJ4gFscz8hY8AYEAIk2eYK80xCCDDmfkI8J2PAtiQAAyAASRhjDOIKIcCYy4wxV0iSZNu2JCFjrjCIBxIyBhBCXGEAhDHmCiFjYyEAkAQAtm0DkgAhYx7ANiCEEAIQD2TbtiSehxBgzPMjhMBcYcxlQtzPWJJtrjAIQAgB2AYwkgAEYCzLMuaZDOIKIYRt7idkzP0kYYxtS5IEYBAYYwwCkARgnoOxDEgCbHOFkAUACACwDRhjhBCAJC6zzYtAyNg2l0kCJGGMbUvieQnMFULGPIAQD2DMZZJs8yIQQmAQGABhm8sk2eZZBCAE2LYNAJK4QghxP9u2JQGAEIAAbHM/SQBg27YkQBIvmG3bkgBJgG1jIUlcZpsHErIQV9jGIAAhjDHi2cwzCcAYI0kSYJvnJAmwDSCEANtcJmQM2AYkAZIAY8yzSLLNswgMIIkXxADGCCFjIcA29xNCYK4w5n6SbNsWQgjxnIwxCAABYDCIK2xLAoSMAduSeAGEAMQD2cYgnkkAmGeRZNu2JB7AtiQuk8QD2OZ+kmxL4jLbPD+SuMw2z0kS97PN/STZ5jlJAjAAwjbPxTyTAAAhxHMxFuJ+xtxPCLDNAwlZgDEASMI8k7DNcxKyLAsAjAFACEAAtnkASba5nyTANveTBNjmRSPJWMgGzDNJwjgAMICxEQAYQLwA4oWzbZsHsM2LyLyozPNhnosxz48kXijbvGCSbHOZbUlcJsQLZpsrDAaDeb4kYZ6XMZdJQjw38yxCxjw/kngeknjBJPE8JHE/Y/4lkngekmxzPyGei3letrmfbUlcIf49LFu2zfMyz2LbNg8gieckBAgBCEm8yGzzPCTxojMYwDYPYCyEAYQASba5wjwvSbxgknggAWAA2zyLeb6EuEwSz8mYKwyAeRYhnsU8k3kmI8QDGYxtHsA2l0kCJCGEuJ9tXjgDALb51xIA4vkTiOcmnj/xTAaDQWCeyQCYZxLPxZgHMgDmOQgA8XwZA4gXlQEwVwgBiOdgni9JvIjEFbZ5XuZZjHkuAgEgEM+XJF44A2Cel20usw1gMM8iCQBsc4V5XrZ5Trb5j2AbsI0BMIBtnsVgnskgnoMAJHGFABCI5yXEZbZt8/zY5grzvIQASYjnYB7INveThLnCNs/FPDdjjHkmcYUQD2DM8yWeDyGEwAAYDIDAPJDAGAADtnkBjAHMAwkhMM9kMA9kG5Bkm+dkm8ts84JJ4jLbvAC2uUwSL5RtALDNZbZtc5ltzDOZZzLPZJ5JPAfzXIQwGACDwWAwVwjxQAaBeBbbPItBPDchxGXGPItAXCGJB7AtiX8l27Z5ANvcT8gGwJhnEygzuZ9BAAgBxtxPElcYxLPYBiQBtnnRSDKAAZDANv8SIWPuJ2TMA0iyDWAQQoAxL4AkDGAMSAJs84IIIduAJNs8X+bZBCDJNg8giQewzfMjZIwxRghxhUE8m3kmcYUQxhgBYCQZcz9JtrmfJNtcJsRzEYBtnh8hYwxgWQhACGEAhG2ekyQus80DSLINAJIA24BtSQBgWxJgG5AkhHgOBjDmWQziuQhxmTGAAGRxP2NeANsIIUm2AWOMEOJZJHGZMQbAICRxP9uAbUASIIn72eZ+kngA2wACA2AQAEIIsM1zMQDiCkm2eS7mmQSAELKNQTyTQTwXIcCYyyRhAGMuEwKMeQDbknhOkmxjEELGXCYJYxtAAJIA2wAGASCEMMb8+9gWAhCSuJ8x5oEk2bYtSRKX2eZ5CBkDAAYwliRkDACSeADbACCJ52QsxAMYY2wDkngASYBt25IQQhgAgcEYI55FyJjLhAAEgLnCmPsJIYwxDyQEGAOSANtcYRCSAMA2IAmwjUFI4jLbPICQsTEgBCCEANs8kAEQAAJzhSTbmGcSzySEANvcTwgBALa5QmCukGQbg5BkG4O4wrYk7mdbEpdJAmzzQAYBSMIgANs8iwEQQsY8D0m2uZ8kXjDbvGBCCAxgzP0kcT/bPCchAEDGAowxCEm2uUySbe4nySDbPAdJGGMAAyAk2eZ+kmwDtrlMEiCJ+9nmgQTmmQSAuUIIsAzIAoy5wiCezSBeEEnczxgDCBnzAAZsLhPiWcTzkgTYNpaFEDLmOQkZ85xsSwIQmGcyAOL5ksRltrmfJMA2z49tQBIgyTYgyTbPSRJgm+dkWxIPIAQYA0LczxjACCGexZjnRwjxbAYB2OYySba5nySMMQbxXCQBtrmfJO5nm/tJss0LIAkAMJaFbHM/SbYlAbZ5ANuAJB5Akm0ABBiEQQLkAHM/8Z9G/DsJGXOFAYy5zLZtwDYvIgPYRjybeSBJXGbbNoCxzWW2JfG8zHMR4vkyGMA2L4AxgEAIAUIAwjZXmGcSz0E8iyTbPIBtXgTGPA9JAIABjHkW80wG80zmCtuYF0KSbV4o29xPEs9i/gXieRnzwokXRBLmCiFAiOdlAAwGwABCXGEeSBIvMttcYYSEAAyAwWD+RbYl8cIZzIvCmH89SbZtcz9JvCDGGEA8fwbAvHCSJPGiMeZfIokXmTEPYMy/gxDPxVwhiedkm+dirjDmCvHCCGPMC2NeVOY5mH8bIZ6XeQ7iBRLPzbyozL/APB9GEpdJAjAA5rkIcYV5bgLAAEI8D9s8XwaDwWAwmH+RbZ6TJJ6LwTwvA+KBbEvieUlcZp6TwDybuMI2gAGEbPOCmOfPPJvBvKjMMxnECySeg7nCmGeReAAhnkU8H+LZDAIw5nkYC3GZJC6TBACY5yBeENu8aCRJAiRxP9tcZlsSL5QQgJHEA0jiX2KM+ZeJF842D2SexTZXmAcS4oWSZJsXQBJXGEAW5rlIAgBJPIAkSTyAJNs8kwEBCAAwFQvxTBIPZJ6LbQQIjAEkcT9JPA/bXCbEs1kIi2cRGAAhxP2MMYAxzyIeSBLPRQCIZzKAJNtcIa6wjRDiBZPE82NbEmCMeSbxQELGmOdDGGOusC2JZzGIZxECJBljAElcIYR4IGFbCPFs4oWTxGW2uUII8Txs8yzmCmOuMAjAmMuEeBbxLLYBAIOQxAsmicskcZkk25IwxgghwBiDAIQA24CxkCTbGGNAyDIgCcAgjAEMQgjxLLYBSYBtSYBt7ifJNiAkCTDGXGFbCGGMeS6SAEmAbUAS97MtiRfAmPvZloQAhGzzQAKQZWwsCZDEsxiEMWAbkGQMIJ7FGANIkmTbtiRjSVxmjBAS4rkY25Ik2ZbE/SQZY57FGCEE2AYQgCTAWIjLLANCgG2EEA9gm+dlAIRtQBIPIIkHsA0AQsYAQsg2AEgCANtcJokHMoAxACCEuMyYZzEAArDNczIW4n62eSCBkQRIAgDbXGYbkMT9jIWEjLlMkm0AY8wVwrKQLGMM4oEkcT/bkiRhAGOEEMY2zyKEAAwCIQTYBgBJAMYyRhLPxQgBkgCMMUIIYQwAkgAEgLnC2DaAeb5sSwIwgDHmWSQBGMRzEIBtAGGMARCAJNuWhSQBtgFJGAQgCWMZMMYgMJgrJAG2LcuyLUmSbZ6TJNuAJNtcJsk2VwjM8yGEAAxgDFgGhADbtnku4tkE5gpZxlwhnottQBL3E5hnkgRgjAEhhG3EFUKIZ7ENSOK5CNsAIMk2VwjM8yFeGAHYBgAhQBJgG4MAhDAIAPNcJHE/gwDJNkLImAeQBGAADOIKSQACA9iWxAMJzPOSxLMYxDOJK2zzALYRknjBJHGZJNuSuJ9tSQAgyTYPYBuQxBUGcYUkwLZtLpOEMUYIARgAcYVthBAvmG2eRQjZ5l8khDAA4llsA0IAYMz9JPE8bAOSAECSbQAhiWcxz8U2DyDJNg8gCbDNA0gG2QYZCwLxbDYg7ieeSQIACQCDxQtmGwBsc4VBPIB4LuaZzHMwL4gkSTyQQFwhiSvMFbYl8bzM82VbEi+UbduY50vImBfCAIBtSTyQeC5Cxph/mZHEAxgL8QCSuMyYF8S8EMY8D0mIZzOAMQBIAgBJtrnMNuJZJPGiEAACQDw38XwYACMECAHGvCDiudgGANu8YJIwz2ausA0AmOdgJPEfxJh/iZBlAPHCSUIAkrhMEg8giQewDdjmhRLiBZAEYADMs5lnEs8krhACEABGiGcxz5ckwDaAARCAJF4I8fyZ5yLJNv+ZhHjBhLhC/KuJZxIA4rkZAPOiElcIAYjnyzIvhAAQ/wLzTAbx3ASAeZGI5yBeIPEcxHMR4grzbAYAbHOZMc9iLPNA5oFsAwDGGDC2LYkHkGSbF848f+a5iX8VIcTzJ0myzYvIvDDimcQVkngg8bwkcYV54YR4QcRzMM8kMC+cJF4wYyEewBjzgggBxpJ4AEm2edGJK2zzvMwLIYkHkMSLxjYA2OZFJBDPJq4QMuYyY0k8D0m2eSBjmwcQAjDPJJ6DQAAISbYBjG1eOPEskrhMkm2uMP8qtiXxALZt85yMwAAYAKok29xPYAMGQBKAbQMgJGEMSAJscz9JXCbJNlcYxBXGABKAzWVCxrxwBkAAkrjMNiCJZzHPJGwDQjwnSVxmG8Ag/qNI4gFsA4BtQBIgiRdMEoB5XsaYZ5HE/YwxVwhxhcA8m8AAkngAIZ7FIF4421wmCfEsQtxPkm3AWIgXmW0ukwTYBoQQz4eRZAwgANuAJMA2AvMskrjMGACEEC+IsZBtQBL3sy0JkIQx5gEk2ZbEc7ItifsZYwBJXCaJy2xLksRzksRzkgQAtrlCCHGZbR7ANiBJEgYDCAGYZzFGCAlhjIV4ANtcJsk2lxkDkrifbUCI+xkLWcZcIQkAJAG2AYwxYBshZBuQhAGEuMI8L0ncz7YkLrPNA9jmASQBCNuSbHOZJC4TAmwbc4Ux5gphm+ckyTYPYMDmASTxLObZBMZcZsCSuMy2bUDImBfECCFsGwNCkgDbGIQkAIMQso0BbEuyLQlh21iI5yIA24AkSYBt7icJsC0JIQvzbAYhhAAwsox5HpaFACHANg8khDCWbXOZEFcIzBWWMc8iBAAYBALAAJK4n5BtLpOEeSDb3E+SbS6TZNu2JC6TBNgGbAOSANvcT5axbUnGgDEgBEiyzQMZQBIPYJvnYVuSbcC2JNu8iIxlQAjzL5IEALZtA0IGbABxhTAIwICRANtcJmQshDDY5jIhBGAsxP2MuUwIkMRlkgAMBvFAtgFJAAbxTAbxTAZAALIQz2QASbaFAASAsYwBhHgAYwyAkQRYts1lkngASVwhhGxzhTHGIAAhQIgHEAIASTwP2zwvAyCel21JPCfbgCTANiAJsG0bkGSb52RbEi8C24AknpdBPIsQYJvLhABjAPG8JPGcbEvifrYlAUIAgHgmgwAwgBBgjHk28SxCAAYw5n5CCNuSeC4G8W9gW5Jtnh9JAMZIgDAAgXkO5goDYGObZxH/NkK2ucLG5n7GPIDEZTbPSTyTAWxzmW2ei7ANAMaSeCHECyLJNg9gGwAkAYAkrjDPxTaX2ZYkCZDEA0gCAEm8UMY8F4PBAJjnZgBJACDJNpfZ5jlJ4gEk8Szm+ZLEZUK8YJKMuZ9tALAticsk8W8jACFeZJJ4vsQziWcztnnhxL+NECCJ5yGJ+9nmP4gknosAEM/NYADEs9jmfkJCgCQuE+JFZJ4v21xmLIQBhABJAOaZxLMJwJgrxLPY5kUknoskQBL3M+a5iGczz8U2z4d5/ox5fgyI/zTmednm+THmCvNAkrjC2OZ5CQyAABCI5088f+ZFYl44Wfy7CfFczAsiyTbPyTbPjyTEczCAEC+IeC6SeE62AUm2uZ9tHkCI50cSgMA8k0D8C8zzYwDxLDa2ATASL4TN8xACMM9krrDN/YQwGADxwojnyxjx3MwVxkIA4tnMFbYRz2YAzLOZf4H41zEABhDiCoN5YcwLIck2/0q2eU62JfEvsc0LZcwLZmzMA0iyzQsmiWcx/wKDucK2bS4z5n5CAOKFMYgHss2/j21JvFDiMiMDKDN5PmQQ5lkMApAAcT/b3E8S97PN/YQAY/4lkmxzmSSDzLOJZ7HN8xJCgG3uJ4nLbPMCSAJsA5K4zDaX2ZbEA0iyDUiyzf0kcT/bgG1JXCbJNi+UJB7IAAjbPJAQ4n62uZ8kwBjzwggA8xwEBkAIAcYYAIG5wrYkrhBCPD+2eU62AUmAJABjzAPYliSJ52QbkATY5n6SuMw2DyAJwDybsM0DCAEIwDbPyTYgCZAE2OZ+kngA21wmifvZ5nlIss39JNkGAEmAbe4niedhGwAk2eYySbYBSYBtXighYwAhCzAGJHGZbQAhBBhjrpAE2AZsS5JkGxACjG1LEjLGAEIIY+4nyTYPYFsIQFwhyTYACBlzhUFcIQQgjDHPRRJgm+dHEmCMARBCtrlMkm1eKCFjLpNk27YkQBKX2Qiby4wxIEkAAoMAYy6ThHkAIwG2ucJcYcxlkiRxhTEWMuZ+kowxgBCAeDZjzAMIITDGvACSbHOZJNuAbUCSJACwzWWSAGNZXCEeyLZtQBJXCCHbXCZkbBuQBABCgDEASAIwgLEk7mebyyQBxrK4QmAAYx5Akm0eQBIA2OaFM8aSAEm2eQBJtnkBJNnmMknGGEASl9kGAEmAbUCSbZ4f25K4n21JXCaJ52Gb+0kCbHOFkGUshHhexphnMlcYS+Iy25IAcT/Jtm1JgBBgzAMJAAMgZHE/Y+4nifsZcz8h7mfbtiTuJ4nnxzYvmBCXGXOZMUYIIYS4wjb3EwKMuZ+QMc9Dkm1JgG3AtiSeh5CxEGDMFULIWAiwzXOSxAtmmxdMEs/JNi+AbUmAJO5nmxdMEs/JNveTxP1s8x9NEmCMeVEIAQjbPA8h7mcMSAJs8/xIAmzznCQBtrlMkm3uJ4nnxxjAgLhMAhwgieclns22sQGw+VcR4lkM5gWRZJsHEA8g/mXmBbHNv4ZtLrMtiQeQZBsAbEviBZPEZZJs868lEADiOZh/gfkXGMxzM89knsk8k5GEACTZ5grzL5LE/STxQOKBbEviP4Owzb+SJEASAEji+bHNi8w2l9nmP4Ft/lUM4gUyz2SexbZtwDYCsM1lxgDmCmOekyQuk8QDiSuMeX6EeBYDYJ5NAJh/L/MfwjZgm2cTCAMIgQAQAOJfZDAIBIBAPJt4/sSzGGOeTTwH8dwEgHgOQhIPJJ5FEiCJF0qIF0oSz2KMeRZxhSSuEM+fQEjiBRPiX2JbEg9gzIvAtrEk/kOYK2zzPGxzmW2ekyQuk8Rzss2/jfkXmGcTgDHPS0Li+RLPSwjzTObZxLOJ5888L9v8e4grjLmfEID4F4hnETLmBRDifsaSeAEkIZ6DAYT4jyaJ/z6S+HezbZvLJPF8mRdEiPsJAQjbvCDihZPEZZJ40diWxPOwzQOZBxLYgCoYJGGb+0kANoBtSTyAbV4A2zwnYy4TQhhjEM9FiOdiEJYxAEYSBkA8F9uSuJ8k/iPYlsRlkrjMNs9JEgDYBiTxnCTZ5jLbXCYJsC2JyyQBAAbxTAaBedHZ5j+CbZ6LeV62AUnczzYgieckCZAE2OYySYBtnodt7ieJ58c2l0myDdiWxGXGPCfbkgDEMxnE85LEZbZ5AEmAbUASLxpJtnkASYBtwLYk25J4AWzznGxzP9uAbUmAJC6zDdiWJMk2lxnzQAIQss39bEviOUmyDdgGhAAE5tnEFZJsIwDAGIMQss0DGUAS95MEYCQBtnkW8RyEbR5AEs9JEpfZ5nnIMuYy24AkACOJ52QbACQZ2+YyIdvcz7Yk2wghQIAEGGODAMCY52IAY0ASiMuEAGPAtiQhwDbiCtuShIxlIa6wzf2MMQ8kiftJsm2byyQBtgEM4oGEjAHb3E8SYFsSl9mWZJvnYp5FEiAJkGQbAISMucw2IAmQxBUCEAJs2+Z+kgCMMZdJsm0bkGTMZUIIAPMvMAjbkrjMNveTZBuQBACSeH5s8/xIAmwDkviX2OYBJPE8bEuSxGW2JXE/21wmiRfANmBbEoAQso25QhJgm8tsS5JkGyHEZbYRkgBscz8bkMRltiVhrpDE8xKAMSCJ+9lGCGEABICwzWWSAEm2bUvifra5TBL3sy2J52UQAOaBJHGFADAISdzPWEgSgHkgSbaNhQAA8SxCPIBtSVwhnklgbEviOUkCbPOcbPOcJNmWxGW2eU62eQBJtiUBtrmfJMC2JC6zzQslCQBscz9JtiVxmW0uk2RbEs/JNmAbkMTzI4kHkATY5vkSmGcTxkJcZhvAvEACsAwIAbZ5HpIA24AkHkASYJvnIYnnJMk295MEWIAFgAwo+BdJvAgk2eZFIa6QxGVCAAbxHAzmOQjE85LEi0wS/1a2+XewzWWSuEySbduAbQBAPJv4V7HNC2WbyyTxgtnmASTZ5jLbkngBjPnXsM39JPFvZZvLJPG8zLPYBjAviCT+y9kGbEviX0kSz8O2bcA2LwIhHsA2z49tSQAgieckxBXmuRhzhfmXiSuMAdu8YMb8S2zzQoh/I/MsxjxfBvEfxTZgmxfMmP80tnkA27xobPNC2eZfIonnZMy/SPybSbLNC2ab/2i2ucw2/3Fs868nyTZgmxeNbS6zLYnnJMSLwDbPS/zLxLOJK4S4n21JgCReANs8D0k8X+L5EIBtxHMR4oUzL5C5wrYkrhDPRRL/PpIAwDYvAkkAIInnJIkXmW2eH0kAYJsHkMTzkARIkmSbF41tXgAhSTyLwQCAbV4oSVxh/kW2AcC2JP5TCAmovAC2uUwASAJs8/xIss3zY1sSgMA8FyHAGACEjPlvIgmwzf0kAZJ4fiQBtrmfJJ4f2wAgiQeQZFsS97PNc5LEc5IE2AYk8YJJ4n62eR6SeAFs8wJI4gWwzf1sA5J4wWxLsi3JNvezLYkXgW1AEi8aSTwnY4wkXgDbACAJsA1IAmwDknhOtgFJ3M8295PE/WwDkvjXkGSbyyTxQknifpIA21wmybZtQBIPIIkXwDYgCZAEYBCAbS6TBNgGJAHGGNuSbAO2JUkCMAjANoAxBiTxnCTZ5jJJgG3uJwmwLck295ME2AZsA5K4zDYASLLNZba5wlwhyTaXSQJsA7a5TJIk25IA27YBSYAxDyAJQDyTsS2JB5IExpgHsg1IAiTZlsQDGUAIwCBsS+Iy29zPNiDJNs9iANuSeB6SuMy2bcA2IMk2IEkS/3qSeABJgG3bPIAkAMAghGzznGwDkmwDkrifbe5nm/vZBiRJ4kUgyTYPIAkAJPGvJAmwDdgGbEsCbPM8bEsCbNuWJIkHsA1I4jJJPIAk7meb50cSz0kSz8O2JC6zzWWSeABJgG1AEvczxkjifpJscz9JtgHb3E8SBgFghABjrhCyeBbzTOK5SLItiRfAtiRAEveTZJv72eYySba5nyQuk2SbF0ySsRAPIIlnMZYBIcAyYMyzCCHbACCJ52Gb+0nifra5n21JPD+2JXE/29xPEvezzWWSuMw2l0myDdiWxL+JbV40trmfJO4niefHNs/LCHGZbUDIGIO4wjZXGAABCHGFsG2byyQBtnlOknh+bPOCSeJ+trmfJJ4fAYgrDCJ4fmwDgG3+JZJsc4V5JnGFEFeY5yAwgDHmCts8kPgXSeJfQ5JtHkASL5gkHkAS/xq2+Z9BEpdJ4kUgiQewLYkXQBLPQ5IkXjS2ucy2bcC2JF4o24AkQBLPQxL3k8S/iSRAEv8JJPEAkvivIon/ULZ5wYR4IQRgmxdKEv8RJAGSbPMfShL/VrZ5DgYwD2QbkARI4t9HEmCbfyvbgCRAEi+YJABA/NuZZxMviCTANpfZ5n8eSTyAbZ6HJJ4fSTwn27xobPOC2ebfxDYvmG2ekzFGEi+AJNs8D9uIZxIIxLOZ58s2/3q2ecEk8QCSuEwS/xpC/IvMFUKAkCTbAAbzLLb5V7JtWxL/QWzzAkjieUgCbPOvIYn/VOIKYy4zFgIAIdsABvNM5jmYf5EkALDNfykqL5htSTyAJO5njHm+hACEbcS/wCCeDwFI4n62uZ8kLrPNc7LNC2abB5Bkm8sk8Txs8+8giftJsg1IAgDbACDJNv8akox5HpK4n21AEpdJss3zY5vnIck2DyAJsM1zss1lkgDbPD+2JfGcbEvi30QSl0niedjmAWxzmSQAsA1I4n62uZ9tSVwmCZBkm8tsA5K4n23uJwmwDUjiOdkGJNnmfpIA2zwP24AkHkASz0MS95Nkm8sk2bYNSOIy2wBgWxKXSeIBbNsGJHGZbZ6XeC6SbHM/21wmCZBkWxL/SrZ5ANuAJACwbRuQxAsmiRdAEmCb52Gb50eSbS6zLUmSbSEAAdjmOUkCbEvCAJK4nzEgxPOQxGWSbHOZJMC2JEk8J9sAYFuSJACwDUjifpK4wkgCJPGcbAOSANuAJJ6Tbe4nCZAESOIK8Vxs2+Y5SeI5GWOEjHkA24AkQJJtSTyAJO5nmweQZJvLbPP8SLJtWxLPQxJgmweQBNjmMkk8D0k8J9tcJgmwzYvMNveTZMxzkgRI4gEk8QCSbHOZJNtcJsk2z0MSIMk2AEjiBZNkGxBCAJJ4AEkAYJsHMgACMMY8iyReBJJscz/bkrifbUASYNu2JEAS97MNSOJ52OZ+trlMEi+AbUnczzYgiedHCGGbyyTZ5gGMeZHZBiRxP0ncTxJgG5DEZZJ4AEn8K9nmASTxPCTxAJJ4wSTZ5vmRxANI4n62uZ8knh9JgG2exSCeRRJgzBUCEOKBDOL5MA8kyTYASAIk2eb5sc2LTBLPyTYPZEKIyyRxmSReCPNM5grbkrhCAMb8i8wVkngekngR2OYBJNnmRSbJNs9JEv8+tnkekmxzmW2ek21J/GsY85/MtiSek23+k0kCJNnm+ZHEv8Q2L4Bt/iW2+Q8liRfKtm3+rSTxorHNA9jmAWxzP9u8aGzzIhPiBZDEv5VtnpMkXijbkvhXksRzkgTYBmzzLOKZxPMn/m2EeB6SeMFs8wC2+Y8gifvZ5j+UbV4UBpDEfx/b/EeQBEji302I/7Vs81zEFUKYB7LN/SQhnpck2zyAJP47SOJfRTwX21wmiechxPOQxItAEi+UJF4EkngA2zyAJP59JNnmBbDNCyH+dQziuRjzwolnEs8kMIAQl0myzXOyzfOQZJv/YFRjzAPZ5jJJgCQADOIy2zwn2zwn2zwXAWAeyBgQMuZ+kmzzAJJ4HrZ5AEn8S2wDkgBJPA/bgCTbgG1AEs+PbUASl9m2DUji30QSL5RtSVxhAMQLIQmwzf0kcT/bkviXSOJfYlsS95ME2OYySQAgieckieckCZDE/WxLss1zksS/jyTANs9Dkm3uJ4nLJAG2eRFIAmzznGxLss1ltgFJkmzzPIQQV9jmfpIA29xPEmCbf4ltSYAkLrMNSOKFkgTY5jLbgCRAkm3uJwmwbZv7SbKNASTZts1zksTzYxsAJEmyzQtmm8skAbYlSeIy27xgknhOtrmfbQCQZIwBJPEsRggBIADMswnAtiQhQAgBYABjHkASD2AbMMY8L9tcITBXSAJsS7LNc5LEZbZtc5kkwLZtQBIvmCTbgCQusw1IAmwDkrjMNiCJKwzihZDE/WzbFjJGAMYYhBAgicsk8Zxsc5kkwLYkALAtCbDNC2AbkMT9bEviRWaby2wDkmwDgCQeQBIgyTbPQxLPSRKAwDwX21xmW5Jt/iWSANuSbHM/2zyAbS6TZNs2IAmwzQNIsi2J5yEJgzHmfkIAYFuSEALAIAAEBmMsCUAIAbZt8yxCiBfMNi+AJC6zDUjiOdkGAEm2eQDbkngekgDbgCQeQBJgm8tsS+JFIMk2D2AsifvZBgBJtnlOkrifbdtcJgmwDUjifrZ5TpIA24AkwLZtQBKXSeJ+kgDbgCTANpdJ4jLbPIAk21wmiQewLYkXyjYgCZAEIADbXCaJF0I8m3gm8yySMFcYcz8hQBYCwBhjEC+IbR5AEpfZ5gEkAbZ5AEkAYJvnJMk297MtCQheVOIK8Sy2bfNvZQxgjIW4TJJt/iW2+ZdI4jJJ3E8SIInLJHE/21xmm+chiRfMNi+UbUk8J0k8P7Z5EZnnw7woJPE8JEniX0kSL5htSfxLJPEfwTYgiX89SdxPEpdJ4j+ObcA295PECyf+PSTx38Q2DyDJmH8fSfxLbPNvZl5Exph/P2MA868ixL+GJP4dJPGvIYkXnXnRGXM/IUAIQDyTwfyLbPOvJ0kSIIl/E0mSbPPvZ55FiPtJ4gFsA7Z5EdjmMtu8AJJ4FvNAtnkekvi3MQAG89yEJC4T4vkyLyJJ/DtI4kVg2zb/Etu8UJIQz2QQLwrbkvgPYpt/iW3+NWzz/NjmfrZ5AElcJkkSD2DbNi8C24hnEi+MeS5CmH+BwTybucI24gpJtnl+bPMAknh+bPMC2OYBJAFA5XnYlgRIAmwLGXOZJC6zLYlnMYh/C/EiksT9bHM/SbxQtgFAEiDJNveTxGW2eU6SeB6SbAO2JdmWxItGEmDbNveTBNjmfpIA24Ak7icJsA1I4gURxpgXyCBscz9JtgHbPA/bgCRAEmAbsC2JF8q2JNuSeABJtgFJgG3bgCSekyTbgCSelzGWxP0kAbYlAba5TBIvAkm2uZ8k2zwPSdzPNiCJ+9nmBZDEA0iyLQmwLQmwzQMYY/5tJNkGAEmAbZ4f25IA2wAgifvZ5n6SJAG2uZ9tXgDbkiQBmGexzQPYBiRhEMaYZxIYSba5nyQAsA1I4n62uZ9tLrMNAJIkAbZtcz/bAALzQJIkAbYB24AkWcZcJon72UY8k0FIwgDGmCtsA4AkwDJGSAgB2JZkm/sJAbYlIYQA27Z5LuZfJIl/iW1Jtnl+JAG2JXGZbUASIMk2l9nmMkmAba4QQpaFeH5sc5kkQBLPSRIghHkmAWCMAUkAgEHYBiTZti0JsM1lkngetrmfbV4oSVxhEJIA27wIbEsSQgAIDGCbyyTZ5lkE5grbQghj2zyAJJ6HJNs8L4GRZNu2JEk8F/MsxoBtSbYB24Ak/iW2uUyI+9kGEJIA2wghBGCMAWxL4jLbgCTANiCJy2xzP0nczzYgiX8324AkLrMticts84JJAmwDknjBbCMkAca2AUkARghhmxeBJF4EtgFJgG0uk8RltnlOkngA25IASfwHsS2J50eSbZ6TJMC2JC6zzf0k8QCyEADGmMskAbZ5HkJcZswLZsxlQtzPWIjLhBCAbR5AEi+AbUASz8O2JF5UBM9DEg8gxAPY5grxHATmmQwgxAslifsZc5ltSTwPY54fSVxmmweQZJvnIck2D2Cb5yGJB5Bkm8tscz/bgG1JPCdJPD+2+deTxL+feCbxH8s2L5htwDYPYJvLbNvmhZLEC2AMYDDPxTYvlG0eQBJgG7DNfxBJvMhs87zMs0jiOUniWQzmgWzzopEE2OZfzzb/bpIADIDBPIssBCCJ/3rmgSTxXMQLJP63s83zsM3zsM1/GmPEv5kQgHkWSQCA+I9nEM+XbduSuEwSzyIwxhgA80wCQLxIzItKPJN4FiFJgCSeL/NsQhIgyZj7SeIySTwv8XwIBIB4YQxgzAsmif+RJPEikMTzZQDMFbYBxHMTz2QeSBIvAtu8ALb5LyGJF5kk27wAkrjMNg9gzBXm2cwDGdvmeRhzmW2uMJhnMoCQMc8inklI4gpxhW0eQBKX2eYFsC2J52FbEi+AJCEAA1QAkMRltnm+DIB4FiFAEoABLHOFEDLmXyIEIGzzAEI8gLGQbe4nictsc5kkQBKX2eZ5SOJfSRIvgCTuZ1sSl9nmMkmAbf4ltnkekgDbXCbJNmBbkm2ELMRzM8+XLADxQLYl2QZsS+J5SAJs85wk8Txs8wCSeADbvFC2uZ8kwDYgCZDEcxHPwVxhW5JtwLYkwDYPIAmQZBuwDQC2JXGZbcC2JMA2IMk295PE82NbEiAJsA0AkgDAtm1JGGPbkmxLAmzb5rkYSQDGNveTxP2EuJ9tnsUgrpBkmweQxL/EtiSekyTbgG1JAALAXCEJwACSuMI8kwAwxpIwtiVxhUEghABj25Jscz9JPCdJXGabF8A295Nk27YkWcaAbUASwjYgBBgDGAABYIy5nyTuZ1vImPvZliTJNgDYBoS4nzEgiQcyxjyLAYy5zDYgSRIPYNs295PE/WzzAJK4n20uk8QD2AYkAZJ4ASRxmSTANg9gG7AtCYOQZcz9JBkLAYBtSRhJCABjzGVCxrYBBIABEEKAbQBAYK6QZFsSIMsYg7AtCWPM/SQBtm0DkrifbUAS97MNSLINAEJCCNuAJACQBNgGhABZ3M82V5hnMojnYAAMgAAwgG1AEs9JiMuMbfMsRhJg2zYgybYQYJvnYhBCPJC5QhIghLDN8yPJNgAgjDGAJAwCkGQbARhjJAEYIQRgG5AE2AYk8SKQBNjmMkmSANs8J0mAbe5nG5AE2OYy21wmyTaX2QYkAZJsA5J4AEk8D0lcZhuQBCCusC2Jy2wDCCEAwAAIhLEQANjmOUmyzWWSuJ9tSbxgkrifbR5AEiCJ+9nmeUjifpK4n20eQJJtwLYkXijbgCRAEmCb52RbCIF5NoPAPDfzQJK4TMiYBxLPJoSMeU7GPIAkjDHPSZJtLpMESLLNZbYBSVwmicts8wCSANs8gCTbgJBlIDCAbZ6TJB5AEgJA/IuEjPkXmWcyz8E8FyGeH9s8P7Z5HpJ40UiyzWW2uUwS95PE87DNc7Jtm+cinoOwzWW2ecFscz9jAIMAEM9mACGehzHiBbHNv5UknocknpNtnockSbxgkrhMEi+cAQDb3M824kVnm+dkm/tJ4t/ENs/JNpfZtswD2OYBJPEsAsC8EMbcTxLPRSAASTyAbUAS/0q2EVcYA5grhHjhBIB5NgEYC/GcjAHAmP84kgAAASAQgCQAMAYAY/59bHM/SfyrCMCY5yIASfwrSQIk8YLZ5gEk8e8gyTZgmwcSz828QOa5GQDxLzCI50M8HwLxTOZZJHGZJC6TxPMw5nmJZxMY21whAAQCMOZZBOL5E88khLjCAJJ4Hsb8axjb5vkyxpgrjIUAxDMJ27xgkgBACHOFbR5AEs9JCEA8iyReZLZ5fmzz/EjiX8k2ANjmfpJsA4Bt/oPY5vkSVwhxmTEvlG3+I9jmfpJs8+9gm8skcZkknpNtSYAk/iWSEM9izANY5l9FPC8hYx5Akm0eSGCelyTbPCfb3E+SJF4EtnkASba5zFgIqAbxbJK4zDbPSQjxXIwBBCCEeV6S+JcIcT9j7ifEv48k24BtLpPEc7INSOIy2zwn24AkwLZtAJBkmxedEQIQGABjzGWSuJ9tHsC2JJ7FAAgAI4S4wjaAQQCSbHM/24Ak7ifJNiCJyyTZ5jLbXCGelyTANvezzf1sc5kkALANALYlAZJsA5JsA7YBSYBtHsA2AEiyzWWSMADiWSRxP0lcZpvnYZvnJInLJNkGJAGAJNu8yCQBtiXxALYl8UDmCtuAJNuAbUmAJJ6XAYwlAbYBQBJgm/tJ4n6yuMxYEs9DEgDYlsQLYBuwLQkDCGEQAMYYg3huxpgrjBBgzP0sCyFkIQBjIS6TxGW2AUm2eX4kcT9J3M82IInLbAOAEICRBBgL8fxIAowBDOK52OYySZhnkcRltiVJss39bAMIIcAGLInLbBsjhAAMAvFcbHM/SYBtQBIvAttcZpv7SeIy2zwn2zw/tnkASdzPNiCJ52RbkiRAkm0AkARIAjDGGEkIDIB4JoF5JgMYA7a5TEgSYJv72QaEAASAEAKMMQgMIAmQxP0kAUII24BtSZhnMsYIzHMwCIxtSbZ5FoF5ICHAGBBCPAdhbAzIAiQBkmzzb2IbkMRltgFJXCEADAIDCHE/STxfAnOFbe5nmweQBNi2DUiyzWW2AUmAMSAJkGQbgxAy5jJJPCdJtgFAEg9gWxIPIAmwDUjifrYB24AkwDbPQxL3s83zsM39JPEAkmzzQAZxhSSeizHmWcxzMADiWWxLsg3YlsTzY5vLJPGcbHOZbe4nCZDE87ANSOIBbPP82AYk8Zwk2QYk8Zwk2ZbE/WzzQhlzP2NACAFgHkgSYBshi+ckictsAwjMs0jiOUnihTOIK2wDtiXxPGxzmSReMEk8FyEUEs9kbAOAbQDzTAYw5oUzz8E8J/Ms5gUS/71sc5ltLrPNZbZt8wC2JfGCSeIKgXk282zigSTZ5gFscz9jISGEEM9ini/bknihJHE/SbZ5XkYSDyAJsM2/xDbPSZJtwDaX2eYBbPOiEwhAiBeZJNu8AJJ4TpJs829iWxIPYFsS4oUwRvw3ksT9JPEAtgHbXCaJKwSAMOYK82ziX2RbiBeBJF4o27zIbHOFABDPIsS/hm1eBLYBEJcZEA8k8byEeC7mXySJ/0K2eaEkcYUAMC+QwQgBGADzbOK5iSuEjHl+bPNczL+LsA3Y5n6SAASAeV62AcA2l9nmCvG8hLjCYJ4PY4z415LEcxIS4n6SuJ8knsU8k3kW2zw/QpL4V7ItiedkzPMSzyReFLYl8QC2uZ8k/nNI4l/LGPNvJhAPJGSbF8w2D2CbB7DNZbZ5kUniX08SAEiyzWW2uZ8kAJDEZZJs8wCSuJ8kBCAkZMxzMc9kACGuEM/BPJBtALAticsk8YKI52UbQFxhm+ckicsk2eYFk8RzksQVAgNUIQRgI8k2zyKeSTyQMfcT4n7GAEaIB7DNMxkAEBjLPD+SuJ8xBiOJ5yGJ52Sb52Sby2xL4n62uZ8knpNtSbxgtiXxL7HN82PM/YQQgG3ANvezDUjifkIIQMgYA2AQGEk8i0EAgCTb3M82IAmwDUjiBbMtCXOFJMA2DyDJNgBIss3zkATYBiTx/EgCbNuWxPNjm+dkjAEQQlxmG5Bkm/tJss3zkGQbkATY5jJJPCdJgCTuZ1sSDyAJsA3YlgRIAmxzPyEuM+YBbANCiGexzf2EAAQgBNgGbEviAWxLss1zEhJCPBfbkgDANs9JEmAbsA1I4jIhhDEgZAxYxggBCAADYABjIWNJCMwD2UYIAUKAJAyAsM1ltrmfJF4w2wAgCcAgbHM/YyEusw0gAIwkwLYxVwghDAJAPJBtrjAIIds8D9uAJMAYg3ggSba5nyRACEA8kG3uZxuQZJv7SeIy2wAgSRIgCbANALYlSeI52QYk8ZxsA5J4HrYBSbYlAYAkQBLPIjCSANuSeE7GGEBIEgBgAASAATDPZgCEMc+PbQCQhACMMc8mhBAAQogXyjYgiftJso0AMIgHkmRbEs/FSELYxjybwBgjhGwDgCQMgACEEFcIcYW4whiQxRXCtm1AkiTAtm0EgBCyLYnnIgBACGHMsxhACHGFbduAkDFgGwAkAZJ4wSTZxiCMeQBJgBD3E0LYtg1Iss0LIMk295NkG7AtCZAE2OZ+krifbUASL5ht25IASba5n21J3E8S95PEsxhJtrlMEoBBALa5QmCeyTyLsSRAkm0AIQQAkngASbwAtgFJAGBbEvezzfOQZBuQxGWSeMFsA5K4n21JPA9JAGCbF4Ek7ieEsM0V4tnMczHGAJIAYwDzLLYl8QC2JQG2uUwS97PNFUIIsM0LJYn7SeKFss1lkrjMNpdJ4tkI7ifxLzMvCmMhAPMCiedgnsk8B3OFbf59JPGvJ4nnRxIvlG0eyCBeCNs8D0k8P0LGXGGexbYQVwhAkm3bvABCPIBtIS4T4gGMucw2z0kS5gpJPCdJ/DtI4l9knslcYZvLbEvifra5zLYkAJBkm8ts2+b5kcTzI4l/A4N5QYQAzPMnnpdtHkhcYcyLTIgXgW1AEiAJAIwBwLYkACOJZzFXCHGZMWAsJAmQZJsrzPNlm+clAEk8P7Z5TsY8gCTM82EAzHMzLyrzH0iIZxEAApDE/STxIrAN2OYBbPOcJAG2ecEk8fxI4kVhrrAN2AYkAQgE5oUxz8sYAQjxnCQBkgBJgBDPyzyTeA7mBZHEfx7zbOJZbHM/If6jGABjWxKXSbLNCyeezTwXYyFAEiCJF0oSzyIwDySJZzGAMf9WkmzzIrPNv5Jt/g3EA9kGEM8knk08kwCEeADb/JtIss1zksS/xDYPIInnRxIvmG1eANs8D9uSeADbPIt5IEkAgMA8B4F5QYxtc5ltSTyAbdu8cOZ5SeIFkMS/hm2ek22ejWqMQQjZ5gEk8S+xDUjiWcQVQsa8aIwBIcA2IIl/iW0eQBIA2OZ+kvjXk8RltiXxnGxzP9s8P5J4HsYAQogXxCAASbYlAZK4zDaAwDyTeC5CCABhm+dhWxIGsIx5vowBQBLPyTYPYFuSEGAbQAjZBmwDgCRAEvezzf0kAbYBSTwPSbYB25IkAbZ5TrYl8ZwkcZlt/k1s8wLY5gWTBNjmfpIA24AQgMAAQoAxgBDiBREA5lkkAYBtIS6TBGCeTQDGCCHAGPNMAvMvksRlkmwDCABzhW3uJwnAGGOeRRIvgG1Akm3uJwQYY4wlSeJ5SOJ52AZsS7INSAIk2QYASYBtSQiMbSHbCMwVtgFJAMJYyDYPJIRs20Zg/kWyuJ9t7ifJtm0hhG0AAWCEAGNAEiDJtiTbACAJAGzzAJJ4HpJ4TrYBwLYkQBJgGwAkAZK4n21JgG1JPF/GmMuEANvcz7YkSbZ5AGPuJ8T9bAsBgLEQIISwLYn72RYSMpbEZcZcZhuQxGXGAOaZhJBlIR7ANveTxANIAjCAMQ9gG5DEZbYlAQjAWAhhDBgDQlxmG7AtCZBkGzAGMIAkADDGCAGSjAHAGPMstnkW8XzZBmxLQgC2AUlC3M+Yy4R4fiTZlgRIAgDb3E8IMLYNSBIy5lmEEPczRggJGWOexTYA2AYkAZL4l9jmMkmAbUnczzYgifvZBiRxP9tcJokHsM1lkrjMNiCJ52SbyyTxPIwBWTxfAoMQ4nkIIa6wzfOQxP1scz/bPIAkwLYkALDNC2BbEv9WkrifbZ6HbUkAIMk297MNSEJgnoskwBgQAowBxPMnhHgA25Js8/zYBiQBQrxQknh+bPMAkngR2OY52QYwgQEwtrnMNi+EQTx/4gohABDieUjieQkhXihJvFC2eQEk8aKRxL9EEg9gm3+JJNtcYZ4P8UwCEOJZxBW2AcC2JJ6XQDyTsA0AtnkAIcwzmQeSZAxg/g1sc4Ux5l9PEs/JNpfZ5kVjWxLPjyTuZxsAbEviP5okXgjxTOK5CBlzhTAGEM/NvCDGQjwv8Wzm+TDPIokXSpJtrjBCPIBtxLOJF0jYtg3Y5oUSQjwf5kVhm3+Jbe5nzHOSxL/I/GuZfyNjnpMQIAmQxGW2+Q9i25h/H2OehyTuZxsQAhDPn/iXiediDAjxnIwBSQBCEs/FAJjnZcxlxrwg5t9MSIgHsA0ACNs8X+J5CfGvIck297MNAEK2ecGEeB5C/JsYYxBXCPGCmOdLEv8SSVwmif9okngASbzIjIX4F5kXSDw3A2CeL9sAYJsXQBKXSeI/miT+s5nnT0jiX8m2JP7j2OZ+tvnXs80DSLLNM1EN4tlsS+Iy24AkHsBYCGGb+9nmAYx5HpJ4wYR4TrZ5TrYl8TxsA5K4nyT+NWzzAJJs8wC2eU6SbAO2JfEAkngA2zyAbUkYwJj7CXGZMWCMeSYDIJ6LJJ6LMRZCPIttSbwIJGGezSAASdzPNmBbkpAxz8O2JMy/jSQewDbPSRLPjyTbXGZbEs/JNpdJAmwDtiUBkngetrmfbUASz49tSTwnSYBtnosRAhC2AUASIGQsBCAwQoCQMS+AJC6zzf2EELYBQBKAsM1ltoW4zLYkHshI4n62+ZdIAmzbRggBtrmfMUIIAwghAGMuk8RltnkexlwmCZDEZba5wiAwCMA2l0myLYnnZJv7SbJtW5IsY0lcYQCEkLEkwDYgxPNjzGW2AUmSAMA2D2AbkIS5QpJt25JsA5IA21xhhABjwFgSIAkw5jJJgCTANs+PJNvcTxJgG7DNc7IthBAyxiAkARjEFZJs8wCSbPNAAoNBXCEJkGSby2zzXIwxIMlYiMskcT8hnockwDaAMUZcYRuQJMRlQjyAbUASAEiyzWWSbNsGJAEYy5jnIonnxzaXSeJ+trlCCAG2bUvifpIAAAPYBiQBtiXZRiBkGfOCSbLNC2AbwAAISQBgm/vZ5jJJgCTAmPtJAmwbc5kkwLZt/iW2AQSAEAJscz9JPIu5QpJtLpNkWxIvmG2eH9uAJB5AEmCb+0niediWBEjifpK4TJJtnpNtLpMEGAthjCVxmW1ACGHMFQbAIAAhxANJAjCAMYABJAG2AduAJC6zzfMlhGxzP0m2eQFsS+Iy24Ak7mebyyTxAJK4zDYgCbDNc5IE2JbEZbYBSYBt7mcb8UwGcYVtQBJgjAGEeABjQAgAjAFJtnkWI8k2L4gx5n5CmAeyzf0k8YLZ5jlJ4gWTZJtnIySexbYkXighLpPEv5UknockSbxQtnl+JAGSeH4k2eZFZlsSl0myzfOwzWWSuEIAmAeyzWW2eREYYzDPh5HEC2GMhXgBJAGAZcTzYQAhDAIBSOIFEc+XEEaIfz3bvGCSeJHZ5gFs8/xI4gFs8/zYBiTx7yReCCGeRWD+XcQzCcTzZQxgEIAkXmS2JfGcbHOZEM/JGCEEIDDG/OsZ8xzMs4gXnW3uJ4R5JvPcBIABhHhe4gUR4l9FPIttnh8hnh/bxvw72AYkAZJ4TkL8m9jmhRCIF8g8kBBgDNg2RrwwBrANIAAEgHkWSTyLATAYBCCJyyTxAkjiMiHMfxLbPA8hDCCJ+9kGMABCCED8u4h/NfMfToh/E0m8yGxL4gWwzX8VIdtcZpsXxDw38RzMczDPRRIgifvZ5gEkcT8h2zyAbUlcJonLbPOcbAOAbUm8AJL4V5LEi8I8k3j+zBXGvADGXGZbEg9kHkiIZzHPZJ7J/CexzQNIss1zQLZtA7Yl8aIQGECSbV4o25IASRhjLpPEZbZ5AEm2AduAJJ6TJNu8AJK4zDb3k2QbsC0JkGSb52QbkARI4jLbvAgkYYy5nxDCNs+PEGAMYBBCtgHE8xIyBhBCgG0eSMgCjHl+JAG2uZ8knpNtAAMgnoskwDb3k8T9bPMsBkAIIWwDgCTuZxuQxGW2uUwS97MNSOIy2wAgCbANSOIBbHOZbUmSANs8J0mAbcC2JC6TBNjmBZME2AYkAba5nyTuZ5v7SbLNAxnECyNkAcaYZxLPIglzhWXMCyeJB7DNsxjLQpK4n21JPCfbtgFJgCSek22ek22EEAYBSLLNZUIA4lls8wCSAGMMgDGWBAgBxtxPEmCb+9mWBEjifsYYwLYkQMgyBsAACElcYQDbAOIK20KSAMRzMM9kLAOAEIC4zDbYABL/Ekm2AQCDEDLmMttcJonLbEuSxPOwbVuSEAKwbZvLJEkCbAO2JfEAQsZcJmTMi0CSbduSJHGFAYx5HpJsA7YBhBAgZAzYBiQJIQAMBoEAANtcZlsSIAmwzf1sA5IkYZ6LZcxzkWQbg7jCtiRJAGDbNveTxBVCCPNMwjYG8VyEAGMuk2SbB5DEFQYw5jJJtnlOQoAxDyDEswjbXCbJNvczxghJAox5TpJs8/xIAjDPJGxzPyGEbcA2IAmQBBgDQhhj25IASVxhjLmfJAwAGHOZJC6zzQslyTbPSRJgm+ckCbDNc5IE2AYkAbZ5TpL4l9i2LYkHMghAEoABjLmfbUk8gCTbPD9CxjwPSbZ5AGMhQBIPZIwBDIAAJNkGJNkGbHOZJJ6HJMA295PEZbZ5AEnczzb3kwTY5jJJtrmfJO5nm3+JJNs8ixEyRgCSANsABgEAkjBXGPM8hHgA2wACEOJ+xjwnSTw/tvmX2JbE/STZ5n6SgOB+Qlwmicts83yZK2xL4oWSxBXmgWzz/NiWBEiSBACSuJ9t/iW2eQDbPCfbkngA2zwP2zwXcYUknot4NoEAJPEvEoAx4vkSMuYK8/wZxAsknoP5T2UMAMa2+ZfY5j+Ubf41bPMCSOI/icC8MAaBABAA4jmY/zDieUniOdnmMkm8iAxCCEBgnkk8X7Z5TrYBzLMI2eZ+QrwAtrmfbZ7FALa5n7EQV4hnMgDmmcSzGAOIF8Ygnod5IIkXkXiRiOfLNi8y24BtXjjz7yJeCEmAJECI+wkBQjyLeSFs84JJ4jJjxHMQmOdlG0BgAGMAMOZ5SOJZjDHPjxAvlCT+85hnMUY8ixCAMDbmhZLEC2Gem0EAkni+zPNhAMSzSAIQCMSz2OZFY5v/BJL4NxGyzQMJQIjnx7YkHkCSbR5AiPsZCwGAJO5nWxIACPEs4jmYZxNXCNnmMts8gCSehyQewDZg27Zt/tNIksQDGUDINg8gyZjnSzyTwDwv27a5zBhAPB/ihbPNv55tSTyAbZ4bFfNM4rlI4l9imyuEkG3+I0iyzQNI4jLbvGC2eZFJsg3YlsQLJQmwzWW2eR6SuJ9t7ieJ50cW97OMQQCSAMA2YMyLwDYPYFsSIAkDIIQABGCMuUISzyKMMZJ4HpK4zLZthCzEFbYBSfxLJPEC2AYASQBgm+chifvZ5n62AUk8J9uSJPGcJHE/25J4ANuSANs8gCT+NWxzmW2eRQgBkmxzP9uAJMyzWBaSZJv7GWMQmOdmAGMhhJAx5oEkAbYBWQjbCCEus83zkARIsm0bkGSbyyRxmW3bgBAgBCAAjCQEBjDGPBdJtrnMNmBbkiRjIS6zDSAkAcZC3E+SbduAJACwDQBCPCdJgG1jIQSAeCaDsA0AkgAEYBuQBGCexTbigYwAWcJIgHkm21wmhJDEA8gCAISxMULINgBIAoSMJXGZbS6TxP0kcZltLpPE/WwDgCQuk8QDGQBjjDGWhMDY5jJJgCQeQBJgG5BkzGW2AUkYAGFbCAAkAUJcZowBJGGMEUIAwhgjiX+JJMC2JAADIIwxgBD3k2Sb+wkBxoAQAsAAxoAkni/zLMZCXCEwAAYBIDC2JdkGhIy5zLYk25IAIe4niWcxz8EYA5KMAQxCiGcxQogrbEviWQyAACQBgBAvnLEMSAIwGMuAEMK2JB7IPJMBJAEIAGGbB7ANSOJ52JbEi0ASL5RtSTw/kgDbgCTANpdJss3zYxuQBNjmMkkAQhYGgZAFGBtjAEkYALDN/STZBmzzvAyAAIwl8cIJIQBjzHMS4grxgkjifpK4n23bgCQuk2RbEvezDUgCbAOSbEvifrZ5ANs8gG1AkrEkwNg2IMQVBvG8hAAE5oUQ4nkZSYBtSQDi2cRzEBhACEDY5n6SbHM/STwnSYBtHkASL5RtRBgkHsi2JB5AEg8giedlbPM8bHOFeA7i30YSz0kSLwLbkvgPZZt/P/McxBW2eR5CXCaJF0qSbQDzTAbxbOa5SAIAIV4o21xhEP+BbPOcbPMisw1I4kUgiedhWxIPYJsXgW1eBJK4nxAgieckiedinoskxDMZIV4oY8zzYQAMgAEwL4gkLpNkmxfMNi+cARAvItvcTwgQAhDPwbxwtnkW8RwMgHkOBvNAkgAh/kXieYnnYJ5NEiDEi8g8iyRAEg9gm/8MAkAgjHnBbPNCGMA2IAlAABghY14oY54v8UCSeH5sA5J4LuYK2zxfAsAgHkjImBeZEA8kAMQzmSuM+Xcw5lmEkJAxDyQkcZkQgHk+DIB4gcy/kyQA80wGQPx72JbEv49tXgBJvGC2+dewjQAQz2SeyTybeSbzLJJs8wIYS0JgrrDNc5JkGwCMhQDMCySeTSBeEEk8P7Yl8ZwkAZIk2eYBJPEvsW2bBxDiCnOFMYBBPJN4DuKZxAthGwEYI55JPJN4ISTxPGzzX8NUMEjCNg8giRdMkm1eEAMYA5J4FiHEZbaNeQBJvGC2eU6SuJ8k2zwnSYBt/iWSAEnczzYgiRfANiCJy2xzP0m8YLZ5TpJ40UiyjblCEgDYBjAAAhAylgQAxhgEBiEEYADbkjDGPIAkQBL3s42QxbMYxAsiiQewbZvnRxL3s80D2OYBJAG2JfE8bAOSAEk8J0nczzb3kwTYBmxLAiTZ5n62AduSuJ9tHkASz0kSYBuwLQkAJHE/SbYBQBIA2JbEcxLiMkmAba4QGAwCkARgjBFCxoCQkLFtLpNkGxBCALaNhWzzALYBSdzPmAewzfMjyRjzTAKBucI2D2AbkCSEMEZgANuAJMCYy4wBAAFgAEmAJC6zDSCEANvcT5Jty0KAJK4QGElcIYwxgCTAtiSMLMu2AUk8i3gmg8AYS0IAxgACBGDzAJIwkoxtA5Jsc4VBIDAPJInLbHOZJMA2D2CbyyRxhblCEmCbB5AE2LbNZZIwDySJy2QZS7KNMBYCbEsCJAG2ucw2l0niuYgHEgIA2wACAQgZA0K2AYQQ9xMCjCXx/NhGSMI8kwEwCACBuUKI+xkjhBAA5pmMsSRAEmDbtiRJXGYbADBCCGPMs4lnMpJ4IAMgrpBkmxdESBIyxgBCxjyQAGxzP9sIQMhYEoABEM8kHsgYIwmQhAEA21whhADbXCGEANuAJMDYNoCQBVgGhAAEYJvLbAOSuJ9tAJAE2OZ5SOIFsM1zksT9JPEC2JYESAJs85wkcT/b3E8SYJvnJITAIJ6DeD6EEJfZ5jLbknguAiNkzAPYBiQBmOciZAzYBgBJXCEAYwDAAJK4zDYASAJsc5kknock25J4HpJ4TrYBSbwAknjhDGCMEOJ+kngggfkX2UYI8QBCxkJcZhshyVgIA9jmOUnC/KvYBiRxmW1AEi+AbZ6JEM8kiRdMEg9kXhgBCEkCAEk8gG2eh21eANs8D9u8YJJ4TpJs8wJI4l9DkiT+owjMMxkMIMQDSLLNA9i2bZsHMs9BGHOFATD/RuJZhDCIf4F5JvNvYJvnRxIvgCT+3Wzb5n6SAEASz48k/q1s86IQtrmfbR5AEoABbHOFuEJICEA8kDHPRWBs85wkcZkxVxhJvAiEjHkg8XxJAjAABsAAtgFJ/CvZBhBCPCch7mcbsM3zMgAGAGwDkgAEgHlBjLlC/OsIDOa5mSuEeCDxorDNC2Wb52Sb5yVeGHOFEP8G5oURz5cxV5jnw2BeIPMcxLMIYZ4P8xzMswkh24BtHsA2LyLzAol/C/NchPjPIDD/duaZzHMTD2QbkMSLQJJtLrPNCyVJkiRJ/LcQGADxAokXxNi2JF4wSVwmyTaX2cY8kCSehyQuk8TzY5vnYZsXmSTb/AeRxLOYZxIA4jmYZ7HNv4p5DsZYiAcygBAGMOZ52ObfwTaX2eYy27xAVCNsLpMEALYBSYBtLpPEswgAA0iyzf2EAMuYKyTZ5jJJmBfCNiCJ52GbyyTxALYBSTyAbS6TBNgGJPGcJHGZbS6TBEgCbPOcJAG2ecFsA5K4zLZtAJDEZbYBSYCxEA8kbAOSANs8J9uSuJ9tIUAIcYUQAjAGjBFCgG1JXCYJY8wV4tkE5lkkAcYARhJgbJv7ScI8m7DNA9gGJPGcbHOZJO5nm/tJAmxLss3zIwmQxP1sA5IAwLZtnpNtSVwmiedhm+dkm8tsS+IBbPMC2JYESOJ+tnkA21wmiQcykgAM4oEk2eYBbANCAMI2ANgGAEkABkAAxlwmhAAwCECSbUkA5tmMJMA2AEgCbAOSAIyxEOIKY54fSbaFeBZzhSQAkGQbsM1lkgBJGMAYAwjxnCTZti1JEmAbkMX9bHOFEAIwz8U2lwkhnott7icJIWRbCLANCAHGYAAhZJvLJGGel21AEpdJAjAYIcDYNgBI4kUjhAAwgG1JvACSeE6SeCBjDMhCSAIA21wmSRJg27YkIYRtwBiQBBgjhDAYBAKDACTZti2EeDZhmwcQAoyFuMy2JMC2bUm2JXGZsRACQGCusM1lQoAkwBhzhRACg8BcYRuQxLMYwLYQ4oFsA5J4HpKMbQOSeE62JfG8DGAM2BYyBoyFhBCAbR5IPJMRMuYKIcT9bHOFEEIYYwAMQgiwLQmBsc0V4l8mACHuZ5sXyrYk7ieJf4ltQBL/EWzznCQBtnkA25L4lxhzPyFjSRgAg3gmA0iyDchCPC9JgDHPIp6XMfezDUjiMkncT8g2IInLbAOSeB62eQDbgCTuZ1uSJF4ASVxmW5IkwDYASOIFsG2byyQZSwJsI64w5lkMQkiSbf7NxBVCxvzHsQ1IAmxzP9uSeADbgCTANoAAhAAAETyAbV4w2zyQucK2JJ5FPJO4wjbPYp7JXCGJK4RtALDNCyCJf4lt/jVs828liRfMNg9gmwewDQC2JXE/2wBg2zaX2ZYEAJJ4TsaAMS+IEOJ+tiUhAMQziedgrjA25oGEsTH3E+IK8UJI4nnY5kUjiRdKEi+Abe4niQewLYn7SeJ52OYy21xmGwBs8y+RJAmQxAtgmxeFQVwhyTZXiGczmGexzWW2eRZxhTHPIp5JPB/iX0c8B4HBXCHEFeKZBOKFEYAkQBIvCvMvEM9mAMwzCczzZcx/CPP8CQDxLJL4d5DEi8A2/z5CiBeVsA0AGEk8i3km8dzMM4kHEuJ5iQcS4gUT4l8knsk8m3gWSVwmxLMIDIABEM9FEgBI4nmZZxPPlyQeQMiY+xnzXAyAeJGY588gns08k3g2Y8yLTBIvlCTANv+DSeLfwCAAzANJwlxhzBXmCttCAOJfZgDMczEGMA9kWxIPIGTMZbYlAZJ4TpJ4EdiWxAtlm8sk8TxsA4BtXihJXCaJF8Q8F9u8YLZ5IYQkXihJQlwmxItMEg9gWxIvOlMBwEbiX2QbACTxQgjM82UsBCCeRRIAGPNCSeIySbxobAOSeE62uUwSl9mWZJt/JUkAYJsXjSSek21JAGCb58e2JNs8JyEEgLnCMiDE/YR4TraFjLmfEGDMcxLiCvMcBAbAIP5FkmxL4jJJAGCb50cS97MNSOKFss0DSOIFkGSb+9mWBAC2eR6SeE6S+NezzQNI4n62eQDbACAJAdi2jXg+BCDJNgZAGGMeSBKXScIgAGOuMAghxLMZSTyLuMI2RkgSANgGhBC2eU7GPCdjSYBtY+5nDAgBiGcymGeRBEgCbHM/20LGkiTZlsT9JHE/IQABIGwDiCtscz9JAGAbwAAIY4QQL4BtQAhhbFsSL4QAjAFACGMMSAIkYWwLIZ6LJO5nW5Ik29xPEmDbNvcTAhAYSbZtS5Jk2zYgybZtQJIkHsggMIAkzBW2JXGZbUm2JXGZJMA2YJv7SbLNZbYBDAIjiWcxkgBAEi+AMSAJkAQgMFcIcZlt7icEGGMASba5QhhjnpsAbAO2JXGZZVk8FyEEIDAYxBWSANuAJACDsM39jDGAEABIAgDbXCYJYxswRkjifkKAbQQGIYnnYp7JAAjANpcJ8VwExhiQBNgGJPEsAhACMJYBSYBtLpNk2zYPIInnIYkXzDYPIIn72eZ+krifJMA2DyCJF0AS97PNZbYlAZIA2zwPSQBgm8sk2eZ52JYEIB5IyBgDGAvxAELG3E8SYJtnEVfY5vmxzWWSeJFJ4pls8yKSZJv7SeL5sc3zsC0JsA1I4l9im8sk2eb5sS2J+0kCANuAJMA2YJv72QYkcT9jzHMzlgEhALANSOIK8yy2AUm2eU62eX4k2eZ+tgFJgDHPgQAAiRdEEs/DNg9gm+fHNs/DWIh/iRAPYFsS/wls8z+DbZ6HJB7AtiQeyCCeSTwvIQDzvIyFuJ9tY55FIJ7NPJO5QogrhG2eH0m8ALYBQBL/GpIAQJIk/q0k8QC2+Y8gSRLPyTb/GrZ5TsY8i7nCtiSexTyTMOYy27xQQlwhAGNeFAJAPDfxfBgAI4kHsM1/HNuAMWDMCyf+jQSAATAviG0uM+aFEMZcYZ6LMWDMAwjxIrDNv4oAJPHvJJ4v24Bt2zyAbf59bPNvYK6QxItGCPO8hGwDtgHbXGGexRjx/JnnZZsHEi+cEA9gDBgDQrwQxjbPRTyTuEKIZxGSeF5GEs9L/BeQBAC2+Q9im+ckiRfANv8mtnlBDIABEM8kMIAx5gpjDGCMeNHZ5jkJ8QC2eQBjIS6TZJtnkySb/zK2+TexLQRghLjMNpfZlsQLJgmQJMk2z5d5PsQD2eYy27wAtnkASbb5NzDPiSph81wkAba5TJJt/iW2JdmWBACSbEviBbPN/SRxP9s8P5IA29xPEmCb+0myzQtgm38NSVxm2zYgiedkG5DE/WwDknhOtrlMEpfZ5n62JfEAtiXZ5n62hYy5QggBCMwVQoBtABCyjEEAQsYYwFgSAjDmfpJsG3OFkMXzkIQBLGMAY0mAba4QQlwmyTb3s81lkgDbtnlOkgBJgG0ewDYgyTYvgG0uk8T9bAOSJAG2eR62JQGSeNHYBmxzP0m2eU62AUASl9mWxP0k2eZ+toW4zLIQz0kSVxgAIWQZA0jifpIA27YBBOaBjIVsA5IAY8wDSQKEuMIYA5J4vsQDSbLN87DN/SQhnskYAxgAAUgCjIW4nyQewLYQwrZtQBJgm/tJ4gEkAbZtA5K4wgBCCAzCtm1JGGMuk8QD2OYyyxhJAOKZDIB5INsAArANGAPGkrifMQYQMgYASYBt7meb+9kGEM/FNs9JEs/JmPvZBiTZBgBJACBkDNiWxANIsm1bEiAJsA1I4gFsSwJs2+YyIa4wxoAkwDaX2eZ+kgDbgG1JkgDbAEKIy4yFbPOC2UZgEM9kjCUBkngASTyQwFwhy5jLJPEs4lkk2bYtCRBCPJuwzf2MMc8kAMwVxoBlQIjnxxgjiWcxD2QZkIV4LrYBSTwnSTwnIQRgzGWWZSGEANtcZluSbV4ASYBt7ieJy2zzPGwDkngetiVxmW1eKEncz7ZtQJJtAJDEi0YSl9nmOUnifra5TBIGYxkDIIR4FvMcxBVCiBdEEmCb+9kGhHgWIcQD2QgQgMBcZp6DQbxQknjBbEviX2IbkMRzss1lkngRCCFscz/bkgDbvAC2AUm2AUm8YLYBSdxPiOfHNiDJNi+YbV4w25IA29zPNiAJMAYARNhIXCHE82NbEg8gSRKXSeI52ZbEZZJsc4XBCBnzrySJF5ltHkASL5gkLpPEC2ab/1C2eX5sc5ltLrMtCfEsxkI8kHghjIUQmOcmjHkuwjYPZBDPJIx5FvFMAhAy5oHMA0niedi2zb+JbUk8P7b5d7PNi8A2z8M2LwJJPIBtSTyAMYDBAJJ4vgSAMRbiedjmP5Z5bgZAPF+2bfP8SOKFMADi+RAviDEPZF4429xPEoB4/gSA+fcT4kVkXjjbvFBCiOclxHOyzb+SMWCbBzJXSAIABOY/liQewDZgm/vZ5gqDABCAbR5IPBdJGADzLJJ4EQghnpdtnpd4buIFkYR5NmPM/YQAjBAPZB5IEv8OtvkXCQDzbOZ52eZ+kngASTyAJO5n29g2ANgGAEmAJP4ltvl3sy0JkMQLZZt/LQFgnsk8kBBXCEk8D9s8D9u2JQGAJJ6HEFdIXCGBAEm2ucxGEg9gm38T2wBgWxLPjyTuJ4kHkGSbfxUBGCMAYwCwzQsgyTYA2JbEv0SSJF4o29zPNg8gicts8yKQxIvIVDBIArCNuUISz0kSYBuwDUgCbHOZJB5Akm1AElcIIV4IAyBeCNuS+NewDQCSeBFIAmzzQtnmfpJ4TpJ40UgCbAO2JXGZJNuSuEyWMVcYhBACMMY8kBDPRchCPAfxTAIQ4n7GPC+BAYQADGCMkAVY5jLbAEKI52SbB7AtifvZlsQD2OZ52OYySTwnSdzPNg9gm8skAbZ5oWxL4jnZ5n6SeAFsA5K4TBIgyTYgictsA5K4n21JgCSMMQZAIIS4TBJg2zYgyTYAIABAEvezzWW2AduSMM/NGAOSbAshMIBtQBKXGSOEMEKAMVcYIZ5FPItt7ifJtm1JgG1JPIt5NgMgAEmAMSCL5ySJy2xzmW3AtiTEs9iWxGW2AQzCNiAJkATYBjAIIYQxRhLPwzbPSZJtwLYk25IwgG0hhBDCtm1JAIAwxkjiWYRt7meMMZbEA0iybRuQxLMYIe5nbFuSMfeTBGCMuUyWMQ9gm/vZloTA2AYkAQjAshBgWxJXCGNJgG0AkMTzI4lnEUIAYFsSL4BtQBJgm+dkDEjifkJcIQBZPJBB2AYkAYgrjAEhwJgHsA0I8QJYBmQBto0BSQDCmPsJ2ZbEC2Ik8QCSAEm2jTEA5gpJgCQus40QAjAABrAsZBshBNjmOdnmMkm2bUsCJHGFwDybeDYDSOJ5SLJtm+ckyTZXmCtscz/bXCaJy2xzmSRAEi+UJF4o2zw/kngASYBtXgBJXGab5yHJNuK5GSHAshCAeb4k2QYASbaNhXhOknh+JPFMBgFItnlOAvNskrjCGHM/SdzPNpdJ4jJJPIAk29xPEmCbyyRxmSSeH9uSeC5GEvezzbMIIZ4f25IASTwPSTw/tiUBtnlOtnlOknh+JNnmMkk8J0mAbZ6TbUASYJv72eY5EOKZbPMAtiXxnGzzALZt84JJ4gGEeE6ShACMEC+AJB7AtiReKNu2eRHYlsQD2LbNfzTbvAhscz9JPF/iOZh/gXggYx5I/CuI58Mgns0AkoT4l0iyzb+SJB7ANv8S2/znsM3zkMRlkrhMEv9m4nnZ5t9HEi+UsSwuk4R4NgNgns1gXlTiWWzzX0gSD2CbZzHPJjAYAPOisM3zsM39bAO2eRYBIJ7FNvcT4n5Clm1zPyEA8UwGACRxP0n857PN/STxH0cSD2CbF5kkLhPifpJs829grjDm30cS/xJZmH8F8cIYAHGFJJ6XeSbx3MR/DUm2eaFsS+IyIcyzmQeyzXOyLYkXShL/GpJs8wCSeNHY5l9FYJ6XkDEvlG0ewDb/IhsMgLjMNg8gCZsHEs9knoN4vmxL4t9EEi+YbZ6L+E9lm/tJ4t9Hkm3+fSTxgohqhM39bAOSAEASYNs297MNSOI5SeJ+trlMCEAAtgGEEADY5n62EQBGEs9Jkm3uZ1sS97MtCbDNZZJ4ASQBtvm3si2J52GbF0wSIIn72eY5SeL5sQ0IcYV4PgyAAGwDkgDAtjFCyBgDIABJGGNACLAMSOI52QYkITDPIsQVAvNcJAG2uUwSDyDJtiTuJ4nLJNkGbEviMtuSuEwS/xJJ3M82/xqSbHOZbUASz8k2IAmQxP1sA5IAQBJgGwAkAZJscz/bXCaJBxBCAAgA83zZ5n6SANuAJMA2l0myDUjiMkncz7YkwLZtSQBCyDYgC2EbkAQgns0AtoW4QrwgsowB25JsS+JZjLEQVwjMA8lCvEBGEpcZYyQBGGMukwTYBjCAkGUuEwKMhYQs8wBCCMC2MSCJy2zbBiTxnCTZti1Jkm1JAAKwDUjiOUniCiFkbFsSgAAwkngA21wmCZAE2AZscz8hQAhAABjAWAiBsS0JgcEgJNnmMkm2ucIAkgBJAAYQAowlAZgrZBnzQkkCJHE/SbYBQJJtXgBJvBAGIYkrDMYy5lmEANtCCGMAQBhjrpAEAJhnEs9mjBEAQsi2bQAhxPOQxBXmgSTZ5jJJknjBJPEAkgDbkrhMEmCbyyRxP9sIDCAECGEQL5xtQBIPYJvnYgBjQBIPYJv72eZFZBBCPCdJgG1AEs9DEi+Ybe4nCZAE2OZ+knhOkmzznCTxIrANSAIk8QCSAIwxIAQgMIAxBvEstgFJPCchnockHsgGsJEwV5jnwzbPxQIQz80AiOdLEs/JtiReKNuSeNHYBiRhEM9FEg9kAIRtSbxoJNnmfpJs85xsc5ltQBIgyTaXSeL5kWQbkAQAtgFJ3M+2JEmAbQCQZBuwDUjimQgewLYkSTyAbR7AtiRJPBeBwTwXYwBjmyvMFbZ5AWwL8Zwk8QC2uZ8k/h1s869kWxL/cSTxPGzb5nmZBxLiCvG8bHOFATDPJv6NxL+NbUk8P5J4ANu8aCRJ4l9PEi+UJNu2eRHY5n6S+NewzfMlAMwzmQeSxL+SbUm8CCRxmW3bXGbMi0ggXghjAAMYA7Z5ACEeSGAADIAAEM+feBYhnkX8KxhJ/JtI4gEkcZkkni/zL7LN/WwDtoW4n2VeANu8UEKYF0KIF048B/NMAvFs4pnEfxLbkngAY14U5nkJ8ZyEMC8qAWAAzH8eY/4lkrhMEmCbF8Q8N/EvkiSJf5FAPC/bvAgk2eZZhLEQL4AkSVwmyTb/QSTxnCTZ5nnY5kUgiRfAGPMcBOaZDOIKSba5zDbPIgDMczAABgMYsPl3MYBBPDfxvCTx/EjiBbDNC2XbNi+I+BeY5yXEv5JtHkCSbS6zLUkSIMk2L5Qk2wBgmxdAEs/DNgBIksSzmGobIZ6DJJ6HbUASz0MSYBkQ4lkMYJkXyjYghDGWBCCEAMA2AEiyzf1scz9JPIAknodtQBIvmCTANi8CSYBt25K4n21JPA/bXCbJNs+PJNsAIInnZIxBYB5ICAEY84LZ5n6SMMaAEPcTAmxzP0mAJAADGPNczLNI4lnMs9iWBEgCbNsGJNm2zfMjiQewLQmQZBuwDQCSbNvm+ZHE/WxzP0m2eQEk8ZwkAbYB25JsA5J4AElcZpv72ZYkCQAkcZlt7ifJtm2eRQAYAIMAMIAQYMxlQoAxIInnZFuSbUmAbdvcTxL3kwRIAmwDtnlOtnnBjLlCYJ4vIctCto0lYZ7FmCsEgEEAiCtsA4Ak7mdbEoCxjLlCkm3bPD+SuEyIy4yFjLmfJMA2L4AxBpAECCGeRRJgWxLPxTyQJMA2z8M2IIlnMc9mnoskwBiwjZBkjJEECHGFAWxLkoW4QhJgm/vZFkJcIQmwbRuQZGwbEDLGAAjbPIAk7ifJtm0AkMQD2JbE87DN8yOJ+9mWJMm2bUm2AUkABoEBEM/FGEBgrpAEYADbkngggXkWSYBthG2MJAyAQWCeSQCYZ7HNZZJ4fmxzmSQMQsg2z48kwDYvmG3uJ4n72eZ+knh+JAG2bXM/SbZ5wSTxgkkCbHOZJJ6TbUnGgCRAEmCb+0myzf0kcZltSdzPNs9DEmBbEgDYBgBJ3M+2JEm8ALYlcZltLpPEc5IE2JbE82WuEEI8kG1JXCaJy2xLAiTxQOIKYwDAIK4QmMtsABtAEi+UwAAYxLMJzHOxDQCSANu8AJJ4fiTxH802z0kII8RlxpjnYpsHkMQLIIkHkMRlknhOtiXZ5jJJvACSANuAJMA2l0niX0YA4pkk8YJJkgQAkni+zAMZA5hnMoAQl0niMklCXCbEC2ZbEi8C27zIJPFvZZvLbEsCAElcJonLJNnmfrZ5AEm2ucy2JJ6HJGOuMM/F2NiYf5F5JvOvYsx/HNvczzYvlCReBLb517PNv54kLrPNi8a2JO5nm+fHNg9knkk8m7nCmH8N24BtnodtHkAS/x7mmcwDSeJ5SOKFMEK8aCRxhcC8KIR4HkIA5oWQxAOZ52ZeENs8i3gg27zIjLmfJF4oIUAI8dzEswkA83yYf5m5wpj/JrYB2zwn2zyAMeZfYJ6DATDPJJ6DQGAA24AkQBKAAYQAQIh/JUk8L/Eism0bsA1I4jJJ/FvZ5vmxzfMjiX+JJP4lkmzznGzzPGwDkvjXsM0D2OZ52JbECyCJB7DNfwLbkrifba4QL4z4VzGIF4EQAhAvCtv855DEZZJ4oWzzvAzmWYx5EdiWxAPY5l/PNvezzb+ebUn8C6jiBbINSAJscz9JgCTuZ1uSEMI295NkDAhxmZAx5rmJ58s2L5htQBIvGkmAbf41bEviASTxnGxLsi3JNvezzWW2eRHYlgQIAYhnsc1lxgghnsUgrrAtSRJgG5AE2OYKIcT9hADLmGcyL4ixEFcYY0ASz0kSgHkuknihbEsCJAG2AcA2z8M2/xLbgCTANpdJ4nnYlsTzkMRltm3znCTxPGwDgCSeH9uAJMA2IIn72QZsA5KMASEhY8SzmWcSV9hGCAG2eU6SbNuWZJvnJMk2l0myzQMIIa4QMuZ5SLItictsA5IQmGeRBNg2lgTY5n7GGASAMZZkWxKXGWOusC3JNiAJsM3zYxuwLUmSbe5nzAMIAQgA82wG8VwkAbZtAxiEJIyxEJcZsLmfJNsABgEgAIxtSYAkwDaXSbINAJJ4ANu2JWGeRRJgWxIGkARIso1BGCOEeE62EYAk24BtQBLPYgBjIcSz2AZsS0JgrpBlbBuQBNgGJPGvYVsSYNu2JElcZhsAbAO2AUmAbUDI2LYky0JCtjEIIZ4vgbnCthCAEAIwzyQAjDEgBNiWJMm2JIxtrjDGCCGek23AtiTbAALzr2IbkMQDSOJ+trmfbV4w25J4HpIASTyAbUASz0kSYNs2/xLbkngA21wmiQewLQmQxPOwDUgCbAOSAElcZlsSYFsSz0MSL5gk29xPEiCJB5DE87DNCyXJNs9FPJNBXCEJkGQbAGwDQlxmjAEQzyKLK8TzZQkDBmQDlnhOQsYASDyTMYB5Fkk8P7Z5EdjmfpJ4fmwDkgDbkrhMEv8SSbYl8SwGMMZIQmBedJJsA7YlcZltLpPEA9iWJAmwzQtgG5DE85AE2OY52ZbEC0MgAEn8W9mWxAsgJMRlkmzzAggJ8UJJss1ltvn3sQ0AtnlOkngA21xmmxfKtiT+lWzzQOaZzBW2ucy2JCFAEgBY5l9LIJ5JvCiEhBDPJABJ/JtI4nlI4kUmiRdAEveTxHOyLYnLJHGZJO4niedkm383SbZt86KRBEgS4gUz5grzgkhCAJIA27xQtrmfEP8mkgBAiOdkm8ts8wDGPJAAbAO2ucJcYRuwzQsgiX8rY56XeWHMi8i2EP+tbAOY5yBsAxjANmAbkMQDCUAIwDyQbR7IYJ5FEv/5bAOSeABjnsX8K4h/FUlcJokHEs+HeF62AWNeKEm8AJL4DyWJF4Ek7ieJ+9nmfwZJ/N9lmysMIIR5XsY8F/FMAhBIAIB5PoSMucLmMmOeh23+9STxbyKJ+9m2zYtMEoAAEIjnSxIPIInLJPEAkngetnkASbxQkmxzmW3+NWzzwlCFEM/FNiCJF8A2l0mSZBsAJPGvYhCAJNuAJF4ASTyAJB7ANiCJ+9nmOUniASTxPGxzmSTbgG1JXCaJ50eSbUkAIMk2YFsSLzJJ3M8YwPyLhLifJAADIADbgCTuZ4wBEEKYZzPPJABJgG1AyFgIgQEkAZJ4ANu2AUncT4j72eZ+krifbZ4f21wmSZJt7ieJ58c2l0ni+bEtCbDNc7LNZZJs25YEALYl8QCSeADbPA9JXGZbEs9JEs+PJECSbWMh20IIAPNMwpjLLAvxnGxLAoQAY0ncTwgB2LYNSAJs8yxCFuKBhBDPZABj24AQArAtCcAIIQDbkngA24AkAIG5QpJtSTyQeRZJ/EskcZltQBKXSQJsA7YBQAhhDAgBkrjMtm2EJO5nLGSbK4SQsW2EkG0MIDBgDBJXCCEADALzQLZ5AGOeh20ukwQgMA8kCZDE/YwBBOYK24AQIIvnIQkAhBDPxRiQBNgGhAAAI4TAYABJgJAxL4AkLpPE/WxzP9sAIIkXQBKXSbINAJJ4FgHYBhAYYwDxLEIAxpgHEgDm+RICJAG2AUmSANuI52KbyyQBtgFJPJABbAOSAEmAbZ6TJC6zLQkAbHOZJC6zbRuQBNiWxAsgCbANSAJsS7LNA0gCbEviOdmWZBsAbEsCbAOSeAEkAbZtS+I5SbLNCyaJy2xzmW1Akm0usw1I4jJJ3M8295PE/WwDknhOtrmfJB5AEmCbF41tXgDbgBAPZJ5J2BZCCPFA5oGEAATGGHOFEMI2IInLbDASAJIMgEE8izEGMJYE2JYE2AaELEsCbPP8SLIN2AYk8Txs85wkAbb5N5HEZbYl2UY8kwAk8SKwDUjiedgGJPGcbHM/SbZ5AEk8D9s8gCT+9WwDYf51JNnmBbDNA0jiAWxL4oEEIGSby2zzAJJ4TkL8l7DNv4Yk/iWSJPHvIMk2l9mWxL+BeSbz3ASAABAPZMwVBvF82eYFMf8hJNnmBbPNi8A297PNZba5n20usy2J+0niP4dtHkCSMYCxDRhzhXheQrwgBvP8GWP+NYx5FgMY80Dm30JgXhgDCPGvJ4kXQBIgxPMwBjDPzfwLzPMl8UziOZh/BfN8iOdlm2cxAAbASOIBLHOFeCbxfBhjXjjxbAJAAIj/OWTZ5lkEgHhRmecgnpdt/oMIYQBJ3M82LwJJ3M82DyCJ+9nmX8M2L5Qk2zw/krifJF4A2/xLJPGvZ1sS/6Ek8SziednmhZIEALZ5HpJ4wYwlAUIA4pkE4nkJAQjM82EQz0XiMon7iSskGQPGxpK4TJJtnkXIwmCeRRJgm8ts8x/ENgBI4kVmWxKXSeJfIsk2D2BbEpdJ4jJJknihbPMAknhOkmzzQkniRUXlRSOJF8A2L4BtSbYBzBVCCABjzAMZBAYw5jIhLrPNZUKIZ7HNC2YbkMT9JPGcbPOCSeJ+kgDbkrhMEmCb50cSl0kCbAOSbHM/STwnY8wVtgFJ3E+SbUmAbUkYAIMAjG0jhADL3M8297MtyTYgBCAwCACBMRYSAowBY0AIcYVtIR7IIGwjAMwVQtzPtiTANiCJF0ASz0kSANjmASTxnCTZ5jJJgG3uZxuwzXOyLYkHsA1IAgBJXGZbkm1eMNuAJEmAbS6zDUiyDQCSAEm2AcwVQjyAbQCQBEjigQzmWSQBCMwLZADbkmwDQsZcZhshZBuDkMRzMQDigSQBGGMhLpMESOIy2zyAEIAwto0Qsg0gbAMYhCSekzFGEs/JNveTBNgGJEkCbEviOdkGJAHGAAKwjRDCAMaSuJ8x5grbXGEbQJIAxBWWMQAGgcBIAowB2wAgSZYxACAA24BtSZJsGwOSbNsGELa5TIhnEYAk21xhhBDGPBchhLlCyDZXCCFj24AkwDbiWSzLQgghMLYlAca2AUnczzb3k8T9bEuSZJsHsM39JPEAtm0DknhexrYkrhDPyzZXCADx3IQx5llkIWxzP9sAQhJgG4OQZJtnMcZCiOdgAIQQIIkXzDb3k8QLJon7SeIBbHM/Sba5n21AEi+AJB7ANiAJkGSbyyTZlgRI4vmRZJvLJHGZbS6TZJsHsM1zss1lkgDbvGCSANtcJsQLIAmwDQCSeC4G8UC2AduSuEwSLwJJXGabyyQBtrnMtiQuk2RbEs9ihBAYjGUuM+YyIUAWV4grhBAAYFvifrYBAAEI8SySeE6SeCBhG5DEA0ji+bHNC2AbkMRzsi2J5ySJy2xzmSReMEkY2zwPSTw/tgFJgG1JgG0eQBJgG5DECybJNgBI4kVmWxL3sy3JNveTxDMR4rnZ5kUjyTaX2eYBbGMA25IABOKBjLnMmBfMmOdkDGCeiyQAMOZ+kiTxrydJEs+PJP4lkngA27a5zDYA2OaBzDMZALDNZbZ5AEm2ucw2D2CZ5yQkxHOyzbOY5yauEOJfIsQDmWczL4gkwDaX2eYy27wIJPFvIokHsA1IAiTxAJJ4HpJ4AEn8pzEW4goBIGzzQMKYZzHPxTZXiOdPSAIA21xmzAOZF0g8k/j3MgjEs5lnMy8S869gXiTiOZgrhADMv0ACEM/NAJgrhHghxAPZBmzzohPPh/iXmSuMeX6E+PcxlsSLRhL/cWzzAhgjAMQLIoR5LsY8H+J5SVwh/sPZ5gWzbZvnIYkHsM2LQBIvgCQewDaXSeLfzTaX2eZFJsk2DyCJ52TMi8Y2BvMsQhjM87LNZbZ5fmxL4n62Ads8P7Z5LuKBjHkWgXkOBgEgAMQzifsZQDwf5jLzn882z0MSz48kXgS2uZ8kSTwnY14EtiUBkiTZ5jLbtrnMNi+UbR5Akm3+I0jiBUKZCUiyzXOSZJvnIYnLbAOAbUk8kAEQgCTMFcZcJmTM8yMEGHM/IcAYgwAkYRCAbZ6TJAwCsM39JNnmMknczzYPIAmwzWWSeE62uZ8k25K4n20uk2Sbf4kk2wAC83zZBiQBQsaAbUmAEGDMc5IEYAAEYJvnRwhAAMaYZzMIQAgwBoQABGAbwCCEAGOMZSEusy0JkGSb52RbEg8giQewzQNIss1ltgFJgCSek23uJ4n72QZsA5IASYBt7icJsA3YlsQDSOJ+tnl+JHE/29zPNiCJ5yTJNs9JiCsEYJvnJAQYA0Lcz5h/iSRjzDMZAPFsBkBcYSwkyTYPIAQgjDHPTWCeg8C8KCTZxiAQmCskAba5nxDCGPPCSeIKg7jCNgYhybZtSZIAY8wVtiVJ4lkMYCzJNvezLYnLjIUkGWOexTYgCZDEFcaYy2wDkoQQgG1eOIF5XpIA2wAGIWTM/YQQtnl+JAG2eU6SeE62jYUkAYBtrhCyAGMMgAAQQrZ5EUgCbPM8JPEAtnlOQoAxz0OSbcC2EOKBJHE/25K4zDbPTWDbkiTZti0JEELY5n4CAwghAxhzmSTbPIAkAGNZiOdhG7ANSAIk8Zxs8zwk8QC2bUviBZDE/WzznCTZ5gEkAbZ5fiTZ5jlJAmxzmSTbtgFJvFCSANvcTxIPYJsHkMT9bNuWBEjifrZ5wSRxP9sYBCAJsA3YlsTzkMT9bPMAtiXxnCQBtnl+JAEYAANYBgAhY4yxJC6TZJvnS8gyFgAGwLYkABAAIIRtLpNkm/tJ4n7GgBDGmAeQxPOwzXOSxP1s8wCSbPP8SLINSLLN/SQBtgFAEg9gmxdAkm3uJ8k2L4BtQBL3k8T9bHOZbUmAJMA295Nkm8sk8fzY5n6SANuAJMA2DyDJNhAAYJvnJMk2L5htLrMtiSvEMwkEgMA8L2MAY5sXSohnES8q8bxs8yKwbZsXmSSeH9uSeH4kcT/bXGFeEEmSuEJcIQkAEM+fwfyrmecgMM/LmBdCYJ7JAMaAbS6zzXOSxPNjmweQZBsAbAOSAElcZpsXmST+a9kGJPGcJNnmeRjzohP/CsI25tnEMwkEgHgWYyHAmOclAMx/JPGvIJ4vSfwHsc3zEv8K5rlI4gWTxBXihRHPn/gvYGzMi8Ignk0ACCHbvGhs859JEoAR4oWyzfMQz0PCBsDY3E9grjA2LzIhXjBJAID4d5IkiRfMNi8a2/xHkMS/xLZtIQCQxAPY5gEk8R9OPBfbkvjXs80DSOJFJxCYK4wBy5K4TJJtXigh7mdbEs9BAOZZbCOukMTzJZ6Lbf4lkniRSeIySba5zDb3k8Rzss2LxrYkLpNkmxfANpfZ5t9Ekm3+fSTxALYlAdW2JEASl9nmOdkGJPH8SOIySYAxlwkhAGMuEwIAzDMJIe4nCWMshMAAxoAkzAthG5DE/YwBSdzPNs+PJMA2L5htLpPE87DNZZJ4TpJ4TrZtA5IA2zwXgxBC2OZ+kgBAkm0eSGCeRRJgLMsyBgNI4jLbPIAxV5jnIDAIjDFCiOdLAMbcTxJXCCGekyTuJ4l/E0lcJsk2l0ni+bHNc5IESAJsS5LEFeaBJHGZbUAS5lkkAcaYKyTxAkjiMkm2MYgXxFgIARhjJHGZbQBjDEjiCnGFEJfZBmxLAiRhrjDmAYQQz03Y5goByDK2zWWSEIBtnh8hYwADIDBXGAsBkmwDtgFJkoxtcz8hBICxLYkHMs9mjCUBgCTANgDYBhAABpAkhABsA5K4wjyLJC6zzXOSBEiyDRgDtgEhIYRtALDNZZIASRjbQghAiMuMJQEYwBiwLUkSYBuQhXgmg7jCtiTAtm2EEIAwts0VAnGFEPcz5nnZSEKIK4RsG0viCoOwzf1sSwIAY8BYCBDiASRxmW3ANiBJkm3bkmxLAmzzALa5TBIgCbANAEKAbQDxvCQBthEYYyEEgDHmfrZ5AEkABgFgkADbgHg2gyQAG8AGkAAEgLEtyTbPyTbPYgCELMRzkQRgAMAyRhIPIIkXTBJgmxfANpfZBiRxP9vcTxLPSZJtHsA2L4AkHkASl0niWQyAAGxjEAACA9gGAEk8D9uSeABJPD+2JXGZbUkAQojnZCwE2BYCJPGcbEviX0OSbe4nCQBs81wEgLnCtiQERojLJPHCmeciicskATaAeG6yEMa2uUwIEAIQL4Rt7ieJB7ANAJJsSwJsc5ltnpMknockLrMNSOL5sS0JsM2/hiTb3E8SL4BtQBJgWxKX2QYk8YLZBiTxgkkCbHOZJNs8iwGC52Sby2xL4jJJknhOknihjHlOxpIABALxHAQGEAIwD2RbEs/FYBCAJEn857PNC2ZbEi+YbZ6TJK4QVxhzhXnhbPMs4rkIITDPxTb/WgLxH0uSJC6TZJsXgW1JPIAk/q0kcZkQz8mY5yGJ52UAIZ4f2zwvgXkmA9iWxAMY8y8SAOJfJIkrzDMZxAMZAwgA82wCEDLmOUkCjG3zLxLPRQhAPIsknsUAmGcyzyQQAOK5CGEASfyriCuEuEJgXhjxggjxgkkCJAGIK4S4nzEviHkW21whXiTmP4YBMC+Ebe5nmyuEbcA2YAzY5gWTxHOyDdjmX88YgfgXGMSzmX+ZATDPYu5nI3GFxANJPC9hmxfCPJNBAJj/SrZ5AEn8F5IEYJ4/AQjZ5t9BEi+UbQBjDGAeyJjLjIX4N5Ekicsk2eYBbPMvMoAQgBHCPH/iX8MA4oUx/4Fs8wCSeADbPIAknpNtHsA2l9nmfpK4nyQuk8RlkngA21xmWxKXSbLNv54k/pPZlsT9jIEqicts8zwk2eYBJNnmMkm8cAbxQLYlYZ6DuMIYEOJ+xhhJPC9hGxBC2OZ5mWcSz5dt7ieJ+9nmfrYl8QLYlsS/lW0AIYQxBiTxAtjmASRxPyEEYNs2IIR4JoOwLcT9bHOZJADzLJIA2zwvYYwxxkgCjDEABvFMQojnYRuwDUgCbPOcbHOZJMA2YFsS95ME2OYBbHM/SYBtwDYgiftJss0VAnOFECALIck2IAmwLQmwzRVCEoAR4n62uUwSIInLbHM/IcCY+0myzWVCiBdEEmAbASBsY54vSdzP5lmEEIBtDMIYc4UQgJCFMJYFGCMkGXOFAWxLksQD2LaNELINYIQQCACDASQBtrnMNpdZFgIQgG0uM5aEADDGGAAhBCAA21wmCbDNZbKMucJcYYxBPJAQ9zPmfkLGXGGMAUmAbZ5FCNk2liTJtiRAEmBbyDYCgxDCAEIIwLaQkDHi2QzigSxjrpDE/WxLQgDGGGMhSQDGMgaQhXgmg7jCIEDiMmMMIEkSYJvLJPEAkrhMyBiQxAPYBiRxP9uSANuSANuAJNu2JdnmAWwDkiTZ5jJJkgDANmAsJMk2YFsSYFsIASAAhDEGwAAIQJJtLpPEs9mAAcSzicskQLa5nyQbCQAB2IAQ95MEYIy5TJJt25J4FoF5ICEMAhBC2AYASQBgmweQBACSANu2AUk8P7YBSYAkLrPNZZJ4fmwDkrjMNveTxP1sc5kk21wmictsA0JcITAPZMxltgFJXGYbkGTbtiReANvcTxIgiftJAjAIjDECc4UQ5pkEIGTMA0jiMtuAJB5Akm0ewDbPwzaXSeIy21whhBAA5gpjSVxmLMSzGCGuEBjAmAeQAIFtAcIILB5ACMA8F2OuMIAknpMx5rnY5l9Jkm3uJwmQxGW2JfEAkgDANs+PJF4o25J4HpJ4wSQBtnkBbAOAJO5nG5AE2OZ+knhOtnkekjCAbUTwPGzzAJJ4ANvczzaAeT7MM5krbHOZbQRgzBXmmcRzEZLEZbZ5wSTxXMy/k20AsM1ltgFJPIBtSdzPNs+PbZ6Tba4wVwjxQOKBbPM8hHgA2zyLeF7GQgAgCZDEv8SYZzEA4oGEuEI8m3letnkA27Z5TrZ5ANuAbQCwDQC2bfMik8T9JPGCCAQCwFxhG5DECyKezfwLDOKZBIAAbPN8GcwLJGzzr2AwGAxg/m2EbPOiMM9BPJN5NmPM/SRxmRDPYiRJ4vkSzyaei20eSPwLDOKBjLmfEA9gzGW2eb7Es0ji+TIA5oURGADzbOZfJp4P8UwCA2CeSfzvIokXzDZgzLMIQBL3MwYQVwhhAAyA+FeweV42L4jABgAM4tnMCyIJwGAQD2TMfwRJPA9JXCaJfxPbPCdJ/Ets87zEczDPZoS4TJJt/k1s84KYZzLPZp5JPIsQ/3q2eRHY5rkYxDMJ21xmzGVCvCAG8bxsLhMABjCIBzLmOUkyBjDPzWCeyTyQJNs8D0k8D0lcJsk2D2BbEg9gWxLPyTYvgG2ekyQus81ltvmPI8k2/0kEgAAqz0MS97MNSLLNCyJsA4AkrhDPRRL3s42QBRhzhRFCYIyFAGNeMEmAbS6TBGBsA0KAMYABJPGvZFsS95PEZZJs8wCSuMw2D2CbyyTZlsT9bPMsxhgAhHjRSLKNAQAhXjRCxoAkQBLmmcTzZwDLgCwAgbDNA0iyzfNjm3+JJMA297PNZZJ4oSTZBmxL4jlJAiRxmW0eyDwHAxjzALZ5FvEczBXGPCfbPCfbkgBjhBDCtjFgW5IkAPNMQgiwzfMQMuYBbHOZJJ7FBiEDQjyTASGEMWAsxBXCGCEkCzBGAJJsS+IFsM0D2OZ+xgAGwABCCAwgCQAk8QC2hbhMiGcxCABjWQhhmysE5grbkgDbtrmfbe5nDAhxhTDGYABjSYAxBpDEZbYBwDYgiftZxlxhm+ckCYPAYBAYhDEGAyBsA4AkACGLyyxjnpdtnsUgMICQsSTAshCX2RYyBjBCiPtZCAQYwIBtSbYlcYVBSAJsA5K4zNg2DyAJsA0AtnkA2wBgWxKX2ZYEAJJ4ANsAYJv72eZ+tgEhhG1JiCtsc5ltQAjAAIAxICQJsM2z2OaZJGHbFggAA2BJYBBgAwZJ2EiAARvABgEgiWcxFkIAtrmfbUASAEgCbNsWMuYK80C2eX5scz9JgCSehyQAkARI4jLbPIBtSbYlAYBtAJAE2AYASTyAbQCwLck2z0sIYZ4PYYyRJMlYCLDN/WwDkgDANpdJ4gWQxBXGmMskGfO8hJBtAGEbg3ggSbZ5ANuAJF4oSYBtXhQCc4VtSQDihTIAQmAA20KIZxGAeBaBeRZjnkU8m3huArDNc5LE8yPJNveTxANI4vmxzQsgyTYvAtuAJB5AEg9gm+dkm8skAba5nyTuZ4yRBEiyzfMwFpLEv8Q2z0kSYJsrhBAQvACSbHOZbUlcJokXzLYkXhQG8UwC80wGEML8a9nG/AeSJIl/JUnczzYPIIkXwBiDeQ5GEi+AJNs8gLEQz5d4gcQLIonLhIwBzAtnWxL/5SRxP0m2uZ8knpNtnot4NgMY86IQ/yq2ucw2lxlzP9s8kEAgXjjbkngASYAk/mVC4gGEeBbzTOaZBID4tzD/AvFCCPFAAsBcIcT9jLmfEOJZbPOCGQNCAOK5GPPvY5sXQgAYAPMczHMzz5cQz8OYF40xz594NgNg7mfbmAewzXMxz8U2IIkXzDbPjySeH9u8YEJcJgRgrpDECyaJ+9nmRWOeH4nnZfPcbMz9hLjMNvezzQtmzL+DbV4A27Z50Uji38Q2YJsXwJj7GfMAQogrhHiR2eZfJJ7FmGcRzyJkzAMJzHORxGWSbHOZbR5AEs/Jtm2ekyReKEm8cOJ+Ms9BiBeNbZ6LsY34VxDPlyTbPIBt7ieJF40k21xmmxfMNpfZ5jLbPD+SbPMAkmzzL5EECEniMtu8AMa2bfOcJPGCSeK5mMuoNhKAJC6zzfMjiefHNg9gWwhAGAthrhAy5n62ASHuZ8z9JAFCAOK52BYy5vmRBSCeL9vcTxL3s81lkngASTwn24Ak7mebB5DEZbZ5Tra5nyQAAxgDloUA2wgAAwhxhfgXCCEAg0FcYSwEIDDGQgACYyxkGYMBhIx5TsZCGMsA5oFsS+I52eYySVxmW5Iknodt24AkwDb/Ekm2AduAJNuAJC6zzQslCYMBEIBtAAMgHshYCJDEZbaNASEAgblCkm3ANiAJkMQVAmNbkm0uk8T9bPOcJHGZbUCIK4RtnpMknosECAFgm+clicts20bIQhgDkoQQto0BSYBtQBL3sw3YliRkDCCEjG0jhIwBSVwmhABs2wYkcT9jAPNM5tnMFUKAkDEGYVsIMLYtyTYA2AYkSTK2jRAChGwbA5KMEQDGNgBIAgDbPIBtSYAkLrMNSAIA24Ak21whhDAI27YRGMC2JEm2AUASYFsIAQgZYxAIIcA29xNCXGEbQAAIIV4AyxgAgXkmAyBAyLYlAUKAZSEAsC3JtiReANuSJNkGbAOSuJ8kHkASl9nmfpK4TBL3k2QbsA0gJAFCgDEGgXlexkI8gCTANs/JNmCQZAxIAswDSICMeSZJ3M82l5nLZCEAY8wDGcA2IAnAIGxzP0mAJB7ANiBJkm3AtiRAEmAbsA1I4jJJgG0uk2Sb+0ni+bENSOJ+tgFAEmCb52QbACRxP0k8gBACMMYgnsU24gohY0AIMJYkZJv7SeJ+tgHbgCRAkm1AEg9gm8sk8QCSAAwGQDyTQQCYZxIPZBuQBGAA25J4fiQBtrmfJC6zDdjmfpK4n21JgG1JPJB5QYR4LkIIMMY8kCzuJ4krBOZZZCEeyDYghHggSRhjhCQus80LIInLbHM/SVxmG7ANSAIk8YJJAmwDtiXxAkjiMts8D0k8D9s8gG1eEIMAJAG2AUkA4nnZ5jJJPA/bknhOthEhAUjiMttcZlsSL5Qk21xm25jLjAGMEA9gLMTzMoh/FSEeyDwHgXg2869im38f27zoxDOJK4wRmOcm/hUE4tnMMxmEEIDAAEIA5l9kDGCelyTbgG2eh21eKNs8J0n8K9mWxP1s8/xI4lnMC2MeSIgHMs9BCPE8JPG8zBW2eU6SeH5scz8h/l3EC2bMFQbAIJ7FNi+UbcA2z8MYQAgBQrzoxAtnm+fHGMBcIQkAJPFAQggQ4vkR4n6SAEm8YLZ5fiTxXAyAABAvCiGuEC86YwSAATDPRQgQkoR5bgZAXCEkCUAAxoAx97MN2LbNC2AbkARI4j+aJECI+xnzH8c8gHheAgwYg40EAJJscz8BkhCXCfECSOJZzHORxHOShABsSwIkcT/bgG1AEpdJ4t9EEi8aSbzoxHMwzyaexZjLbHOZbUASl0nieUjifra5zDbPj21eCPNM4kViAMTzZZvnRxKX2eZ52OZ+knhBBOLZzPNljHgmgXlRCHGFeSbz/BnEsxkE4llsA4BtSTw/tnkA2zyAJJ6TJJ4f27a5TBIASOIFsM1ltrmfJJ6TkG1eKNvGXGbMfwFThRC2AUn8a9jmgYyxEGAZkMXzEDLmuZjnJmwDgBBgLABhnskgnkXImPtJso1BXGEbkATY5kVjm+ckiefHNiAJsA1I4kUhMIAQ9zMGhHh+bAOSeE62JfE8JPFAwpj7CfFAxhgB2AYkSeIFk2RbEv8SSdzPNpdJ4jLbkrifJNuAbUASz8k2z0MSl9nmMtuSuMw2zyIwz58AhIwBQBIA2LbNcxG2eU6SANuSuEwSl9kGJHE/SYBt29zPNpdJ4n6SAFmAMcaY+0kCJNnmAWzzIjLPRQjxTOa5SOIy27a5TBL3E+IyY0AIEDKWBBgjhADbgG1JPC+DQGCeg3kW20II28ZCxgghLpME2JYEGAOyEJIwtgFjSbYlAbYlGQtxmW2eH9uSuJ8kHsC2JMA2l0myLckyBgFIsi0JsA1IAmxLMuYKc4UkwBhzhSSeh23AWAiwLYnLJGGeg0FgAIyxJECSbduSJAG2AduSbAOSbNuWBEiyzWWSANu2JfEAkrhMEvezzWWSbNsGJAGAbS6TxANIAmxLAiRxhbEtScgYMBYCJPFABoOQZBsAJAEYYyRxP0uAeCBj24AQMgiQAPEAkmxjI0nCPC/bgCRACEAY2wYkAbYBSdzPNoBBPJAkHkASl0kCbPM8JHE/29xPkm1JgG1JPD+SbEvifpJscz/bXCaJy4wxgLEsQAiwDCAAIcA2gHkW24Ak24AkLrMNSOIBJHE/25K4zDYgCbAtCZDE/WxzPyHAGANIwmAQAOJZbHOZMUYIkMT9bAOSeABJgG3bPIBtSYBtSVxmm8sk2ZbEi8YYwEgChLhCPIttQBKXGQNCiGcyz2YQgLEQYCwEGAOYK4QQgBDPj21JvMgkAbYlcT/bgCTb/Esk8QLYBmxLAiTZBmwDgCSexbwgtgFJgG2ehyTANveTxPNjG5AE2OZfQCCMucw2D2CbF5kkLjMGMP8uwjbPTSBsMIBBPJMAjHkA2/xbSeLfRBIvAtvcz5gHEOIKIcS/ihHiRWQwzyaEuEI8iyT+lSTxr2SbF5kkXjSSuEySbcA2D2QeyJh/iW2ehyReNLa5TBLPybZtnpMkQBIvGkmAJP5tDAbAAIj/OuaFE+KFErJtDBgDCMCYf5F5FmPAGLAN2AYkAUK2ecEkSeJfz7YQ/07mRSGJ+9k25goBGNvmeUgCJPGcbAO2uZ8kQBL3s839bPOcbPOvIYnLJPHvIAkQ4l/FPD/meZkrjHk2AWCeH5vnIsRlknh+JPH82AZscz/bXGabF8A2/0qSeE6SeMEk8ZwkcT/bXGGeyTw3g3kO5nnZ5kUmiQewzWW2eREJzBW2eb4M4oGMuZ8k27zIbEviMklcZpsHkMS/nm3EFZJ4AYwxgDFXmGcyz5cQz48x/xLb/FtJss1ltiVxmSSeH0m8ALZ5TrZ5EUiSxHOSxGWSeJFJ4t8FZRrMi0YSYBuwDUjiAWwjhACMEIAAEFcYC3E/29xPCEAAtrmfJAADGANC3M+Yfw1J3M82L4Ak2zw/kmzzIpPE/WzznCQBmGcx5n6SAGMh29xPEmAbEAIQgG2ekyQeyFxhzPOQZJsXQBL/EttcJokXzDYvmCTbgCTbgG1JACAJsM39JAG2eR6SbPO8DAIQMuYySbwAtgFJtgEM4gpJgG2ekySMMfezLUnImPtJAgDbgG1AEs9JCIFBYAAMwpjnR4hnEYBtAGMsCZDEFQZA2AZkAQjAGCELMAYkcT/bPCfbkgBJAGAbkAVYBjCAJMAYsC0JkGSb+0kCbHM/IQDxbAbAWAYwAAKBATAIQBLGGJDEZbYBQAiwjMEgnoskwLZtSYBtQJIkwDZgLARIMsY8kCTANmBbCDAGJEniMtuAJMA2lwkBloWMMbYBSYAkwDbPSRJgjLlCCEDY5jIhBGCbyyRhnosxz0PImAeQxGW2uUJgANuSeH5sS5LEZbZ5HpJsA4AkALDN/SQBtrlMEpfZ5jJJtnkekgCMMUIIsI1BAAgMgJBlWxLimQzYPAchY64QQrYBSVxmAwZJ2OZ+knhOtnkAIS4z5jJJtjGIF0hgnk1gAEnczzYvlCTANveTxHOyzQNIss1lkgDbvFCSANs8kEEAknhOtrlMlmVeMEnczzb3kwTY5gFsS+IFEDLmfpJs8wBCgDH3k2RbEmDbWBZCCEDY5jlJ4gFsA7a5TBIgyTbPjyTuZ5v7SQJscz9JgG3uJwQYc5kk27xgkgAMYAwAGEmAZYwQgABs8zwk2eZ+kgDb3E8SYJv7SeI52eZ+krifbZ4fSTwP21wmifvZ5n62JfEAtiXxPCRxmW1AEpfZ5jnZlsRzkmSb+0myDUjiMtvcTxJgmweQZJvnQACAjW3+NSRJAgBJACAkxBUCsAwgnkUI82ziRWNeACGekzHPRfxr2ZYEAJIkcT/bvACSJPFCiH+ZeC5C/IcwgDEvgG1JvAC2eaFs828iSRL3s81ltrlMEi+AJMA2z49tSTwvASAs8y+xzWW2JQGIKyQZ2+b5Es9iGwCMeQDbPCdJPF8GwAAYY/41JAGAJJ4v82zi2cyLyDaAAWwDGAADIJ5NGBsDtgHbgG1JvHDiOYjnIK4QQgAIzItECPEC2MYAiCskIa6wDRhjAMA25nnZBoy5nxDPj20A8UJI4t9PAJj/JLK4TBJXiH8bSfw72OYFMS+MeSAhAPMA4jmZZxPY5rkZANvmhZLEv0QIgXmBzLNIwjwX2zyAJEm8CGzzIrPNv5Ik/jNJ4jlJ4gEk8TyMuZ8k2zyAJMTzksQDiWcStnketnkBJAGSuJ9tHkAS/3Fs8+9hXhS2eX5s81/INi+UbUlcJonLJPGC2eYy21whHshYEs/DtiTuZ5vLbPOisS2JK8RlKJuRedFIAmzznCQBtnlOQoBlzANJAjDPJK4wBjCAJO5nm/sJAcY8i3kWY+4nCZAEYBBX2JZkm3+JJACwzWWSANu8AJK4zDb3k2Sby4QQtrmfJMA295OEucIyIATY5oGELACDQAC2AduAJEDImAcQAoy5n21AEiAJsM39hIy5TBKAQTyQbZ6TJO5nG5DE/WxzP0m2uUwSYBuwLYkHkATYBiRxmW0AsA1I4n62JUniedgGhIx5fiRxP9uAbUmAJMA2IGTM/STxnGwDGADxLLYBSYAkwDbPjySMbUnGAAaQxBXiWWxjAEm2AQQCc4UQgLDNAxmEJIwxIAmDQVxhDEjifrZ5wYR4TsY8i8A8L0lcYa4w5n5CxlwhMFcIAQjMFZYBjBBgDABCgGVZxlwhAMwVQgDiCttcJsm2bUmSbGMQz8U2IEmSbcC2JJ4fIWMukwTYBmxLAoQAYwxCEoAx5gEk8QC2AUAIAIwxCCHEs9jmCoF5IEk8gG3AtiRAEuaZBGCb5ySJ52IQgG0us81lkgBJgG1eZJK4zDbPQ5Jt7icJsA3YlsT9hHgWYZvLJNm2LQkQAowBSdzPNmAsxGVCCACwzfOwLQkkYRuQZJvLJNnmgQziWYQQxphnMghjIUASz49tAIMAhBC2jYWEELZ5HpJ4fmwDgCTbPA/bkni+DAIQQmCMEUJcYYx50QgBCMwVxtxPkm2ehyTANpdJss39JAG2AduAEEIIQAC2uZ+QMSDJNveTBNjmOUnCGPOCSQJs85wkAbZ5TpJsc5kkwDYPIMk295PEs5hnMbYtCZDEczHPJp6bAYwBIcCY+0niMtu8YJJscz9JgG2ekyTuZ5v7SeI52QZsA5L495EE2Oa5GAABCBnzAJIwCMA2YBuQxP2MMZK4TBKX2eZ+kgDbPCdJgG3uJ8k2gJCFCMRzkcRltvn3E5h/gfkPYcyLQBL/GrZ5kdnmedjmWcS/zLxIzAskJAGSjHmhbPMAtm3zQOK5if8okngBJHE/2zw/trnMNiAJkMRlknh+bHOZsRD/Sra5n7EQL5gQVwgA8SySeF7mOYgrhHgg8WzmuQljxDOZ5yCem3k+zLOJ50sSL4hAvBBCvGgk8XyZ5yCemwGMeS4C8xzMv0y8IJJ4AEk8J0m8CGzbBmwDxoAxgHk28+9lMM9FiBeBJJ4f27woxAtiG7Btm/84tnkBJPGCmH+ZeF5CXCbEC2WeSbJt/s0MgMEgACFeMNsABsAAxsYABjC2zb+JbZ6TJC6zzfMlnkk8m3km80BC/IsE5nlJss2LRhJXCAyAACQBiGczAOIKIWMus424QhIviEFI4l/Ptm1JPIAk27xQtvmPY8wLIRDPl21eKNvcTxL/VWzb5l9i2zYPIAlAIDBCxjwPY14ASYCQJNtcZpt/JUnczzZXmMuQ04jnYpvnJIn72eZ+kgBjQBbCNveTBNgGbAOSAEm2eR6SuJ8xIAsw5n5CgDGXGWMAhBD3sy0JEELY5n6SANuAbUmAJJ6HbZ6TJMA295ME2OY5SbINSLIN2JYEIADMFZIA29xPCDAWQgC2AUmAbe4nBBgDgCTb3E8SYBvAIJ5Fkm0Ag3hetiVJ4vmxzf0kAba5nyTbPIAknodtnh9Jtnl+JPGcbPM8JNnmfpJscz9JtrnCSAIsYwDbQghJgG0ewDYgiQcQAhC2ecGEEIBt7ifJNgAIAYBtY0mSAMyzGHM/SbYxCATmCiHAMuaBbEviuRgA8WxCCLANCAGIZ7HNc5LEZbYBhCxjAEAAGECIK4Qx5gpJxhhACIEBjLlCCNnGAAhAkm0MQhKAATAIYwCDeG5CFmCMMZbEA0iyDQCSMIAxL4AkrjDGPCdJXGYbg3ggSRgAAdjGAAgAg3ggIWMMQsiY50sI2cY8F0kAwhgD2JbE/YyFeE6SMIAxL4BtQBIvhBACbPMCSOJ52OY52QYkAZIA27Yl8Zwk8YLZ5gGEAGNJXGabB5AEYABjAEAIcT/bPCdJtrnC5lkkXjgDIJ7JIACEkG0AsA1IksQD2OYySbZ5ACFj25J4foyFAElcZhsAJAEYBGCb+0myDUjiMtuAbUASIAnAPJMwxgAIIQwCsI1BSMIAxoCxEM9DEoC5wlgIcYVtwDb3kwRIAmzzAJK4zDYgCbDNFUIWYMxlkjDGGAQASLLN/STZ5goDSDLmAWxL4gWQxGW2eQBJgG1Akm3uJ4n72bYtieckiefHNveTxP1scz8hwJjnJAnAAMY8D0m2+ZdI4jLbXCYJsM39JAG2eU6SANsAIMk2YBuQxPNjWxL3sw1I4jJJgG2eH0kA5lmMuZ8kwFjINs9iAAQgyTYvgCSeh20eQJJtQBIA2ObZJBE8P5J4AEkAYJvnZV5EkgBJtvm3Ec9FiMuEeABJmGcy/yLb/IeyzWW2uZ8xgMH8i4T4F4kHsi0JwDw38UC2hXgeknhe5l8kifvZ5l9imxfANgDYBiTxr2Sby2wDtnkA25K4QlwhxGWSeMEkAbZ5LsKYF8QAxgAgCQAk2eZ5CcSzCcAYQDyTeA7mOQghLpMkiRdEPDfzTOJfxTZXGMRzMM/NPDfzwphnEwDi+RCAMQ9knptBIADEFZK4QhjzLOYFsY0BMFcY829mnk28IMZcYV4Y8/wJAAFgANs8JyH+9WwjJPHCmf8oknh+bPPvJgQAtvmPYJtnkXg280IYAPFs4goh29xPEpfZ5l9FAEKAbR5AiH+ReSBJtrnMNg8giRfCPJMBEM+HeBYhnkU8kwBsI64Q4jnZ5kVjmysE4lmMAQzigWwbA4grJNnmOUniCoEw5gWQxGWSuJ9tnh/btrnMNi8CSfyLxDMJAIP5j2IMGHOZJF4w27wAknh+JPGcbPOCSeIySTwnSbxgkvjXEOKBzLMI2eZfwzaX2eYy2wBgm+ePaox5XpK4n20AkMTzEkIA4rkZYy6TBEjiBbPN/SQBxoAQVxjLgBBgG5DE8yUwloV4ASTxopEE2Ob5kQTY5gWThEE8F9uAJJ4f24AkLrMticts2+Y52RZCABhACHGFbR5ACAEgjDHPIolnEYBtLpPEc7INSAIA24BtQBJgG5BkmwewDUjifrYlAYAkAJDEA9jmfpK4n22ekySeH9uSuMwYIyQJAyAADOIK25Ik2ZbE/SQZ28Y8X7a5TIjLbPM8bAsZI64Q4jLbAEIIkMVlto0BxLPYlgTY5n62AUASVxgAIQmDABC2ucw2IAQgnsk8F9uAJAziBTIABoGwjUFgnj8BIJ7JXGEbQABCto0BSQBgm8skAUIAwpjLJNnGIGwLcZkkHkCWMWBbEgJjjDGWJMk2l1kW4jJjwLYkSbZ5ICOEsG0MSOIyYwwCA0gCEJhnEs9iG0BcIYSwjTFGYCQBtgGEMZcJAQjANmAbkMRlkrifbduAJMC2EPczxkjifkIYBCAJsM3zkGSbB5DEA9i2zWWSANuAJJ6TbUk8J0ncTxIPYJvnIUkSYJvLjBGyuJ9tSZK4zBgQwgAIAGPMZRKAbUCAJMk2l0nCRgIA80ySbPNchBCAsG1bkiSekyTbknjBbHM/SVxhhDDGgCQukwQAtgHbgCTAtiTbACDJWBIA2AZsS+J+kgDbkngAY64wz8sYAyAA29xPEs9ibHOFQQjZBgAEBvMskrifbR5AEmCb52IAxBVCPIvAvCC2ucw2IMk2z0VgANtcJokXyjYgCbBtWxIA2JYESOJ+trlMEiCJy2xLAgDbvHAGgXi+jDGIfx0DCHGFETLmfpJ4wSRxmW1AEg8gyTYgiechiftJ4oWSxGWSeAEk8QCWMQBCiBfCIIRs8zwkAbZ5ANtcJsk2l9mWxAsgifvZBoIXwDaX2eaFM8+HAYx5IYyQEP9WknjhBMZYiOckiReZJP6tJEniCoH595DEZbZ5AYx5LsbYNi+AbQxgWxIvlG1J3M82l9nmOUniBbMNSOJ+tiUBkvjXk8TzI4nnYZsHMgDiOZgXRtjGXCHE85DEA9jmAWzzIjIvhCQewJgXTiD+dQxgDCAAQBKAATCIZxKY58uYK4wQL5gxL4AQz0X8y8RzMRbiCmEMAMYA5tmEEOJZJAGSMAACwDybeYEEIAmQxLOYZxP/BkKAJJ6TECAESLJtG7ANSOIFk8T9jI25TIjnIp7FNi868z+OQbxIxBVC3M88k3gBJP4djPmPY2wMIJ6LbR7ANpfZ5goBCHGZbcA2LzqDef7MC2IbwDx/4t/C/KsI8VzEM5kHss1lxjyQATAIQBIgicsk2eYy2/xHsC2JB7DNv48kYwDxHMS/ihDPRbwobHOZbe4nyTaX2eZfyTbPQxIvOvNM5l8gAGMEYAxgAMC2bcA2l9nmfrYBwLYkLpMkCQAk8fxRbSMEIP71bAsZYwBJXCGeySAASYAxIAQgbCOEjHl+JAG2uZ8QYJvLhABj7mdbEs8ink0AtrmfJO5nG5AE2AYkAYBtQBIPIAmwLQmwLQmwzQPY5rkYScY8D9s8kJAE2OZZBOaFMwYwAALAPIskwDZCCMAAtiUBkrjMNkKIF0CSbe5nWxKXSeI52eYBJAGAJNu2uZ9tSYBt24Ak2zwP2zwnSTyAbdsAIAmwzQMIITCAMSDEc5IE2JYEYK4w5gqDEELY5gEk2eYKgQFsSwIk2ZZkjMFcIQmwzf1sI57JAIjnIokrDIAAbAOShBAA5grbCCHANgIDYAAEgDHmMiFACAHYlsT9hBCAbWNAEoABEIAxgLhCCGHbNiDJtm1ACCGEAGzblsRlxjyQMeZZxAPJAjCAEMK2sRDiClnGPBfxLMaAJJ6TEM8iMJIAhBBg2zYgyRjzLJIA24AxIAQgnsUyIIQBjCVxP2NAlhDCtiyEJNs8kEE8k8A8kCQus80DCAGSbHOFEAJsC3GZJABjjDGWBEjiedgGANuSAGMhHsC2JADAPC/bXCaJy2wDgCQewDYgictscz9JgG3uJ8k2ANjmfpIA21wmZMxlQggM5pkEFlgSNpfZBiTZts1zksRlkgDbGIQkLrONASQBmCuEeMFsA5IA2wAgBGAQVwgBiGeRxAPYBiRxmSQMBoFBYADEFZK4n21eOGEbI0kSl9nmCoOQZBuwLQlAAAgAgXletiVhAMA2IAmQBNiWxLMIY4wk7mcbkATY5jIhwBiDkMRzsowxlgRIAjDPTQgBAMK2JC6TBAC2JQGSANs8gG1AEveTBAC2+XezDUjieQnM85JkG8BcYRkQAmxzPyGuEBhjDCAJQGCeSbyIJPH8SOIFsw1I4n6SeB62uZ8knosx5oEMAsAY8wCSeOHEA9mWxAsmCQAk2QYkAbZ5HkJAAEIg/pVsc5kxBgBsS+JFY8xlxpL4NzE25gEkYQAhLhMyBjCYfy3bXGZbEpdJ4jJJXCaJyyTxQgiEMS8K83yYfx3zQJJ4ASTxLAYDYDAYxDMJ21xmWxIPYFsSLzJJPIBtLrNtm38f2zyAbV4Q8fyJB7KNeSaDeCYBIJ4vSbYBIS6TxLMIQIgHsM3zMs8mnsW2JB5IPIsknsU8k8EAmGczAAZAPH/ihbPNCybEczLm+RLPYsxltgFjIe5nbMyLQiAABIB4FmMhHkhgrrDNswhj2wDmRWcbA9jmfrYB24AkXhDzwohnEs8mnottwLaQJEASL4T5lxnANmAMGPO8zBW2uZ8knsVg/itJ4t9GPJN5YSQACcDmP4Ex/1bGPItBvBCSeBYBIJ4P81wk8XyJBxLi+TLPZK6QxAsnnpcQRkjIGLBtm2cRzyaem3huxhgAMM+XsSReKCEA8Vwk8S+RZJt/JUm2eZFJksRlknggc4Vt7ifJNi+Uba4Qz2IMIBAAAvOvJv7L2JbEA4nnYowBjHmhJPEAkrhMEpdJ4gFs8/xIss1ltm3zghi11iQBkngA2zwPSYBtLrMtieckiWcxz2IZEOJ+tnkekrjMNiAJsM39JAG2eeEMQghhjHm+JPGcbAOSANs8J0lcZpsXTJJtwDbPSRLPSZJtQJJtwDYgicsk2eb5kYQx5n5CxoBthBBgWxIgyTaXSQJs85wkYQDEsxmEbUDImAeQZJv7SQJsA7YlSbLNZZJ4ANtcZlsSYFsSz49tQBIgybZtSTyAJNuAJNuAbUASl0kCbPM8hHgWAdjmfrYlCQHGgCQewDb3sy0JkGSbyyTxALYBIcCYKwwCsA1IkmTbtiQeQJJt7ieJZzHPYowBJBlzhQEkAQjANmBbSBJgGYMBEIAkYwwgifsZC3GZbe4nBCAAY8wDCSFscz9JtrlMCEBgjHlOkowxQrYBY0mSANtCxtxPCEAAtgHbkiTZBjCSAARgjLlCkm0ukwTY5n5CgGVZxjxfBoHAPC/bgCRAEmCb+0kCbANCPIu4wrYkrjDPJACMMc9DCGGb+0niMtuAsRAgBCAeyDaXCRnzr2RbkiQA80wCwADGXCGEMAjANpdJsm1bEiAJsM3zkMQD2AZsSwIk2bYNSOIySYBtwDYgSZJtAEDIAmwDiGcR4plsgXn+bAAJ2yCJBxKyAGMuk2SbyyRhMIhnMeY5SeJ+trlMEgaDACxjACHAmOckCQMYcz9JAOZZLHM/IZ6TbduSuMIgAEkABrANIK6QZBvAAJIAYwBACGGeSdiWxBXGmOckBBhjLAtxmSQAg7ANCCFscz9JAIAxBjBXGEviuQjMA0kCMM8mbANCPIAxL5gknpNt7ieJ+9m2LYnnJAmwzf0kAbYl8Zxs84JJsm1bEiDJNvczlgVIAhCYK4z5l0gCMIAxAEiyzf0k2eYySVxhjHl+JPGcbAOSeE62eQBJtgHbkgBjIS4TAhBX2AZsS+JZDIB4ICEAcYVtHkASl9nmBbANSAIkcZltXjgDIAHB82ObB7DN8yMEAJK4QjwH8RzMv8g2z0MS/1oCMLaNeb4k8W9imxfKNs9DSAgQAgBjwJjLbHM/SdzPtiQukySJK4RtY54fSUIAIInLbPMC2OZZBOI5CGMuM5bEA9iWxL+ebS6zLYnLJNkGJPEAtgFJgCQeQBL3s81ltrmfJO5n25h/JdsIAPGikMSLxpjnRxLPQ4jLhHhOtgEAA2CeTUjiWQyAABDPTQAIzDMJQJIx5nkJ8UDi+TDPh5HEv54xBjDmCvEvEAAGwDybABAPJMQLYp4P8+8hCZDEfyDzghjb5gUT4j+HbZ7FXGHMC2aZF0wSz0kSL5QkQBL3k8TzI4lnEc9NAJjnQ8I8H+KZJAGSeH7EA9nm+RKIF50xD2SexZgXwtjmhTOYF5EQz8nYNpfZ5goBGBsDxlxhHkgSgAEQL4SxEM9FPJt4gYQkAIG4wjbPxTyQJJ6LsM1lxrxoJPGCSeIFkAQAkngBJPGcbHOZbds8D9s8gG0eyDwH8yxCvHACMOY52eYBbPNABkD855HEZULGXGYMYB5IEs9FPJAQD2CbK8wD2eYBJEniBbPNCyCJy8yzUIX4l0jigQSAQTyLEGDbmOckBAghbHM/SYBtAAMgnkUSYJvLJAEY24AknpNt/jUk2eZ5SOL5kQTY5l9DEs9JiPsJAZjnIokXwDaXSQKMuZ8kDCBkzL+GbZ6TbV4oSbYB25J4ASRxmSTAtm1AEg8giQeQxGWSbAO2AUmAJNtcJgmwLYnLbPOcJAGSbHOFAWxL4lkMgEA8LyGeRQhxP9s8J0k8gCQewDb3sy1kjACEEADCtiTANiCJKwTGGCMJY8wDGHM/IQzCmGcRVxhjhLifJADxbOLZDGBbkm1AEmCb+0myzQtmLMRlxhhAyNg2Qsi2bQQGEAIQxhhJtgHbQjyAbYQQVxjEM5lnE0KAbUAIAdjGPIsk27YBSca2ASEAAdgGhLjCAIhnMlcIGfMAkmzzALZ5HrYBSVxhMAhjQJaQbe4nCbANCAkhbHOZJC6zbVuSJMA2gLhCCGFsG8A8iyTuZ1kIwDyTuMK2bQCQJMm2bUASz0nIGANgEEIABpBkm8tsS7LN/WxzmSQewLYk24Ak7mdbkiTANiCJ52RbEmCby2xLQjyTADDGgBDPxTw/AsAAgISNZJvLJAFYPA9J3M8YAcgy5nkJzDMJwLYkDIB4NoMwBjAISba5zDYgBEjiMts8JyEAAdjmMkncTxKXCSGMjXlOkngASYBtxLMIARgAMAYwCCGuMM8iiQcykrhMEmAbkMQV4vmyzfMSQlxmG5DEc5Jkm8sk8VwMYCyJZzHGkgAMApBkmxfMtiQeQBLPj21JPCfb3E8SDyCJ+9kGJHE/STyAbUmAJO5nzBUGQAgZAxjEA0kCbEuyjAGMhXjhhDHmBbHNc5IE2OZ+kngetnkgAcgCMAjAGPNcJAG2EVdIAjDGXCaLZzEIIZ4fSQAgyTaXSeJ+tnkBJPFA4jIC8UwG8yIxmGcTGMCY/zS2MS+MeDbxTEISz0OSbf7LCfGikSSJ+9nmBbPNA4krbAOAMVeIF0QSLyLxvGzzL7HNc5LEi0wSIMk2z8M2z0MS/xJJXCEeyJgHEpj/WMaIBzIGEC+IMeZZbCNeCGME5l8kieckiQewzf1s868kicuEAMCY52WePwFgANs8L2MMYBDPJF5U5l9mnk0AmGcSzySeL2PMA9lGPF+SeNEJxAtjXjjbPCdjAPO8bPPvIAmQxAMJzL+BbV4w27xgtnkBJPEAtgHbPC8hiReVecEkAYB4HuK5GcwLZJ7NPH8CQDwf4oGMEVcI8VzEv8g2V4hnMxgAg3ggSTwnSVxhng8DIDAvCkk8L/G8JNnmXyKJ5yHJNi+EQCCMAQRgLIkrBCDJNv8mkmwDgG1AEvezzb+SJC6ThLhCCMBI4gGEjHkWgQAsCwGIB5LEZZIAzDOZKyRxmRDPIp7J/FcwGASAEDLmeUjiMkkAgAAAYwDzHAziX0USl0myzQsgiQeQuEKiAgiMARAAknjRCPEsBjCWxIvCIJ5FiMuMASHuZyxkDAgBGMAYEAKEEM9kAMC2Mf8mtvl3k8RltgFjrhCYK4QAY+4nyTaAEAJsA7YBSTwnSYBthBD3k8QVBgFgnsW2JC6TBEjiXyLJtjH3k8TzI4kXzDb3kwTY5gWTxPMjyTYvgG1AEgBI4jLbgCTAtiQAYxnAAEKAJAADIABjIZ6XQUiybZvnJMk2z8UgEIBtQBLCNs9DEmCby2xLAgBJgG3bCAQGASAwxhiEkCQusw1gEMaYB7INSAJs8wCSeMFscz9jAPMskrifbQADGAMIwDZgjAEkGcsy5nkJIWMhHkgIcYUxxgAIIQRgG8AgANsAYBuQxAPYBmxLMgaEeADLQhiEMSCEMAYABAYwFgIwVxgLYQAEIAmwzWW2EZhnEQIQgJAxl9kGJPEs5rnYBiQBtrmfLGPbkmwDthFC3E8SYBvAIABjrjCAJEAS97MNSOIy21whhADANiAJMBbiOdnmASTxgknifra5nySekyTbvACSbNuWZJv7SQIwCCEus82ziGexLQnABpAA29xPEiAJYxtACCEAjDGXCQEIwDaAeG4C8xzEM4nnZhCAJAAjCWEbABBCAOZZjDGSMIAxz8k295MEIABjwLYkAEAAkgDbgG2ek21AiMuMucy2JADAGGMQV9jmhZLEFUYSYJvLJPFCSeJ+tiVxmSQAsA3YlsRltrlMEmDbWAiwLARI4gohxP1sS+JfYhuQxPNjWxL3k2Sby2xL4jLbgCQewLYkLpNkG5CEMcY8iySexTwf5lmEAGPANpdJ4lmMEJcZS8IYA0K8AJK4zDYvgG1AEvezzWWSuMw2z4+QMWDM85Bkm+diEM8mMMZcIZ5JAJjnZRuQxAslCbANALYBSTyAwHYAGEBC4t/CIAAE4rkIAYgrJPFA5lmMeUHMi8Q8kDEvgG3uJ4nLbHM/21xmmweQxL9EEs/JNs/FPDdxhSTbXGGeiyReCPN8SbLN87AtiX8N2/xbSeIFk8SLwLYk/kPZ5nkJAPNchDAviDH/EkkAIAlzhSQuM+Z5SOIySVwmiQewzRVGCACEZPEs5vkQxrwAtnkg8R/GPAeBeBZjnpOxEP8axjyQADAA5tmEsTH3k8T9JHE/24BtAPMvMuaBDAAI8ZyEAMQLY54P88IYAPEstm3z/AhxP9vcT4jnZJsXyhjxbyCJBzDmASRJ4j+fbS6TBEgCbPN8mWcTz5ckXgDbkgBJgDGAeDbzXIR4FvEvEAAGkMTzEg9kjAEQL4QQlwkZ8yIQsg3Y5vmxzQtnEM+fedHZ5rmIfxUhXijbPCfbPA8h2wDGWBLPYmzzPCTxPCTxorHNC2UbAGzz/EiyzWW2jXkAIZ4v8UxGyBgDGBvzfAkAgcAAGGNjAGMMYJ6LJC6zzb+JbV4wSbZ5ASTZ5gWTxHMRVwhxhUA8iyTbAGBbEg9gm3+JbUlcJmEMqLWUACQBtnlOkgDbgCSexQDGgCTANveTxGW2eU5CPIAxVxhJAOJZbPOchHhOxhgEgMAAQsaAMSDEc5LE/WxzP0m2uZ9tSTw/knh+bHM/SYBtwDYgieckCbDNZZJsA7YlSQJscz9JXGZbEmCb+0niOdnmOdmWxP0k8ULZ5oWSZJv7SbLNZZJscz9JtrnMtiRAEmCb5ySJ+9kGbEsCJPEC2OYy25IASbZ5AEm2eU6SbAO2JUkCjAEhDAKwzQMJWdzPmH+JJACwzWWSbPMAtgFJPD+SuMw2z48kwBjzXCTxnIwxGGNAEg8gyTaXCSFeCNtcJsm2bR5AkiTAtpBtIWPAspCQMQZAXGGMEQIkIQDbPJAQwgDGACAJc4Ux9xMCEM9ijMEgnskgXhRCgGVACDDGPC9JtrlMEpfZ5jJJGNsISTyLMeYKgblCEmCbF0ySbS6TBNjmfpJscz9JgG3uZxuQJIn72eZ+kgCMMWAbkCQEGHM/25K4n21JgCTANveTxLMYYwAhZJvLJPE8bHM/SVxmm8tsSwIkAbYBSba5TBIPYJvnYZvLJPEsBpCEsA0YYwBJgCSek23ANgBIAiQBtrmfJAADGAMYAHGFbUmSbHM/IcCYyyTZ5nkIGWMQkrjCAMYAQggDGAOSuJ9tAPMsxoAkLjPGCCEAIcAYAyCukARgAGNeOIOQZNsYIwlAyAJsA5aFAAyA+BdJss0LIAmwDUjiWYwxQojnZBuwDUjiCoMAhIx5IQwCkATY5lmEEJfZ5jlJAmwDkrifbZ6HJNuAbUk8D0k8P7Z5LgZAPIuQsSSexVxhG0AAGADxQJJsA5IwxhgA8WwGkAQgAGPMs0iyzf0kAYBtHkAS97PN/SRxP9vcT5JtLrMNSAIkGWMk2QZscz9JgCTbgCTbPCdJtnkASdzPNveTBNjmfpK4n21eAElcZhsIiX8j8S+yzfMw5vkSVxhzhXk+xDMJxDOJZzJXGHOZkBAgiX+JJNs8gCTb/EeTxAtgm+chiechif8ItnketnlOtgFJPA/bvGhsS+IySbb5N7HNFeYFkWQbsM1zss3zsM0LZpnnyzyQEFcIxL+WJElcJokXypj7CfEAtjGYF4kBACHAmPtJ4t/ENi8CY8AY80wGQDyLEGAMGHOZJB7IvCDGPH/mv5YxL5Qxz8X8p5LE/Wwb8wCSeE62eS7mWSRxP2NeMEnczzbPwxjzbOaZzIvONveTxP1s8x9CAAjAGJAECAGSeH5s8/zYts0DGQDxbALAPBdJ3M/YmPvZ5vkx5oUzxrxQxtxPSIhnMULczxgQAhD/HrYBQBKXCXGFQAjxLOIKSfw72OYy2zyLADAviBBXCCEERsiYfzOD+bexzQPYBmxL4gWwzQsmicuMAcwDCfFAAjAGEM8mHkiSbe5nzPMyz4d5INuIZxJX2OZFZpvnYZv7SeJ+tjGAbUmAJIQkSYAk21xmW4gHkGSbfw1J/CvZ5tmQ04hnsQ3YBiQBkrifbZ6TJABjLAQgMMY8LwMghIy5TBKAAYwBSQAGsIwBJAG2edEJDIAQAmxzP0nczzYASLLN87ANSOIBJNnmASQBtrmfJMA2gEFcIYnLbPNCSbINCCEA29xPEmCbF0wS97PNc7ItSZJtHkASYJvnJMk2IMk2LzLbkgBJgG3uJwmwzQNIsg0AkmxzmW1JgCQuM8YIIQDb/OvZlsTzEOIyY0mAbS6zLYSQBNgGMAhJAAYB2OYySVxmWxKX2QYAIcuYZ5FkG7DNZZIASYBt7icJsA3YlsRltiVJAjAI2zwnIQAw5gEkAba5nyQus83zkMT9bAMYxHMTsgDbiAcS4lnEFbZtA5IASbZ5HpIwtgFjSVwmBBhzhRACMIhnMlfYBhBCxhhjSYAk7mebKwyAkAQYA0IYwBgwFgKEjG1LErKMuULIMuYKScYYAIMAEEK2uUwSl9kGbAOSuMy2JJ6HEAKwzQPYliSEsM1zEkLY5n6SjDFXCCFs2xYCAGOEEIAxBiRJ4n62AduSJPEAtjEA4rkIGXOZJMA2YFsSIAmwzf0kcT/bPIBtSYAk24Ak24BtQJIk24BtSQAgCbBtLARIAmxzmSSeh20Ac4UxIInLJAEYwJgXjSTAtm0hAEAAgCTANmAsBABCgDH3kwTYti0JEOJ+ljGAkDFgWxJXGIRtLhPiCvFMBpAEIK4wBmQBxgBCiOdhmxdKkm3uJ8T9jLlMkm3ANpdJ4jlJsg3YlsTzkGSbyyQBtnkgIQsw5gGEANsA4gpJtnkuRhKAuMI2YFsSAEiyzfMjCbDNZZJs8y+RxPNjm/tJ4jnZBoyFeAAhwJgHkGSb+wnxLMI2IMk2z8UACECIK4xlLpNkG7AthACEeBYB2OZ+kgDb3E8S97MtyTb/ekII29xPEmCb+0kCANuAJNu8YJK4n20uk8QD2OZFIWQhghdAEi86IQlAAIjnIgQgrjDmuYhnMwACgbnCtm1eEAMICQEYAPNM5gpJvFC2JfE8JPGcJNnm38c2L5ywzWXG/MeRxL+eJNtcZlsS95PECyWJB5DEC2Wb+9mWxGWSbPMAQkK8AJIk8ULZ5jJJPBeBAIR4TpIQL4x4QSTxvAQGsG2bB5AESOIFsG0bsI14/sTzJ54/Y5tnES8SA0jiBTGIF5FtLpMESOL5kQQYA8aAMc+XeSbxLOZ+4rlI4jnZ5lnEczAA5oGEAEmIZxMYAIMxFuIKAWCem3khJPGcbPO8xPMnAIRtnotA2Oa5mOfLmPsJcT8hnpNtwDYPZJ6DuEKIF8A2YBsAJPE8bPM8JHE/Sba5nyRAEg9gWxLPy9gGbPMiEs8iiX8f2zwXcYUkHkCIF5F5DgJzhTFgWxIPZK4Q4vkSxrxwxjYvhAAwmAcyBowxQrwAkgBJgCReMEk8D0m2eeEMAhDiAYyNEYgrJNnmeQljYy6zzf1sA4BtSbwIbPP8SOJ+krjMNv96QrwIbCOeSTybsA0AtiXxohCYK2xLAiQh/kWSeKEk8TwkSeJFYSRxmRDPRVxhm8tsS+JfyTbPj23bvCDmMpSZ3E+Sbe4nCbANSAJs84JJ4n62uZ8kwDbPj5AxgBACbHOZJNu8ALYBhBAGcYUQlxlzP0m2AUmAbe4nyTb3kwTY5oWSZJvnJIkHsA0gZAGAMYDAPIttQBKXSQIwAMI295NkmweQBNjmBZME2AYkcT/bPA/bkgBJgG3uJ8k2z0kSYBuQZBuwLUmSbZ6HJC6zDQCSuJ9tXgBJtrmfJIwxQoj72eZfIgmwDdgGJAGSANvcTxL3sw1IAmzzAELGgG1JkgBjzAsiyTaX2ZbE85DEZba5TJJtAJDE/WzzXATGWAgAJAG2AduAJO4nBCCexTZgWxLPwzb3kwRIwljGXCFkzAsgBCCexVjIGPO8hABjwDaXSZIE2OZZzDMJIYQx5gpJgG3uJwEyxjyTwABCCNu8CIQQmGcTxpgXxDZCSAgw5gFsc5kk7mdbkiTbAELINi+AJNtcJgmwzWW2uZ8kAMAYSwIkAba5nyQus41BIIQA21xhEM8iBBhzP0m2AduAAAkhBGAAYwxCEgYwBjBXGEviMtuAJO4nicts8zwkcZltHsC2JEASYJvnIYkHsA1gEAAgifvZ5n6SeBYDGHM/STwn24Bt7idJEg9gm8sk2eZ+QghjzLNI4nnY5n6SbPMAQghjzPMlybYx5lkkCRnbliRkzP0kcYVBPItt7ifJNs+XkAUYA8ZCPJABEFcIGXM/IYRtLpNkm8skAba5nyTb3E8SYNu2JEASYBuwLYnLJNkGJNnm+ZFkmweQZBswFuI52eYySTyQELLN/SQBtm1LAiRxmW1AEmAbkATY5jJJgG0uk2TbtiRAkm3uJ8k295PEsxjANmAsicsk2eYySdzPNg8gZMwVBvEskmwDQsY8gCQewDbPSRKX2eZ5SOI52eZ+kmwDkmxzP0k8iwGM+ZdIAmzzAJIA2zwPSbZ5HpIA2/xrCCGCB7DN/STxPCTxbyWJ5yHJmCvMc7HNA0jiASQBQgACc4Uxz8M2l9m2zQPYlsQLJonnYVsSL5htrjAIwJgrzLPYBiRxP9uYZzIPZJvnRxL/QSTZ5vmxzfOwbZvLbEvieUgCANvczzb/SrYl8UAC8W9jG7ANSOIBJPEvkQTY5jJjSYAknsW8ELa5zDYASOJfYpvnRxIPIAkDYGzz/Eji302SJJ5FYP4VxAMJ8Zwk8QDGgDGXSeIy27wQ5l8iXgBjHkASL4QAEIAxV5jnJYnLJGEAhDHPSRJCEvezzXMxLzrbtrmfJJ4fSQACsM2/jzEPIMk2YBsQL4B5NvEvksQLJYkXmW1AEi+ceSbx72Sb50eSEPezzb9EiCvMAxnzgkmyzfNl/gXm+ROAMYB5buL5kmSbF8Q8kBDPRQCYK4x5AGPbknh+bAO2bXOZJACQxAslicsk2eYy25K4TAjAAEK2eQBJtrnC2OYBbHOZJJ6LeUEk8QC2uZ9tALBtmxfANg9gm389SVwmyTYvAmMhrhDPIsk2lxnznGzzvMxzsc3zkMQLZZt/kfg3sM1ltm3zPCTZ5gFs8+9FBQDbkgBJXGabyyQBtrlMEpfZ5gWTxP1sc5kk29xPEv8atiVxmW1AEs8ijIUABCDE/WzznGwDkrhMEmDbNiCJB5Bkm8tsS+IBJAG2bQOAJJ6TZczzksTzMAaEeMEkAba5TBJgmxdAEv8SSbYlcT9J3M8295NkmwewLck2IAkAJPEAkgDANs/JNpdJ4n62eR6SANu2AUmAbe4nCbDNC2YbsA1IAiTxAJK4zDb3kwQAtrmfbUCSbe5nWxKX2QYk8fzYBiRxmSSek21JkrjMNg9gmweQZJsHkMTzIwmQZNu2kDFCiOckiedHkm0uk8Rzsi0JgbENSAIk2QYAY8wVkngWA2AQgCTAtm3AWBLiWWxzPyEAAWAwCEDImOdhWxIYhAFsSxIyxiBs8wCSANsYhCTbtiVhjLlMEmCby2xLAiQBtrmfJMCYy2wDkiTZFgIk2QYkcZltAIPASAJscz9JAGBbEvezbVsS9xNCABhAEoAAbHM/SVxhACEEgLGMkQRgEIAxDyCJ5ySJywQAxpj7SQIAjGUus40QAoQA24AknpNtLpMEALa5n23uJ8k2YBuwDUiyLYnLbEuSBNgGAEnGkgDMMwnbXCbEA9jmuQgh27Yl2eYBhBC2ERghALDN87ANSDK2DQgBgLEQgLnCGHGFJB7IIACEEM9JCPEcDCCJ5yIwQhiEEAIAbPM8hIQQD2RbCPHcBCDEc7LNFcK2LAQgCbDN87Atictsc5kkLrMNSLJtG5AESOIy21wmifvZ5vkxxjyQbUmAJB5AEs9iAEncT5JtwFgIsM0D2JbEC2YbsC2J52EbsC2JyyTxALYBSbZ5AYwBSTyLsM3zsA0IIWzzAJJscz9JPCdJgG3uZwwIcT9jIZ6HbUnczzYPIIkXwDbPyTaXCSEwgG2uEEK8YJJ4fiTZ5l9JEs/JNveTBGCAAABJPIBtXgDb/FvZlsRzksQLIEkSD2CbF0yIf4kk7ieJB7DNCyaJyyRxmW0us22bB7AtifvZxrwQkiTxvMTzss3zsG2bfwdJ/OtJ4n62eRHY5gEk2eZfwzb/Ekm8ULYBSfxbGfM8bHOZbUkAIIkXTBIvmCTbPD+2eQFsS+L5kcT9bHOZMQ9kXhSSbPMikMSLTBLPxVxhzAPY5oUTAOJFIYl/D/NCSOKFM1dI4vkS/yq2eRGJZxPPYpt/K2Oei/mXiOdLYADbgBDPSRL/EtvcT5IknockHkCSbcA297PNAwjxghlzP0k8L/MstnkBbAtxmRAvnLnCNgAIcZkQ/yKBATDPn8E8k3nhbCOeg3hhzANJ4t9KEgIjhAEQVwjZ5jnZ5gWwzf1scz9J3M82l9nmASTZ5grzLMZcZhuwDUjieQnE8yXEA9i2zWW2Adu8CCRxmSTbgG2ehyQewDYvOmGbBxKY52AQ/2a2AQzmgSTx/EjiX0MSD2AbAGzzQEYSIAmQJARI4l8iiQewzWW2+Y+HnDbmfpJs8wCSbPMAkgDbXCaJB7DNA0iyzQNI4jLbXCYJAGxL4n62eRFI4vmxzf0kcT/b3E8S97PN/STZ5vmRxGW2eRFIss39JPFABjDmeUgCbPP8SAJs8y+RBNjmfpIA2zwPSYBtHkASL4Btnh9JtrmfJO5nm/tJss3zkATY5n6SuJ9tHkCSbZ6HJO5nG5BkG7ANSAIkAbZ5HpJscz9Jtvk3kQTY5jJJtnkASTwn2wAgiefHNgDYlsT9bEuSZJsXQBJgm+ckiRfANgBIAgDbXCaJ+9nm+ZEEGGOexbYQQhKX2eYyIcCykG0AAyCexTYgCZBkG4OQhAGMeX4k2YC5TJIBmwcQAmwbS5LEA5lnEra5TMiYyyRhEM/FtiTANvcTQlxhmwewLUmI+xkDtoUASQjb3M82IAkAJAGAbS6zDUjifpIwzySMMQAG8RwEBoOQxHMxCMC2bUlcYRBXCAGIK4wxgJBtBIAQ4n62eQAhwJj7SbINAJJscz9JgG1eMEmAbZ6HbUASz0MSz2IAYy6zLYQQMuZ+tiUBgG1JPJABEAAgZMz9hADAGIO4wjYASOIKgwAk2UYI2cYAQojnIGzzLAbxXCRhAGNAEmAbEEIAtnm+hBBXGGMewLYQgBBCGAsBmGexjAEk2eZ5SLJtWxJCljEGQFwhicts25YESAJscz9JtnkBJNkGJNnmfpJs8wCSANuAbQCQxAMZAHGFJJ7FAMaAEMI2lwlxhbDNv0QS97MN2JbE/SRxmW2ekyTuZ5vnSwjZ5n5CiCuMMc9LEoB5FssYACGEeQ4CsM39JGGMeU6SANs8gCTbXCaJy2wDtrlMEveTZJv7STLGPH8GkGTM85BkmweQBNjmASTZ5vmRxP1s8wCSbPMAkmwDgCTb3E+SbQAIrjBX2OYy21xmmxfKNi+YbS6zzWW2eU62AUAS97PNfw5J/Ets8wLY5l/DtiSeLwMY8zyEeBFI4j+UbV4A27zIbPMCSOIySbb5d7MtiedhGwBsA4Bt7ieJf4ltSVwmCfOvZds2z8O2JB7ANv9KkgBAEv/JbPMs5l/BYF4QSTxf5gUyVxgDkgBJPBfxQtiWeCZhjM1zMgYQ/wWMeRbxQhjznIx5TpIA2zw/tgFJvBDm30j8q5krjBEvImNeBJL4d5PEv4YxgACMuZ8xz8k2z0VcIWTM8xLPIsQLJsk2gPlXMIjnZYx4IWzzQhljHkgSlxnzAEI8F4F54YwBSQDGmOdhm3+JJNu8AJJsc5lt7idkmweQxANIAiRxhUAACABzhW2uMIAxBrBsm+dLvChs8wCSeCDz72KMeS7mmcyLRGCezTyQMc/LPH8Gg3gg29zPNg8gCZDEA9jmfpJsY56LEIBBIIx5LkKSbV4EtiXxr2RbEg9gm/vZ5n5Ctnkm5GbLPCfbgCSekyTuZ5v7SQJs8yKTZJv7SQJsA4Ak27xoJAG2eQBJtrmfJIwxAEjiMtuSuMw2L5RtSYAkXjDbgG1AEiAJAGzzAEKAMZcZC/GcJPH82OYySVxmm+dHEmAbsC1JEvezDdgGJPGCSQJs85xsSwIk2eb5kQTY5gEk2eY52ZbE85BkGwCEELYB25IkAbYB24AkLpNkm+dHEvezDdjmfpIASbZ5HpIADOJ52eZ5SLIN2JYkCbAN2JbEv4kk24Ak24BtSdzPtiSekyReANsAIMk2z0MSYJvnRxKX2QYAIQAB2OYBhABjHsC2kCTAMiALwCAAY15ktgFJgCTbXCbJNiBkzP0k2eYKgblCyJgXQJIxBpAEGAsZY54vSYBtnh8hY+4nBBhjjAEhxAtjEIAkjDFXGAQgCbANCBkDgCTbAEbIMmAsBCAwL4gkLrNtG5DEAxkAIYnLbAOAEOJZjAEhAAMgANsYAAFI4gFs8/xIss3zkMRltiVxP9u2AUmAJC6zzWVCxtxPEmAbsA1IQmAAzLOJZzMAAhDiWQRg27YkIa4QAAaDAIx5TkLGvBAGAWAAhJAxYBuQJMk2YBuQBAghnslcYVkIsG0bkGQbkIQQAjCAMQYhhLDNsxjEFZK4zDYPYFsSl9mWxL/EthBXCECSbZ6HJACwzQNIAmzzALYlAZK4n20MApDEZbYlAba5nyQMgMAAxtxPkm1AyDbieQkBxlwmCbANSOIFsM0LJzBXSAIA24AknodtwLYknsUACEASYJvnRxJgm8sk2eb5kQTY5jkJ8QDGAEIIgwBs8/xI4n62eX4kcZltAIMAJAEYYwyAeBbbgCQAgXkukmzz/EgCbHM/SdzPNiAJsM39JAG2eX4kcT/bPBNh8bwkSeIySbwgBvNvY5sXzLYk/h1sS+IFsM1lkniRSeJfQxIgicts80IJ8a9nm383SZL417PN/WxL4kVmWxIPYJsXhXgWSTw/trnMtiT+lSQBkni+BAYDYJ6XJJ6Hbf4z2ZbE85AEAJJ4TrZ50UjiuYhnE/8CAWCeizHPyZgrzH8USTwP21xmLMQV4oGEuEyIf5F5DgbAvCC2MS+IsRDPS7xIDOIK28Y8i3gW21whnsUYASCeRYjLhHiRSeK5iBfGvDDm2cS/im2eH9tcJonnIQmQxPMw5gWQxLMIAPHcBIAAMICxMVeYZzPGXGGeg0A8kCRjDOZfJgCMMZdJQlwhCZAEYJ7JPDfzLJIkAZL4l9jmgcSLwjbPRVwhBGCexViIB5BkmxfMNg8giX8VAQhxPyGekyTMs4kHkmSby2wjXhTGtgHANs/FYB7INg9gmyvMs9jmhbLN82PMCyaJF8A2l9nmCvNCSEI8izFXGADxbyCJ52GbBxDCYIwxgDEPIEkSV5grbNvmMtu8UJK4TBIvgCSeH9tcZpsXBmWmJJ6TbR5AEgDYBhCALJ5FALZ5oSTZ5n6SuMw2IMk295NkG5Bkm/tJ4gFsA5JsA7YBSYAknpNt7icJsM39JPH82OYySYBtLpPE/WwDkgDb3E+SbUDImAcyCEAS97PNZbYlAZIA24Ak7mebF40k2zyAJO5nm+dHEmCbB5BkG7ANSOJ5SOJ52OYBbEsCJAG2AduSeKFsSwIk2eZ+QoAx97MNSAIk8Txs80JJAmwDtgFJACAJY4xBSOJ+tgFJ3M82z48kwDaX2ZbEc5Jk2zYgyTYgiX+JbUASIAmwzfOQxAPY5nnYliTJNgBIAmzzLAJzhSQewDYPIAQgbNuWJMk2z0MIsAzIAowBSdzPNpfZBiRxhQEQtiVxmSQewDZXGABxhRCAAGwjMAAGQBhjnkUIcYVtSVwmhABsA7Yl8ZyEEIBt7mcbkCQJAIwxCAAD2EYISbLNA9gWkgQYSwJs25YkhHgW2zw/kgDMMwljDAAIYYyNuZ8kLpME2OYySYBtIcCY5yQJsI1BAELcz5j7CQHGACAJwBgDkgDbgG0uk8TzkATY5jlJ4n62eR6SbHOZJNvcT5KxEGDbtiRAEoB5bgLAGGMQAEIW9zPmWQyAeF6SANuAJNuAbUASl9mWxPNlAEmAMfeTBNjmfkIAAsBcYSwJYwwAkmxzP0mAbQyAeC6SMMYYY0mAJMC2bUASL4AkAAPYBhAPJATYRggZ25YkyTb3EzIGbEsCJHE/24BtSTyAEIAAbHOZkDH3EzIWQjyTwVjmAYQAhG1jWQghBAYwBhCAEGDbtiSek5AxDyAJsM2/niTANgAgMM9iG5DE/WwDkgBJgG3uJ8k2l0kCbGMQz2JbEmBbEiDJNmBbEiDJNoCQBdgGEM8iybYkwDb3k8T9bAOSuMw2DyBkzAMIGQNCxvxLbAMIIV4wSVxmGwAkAbZ5AEmAbR5AEmCbF0oSYBsAEAFgMA8kiQewzX8E2zwP21xmmwewzWW2JfH82AYA21wmSRL/OWzb5kUmyZjLjCXxQOKFkMR/ENv8S2xzmW0eQBIPYJv7SeL5sc2/RJJt/pVscz/bCMA25pnEs0iSxAtgmxdKEmAbsA1I4n62Ef8i27Z50UjiMklcJon7SQIkcZkk7ieJ5yGJ+9nm38o2/+HEfwjb3E8Sz2IABCDJtjFgm+dLvDAGwAAIQIj7CXE/Y8A2V4gHksTzEs9LEs/FABghLpOEeV62AQRgDNjmWQyA+ZeZ52ZeCEncz7ZtHsA2YMx/OPN8SQIk8fzY5t/ENi+IeV6SeH6MucwYg3jhhBAA5vmyzf0kAZJ4TrZ5voQkHsAYsG2bf5GEucI29zPGABgMgEA8k3ggY+5nDNi2DQCSeCEMBgEgEFdI4n7GiGcRAmwjrhAyBox5AWxL4rkIxHMTz0UIwDwH83yYZxLPJp7NYJ5NYB5IyJgXhXhuAvEvMA8kiX8N2zwPyzyLkcQV4grbPCfbAIABAEmI5yLEc5LEC2Cby2xzmTEPIGQMAMa8YJJ4ACFeKNs8J9u2eRHYts2/llE2SwAW4jnY5jlJ4jkZAxhAEmCb/0ySuJ9tnh9JgG2ekyTuZ5vnJAmwzf0kAbZ5fiTZ5jJJPA/bPIAk7meb+0myzWWSeADbXCYJsM39JAG2ucy2JEASYJvLJNnmfpJscz9JtgHbkgDbkgBJgG1eMEnczzb3k8Rzss39JNnmfpJscz9JPCfbXGYbACTxQEYSYBnAPIskwLYk21wmyTbPjyQus82/iSTuZ5v7SeIFs839JAG2eU6SbHOZJNvcTxJgGwAk2bYNSOIBbHOZJF4wSbZ5oSTZ5jJJXGabyyQBtgHbgCReAElcYYx5FiHEczGAMfeTZNs2IAkQAhC2AQyAkATYBiRxmW3ANiAkZBlAYK4wFuL5ETLmeUiyzWWSeH5s84IJIQDbXCaEAGxzmRACsM0DSLJtWxKX2RaSxHMy5n6SMIAxl0kyxjyQEGAM2BZCSLLNZZIA25IA27aFEEII27YlSeIy21wmCfNMwrZtSQgh7meMAQAhwBhACNnmMkk8gG3bkgBJgG3bkgBJtrmfJNuAbUlcJgmwzQMJIcA2z0OSbe4nhLDNcxJCXGEbEOIyYy6zLQmQZJvnRxJgG7ANSOI5CQHGPIuRZAzYFkIAkrifMSAEYABjhCzANoB4NoMQAoyNhQBJGABxhW3AGANI4gWTBGCuMAYkYYx5AYxl8SwCkARgjDGIB5LE/WxzP0nczzaXSbLN8yPEswgAAxgDxkIYACFkzAtiEIAQwjb3E0JgANuAsSQuEzIGJAEYBGCb5ySEsM39JNnmX8O2JEASYJvnRxJgm38fIWNAyJj7ScIgHsg2DyAJgwBs80AGQACAJMA295PE/WxzP0mAbZ6TJNtcJgmwzf0kAbZ5oSTZBmwDknhOkmwDkmxzP0nGmPsREleIZ7NtG7Btm38HSZJ4oWwDgCT+NSQBgCT+S0jifrZ5wWzzXMyzSOIySbZ5fmzzIpPE82NbEvezzQPY5jlJ4gWTJInnZGyb52FszL/EtiReMElcJgkAbPNA4pkMBrDNA0jiAWxL4gWzzX8ESfxr2AYA29zPtm1eKNvcT5JtAJDEc5IESOI/gW2ekyQuk8QLZhvAPDfzQMbGPBfxLJJ4FvFs4l8kiWcxAEYSlwnxr2Sb/yaSuJ9tnkU8B2HMv8i8YBbi+bEN2OZZBID4j2Geg3gm86KQxHOSZJvnRxIvnHkhjHku5nkZ8/wYAwBGEv8S24AQIMTzY8wDGcSzCHGFeG7muZlnEs8kAAzimcRzMM9kHkgIkAQAkiTxPIwxz0FgrrBtm+dljLnMmAcwxiBeRLZt85xs80IZG/M8hADEFZaFAMzzZ57JIK4Q4goBIIwlcZmQMZfZ5l/JNg8gCQBs84KI50sSLxohAPNM4gWRZMxlxpIAAAEgHsg2z0s8fwJxhRDm2YwQBnOFJABAYJ6XJNu8yCRJ4nnYlgRIkmSbB5Bkm8tsS+IyIWOeA9UYAWCei21JgG1J3M8295MEIJ6XJMA2z8k2z0kS95PEA9jmMtuSuJ9tHsA2z8VcYRuQxP1s85yEELb5l9iWxGW2uZ9tHkASDyAJMBayzQPY5oEM4oWzLck2IIkHsG1bEgDYlmRbEpfZ5vmRxHOyLYnnZJsHMs9FElcYIQRgLMQDSLLN/WxzP9s8D0m2uUwSz0U8k3kutgFJvGCSeMEkAbZ5TrYlcT/bkngA21wmicts80JJAmwDtrlMEveTBNi2zWW2JfH8SAIk8QC2JQGSbPM8JHGZJO5n27YkSba5zDZgW5JtSTwP24AkQJJtwDYgictsS8IAxhjLGEnczxgQ4n5CAMLYNiAJkATYxgAIIcwVxoAkwBiQJQljLIQw5gEkcT/bXCYJsI0AhHgetnkBbAshrrANSLINSJLEZba5TBJgW8g2zyKukATYBmxzmSTuJwlA2MYgMIBtSZIA2zwn2wAGIYlnMYCNQBKALYnLbAMYxBWSAASAASQBtrlMCGHbNvcTAiQBQra5TBIPJK6wLcm2JMC2bS6TxGWSANvcTxJgm8tsA5JsS+IFMxbifrYB25K4zLYkzIvINoCQhHkukgCEsW1AEg9gm8tsCwkZSwKEEIBtLjPmWQRgDBgLSQIwAAIAhBC2AQAjyRgByEIAGAABIJ5FiOdhm8sk2ZYESAJs8wC2JQEYYwxCSBIGwACSeC42SBL3E+IK80wCQAhhnottSYBtHsA2DyAJsM0DSOIyIQDAWAaEMADCNgLAPDcDIACEEGAMyEIY2wYwQgiMJC6TBGBsS+L5sQ0IAQjMc7EtCZDE/YS4nySuMMZC3M82IIkXgSQAA8hCPBdjwFgIkIR5LpIAjLGQMc/JNiCJ+9nmMklcYR7IGMAAQgjbiGcyz2YQDySJ52Gb50cSANjmfpJscz/bkmxzmW1JgCTbPCdJgG0MgABkIQLAYJ6LbUlcJol/Pdu2eR6SeABJvAgk8S8yz2SeyUiSBCCeLyEA8yKyzb/EtiSekxAvgG2uEM8iiX8N21xmm+dkm8sk8ULZts1ltiXxbyOeRYjnYoR4kdmWxAtirpAEAJJs85wkcT/bvGCSAEASYJt/iST+HSTxALZ5TpK4zDYPIInLbHOZbUn8l7MtifvZtg3Yts0DSOJ+tnkuApAECPG8xHMwzyIJsM2zmH+ZATAvkME8F9sA5t9IPJAkQBL/yYx5ANvczzbPl3lu5tnEc7ENYJ4/86KzzfNjjLhCCPMstgHb/FtJ4kUjxGWSbAPGPBfzQEIA4l9gXhjzLzLGSOJZDIB4IYwxiBeduJ+4n3m+DCAJ8UziWWzzALZ5TpIAQBLPIjDPJp4/8aIQwlxhzP0k8Zwk2eb5kcQD2Oa5iGcyzyauEDLGIJ5JIF4Y89zEs9jm38o2L4QAEJK4wjyTAYRsc5lt/jWMEc8kMIAxV5hnMs+fAYR4fiTxAtjmeRgDmGcxRjyTeeFs869kmwewLYkHsM2LzDbPB2otJZ6XbUk8J0mAbe4nyTaXSQJs8zxsS+JfIonnZJvLJPEAtnkgAyCEuJ9tAHGFEJcZcz8hY0DImPtJAmwDkgDbPCdJgG2eH0lcZpvLJAG2ucw2IAmwLQmQBNjmeUiyzXOSBNjmBbAtCZBkG5DEZbZ5TrYl8QCSANs8P0I8iwBs87wEBsAghLifMWAbkMQD2OYySTwnSYBt7ifJNs/JtiSekyTANveTxP1s8y+xzWWSeBFIAmzzALa5TBIgicts84JJsg3YliSJ+9nmfpK4n22ekySeh21eBJK4zLZtHkCSJNuAJNs8J0lcZpvnIYQwxjwvIcCY+0kCbHM/SYBtwDaXSeIyIcCyEJcZAxhAiGcRz2YAxDMZBGAbsC1JEoBBPBfbXCaJBzAWAmzz/EgCbAO2JXGZJC6zzWWSbAOAJNu2AUmAJJ6TbcA2IIn7CRljjIUQkmxjAEmAMc9iAMQVEkYCwDYACAHGgG1JAIBBPJtBCAHGgG1JXCbJNvezLQkQMgYwCCFjDIB4FtuSAEm2AcC2JO4nyTaXSbLN/SQBGGMERghAAMaYZzPPJJ6LkDEPIAmwzQMZBCAEGCOEMA9kzPMlhGwDGAAhCQMYCyEA29xPEmCb52UQzyIJsG1bCCEEGHOFJAMGIa4wBmQBxjyAJNvcTxKX2QYwxoAkSYBtQJJtnotBCAEIAIx5NokHMoBtSVwhMAAGAVjGXCEJsM3zIwmwzWWSbPOCSQJsYxAAQggDGPOchADEM5kHMgYwCCEAYYyxLYnnS2CelxBgzAPYlgRIwjyLMc9DFuIKY+4nZAxgEM+XJAwCMMYACFmAMVcYBCDEswjANvcTAowxxgghBOZZJAG2uZ8QwjYgBBgDtgFJPD+2JXGZJMA295PE/Wzz/EiyDUiyzfOQZJvnZFsSz0MSYJvnJAmwLSkkni9JXCaJF8w2L4AkSQAgicsk8W9imxdCPB8CYZvLjHkexlxmzAtiMC+IJF4w27wAkrifJP4ltiXxIpAkicsk2eYBbAO2Adu8CCTxvAQCMOb5Es9knoN4DgaQxGWSuEwSIIkXQBL3s83zkGSb/1aSbNvmOUkCJAGSeNHY5r+Dbdu8yGxL4l9FAEIA5kUkiQewzXMy5nkZDOb5M88mEFcYI/5jmH+Rbe5nmxfANs9DEv8SSTw/QjwXARjzXMSzmefLGLDNczHPJp6LJC6TZJv7GXOZkDEPYMwV4gpJPIBtwLZtSfzbCATimcyLQsiYfzPzojKAJABxhW0EIARgAMSz2LbNC2KeP/FM4tls/jVs8zxscz8h7mcbAGwjnoNBPJsBMC+csSSuEBhjHsi8KCTxnGxL4gURzyYwAMY2L5wBMM+feBbbmCts83yZ5yUEIF4YAQDGPF/imcSzSDLmMmPbvCDimcwzGcTzJ15EkoQAIcTzZ57JIJ6DERKyDQC2AUASIIkXQBIvAttcZlsSz8M2z0MSD2CbF4EQINu2uZ8kwDYPIIkHsM0LJQmwDUjiAWxzmSQus839JNnmfpJscz9JgG1AEpfZBoR4FnGFbZ6TEM/JmOdHCDAGJHE/2zwPSTwn2zwPSdzPNs+PJNvczzaXSeIBJAG2AUm2uZ8k27xobEviOUnifrb5l0jCXGEMYBAviBD3M+Z+kgDbPD+2JUkCbPMAkmxzmW1JgCTbtiXxAJJ4Tra5TJJtHsA2IAkAbAOAJJ6TbR5AEpdJsg3YliQJsM3zI4nnZBuwDUji+ZEE2OY5SQJsc5ltQBIvGts8gCRAEmAbsA1I4jnZliSJy2xzmSTbkrjMNg8gyRgDYADAshBGCGEZY1sSDyAJsA1gjAEhrhCAJMA2IAQYA0KIK4wBIcA2z0kSBkDY5n6SANs8P7YlSQJsA5K4n20ewLYk7mcbkMT9JNnmMkmAbZ4fSYBtQMiY5yEJwADGQtzPmMuEAIRtAHOZASQhMPczLyrbQghJ3M9YiMtsA5Js87zMFcaSuEwIABAAYJsXQBKX2eYySVxmm/tJAjDGkgDbXCZkDBgLAZhnEpJ4ANuAbSEEIInLbHOFAYQQAMIYkIV5FstCCNvczzYgCZBkmweQBNjGIACEkG3uJwkDGHOZMQaQBACSMMYAgBCyzQNIwhhzP0mAMQYAbAOSAEnczzaX2RaSZMzzIwljDNgGJCFk2UaAhHk2AcYAAiMJMMYACFmAbQAhZMzzYxuQBEiyzfOQBNgGbHM/SVwmyTZgLMRlkrifbQADCAGWucIgACGeRTyLbcC2JJ6TsRDPSZJtXjRCCMA2z48kwDZCFgIAbPMvkQRgELZ5ICEEYJ6DMAaEANvcTxJgm/sJ8SziWWwDGEASYBnAALIQxjw/knh+bPPvIAkAbPOvJwmwzf0kAcZCtoHgRWCbfw3btrnMNs+PbZ6HbR7AtiSuEM/LNgAY8yzGmBeFeCAhAIN5JoH4F9nmAWzzL5HE85BkmweQBEjiOdnmfrYlcT/bvMgkcZkk/s3MczDPTUji+RHihZLEZZJ4AWxL4jJJXGYbkMS/RBKX2ZbEA0jiRSOJyyRJ4n62JfGcJPEvsW0bsA1I4t9EEpdJ4l9DEveTxGW2bfP8SJLEc7LNA0jihTDPRQhAXCHEC2Cb+wnxLOI5CAQCgUD86wjEi842/xqSeE6SeADbvMhs8zwk8UDmXyYABIC4TDyTeTbxL5HEZZJ4wWxzmW1eKElcIf4TCcRzMeYyIZ6XeV6SeE62eRYBWOZ5iWcSQjwPSdzPNi+IwACY5yAwgDH3E0JI4gqBeTYhZJsHEpjnzzyLJF4w2wACEOJ5CcwzmWczxjyTeTbxgphnEwDiCmNJPD+SuEySbf41bHOFkQQIAYAkHkgACMQzmecmnkk8F2NJPC9zhRAGELLNi8yYF4UAEP8W4vkwz5/5VxOI50Mgng/xggjxH0ESl9kGANu2bfMvkSSJB5DECyDEM1ExD2QbkATY5jnZBiTxALa5zDYgiedhG5DE85DE/WwDtgFJgG0hwLYxIIkXwBgAhIwl8UDGWMiYy4R4AGMhxLMIAba5nyTANgDYlgTYBiTxALYlAZJ4ANuSJNnmfpJ4fiTxALYlAbZ5AElcZhuwDUjiOUmyzWWSbHM/SVxmWxIvOoG5QgjxHIRtY0CIK4xlrhBCAAbxQJJ4oWxL4jJJtnl+JPH82OZ+tiXxPCTZBiRJ4vmRZFuSbZ6HbUASYBshJMkYA9iWxGW2eU6SuJ8kLrMN2JZkWxKX2QYkAba5TBJgWxIA2AYk8QCSeADbkrifJMA2l9nmASQBtgFJvGC2uZ9tQBJgm8uMJQFCgDFgGcAAQrYBhBCAAWwLIQAhQAhAGNsGhBAYQAhhGXOFEAKDeBbbgCQusy0JgXletiVJss3zI8k2z48k21wmybYkQBL3s82/RBJgG7AtZAwgrpDE/YxlWUY8B2NbkjEGEOIKYQzCIBnAADaAMMYAkgBAiPtJAjAIAGPM/Yy5zLYkhJBtQBKAMbYsCxBCABhjAMBIAiTxnGxzmW2ek21JvABCPJBBCCEA2wDCWAgwFgKMAUmAbS4T4jlJso0AjBGALMAY8yySANuSuJ9tSTwPSYBt7mcsBNiWxHMxCEDIWBZCEs/LGHM/AeKZDIB4LrYlCRlL4oHMs0gCAGMhIWPbkgBJmGcyAEKIZxHPJAG2wRhAElcI2zyQsSwJg3hetiUBkmxLAmzz/EjiASTZlsQDGGMkAbYB2zwnSRgA8SzGgBCAMQYwzyIJEOIySYBtwDb3M5bE82UABGBbEs/JNiDEFeKBbAOSMAjANpdJ4nnY5jnZRkgCbPNABgHY5n5CvADGkgAMYAxgAEkYAPEcBIB5LpIwAOJZbGMASdzPNi+UbUAS97PNZZJsS+I5SQJs85wk2QYkcT/b/MsIQBL/Vra5zDYPIIn72eYy25L4FwlJ3M/YmH+JMQ8gxAMZQIgHsC2JBzDmWcS/SBLPQxKXSeL5kcRzksRlknh+JHGZJNtcZpsXTBIgicts8wBCvACS+I9jm+clns28KGzzPCTxPGxzP9u8CGxL4gWQxItGkm1eOHOFEJdJAiTxAJJ4HrZt2+Y52eZ+knhOtnlOkrhMEv8mkrjMNpfZBmzb5kVgG5DEcxLifsY8P0KAECAJAQDGmOcgAMwziedmnk08L0k8L/NcJPE8JPFCSeI/mTGA+DewzQtkBBgMYAAEIARI4n7GvCDiednmfrZ5FvMsxoAxV4h/J0n8i8wziWexzf2EeCDz/Il/gcG8EJJ4Edg25gqDkcQLIR7ImBedwTyTeD4EBhDiRWPMZUJcYZ5NWBbieYlnMy8SY4y4QpJt7ieJF5ltLpPEC2XbNi+AbZ6HEAIDGPM8bPMAtm1LAiRJss0DiedDPIttXjjzfJjnZZsXTBLPYp4vy/xrCPGCmGcyz0uIBxKYZzJX2ObfRJIk/t0k2QYA2wBgmxfEPADKTECSbe4niedkWxIPYJvnYVsSl0niMts8gCQAYwwIAcY8X+bZBCAJMAaEuJ9t7icJsA0IITDPYsz9hABjnkVgnkWSbZ6TJO5nmxdAEmCb5yEJsM3zkGSb+0kCbPOCSbINSLLN/STZ5jlJAmwDCCHAGBACbHM/STwP2zyAJMAYAyCEuJ9twLaQJGNAyBjAICRxP9s8gCTb3E8SL5htnh9JgG3uJwmwDdgGJHE/24Aknock29xPEg9g2zYgieckyTYPIInLbPM8JHE/24BtSVxmmweQxANIsm0bkARI4n62uZ8k21wmCbANSOI52ZZkmxeNJC6zzf0k2eb5sS1JEvczxlwhZMxlQsZcJgmwzRUGAUgyxiAwzyKJ52Sb+0kCjDGSuMy2bUlcJgmwzQslCbDNA0gCANtcJgmwLck2YFuSJMA295PEc7ItyTYPIInLbHOZbUCSJMA2IIkrzDMJ2wAgZMxzkLifsG1bEgIDGAsBkmwDgCTbAAZAPIsQgABs8wIIGduWBAjZBowRQgBCCLBtWxLPSRL3s839bAOSJAG2eU6SbHM/SbYl8Zxs25YESOJ+xoAsrhC2eSAhxHOybVsSQpZtAGGMkcRlkrjMNiCJB7DNswgMgJEEIADANs9JEoDBNiCeRQgwBmwDkgAhMM8mrhAPZBvAAAghxLMZwBhACNnmgQwCEOIKYZvLhBCAbe4nhLDN/YQABMaYy4SMuZ8QArAN2JYESOI52eZ+kmzzIpBkm+dhWxLPQxL3M8Y8NwMgANuSAEmAbduSAEm2ucIYS+J5SMI8k7DNA0iyDWAQQtzPMgYAJAG2AUmAbe4nyTYvlCTANiCJ52SMeSBJgG0usy0JkIR5JgHYBoQAYy4TMuZ+kgDMs1jGPBchY+4nyTYgyTb3k8Rzss1zsg1I4gWTBNjmfpIA27wAtiUBkrjCWAZkIQID2JbECyaJF4Ek21xmm+fHNoBAIJ6bAYR4AEmIZzIYDAbzIjGIZxKIZzE25oHMA9mWxL+Jbdv8K9mWBACS+JdIsg0AtiVxmSSeH9vGXGH+tWzzfJlnMs9LCGEMAMZCGMQzmefLtiT+89nmMtuAJO5n2zaX2eZfIonnJIn/DpJ4TrZ5ANu8aCTx72ZbEs/DtiT+lYQA2zyLwDyTATCSeH6MAcRzM8/LNv8atnkR2LYN2OY52eZfzzZXCAQgifvZ5kVgzItKIECIZxPPRQCY52YwL4gQz8mY+wlxmRD/JpK4n22eh22ei3hBbAO2eUHMC2Gb5yRkDCAAIYRt/iW2eQAhrhD/MnOZEYjnYsz9JPFMBvFM4gWzbcxlxrwgxjb3EwKMAQTi+RAvkHgOAvMvsg3Y5kUgyTYvAkm2eX4k8S8yDyQEIBBCvFC2eRYB2OZ52EY8m3hethHPQWBeFJJs8+9krrDNC2deIPFs4vkQzyQwz8sYwFxhGwBs86KRxP0kAZIk8S+xDdi2LYkXQBLPRTwAai0lAEnczzYgifvZ5n6SANvcTxJgm8tsSwIkcT/bPCdJAAawzRVCCDAGMABCCPHczDMJ2zyQkAUY8wII2QYQz2YQDyQJsM3zIwmwDdjmfpJ4ANtcJgmQBNgGANtcJgmQZJv7SbLNCyDJNveTxGW2eQAhYwzimQxCEoB5JmEbsC2JB5AE2OYy25IASYBtwLYkSbYBSbZ5FoG5Qsg2ApCEQQC2ucy2JEAS97PNc5JkGwAk8YLZBmxLkgTY5gFsA4AkQJJt7mebyyQBkrifbZ6TJNu2JfE8bEviOdkGJPEAkgDbPCfbkngRSLLN85AE2OZ+kngA21wmifvZ5n6SANu8CGwDkgBJ3M82YFsS95PEA9jGICQZY56LbUlCXGbMcxJCAMaYK4QAY+4nhMAgrrDNZbYBSZJ4ANuAbUmAJNvcTxJgGwAk2eZ+kmwDtiVJss1zsi0JkGQbACTxPGxzmSTANi+YJGMMIGTMsxiEEBgBAsA8k8A2V0gAGATINg8gCQBsA7YBSYAQxjIgifvZ5oEMYCyJy4wxkgAhwBghZJsHsC0JkMTzY5sHsC2JF0wSYJvnyyAAQBJgm/sJAQjANvcTAhCAbV4AIWPAtiQeQJJtSYBtHkASYJvnR8gYsC0EIISMATBIkm0A80zCGCNJEgYwBhBCtrmfEFcI24BtQBIgCbDNZZJscz9JtgEhY+4nhDAGZAHGAELINoBBPIskAPMsxkIIzDMJDGDMv4ltSdzPNpdJ4jJJgG3uJ8m2JF4QAyAAwDb3kwTY5gWQZJsXhcBgEIAk21wmhHgg29xPkm1AyJj7SeJ+trlMEpfZBmxL4gFsS+IBJAG2eQBJtgHbgCRACGGb5yQEGHM/IQQA2Ob5kWSbyyQBtnku5tnEc5HE/WzzAkiyzf0kAba5nyTuZ5vnRxJgG7ANSAIkcT/b3E8SgEGEBIB4XrZ5EUiybZv7SeIFsM3zJRCIZxJXGHOZMS+EQTwHg3jhjBEIjJAQBvEcxAPZ5vmRBEiSJEkSz0mSJEmAJJ6TJEASIMk2D2BbEi+AbUk8J9s8gCSei0E8m0AAGADzAokrJPEvsc0DCHE/YwTmBZFkm/80tnlOkgBJPD+SAEn8SyTZ5l9JEv8SSZJ4HpIkcT9JvGgk8e9gmxeNJMA2YJvnJMm2bf5F5rnY5gqBeL6MucI8m0A8BwEgnpckXjBJPD+2ecFs8y+RxGW2+Y9jG/P8CRAYwNxPIJ4PYQDMv0gS/xEkcT9jAIN5IWzzgkni+ZHEi8ggrpDE8yWeSfzrCARgWxL/GrZ5AYy5TBKAEDLmCgNgIwAEgACEJJ5JPJt5gQwCkMQLIa6QZJv7CfFA5jkYAAMgAIQQD2QeSIj/NJIASYAkLpPE87DNC2WMeL5s2wYA2zwP27xohADEFbZ5Xua5SLLNZcb8S4x5AElcJkkIkMSLwDYPZJ7JPBdJiOfDPJBtHkCSbV4ASVxmzGXGxlxmm38N25K4TBL/JrZtA7YlSeJFhZxG2OYBJAG2AUmAbZ5FYABJgG1eAEmAbe5nG5AESOJ+tnkASba5wiAASba5QmAeSJIx5oEk2eYyYyGuMAhAiMtsA5K4QlxhG5BkG7AtiQeQZBuQZJv7SeJ+tnl+JNnmASQBtgHAWAiQBNjmAWxL4gWzLYkHEOIBjHleBvG8JGGMeU6SANu8CCRxmW3uJwmDeBbb3E+SbUCSbS6zLYnnJAmwDUjiOdnmOdmWJAmwzf0k8Zxscz9JgG0uk2QbsC1JEmCbF8y2JB5Akm3uZxuQBACSAMA2DyAJAGzzL7EtCZBkmweQxP1s85wk8Txs8zxsA5IASbYBQJJtwLYkQBL3s81zkgQYAxjAWIjLbHOZJJ6TJGOMbUmSbNuWJAmwDdiWJAkwxlwhCbDN/SQBtnnBJAG2uUwSYJvLJHGZbe5nG5AkyTaXSeIFs80LJonLbHOFwFwhybZtSUII21xhEBgEIIkrbMA8B0k8gAEbwEbifrYBSTybJGwDAEIWYABLgLjMNoABjAGEECDJtm1JkjCAbcSz2JbEc5IE2Ob5kQTYti0JkGSbyyTxnGzzQOYKSQhjDICQBQAIY8wVQtzPGJAE2DYW4jlJAmxzmSTb3E8SYJvLbEsSQgC2bQOSANtcJoQQMgaEAIRt21wmCZAE2OYyCRswCJAAbJ4vIe5nGfNAkmzznCRxmW0AAyAkYZ5NALYBDOJZJHGZbZ6LARCAJMAYEOJ+trmfJNsAxlgSYFsSL5gkwDb3k2Sb52RbEiCJ+9nmfpIA29xPkm2eh21AkpAx95PEc7JtWxIgyTYgyTYPYCwLkGQMSLINAJIA24CxLEASgABs8wC2JfEAkgCMMZdJ4jLb3E8SYBuwDUjieRmEkGUMIAmwzQMZAAFIAmwDthFCgCTbPCchYy4TMgZsS+J+tgFJXCaJ+9kGbEvi+ZEE2AYk2eZfIon72eZ5SLLN8yMJsA0EYMyLxhjAXGHbNi8y25IkAYjnZRsAbEviCgEI2eZZzDOZK4wxz8W2JC4TAoQAhDGAAIwRgDGAuMI2ANjmMkk8J9tcZpsXyjb/SkI8gCQeQJJtXgDbvFDGPC/z/AnMv5YkLrPNZba5QrwQkrifbS6zLYnLJPEis83zsM0DSOIFk8QLYJvLJHE/Sfw7SAJs8wC2eX5s8zxs2wYkcZkk/oPY5gEkcT9JvGCSeE62eUEMBrDNi8Y2/1rmhbBtm3+Jbe5nm3+JJP6TCfEs5pkMgEE8k8AgHsi8aGyeH0k8N4NBPCeBEM9LAEKAECCJ5yIAxBWSeH4k8ULZ5jnZ5nmZF84YwDx/5gUSzyJkm+dk2zYvAttcZpkHkMRzEULGXGbM/SReKAFGtgEbQBIvnMA8kCTb/IvEFbYRz4dBPJBtXhDxopNkm8uMJfGcJPGCSeIySbb5j2CbB5AkCZCEAIwl8aKxDQC2EYAxVxgEwpjnYds2VxgEAkC8ILZ5ANuYB7LN/Yx5LkaSJF4wY8wVxrZ5LuL5EhICJNnmeVjmfsYARhLPSRIvmCReANu2ucy2JP7dbPOcbPPcqAAGsA1IAmwDknhOQsZcJsRzksQLJYn7yTLmediWxGWSMFcY83yJZzIviCQeyABCXCEwAAIwBoR4wSRxP9u8YLZ5wWxzP0ncTxLPyTYPIMk2l9nmMkncz7Yknpd4NnOFsRBXiCskcYUBbBsLARhjQBL3E0LY5n6SuJ8QBvEssrjM2DYgZJsHkATY5gEkcZlt7icJsA1I4jLbACAJkATYBmwDkgDANpdJAmwDkrifbZ4f25J4ANvcTxLPw7YkQBKX2bbNc5LECyaJ52FbEpdJ4n6SeADbXGZbEmAbACTxAJIAwDb3k8RltiXxAJIASbZtA5Js2wYk8QC2eQBJXGbbNs9JiGcRGEmAJC6zbVsSBpAE2AYk8ZwkAbYBIQRg2zYvmCTbtiVJsm1bkm3ANpdJss39bPOcJNnmfpJ4ANuAJMA295PEZbZtA5J4fmxLwkjiWYwkzBVCCMC2ZSFAko1kgQXmCtuAJNs8D9sAtiRAkm2BbS6TBNhItgFkAYgrDALbgCQAgzAWAiQBtgFJAMYYQAhxP0lcJgmwbRuQBNiWxP1sSwJsA5IASba5n20uk2SbZxFCGMsYBGCbZzGIf5EQxpjnIck295NkG7AtifvZ5n6SuMIgrpDE/SRxP2MAg0A8gMCSuMyADQiQuEw8m81zkQDxQOZZhADMs0iyzWW2uZ8k24hnMeYK80wCkGTbtiTuJwmwzRUCY1mI+wkBtnketrmfJECSbUk8J0mAbS6zzYtAEg9gmxfAtiSekyTb3E+Iy2zzQknifsZCPA9JAAJzhW3AtiQeQBKXWRbiAWwDgCTANpdJ4vkyxoAQz0VcIYkHsA0gnpu5wjYgiSvEs5lnEoAkXhDzTAZAIK6QBNiWxGWSANvcTxIA2AYASYBtXgBJtnl+JAG2eR6SbPOcbPMCETyLJIl/iZCQEP8+xjwn25Ik8UACMOZFJkkSz8tcIYnLJAEA4jmYfy3bvFC2JfECSOJfwzb/HgYjxGVCvCAGMAYAYwABSOK5GCGuEFcIAQjEfxTbtvn3kcRltvmPYJv/TJJ4TrZ5AEn8a0jiOdmWxAtlWxIPYFsS/9EkcZkkDIAAMJJ4ASTxALZ54cRzkcR/NEn8h5LECyeeD/F8GQO2ARAI8yySAPP8SQIkAZK4nwCQxGWSbP7NbPN8mecliReBJF4oSbwgBmOMQTwvIcy/lm1JPA9JtnmRSeJFYZ7JPJAkQJIkbJ7FBgPYSDybeQ7igcy/jW3uJ8k2z5e4QhIvmBAgxL+PbUCSbQCwbZsXTBL/oSTZ5gFs2+ZFJgnAPJMBhHgAIQCwzb/I2OYBJEmSxGWSeCDxQELGAIB5/sQD2eZ52MYAQoAkIS6TBAAIzHMQz0USl9nmWQSAuUISLzLbvAgk8YJJ4gWzLYnnJEkSzx+V+4nnwzaXSQJscz9JXGEQz2IbkMQVRhL3sw1gEFcYYwBJXCYJsM1lkjDPIsSzCMA29xOyDQgBxrZ5FvNAtgFAEsI2LxrbkgDbXCaJ+0nieUjiMkmAbe4nyTYvgCQewLYk7ieJy2zzAJIASQBgm8tsI4SMMQhAEs+XeTZjWYjLJAFCgLGQMYCRBNg25gGEEBjbkowBDIAAbAO2AUncTxLPj21JkgDbgCTANvezLYnnIQmQBNgGbEuyDUji+bEtiQeQxAPYlsTzsM0DSAIA27wAkrifbe4nCbAtSRIASLLNA0gCbNvmfpJ4AWxLAmxLAgDbPIBtSYBtALAtCbAtictsA7Yl2QZsS+Iy29zPtiRJ3M82YFsSIMk2YCwky1gSIIn72eYBJAG2eR6SuMw2D2AbsC3JtiSeh21AEmAbkGQbkCSJ52EbkARI4jLbgCTuZ5v7SeJ+kmzblsRltgFJgCTuZ5v7SeJ+trmfJC6zjQGEAMwzCQkAm+ckwEYyYAOSAEm2JQGAbUCAZBAAknggY4zAXCEEIDAAYMxlkgDbgG1JkjC2AWNJtgFJkgDbtgFJgG1JtgFJACCJy2xzP0mAbUASz8k2lxkLAbYBYyFJPIBt2wjMFZK4nzEgiwewDUgCJAGAJJ4f21wmiftJAmwDtgGEEMI2l0niMttcJokXwDbPYhuQMAIkAMk2YAOWBEgCbHOFADAISbZtAwghAAFIAmwDtiVxmST+JbJ4wYR4AWwDkngetiVxmSTbgG1AEmCbF8o2IMk295PE87DNc5LEA0gCAElcZpvLbHOZJF4A27wAkngekngBJHGZJC6zzQPYBiQBtnlOkngAYx7IPIsQVxgE5kVhG0BcIWSMeBYh7mcsBCAwAEISl9nmMkk8kLhCkm0A8bwkcT/b/EskcZltXjDbgCReBJIA24AknpMQIgwSz0uSbf79xAsiBAhJQrwgtiUBgCTEs9i2zf2EjLnM2JgXkbEN2OYFkMQD2LbNv5Ik27a5nyTbvMgkAQjEA0nCAEI8F/MczHOxzfMyz0Fgni8hHsDYmAcygDGXCWEQzySexViSJP4j2OYFk8Rzss0LJYnnIYn7SeK/hCQewDZg2zaX2eZfQxL3s83zI4n72QYkcT/bgG3ANvezzfNjm3+JbcA2ACCeL0m8AJJs8y+RxGW2Ads8J9s8P5J4wSTxX8s2DyReFEI8i83zJQECQBKABIjnZl4oAWBeRLZ5TsaAMWDMv8Q2z49tnpNt/iVCXCbE/Yx5XuZfRRIvAkm8ALZ5IIPAPAeDeSbxopIADAjEc5JA2AZs2+ZZzPMhnkkAmAeSxAslCXGFEPezzb/ENiBkm2cRzySukMRlkmzzrydJkm0ewDb/Ekm8ULa5nyRJkvhXsi2J58e2bR5AEs+PbS6zzQtgm+chyTYPYJvLjAFjYwCBeSbzXGzzAhgbA7a5wjyQEFeYZzIAYJsXSsg2V5j/KLZ5EdjmASRxP9u8CIwBoIJBEra5nyTbPIBtSbwAxpgrJAG2eR5CAIAAACFjQAiQxAtlG0AIAZhnEQIwiOdiWxL3s839JAHGACCJ+9nmOUmyzfMjifvZ5n6SeMEk8Txsc5kk7ieJy2wDmGeRZBtAYCwLIQDb3M82IAkwBgDbkgDbPIvAPIsQAiPJWAgQAoyFjDHPJJ7JGHOFEAIwz2YAy0KSbNsGEIAkwDb3k8RzkgTYBiTxnGwDknhOkmwDtgFJXCaJfxPbXCYJkMQD2OZ+tiVxP9uAbUmAJO5n2zYgifvZlsT9bPOcJPEAtrnMNiCJ52QbkCQJsA3YlsQD2JYkicts2wYk8ZxsA7YlcT9JPD+SuJ9tHkASYJvLJAGAbUlcZpvnJIkHkATYlsQLZpsXzDbPSZJtAJBkm/tJ4jnZ5nlI4n62JfH82OYySdxPEvezDUgCJNnmMtuSeADbkrjMNs9mQBIgBNgGsCUh2eYySQCSbS4TYJv72UgGAWCQxDMZAEkCbCOMhTAAAhBC2OYKg7AN2OZ+tgGEEGBsW5JtSQBgW5JtQJJt25IkAYBtLrMtCZDEA9iWBEiyDdiWBEjCAAiMEIB5NgEgbAvxAMZcYRDPZiRxP9uSuJ9tAJDEc7INSOIBbEvigQTmCmMMQpKxbUASz2YbSdxPkm0kAAxCMgCSsA1CYF4QAdgGEADi2QQGEEIAtgFJ3M9YCABscz9jIQCQxAPY5n5CGEASYMz9bAOSAAwCwBgDmCtsA5J4fiTxALZ5oWzzAtiWxGW2JfECSLLN/STxgtnmfpIA29xPkm1eKEk8P7Yl2QYkcZltLpPE/STxnIyFAMQVQjyLeW7GGBACJPEAkmzzALZ5TsaYF8hIAjAIQJJtHkASgHlBbAOAJJ6TJP4dbEvieUjiMtu8CISMMcHzY5vnYZsXxLwojIW4TIhnMYAQL4BtHsj8q0gCJEkCJEkCJPEC2OYy2zwP2/ynkQRIAiTxAMY8D9uSuEIAxjwnY0AI82xCEs/LPJMBjIUAQIgHEAIwDyQEIJ5FiOfLXGGb/wSS+JfYlsSLxjb/DpIAwLZtwDb3s81ltvnXkMQLJYkHkMRlkrifbcC2JO4niRdAEv8mknhOtrmfJF4o2/znsA1I4l/PNmCb/26SeMFs84IZA9iA+ZeZ+9lIgHg221xmHshcJgQgrjDm30QIsA3Y5vmRxAtmG7Btm+dhm+dkm2cRVwjxXIwkAJDEcxH/BrZ5fmzzAJIAAIEBMFfY5oHM8zJI4gUSD2RzhY0EAJK4nyTEFUK8CGzzPIS4zJgXTvwb2AYQVxhzhZAESAJs8y+xDQC2JfHvIIl/iW1eBJK4n22ek20eQBIvMkk8J9u8aIR4kQkZc5kx/zbm+TCY5yBsA7Z5TrZtcz9JPIBt/pUk8YJJksRlkviPhDJTEmCbfz1JgG3uJwmwDRgLAcayAMSzGYQQlxlzmSTANs/FGEviCoF5FiGeRTyQbe4nyTbPjyTuZ5vnJAmwzWW2JQGSANuAJMA295Nkm8sk8QC2uUwS97PN/STZ5jIhY64wAOJZJAG2uZ8kwDZgGyEEYBAARhJgDNgGJPEAxkKAJJ7FAMZCCMA2DyDJNmAbIQRIwhgDgJAxL5Qk29xPEvezLck2DyAJsM0DSLLNZZJs8yKQxHOyzQNIss1ltiUBkmzzAkgCbEuyDQC2uUwSIAmwDdiWJAmwzf0k2eYBJNkGJAGAbZ4fSbYBSYBtnpNtSYAkwDb3kwTY5n6SbHOZJMA2DyCJB7DNA0jiMtvcTxIvgG3bkgBJtrnMtiRAEmBbEs/JNs+PbUASDyDJNs+PJB7ANs9JEmCb5yQJsM1zksRzss1zksRltnkAIYQx5vmSZIx5JoG5QhIABgFgmytsgyRAErYBJAFgG8AWGJBsA5IkcZlt25IkQBhjnkkSz2bAIIQx5pnMFcaAEOIKIcBYEmCbB5Bkm/tJAmxzP0mAbduAJB5AEvezzf1sc5kQVwhJGMA295OEwDyTMMYAgBBXCNvcTxJgm/tJ4n62uZ8k7mfbtiRAEvczxgAIIcA2/0oCwABIss39BAYBErZBBnGFecEMAkAI2QYASbYxiCtsS+IBJGGMMcYAIAmQxPNjG4NAyOJ+xrYlSbLN/SRxP9vGQoAkwDZgG5DEc5IE2OZ+tiUBgCSek23ANiBJkm3uJ8k2z0mSbR5Akm3uJwkAbAOSbAOSANv8+0jifrYBSYBtwLYknock7mcbkATY5jJJPC8DYIwlITCAbcQVQgDiWWzzPGxL4jIhY56TbQAhxHOyzWWSeE6SuJ9tnh9JPCfb3E8SANjmeUjiMtvcTxLPw7YkLrPN/SQBtrnMtiRAEsYYCJ5N/KcRMgYwz2QQz2LMCyKeRRLPYp7JPAfxQLZ5ANuSeADbPA9JvFCSeBHY5vmxzXOybZv7SbLN/Yy5zDYCIcSLTIjLJHGFuEIIEBLiMklcJsQLIMT9JPEAtrlMkhAgiedkLMQVAvG8bEviBbDNc7LNc5Jkm38f2zwP25K4TJJtXihJgG3AtiQAkARI4kVmmweQxP1sA7Z5AWwDgG2eH0lcZts2YJv72QZs2+b5kcQD2OYFs82LzDaX2QZsS+IySTyAJF5kknihhHgA2/zPIV4420K8CGyeRRL3s83zJQFIgCReIGGek3lu4grzbOJZhHhOxoBtDOJFJ4kHkMSLRhIgxHMRAOKFMc+H+U9knoN5NvEik3mRCBD/Oub5EJgXwhjzryMAIcTzss1zss39hGwDtm1LAiQBtnmhbEvifrZt8zwkcZltSVwmyTYvAtuSeB6SJPEikwQAtnkBJPFCSeL5sW2bF8w2L4iQxAOJ5yAAYwCQxPOQZJvLjHkuRkhIiOchSZIknpMk/oPY5gWzzQPY5nlI4kUgiSvM/aggsA0gCQBscz9JPCfb3M+2JF4AIe4niQcwFgIQAObZDCCJ5yIAY56XQRgDGCGuEFfYBiQBgCTbgG3uZ1uSbR5AEpfZlsS/hiTb3M82IInnYZsXgW2eRQgBgLGQEPezzf0kAUJcJoTAGAsBQsY8gBAPYJsrhBBgDGAAQJJtHsggrrANSMI8mwAwGCEAAdjmASRxmW1AEvezLUmSbduSbPOC2eZ+kgDbAGCbyyRxmW0ukwRIAmzzAJJsA5IA21xmGwAkAZIA24BtSYAk24AkQBJgm/tJ4nlIss39JAG2uZ9t7ifJNpdJAmzzAJIA21wmyTYPYJv72QZsA5IAQBKX2eYySYBt7meb52RbEmAbkGSby2wDkngRSAJs85xsA4AkwDb3k2SbyyTZlsRlkrjMNs8ihADbGIRtQBKAwACSANu2AUm2uUwS95Nk2zYgiRfMtiQus839bHOZJK4wgG1AEiDJtm1JGEk8i7jCtiTANg8gyTYYBOZZbCQbSQA2kgDJtiTAtiQukwTYBjAA4oFsc4UExgC2JQkZI4wBDCCEAGxzP2MhY+5nG5DE/WxLAmzbBiQBkngBbPMAkmxLAoSMucw2zyKuMMYgnsk8m8DYRgjxryfJNpdJAiTxQhgAkMSzCMA2lwkZA8ZCgBDPyTZgW4AECAzYAJIAsA3GIHE/2zyQkQTY5n62AWNACJAE2AYASbYBBCAE2OYBbPNA4llsIxCyuEwSl0niASTZ5gFsSwIASbYl8ULZBgBJtnkA21wmCbAtictsS+J+tiXxALa5zLYkLrPNc7INSAIkAbYBSVxmG5AE2AZsA4Ak24AkHkCSbR5AEs+PJO5nm/vZBiQBtnkuxpjLJAHGPIvAPIsQAjDGCAkZc5kQVwiMMSCJ+0kCMM8kjDEvOkm2uUySbUn8Z7INSAIA2zw/kngA25Ik2QYkcZltQAgIgc0VtvnXs83zEOKFksTzMs+feD7EMwlJxjwv8yySeB6SJNkGANs8J9tcJol/JduSeKEk2eZ52JbE/SQBkiTxPIQAxAsknpcQ4vkwL5B5JvNAtoV4IGGbB7AtiSuEMebfzzYvgG1JPA9Jtm1zP0lcZhuwzfMjifvZts3zIwmQxGW2bQO2JXE/Sfwr2ZbE/Wzb5gEk8W8iictsA5K4n20eQBIvmG1eAElcJokHsM0LZpsHkMR/DttcIf61bPOvIYn/aJIASfxbSeIFEv8y8YKIF8wYwDb3EwKEhLjMGLDNAwjZ5oWSxHOyzX8OIa4wAOaBhIy5zJh/PdvczzbPl3kuxjwv8VyEeMHMZZJ4HjYPJPGCSeIFMZJ4AEn8OxkMgMG8ELZ5Trb517PNA0jiMkm2eaFscz9JPD+2JfFvZZvLbNvmeUiSxANIss1/GknGvBDmmQxgmSvM8zLmCgMI8XyJ50sSl0niBbDNA0jiP4IkSTw/kiQBkmzzAtiWxAPYts1ltnluVJ6TbUk8D9uSbAOSANvcTxL3s81lkmxzPyFj/kXGMoB5LkI8JyEAMOY52UYIcZkkrhBXSAJsc5ltSdzPNiAJsA1I4nlI4jJJXGabB7AtyTb3sw1I4jLbvGCSANu2Jdnmfra5nyTbAEKWMQZAAJJ4XsIYAwghMM/NIF4gYwxIAhBCAGCMkcTzkARgjLnCWAYwCEncz7YkLpPEc5LE/STxnGxLsi3JNmBbEs9Dkm1JPD+2eU6SANuAbUmSuJ9tQBIgCbAN2OYFsy2Jy2xLksRzsi0JkAQAtgHbkiTZtg1IAmzznCRxP9uSAEmAbS6TBNgGJHE/24AkQBJgWxLPw7YkLrPN/WxL4n62eQDbgCTANveTxP0kAZJs25ZkG7AtyTb/EtuAJMC2JNs8JyEAYds2ICRkjDGWhEFgANuSjAHbkmxzP9s8J0mAJMA2IInnYRuQxANI4vmRxP1sA5IAhG2ehyTAFpjLJAG2AUkASOJ+BknY5oFsns0gLjPGSAIQV0gCbHOZbUmYKyQBGGNJkmxjjCUBtgEMQhJXGACDeBbb3E8S97MtCZAE2LbNZZK4wjyLJJ6TZSHbAGBbEiCJK4xtSVxmW5IkwDZgLARI4lnMC2dbEs9JEs9iEAACwDyLkG1eAGOuEEIYwBhJCLANYAsBBkkANjYSl9kGjASAJMC2JMA2IARIss0DGGMkcZkkwDaXSQJsSwKELGMk8TxsA5IwAMJYiCsEIMT9bAOSJNnmASTxPCRxP9s8D0nczzYgCbAN2JYE2AYkAbZ5ANs8gCTANmCbyyTZBmxL4gEkAba5nyQewLYk7mdbEiDJNveTxHOyLYkXmSTANi+YJJ6TbZ4f24AQBkAI8VwM4gpjLhNCPIttHkASBvHvYZv7SQJs85wk8ULZBiRxmW1AEg9gm8tsA5J4HpJs84JJAjCI4H62ucw2z0MS/0q2JQGAkDH/IoF4URkEYMwDCBkjMMZCPJB5QWxzP0mSbPNC2eYBbPM8bEvi+bHNc5LEc7LNZbYl8cIZxDOJ5yBeEGMA8UzimcRzkQQY84IYAPPCmOcgMM9kHkgS/ya2uZ9tSTyAbUm8YJL4t5IE2OZfyTYvgCT+o0nifrZ50djmfpJ4AWwDtnlOtnnBJPGvYZt/H9s8X+I5CGPAmGcxQphnMgDiv5dtSbxoJB7INs+f+deTxHOyzf1s83wJwJjLjCXxLOb5E88mJPFvY/5FtrmfJF40tgHb/CcRz2aeg3iRGGMAA+I5SUJcYZsHkLANgLFtA7ZtS+J+QjyLeA5GEpcJYa6wLYnLJHGZMeZZJPEAknhOQlwmif8cknjBbNvmRSDJNpfZ5oWSBEji30oSIIkXjST+M9nmgcwzCUASAvNM5tnEM4lnEs9izAtmWxIASLLNZbaFAECIK8wDSeI/mm1eANsAYFuSJEAS/yrmAajcTxIGAUjifrYl8TyEuMzYNiCJ52KezQDGgCRAEi+Ybe4nBCCei21JmGcTAAZAXCFkzAPYBiQBgCReANuSuJ8kwDZgW5JtSbZ5fmxLss2/RBKXSeIFsC3JNmAbkATYBmxLsg0gAEmAbZ6TLGMeSGCusC0JsA0AQgBgm8uMeU62EUIA4pnM8zIGhABjAGFbEmAbkATY5vmRxPNjG7AtCbAtCbANSOJ+tiVxP0ncz7ZtSbb5l0jifra5nyTAtiQuk8T9bPMAtiVxP0nczzb3kwTYBiRxP0mAbf41bHOZJC6zLYnLbEuSBAC2uUwSYJvnJInLbHOZbZ4f29xPEmAbkARIsg3YlgTYBiRxP9uAbUncz7Yk24AkALAtifvZlsTzIwmwDQgBxtzPNoDASAIQGNuAJECSbVnG3E8IcYVtQJIkwDYgieckybYk7ieJB7DNA0jiMtvcTxKX2eb5sQ0IAYAkHkASALa5QpINGABswJIADIB4ICEukwTYti3JNlcIIS6TxP1sIwDbgCRAkm0ukwRgLANCXGbMFcaY+9nmBZNkm+dLGAvxQAawLQmQxPOQBMgylgTYBgBJ3M82l0kCjIUAxPOSxGWSuJ9tnocQgEEgHshYiOfLIDAAQoABEJIADGAbQNgGJAFYYC6TxHMSMpaEucK2EGAM2BYCJGEwCAwgCZBkG7AtZAxIQgjZ5jJJtgFJXCaJ+9m2DUiyzf0k8fxI4jnZ5n6SbEsCbNvmASQBtm1L4n62AduAJO4niedkWxKX2ZYEAJK4zDYgiQewDUjiOdnmASTx/NjmXyKJf4ltHkAS97PNZZJ4HpJ4foQQtoUQz2IZA2AASbzIbAOSeCDzQMZCPJAAhACEbQCQxP1scz/bgCSeH9uSuMw2IIn7SeJ+trmfbe4nyTbPQxJgmweQxGXGgBAQgCSuEM9LEs+XAIx5wYwBwFgSQkiIF0oSIEkSACAQAOKZzBW2JfEsxjbiWYyNuZ8k21xmWxLPQxL3k8S/xDbPSRL/OWzzALa5zDb/era5TIgHsM3zMOYyYx7ANleY52D+RZK4TJJt/kNJss0LYJvLbHM/21xmWxIvmCReBLYl8UJJ4r+PbZ6TbZ6HJEn8V5HECyCJ5yEJkMRzsi2JyyTxwolnE89Lkm0uM+Y5CQFCPIt4Fknczzb/+WzzorHNv8zcT+LZxPNnANs8i3kWIf4NxPNlzItMEg8giefLYJ6LJC6zDdjmRSGeiySekxCAeCEk8S8SzyLEFQIQ4nkI8UAyGAwG80DmuZjnIh5IYAAhAAFgnoMR4grzHMQDGQsBQlxhbHM/2/wHkcS/RBIvgG2ekyRAkiT+JbYl8QC2+VeSxAslyTbPwzYvmG1eMEm2eRHY5l8kHkgSDyQwD2Sb52TMCyBJEiDJNgAY85yMeU5CAMI2/xJJkngetrnMNpdJkgRI4oWSJAkAbPMisw0gnkkA1RgjifvZts3zIwmwzWWSMM9FEoABjDGIK4QsY56DeS62JdkGJNnmCgEIAZZ5AEm2uZ8Q4grb3E8Sz8m2JJ6TbQCQBACSeB6SeH4kcT9JPCdJgG1JkviXSAJs8zwkAbYBSQDmCkmAMeZZjIUwxghAiPtJsg1gELYBYyGexQCSEAAG8RzEAxljAEncTxLGMiAkyTYA2JbEc7INSOJ+tiUBtrmfJC6TBEiyDdiWBEgCbHM/24AkXihJ3M+2bS6TBNi2LYnLbEviAWzzPGxLAiTxPGzblgQAtnkASQAgCQBsc5kk27YBSdzPtiTbvGCSuEwSD2CbF4Ftnock27YlSbIN2JYE2AYk8QCSuJ9tLrMNSLLNA0iyLYkHsC3JNiDJNv8mkmwDtiVJsi0JsA0YA0IA5jkIIS6TBNiWxPNjmxfMNi+YbZ4f24BtSdxPEmDbtiQEBoOwLYnnIDAGYRvAICTZ5n5CiGczQsY8iwEkcZkQAsAACNsAgJAE2OYySVwmxBXCWEgIMMYACGPMFZK4zDYgCZAE2AYkSQJsS+IKAWAwiGeRxANI4n62hQAEgMAAthFCCAwCMMZIAgDbkmwjACHANs9JEmDbNv8S24AkY9s8X0IIsG0bkMRlxjyTwNgIIQAhZJtnMSBkIQSAMQYQQsYYxDOJ50MAQlwhjAHMAwkhMIAQ97MtieckifvZ5jLbkmzzPGwDkgDbtgFAEs+PbUASANiWxGW2JdkGJHE/SbYBSTyAbS6TxGWSAEm2uZ8k7mcbAGwDgCRAEmCbf4kkXgBJXGabyyTxnGwDgCSeH9uSuJ9tQBLPwzYgiWcxxjwn24AQgDDGXGEbkMSzmCuEAMA2IMRzksSzGEASYMyzCECIy2wDmH8PSdxPEg9gmweQxItGEmCb+0kCbHM/24AQYAwEANjmMtu8yGwj/gXimcQziX+RbUlcJokHEs+XEIB5IWzb5jLbXGabB7DN87DNA0jiBZDEi0ASLxrbtgHbPD+SEM8kACEAwDyQEIBAPJN4ICEewLYQgHgmgfgXCQGAECCJ5yJeENs8D0k8J9s8J9s8gG0uk8QDSOJFY5vLbPP82OZ+tvnXkMS/xLYk/jVs86KRxL/Etm3Atm2ekyTuZ5vnxzbPQxL/JrYBwDbPj21AEiCJfy3zbMY2YJsXzlxhzP2EuJ9t/oNI4t/BNub5MIBtni8DYJ6LMWDMZZYxgDEG8cKY/0gCEOL5kcR/GfPczLMZwDb3sw1g/kuZ5yCMAQTmfuYKAyAAY56DEOZ+5tnMs5kXSDybeL6MeU7GvGCSeAFs8z+GJNu8YJL4DyKJ+0niX8M295NkmxfAtiRAEpdJss1ltnkRGHOFAYRsA4AxgMFcYVuSJF5kQtzPtm2eRQCIZ5HEA9jmP5NtXihJPIAkLpPEvwXVRgIwxvxrCRlzmW2uEEIIIcyzCcwD2eYyIcCY+9mWZJsHMsYIIcwVtrlMCAEYY4QASYBtnpMk25IA25Js84LZ5gEkAbZ5Tra5TBIPYJsHsM2LQBL3k8QDSOJ+QoCQMWAMCCEwV0gCbAPGQpIwVxhjnosknkXIMgaEAADxTALA2OY5SQIkAcZCAEYI8bwk8ZwkcZkk29zPNmAbkMTzI4nLJHGZbUm2eX4kcT/b3M8YwAC2AUmAbcC2JO5nWxIgyTbPQxJgm8tsA4Ak2zyAbUASYFsSz48kLrPNA9jmMkk8D0k8P7YBSbYBQBLPwzaXSbLNZbYlAZIA2zyAJO5nm/vZ5jJJtrlMkiTb3E+SbUASl9mWBNjmMkmAJNuSeADbgCTbkrjMtiTbgBDimcwVQgjAtiQuM8YgMIhnMUYI8fzYlmRbEpfZlsRltgFJvFCSbPM8bEvifpJsA7YlcT/LmCtsCyFsYxC2hQAEIIQwBhBCgG1AEgZAWBYSMsY8iySMbYQknotBYJ5FFmBZEvcz5n5CGISxEFcIQJJtSYBtALDNZZK4zDaX2eZfImSMAYQAYyGEMQbAIIyFuJ9tQJYxAhDCPIttQJJt25IwiGexLYnnZJv7SeIySRiEbe5nGfNcbAOSEIBtAAEgAMyzCcwVtiUhMIgrhCyDJBkLQAAGAdgGEMZCgBBXCADzbAJAABjbgCQAIwmwjTAW4n6SuEwSl9nm+ZEE2JYESAJsS5LEC2VbEmCb5yGJ+0niMkncz7YkSTwP25IA24AkLrPN/STZ5n6SANu8YLYlcT/bgCTANpdJ4vmxDdiWBACSeAFs8wC2uUwSz0MS97MNSAJsc5kkrjCAEM9iAMSzGUlcJgkwFgKMhQBjHsCY5yEEIADLQpK4zDaXScJcYVsIAUgCbHOZJF4A24AknpNtQBL3sw1IAmwDkrjMNs+PbUASD2AbkATY5rkYREgACMy/gW2el0EAmOciifvZ5oEE4oFsS+IKgXkmg3lexgAC8yzGtgHbXCaJyyTZ5jLbPA9JvAC2bfOisc2/iW1JvAgkGfMAxrJ4FoMBMM+HeSbzghgDGGOei8G8IJIAQIgrBOJ5SeJ52OYy25J4ANuAJEASDyCJB7DN/WzzIpDEAxnANiCJ+9nmOUnihbJtm38lSfxr2ObfwbYkXgS2JXGZJP6VbPP82LbNv8Q295PECyYJsA3YRlxhGwAQzyaeSWAAwDYPZADbPIAQz0kS97MN2Ob5kcTzkMT9bNvm+ZHE8yOJ58cYMAYQAOYKY14AY55FvBBCgDEPYMwDmeclxPMQEuJZzPMS4jlJ4t9DYB5IiCsMgHm+JAHGPIt5viRxmSQeQBLPQxIASOJ+to1t8wBC3E8Sl0kCACHbPBfzQti2zQMYcz/xAOK5CPFczBW2eQEkcZkkHkCIF8w2LwJJXCaJF4EknpMkXjS2JfGC2eY52eYBbPOCSeJ5SOJ52LbNi0YSl0niBbDNC2Cb+9nmRWNbEoD4l4krJAGAEJcJAQjEMwljAPNM5pnEswhxP9s8i3kWSYjnyzYPIIl/PUmSbPOcbPMAkmzzALYBwDYvEuS0ZcA2IARIAmxzP0nczzYvCiGL+1nGAJK4zDb3k4QBELZ5foS4nzGXCRlzP0kABjDm+ZEE2OYy25J4TpIA2/wr2ZYESOJ+trmfJMA2z8k2z0kSDyDJNs+PJMA2lxkLAZK4n20AAyAASdzPNpcZCwGSANs8P0KAMSDE/WwDxoAkQJJtAJBkm8sk2QYk2eZ+kgDbPIBtSYAkwDZgG5AESAJscz9JgG3uJwmwzf0k2eZFYAxghBD/Ikm8YLZ5TrYlcZltSZJs25YkyTaXSQJsSwJsc5kknpNt7ieJ52RbkjHmCiHLmGeRBAC2eU62uZ8kSVxmm/tJss39JAG2JdnmMkm2eU62JUmyzWWSbHOZJC6zDQCSeADbACCJ+9kGbAOSACFjY4wkQBJXGACBAWwDCEAIMOYFk2Sb52EbkAQIAYgrbHOZJJ6HbUCSbe4niQewzQsgiQewbRuQBCBk8UDCNlcIIe5n27YkSRhjQMgy5pkMgHgukgDbPIsBEJJsYxCAEFcIY1mI52Kb5yQJsM1lkmzzAJIA2zwn25IASYBtnou5QggBGHM/IcCY52QbkAQIcT9jXjBJgG0AIWSMucK2JEDIGAAQmCskAbYBSba5TMgYg3ggSVxhbEsCEFfY5gEkAbZtSwIkYRDPxTaXSeIy2wBGkjHPSZJtQJJt7idkzP0k8QLY5jLbgCTbgCRAEmCbB5Bkm/84kngWgwAA2zwPSbYB24AkQJJtLrMNSOIFkATY5jJJgG2ek21AEs9JEvezDUgCbAOAJMA2DyCJ+9nmOdmWxP0k2eZ+knh+bPM8hLjMGMAAkgBjLhMCjHkeQsZCCABjDNiWBABCgGXMcxEy5jkJAQjbvGgk2eZ+kgDbgCSeh20usw1I4jJJtvm3ksT9bANCQBgEgJAQ/xqSJHGZJEk8kHkO5grbXCGeSWCeyTyTeYHEsxjzvMQLJK6QxGWSAEmSeJFJ4gEkcZkk/k0kSQIASZJ4Tra5zDYgCTDmCiPEZUK8EOKFEAIkAbZ54cRzEwhAEiDJNi+UbUm8UJJ4fiQBkgDbgG0eQBIvmG1edAZA/PtJ4gFscz/bkrifJO5nm/tJ4l8iiRdCAJhnE5gXkSQuk8QLYFsSL5RtSTyAbf6j2eYKIQkQAjAYSQCAATDPZABjAPEiEuIFk8S/lW1J/AeRxL+PMQAgMP8C8XyI52ael2VeBLb5l9jmASRxP0m8IOIFEQIQz0sS/07GGAPYti2J5yHEA9jm+RHihRLCABiMbR5AEg9khDD/OuJ5SbLNs4grhIz515MESAIASTyLsc1/MtuIF862JEAS97PN/SQBgCQAsM1zss3zsM39bEuSBEgCbPMis82/xDb3k8QD2ObfyhhAPH8GY2zMCyAEYDDPZCTxQALzvIx5LuYK27zIbEviRWOby2xLksT9bEviP5ZQpiXbPJAknpNt7ifJNs+PJNvcT4j7GfOCCFlcZiwEGAPGgBAgBCAA2zw/kjAAwjb3k8QVxpjLJHE/24AkHsA295PEA9jmASTZBiTxQtkGJPGcbPP82AYk8SIQQjyLbQCQZJv7SQJsSwIwiCts8/zYlgRIsg0AknhOtrmfJMA2/xJJPCfb3E+Sbe4nyTYvgG1JgCTbACCJ+9nmMkm2eV4G8W8gifvZBiTxnGxzmSTANs/JtiReKEmAbR5Akm2ekyTANgBIss1lkgDbgG1JXGEQgCQusw3Y5jJJkmwDtiUBkgDbgG0ukySJy2xzmSTANveTxGW2eU6SuMw2YFuSJNtcJgmwzQsgyTZgG5DEsxgAAUgCjIUwxhgA8SySMLYRkngWY4xBPIskwLZtQBL3k4QxFkIYY56LJC6zzQNIAmwDkrifbe4nyTaXSQJs8/xIAgDbPA/bkgBJgG2uMIgrbEuSZBvAPIuxJACQBNjmASTZti2J52IABCAEWBayDQghbAMYxANJ4gFs8/xI4jLbPCdJgG3bkiTZ5lkMgHg2IWQbYywJkGTbtiQAgblCCGEbg3gukgDbPCfbkgAhwDbieUmyzXMxgBBgjAAASYBtnsUACCFjABACjAEhYwADIIQsYx5ICGGbyyTZ5vkRMgZsSwKEuJ9thLEQDyAJsA1IAmzbBiQBQsbcTwhhm+fHtiReBLYl8ZxsSwIkcT/bXCbJNs+PJMA2z0OSbV4EtiUBkgDbPD+SbPMAkmxzmSTuZ5vnZFsSz0mSbcA2IAmQZJsHkGQbACTxAtjmMtuSuEII2eZ+QrYBxAtkEEI8J9sAAkAAQhhjnosBJAHGAAaQBBjzrySJ52Gb+0kCbAPGQjw/kmwDtgFJgCTANveTBNjmfpIADIAAbCNCwvzr2OYFsC2JK8Tzss3zMs9khHgAISFedOaZzPNhHsg2ANgGANs8gCSeH9sAYJvnZJv/UJIkAYAkXhADGPP82JbEFeIKSVwhrjDmBZBkzL9IPBdJ/OtJ4n62AdtcZpvLbPM8JNnmRWBbEs9L/BewzfMjyTYgCbDN87DNc5LE82ObF40xz8k2L5gkQBL/mWzzPGzzgkniAWxL4jIhzHMQDyQEIJ5JCPEAxjwX83zZ5n6SeB5CXGFedLZt869hm3892zxf5lmMeRYBIJ5FEvezbZsHkMT9bPMAQggA8y8Tz8U297PNv4F5buKFMcZcJonnyzx/5kUkiSuEMYB5XrZ5XgIwBiRxP9u2eSBxhTEPYMxlxlwhnklgXjhjrjAPJGTM/WwDxjyLAIR40UgCEAjEsxjbRjwv25K4TBLPjyQuk8QDSOJZxPNlG3GFJO4nicsk8fxI4j+IJNs8gCTbvGgk8Txs8zxs8wCSbPMvsc39JPEsxjbiCiFjAPECGcTzJxAYAIPBPJN5DgLxbOY5iOclSRL3k8QD2OZFJgQAkhAPZFsSIEkSIMm2bcC2bcA2z5dAPADKTC6zDUjifpIA2/wrSQJscz8hYwCDeIEMIAlAYADEFcaAEGCb+0nifraFuMyY+wkhMIAxBgFIss0DSAJsc5kkLrPNZZJs84JJss0LIAmwzf0k8Zxs8yISGNuAJEAS97PN/YS4zJjnIQljDNgGJAGSANu8AJIA21wmhAAwxvxLJNnmASTZBgBJgG3ANiCJ+9nmfpJ4wSTZBiTZ5n6SbPOcJHE/24AQArDN87AtiftJ4gWzzQNI4gFs8zxsSwIk2bYtiReBbUk8D2MhIYRtLrMthBCybSwJkGQbsA1I4jkZCwGSbPOcJAG2AduSJAG2uZ8k29xPEmDbtiRJgG3AtiRJtrlMEmCbB5AE2OZ5CNkGjCVxmSQAY8xzksT9bAO2JQEIWQAGQBgDxkKAJNvcTxKXGQsZY57FNpdJAiQBtrmfJC6zzWWSbHOZJC6zzWWSANs8gG1AEs+PMQaQxLMIIcA2lwkZ2wYkcZkkwDaXCQEI2/xLbAOSJAGAbQADSAIQAAYwBgAhxLPY5nnYliTJtm1JgCTANgBIsg1gEEKAMfeTBNg2xkjieQhxhbjCNg9kEIAkAAPYNpYkicuMhQDMs4lnM8Y8gG1AEpdJ4jnZ5n5CxjxfAvMskgAMxthYCJCEsM1zsg0IIYQAY+4nZIxBAAhZgDHPxQAIIQQGAdjmfpK4n22eHyHA2LYkQBIGAdgGbEsCJAG2AUk8D9vcTxL3s83zkGTbtiRAyJj7SQJs85xsSwIkcZltHkAS97MN2JbEZZJ4AWwDtiUBkgDb3E8SYJvLJNnmfpIA24BtSTyAbUk8D0mAbe4nCbANSOJ+trmfJMA295MEALZ5AEkYY+4nC3GFMVcIIdtcZiwEAEKAbQDxXIQA2zyLuEISz8k2IIn72eYBJNkGAEmAbe4niedlEIBt7ieJy2wDkmwDtrlMEs+PJNtcIWQhAgBsS5LEfwTbmGcygLEQgHiBDAIBIDDPZF50QrwgBvFM4grbXGab58c2z8m2JF4w2/xb2bbN/SRxmW2ehyTMFZL49zDPZBCSeABxmXletnku5kUkyTb/epJ4TrZ5ASRxP9uSuJ9tnodtLjPmMmMAkMTzkGSbfxPbXGbbNs+PJC6zzWW2ecEkSQIA2zwnYyGuMIgrJAFCAAKwDdiWxGWSeMFsS+J52AZs86Kxzb+PbV4IAUjifrb517ANYJ5NPIsQz49tHsg8kCRAEpfZts0LZZsXyjbPSRIvmBAgiReNJO5nG0C8QOIFkcQDmWcSzyReIPNCGPOcbAO2bfNAAkD8C4wk/rXEMxkAAyAAxHMRAjBXGCOeg3hekngRCBnzAJJ4IPEiMYjnIglAPC8hYwziCiFeEIF4JoN4bgLA/FuIZ7EtifvZ5kVj2zYvImHMA9i2zfNjG7Bt2zYPIInnZFsSl0niBbDN/WwDtm1zP0k8D0lcJokHkMRlkrhMEs+PbduAbV40kngBbPNAAvMcDOL5ss39hHgu4lkk8VwEwpgHsM0D2OYy21xmmweQZJt/LfGC2OYy25IASZIk8QLY5lmMAVBrDSHE85AE2Ob5kcRzss1zsg1I4jIhwBgBCAG2AduAJEDImOciZHE/Y+4nyTbPQxKAAYwBBCDE/WwDtgFJgCTANi+UJC6zzf0kAbZ5HrYlcZkk2zwnSYBtnh/bkngASYBt7icJsA0gMEKIK2wDGADxLMZCQoBtAAFIAmwAAWDMC2ZbSBL3M8YgjIUASba5nyTbXGZbEs9JEmCbf4ltQBL3sy1JEmCb+0myDUiyDdiWxGW2JQGSbAO2JQGAJMA295Nk2zYgCZDEZbZ5HpIA2zyAJNuAbUmSbNuWJIn72eYy25IASbYB24AkIcAYAGxLAiTZto0QAjAISVxhAGOexSCeiyTbgG1ACGEbkMT9JHGZbS6zLQmQBNjmOdkGJPGcJAG2eQBJXGZbEvezzWWSuMw2lwkhAMwzCdu2JQkBxhgEIAkwxggBxjwnIcCYK4QQl9nmeUgCMAhjjG1JPCdJxpgrJAG2uZ8kwDZgW5IkwDbPybYkQJJtwDYgiefLICQBtgEhYwCQBNgGbEuSZNu2JEmAbQQgZCzEA9jmMtuAJEm2jYUAScZCAAYw5vkyiGcSQoBtrjDPJF4kQoj7GQvxnGwDgCQeyDyTMMYAQlwhAMyzGAMIIds8gCRjDAAIAZYxgBBgLInLbHM/STyAbe4nifvZ5jJJgG1AEgYw5jJJtgFAyJj7CQEIjLFtSZJs8ywCEAIwtgEEgBDifsYYQBKX2TaWBSCEEIAx5gohAAHYxiAk2QYwgJAxV4grJGEAY64QQrZ5TpJ4ANuAbUASIIn72QZsA5J4fmxL4vmxDUjiOdmWBEjifrZ5TpJsc5kknpNtwLYkHkASYJvLJNnmASQBtnlOkgDbPIAk7mebF0wSD2BbEpfZ5nlIAmxzP0kABjDmfkLczzaAeC6SeE62uZ8kAPMsxoBt7icJkMT9bHM/SbZ5AEmAbe4nCbANAAhZ3M+Y5ySJ+9nmOUkCbPOvI4kAhHgRSOIFsG2b52TMZcZcZts2gMFcIQQICWEAY64wmGcyz81cYZt/K0mAJEn8a9jmhbINSOIySdzPtiSeH0k8P5L4VzEviDHPw9gYMOa5mcuEuJ8kHsA2AvHcBCDE82NbEpdJ4t9HEvezzf1s8wC2ucy2JEASD2AbsI24wjYPIInLJPGvZ5vnZFsS/xJJXCaJ5yRJiMuMuZ8kAGHM/Ywxz8s2DyReCElcYYQQD2QbsM39JPEAkngA24AkXjS2uUL8K5hnE8+feEEk8cKZf5kBMC+EbSEewJh/H9vcTxIviLjCNpcZ8wC2Ads8P7YBzDOZB7LN/STxQOZfTQhxhQFs8ywCQLyozAMJ8W9jnpuxzfMyVxjb5lnMczMPJInLbPPvY5vLjHlOtrmfMc/JMuaBbEviWcyzGAOIK4R4IPN8GfNczL9MAAghY57FXGHMcxKyzfMw5kVhnkUSYJvnRxIvmCQeQBKX2QZs2+b5kWSbf4kkHkASz8m2JJ6TbZ6HbdtcZpt/H0lcZpsXgSReCIEAJCEwz0E8H+KZxHMT/yqSbPMAkvgXmX8zSbZtcz9JvGC2uUwAKFsinoskALAtifvZ5nlIss1zMYhnMojnJcT9bCOezQCIBxLifsa8KIQsnkUAtnkASba5nyTuZxuwDUjiOUniOdnmeUjiMtvcTxJgm+chyTYPYFsSIMk2l0kCbPOcJAHGgBCAAYy5wiCeL9uAJEASYBsQAObZJAG2AQyAACTxL7HNA0jiMtvcT5JtLpPE/WwDtiVJAmzzIpNkmxfKWIgHsC0JkGSbyyTZ5n62JfGvIcm2bUm8AJJs8wCSbAOAJACwjUEAGAAhifvZBoyFeABJxhgh2wACEEIAtrlMEoBBYIwBjCTbgDGXCSEeSJJt25L4N5EE2OYFk8QDGAtxhbGNeP4MgBBCXGFbiPsZ8zwkAcaYKyQBtgHbgCRAEoB5IGPbXCaJBxBCXGEMYIwxkgBJxpgrhAAEANi2zWWSAGMMIIkHkATYBjCAJMCYy4RsG0vifsZCPD+2JQGSANs8gG1JkmzblsQDCSEMgLjCNmCbyyQBkrjMNgbxQJIwzyQwgDEPIAmwzQMJDCCJ52Qsi/sZcz9J3M82gHkWSYBlDELINs/FIJ7FtiSELNsAAgMgAEmAbQxCEgDY5jJJtrmfJMA2AEgCbPMsQpZtwFgSz0kSz8k25pkEIAmwjUEAQsY8gCTANoDAALYlAZIA27wQBiEEIAAMYAwghDDG3E/ImAcyCCEExhiDEDLmBbMticskAbYBSYBtnodtSYAknh/bvGC2AUmAJMC2bUmAJNu8YJJscz9JXGYbkGSb+0kCbPOvJwmwDUjiOdnmfpIA29xPEmCb50cSz2KMeU5CPIBlzDMZAAFIwlxhzANIAjDGgCTuZ5sHsC0JACTZ5gEk2eZ+kmwDCFmIB7LN8xAyBmwLIZ5FEmCbF0wSz49twDYgCZAEBOKFkMQDSOJ52OYBJAGIZxMvhLFtxHMQz00gnkWI5yWeyTyTQTybwTwX25J4wSRJ4t/KNi+AJJ6HbUk8gCQAsM2/hrExz0VcIcRlQtxPEs9NvCACQCD+ZeYKSTyAbS6TxP1s86KRxAsiEA9kWxIPYJvLJHGZEM9JEgDY5gWQZJsXmSTbPA9Jkrifbf41hBDPhwBk8bwMYFsS4tnMC2IZsM0VAhAChHhOkmzz72PbNv8aQsY8kHkgIa4Qz2auEOJfz7ZtwDYgCUAAmGcTiH+BeQ5CCGEM2JbFi0wIkMRzss2zCMDYmAcSz0WI58c2V4gXhW0eyGCeL0mAJJ4v829gGwAwgBDmBRHiRSeeg8AAGGPEczCI58sYQACIZxLPzTwX27xQtnkAIWPAmCsE4tkM5l/BCBnzAJJ4IPMsxoBt27xw4gpjHsgAGMAY80BCPA/LGADzbOIFsS2J/xy2eX4k8QJIss2/nm0us80D2AYk8a8kiReNJF4ASbwg5gpjnocxD2SeyQDGXGFeENuYF4Uk2wBgm+dkm/tJss0VBvF82eYKAxhLAiQhXhDbPA9J/OtQeU6SANv8S2wDknhOtiUBAObZBGAMYAAM4jkIIQyAMEYIAbaNEQAGkGSb+0nifpZ5AMsYQIj72QYk8a8nCbDNv4YkLrNtG5AkyTZgG5DEZZK4zDYvmCTANs/LSAIAYyEAgQGMjXlOkgBJgLlMAJhnsi0JsAFJCIwxl9nmOUniCmEbACTZ5gFscz9JtgHbkngekgDbXCbJNveThAEwxpJscz/bkmwDtnkWI4QAMM8mnsU2YFuSbcC2JEm2JXGZbUASIInLbHM/SdxPkm1AEmCb+0myzWW2JQG2eU62AQRgDCCeg3kmAUjiMtu2uZ+xEMK2bYQsSVxmDEjCXCEJsC2EMBbCSLJtLIkHkMRltrmfJEASYNu2JEm2bQOSeE6SbPO8jDEPIMSziCuMhQBACGEbgTFGyEIYAxjEFbYBSTyQeRZJxpgrJAFCgG0Ag3gmAwghANuAJEkYY0AWIITAGGMABIAQwhjbRmCeRRL3EzKWBEiyjTGWBNiWZJtnEUJcZhuQBCCEbCOEMLYlIWwDCCEAg8AAtnkWAdgGJNm2LUkSl9nGIDBCCEm2AQQghHgWIcuYZ5FkWxKXGUvCXGFbEmAbsC0ECHGFQdjmuQghwDZXiOdiLAmwjXgW2zyLETLmfpIAYy6zzRUGsCwkyTYCwCCeSVxhjHkgSbwAtnlOtgGEEFcYIWMewBgDSAIQGEAIMMYAkgDbAAJACPFABkAACAziCkkYBGAbsC0JQAhxmZAx5rnYBhBXSLKNELIN2AaEMAAgifsJIWwDxhhAEg8gCfNMAoNBXCGEsA3YlsQD2OZ+krifJJ6HJNuSeE6SANuAbUm8ALZ5TrZ5AEmAbS6zzfOQxHOyzWWSANtcJon72eZ+krjMNiCJ52Sb5yGJK8RzMIjnYIwRQjyLADAPZJsrhDFGEs/JGBACJHE/21xmWxL3sw1IAiTx/NjmAYR4LuK5CBnz/EjiMtuSAEm2AUASYBuQxANI4jLbiODfxLYkSTw/tnlBDAbAIJ5J2AYwthGAMYCxbZsrDOYK25L4l9jGAJjnIgmQZJsXzDaX2ebfzTb3s22byyRJss0LJonnRxJXiGcyzyaEeABjrjCAsSSePwGIZ5KwwTyAMYB50dmWxAtgmxdAEs/DtiSuEM/FNs/JNveTxItOPIskXgBJ3M82l0niBZDE82NbEpdJ4jJJ3M+2ba4w/wJjm/vZ5oEExphnMQDmOZjnZcyzCNs8gG1JPIAknpNtnh9JvHDiWYx5wYS4TIjnSwAYAIN4XpJ4IPNAtoW4TBLmCts8F/NM4gpJvCACQFwhCUAAmH8zSVwmZBvAPBfbPICQbQCDARAPJMQLZwCEJEASz5d5JmMbMMY8k3kWYwziWWzzAEKYZ5HE82NsmSvM82GeSQCIKyRxPyGek5AxDyBkzHMy5n6SJPEs5pnEFUIYzLMYY/4VxL9IyJjnYp5NAAghAIF5FmMAcYUQz0s8iySuEBgAc4VtSVwmxAOZZzKI5yXJNoCxLQmQBGCeD3GFECAESOJ+tgHbxjyQeBZjYy6TxH8VSbxQkmzz/EjiBZDEC2bbNi8a21xmG7ANALZ5fmzb5nmJBxKyzGXGvCgEICQECCH+RZIASZK4TBIgSRLPQxIvgDGAkcQDCNkGAGMhLhPihbLNv0QSD2SqbUmAJMA2z49tLpPEAwghrrDNczLmfkI8i3kuQrYlcYXAvCgk8UDimQwgyTZXCMCYyyQBkmzznGzzAJK4TBLPwzb3k8RzkgTYBgBJvFCSuMw2L5RtnpcxRgghbHOFADAYIa4wxkKAbUkAxjb3EwCWENiAJGzEcxOYZzGWBNjmMkk8J0mAbdsAYFsS95PE/WxzmSTbAGBbEmCbK4wxIMRzkmSbB5AESLJtG4EBJAHGGMxzkQTYBiTxAJJsA5JsSwIA21wmCbAtCZBkm8tsA5J4fiQBtm0DkgDbgG0AgblCEoAx5lmEEGBbEg8gyTYCsA0YC/EAQtxPCEDYNhYChIyFLAMY25IA25K4n21AEg9gm/vZBiRxmSQeyEgCMBgAAdgGbANCCIRtDAJACHE/YwxGEmCbBzIAwjaXSQIkcT/bQgDGWJJtSQAGARhjjLnCAAghDCAJYVsSYBshhAGMMc8iiSuMMYABEMYYQBIghAAwGMBYkm0hxDMJAHOFJC4zxjyLEOKBLAsJ2cYAkrjCIAAERhLPxSCukATYloQBjCXxXIwQxhiBQQgBiBfOGBBCAIBt21xmLAnACCGMeQDbkgAEgLEsJAmwzQMIGUviCvNAQgDGWBIgCcA8N4MAhADbkhC2bSOEAGMhLrMtSRKX2eZ5SMJgAIRtwLYkLpMEYGwDxpIABICxLcm2JAQGAWAA25KMActCgBDmCmMukwQYA0IAIIn7GWMASVwmCWMMCHE/24AQIAmDwACY5yLJtiQeSADGmGeRZFsSIMm2JNu2JXE/IYQxBrAtCSOJF8C2JC6zzfMjiRdAkm0usy2J5yQJAGzblgRI4jlJAmxzmSTbgG1J3M82l0niP5QkHsC2JJ6HbUm2uUwS97MNIDCIKyQBgG1AEg8kMAAghACMMQghAAMY8zwk2eYBJPE8bPOcbHOFEOIKcYUk2wACA2AAxBXGGEAS97MtiX87QogXTBIPIAkAJPEsxrZtwDYvOvNsQhKAwGAADAYQ4gqB+JcZALAtifsZ8wCSbPOcbPOvIUmSJEmAJF4w2zyAJJ4f2zyAbZ6HJF4Qg3gO5lmMhQBACHOFbV4QG5tnkXi+xLMI2eYBbEviOdnmASTZBiTxAtiWBACSbPNCiBfCNv9ukmwDgG1JXCaJF0ASANjmhbLNZbZ5HpJ4FvNcjLmfEA9gWxIvgLEkxPMhnsU2D2AMGAtxmSTuZ5vLbPOvZJvnSyAQz0UIAGzzQOb5ss2ziOciCZDE8xAChBCAbcA25lmEEM9FCEAAxgDi2czzEuIFEYAQIIlnMc/FGDDmWcyziWczz828qMQLJ8k2z8k24lmEEM8iiWcxAMY2/26SeAEk8ULZ5nkIcYV5LsYAArAN2DbmOdlGPJOwDdjmAYy5nyTuZ5sXkUEAkrifbcAYMAYASTyAbcC2MS+YkDFgzPNjDAAYQIgXTBLm+TBCAIAAEJgXRlwhBCCeyTwXSdxPEiCJ58v8G9jmBbDNC2AbAGxL4jJJtvnXsG2b+9mWBEjiRSaJF8o2YJvnJInnJIkXgW0usw0AthHPxTYvgGXMsxgDAOY/jyRJCCFASAgAJNnmMtsIACHJmOfHtm3+9SSusAEqL5gkHkASD2QAxLPY5gFs84KI52AQQojnIACMZa4wQogHss0DSOKBDIAQss39JPGcJAG2ucy2JEASz8O2JMA295PEc7LNc5LEZbZtS7LN/SQBtgHbgCRJAGCb+9nmhTPPwQCYZxNCxhgEgAEwlxlA4n62JUkCDNjYgCQAAyAwlgEhDGAsiX+JJNuSANuSANu2uZ9tSYAk24Ak2zyAJMAYIYR4FklcZhuQBNgGLGMkAbYlYZ4vSbZtS+L5kcQD2AZsS+IFkMT9JHE/24BtSba5n23uJ4kHMMYgAAyAQAjZBmxLwggZc5kkwDaAQQAIwDbPQxIGEAJsAwjAGJAESLJtW5JtSVwmCZAEALa5TBL3k2SbB7DN/YQA21whrpAECAHGgDFGEpfZ5nnY5lkERhYCYVsSIMm2bUASYIzAAJKMAQABGAMYQBLPScgYAdiWhLCNQQAI2zyAkDFgG5BkGxCSZFsSIAljLAQYIzCSbBtLMuYyIWNJGMQzmWeRhAGMMQjMc7EtyTYC8yySJAG2AYQQ97MtSZJtALANCAHGGEASBkAYA8ZCXCYJsG1bEiAJsM1lkiQBtjEIIUCSbUlcJgmwzWWSuJ8knotB2AZsA5J4AGPMFUII27YlGQOSbHOFkWSby2xzmSTbPIBtAPEsQoBtQBL3sw1gnk0AtgFZiGeRBNjmMtsAAhACbEviMkkYDAKDADAARohnMQgAYyyJy2xLMgYwAEKIZxEAxrYkQBJgDGAQxoAQYFkIwADGAOaZhBACsM1lQoAxAMgyBowxQgjb3M8295PEZbYBQBIA2JbEZbZ5TpIAQBIPYBsAJPH82JbEc7LN/STZ5n62AUmAJB5AEmCbF0qSbcA2IIkXwDbPxSCeRRKX2eYFkMT9bPM8bPNCCSGusM1zksSzGCEEBvG8bHOFQQCYZxK2eQDbPA9JAGBbEg8gBAgZA5IAzAPJMkYAGMA2QggAbPMAknhOtiVJAmxzmSQeQAIIXjSSuEwSzyIABAKQJMRltnkg8Uzi+RCAMVeI5yAwz8G8ELYRz2IMYGwjnoskLpPEc5LECyaJF8o2L5htLrPNZbZ5HpJ4TrZt80IJ2TbmBTAGAGMhBOaZzP2EBCBeJAIwtsyzCEAIAGzzIrNtmwewDQC2bXM/STyAba4wL4gkHsAYI4S5wrYknkU8i20ewLYQL4BtwLYk/vUkcT9JvAiEjAEhxLPYBoyFuMyY50cS/xLbXGYMIBDPRZJtLrMN2JbEv5N4PowkXgBJXGab+0nigcy/hXkWIZ6LeRHZ5gGMbfOcjLmfJEAS95PEAwjxPIQAY56LATAA5oUxL4x5YQzmX2AAzLOZ5yLE82MbsG2bF8RgANuSuJ9tY14I8YJIAgAhAIF5QYQA25K4TJJt7ieJ5yQJACTxLALAYK6wzWW2eS7iOQgAgQFs8wCSuEyI+9m2zRUCASCegzDmfsZCAAIwNgYA2zyLEOJFJ56DeBYhY56HMc/J2JgrjDFXGCHEC2HbNs/DtiT+9SQBkvjXkMT9bPM8bHM/STw/kgDbAGCby2wDtiVJ4lnMv0y8ELa5zDYvlCQusw0Atvn3MJhnEwAC8Sy2ucIgrpAEAMa8CGwDgCSeh5AxlxljnosxgLEtCZAkxGW2+ZdI4nnY5rmh1pokQJJtHkASYJtnEUKYK4wBQAhhm+dHEoAxFkI8izHm+RBCgG3AGCMESDLmfkLGgG1AEiAJwAC2AQQgifvZ5vmRZBuQxGW2AUmAbe4nCbDN/STZ5n62AUASIIn72eb5kQTY5gEk2eb5kcRltgFJgG0eQAgwxiCEjHkuBiHE/QyABGCb+0myAfM8JNnmAYSMMYhnsS1JEg9gG5BkG7AtiReZbUk8i0EAkmzzfAkMgHluAgCEEJhnEoBtLjMWAiRxP9s8D9uSAEm2uUwSL5htnpMkwDaX2ZYESAJsS8IYc5kkzBXGgG1AiGcRgCQewDYGIYSwzQPYBiRxmW0AIcRzkmSby2xLAiRxP9uAJB7ANpdJ4n62AUk8J9vcTxKX2QYQmGeRBNgGbEuSBNgGbAOSACFjDOIKIYRt7icJsM39hBCAbV4EQgDCtm1JkjDPYoxBCCFsA7YBSYAk2zwPSYAxgAEwD2QMSAIkYa4wBgBZlrmfJMC2bQAhBAgZ8ywCgzEWQgCSANvcTxLG2LYkhBBgm8uEjLlCyAKMAYQQD2QAY8BYiBfMtiSel0EIGXM/IWNJAOaZhG0uk2TbtiSeRQCyAGOEEGAbwDybkATYBjAISbZ5fiTZlsSzGMAYsA1I4gGEeBZhG8AAkgBj25IASYBtLpPEZbaNhQBJAMY2AhDiCmEbABCYKyTZNhbifsZCXCYEIADbXCbJNveTBGCeTQC2uUyIy2wjnpckwDaAucJYEvezLQkjZIwwxgCSeNFIsg3Y5jJJXCaJ58c295PEc7LN/SRxmW1eBJK4zDYPIIn72eZfIgmwjRACbHM/24AkQBJgm8skcZltwLYkXgBJtiVxP9u8YJK4n21AEmCb+0kCbEviMmPMMwkMIInLbAO2AUmAEGDMZbYl8fzYBiQBkrifbe4nBBjznIQABMY2gLhCEg9gm/tJ4vmxzfMjCbANAIiQBCBs8y8ythGAMQ9kEC+cEIC5wjYGMDbmgcwzCUBIEpfZ5gGMhQAhIZ6XQLzobHOZbf6VbPMAkiRJ4t/HtiReMNsAYNs2l9nGPAcBGAvxAMaIF0ISAEiyDeb5sS0JwACAMYAwBoR4oWxL4n6SeNFI4oEEBrDNC2IAzHMTz2IMIBAIAPMsQrxoJPFvZds2YNs295PE/WwDthHPxdiYBzAGEIjnZRswxgAYSTyAJJ6XeV62JXGZJP5D2QYQL5CRxAtlG7ANSOIyY56XQTw38RzMA0nihRMvItuAMSAJQACSeCHM8yXEs5h/mXkO5gpjnpcQ4n62jXku4t/IvBBC/Kcx5gWwzbMYzAsknottAPMsknh+bPOCSZLEi0IAto25nxDPyTbPYgAhLjMGMM9NvHCSJAFCXCYEIJ6LMeKZBGDM82UAYwCD+JcJIUCIKwQgiWcRgBAgiX8NIUASIIkHsM0LJokXgW0eQBKX2eYBJHGZbf79DOL5ksQLYJsHkMQD2LbNA0jiP4EknsU8m7nCNi+AsbEQl0myzfMjSRIPYNs2YNs2YGzM8yWeSSBsc5lt/pOYKoQAjLmfJMA2IAmwzf1sS8IAGADxXCRxP2PMFUKAMeYK2wDiCtuSANsAAoERQgDGgDFGCAEIWeY5WQaEuJ9tSbZ5HrYl8a9hG5DE/Wzz/EgCjDFXSOL5sQ1IAmzzPCTxAMaY52XMFQbxvCTZBmwDCMCYK4QAsAUGJAG2eX5sSwJsC1nGIJ5FCDAGJPEAtrnMtiTbgCQuk8TzsC3JNpfZlgRI4gqDAIwB20KIK2wDCCGEEGAbcYUk2zyLMQYQCFlcIa6wDQBC3M+2JJ6Tbe5nmxdAEpfZBiTxAkiyDdiWBEjiWQQGsC1JEleYK4QQtgEhxBWSMIAx5rlI4n6SuMw2IInnJInnYowRQogHsg3YlsQDSAJscz9JgCwA8Sy2AduSAEm2eU6SeE6SAEkYYwBhjBFCAEIIDGBbSAgBYGxLss2zGEkYY9uAEIAAEIBtQBIAWMYAGIQkwDaAACQBQhhjHsC2JMC2JCFjAJBkzGVCxpgrbAMISRgAY8z9hADbPIsAhGwbS5IEYIwxQghjrjCSbAOSbHOZJEAWDyQAIa4wCABzhW1JgLEQgEEACCHuZ5vLbAOAJACQBNgGAEkYY4QQ9xPifrIsYxBCgG1AEpfZBiQBCEAWxhiQBNhGAEKAba4QQoBtnsUYc5kk7mebyyQBQrZ5AEmAsW0AEAIkAbYRzyIJMMa8IJIAYyEMgHgmY4zAICRxhXggIcA2QhLPYgAM4grbkjBCxoAsQMiY+wlxhcA8ixCXGfO8BAZAYJ5FyBgQAhBCCNuSeE6SANuSANvcT5JtQJJtSQAgicsk2eZ+kngA2zw/kngBJNnmeUiyDUjiMtuSeB6SuJ9t7ieJBxKyAGMuE0IAtiXxrycJsC2J+9nmfpK4zDYgyTbPjyTANpdJ4gFs8yKwDQBCgG1AEmAZwFxhWxIgiX+JbQCwLQmQBNjmfsYYIQQGkGRbEvezDQCSAMA2z0MSl9kGJHGZJJ4bYcBgXjhJPIAxzyIABOb5M8/NPIskSUJcJsk2z2IwgDEPIIS4wtiYF8JcIYkXQJJtLrPNv4kkAJDE8zL/Zra5zDbPYjDPZJ5JAEKSEIhnM5hnMg9kzAMZEAjMZbZ5wSRxP2MhBObZzPNlm8ts869hm/tJss0LJ4S4TBIgBAgZG/OCGECI52Wei7EkLpNkzLOYF51t7icJkCSJ52GbfwOBeSbzbAbxTOJfIB5IEv9a4t9LIF4I2/xLJPH8CAGIZzKYK4S4wlwhBEjiuYgrhBCIK4xt8wC2Mc/FGEAAQoAQYMxzksT9bPMiEEJcYYwAEM/FmAcyzySeg7jCMg8gyTYvIvNAxjwnSdzPmCsMgHkW29xPEiCJyyTxPCwDmOcgnoMBMIBtnpMk/jWMeU7GPCchQBIASLLNc7LNZbZ5IPMfzrZl7idkGcAAmBfCNoAx5grzfAhAyJjnZZ4P8VyMeb7MFcYIY0CSba4wiGeRxPNjG7Btm/tJss1lthFXSOI/hyTbXGZbEgBIss1ltrlMEg9gm38V81yMeb7Ms0jiWcwVQjyAJF4o2wBgWxIPYJvnxzb/GpJs8yziWWwDGAxgmxeBbe4nSZIkSYAkDOb5M4grJPH82OYFs81lkiRxP9tcIe5HxSCeL0mAbS6TZJsrzDMJAGHMi0IAmBdCEs+XAIQA20KI5yIJsA0IcYV4QSQBtgFJXCaJB5DE/SQBtrmfbUm2eaGMeQDbkmxzP0mAJMA2IIn72eZ5CcwzCSGuELZ5TkIIwLaxJO4nhLnCWBJgW4gHsM3zIwmwDRgLGQshnsUyxrKQJNu2eQBJgG1JgCTAtiQus81lkrjMtiRJtiVxmW3uJwkDSAIQQrYBSVwhMAACkMRlkrjCAMb8S2xLsi0JsI0xlgQYYyQBkmzblsRltiXxPCQBkmzzALYBSdxPEvezDQCSuEwSl0kCbAMYxLMYA7IQgLFtrjCAMSBJEmCb5yTJNiCJy2wDkgDb3E8SYJsHkAQAkrifbS6TxAPY5nlI4nnYloRBSMIAxra5TBL3MxZCALaFAASAMZaFMAYwCFkAwhiDEOJ+tgEhLhNCALa5nyTANpfZBoSMActCkgDbxhjAGJAESAJsA7Yl2ZYE2DYGhABjQBLPIgCMJIRtBABIsg3YBiQBtgFjQBJgm/tZFrIsxBXmWWzznGwDQlwhbHOZJEm2eQDbXCbEFeJZbEviMtuSJNmWxP1sc4UQ4gqDwBgLIYwxACCEwFxhmweQBNiWxP1sc5mQMQ8gCcDYliQJwFxhLARIMhYCJAG2eU62ucw2z5dBALa5nyQewLZtQBIghABsCwkZAxgERshYEoCxjMFIsg1Iss3zMggMYAxgEIAQlwlhjAEEYFsIASCexTYgCYMwxmCexRiQxGW2eU6SANuAsSxjQMgY80C2AUm2AduSAElcZhuwLQkQMgZsS+JfYpv7SeIBbPOcJPEAtrmfJC6zLQmQxPOQZJv7SbLNczHGXCFkARgA8fwZQBKX2eZZxDMJIcA2L5xBPF+SAEm2eX5s85xsA5IABCDEZcY8FyHE85AEYK6wLck2z0kSIMk2DyDJNpcJGXOFARCAEOLfQxL3s80D2AYkYYBA5kVjWxLPQ8iYfxshxP2EeAAh/iWSeL4EwrJlrjAPZBuwbVsSLxrbtnlOtnlOtrmfJNuY52Kb52Gb50cSz48kXjDbPCdjBGDMZUI8gJAxlxkL8fwIcYUwtg3YxlxhzHMRmBdOEg8giedhWxIgiedkmwewLYnnJARgrrAtiRdCvOiMAdvcTxL3kwRIMub5kcTzY5vnIYl/iW0us81ltnkW8fwZY8yzCUCIf4kk/q1sS+IFsC2JF8q2JF4Q83zZ5n5Cxph/O/NAkgBjLjPmBRFXSOKBzBW2uZ8xIIn72eZ+xoBtnpMxL4R5LrYBY0ASVwhjnh9jzHMwLwpj/oPY5jlJ4vkyz008m3km8Uzi+bLNA0iyzQtmmwcwxjyLEM+PbR5Akm3uJ4nnSwgZ8y+RxBXiCiHAmAeQZAzYNgYwz8U2z8lYiMuEjHkBjI0BxLNYNuZ+kmxzmW3E8zLmWYRtXjhjDADGPA9JkngBbPOcbPNCSeIBJEni3822bf6VbPO8xPMhEM9BXCHEA9jmeYkrbHOZbZ6HbcDYNuIKSba5zDb/GrYlSeIKg7nCNgawDQCSeOEE5grbvAC2eQBJtrmfMc8iEC8iSbwIbNvmWYRtLrMNABVAAJh/kW1JtrmfEM9DyDb3k8T9bAOSuJ9lzBXGAALAIDDPwSCMJXGZMc9DEoB5ISTZlgTYlsQLYJvLJPFC2QYkAZK4zDYvMkmAJMA2z49tHkAIARhjMJIAQBIGASAADIB4DkIIMAZkGQsBloWMuZ8kDCCEAGzzALYlAQjANgIDSAJsA8YYSYAkwDbPyTbPybYk29zPtiQAsA0AtiVxmSQus414NmNZCJAEYGzz/AhxP8uYK4S4nyTbAMI2IAmQZFsSIAnAAJK4nyReAEm2AcA2l0kCJPGC2ZbE/WwDkmwDloUQz8E8k3kgIYSxEIBBXGEbkARIsi2Jy2xL4vmxLYn72ZYE2JbEZbYl8QC2JdkGMAgEBrAtCbANSAJsc4UxRmCEjDHGXCYJMMYAshAYIQRgLAQIIZ6DQQDGPIBtnpMxRhLPwzYghABsS7LNZUKAMc8ihLhMCGEbsA1IwgCIZzPGXCGEANuI52Ak2eYBhBDPIssYQDyTARCyeE7GGEkI2zwn24AkQAhjG/GiM0YIAbYBwDYgCbAtSZJtDICwDUiyLQmQxAtiLGMQQphnErZtS7Iticts8ywCELLNZbYl2QYkARhjDOKBjIUQz2JbkiSekyTbknheAsAAtiUBtgFAEgaQxGVCxkJcYQAEBhCyDdiWhAEkAbZtA5J4XgZAyDLmMmNJPCchxBWSbFsWAiTZBjDPnwCDAFmAMYB5NiELAIy5nySeh7EQIMk2YJvLJPE8bPMC2OY52eYySYBtLpPEZZIA2zwP25K4nyTbtiVxP0k8gG3uJ8k2L4AkDOY5mCuEAARgm8uEAGOexVxhG5AESMIYcz/bkrjMNg9gWxIghABs8wC2JXGZbUAS97PNZZIASbxQtiVxP0mAbUASD2QAyzwn24AkwDbPSRIvhBACMA9kG5DEA9jmhbLNc5IEGPMAxgHCYF4421xmGwEYA8bGQjyAMS+IQACYZzLPzWAA2zyQuUIIAGxjANs8kMEAQkK8AJJsc5lt/iW2JfEAtnmhbPOfzJgrzBW2JXGFABDPJB7INg8gBABCxlxmLMTzEgDmWSTxfJnnJSTJmOdkmxfANg9gm8ts85wkYZ6LEOZZjDH/sSTxLzIAxhiQxAtlWxIASAIk8UIJ8fxI4vkREhIS4vkxxjyTeC6SAADzQJJ4AEk8gG1JACCJ+9nmBbPNFeKBJPGiMQYQz808B/HcBGDMAwljY/6jSQKE+BeZZ5EEIJ5NAIjnYszzErb5lwjxXASAeL6MeX4kIZ6D+A9nGxACEIAkLpPEv0QSBsBgAGMewDZgG7DNv5IQ/3Ek8UDGmMsk8S8xxjwHASAAY56TJF50xpj7SeJfwzYAGPMsAvMA4oUSQgDG/EuEeH4k8fxI4n6SuEySbV40kngBJHGZbcC2bR5AEi8a2zyAJMA2gMA8B4MR4gUzNsZgAMyzSJIEIDDPRRLPjySek20us22by2xzmSRJgCQukwRI4kUjicskcZltALDNAwlAiAewLUkSL4Bt2zyQeDZjG0D8VxDGQMUg/kWSbEviCiGLB5BlzL9EFsIYwEjiedhGCAGSAAxgDGAQshBX2JbEAxgDkrifbQADSAJsc5ltSdzPNiCJy2zznCTZBgBJPIAk2/wrSeJ+trlMEs+PbUn8axhjrhBC2AZsAwgAAWCEjLnMWIjnYhDGmCuEAGNAEs+XQQCSuMw2IARgnkUSz8M2IAmwDUiSZFsSYBuQBGAAxAPZ5jLbCElCXGYbEOIKY4wQsg0IWQaEAAxgWxIASOIKYxmDuEISIAkwti3EZUJcJgkAbPMCSLINSAIkAcaYK4SMeQBJ3E+SbR5AiPvZBiQhjAEhLrNtWwghZAwgnkWIyyQBQjwP27wAkmxLAmzzAJK4TJJtwDaAkCWEwCCexTaXCRlzmSQusw1IkmRbEvezDdgWsswVAgMI2eYySYAsY0DIMuYKSYBtwDYgiftJ4n6SbAO2AUmIKyQBtrlMEleI52aeSWAkAUIAwti2EGCMAIQAYwBhG5CEeF6SuJ9tLpPEZcYARggwBiQBGMQD2ZYE2LYtiSsMAoGxLIR4JvNAQgDigYQA24AkwDaXSbJtW5JtACGEsC0JsM1zEULGQggA8yzGkoSMMYAk2wBgmweQxAPY5jLbkgBJmGcSVxhjhBAABnGFJMA2z8m2JMC2bUASz2Ik2ZYE2OaBhBBg27YkHsCyEMI2AsAAkgAEIMm2JNvcTxKX2QYkGWMAIUASgLjCNkKIy4wBDCDEAxmEkDFCyBiDEELYFkIYC3GZkDFgG5CEeRZJGABxP2MAA2Cby4QQV0gCANuSANuSuMw2z8m2JC6zDUjiMts8gCTuJ4nLbHM/25IASYBtSVwmCbDN/WzzgkniMkkAxhjAAEIIwDYCkARgjAFjWQgAAQDGGEmAJJ6LARCAJMA2YBuQxGWSeH4k8QCSeE6SANuSAEASYJv7SeJ5CAG2eaFs8zwk8QC2AUk8J0k8gDHPwzb3kwTY5nnYlgRI4n62AduAJEASYJvLJHGZMRCIF8Q2DyCJF8C2Mc+XeCYDIAAMANhGPJO4QkiIF8IgnkUSV4hnEogXkSReANsAYJsXjSReAEm8yGzz/EjiMkk8P7YBY14QgwAASQDiCmNjwJgHsAxgnsk8F2Oel8EIYZ7FNgYjBGCEAGOei0EAgCTEFZIQACDJNg9kXgjbgBAvhACEAEk8kMEAGMTzJYR4FttcZhsDGAshAMQVtm3zgtnmeZlnEy+cJGMA8SIy5goBGAOYZxIPZJvnYv5FtgHbvGC2eSDzHMwzmRdOEv8SY8wzmRdIXGEsxAPYBowBSdxPEs+PJF4I8e9kzAsmiRfMNv8iARjzXMwLY/7L2AYAjDEgiRfEALJ4FvEskrjCXGFbEs+PbZ4fSbxgQgDiedm2zYvANveTZBuwzQMJwJjnJIn7CXGFeDbxTAYAJAGSJAEIALDN/YQAIQDx3MSzGAOAMWAbkIQAEELGAMY2D2AbMDbmfgJjHsA2iMskYR7IgAHMczKIKyRxP0kAIInnYZvLJHE/SdzPNg8giedhm8tsS5LE8yOJf4kkwDYvhHkmARjznIy5wiAAIe4nBGAAzHMTCEASAEgCJEkCJPEfyrZtLrMN2LbN8zDm30ESl0mSxAtlm38HSYAknockSTw/tnk2lGnJABYCsM1lkgDbXCaJ52QbkGSb+0kCMAiMMc9Jkm3uJwQgANs8ixDiAWzznCTxLAYwBoQAy5grJPGcbHM/SYBtQBJgm+dHEg9gm8skAba5nySexSCusM39JAG2uUySbe4nictsA5K4n20AIQTY5oWyLQRIAoy5nxBXCNu8EAaQBBjz/EgCbCMwAEaSMQYBCHGFASxjAMQVQjyLsM39hIy5TJJtwLYkQAgw5gUwFgIkAba5wkgCLGOukGQbsC0JEAJsAwhAEuYKY0AIYZv7SQJsA7YlSQJsc5kk24BtSZJ4ANs8gCTbgJAxz8O2JEASD2CbBzAWAgBJAAZAPJMx5gWQhAFsA4hnEQIQGARgGwBsSwIkAbZ5AEkAYBsAJNnmCoPAIAAhnkU8mzHGIISMASHAGAAkAbYlcZltwDYgiefHtiSeH0lcZhuwDUgCJNkGAEmAbS6ThDHmhZJkjAEkcYUx5n6SjDGALMs8iwEkIQDbQpaFbPMsQshYCGPMA0iyzf0kAcYYIcC2sSQhLjMGhLhCGGOegwEQgCTuZ5srDIAAACHAmOckyVgWz8mY+9kGJAGSbHOFQWAQV0gCjLmfEGCb52QbkAQIcZkxYFsSL4AkAGPMZZIA24CxEEKI+9kGbEsCJNnmfpJs8wCSuMw2gEEAkgDMswmMMc9Dkm0eQIgrBGCb50cSYJvnIQQYcz9JAGAbwCAAzDMJACEE2AZsS+IFk8T9bAO2JXGZJNs8i0GAJABsAzZgAAkQQghjzPMlyTZgWxLPQ5JtnpNtSYAkwDYPIMk2YFsSl0kCbEviMtsAIMk2z48kwDYPIAmwzWW2AUmAkDEPIMk2ANiWxGWSbPNcjCQewLIQgDHmOUnieRmEbS6TxPOwzf0kcT/bPBdjLAmQBNgGAAyAMAaEAEmAbS6TZBuwLQkAJPH82OZ+kgDbgCTANveTxP1scz9JgG2ehyTANpdJsi2J58c295MEYBDBswjANi+AbR7ANpfZ5gFs2wYwxjwP24gXwjaAsc2/mcC8EJK4TBL/JrZ5TpJ4vsSzSOIFsM0LZpvLbHOFeRFJQkgCjAFjHsAYg3hhBOKFs20bwDyLsRDiuQljDIB4FmME4gohXihJPIAQL4AQDyCJKwSAEAIwDySJF8Q8H0YSL5ixbe5nmxfANs/JNpcZC/E8JPG8DIB5NmPMv5VthDGAeD4MAgNIAgBJ3M82z8k2z8m2JK4Q/zIDYJ6LMc/JNmCbK8QVknh+jHnBbPOchDDPyzb3s434FwhjzAtnjHn+BGAMYJ7FNs+X+ZcZAAMYA4h/mXlu4oUxAOI5iH8bSVwmyTbPIgDEsxkMBsC8EJIQxoCxsTEvIvNcbAMABsA8L0k8D0m2eX5s8ywGsG3MswgA8SIyBhDPlzFXGMwLYswLIZ4/A9gGjHkW8bwk8TwkcZkk2zwXA8YABmzAICRACAEYzAtiWxIgicsk8QC2eX5sA7Zt85xsA4AkLpPEZZJ4HrYlcZkk7ieJF8A295MkicuMeQBJtrmfJC6TZJvnJQBj7ieLy4x5HrZ5LgbxQLb5NxDPIokXRABCQjw/trlMEvezbZsXTBL/0Wzb5gEk8a9DBUC8aGzz/EgCbPMAxhgA8VyEEJjnS5JtSVxmm8skAbZ5TrYRQoAQgHgutiXZ5gEkAba5TBLPjyT+Jba5TBIPYBshBNjmMkmAbdv8S2wDtiXZlsS/RAgAEADmCmMAsM39jAFJPIAkrjCAbQABIDCAkDH3kwTYBmxL4goBIAAMYBnACCGeRZJtLrONkAQY8wBC3E+I52TMsxjAWBIgicts2+aBBGCMASRxhcAI8SIQwiCukMT9bHOZJB7AtiTuJwmwDUjiOUkCbHOFASQZA7YlScIYA7a5QghxmSzLgCTbAOKZBIB5FiEAYdu2JACwLck2gAAk2QYwCMAyV5grJHE/2/xLbEsCJNkGMM9izLOY5yCeL1kIwDb3sy0EAJIAQBL3sw3IAjDPJABJtm1Lsi0JACQBQoBtQBJgG7ANSAJsSwJs2wYkcT9JAMaYy2xzmRCAMZYkyxgDGGOMJUmyjXgWIQDzQEK2ASEAI8kYsC3JNlcYAHGFbUnGgCSMMQIhBGAAY8yzSAIwAAJAPC9jSYAQ4rnYlsT9hIwxAAIDIABJGGNJgG3AWIhnEUJcZgzIwgAYY+5nWxIgybaQbQQgZGwbkATYBiQBQgjA2DaAAYwl2eYy20K8YJJs2wYkAZhnkcTzI8kYADAAYIx5JiFkG7ANSLINGGMASQDiudjmuQhAkm0AgwAkYa6wLQmwLYnLjIUQshAAYIxB2OYKI4nLZPFMBnGZbZ6TJMA24llsCyEQz2IbQDKAMQghxDMZwLYkXmS2uZ8kHkASz8O2JC6TZJv72QYk2eYySTyAbUmAbUASYBsAJAG2AcA2LwJJPCdJXGaby2wDkgBJAEbINoAAhLifbe4nifsZCwEI2zwn25Jscz9J3M8295PEcxEAAgMYSwJsIwBAEvezzXOSxP1scz/bPCdJXGabyyQBtgFJ3M8295MEALZtA5IA24BtQBIvmG1AEi+YMSbEc5DE82Obfw1jrhAvCmMeQBKX2eZfJF4I21xmm+dk2zb/VpJ4HrZ5Lua52LbNA9jm+bEN2OZ+tiVxP9u2eU7GPC9zhTEgxLOIZzIAYJsHEgjbPIAxL5QkrhAYzDMZDGAsxAting/xbOa5GPNAAhAy5oUzAObZBIABbAMA4rmJ5yD+VSTxALb5l0jiCmFsDBhL4jJjzHMwxlxmWYjLJPEvErZ50YlnMph/G0k8gG0eyDw38SxCvCACY8xzMhbiAWzzXMSzCQDxLLYB25J4AGOeH0nczzb3k8RzMc+XMYB4voz51zDmORlzP2OeRTwX2zyLeFGZf5EknsU8F0k8XwJAPIttQIgHMs/BPDeBQCAeSBLPSRLPSRL3k8SzGADzfAgEIIl/FfOvJcTzMoAkQBLi2cyziRedbR5ACPNMRhL3s80DCCGelyQAI4nnQwBgzPNjG8A8ixAPIGTM/QQA4vmSxPOQZJsHsM3zsM2/RBIASLLNC2Wb52TbNpfZts2LzDbPRTwHA2AA29xPEmAbsG2bK8TzJQmQJIl/Ddv8axjzLAJAAEI8J0k8P7Z5ANu2eRHY5l/PNs+PJEmAJP69qMaYf5EkLrPNZZIASYBtni8BSMI8kwAwCMuYK4R4AElcZpv72ZbE85CFMOZ+QtxPkm1J3M82IIl/Dds8D0m2AduAJMA295PEC2abF8w2l0ni+ZFkm+dLPIsxDyCEeG4CwDyLbYQkAANIAmxLwjyLJJ6TJMC2JC4z5jnZlmQsiftJss0LZQwgMAAGQDwXIcAyRoj72QYwxlwmCbANYBDGmAcyBjBCCIyxkG1JgDHm2QxCyDaX2ZYkCcA8k7jCNpfZlsT9JHGZbdtcIYQwljHGAAKwDRhjhADEs1gWQggBGISxba4QQsYYBCDEZZK4nyTuJ4nLJAG2jSVhANuAJACwzWWSuMw2l0niMttcJgmwzbMIDOKZjLEkIWOuEEK2AWOEEIABLGMQgCTbAAYsCWGbK4wxAAgBxkIIwFjINiBkzP0kcZltwLYkABAylsRzss0DSOJ+xhhJCNu2AUkAAgNgEELGAAIQ4jJJGGPb3E8Sl9nmMiGeRWCMEZIwAAIQQhhjAEm2eSABYBDPZowlSeIyYwxCkjHmhbAtCYP4F4hnsYyRhDGWxP1sI56LbUmAEC+AEMI2YBvAICRhbAOSuJ8kQAiwjcAAtgFJgBCAETIGJAGAMSAEALYl2QZsS7ItZBsBIJ7FNpdJ4lkMYBtxhW1AEmBbkiTbQrYBSZIA2wAGYRuQxP2EEM+fAYSMhQAMIISwbVuSbUAIsI2QZIwBJAG2AUk8gG0A8WwGcT+DANsABmGbZxFCxggAY1sSlwkBiCtsA5J4AWxzmW1AEs9JEs9JEi8a25K4n20eQBJgmxeNJMA2z8k295OEATCAZSEAARhjAAziCkkABgEgAAzigSQBtiVxmSTANleIfxXbgCSeHyFjnsU8iyQewDaXSeJ+tiVxmW1JPA/b3E8SL5gkwDYgiedkWxIPYFsS95PEC2AbkATY5vmxLUkICP4NhCRAEs/JNpdJ4jJJXGbMswgA84LY5vmxLYnnIl5EkgBJ3E8S/w62JQGSJPGvJEkSDyCJF0qSbS6zDQC2AcA2z2JeCCEhXjjzTOKBbAvxIrAN2AZs2+Z52OYBJPGC2eYK8xzM8yWEwAC2bQMYQAiQxL9IYK4wFkJgrrANYAAM5pmMbQCwzQOJZzJXCPGiMwACQFxhzAMIIRDPwTwXYx7IIB7IthD/Sra5nyQus82/n8A8k3huArDNsxgA82ziuYnLzAMY8wDGgDFgDNgWAgBJPJCxDdjmgcSLwjbPyZj7SQIQzyYAY+4nxBUG828mBCCexZjnJIkXwJgrxAtj/mMJARhJAELImPtJ4t9G2Ob5MQYQz5cxz0kSDyBkzL/ENg8gyRiBATAvjHm+JHE/21xmmxfANgDYBmwL8QBCPJAAjAEEgACMAUAS97NtG8AYY57FmOdLPAeDeABxhXgmc4VtBGAMYJ7FNlcYAPOisM1ltvlPIIkXmSTANv9KkngW80CyeEGMEM8iXhiD+Q9km8tscz9JPF/mX0sSL5gkQJIk/h1sc5ltSTyAbe5nm+ckiReBbS6zDQBqrUnifrYBSYAknpNtnkVgAEm2AduSuJ8kwDaAEAJsc5mQMQ8gyTb3k8T9bHM/SbYBQBL3s839JHE/29xPEmCb+0niMtvcT5JtHkCSbV4oSbYB24AkQBIvmG3+JZK4zDYvMkkYBGCb50sIcZltQBJgm/tJ4n62AWMhIWOehxDCNmBbEi+YbUmAJMA2lwkBxgACc4WQMc/DNgBIAoQAYyEewJj7CRnzXMwVxoAk7mcbkMT9bAOSeBHYlgRIAjAABmHM/WwDkgBJgDGAAWwjhLhMkm3AthBgDCCEMAghBGCb+0myDQgZc5ltSTyLMZYESOIFsM1lkmzzAkgCbHM/SVxmmxdAEmCbKwRGiMssY55FCAHY5jLbkngWg5BkjAGQAGwAG0kSVxhjrjBXGAtxmbEkIQAwBhBCgG0AsC0JkGSb5yEJYxtA2AYk8TyEjAFACAHY5rkYSQACsC1kDADGQoAkHsAYAwgZY55JAEKAMVcYAAFI4jLbXCaJBzDGPIskwDaAQTyLbS6TBGAAxBVCAAJjDNgGJAGSbAsBAMYY8RwM4nlJ4n62eR6SeADbgLEQz8lYSJJtDAIQAowBY1lcIQAERgiwDSAQQjwn29zPNiAJAIwxkrhMEmDbtiSek20AIQRgEM+fARCSbPMvEUIYYwBAEsaY+0nCGPOcbAOSeB7GsrjMWBKXCQEI28ZCPCdJPBcD2AaMJQEIzPNnAEmAZUAW4gWxDdjmfpK4n21AEiCJ+9mWxGW2uUySbZ4fSYBt7icJsA0AkgDbPIAk7mdbEg9gm+dHCLANIAAE5nkJYRBXGANCCGMh7mcbQABC3M82IMk2AEjifra5nySek23uJwkAbHM/SbZ5fiTZ5jLbgCRAEmCbf4kkwDZgWxIASLINSOIy25J4ANvczzYgiX+JJB7ANpdJ4n62Ads8J0kAgAhJPIAkSbwozBW2uUyIBzA25grzXIyFeADbkviX2OYFs81zksQV4pnEc7HNA9gGANsAYFsSz8k2D2BbEiCJF40kXihJ/JsJDCDEczEAxjb/WgYw5n5CPIuwDdjmXyKJ58eYZzHPYiyJZxFXSAIk8QBCPJBA/AsEYAxI4n7GkiRxP2OEJF40kni+zPOyzbMYDGBbkhD3sy0ECHGZEEIIQADGPA/bXGYsxGWSeBYDSOK5mAeyzf1s8/zY5j+KAYy5TIgHMAZscz9JPIu5whhzP2MD2DwPIa4Qz8WYBzLPZJ6LJF4I8WwCkMSLyDx/4oUQ4gFsc4V5IYx5ACHEC2ebK8xzsc3zIwmQxLOI5yAwzyKJZzFCPJB4DgbxHAwGsM2/nhAPIInnZQBjYwAQ4rkYwNgY8UwGAIx5fiTxQEYS97NtG5Bkm+ckCRDiCvHcBAJAvOiEuMI8m3kgSZgHkgTY5vmRBADG3M82z8s8F0m8IMJYEs8inj8hiQcS/waSAEmSeB6SeBHYtg3Yts39JPGcbNvmBZPE82ObB5CEABDPZp6XEIAAAGMMYAwIYTAYDIAAMM/LNs/Jtm3uJ4nnxzYPYJsHsC2J5yHJNgDYliQJkMRzksRltnkASTyAJC6TZJvLbHOZJF4A25Ik8a9km+dHEiBJEgBIksSzGGUmAsBcIYnLbHM/SdzPNmAbkAQIcT9jXgBJtrmfJMA295NkmxdMkm3+JZIA2zw/QsZcJgmwDdgGJPEAtiVxmSQAsM0LIMk2/1a2AUmAJNs8gG1AEi+AJMA2z0VgANtcIYQASYAxRhLPyTYgCbDNc7ItxBXihZDE87ANAEII2wDmWSwLcZmxECAJwAAI29xPEsZYCGEbg7hCCEDYBiTZBjCIZzLGkgBJtgHbkrifbUASIMk2l0kCbEsCAMwzCcA2DyAEGGOMJfEAkgDbXGZbEvezLcSzCCHbCECSbWMhSVxhAIRtwLaQJAAB2OYKIwlAYIyFEIBtLpNkm+dHEmCb+0niOdnmRSDJNpfZlgRIMsY8m0E8kBDCNgDYlsQLYFsSIAkAbAOSANu2AUk8JyHANmAsCQCEEA9km8tsSwIkAbYBIQBh2zYgifsJAbYRz2QQAEIIYyyEwNhGXCGJKwxgzGWSANvcz7YQgLhCyDaAQAjZBoQAxBW2AUk8J9s8gCTANoABJNkGEJJsc5kkDGAMIISMMQBGEsI2VwhZGABhG0A8kzGWxHMSMuZ+QoAxYJv7SeJ5SOJ52MYgACHANgJACAEYAGMMGAOSAIQs7mfMZUKWASHuZ5vnIck2z8m2JAyAEDLmMiHAGGMsCSGEQQCYZxPPZBAABkA8izEGwCAAIcAYQGAAjCQAAdgGbAOSAEkAYJsrDOJ5SQJscz9JPCfb3E8SYJv7ScIAxgAGAUgCMIAxIAmwzQsgyTZgWxIPIAmwzf0k2ebfQRKX2eaFksRzss0DSLINYAAEIMk2IMk2z8m2JC6TZBtAyAJsA4grhACEMc9inosknpNtLrMtCZBkm8skAbZ5wWxL4jJJgG3uJ8k2l9mWBACSbHOZJO5nG7ANSAIk2eZ5SAJs8wCSbPMAkmwDtiXxALYBSTwnSTwn29xPkm3uJ8k2LxABYDDPYpsXgSRJgCQEYGwM2MYAQgDmCts8gLFt7ifJNi+UbUn8+1jmOUkCJEniOUmyzWW2+ZfYlsS/lSRJXGabB7ANSOIFs22b52WegxDigcyLThLiOYh/Lds8i3g2gQCMMYAkAHOFbZ7FSOI5CSFeEGMusy2J5yIk8Zwk2eYyY0CI52HbNmCb52JeGPH8mWeRZJvnx5grBCBkzAtiJHGFeBbbPIsAEFcI8TxsS+I/mW1JXCaJy4wxz4d4INvcTxIvmCSeH9vcTxLPw9iY+xnz/NjmfpK4n22eH0k8J2OeL/P8mReFJAAw5vkSVwjZ5vkSiGczL4htnkUAiOdPPJsBMAAGMOb5EgDiuUjiX2JszGWSeOEMgHm+JCEAxPNlzP0k8bwEAAjxbyIJsC0JQACY52KMMQYAzAtknptAPAcDYK6QhHg280JIksQD2OYKg3i+bNvmfpJ4IcRzkYQBjHkAIf71bAO2JfFCSbLNv4MkLrPNCyWJf4ltrhAIQJJtLrPN85DEZZJs8ywCQCBsA4BlxLMIYQAhIUm8yGzzryGJ+9m2zf0k2eYy25K4TJJtXjBJkgBJtnkA27YB27Z5TrZ5Tra5TBLPSZIk/pVs8wC2JfEAkoR4JqptSTwn24Ak7meb+0niMtuAbUCIy2xL4n5CxhgEIMT9bPMAtnnRSLIN2JYE2JYESOI52ZbEA5kHsg1I4nnYBiTZlsTzkMRltnkASbZ5EdjmMkmAJO5nmweQxAtgG5DE82ObB5DEZZIA24AkwDb3k8T9bAOSuMw2AEgyFuIFkATYts39JPGcbAtJAmwDxoAkwDYgybYkAAPYRmCezQDGmCuMMUIAAsA8i20hy5hnEkIIAJBkm8tsSxICEEJcJgQgbPP8GAOYK2xLAhAABpAESOJ+xkIIIduAJAyAkGSMASQBCFnGAAYQ4jJjDCDLMgaQBCAA24BtSZK4zBgDCBljJPGcJPE8bAOSuJ9tSbxgkrifbcA2IAmQxAPYBjDGQgBCCIMAMLYBBCCJK8wzCQwGgTDGAMaY52AASYAkwDYghLANGCOEeE62uZ9tSZIA25J4IAHYBiRxhcAIGQOIK4wBDCDJNkIIwACSbPNA5pkMArAtifsJIWwDQgDCNiDE/WxLMkYAsoyFEM8mMA8kifvZFpIEIGQhns0gbCMkYa6wDdgGJAG2JdlGPJMAEBiEsRAGEELYxiAkARhJgG3uJ8k2IInnYRuQZFkIAWAsY4QQxra5TIgHMsZcIYyFAEkABkBcIcT9hDDPYiyJy2xzP9tcJgkAJAGSMAjMA9kGEIAsnkVcYQwACFkYBIBB2OZ+QjyLEAJsA0JcZlsSgLjCGCMJsM3zZRBCAOJZbHM/SYCxbZ6TJMC2JAyAEAIQVxhjjIUQQoAx5gohAMAAgG2ekyQuk8RlkrifbR7ANs/DNiBJkm3uJ4nnYZsHsA1IAiTxALZ5AEncz7YkLpPEA9jmAYR4FnGFbcRzMJYlYQBJAIAxFpKEMQaEEAAgCbDN/SRxP9uSeB62JfE8bAOSAEm2eQBJPCfbkrhMEs/JNiCJ5ySJ5yGJB5AE2OY52QYkAZJsA5J4Hra5nyTANveTZFsS97MN2AYkAYAk7mebZyN4TrZ50djmAYwBjCQuEzI2RiAABOI5GMy/gSRAEgBI4gWQxAtmm8ts8zwkAYAknh/btm3zIpPEA0gCJPGvJ0kSIEmSbUASz0mSJC6TxL+PbR5AiMsk8Txs86IxBmwDtgFJPCdJ/GsYA4Ax4vkyFkI8izEPIAmQJInnZZ7JIF4UknggAdjmuRgExjbPIp5FCJAEIGwbA8ZcZhuwjbnCmAcSL4x5LrYl8e9jm+dhm+ckiRdEXCHE/YwBzLOJ5088N/Miss2zmGcR4oHEA9nmfrYB2zwv8RwMYCzEAwjxXMxzE8+feBbbPCdJPIt5vmwDmH87cYUxz8sAmOdLEpdJsg1gMM9LCEAAxjwXA2AeSJJtXjBJAIB5FssA4l9gAAwGAQjxLOYFEpjnyzbPj23bPC/x3AQgBACSeEHEs4l/kTGXGXOZJC4T4grzQLZ5XkIIQPwLzPMy5grz3AxgzLOIZxKYZzLPJgBAEs+PJC6TxPNjm+ckCbAtSRLPw7ZtHsA2z0mSJEASD2CbF0wSz49tHkg8L9sAxjYPZGwjnpcxgPhXsS2Jfz3bgG3+JZJ4TpJ4fiRxP9u2JfEikwQAkiQBkmxzmW3+9STxPCTx/NjmCoMB1FpKPJBtSYAk24Ak2zyLELIN2AaEEEK2EUIIY8yzSMIYIzCAEGAMGGMkAZJ4wWxzmSTANiCJ52Gb+0kCbHM/SYBt7ifJNs9JEmCbF4Eknh/bPIAkALDN/SQBtrmfJJ6TbZ6HJNvcTxLPyTbPSRJgG5DEZba5zLYkQBIA2AYkAba5nySek23ANiCJB7AtCZDE/WzzXAyAeBbbkoQQz2QAYy6zLQkQAmwDxpJ4AEkABmGb+0nCGGMsCwFCgDEPIAljDEgCbANCgDHPSRJgm/sJIa6wzQsmhLAN2JYkBBgLIWxzmSTANmAsxPNlrjCWxP0k2eZ+kgDbgLEQz0kSD2Cb+0nifra5nyTbXCaJB7DNCyXJNs8ihDDPYox5JiHEswhjzHMRAgBjrjCIZzIISRjbCEmAba4wkgBj7ieJ52Sby2xL4nlIAgDbgCQusw3YFkJI4gFsc5ltLpMkCbDN/SQBtiXZBgBJgG0AkMQD2Ob5ETIGbAOSuEwIMOY5CQHGAAIjCbCNQSCEANtcJmQMGAtxmSTANmAbkCQJwBhzP0mYK4wBSYBt25IAIcCY+wkZS8IAxoBtSZIA24AkwDZgWxIgCWMMSAKMMQ8kBBgLAYBtxBWSAGMMIMsyz0UI2cY8kwAQmCtsA0IIjLEkQJJtnkUIAbYB24AkhCzAmPtJAmxzPyEA8Sy2uZ8QYAwgMIBtIYQQArDNswgh7meb5yEJwBgDkgDAWBbPyRjAPJN4DgZAPJNBPIttSVwmCWMMYAAEIIn72eYBbEsCJHE/24AkwDZgWxJgWxIgCbDN/STZlgTYti0JkATY5n62AUmAJMA295Nkm8tsA5IASTyAbS6TxP1scz9JgG3uJ8k2YCwESAJscz9J3M82z0kSz49t7icJsM39JHE/27xgtiVxP9uSAEmAbZ6HJC6zzfMjyTYgyTbPQxLPj21J3M8295ME2Ob5kQTY5n6SANvcTxLPwzYPIAmwzf2MASEgxHOTBEiyzWW2Ec9mbEsCJElCAMYIwNg25tkE5pnMAwkBQpJsA7Zt8wC2eR62bQOAbf5z2LbNCyCJy2zzL7HNZbYB27zIbNsGbNvmAWxL4t/HNpfZ5n62eR6SeBFI4jlJ4nlI4oEMgHgW2zyLeb4k8bzE82Vsm+chhMBcYWzMZbYBAGOM+dcRz8H8m9nGGPNCSeJZxDMJIZ6HbUncz7ZtwDbmednmv4oknov5F4jnYP5l5vky5vkS/wLzQJIAQIgHsA0AkiTxnCTxH802/0pCxoAxIIl/FfOiMOYyIe5nm/tJ4lnMA0nCPBfbvCgEBjAGjLmfbe5nG7ANAJIABALxTOaBhLifMVeIZ7ENYF4Y83wIzLNIAhAA4lls84JJ4lnEv4J5LpJ4IPNsQojLbPNA5l9kjHleQtzPmAcSAOIKIa4QAOZ52ZbEFQLzbALxLxPGgG1eMEk8P5K4n21eNJIk8QLY5jLbkiQBkngA2/zr2QYwmBedbf4dJPEAkngBbEviASTxL7HNCybJNpfZ5jLbPIBtnh9J/BeyzQNI4nkICQFAFeIK8UC2eQAhhG3uZ1uSbf4lQhhjQAhAPJCQbS6zLYnLbAOAJF4EtgFACPGvZZt/DUncTxKX2eY5SeIySbYlAbZ5AEk8D9uAJB5AEvezLYkXyrYknpNtQBJgmweQxAPYBiQBtnl+bAOSuJ8kQJJtLpPEZbZtA5IwgJAxYFtIEmDMFUKI52QZEOK5GACBEQKEAGOek21JkgBjBOYKYyEMgAAQVxgDCMC2kCQA80wGMJbE/YQQGGPbCCHuZ1uSkLFtQBKAeBZJgDHiWSQBtm1L4jIhwLYkAIN5FmMAYSzE/WwDgCTbXCYJsA1I4jLbkgDbXCaJ+9kGAEk8gG3uZ1sSYBuQBNjmBbDNZbYlcYW4wliWMYC4wjJGkm3ANiCJ52TMFUIIwAAIwDaAeBZJ3M8YkIUAbNvmgYwk24AQAFgWss1zss39JEkCMAhj29xPkiTbgCTMFbYl8Twk8VyMkDEPYBuQBNjmMklcYQCMJEASD2RsA0KAJJ6LAIyFEAAGcYVtISQBArDN/WxLAmxzmW0AIwmwbJvLZBkDCMA2IIkrBICxLQkBCAG2AQRGCLAN2JZkzBVCCLANSBLCIB5IEmAbISSLK4SQbe5nmyuMMQ9kAIRtAGFbCMA8i5CxJACBkcT9bAOAJAwCkATYlgRgEAjMcxOYZzEW4jJjSYCxbUASBsAgnsUYgbnCthDiWWxzhcAAtgFJGAAQAowxAEKIy4SMMYgrJBlzmW2EJNuIZxOAbUASl0kCjGVJMgaMhQDANveTBNgGhGwbS7LNZZK4zDbPIjCSuJ9tXjBJPCfbkgBJ/Etscz9JtgFJgG2ek20uk8T9jDHPy1gS97MNSAIA24AkHsC2JC6zzQtlm8skAbZ5EdiWxGWS+LeyDUgCJPH8SLINAJJ4Tra5nyReMEmAbcA2IAmwLYkHsA1I4jLbtrmfJJ6TJNuAJB5AEmAbCJ4f2zwXg3kutgHbXCaJy4Qk8UKYZ7FtG7AtSRIgyTb/EknczzYPZBD/Ikn8a0jifrZt8wC2eR62JQGAJO5n2zYA2OZfTxL/Ekn8F5LEZZJ4HrZ5FvNcJCGeixAvMmOuEBghwJh/kQFsA0IA4lmEACFJPIAxAFjmCgFI4nkY8yKQxLOYF5FtIQBzhW0ewNiYy4SEeH5sS+IBJCGusA0AtnmhbEviBbDN/WzzgtnmfpJ4fowBxBW2MYBtBABI4gGMjXm+BGDMCyUkhHhRGHM/2/w72LbNswgAA9iWxIvAmH89SbxgQgDiRWPMs4lnsc1zEA9gzHMxz2IZQFwhiftJ4gUwBhCAJC6TxLOYK4R4XuJ52QYwz8U2z5d4buK5SAIwLwpJPCdJPBeDATAPJIkrzAMJAQhAFleYK4y5QlwhiSvMMxkhLhPiuRjANs8ink1gnsk8m3gm84IYI54vSVwmhMEIAba5wlxhmwcytrmfkJAxz8k2l9nmCnGFkG1eMEncz7ZtLrMN2OZfIon72eZ+tnkASbZ5vsxzEAhAEpdJsg0AtnkR2OYFsM1zsm2bF8A2l0kCJPEfQZIkLrNtWxKXSZIEAJL4d7NtGwAkSeJ+tnkBbPNCSbINALYl8XxQjbnCXCGJB5AEYIyFAMsYDAKQxGW2JQG2MZIwgG1AEmAZI8Rzsi2JyyTxAtiWxGW2bQOAJNsABkA8F2PMA9nmMkm2eQBJgG0uk8Rltm1L4jLb3E8SYJsHsC2JB5BkG7DNZbYlcT9JgG2ekySek23uZxuwLcm2JMA2z0MSIInnRxL3s839bHM/24Ak7icJsM1lkgDbgCTAtm1JPA9jzDMJwBgQAhDPZB5IiPvZ5n6SAFkAwjYAIJ6LJJ7FXCGJ+wkhrjAGjDGSbAO2JdmWJISQBSAABGAbACRxhXgukjDGgCRAEmAsCfNMAsBcYZv72ZYECFnGGEvCPBdjQAiQBNgGMMaSANuSAABjjDGWJIkXwlxhWxIgyTZgW5Ik27Yl2eYBJAEYxBW2bXOZJEk8XwZAAJIA2zyLASQBkrifMQaDkAQYYyQBxgAGIQmwDUjifsYYQJJtwDb3kwQYA7aFEM9FEmBbEg9kAATCGAPYBiRJss39hBC2uZ8k21xmGwAkcYWxDRhL4n6SANs8gG3uJwmwDQC2uUwSIAlzhTGAkYQAMIAky7IMgDAGkARIBmEDtiVJAsA2V0iybSwJAdgGjCVxmWUhQJJtSYBt24AknsUgbAOWhQAhBIABJAGAJAwCsM1ltnkAIQRgG7AtyTZCiOckyTaXSbKNACRxhUHYNpYkCYPAPJOwbRsBIAAhHkCSbS6zzbMIIQQGYxkjCbBtm+clANtcJolnMQiMEAAYA4BtLpMEIIQAY2NAiMtscz9JAIBBPAeDABC2ASEAYRsjyZjLbEsCMELGXCYJsC0JQMjCWAaEEBiMsSQewLYkwJj7CVnGYIwlAYBtALAtCcBIQjyTAWwDkgBJgG1eAEnczzYgyTYPIAmwDUjiOdnmASTZBmxL4goDGPMAkjDGPIBtwLYk/q1sSwIkAbYBQBL3s80DSOI5SQJs8yKTxP1s84LZlgTYBiTZ5l/DNiCJ+9nmOUkCbHM/SYBtnh/bgCTuJ4nnx7YkLrPNMxE8D9s8P0I8kHhetm1zmW0EgEA8kwEQz0US97Ntm+dHEpfZ5gFsc4VAAAjMs5kXxLYkHsA2z8M2l9nmMkm8UJJ4TrYlAZIkAZJ4AWzzgkniAWxzP9u8yCTxPGzzAkiSxAtm2zYA2OZ+toV4XgIwts1/CAEYIwAEgDC2DWCeyWCEeB7GXGbMA9jmfrYB21xmmeckCQBsS+I5SeIKIcRzksUDmefLtiQA8UzimcSzCHE/21xmG8AAkrifbQBjjAEk8S8Sz8U2YJsXkbjCNv8S2zw/kvj3EcK8iGwjHkgSz0VcIcS/iSSeH2MAcYVt27xgxoAxABjzIrPN8zBGAAjE82GezZgrxHMTNoDNcxAPIIn7GQPGPJC5wjYvlCTbgDHGGDDmeQkMgPkX2eZ+xgDmP4YAEMY8i8AAmOdgEIAkwJgHMs8knkm8EEIYzAsjrjDmMttcJgkAhHggY8wLJoTBPBch21xmWxIgCbDNZbYlAYCQMfezbZv7CQGIZxIAwlgSl0niMklcJokXyjaX2ZbEsxjMs9iWJAmQxAsmiReZbR5AEpfZ5gEk2eZ5CWMeSGD+DSQBkrifJACQBNiWxHOSJIkHkMT9JPH82ObfydjmAWxzmW3bXGab/0KS+HezzXNDraXEFbYlAZK4n22uEEKAMeZZJNnm+ZEEGAOyuJ9lzLNIAgDbPD+SbHOZJMA2YBuQxHMRmBfONiAJkATY5vmRBNjmfpJsA5K4zLYkHsA2L4Ak29xPEmBbkm2eH0nczzaXSbIN2JbEC2VbEs+PJMA2L4BtQBLPSRL3sw3YlsRltiVxhUFIss1lkgDbgG1JAAYBSMI2D2AQAALAPC8h7mfM/SQBtgHbQgghYwCDkATYBjAISRhjLrMtiQewLYn7SeJ+tvlXMYAkrhBX2AZsS+L5sS0JkAQYY55FEmCMeb5sC0kCjAEMAhAyxiAASTw/tgFJgG3AtiReANuAJEASYBtAAEKAbf4lQohnsc2zCCHMMwnANlcIWQBgzGWSAIwxBpAEIJ7FNpcJGfM8bEsCJAHGmCsk2eYySTyLARDPZIwBSbaFAMAYg5DEZbZtS+J+kgDbtiXxAEII2wDGWBIgZMxlkmwDgJAxYFsIIWRsWxLPSZJtAGMsCRACELYxCEAIABC2sZEkGbABgW0kLpME2LYtSZJtDAKBAWwDkrjCGAOSAEm2uZ8k2zwX82wCIcs2AkAIYQBjQBJgG7AticuEAGPMs4lnETLm+ZEEYABjnsUYSwIQgBBgjAGMMZIAQAgwBiRhjAEMYAxIAiQBmGcTgG3AthDimQxCyJhnEUKY52Ib8bwkcT/bPCfb3E8SQpZtBIDAXCEEGHM/Sba5zBiDEOIyIcAYsC2EACTZBhCyeBYB2OZ+QjyQMMYAQgjANmAbkMT9bAshACHuZxnzQJJs8wC2AUmAJNuAJMA2z8M2IInnJAmwDdgGJAGSANuAbUASIMk2DyAJsA1gAMQLIQmwzQsgictscz9JgG3uJ4n72eYFkwTY5n6SANu8YJIwAMI2YCzEc7ItiX+JJMA2IIn72eZ+krjMNg8gifvZ5nlI4jLbPD+SbAOAJO5nmweQZBuwjQiJZ5HEC2GeyTyQbUn8q5gHss0LZZvnRxLPyTaAeeFsA5J4wWzzAtgGANtcJonnxzb3s81ltiXxnCTxr2RbEi+UJP4ltm3zPCRxP0mAJC6zzb+KAGzzwon7mQcyz2b+dQSAeS7GCABxhW0A83xJwgCIKyTxr2IwL5B4NvO8hHgekmxzPyEewDaAef4MgACMAcyzGAshAMR/IEmAJB7IYK6QxL9IvEDmCmOuMM9mEM/NYJ5NvBDGQtxPEpdJss39hLifMS+IeF62eREYcz/bvBDmWYR4HrZ5HpK4QlxhmwcQss39JPF8mRfGBgADEpcJsHlu4jlJ4gGMuZ8k2/yLxAMJGQMYAPNcbHM/STyQeA7i38VcYQxgMM9kANsYSTwvgXk2AQjxXMSzGQwACPE8jHkgAyCuMAYwiOclhME8FyFeAGOexTyTMTbmfpJscz8hQIj7GRsDgCQuE7LNFeaFM+a5mGczGAQgSRJXCEASAhDiWQTmgSTZ5jlJ4n62uZ9tnodtLrPNA0jiASRJ4oEEIIn72eYBJPFAAvHvZJvnYds2L4AkHkAS/yEE4lmEuEySJACQBEjiP4ht/pVs80LZ5jnZts1zsi0JkCSkTEu8ELa5nyTANmCMkcRlkrjMNs9JEmCbyyTZBmwDkvjXkwTY5nnY5jJJgCTuZxuwLYnLJAG2AUmAbcC2JC6TxHOyzf0kAba5nyTbPA/bgCRAEvezLYnLbPP8SOJ+tnl+JAG2AduSJAG2AduSANuSeH5sA5IASYBt7icJsM39JHE/2zwPYyGMJMCYF4mEDdgAEpfZlsT9bAOSAEkY29xPkjH3EzLGGAOSeMGEjAHEMxkhnouwDdiWJMQVwjb3EzK2jRAyxjwXSYAk2xgEIMk295PEczLGXCFkDEgCbPMAtiVJAjCAMQYBIDBXCNk2loQAMM8iictsc5kk7mcbAGxL4gEk2eb5kQRgELa5nyQusw3Y5n6SuEwIYRuwDUjifkLczxiDACQBtgEMQgiwDSAAScaYKyTZBmwLCSEQgG1Jtnl+JAG2+ZdI4oHM8yEA21xhnk1cYRuQBEjCGPMs5rkYS5IE2AZkIRCYZzEGbEsCJGEA2whACEAYYxBCtgEMQggZBNjmMkm2AQBJgDHGRpJkm/sJ8SwCsM0VAgPYBiTxAEKAsSTANvcTAjCWeQBjIQCQBNjmfpJ4TsaALB5I2AYwVxgLITDGkgBJAAawjTAW4nlIAmwDxkKAJO5nWxKAAYwBIcCY+0myzbMYxLPIQhhjjIUQgCTAtm1JAAKQBdgGEM8kACEMYAwgACHuZxuwLYkXyrYkLpNkm/sZCwkZc5kk2wCAEAIwz2LMFUKWMc9Jkm0A8yySAGMAAyAASYBt7ifJNs8ihDAAwjb3k2Sby2wDkiTZ5oWSZJsXTBKX2ZbEc7INAJJs80AGAUiyzfOQZBuQxGW2uZ8k21xmG5DEc5JkG5Bkm/tJ4n62JdnmASTxPGxLss39JAG2AduSANuSAEmAbUAIMOYySYBtQBL3sw1I4jLbPCdJ3M82IInnZJvnJAmwzWWSbPP8SAJscz9J3M8295ME2Ob5kQTYBoJ/PUmAkCTuZ5sXjW0ukySJ/2iSAEk8gG3bXCaJf4kk/q1s8/xIksTzkMTzI4kXgW3uZxuwDQC2bfOcJPECSJJkm8tscz9JgG3uJ4nLbPMCCAGIZxIvGiOeSeJ+kjDPZABJAOL5MA9kDCCuMAaEMBgA8SzGXGEADGDMAxjbBoyFeCCDeBZjLhMChHhOkgCEMQ9gWxLPj21AiPsZc5ltnpNtnocQ4goh7meMeCaD+TeQxHOyLYkXQrxwkni+jCQAkMQLIZ7NAJgrjI0BxBXGmGexzQtmm/80xjyQeTbxfEniOQnxL7ENYF4ISTwX8dwMgDHmCvGczAtiXghj/iWSJPE8jAHbPCdjwDKAeRYh7mfbmAewzQOZf4EAjAEEgHj+BCDE85DEFQIQ4rkYIcxzMeYBJNnmBTGWucyyEJdJ4n6SbAOYF8hgnoN4buYKSbwQApAEAJJs80AGMOZFJJ5FyBjzXGwjAASAQDwH8bxsc5ltHshgnskAGAxgm/tJksQLYJvnJIkXzLZtQBIvmG1JXCYJMOYy2zwPSba5n23b3E+Sbe4nSRIgiftJss1ltiXx/EjiedjmeUjiBZPEZZIAxAtnm8tsc5ltLrPNfwTbPD+2eZHZts2/km3bAFC5n42EbR5AEs/JNi+AbUlcZhuQxPMjifvZBmwDkvjXkMT9bEuyDUgCJPH8SLLNA0gCbAOSeE62AUmAbUASLxpJgG3uJwmwLYnLbPMCSOIy29xPEmAbsC2Jy2xzmSSehyQuk8TzsC3JNiAJsM0D2OY52eYySbYl8QC2eQBjQBbCNoAxlgRIsm0bkATYAJYEgCQMgACMEUKAJGPb3M9YyJjLbEsCEBhJAAYwFkIAxlwmyTbPYp5NYAAMgHg2YwwgACHLGEm2AUk8D0ncT5YxgLANSAIkcZltrhBCGIQkAGOMQVwhyTZgG5DE/SwDmGexLYnLbHOZbUkAYFsS97PNc7INSOIBbNvmMkm2JQG2bXOZJJ6HbUncTxJgm/sZC3E/24AkQJJt20KIZxFCAMa2ASEAARgDCEASYBuwDUgCEBhJGMuAEM9iEJJs2wYkAbYBSVxmG7AtCUBgnskY81yEEGAMYABZiGcSVxgDxpIAIcA2IITAAMaAJGMMIATY5n7GQjyQADDPQQBCvACyAGMAcZkwRhKAbduAJADbgAEMAtuSANu2JRlLADZXSOIKYZvLbAOShADbAAKwLQmwbVsSAmMMCAFCCNuAbUkYSYBtLrMtZAwgZCEQxlwmBEjCGCMwkgAERhIPYBkQ4nkZY9s8J0m2bXM/IWMMQghzhbEkDOIK24AkY0CIKwRgGSMECAG2ASGexSAwgDGAMMYAgCTbCEAIMAaMhQAE5lkk8SzmWWxzmRDiWWzznCQBtm0DkrjCAAjANgaQxLOI5yWEsI14JgEI2QYQz2IbkMQD2AYkcT9jQAhhDNgWQgCSeKFsSwIk2QYkcT/bkgDbPBdzhbEkni9xhSQewDYgCZDEA9gGbEsCJNnmASRxP0lcZhuwLYnnx1iIB7ANSOJ+trmfJJ6Hbe4niWcxAEIIg3gg2zyAbV4w24AknpMkwDb3k8T9bEviRSCJ+9kGJAG2eU6SuJ9tQBLPj22eiRDPJPG8bPMAtnmhbPMis22byyRJ4vmxbZsXgW1eBLb517PNv8Q2IIl/iST+I0jiX8k2z49t/q0k8QDGPD/GtrlCSAIADCAkZMxlBmwAsI14PoQx5oWQxAtmGUA8i21J3E+I5yWeRciYZzHPZADbkngRGAsBgCReCAMgnpu4wtg2YBuQxAMZDIDBXGEbwAhxmSTuJ4nLbNvm38o2/xGEuMzYGLBtmwcSz80AmGcT/yJJXCbEFQLzwghJvGCSuEyI+xnzvMyzGQDzQggBQoAxz2KeRRIgBAjxXARgzHMx/wbGPJO4Qkg8HzbPQVxmm/vZBmzM82EbAGzzAMYA4tnM8yWJ+9nmhRIy5gqDeP7MMxlJ/BuYfwsDIJ7FNoB5FkmAEOK5CPEAxlxmDNgW4jJJxgACEJIEALYBDAbAyMLIwjwHA9i2DWCeTTyLMQYDAEJCvGC2uUIgnott/lUEANjmASTZ5vmRxPMSDyQJcYVtY+5nzANIkgRIss1zsg3Yts3zEojnS5JtAGNbEs9JkhAvAts8J9u2eQDbPCfbPBeDeSBJknjRSLLNA9jmCvNMBkA8kG1eANs8P5L4V5LEZZJ4TpL4r0M1xiBkGQOAbUASIIn72QZsSwJsS+JFI4kXjSTANmBbEg8gCbDN/STxnCQBtnkR2OYySYBt7icJkATYti3Jtm1AEmCb+0kCAEm8ULZ5EdjmMkk8J0lcZpvLJPH82JZkm389SbZtA5IASbZtA5K4n22ek21AkrEsxAshZBkjxGUCJB5IAMZCGABjzBXmmYSxEM9JCIEBjAEEYCyEeRbbkjDGthEAAkBgAEmAMZcZCyGusM39bEsCbAO2AUk8kAEQQsaAJF4I8SzGCFkABmEbsA1I4jJJPCdjBAaQhAFsA5IASTwn24BtSYAkLpME2OZ5SOIBbHM/SQBgG5AEAJIA24AkwDb3k8RlkmwDGEASYAxIAowRGEAIsA3YlmQsBCAwAAbxQJIASQBGEmAbAdhGCHE/2wAGIck297PNZZK4n20ukwTY5nnYloR5JnGFsZAx9xNC2DbGPJsAEBhJgCTbkgAhYy6TZNuykG0hDMI2l9kGJNnm+ZEkCcDYBhAAxgAGkARgwLYk2+Iy2wID2EiAwIAk21xhANuSbEviCgNIAmxjjAFjIUCIB5AE2AYwCEkYAGMMSOJ+xpIAjG0A8VyEuMwYA2CegxBCPIttQAhhm8sk8UAGYSyEARC2AWOMJMAYsC3JtiSEbdtCxpIwgCTuJ8RlkmwDtrmfMc9iAEmAEGCb+0myzWWSeC7iBTHGSOIKYRsQ4jJjWQACEDLmCiHE/WzznGwDgCSeh21AEgZAPJsxFkI8mwFsSwIkYZ5Fkm0AkGRbElcIQAgDIADMczMIDCDE85BkG7AtybYkLrMtCZBkG5DEAxgDxhghBGAbsC2JyyTZ5n5CiCtsS5IE2AZsS+KFsg1I4n62JfECSMIYA5L41zJX2AYkAbb5l0gyFuJ+tiUBkngekgBJ3M82IInnZJsHkATY5jJJtnketgFJgCSehyTbPCdJgDEACHGFASQBtoHgCmPM/SRJ4gWQxGWSeE6SuJ8kQBL/M9jmMknczzb/+STxIpAEALYB2/xLbPMisM0LJYnLJHGZbe4nSRIPIEmSbV4QI0kSIAQAQjyQeSYBCCH+RUK2uZ8QV4hnEeJ5GQxgjEA8i20hHsA24jmYZxKAsTFgDAjxgtnmfpJ4XgJhbMy/lnlBJHE/2zwnSRgAARgbA4gXRBIPYJsXzDYvmCQus81ltiXxQknifraFuEwSgHgm80zmWYwBY+5nDGCeD/EcDIB5bgbxAokrjHmhbPOC2ZbEi8A2z0X8GxgDxsbG3E8SLxpjAHGFZDDPn8X9JO4nCQSAAEASlwlxmTFg25grxPNlDBjzLxIAApDEZZIAIS4zBhBXSOJ5mefPvEjMcxCAEIC4QojLJPGcbAO2uZ8xYGzMczGAJNs8gG2ekxDiWYy5wjyLbUk8P8aAbV50BsAgEADCGAMYCwGAJNs8gCTbvACSbPMsAoHBPIsQgHkm8xwE5oWzzQOZZzKY50NgnoN4Fkm2uZ9twDbPyTaX2eYKAyAQzyQA29zPNmAbkMTzIwmwbZvLJPGvJ4kXTjyT+ZeZBzLmMkmSeC7mOZgHEgIkcZkkXihJvFC2eR62bXM/21xmWxIvMtu86ATCtm0AUGtNEs9Jkm1AyJj7SeI52eZ+kgDb3E+SbS6TBNgGJHE/24BtQBIgyTYPIMk2l0myzQNI4vmxDdiWBNiWBEjifrZ5wSTZ5jJJPD+2uZ8k21wmCbDNZZJ4ANuAbUASIAmwzfMjyTYvlCTANpdJ4jLb3E8S97PN85Bkm/tJ4vmxzf0kAbYB29xPEiAJAxgDCMwVxkKAEMI2DyAEIADbPIuQBdgGEEIIjDEGAQgZ2wYkAUKAbcCyEJfZFkIIGfM8bEsCJHE/21xmLAQIAcbcT5Jt7ifJNveTZNu2JECSbe4nCbDN/SRxP2MMgBACjDGAkDH3k2QbACTxALZ5ASTxnGxzP9uAJEAS97MN2AYkcT9JgG3ANiAJkATYBmxLAiTZBmxLkgTY5n6SbAMYQAhhDCBkARhjhLEQD2QAY0BIEmDM/SRhnkkYYwBZlgFJgG3uJ8RlxjyAJC4zxtiWJIS4wjYPIInnZBuDkMRltgGEEAawbSxJyNg2IAkQAiwL2eZ+kngAY8wD2QYkARhjSULGtgFJ3E+SbduSAEmAbS4TQgC2eSYJAGODbACJywzYAiQABOZ+QgDGGDCWxGVCAICwzWVCxoBtSTw/tgFJXCYJY4xBSAJsAwjMv0gSYNs2IAmwDUjieQhhLPMCSLINIIQwGARgzGWSbAMYxPOyjZCFEELYti0ESAKMAdtcJgnASDLmfkII24BtIYSQMQ8gxBXCNs8ihLjMNs+PJO5nmyuEEGAbMBbiMkm2eQBJtnl+JAG2eS5CCDDGXCEEIDDGGADxQEIA4rnY5n6SMMYYhJAxYBshBEgCbMtCAAgMgLjCNmBbEv8qQgiwLYQAbAO2JQG2JQEIDCAJAxgDkgDbGAQgCYN4Fts8P5Js8wJIAmxzP0kABrCMeS6SeADbAAaQBCAA24Bt7ieJ+9kGJAFCljEIzANJ4jLbgCQus80DSAJs8wLYlsQLJgmwzf0k2eYySYBtnpNtQBIgCTAGZCEeyDbPREjiOUmyDQDG/FtJss0LZts2l0mSBEiyzQNIss39bPOvIYnLJPGvIck2/xJJXCbJNi+AbZ4fSTyAJP59JPGC2bbNC2ZbEv/RjLnCPIsQz2KeyVxhDGCMeSCDABAIwBgAhBCYZ5EkyTZg2Rgw5nkZY54fSTwvcYUQDyCJF8C2JC6TxHOyLYkHsM2/yDwXY0n8G4jnyzYPYBuQxAsmiedkG7ANSOIFs82LSADGmGcyzyYAIZ6LAIQAxL/MPBfbPCdjnh/bXGGeg3km8UC2ucL8C8yziecixL+KeS5CXCaEeC6SeH6MAdvGPJDBPH+2eS4WD2ReAGNJvGgk8YJJ4gqBeS62ucL8a0nifpL4dzLPJJ7NAIAkAPEcxBWSAMRzMQaMjQFAEiAJAISMucIACNuAMYAAjHkAIZ6HECDEv4cBACHuZ5sHkGSbF8w2z8s8k3lu5tnE8yFeGIF5IGMukyQEIDAYIZ7FPJN5IEm8AJIAY9s8kAEASTyAsSSuELYBzBXGPD/GPIt4viRJ4jJJtnkBJPGCCATmednmORkjEADieUmSBAjxPIwxAOa52OZ52OZfSRIvlG3bPIBt/iWSJPEiswEqCMz9JPF8GcSLQhIvmCTANs9JEs+PJF4wSYBtnh9J3M82z8k2IAmwDdgGJAGSeH5s8x9HEiAJsM1lkrjMNvezDdgGAEmAbUmAJB5Akm3bkgBJgG1eKNuSeH5sA5Jsc5kkXgBJPBeBAWwDkgCEEOa5WMYIAZaFMADGWBKAQWAAYyHbCIwQwrZlIcsYSQAGQMjCIK6QxGXGQoAk21wmhHgm87wkAbYtA0KSuJ8k24BtSYAkLrMNSLINSAIkcZltwDYgCcAgAMwLZ1sS95MEALa5nyRJgG0uEzLmMtvcTxLPSRL3s81lkrhMEg8gyTb3k8RlknhOtnkASYBtQBIPIAljjHj+hBACAGzbliQJg7CNABCAEJcZ2waEANuAbSFjjLEkQJJtwLYkY4QQgDHmgQQGwACWMQhZCGOMbUkYBOIKIcSzGQCDABC2uZ8xz8kYIcSzGATYgJHEFcZYEiDLmMssY4QwxoAkQBLPYgBJtgEERsgYY4yQJARgANsAQhLPSRYAxjYAkrifsRACIwRI4jJjQAiQBBjbBoQAYwCwzWVCxlwmicuMAVmIZzMIIWOek7EQz48kQJJtSYAk24BtIQABWMYgAEm2bXOZJNvczzb3k4RBALa5TAgB2AYwkgDbQgDiWSQZG8tCCAHGkgBJGAQAGEsCbHOFkQQgMM8iZCwLAWCEuEwIwDxftiXxLOZ5WZaFAGxzmW1AEiDJNveTZBuwLQmwzf0k2bYtCQBs80ACwAAYYyEE5tmEbS6TBNgGJHGFeSZjLARIsg1I4gFscz8hHsA2DyAJsI1BAJK4TAjxfBkjhABAiPsJIQDbgCSMsSxJPIAk7mebyyQZSwIwtnketiXxAJJsA5J4ANtCCNu8ALYRQlwmxBXCNg8giftJAjAA4oWwDUjifpIA29zPNiCJ50cSANgGJPEAtnl+JHE/2zwnSYBt7ieJy2zbBiQBxhgAkGSbyySAAHM/STw/thH/qWzbBmwDtrnMtm3uJ4nLbAO2bfMfRJIkQJJt2/xr2JYEAJJs2+Z+krjMNi+UbR7ANveTJIn7SbIN2LbNC2DbNmAbAGzb5jlJ4jLbPD+2+TcwGACDkMQVxjYCMAYQgJAk7mcsicsk8SzmmcwzGcAYQADGQjwv8XwJ8XyZZxLPyzZXGMxzMC+Ibe4niQcwtg3YBiTxLOZfYK6wzX8OSTw/tiXxPGxLAgBJ3M82l0ni+bHN82Obfz+BeT7Mi8g2z8UAmBeVAWxjjAEMgHn+DIB5Ftv8i8zzMmAA29xPEv8i8dzMswhxmcCYF0K8iCTxAEJcIf5l5lmMuZ8kQAgQ4vkSz4d4XkL860kCEELGAOKBhLjMNs/LPItt29zPGLDN8zAGhHgAIQDxLxLiCnGFJJ4fYwDxfAjMv5EBMAjANpfZliQJkGSb52FbEi+csM0DCcCYK8QzGcQzCdu8EObZxLPY5jLbPJB4JgFgAMA2l9nmX08Sz2KeiyQeQBJgm8uMeQFs8wBCGMCYB7AtBEjiASTZ5jLbkngAY9s8gCQus80LIMk2Lxoh7ifEc5LEv0SSJEASL4BtLrPNZbZtcz9J/LvZ5gWzzQNIUmtNEs9JEmAbsA1I4jlJsi2Jy2zznCTZ5n6SbAOSbPOC2QYk8ZwkAbYB24AkXjBJgG1AEs/JNiCJy2xzP0m2uZ8k7meb52QbkARIss0LJcm2JC6zDUiyDdiWxAPYBiTxAtiWBEiyzWWSuJ9twDYgifvZliSJy2wDkmzznCQBtrmfJMA2L4AkrjCAbQABCBljEABCCMAgMIBtwLIQ9xPiAYwBDAKwLQlAYIyFJAGYZxOYZxLPhwEQGGMM4jkYScY8J9uSuEwIQAC2edEIAcYAxlgSIMk2BnGFEIDAGANCgDHGWJIkwDYgCbANSOIy27xgtgFJXCaJB7BtG5DEA0iyzWW2JQGSuJ9t7icJsM1ltiXx/EiyzWWSANs8LyHEsxiEbe4nCTDGXCGJ+9nmfkII21xmG0AIASAwxhiBkcSzGIQkwFiWMQ9kEAACYxuQhAEQL5ABJAHGPCfbkrjMNiCJK4QQ5gpjwLYkQIgrBAawDSAAIcCYyyRxhTEIANvGQoAkwBjbQoj7CVnGPIskHsgAxoBBAEgCMMYAQgjzbOJZbHOZJNu2hQDAWJKQMZcJGfOcJAHGGAAQAowBSYBtDEII8Vxsc5ltSYAknouxLQlh21gIkATYBmxL4jnZ5jJJPCfbgCQE5lkkAbZ5TpIA2wCAkAUY80BCiCvMs4nnYhvAIABJtgEMQsgyBsAghIwB29xPEiDJNlcYY0mAJMA297MticskAbZtSwIkAbZ5fiTZ5gWQhLnCGIF5Fkncz7ZtSVwmicuMAQxGEmDM8yOJ+9nmfkKAMfezLYnLJNkGhLjMmMskAbYBSRhjACGEMQYk8fzYBoyFAAxCyDIGkMRltrmfJMA297MNSAIQQtzPNs9LAJjnS5IxBsAYSwKEAGMuk2QbsA1IAiTxAMZCgG2eRQjxALa5nyTuZ5v7SeIy27xoJNnmfpIA29xPEmAMCHGZbS6TBNjmfpJs80BCyDbPjyTbIYkXSpIk2zwPSQBgm+dhmwewzWW2eQBJPIBtSZJ4TpJs2wZsA4BtALDNZZL417PNA9jmRSAJkCQJkGSbF4EkALANALZ5ASRJAgBJPA9JXGabF0oSIIkHsG2b+9mWxPMjSZIkSfxLbPNAAmHM8zLPZl4IY55FCAGIKyRxmRAgxLOIF5V5JmPM8zIIY0m8iARgmxeNEICQBACYf5kAhBDPRRL/epJ4AWwDgCSek23uJ4nnZJsHMLbN/STx72SelyT+bQziCklIQjwnISFJPIt5ICFAiAcSz2SukAQg/mUCMOZfIolnMc9JXGYbMOa5iBeFuJ8AjAFjA4AQ4gGMMS8i8QDm2cwDWeaFMubfwDxftnkWA2CeL2MAA2CeizFgzP2MAdsYwLYk/jUkIQBZPF8G82zmuYkXxlxhzPOwzQMI2eaBBOaBjAFjnpMk21xhXjhJACCJB7AN2LbN8yPJNi+AEAZAIADMCyHJNpfZ5rkIzANJ4n6SeCDxQkgCAEm2eSDxLMa2ucy2MVeY52AADAaDeSAhHsAYc4Ux9zPm+bEtJIQBMLa5zDbPl8E8iyTuJ2Qb80xCEs+PbSFAkhDPjxAPZACMbR5IvHCSuMw2D2DbNi+AbUk8i8E8m8BgHsg2L5htrjAYAGNbEs9Dkm1AThsDtgFJgCTuZ5sHsC0JkATY5gWTZBuQZJv7SeI52QZsS+IySYBtLpNkmxeBJC6zDUjifra5nyQus81ltgFJPC8hBNjmfpK4zDYPYBuQxP1sA5IASdzPNs/DNiAJsC0JkMT9bHM/SdzPNveTxP1scz9JgG0AsC2J5yHJNveTxPNjG7ANSOL5kQTY5n5CgDEGAUgCMM9iDNjmfkIAQgiwjBHiMmNeMEnczzb3kwTY5gqBATCSjLnCAAjAtiQuk2QbsA0gACGMJGMAgXkmA1gWAiTZti1JEsY2gACEjAFJtgHbgBBCEoABMAiEMeZZJPH82OY5SbJtW5IkLrMN2JYESLINSLIN2JYESLLNZbYBSZJ4Tra5nyTAGHOFJNs8J0lcZpv7SQJsA7YBIQDxLxIyFgIQGMAYACRxhQEMEgC2AQwCBCAus414INuSAEmAbQCDuMJYSBJgmxfKNg8gCZBk27YkSVxmm8uEjG1LEjLmWSQB2AgbsC2JB5AEYAAMwhghBNjmAYTA5pmMhQCEjEGAZBuDkGSby4QQGARgmyuEEAYwRghhbAPGkgBJxrIAYy6TZJsrBOaZzLMJIWMEIATY5n6SMMYABiFkDNiWBAgZYyQZ80ySAGwDxkJcJmQMCAEI2zwn25J4HpJs84JJAgDbGMRzkWQsCzDmfkKAMfeTBNg2xgghAEkABsAgjHkASbYBDEIIMMYYS+IBbAshns0gnpdtLpPEZZIA21whhHhOtgHbkrhMEmCb+0kCbHOFkAUYcz8hAGGbB5DEc7IN2JbE/SRxhQFsAwghhG2ei5BlLITAPIsx95PE/WxjEIAkjDHPxTybACRxP2NAiCuMMSCEAADbPD9CgDH3kwTYBmwDkrjCIABJgG3ANiCJ+9kGJAFCxoAkLrPN/SQBGMCY5yQJsM0DSLLN/YS4n20A8SySbAshHsg2L5htSTwn25J4HkIIwDaXCSEA25IwgDHPjyTuZ5sHMghAEmCb+0kCbANhDNjmRSOJF0wSD2AbAGzzIpDEC2CbF41tXmS2ucw2DyCJBzLPwTyLbZ6TJEmAJEmAJMA2LwJJkgBAEi+AbZ6TJP4ltm1LAgBJPD+2Adu2eQDbtnkeknjhxLOJZxIvOmMuMwYwgDFgDAC2uZ9t/rXMsxhL4grxLJJsc5ltxAMJAZJ4FvNsAiHEZbZ5LgKBeSDbkngW8QKZF842z49tXgBJPCfbPCfb3E8Sz8M2z8tgAEASl9nmAWwDtnkekrhMCEC8iIR40QgMmOdiHkDY5gEkcYWNATD/ZpK4nyQA8W9ng0HcTxLPxTyb+BeZZxPiMoEBbJ6HeDZjzPMygDGAAYx5Trb5F4nnJoSMAczzITDPJoSMAWPuZwwgjHk28wBCACBkzAsgicsk8fzY5kVmjHleQrwozLMIARgAg3km8bxsc4UQAhBXSOKBjBDPRTxfkgBJ3M+2be4nxAsgCQAk8Zwk8ZyEeL6EbR5AEs+PbUk8gG2eL2GbF0AIwDybeCGMbQO2jXleQhIC8fyZZxPPJJ6XJMAY83zZto0AJAGAEIB4UUiSBAgZc5ltHsgAGAyAeS6SbNsGbNvmMts8D2PbCMRzEUK86GxL4nlIAiTxnIx5TsZcJol/EyEewLZtnj+qjYQkXgBJ3M82L5gk/q0kcZltXgBJPIBtQBKX2eY5SQJsA5J4oSTxAMaSbPN8iediG5DEA9gGJNmWxHOyLYnnZJsXjSTuZxsAJHGZbUlcJgmwzfOQZJsXQBLPSZJt25K4nyT+JbKMucw2QojnIjAAAvMskrjMWBZgjLjCNmAsSRL3k8S/xLYknodlIUCSbSEEYBkjybYkAANIsi0ESAJsc5ltSYAknpNtQBJXCABjWZZl7meb52RbEmCMADDPIokHsA0AknhOkgDbgCQeQBIPYBuwLYnLJHGZbUmAJNuSuJ9tQBIgifsZSxIyxtjmfrYl2ZYE2OZ+kgDbCAwgCSMJMOYy25J4FmMsifsZAxgAAxhLAmzzADIgkGwjsEESGMk2ANiWxGWSuMI8k3gW25K4nyQus21bEiCJ+9mWxP0kAbYBSYBthJAkDGAMSALAQgjbtiWBMMIAEgDYti2EAGwjACFAiAewzWWSjLmfJMC2JABsJLAthDC2jRDifpKMMc+HMZbEFcI2YBuQxGW2AQRgm2cxQlwhMMZCXGZbEgbxbELIGIOQxBUGwEgCJNk2FkJgnpMlcYVBABgAY4zACAGIB5LE/YwxgG1JXCaJF0qSMQaQBCAADOKZDALAAJhnEoBtnkUIAcaAJJ7FALYlcZkkDIAwxgghAIRtAAMIGXOZEJcZS8IY8wCSeB6SAMxzsQ1I4n62bfM8bHOZJK4QAMZYCEDY5gEkAbZ5AEmAJJ7FIABjIa4QV9gGANuSeBYDYCwDkgDAWBIvgCTbtoUASQDi2YwxIIR4FmNACGGb+0kCbHM/SRjANiAEYIwRQrYBBAAIIWxLAoz5VxICMADiXyAwAAKQZJv7SeJ5mWcTL5Cwzf0k2eYy25IA29xPEpdJ4gFsA7YlAbZ5AGOeh20uE8IAiOdim/tJ4lkM4nlJ4jkQEi8K27YB2/wr2eZFY5sXjW0us82/iW3bvCDGtiT+NWzzPGxL4nlI4gWwzb+JbS6TxP1s2+YBbAOAbf4jSJLEC2bMA5nnwzyTQTwvIWOehzEvAtsA4oFsS+K5GACwDRgDCCEAkGQbEOIySVxm2zb3k8SLzjyTEOKFso0AMP9OknihbAO2AUASDyCJfyUhrjAPJEkSIIkXwjybwBhzP0k8J0n82xmwAJtns839JHE/21whnpck/iW2ecFs81wMgHmRmedLAMYA5t/ANmCb52TMs5jnZh5IiCvEswlAEs/JGED8iywDxjwX82zmOZgHksTzEOI52TyTATAAAkAAmGczD2TMZbYxV0jifrb5lwgBkrjCAIhnMgAGQAAIY4SQMVcYxL9IElcIzLOZF8KYKwSAMQZs868ijPmPJgQAtnkAIZ4f27wgxhjxvGxL4kUgxAslSQiBeCaDucIYAIx5FoN5kQgMYMyzCAABGAOIK4QwGMQD2eaFksT9jI0RCEASDyReCNu8UMbGgGXLPIAkXjDb3E8Sl0niMkkAIIkHsM0LZhvzLEI8J2NJCEBIiBeZJC6zDdi2zbNRQQhsQBIA2OYBJAGAbe5nW0gS/xJJtiUBkgDbvGgkcZlt21wmiRfKNveTxPOQZJv7SeJ+tnkASVxmG5DE/YwxzyKJ52RbEmCb+9nmfpJ4fiTZlgRI4gWzLYnnYZvLJHGZbUmSANuAbUASz0kSl9kGANvcTxLPwzbPQ8jYNvezDUgCbEuyzXMxkjAviGUhQJJtBCAESMJYloW4wrZtQAiQhbANYBCAJC6zDUgCbHM/YwwgyTYghEEIITBXWMZcIQkAbNvmfpIABOZ5CQEIIWOMbQAQss1lkmwDxhhJXCbJNi+YJC6zbZvnxzbPyTYgicskcT/bvACSANvcTxJgmwewzWWSAEk8D9u2JfGchIwxCEASz2IAwBhAPJsBbCMAIZ7FGCSexRgwAELYAGAAJAEC8yy2uUII8Sy2uZ8xRhKXSbINSAIA2zwn2wDGGIEBJGEA2wgJAwZhALABSQDmeRiQBEiyzWWyAGOuEEKAJJ6TJJ6TbQBsA0gyBmwLGUtCALYBDOIK29xPCLAtCWFbkrEQIMsYAUiybRuQxAMYAwACMAaEMAgA8yy2uZ9lWcYIIYwxYBvAIGxL4llsSTyAMQbxTOKZjDECA9iWhEHYBmxLkgTY5n62uUwSYJv7SQJsCwFCCAADIJ6DQVwhCTAGbAOSAASAEULYBoQQQlxmjHgmYxkjhLEMIAAhY8AYkARgAATGWMhYkjFgWxLPSRIGc4Uk29xPEs+PbUnczzZgW5JtQBIvhBDiCnOFbYQQIAmwbSwLwAAIjGWEkDEGsC2JyyQZYwCMZSHAGHOFJMA295OEkQRgEADCNpcJYYwBYyEus81lQgBgG8Agng/zTAZAPJN4NvEsxlwmhLAN2OYBbHM/SdxPkm3uJ4nLbAOSeCABYAAEBoN4IEnczzZgG0AYC3GF+NeSBNgGJHE/SbYBQJJtXjBJtrmfJNsYSTyAZQBjzAPYBiQBgG1eMNuSeA4EgM1ltnl+bAOAJEncz5gXjSReNLZ5HrZ5ANv8+9jm389cYVsSz0OSbf5NJPGisc0LZpsHsG1bEiBJkm1AEs/JNv8OQsY8gG0us81ltnkuBjAGAIQk7meMEAIkcT8hAGFsjDHmMts8kAEwknguBvMvsi0EIBAAAvNC2ObfSogHMOb5kcT9bPOfQxL/OSTxorEtiQewLYT4l5nnIgkQAiRxP4krDAbAAAiQxbNJ4nnYPAfz/BgD2OZ+knjRCPGcjHkWA2BA2DyQzP1sXjhjnsUY8+9mDBgDtvkXGcA29xPiBZPEZUK8cOKFEzIGMIAxz49tnkXi+TIPJGSZ58c2z8k2/0rGgDFXiOdDYJ4vSTyLAYxt8zyMAQzm2QSAwAAYjDEGACTxXASAQBjzAghxhUAgXkSSeH5s8zxs85yEeB6ShHgexjwXA9jGABhJXCbJNuaZhBCAwPwLxDOJ52YAY64wV9jmWQRgm+dLPAeDQACSeBbx3MwVtm0DtnkA2wBgWxJXiOdgAAxgGwCMhXghxHOxbZvnISQEIJ5FyDb/DpJscz/bvFC2ucw2YJvLbHOZbQCDATCYZ5HE/WzzPGxLAiRJ4rlRbSQeyDaX2QYk8YIZC9nmfpIA29xPEvcz5vmxLYkXyjYgCZDEi8w2IIkXwLYkwDbPwxiQBNjmMklcZpv7SeJ+tgFJtrlMEs+Pbe4niedkm/tJ4n62AUmAJACwbVsSz0OSbUlcJsk2IInLJAG2bUviRWab+0kChAAMgLhCElcY25J4XuLZjCRAkm3bgCQus81lkrifbcC2JF4AY0CWEOK5CAHGPCfbgCReKGNZiOfDGEsCMM9iWxIG8UC2uZ8knh/bgCRAyJjnZBuQBEiyDQCSbAO2AUncz7Yk7mebyyQBknhOtrmfbcC2JNtcJokXSpJtnh/bPIBtSbYl2QZsCyGEjBEYhDEgBFjGIJ5FFgJjzP2MMYAkY0CSAds2IAnABozAkgBJ2IAACbDNFQbxLLYBgwALbFuSbUmAba4wCATGNg8gSZIx5tkExrKQDWBbksA8kyTANgjM/QySAAxGEoCxzWXGgCSMkDFCiAcwFpJkG7ANCHE/IWMAQAC2AdtC3M8Yc4UkScZcZlsSl9kGbCMASVwmCRACjBFCGNuShBAABgEgbANCCNu2hSTxXMwVxhhJkmwDkmxLAmxzPyFjLrMNSJLEFQZhWxIgCZBk2zYgCbDNv4ZtQBL3sw1Isg0ghACMMQbxTMZYEpdJMgYwkrifMQYQwiCeTQCY508YCwGSMM8kMJIABAawDdiWxGWSAAzCNpcJAbYlcT/bXCaJF8A2D2Cb+0kCAEmAsW0AIWRZiCvMcxEyBhAABkBgnskAQgDiCtuSAARgjHnhbPO8DGAsZIwBjCUBCMwDGfMAQoCxLO4nhLEsBCAASTyLAGwDtgEh7mebyyTxALYlAYAkjDFCCEBcYZtnMcZCPJAAMIgrJAG2eQBjLpPE/SQBxgCAwLwQkrifbUASLxpJgG2eH0m2uUwS95PEAwnAWIjLJPEvkWSb54OQeBZJtrmfJEmAJJ6HbQBjmxedwTwX25K4TBIvgCRJPA/bvACSbHOZbUk8gG3bXGbbNpfZ5l9im8skSQIA27a5TBKXSQIk8R9KkiQewDaX2ZbE/SRxmSQAsG2bF8y2JP71bAPGxpIQz5cQl0niBRGAEJdJkoR5gQyAQfxbiGcR4gGMASEuMwYwz2QQAEYIwFxhzANI4oUwCMA2LyIhiRdMEvezzf1scz9JPCfbkrhMEiAJkMTzkMQD2OY52ZbEi8Y2LwLbPIsAjAHMM5nnIJ6beW7mudjmfpK4nwGMxAsgiSvEA0kCsHkAY8A2z8X8qxkABIB4bgZAYABAPB8GMOZ+QtzPGMA8FyHANvcT4vmRxAsmxAtmG7DNc7INIJ7FGMA8B/EiEc+HuEKI+0kCbAO2eU7G3E8Sl9nmWYwknh8hzL+KJNs8gCTbPBcDYJ4vSdzPNubZBOKBjBEvkEFcIYnLhHjRSAIkcZkkrhAPZMy/iSRJkvgXmWcygCyuMM+XEM+XABAIY2PuJwkDYADMc7FtmxeZMeYKSQAgBBgDCNuY5yWLB7CNEAIQL5wk7icJkCRJEs9JEpdJwjyTeSBjLrNtm8uMAcTzJzAYAAMAtjH/Itv8x5HEv4YkSZIAISFeACGekyT+LZDTyDbPS5JtXhBjLInnJAmwzf0k2QYk2eY52RZCPBdJtgFAEs/JNveTZFsSz8M2z0mSbcC2JJ6HbUASIInnZJt/iSTbgCTb3E8Sz49t7icJsM3zI4kXzDb3k2Sb5yQJAGxzP0mAbZ6TJNsAIAkAbHOZJMA2ANgGEBhAEs9LYIRsAwhAEleYZxMYY+4nCQMYYyxjJAGSAAxgG0A8iySei3kWy5jnw0iyjAGMhTAIIWOuMJKMucIAiGcRQmCemwGMAQRGEmAM2EYI2UYIAZJsAxiEkDEGIQmDQQCIK2wDtgFJvGCSAMA295NkmxdMkm1AEmCb52RbEiCJ+9kGJHE/2zwnSYBtnpNtnpMkAIG5QhKAARCAMebZhCzAGAMgANuSAATmBbENSAIkAbYFSLZ5AQTmfjaIK4RtSTyLASQBxjyQARAIzPNhECAwBiEBAsAgLrNtW5IECGPMZUIAwraxLEnGxrKEjI0lSQIwgLEkjLFtQBIgxP2MeU62eQBJkmwDtoUQgCTANs/JNpdJ4gqBEQJsG0viMtuSACGEbe4nifvZ5oEE5lkkAba5TJJtwDYgiSsMIMkYAISMuZ8k24AQgHgW29xPljHieUmyLYnnZNu2JEDIGMAgnskgACHAtjGXCUkCELa5n5AxVwgh27YlAZJsc5kkwDYgC2HMA0gCMMZcITBXSAIwCMA295Nkm+dkLAvxQJIA2zwn29xPkiTbXCbJNmAbkARI4n62eSAhBGCeTRjLAjCAZQADSDKWBNg2FgIkAbYBDCAJMOYKgXkWSYBtwLYkwDYgiSsMgHgmI8lYEmCb50cIMBbiMtsIAIMAJGGMeU6SjIUwxtxPEmCb+0kCMM8kANtcJgQgMMbcz7YQVwhAkm0uk8Rzsg1gEM9Lkm0AEAKMuZ8kLrPN85DEc7LN85AEALa5nyTANveTxP1scz9JtgFJgG1ACGEbkGSb5yGJF8A295NkjAECsHm+bPNCCEk8L4N5INtcZpv7CUkCJCGexTaX2eZFJonnYZvnYZvLJPH8SJLECyCJB7DNFeKZBOYK25L4l0jihbLNv5JtnodtAJDECyXJNs/JNi+AJAAjSRLPlwGMeV7mORgEgAEA2whACCEkiQcSAALxLxD/MmEsxGVCAAIwlsQVwpgrDIB4DuL5E4jnYB5ICJCEucI2lxkDCMCYZxEA4rlIksTzkMQLZZsXjW2eH0n8S2zz/NjmRWAbEOI5WbbMFeY5GMQziWeRxGVCPIt4bpIkAAnA5kVgXhBL4jJxP/H8iSuEeF7mOZnnIJ4v829nrhDCPIsknpMxLzLbQjyLeb4kAZJ4FgMYA4jnYgwYG/Ms4kVnm+dHEs9FvCCSbPP82Oa5iOfLNi+YbcCYF8wYQDybeF6SjDEYAPNcbPN8iefP/AvEc5Fkm+dlEIAQ97Ntm+chCZAkifvZBmxzmSRJgCReCPNM4pkEIMQLYAxgMADmeRkDxsaIK4QA2zwPSVwmSRLPIp6DMAZs8yzmOQgAEOIKg3hu5gURwjwHYds2YNs2YNuYZzG2ucI8k3kg20IAAgFIss2/SFwhiftJss2/xDbPQxIvGtv8O9gGANu2uZ9tALAtiedhm+dhm+dkG3MZlfvZBiRxP9uSANuSAEm8EMbYGJDE/WxzPyEuM8ZcIck2YFuIBzIIwDaXSeIFs82/hiTbXCYJsM0D2OY5SbIN2OaBxBXGPIAkwLZtnpMk2zyAbUlcZlsSIIkXwDYgiefHNveTxGW2AUm8AJJ4wWxLAgBJgG1Akm0AQGAADOK5CdtCPBcDWAYwgDFGEmCbK4QQANi2zRVCCDDGPJBtHkgIARjANiDJNgBIAmxzmSTb3M+2JC6zzWXGkgAE5jkIAGMsBBjzLAYwFuIySdxPkm1J3E8SYBuQxBXiXyTJNvezDUjiMtuAJMA2YJvLJHGZbe4nyTb3sy2J+9nmeRgDCCEAsM39JHE/24BtSZK4zLYkXgBJPIsRAhAPZBuQBCCEMAgAAWCeixACY4xtkARIAmwDAsA2YJvnJECSZJvLJBkAbCEACbANIACEbSGuEBgAARgjMJIA2wAgCUBgkLifDZgHkASAuMIACGMEBsAAtgEhwBghBNgGMAiELNvcTwiBMeYBJNm2DUjiOdkGJGEAWcYI25J4TrYlcT/bgCQAgZGEkWQsyTaAeA4GQNgGJAG2bUvCAIBtSYBtSQAGIwmwLck2ICQJMEYIYQAhBGCb+xkL2QYk8QBCloUQtgFAkm0ewDaXSeIySVxmWxIgydi2EIBBAMaAJNsAYIzASOKBhG2MJNuAJO5nWxL3kwQYY66wLQmwzRUGQGAA25JsAwghzBWSuMIYSwIwgCSuEBjAtiRAEmAbACTZlsRlkgBAEgBI4jnZlsRlkmzznGwDQsYYACHE/WQZA8ZCXGaMkcQV5tmEsRAgC0BcIQkAjDGSuJ9t7ifJGCMJAIwB24Ak20JcYRAA4lmMuUIIAcaI52AAY0ASD2AsBCAAYwCQxLOY58MgAGNACIMwlgRghIwRz8s2AAghnottXgBjnkU8F9uAJECSbZ6TJACwLQmwLYn7SeJ+toUkcYXBIF5ExjwnSbYB24Ak7meb+0kCJHE/2zwTYUAAkiQBkiQBkrhMEgDYts0LYMyLxpgHsA0AkhCAJB7ANv8+kvjXs83zsC0JkCSJBzIYwDYPYJsXmW0uk8S/lSRAkiRAEpfZ5jLbvAC2bfMik8RlkgBAiCvE8yWJ5yUQz2IsSRLPxVxhmwcyVwjxLOb5MBjMMwlJgCQAMOYBbPOcbHOFuEISL4gBEM8mnsWYy4yFeB6SjAFJ/GtIAmxzmW3+Jba5nySekyReMNv8R7AN2ObfTACIZxJXSOIBjHkg83wYzLMIbHOZbe5nAMxzEy+UhM2ziAcS4lnMczAYwDbPIp4fAWBeOPFs5l9LyJjnYl4ISTwPSVwhAGOexfyLJAGIZxPPIgnxfAgAgXhBJPFcBOL5EIAxgHkutnkAIWPuJ4n7GfNCSbLNCyaJ52QMIJ6LJIQxgHm+JHGZJO4niftJ4oHMs0jigcyzCAEI21xhAMQVtm0DCEk8i3gW27zIJPEvsS2J+9nmASTZ5nmZBzLmgYQxgHgWY2MuExLigQzmOZhnsW0bsM1ltjGAMc/DNmBsjEAACADzXISMjbmfJASAQDyTATBXCAGIfzUBGAOAMQIQ4gphG8A8F9s8X+Z5GUvi+TKYB5IkCZBkm+dhWxIgicskAZJ4HpIQzyYQz5ckAJAEALZ5AEm2bXOZJEn8W1ABIcSz2AYk8QC2uZ9tnpMQ4oFsI4QwQojnYADb3E8SIAkAbHOF+BfZBiRxP9uAJEASYJvLJNnmfrZ5TpK4n21eAEk8i8EgjAHbvGhsA7YBSbYlAZJ4fmxLss39JHGZbR7AtiTbgCRAEmCb52QbkMT9bHM/STwnSYBtHkASD2AbACQBxpgrJNnmfra5QggBGMA2gACEjG0DknhOxhhJ3M82V4gHsg0IIZ7JAJIASbYBIYwxIARYFgJkGSOeRciYBzIviCQAwADGgCRjIQAhZJv7SbItBACSjDEPZBuQZJvnIcm2JO5nG5AE2OZ5SAJs8wCSbEviOUmyzQPY5jLbkngWAwgBxoAknpNtwDYgiQeQxHOyzQPY5oHMFUIIwLYkwDZCCDAGMIAshG2emwVIxkKAbe5nnkmABBgAASAAbAMCwCAJwLYEYAtxmbEQgAAwmGcSiGcyzyIJAGwDmGezJUmyDdiWBEgCbCMAWZYxCGMhQBL3E7JtLCTJNmAbELINIIwxGGMhBAYBSOI5CSEAY8wVkgDbiGcRAjCIK4wlAbZt85xsAxiEMUKIBzDmWYyxEOJZJHGZJC6zDUiyzf0k2eZ+kgBj7mdbEg9gW5IkjG0AAdiWxHMRzyaMJfEAtiVxmW3uJ4n72QYk2UYAkmzblsRlQrYBxDMZACEJsC0JsC0JAGwDkgDb3E8IsC0JkATYBmwDQgghABAyxiD+BUKWZSGEbcC2JEASDyCJ+0niMttcJon72QYk2ZYkyTaXSeIBJNkGjGUZc4V4NvEsxkIA5vkwCCEAAWAA2wACkATY5vmxLYkXxAAIIQCDABCAMQZACBljjIWMeQBJtgEhLhNCABiEbQQghDHmMkmAbYQQBjAGEIAQ97PN/SRxP9uAMUaSbZ6XARC2ASHLgLEQYCyEQUiyzQtgG5DEi8A2l0nifrb515DEA9gGANvcz7YkQBLPSRIvmG1J3M+2JJ6JEM/BNpfZ5l9LPAeDeSbzgggJYQDbxrwIJPGCSeIFsC2J/0DmmcyzSOJ52AYk8QC2JUkCJPFCSeL5sc3zsM39JHGZJP6tJPEC2Ob5sW0b8yy2ucyYBzIA5gpJkrjMmMsk8fxI4vkyDyRJEgJAGHM/IZ6TEFcIIZ5F/KsJDOYFEQIAY9s8gG3ANveTxb+SJACQBACSeKFs828licsk8a8kifvZ5j+PwTwvY54P8UziRWIBIADM87B5Tsb8O5nnyzb3k8T9bAMYwBhAAEI8X+JZJAGSEA8kxP0sGyNeGANgXiTiWYR4QcxzM89mnpsAEC+EbS6zzQPY5jLbkngekngBjAHEs9jmuRjMM5kXwjbPj23uJ4kHEsZcYYR4FmPMC2AbsM1ltnkBbAO2uZ8kACEEIK4Q4jJJPCdJPIAxxhhAAJJ4HrZ5Hrb5V7LN/STZ5gpjDCAQAOJ5CfFCCCEA8RwE4grbtnkBJHGZJJ5FPJAQz5d5JmMbA2Bs8wCSbHOZMYBBXCFkG8BgMA9k2zaAMUY8m8E8HwbAYGzbBmxLksRzkgQYIxDGXGbMZUJcJsRltm1zP0k8gG0us82/hm0us82/km2uMM+XJB7ANmCbF41t7ieJZ0OZyWWSANvcT5JtLpME2AZsSwKMZQEIIQBhm/sJGXOZJMA2D2BbElcYxHORxLMYY+4nyTb3k8T9bHM/SYBt7icJsM39JAG2JdnmfpJsc5kk2wBCFoAAMIAxz0kS97PNA0iyDdgGJAGSuJ9tQBLPj21eMEm2bQOSAEm2eR6SeE62AUlcZpvnJMk2YJv7SeIySQBgm+dkG5DEsxhjAJAECHE/Y54fSdzPGAMghAAMYMwDCSEA8yzGAAZACBlzPyFjDCAJQGCeSdjmgYyxJJ6TJNs8J0m2AduAJEASYIy5QhJgmweQxBXGGGMsiQewzf0kSeJ+trmfJNuAbUkAIInLbHOZbUmAJMC2JMA2l0nifra5nyQus81lkngWY1kIAGzzAkgCbEuyzQsgyTb3k2Sby4SMAUmAbduShADbAALAPJMAJPFMBhmwuUwSYJv7CZCwDdhIkgDbXGEDAiQACTDGABhJto0lSeIKc4UxIGQsBCAA24AQYIwx5n6SuEwSl9mWZIzBIISMbUuSBNgGACEAAdjmfpJsA5grJCFsA7YBSZJ4HrYBDCAJMOYFEDLm+RFC2AaMhXghhBCAQdjmfpIA21wmyTb3kwTYti2J58c2IInLbEuSBNgGEEIYY9uSAMBYiPvZlgRIwjyLMfeTxGW2eRaBAWwDkgBJgG3uJwkAMMaAbSGEEGAbAQhhLHM/SYBtHsgAiOdmEICxEJdJAmzzLAKQBWCMEQACI4n72eYBjIUAIQSAAYwBSVxmm/tJss0DSLINAJJ4Tra5nyTbPIBtSYBtSYAkjDGAAIS4zDYvgCRjzPMyFuI5SeJ+trlMEmAbkMQVBrCNuEKI+xnzopEE2AYwCCGek20AAQgBtgHEc5EE2OZ+kmwDCFkABkAAxoBtQBLPSRJgm+dHEs/JNveTxP1s8wJI4gFs85xsA5IASYBtXjDbkrifbUmAEGCMMZYE2JbE82MbkARI4n62AUmAbf4FBC+YbZ4fSVwmhEBgjI1t8yzCmBdKEpcJITDPQTyQMQ9gWxLPybZtHsC2be4niQewzf0k8Zxs87wMAvHC2bbN82NbEiBJEv8RbPMAkiTZBmzzr2eb+0kCANuSeABJ3M82z0MSIEkSgHgWIUAI8yzGxgAGA0jihTMvjHkg28Y8J2PuJ2QMGAPGxrwQBpDEFeJZbPMs4grbvCDmhbPNFQJASOI5SeJ52LbN8yOJ+9nmMklcJon72QZs86Izz5dl/kPZlsTzY8xltnkeQojnyzYvgME2z8XmOdnmWSTAEs9kQIgrBID49xLPIon72QZsA7aFeBbxQLa5nzGAeS62eX4kAZJ4XuY5CMDYmBfMmBeBEC+cwfwHE1dI4vmxDQAYDIB5DsaY+0nihZIEALZ5foS4Qjwv2wDmWYS4nzEPJDDPYhtAPDfxQghxmSSelwEQgGUAA2Cel22exTwHAxjzgtnmASTZ5kVjmwewLYn72QZsG3OFwVxhmweQxP0k2cY8f+ZZbPNC2eYy2zyQeBZjXgAhXgDbtrlCPAfxTALxHIQxD2SEMJhnE7a5wjyTQACIK4SEuJ9tLrNtWxIPZDAABvMCmRfCNpfZ5vmRxAPYBmwb80DimcQVkngASQACAQgBkgBAEs+PbUmSeBHY5gWi2pbEZbYBSVxmm+ckCQBsA5JsAwjMMwlAEmDMsxjECyFkjEEAkjDGgBDiCtuAJJ6TbUk8gCTANg9gG5DEZZJ40djmgcwzCQDzfNmWJAmwzQNIss0D2AYASTwn24AkQBJgG7AtiQewLck2l9nmfpIA25J40diWZJv72QYk8fzY5lkMwrYkAIN4FsuAEICRhQAQmCskGdvmfrZ5LgbxQEKAMWBbEgbxbAYBSDK2DUgCJAEYQMhYCLAtictsA7YBIUASgMBgAARgm2cxgG1JXCbJNpfZRkjCPJAkwDZgW5JtHkCSbcC2JEm2uUwSz48kLpMEALYB25IA24AkwDaX2QZsS7LNA9gGhLjMtiTbkox5LgaQhDHmAWwDkgBJgG3bgCTuZxuQBEiybVuSbe5nG5AE2AZsS7LNAxgjnoMQsm0siQeyeRab+wkA24AkARJgDNiWBAAGARIAtg2AJADbgCQus82zCCEMIAvxLJIwzyQwQsaSeBaDMOZZjJCxEJdJ4gFsA0LGCEASYBuwLQmQxGXGGMQVkgDbACAJgTEWAoy5nyTANg9kAMQVtoWMJXE/25IA27YlSQIwCNvcT4jLLAOSuJ9tLrMtyTZgWxLPjyQAAyAA25Js80AGsC2JB5AEIDCSbBtLksQVBmOMADCSANu2uZ9tSZJ4AGMhAHOFJNuAbUm2hYxlcYUAEBjEsxhzmbEQYFsSAgNgEIAxQhaXGVsWAiQBtm0DkiTZ5lkMAoFB2BbiAWxzmSTuJwkDIDDPZBCAbZ4f25IASTw/trmfJO5nG7AtCZDE/STZ5gFsS+L5kQRI4jnZlsRzksT9JHE/24Ak7meb5yUAIcA2BmEsBGAABCBkzBUCA0iyzfMlMABgzGWSuMwYwEjiMiFjwDZXCAAhy5hnEbYBhBAgBFjGGAsBkmwDkgBAkm0AgxACjAEhnpcAMIjnS5JtSYBtHkASxjb3E0LYloQRQjyTQTwfAsAYA7KMuUwSYIwQwjyLMWCb+0kCbAOSAEm8ALYl8RwISVxmm8ts80LZ5jLbQlwhnskAto25wjyTeSYDAMZcZmyMQACSMM/BIABJkgBJtnkA27xobEviX8k2AGCezWAeSIgHsG3bNg9g2zb3k2SbF41t21wmicsk2eYy2zwPSVwmif9QkngexsZcZhsAMJgrhHgAywDi2YQxL5RtnoexMWAsxBUGAUhCAEI8gG3uJwkAhIy5zLaxbcAYEEIgAMTzksT9hLifEABIss0VBvNcbNsGbPP82OYK8UCSeABJvAC2Ads8J9tcZpvLbAOAJO5nzGXGiAeyLYlnMQACgXlekrifbZ6HJACQxItMEi+EeTbxTOIBzL/EACDxAEK8MOKZDNjmAWzzQObZxPMy5gEk8UIZ2waMjXkekgBjnh9JPF/mhRPiuYjnJp5JCHGZJEASlwkZA7Z5fmzzQALxTOZFJIkXRDwXSfyLxBVCkgBJ/DvY5jkZA0IAwjbPyRhAAIjnJckYQABC3M82zyIAYwBjzLOYF8Q2DyCEeRZJvIiEJB5IvCCSuJ8knpMkXgSSeH4kcZkk/k0k8SKQZJvLbHOZbR5AEg9g2zZgbAwY20YgAEnGAAbAXGGb+0nigcwzmWexzRUG8yxCxjyLQDyTucLmCtsAgHkm8UxCiOdkDNg2FgIQQvyLDIB4buJZJPECGAOAbUkIQBLPYp5JvBDGAGDM/YyNAYwx4jkYhCRAEv8akgBJXGEAOY0AbPOcJHGZbQCQBNjmfpIAzLMYYxDPZgBJ3M8YMBbiWQwCkGSMAWQBCGNJPIBtLrMNSAIkcZltLpME2AZsA5IASbZ5HpIA2zwn24AkQIj7GQNCPCdjnh9JgG3uJwmwzf0kcT/bgCQus80DSAJsA4BtQBIA2OZ+kgBJgG2eH0nczzaX2ZbEc5IE2AYkAbYB25K4n21JgCTuZ4wBJBljrpCEeTZhG7ANSOJ+tgEERhIgCcAgbAO2ASFAkjH3EwIQtnlOkowxQsYYwFgSD2BbCJDEFQLzQMaAJAxgG0AAQoAxYBuQBAgZYxCAJNs8kAEQgG1JvGCSANvcTxJgW5JtHsC2JO5nWxIvgCTuZ5v7SbIN2AYkCSGusC2JKwxgjEEAkmwDtgFJXGZbEiDJNveTBNjmedgGJEkCbAO2uZ8k7meby4QQQpYxV0jimQyAAGwAQMK2DSABAiTAgM3zIwDMCyTJNpfZBiTxLELINg8giSvMMwnbAAYhhHgmY4xBAEKAMYAQAmwDtiVxmZCxJJ7FAAjAtm1AEiBkbFsSIMk2l8kyFkJcYQxI4n62MQghBIAxBiRxmW3bknhOkjDGtgFJPIsQ4jnZBmwDkiTZ5n6SANvcTxJgm/tJAmwDthGyuMxYEiDJNiDJNv8SIWNJ3M+2MSCEQVwhyTZXGAQGkAQYA7a5nySELK4QgLEQlxljjIUAScYY25K4wiAk2bYthBDCGAMIQBJg27YkLrMtCSHLNgKQxAMZBGCb+0niAWwDCAADSLIN2AYkAZIA2zwPSYBtnockLrPNA0gCbNuWBEiyLYSwzf0k8fzYRmAASQDGGJDE87DNC2YbkARIss3zsC2JBxACEIBtwLYQArANSAIk2eYBhABjnpMkwDb3EwJsA8aAJJ7FPJN4XpJsA0LGPCfbQlwhACFjrhCAEM/JNs9JiCsEBkBgEIBtwDb3k8T9bAshAEkABjDmCiGL+1nGAIAkwDaAeTbx3IQQBrCNuEKSbS6TxP1sA5IA29xPEpfZ5tkI/iW2eU6SeC7iOYgrhADEs4lnEeIyISHEFbYxzyQQgBAPYJv7SeI52eYBbAOAJElcZpt/iW3uJ0kSgHj+BAIwNgZs8wJI4n62bfM8bPOcbAOAbe5nm/tJksQLZZvLJPEikGSbB5AE2OZ5SOIBJPG8zBW2hbhCXGHMFUYSIEkSz8tIAhDPJDBXSJJkjHg2gzEGbPM8bGMAYyEEIInnJMkYwDyTeb5sA8YA4gpjY8AYEAKEEA9kWxIPJJ5Fkm3uZ5vnYZsXjST+40jiCvFs4lmMuUI8F0k8P7Z50Ujifra5QlwhCZCEeF7GQjwfAnE/80zmfjZX2AA2L5h5YWxL4jJJPBfzryMAY56LeBZjnh9J/IvMs0ji+bHNswgA8aIygDEvGtsIAJDEi0YS95PE/Wzb5kUgCZCEeS6SbPMfQQhAXCHJNlcYBIAAbBsDgCQeyDwXIS6zjbGNAYRsY56beA7igSzzXIRtnpMxAAjxL5HEA9jmWcwD2ZYkicts2+YFsM3zkAQAtrnMNiCJB7AN2AaMbfOcbPN8mQcyBgDbvGgkcZkkSVxmm+dhWxIPIMQVBnOFJMQVkrifbV5E5tkMYGyMQAgJ8bzE82Wby4wBzAMJAQgEIGSMwQAYzItEIBAAAgEgbNsGbHOZJEk8i5GEACRxhXgO5jmY52CeSVxhzGVCAAbA2EYAiCsk2eZfzzbPAWUm95Nkm/tJss0DSLLN8yWEANsABpDE/Yy5QggZYx5IiMuMeRaBARBCgG1eMEmAbZ4fSYBtSbYB24Ak25IASYBtwDYgCZDEZbZ5AEmAMQaQZBuwDUjiOUmyDUjiMtvcTxL3sw1IAmxzP9uAJP4ltiXxQtkGJPGcJAG2AduAJEASYBuwLYnLJPGcbHM/SdzPNg8gCTDGAEIYywACI4n72eYy25IASbZ5ACHAMua5GAtxhUE8kCTbgG1JgBBXiGexzf2EbHOZJGOuMIBlIR5AEmAbAIyFMAghYwCwLYSQxAOZZxK2uUJgANuSAEmAbS6zLYnLJHGZbR5Akm3AtiTANiCJ5yGJ52EbkATY5jJJtrlMkm0uE0IYY66QxGW2eQDbgCTbXCaJyyQBtrmfJNvcT5Jt24AQ4lkk2eYBbCOEJAG2uZ+QMc8mCcA2gAEkAPPcJAHYSLYBbAAJEDLGICTZxiAkAbYB24Ak24AkLrMNSAIkARgA8UC2bUsChLhCPJOxzRUCkMQDmWcTD2Qbg3ggIQBjjAAk2bYtCSELYxkhC4MALAOyAGMAA0gyBjAIQBJgG7ANSJJkm+chyTYAIIRs80JJss0DSOI52eZ+kmzzALYBhBAvgG1JgCTbgG1JAEIIsM1lQpYBDCCJ+9k2xkjieQgZc5ltSVwmCbDN/SRhjAHbkngA2zwnSTwnIcA2AgAk2eYKg7ANSOJ5CHGFwCCexRhzhSTbgLEQl9mWxANIsm1bEiAJsA3YlsQD2AYkAZJsA5JsA7YBSTw/tgFJgCTbXCYJsM1zksRzss39JPEAtrnMNiAJkATY5jnZ5vmRBEjiMmPMs0jiOdnm+ZHE/WxzP0k8iwFsA4hnMwgh7mcbQACSeE62AQziBREyBoRsI4wxkgBJtnlOkmxzP0m2uUwS97MN2JbE8zKAJGME5lkk2eZ+QsY8D0kYBGAbsC2J+wnZBhAPJAmwzQNIss1lkrifbe4nCbDNcyB4ANuSuJ9tnpNtXhDzHAQCQCCegzHGABjMFcYAAvFs5pnM8yWJF8A2l9nmfrYB29xPEiCJy2zb5gWwzfNlrrDNC2Wby2zzbyJJEg9gm/vZ5jLbvAC2AcA2l9nmX2IbsG2bF5ltnsU8L9u2Mc8mMAAGwGCeiyQus83zI8TzEOJZxHOxjXggY56TbR7AGAEgnouxECCJ5yIAQAhAYIy5nyRjni/z3MwVkngASVwmifvZ5jJJPIBtnpMk/vVs86IQLzpJgCQus81ltnlOtnlBxAPZlsQDSMIAgG1eGPNM4grxwtiAbZ5F4l9im/tJAiTxnCTxLOaFMAaMeU7GPBfzbOYKY14Q8/yJfwXxfAjAmOdkGwCM+dcQss2/xDYvMkm2eSAjBAjxgkniOUniBTDmAWzzQEYSz0PImPtJ4kUjiSvEFZIQL5yxMQIDCNnmCoMAJHGFQLxA4jmYZ7HNFebfRhLPSZIkQJJt/jUkcT/b/DtI4gFscz9JkmwDtnkASbzIbGMAzPOybRuwzXOSxAtg2zbPjxBXiGcSD2QM2LbNczEIIZ4fIWMAMEYAQpK4zDbPwzaAAQDbvGCSeB62jQHbAOaFMAYwV9jmeUgCJPEAxgjEc7FtmweQZJt/JUkAUG0jMJJ4AEm2uZ8kwDZgG5DEc7ItiQcStgFJmGczzyQA25IABEYIYRuwDUji+ZEESOIy27Yl8ZwkAYBtnpMkQBL3sw3YliSJ58c2IInnYgDEi8g2IIn72eZ+knjRCGEQgCQuk8RlkgDbgG1AEgBI4jLbXGZbEmCbF4FtSVxmm+chiWcRgCTANs+PsRDimQzCGAMIIR7INmAbkAQgrpBkG7AtSQiBQVxhG7ANSAIwgCTbkgAEYJvnJAmwDSAAYwCDQGCeRRKXGQNCiCtsA8YYSYCQsSSexRhzmSRjDEIIwCCei23uJ8k2YFsSYJsHsA1Isi0JkGRbkm1AEmAbkATY5n6SbAO2JQGSbAO2AduSbAO2JdmWhAFsS7ItCZDEZbZ5HpIA24Ak2zwP25IA27wQRggB2AYkAZgrjIUwxoAxIAmwjRACIQDLQmCMbUmSANsANmAASQIkYWwDkgBj7mcbsA1IAiTZBmxLAiQBkgCMMQaBuUKSbUCSba4QAObZBCDEZcYYBCDEZZKMMQAgiSuEbYwkQAiwDQCSAMyzGQAhhDHmCiPJGACEELYtYwBJkoy5zDYgZMxltiUBtm1LkgRgJPGcbEviMtuSAEm2bXOZJEk8D2NACEDYBmxzmZAkY1mAJNtcJsm2bUmAJIyxba4QQgAGgXkgIcCYy2xLwgBCgCTbxkKAJMyzCCEeyDbPRQCYB5IE2BYyFrIM2AYkSbLNFUKWZcAYwFwhhLAtCcBIQtgGMMaSAGPMC2cbgblCiMuEEM8iiechCbDN/SRxmW3uZ5vnYRuQBEgCbEvifrYl8ZxsA5IA25Jscz9JAGAbACTZBmxL4gFsS7ItieckiedkmwewDQC2ASGeH9uSuEwSl9nmASQBtnkAY+4nxPMSmGcSVxgLcT9jQAgBGCOEuMI8X5J4TrZ5QcTzsi0JsM0DSAJsA7Yl8fzYlmSb52EZwEjiWYRtAJAEALYB24Ak7mcbkMRzksTzsA1I4nlI4jLbgKQAhCRxmW0us80LJonnxzYPYBsAjBGAbV4UBgFIksQLYNs2l9nmMttcJon/KAKDuUKSJJ4v8byEuJ8k/vUkcZkkSTyQARD/ISTxAkjieUjiMtv8a0jiBTAW4gphzLOI50tIEi+UsW0Ac4UkAJDEc5JkmyvMCyQAzDOZZ5Fkm+ckJMQVBiMECAnZ5nmZ58+8iGxL4oWSBEjiOUnifpJ4fmxL4gFs8y+xzXOyzYtGEi+YJNs8J9u8ALZ5foQABGAMSOJZzHMSAOIBbPOcJAAkwBgAMC+IJEAS95PEczHPl21JXCYJQLyoDOY5mGexzf0kcT9jAPFs5gUSz8Fgnpt5YYwQ/3qSuJ8k/q1s81zEcxPPxRiwzXMxz0E8N/MczBXG3E+WbcC2MQ9knsU2z5d5DuaBhBAA5llscz8hY8xzEQIwiGczz8XYGPOCSAJs80KY5yKJB7DNA0jiMts8D9s8gCReAEk8P7YlSeJ+tnketrmfbR5AEgBIksRltvnXsM39JPGCSeI52eaFkmQb8yzGPBeBeS5CQgDieRkDGNv857Ntm8ts868hiRdASEgSL4AxVwhAkiQukwRIkgRI4gFs2wZsc5ltLrPNczFX2AYA28qWCEASYJv7SbLNZZIA29xPEvezzYvIGEsCJAG2eU5CxpJ4FoOwDUgCbHM/SYBtnh9JgG3uJ4nnZBsAJNnmfpIADMI2IMRlxlwhAMxzsQ1IAoQAwBiQZJv7SeJ+trmfJMA2z0OSbQADSAIQz2QAY14oSYBt7icJsA3Y5jJJPIAkwDb3kwTY5gFsSwIkAbYl2eZ+kmwDgCTANveTxP1scz9JGGNACIG5wpjLJGEAhG0uMxbCIJ5JYJ5FEuYKy5grhADbAAKQBNgGhADbAAIQAixjnk3IAoy5QsgyxkgyBjDPJp7NAMaSeABJgDEgBNiWZBuwDUji+bENSLItCZBkm8skcZltLpNkmwewzWWSeB62AUncz7YkwDYgictsA5K4TBKX2eYy2wAgCZBk2zaXSZIE2JYE2LYNSOIFEDIWMgZsS+IKg5DEZbYB25IAIWMAEDLGICQBtgEM4rnYlgQIIWwDGEASYAxgjAFAEgBIss39JHE/YwwGQACAbUmAJK4wVxgLARgEgHgg29xPEgYB2LYNCCEASYBtjDEgCYG5QhLGNlcIQBL3sw1gAEmAZQwgZAwYCwGAJMC2bSFJxtxPEsaY+wkhnsW2EFcIDIC4wjaX2QYkAZJscz9JXGEA28YAAhACEJhnEQIQgG3AtiTuZxuQxGVCiBfEGANghBDGPCfbkrhMyBjAIABJtgHbkgBJ3M82YFsIAUiyDQjZBowl8QCSMAjANmAbEEII2UYIWcYAQsY8izGWxP1scz9JgCTbXGaMkQQIAQDGMoAAhADbXCbJNveTxHOybVuSJNuAbUm8AJJsA5IwxjyAJNv8O9iWxHOSZJvnJInnZBuwDUjiBZNkm+dHEmCby2wDkgBJAAYB2OYy24AQIAmwjAEQsrifZcwDCQGIZ7HN/SRhnskAlgEEgHkWSYBt7ieJ52SbF8y2EAKQBNjmfpIAjDEgicts8y+RxP1s8wBCCMA295PEA9jmediWxPOQZJvLJHGFMeaZCMQLYpsXzLZt/lUMIMRltm0L8TyEeCDxopPE85DE8zKYB7ItifvZto14DsKYZzGY5yUkBAAIwJjLbEviBbPNC2VbiCvEMxnMFcb8S2zb5n6SANtcJkmSJJ4fSbxQkngASbxgtm3zAkjiWcyzCQDxfAjEAwkBCMwzmRdEiAcyQogHEhICMEKIZxNCPJB5bgZxhbEQz8W8qAzmWWwDtgFJvGCSAEk8gG3+JZJ4EUji+ZHEc5LE/WxzmSQukwRIAiTx/NgGbHM/SbxgxoAxYMy/RBLPw5gXQjyQJAwA2OZZxHMRAiRxP9v8i8SzSOJfJP4FAgNgnkWI+9kGhAAhnh9jnocxDySEAATmCmMuE+IyIcyziecgMM/LNveTxPMygG0us839JNnmhRDPZIS4TAgwNgaMAcyzSAIAIQCQxAPY5gUxzyYeSAjASAIAIWOek23uZwzYts0DSOIySba5wgDGkngggQEwmCskAQjAGAAQmCuMeX4kSQIkAZIkAZJscz8hnpd4IWzzALZt8/zYBmxL4gWQZBsAjI15AEm2+feRxPMjiX+JJEASz48kLpNkmxfMNpfZ5nkJwDYA2OZ5mWcyzyYwL4zBPIskzLMJxDMZzL+RAYQAQJIkQBLihTPmMtsYzLNIAgDbXGbbNmDbNs+PsW3bgG2eh22eH0kAIIkHsM1zMc9kDIAyEwFgrpDEZbZ5TpIA29xPEvezzf0kcT/b3E8IsI24QhJgm/tJAjDPJJ6LbUnczzYgicts8/xI4jLbgCQAYxnzLJIA2zyLkIXAGPMvsQ1IAoSMAUm2uZ8k21wmifvZ5n6SANuAbUmAbUmAEPczBoS4n20A8VwkcT/b3E8SYJvnRxL3sy3JNveTBNjmMknczzaXSbLNC2VbkiTbPF9CFvezjAEQGMC2JEm2uUwS97MNGGOuEAIQQgjAGAMgZAG2AYQQwjaAwAAYAPG8JNnmfkKAMQbxLMZCkjDGPA9jzLNI4jlJ4n62AduAJEASD2DbNiAJkGSb5yGJF8w2z8O2JJ6HJNvcT5Jtnock2zwnSYBtAJAE2AZsA5J4wSQBtrlMkm3uJ8k2z8m2JEASYJvLJAGYZxKAbR5IyOJ+lgGMJNsABkBgjIUkAcZCGMAYQACSbPMAtiVxPyFjHkASD2Cb5yRkDCCEbHM/SbYlcT/bGISQMZcJ2QYQgBBgG0AAkjCAMfcT4goB2OYFMQBCCAFgjDGI5yKJ+9kGhBCYZ7GMASRhMAjAGIMQMuYFsy2JyyQZCwG2AdtCCEkAYBuwLQkDSAKMjYUkARhj7idkLARYxgCSbAOAJNsABiFkjMAAmGcSgCTbAGBbEs/LAAhAEs9ijIUAY56XEOIKY4xBAJIA2xjEFcZCPJDAALa5nyRAkm2eRQjZ5gWQBBgDQsayAARgm/tJAmzblgRI4n62eX4kAba5nyTANg9gWxIgCbDNZZJscz9J3M82YBuQBEiyLYn72bYtCZBkm+chyTYvMklcZpvLbEviMtuAJJ6HbUmAJO5nG7CNADCSMJIAY+4nifvZBmwDQoAkYy4TMhYCELZ5ICFkm+dHEmCb+0nCGPNcDCAJQNjmeUiyLQQgnsU29xPiWQRgmysMgACMhbhMEpfZ5jnZBiQBCEAIsM39JPH82OaFEjLmmQgAg3kW2/ynMbbN/STZts3zEgjE85LEC2Cby2zb5gFs8zyMMQ9k2zYPZIx5Tra5TBL3EwIkSeI52eYy24Btnh9JPD+SuEwSz0s8k3g28bxs2+Z52LbN/SRxmW2ekyReKNtcZpv72eYFEEI8i21eEIN4FiGuMIBtLrPNc7Jtm8uEJAFC3M+YK8wzGQSAQGCMeRbzbOL5si2J5yWexTYPIMTzEOJ+knihJHGZJF4o29zPNiCJF4Ftnh9JtgFJPIBt/q1s85xsc5kkSTw/tm1zmW3uZ5t/iSSeH9v8iwzi2QwGsA0ACASAABDPxRhAvIiMhXgA27yIzIvOmAcSz2IMIJ7NAMb8m4lnM89mnott7ickxP2MAQTmhTPmhZLE/WzzALaFeH4kAQjAGAFgAAPmuRgDAALzwgghYwDzQMZcZpv7SeIySTyQeCBjADDG2OYFEOIK80CSeE6SuMw2z48knpNtHkDINi+AJJ6TEP8i8cJJ4n62AUncz7Zt7ieJfwdJkrjMNi+YbZ6HJNu8UJK4zDZgG7DN/SRxP0mAbf41JAlhAMwD2eYFkAQgEMY8gBCX2ea5GNvcT5Ik7mfbNoB5JvNCGBvb5gWQhEA8fwLxTOL5EFcIcT/bvFDG/Ccw5tlQa00Sz0MSl9nmfpIA29xPEmAbkMTzsC2J+9nmfpIA29xPEmCbf4kknh/bgG1J3M+2JEAS97PNc5IE2Ob5EQJsA5YxkgBJAOZZjPlXkmSbyyQBGMtCtrlMEmCbyyQBtgFJgDGAAYS4Qlxhm/tJ4jnZ5n6SANvcT5JtLpME2OZ+kgDb3E8SYJsXzLYkSYBtALDNCyCJyyRxmW3ANiAEIJ6LJMA2YFuSJNsAIGQbAUgCbAMYhCTANi+YsRDPxSCukMTzsA1gjCUBkngAY4wk24BtQBIgyTZgWxIgicts8wCSbHOZJMA2ANiWxHOSxP1sA5IA21wmyTZgWxIgifvZ5n6SANu2AUmAJMA2IIkXwDZgWxIgCbAtyTYA2JYESOIBbAO2JXE/29xPEiAJsA0IAcZCCAAwxkiyDdiWJAkwxlwhCcAYYxCSuJ9twDb3kwRIss39hACMMYAAJHGFQQC2eQDbQoAkAGGb+wkBCGOMbQCQxGW2JfGcJPGcbAMYQBLimYxtwFgSDyRkAbYRzyQwV0gCbAO2JRkDGCFAEoAwxgCyjBHGQoAk29xPkm0EIARgrjDmeZlnEldIsg1I4jLbXCaJy2zbloQQAmwDGCEEgABsA0II2zw/QmAQwjZXCCHbvFCSMMa2AUk8i0EAxkKAEMI295ME2OZ+QogrbHOFARAAQhYPYBmQBdg2lgQIAcYYSYAxxlgSAEjifrZ5ANtcJgmQZJvnZFsSz0kSBgCMAUmAba4QQoBt7ieJ+9nmfpIA29xPEmDbtiRAkm1JgG3uJ4kHsA1I4jLb3E8S97PN/SRxP9s8J9uAJECSbS6zLYnLbAOSAEm2ucw2IInnJIn72QZsA5IASYBt7icJsM1lkmwDtiVxmRBgzP2EAMSz2Oa5GEAS97MNIJ6LJACwDUiyzf2EeE62AWOekyTuZ1sSxlgSIIlnMYBlWYhnMsbcT8hYCIF5NgHY5n6SANu8AMaSACGek23uJ4kXzDZgG5AESAJsJIL7SeIBbPMfQRLPjyTbtvlPIIl/K0lcJonLbHOFARBCkngexsaAsTEPJCTxnGwDgG3uZxtACPEAtm3zXMRzMM/N2LbNv5Uk2zwnSbxobPNC2eZ+knh+JHE/24BtwDYgBCCukMTzI4nnJf4F4oUxgBAPJJ7FNs9DEoCQhHkutjGAbUlcJsRzksQLJokHsG2b+0niMkm8yGxL4gFs8/zY5n6SuJ9tXjSSuMy2bcC2JACQxAsmCZAkiQeQxP1scz9jwJhnMYBtxL/AAJgHMub5sc3zMAYsA4gXkSQA8XwZA5j/GOK5GPO8zHMQz2aeL0mAECAEIJ7NABhjBCDE8xCyDWCeizEvhAAQkmzzojMA5pnEM4kHMgYQL4h5bkK2+ZfY5n6SeCBxhRD3s81zss0VBkBcYZtnEc9mXjghY8CY+xkjrpDE/WzzorHN82PM8xIIxL/ImBfANmDbtiTuZ5vnZBuwzQtmm8ts8+8jCbAtSRIgyTb3k8T9JHGZJNvcTxLPyTZgG7Btm8sk8QJI4jnZ5jJJXGGMjREvEvFMAvFs5oWzzWW2uZ8knkW86CQBCEk8LwHIQjyTeV5CAAbxTAKDeSDbtrnCAEI8gBD/DrZtc5kkSQDiCglAraXEZZKwzXOSxHOyzf0k8Zxs85wk8Txs8wCSuMw2LwJJgG3uJ4kHsA1Iss3zkGSb+0kCbPMAkmxzPyFeCAHYBmwLAcaSAEm2AUlcZhuwDUjiuQiMEMI2z48k7meb5yRkDAgZcz9JgG3uJwmwzf0kcZltnock24Aknh/bgCTbvIgMQpJtzLOJZ5FkmwewjRAChACEbZ6TkDH3k8SzmGexDMjiMmMukwRgAIxlhJBtAAMgnkkIAbYBDELImAcQQmCexVgIAdjmuRhAEg8kANs8P5Js85xsS5LEZbYBQBJgm/tJ4n62eR62AUncTxJgm+dHkm3uJ4n72eZ+krjMNiDJNveTBAC2bUuSZJvLJHE/2zyAbUmAJMA2YFsIgTGWJAmwzXOyLUkSYJv7CQEYAGEMAEII21xhnkkAgCTANs9DCAFgLGMAhCwEYIwR4jJjLhMyBmwLSeIyYy6zzWWSAAyAkMRltgFAkm0uE+IyY0ASYJsHsA0AkgAhY0kYY4yxJC6TZCzEZbYBY1mSAMQVtgEMQgjxTObZBGAbgwAkARiMsbEkSbYB21wmicskAbZtSwIk8fzY5n6SuMJcYQwghGwbCwEIDAAIIZ6XbUASYJsHsC1JYMAYA0IIDIAAJAGYK4wRQhjANsI2IIn72RZCAJIA27YlcZkxRhKAETKWBCAADGAbsCwEYABjSYAQ9zO2LYkHkARgjAFjIV4A25IAwLYQApDE87DNA0gCbHM/SbYBSbYB24AkQBJgm3+JJO5nmwewLQmQZBuwLYnnJIn72ZbEZba5TJJt7ifJNmBbEiCJ+9nmRWMbkMQLJQmwzf0k2eZfIgnAAMZCljHPSxL3sw3IQhhjEIAQzyJs8wCSuMw2gAAwz2SuMJbECyZkzBUC8y8wCAAjBFjmWQQgi/sZ87yMJACBeSZhmweQxHOyzXOSZJsHkGSb5yQREvezbUn857PNc7Jt2zYvgCReZLYBwLYknodtHsC2bZ6TbcTzIZ7JPF9CXCbEc7LNc5LE8zLPZCTxLOJfYK4w5jJjSfzr2eb5sc1ltnnBbPM8bAOSeADbxrxQknhOtgEhHsA2z8MYwNjmWQwGwGAAWbJ4QcSzGdtCPIt5JgNghDAvjEE8ixAvhJDEczHGvAC2JXE/SfyHksRzss0DSOIBbEviX8m2JP6VbPOcJPF8CQDxTAaQxAOZZzPPn3huBvFMAoF4Ftu8EAZAPJtBPJMBjLmfEGDMs4h/mXhBbPMC2LbNC2UM2OZ+krhMEiAEALa5wiCePyHEC2Keg3hBJAGSEJK4n20eQBL/EklcYZ6beSZjG8C8iGzzggkAIQABIIyNAdvczxjAPJsAJPGcJAEYwDaXSeJZjCSuEMY8LwMYC/H8GBtzPyFjHsAY8yxCAIB4LrYlcT9JiGczGMwVtnku5oEk2eYy24BtSZIASbZtcz9JvAC2bfNC2eZ+tnnBJPE8bEviMkm2+ZfY5nnY5n62JUniOUniMtvczzYPYJtnEc8iCTDmeQghMC8q8UziednmASRxmW0AwGCeyTyLEM+PbQAw5lnMv8Agnk0gnoPBIABjY54vASAwz2Kbfz3bPIAk2zwPmyrJNg8gyTYPYJv7SeI52eYySdzPNiAJAGxzP0n8K0niuRjEc7ENSOI5SbIN2AYkAZIA2zwn2wghQAgB2DZGPDeDAIQAIQABGGOusM2zGMQVkgBJ3M82gAEQxhhJAAaDAGzbBoQQz2QAIcCYF8A2D2BbEg9gm/vZBiQBkgDbPIBtXgBJ3M82IAkAJNkGbAOSAIwQgAAwgDFgG5BkG7ANSAIk8SwGsC0EGAtxP0nczxjAAJIAYwCDeF62hYwxloUAIWPAGCMJsC0ESAIwxlxmWQhjGcAgMAAGgUFIAmwDGABhjABkGWMkcT/bkrifbUm2JXGZbUASYFuSbe5nWxIvgCTANmBbEpdJ4jLbkgDb3M82z0MSYNs2l0niedjmASTZBmxLsg1IAmxzP9uSbAO2uUwSIMk2z0kSgMBIAhDGmCuEjAFJPC+BeRbLGAyAAIQQAAaDQNi2Lcm2JMC2bUmSMMYARpIsY9uSMIgHMhYSAoRsGwOSuJ9txANJAiRhAGPbCCEAg5Bk27aQsSQExrYkSQAGAdiWZJtnMcZClmUZCyGMbXOZEFcYYwAwFsIACEmAsW0AEAKMMYAkACPEFcYyBkBgrrAtiedhW5JtQBJgmweQZFsSD2CbBxAy5n62AUlcZhuQhLjCNs8ihAAMwrYkwDZgG8A2CAkMkrifJNsAwrYQgEEAtiUBQhhjSbaFEAhZCNsAYBsAbHOZJO5nLIS4whgQQmCEeBZhG7AtCUBgjDHPhwEAIQDxTAYAjAHbQlwmieclAMyz2JYECAHGmCuEMM9FEpdJ4gqDABC2eQBJgG2eH9s8P7YlcT/bkgDb/EtsA5K4n21JvGC2JXE/25K4zDbPjyQewLYk21xmG5AESAIwGADxLEI8gGVACPMCGcQVQlxmGfMsxkKAMQ8gyTYgiedhGyEEYBAAIAmwDdiWxAtgG5DE/WxLAoyFACHEA9kGJAEAAvN8SQKMhYwBQAgAbAOSAMA295PEZbYBSTwnSdzPtiQADAICkMT9bNuWBACSbPMAtiVxP9s8P5IkcZltHsA2z8k2AEgCAElcZhuwbZvLbAPGtiVxP9tcZpvLbAO2bQOAJEmAJF4ASUI8gG2uMAAGwPzLhG2ek7Ft/kXCmMtsY57J2OaBDAJAIAAE4pmEMS+UbQCwzXOSJMk2z49tnodt27xgtm0DtgFJPIt5NmHMA9hGXCEJkMQDSAIkIQAhnkU8f+KFEQAGMAaMMc8iBCAkcT9jADC2zP2EAATmmcxzM7ZtA5jnYDCIK4yFAEAS97PN/WwDtgHbtgHANs/JtiSeH9u2ecEk8W9lWxIPYJsHsG2b+9mWxP0k8QC2eX5s8yIyz2IshHj+DOL5EP8i24BtXjDbiGcyAOa5GPMsApDEZcbGPCchnosBMMa86AyAeRZJPIsAEIBlwBjAPF9CgDFgzHMxz594/szzkmSb/xzGvGCSeCHMsxnANveTBBgAYwBxhRCXSeK5iCskcYW5wrYQlwkhAMQDGXOZJB7IIJ4/8VwkAZK4TMgYAxgL8QCSeBFIQgCSeCHEswjZBox5TsY8F/EstnkWA2BeOEkA5oWwLYkHkMS/km3bXCaJyyTxPCTxnCRxP0mSuJ9tnockSbyIzL/AvCBCAOaBjDGAbdtcZmzMFQYjZJvLbPMsAgAkCQFCiCsk2bbNZZJ4wSRJAiRxmSQukwQIIZ5JIABJkmwDtm0L8YIJ8QDGACBJEiDJNg9gWxIgSRLPSRIPIIlnEgAoMxFCtrmfJACwzWW2AUkAIInLbPM8JPEAtgHbgCRAEmAbsA1IAiTZBiTZ5jLbkrifMUYSl0niMts8J9uAJJ6TJNtcJgmwzf0kYYx5wYyFAGMhLpPEA9jmMtuSAEmAbe4niedinsWY+wkZA0LGAAaQBBhzPyGuEADGmBeNbe4niechCbANSLIN2OY5SeJ+knhOtgHbgCRAkm0MIIn72QaMAUk8JyFjnpMkjDEGQGAkAQjMFcaAsZAkwDaX2ZYEAJIwgG3AGJAECAG2AcTzkmSbK4wkwBiwDQgZCwEIDOK5CBnbBiTxPCRxmW0ewLYkXgDbgCRJtrlMEmAbkGQbkGSby2xzP0mSANuSbHOZbUASYFsSIAmwzQPYBiRJ4n62AduSAEm2ucy2JJ6HJMA2YBuQBAC2uZ8kQBJgm/tJss1zsg1IAiRhnkkYY2xLEgKMASHuZ4y4QhZgzAPYFkJcYVsSIMkY89wMgAAkAbYxCEmAbe4nCYMxNgaEEAAGkITAGGMQAEKWbUmAMfcTAoy5nxBgDEgCbHOFwLwwBiFkLISxDBgLYQAEgMAAtiUBkjDGPJABJAG2AYSxLADxHAyAADAAApBkm8tsS+IySVxmm8tsS7ItCZBkm+dHEmCb+0nCGAO2hRCAkDHGWBIgCWMMGAQAtiQkG2yEJMyzGPO8hCzAGACEAMAYQGCeyVxhLEmSbcA2IAkhBGAQxhhAyDYCkGSb+0kCbAO2JXGZJNs8kACEAGNAFmAMIISMMQBCFmDMcxFCtgHbkngA24AQgAAQGCFjHkAIMAaMMQAgCZBkG5AE2AaEjAHbXCaJ5yGJ+9kGbAOSuJ9tQBL3sw1IAiRxP9vcTxL3s839JPGcbAO2JfEAkgDbPCfbACAJACTxnIwxzyRkcYUAMIAxgACEAIwxVwhAFmAbYSwE2JbEsxiEEGCMQQCSMADCNs+XELLN/SQBtrmfJMA2l0kCbAOSAGOMEGDMAwghbAO2EUIYhBACwDyLZSEAY8zzIwmwDdgGJPEAkmxzP0m2uZ8kHsBGIgCMbRDPyTb3kySJ+9nmBbPN85AkiReNbe4niQcQkmSby2zzALa5nyRJPIBtwDYvmLExz8m2be4nBABC3M82DyCJyyRhANu2ucw2YNs2L4h4JmEMYIwlAQjEC2NsG/OC2eb5kcTzY9s2l9mWBEiSxGWSJPEikCQJkMQVAvF8CEk8D2Oeh22eiwAQz808X5IwAGCbKwQCkMRlxsa8YLYlcYUAjAFjQAgQMgaEEFdI4n7G3M82z8M2YJvnJIkXTBLPw7ZtnpNtSVwmiedkG7DN/SRxP0m8YJJ4TrYB29zPtiQuk8TzY5v7SeL5kcS/hiTAGLDNsxghXhRGSIjnRxLPyRiwLcTzEs9imwcwts0LJsSzCMAYAIQQVwgZA7aNeaGMjbnMNi8CIa4Qz5cQgHg280BCmOdPAMYAAhACEM9NIJ5JXCFkm/tJ4jnZ5n6SAEn8S2wDgG1ACPMskrifMebZBOZZxLOZK8yziGcSz5/5F5hnEw9kLAQIcZkQVwgA82zi+bLN/SRxP9s8F4N5gQyAuUII8fwZ21wmiQewzfMygDHPydhYCBBCPIsk29zPNleIB5LE85DEi0CSJO5nW5Ik/kNJ4jnZtg3YBiTxAJJ4IcyzGcsIxPNhMBiMMQYDYDDPJAAhAJAEIBAA4jmIZzLPzTw381xs2+Z+QhjMsxjb5n7GGMC2bZ6XuUKSEIAAjHkeQgDmednmMtu2uUySJJ6TbUlcJsk2D2Cb54Zaa5IASTwn29xPEmCb5yQJsA3YBiQBkgDbgCSeH9uAbUASz0kSz49twDYgCZAE2OYy25J4fmxzP0mAJMA2z8m2EOKBbEsCJGGMJdnmfkII21wmCQPYBhDPYhuQxPMjxBXiCtvcT8gYQMgCbPMAQgjAmBfMNiCJB7AtiX+JbUmAJNtcZlsSz0mSbQCQxPNjGzAWkgTYBjAAAhACjLlMyDZgLIlnMVcYA5IAScYYQAgw5n6SAGMAI2TMFUYSYBlzhSTANmCb+0niOUnifra5zFgIwDyLJMAYACRhELZ5ANuSAEm2eX4k8fzYBiQBtrlMEvezzfMjictsA7Yl8QC2AUmSbHM/STyAbe4nyTb3k2Sb50cSD2DbNiDJNiBJEgDY5jnZlsQDSLLN87AtCZBkG2MsCRDCGCOeyQBCCMuAEJfZloVAPIsx5goh7mfMZbaFEJIAjDHPyTYgCRDifsa2JUkCbAMYAAEIAcbcTxLPwzaAkQQYIzBCAMYYQACSbHM/STwXAxhzhZEEIJ7FNpcJIQDbgG0eQIj7SQIQtm0DkngeQlwhbGMQgJCxEJfZlgQYc5kkwDaXSQJsc5kknsUY8yIyVwghEBjAtjEgiQcQwiAQgG1eACEuM+Yy25JsA5IASVxhEAAGsG0MSOIyIcA2gACEjDGIB5IE2OYKIWQbgZEE2OaBxDMZwLYkwDYASAIkYQAEYJsXQBJgGzAWAmxL4vmxLYnLjDEAIIkXTBJgG7AtiReBbUkAIInnZBuQBNgGbAOSAEnczzZgWxKXSeI52eZ+kmwDkmxzP0k8J9vcTxJgmxeNJMA295ME2AZsA5IASRhjrhCYZxECbAPGgCRAEg9gG5AEYIy5n5BlIQyAsM1zsg1I4kUjZAwIGfNCGASAMQaEEEKAMQbxXCQZY55NABhACDAGbAOSeE6SANuAbUASIMk2IMk2YBuQBEiyDUjYkghJ/LtJAiRJ4l9PEvezzYtGEpfZts39JHGZJB7ANi8CIUAI8VwkAYBtY8C2JB7IIK6wjTAGjDHPIkkS/yIDYB7ImCvMMwnEsxgDAOKZhCQewDYgCZAkicskAZIkcT9JACCJ52RbEpdJAgBJvGhs2wZs8/wY2waMjbmfMQIhBAhxhbhCSAgAjDH/AoMBjIW4QlwhxHMRzyYk8YLZ5n5CPJC4wpj72QYwiAeShHnhbPM8bHOZbf59JPGcJPH82OYBJPEC2JbEi0wSIIl/iSSek21JPA9JPCdJ3M8yLwJjnh8hXihJPIt5viRxP2OeH9sABkAAQoAxLyIBGAOYZ7EMIP69zPNnnkUS9xPiWQSAeBZJPD/GAOK5GAPGgDFgbMwD2OZfZP51xHMTAAKQxPMw5jLbvGDGgDFXGEmAJJ6LATDPRRIACHGFQFxhjEG8cEK2AcwLZDCYKyTxQgjANi+Ybe4nxGWSAEk8J9uSuMwYA0iSxAsmZNs2l0niRSOJyyTxb2LbNmBbEpdJ4oWyzWW2edFI4l9DEi8C24BtxLMZAAMIIQCEMUIS9zPmMtsAYBvzvGRhnpt5FklCXCFeOEnGXGbMFeZ52UYAQgghAPEchG0AwABCtjEA5pkMBsA8F0m8UJIkAZJsc5ltLpMkCQBsc5mNBKBMSxiwJfEAtrmfJO5nm/tJsg1I4oWyzf0kAbZ5TrYBSVwmCQBsA5IA29xPEmCb+0niOdkGbEvifrYl8QIIAQACAyCeyQC2AQQgyRgDCBnzPGwjhDDPJJ7FNiDJWAjACFnmeQjZRgAYBCAEGHOFQQCSeBaDsA3YBiQBkmwDkrifbUASz8M2YBuQBEgCbHM/SdzPNg8giQewDdgGJAGSANuAsRBgWxL3sy2JB5AE2OYK80ziWWxLksQVBjAGJNnmfpK4nzHmuQnMFcZCgJCxbUlCCGMh2zyAJNuAMUaIKwRgLIQBEJK4zBgjxBXCGANIAmxzP0mAbS6TZJv7SeIy2zyAJMA2YFuSJMA2DyAJsG1bEg8gCQBscz9JgG1eKEmAbS6TxGW2eX4k2eZ+krjMNveTBNjmMtuSAEmAbe4nhMAACAwGASBsA7YBScayAIQQAjAGZAG2EQAC80xCCGMMSDIW4jLbGIQQYFuSMWBbkiTbtgFJACBkG0A8kG1JXCbJNvcTQtjmfkKAsRCAsA3YFkIIAcY8D0kAGAS2uUISl9kGMIAQwhiQBNg2lgVIMpYE2AZsA5KEjLmfJNsABvFAQsbcT5JtIWMMYAxIAjDGkhBC3M+2bUmAJJ6TMSALMAZsS+I5SeIBbAMYAAFIAmxzmSQAA2CeSQDGGIQk7mebK8wzCQwgCWGb+0myDWAkcT/bAAIQ4gphm3+JJNuAEAJjbFsSIMm2JMA2YFsSBnGFJMA2YBuQBEgCANs8gCTuZ5v7SQIADIC4wjZgW5JtQJIk24CxEABI4n62uULIMsYYSwIkAba5TJJtHsC2JEASl9nmeUjifrYB25IAQBJgG7AtCQAkAba5nyTbkrifbV4oSba5TBJgGwAk8Zxscz9JAGAbACRxP9s8D9uSuJ9thBAgZIwQss39JAG2hQBjHkAIsM39JPEAxlxmG5AECPEsArAN2OZ+kgBJgG2eiwEkAcaAbUASlwnZBhCAJMA2YAwIYSQBxoBtQBLPYgBJgDH3k8Rzsi3JNpdJAmzzAJIAwDYgyTYPICkAG4wknpMk/iW2ucw2/1aSeADbXGab5yGJ+9m2zYtAEg8gyTYvgDEAYJ7JPC9jrjBXGHOFwQgBGIQQIInnRxIgxP2MMc/LWBJXCAyAeA7iORiMsW0AkCSJy2xzmW0us81ltnlOtnmR2bbNc7LN85AkCUAAGAAjCwAk8SKQxBUCMOYFMYAxANhGPH/m+TDPIsRlxjyQwdjmOdnmMiFJxjyAEIB4INsYwJhnMQ8kiRfAtiT+g9jmX8M2LwLbtrmfbf41bNu2zXOyzf0kcT/bPBfzfNnmCiEJEDIGMMY8kHgmA2CezTyQMS+UMc+PJO5nzPMjifvZ5rmY5yXEZbYBYwDxH0NIQjyLba4wxoAx4oEk8fzY5kVjGzDGXCHEs4grZPH8SOK5mOcliRfANg8knsU2z8VcYczzZQDANs8iAASAAIwBxBWSbPMAxjwPYx7ANiAJ8bwk2eYKASCeRcg2YJsrjCQAcYUkHkCIK8QVtnkAIcyziWexDWCeL0mAJEmAbSFAiMsk8fwIGWOeRQiDeS62bfP82OZFI4nnYVsSl0ni+ZHEv5Vt2/xLbAO2bdvmRSaJ+9mWJAQIGQMY2zyLuEIIMOYy2zyQABAIAIEAjLnMmAcSz5ckSbwQ4pkEAkA8iyTuZxuBACTxAEJCAMLYGAFIEuJ5GBsjXghJPIBt21xmmwewzWW2JfEAttVaSgASNi+IJC6zLYn72eZ+kgDbPCdJgG3uJ4nnZBuwLQmwLQmQxP1sc5kk2zw/kgDb3E8SBjAGJNnmAWxL4nkIYQAEgABsAxgA8fwZhBDGGEAAQoBtAPFcJAG2AcyziecmhGxzP0nczzb3kwRgANsAApDE/WxzP0mAbe4nCbAtyTZgWxLPQxKX2QYk2eaFE7IQAAYw5jJZAAIAjAEhYx7AtiRAEvezDRhjJPG8hCzANmBZSAgBYJ5N2AZsS+J+tiUBkgAMwjZXGEmAMWBbkiTbtgFJgJAxYFsSIAmwzf2EELa5nyTANg8gCbANAJIA29xPEmAbACTZ5jLbgCRJgG0eQJJtLrMtCUBgMMaAJEmAbUASl9nmAWxzmSTAtiRAEmAbsM1lkiQBtrnMNpdJAiRxmW3bkiTZ5jJJgG0eQJJt7mdbkiSMsSzL3E8IYwwYA5IASbYB25IAQBJXGMAYgwAk2bYtSRIAGMtCXGGb+wkBtrnMWBIgyTYPYJvLhAAAAUjiMtuAbUCSJMwzCdsABpCEwGCMEbaFEAhZxkII24BtSVwmifvZ5n6SuMIYYyQhbPOcbEviMkkYhG0eQBJgG7AthBAy5oGMJMAYwCCeRcg2gHg+hBBgm/sJcT9jSRhjACHE/WzbliSJB7ANSAJsA7YBSTwnIQyAMMYghHggAdi2LUmSbS4TMuZ+QlxmzAMIYYwBSYBtY0mAJNs8gCTANveTBNjmfpIA2/xLJNnmMkkABrCNeEGEbCOeRQhhmwcyCECSbQCDEDLmfkLGXCEAIcA2IIkrjDFgLARgnkkIIWxzhQGMAUmAJMA2YJv7SQIk2eZ+kngetrmfJNs8D0mAbV4w25JsA5J4wSQBtgFJgG3ANiCJ5ySJ+9nmfpK4n23AthACkATY5n6SuMIAlmUBthHGQlwmCbDN/SRhAIRtwDYASAIASTw/tnlOknhOtrmfJGPMc7GNEAIk2QYASdzPNveTZIwR4gFsAwhAEvezzf0kAbZ5fmwDkgBJgG3uJwmwDRgEwf1sXhSS+E8jiReBbf6VjLnMtiQeQBLPjzEC8QKZB5LEFQIwtgwgAEnGxjyQeBbbtgFjYwCBABCIZzO2JfGiMTYGjHkBbPOcbPMAtgHbvFC2ucw2l9kGJPG8DALAAMY8i0BcYQxgjCXxAJKMeU5CgJAkAJDEA5nnYJ7JPAcBSAIk8QCSbAMYDOI5CADxvCRJss0DSAIQAEaIBzKSuEIAtnlOtnkekrifbdvczzb3k8QDSOIBbEviMkk8kJDEv5Uk/jUk8e9jm/vZ5rmI52KZF0wS97MNYK4QQrwgxgDiRSHEi0g8X5J4IQRgzLMIQBIvmCT+JbYBzLMY8/xI4lkMYJvnZJv7SeIFM+ZZxHMT/yrGiGcx5t/ENoAAJPFCiGcSAOKFMS+IMWDMC2YMIADbgG2ek20eQBLPwzYgiRfANiBkm+dLvCBCxjwnY0CI58c2lxkDxjyAMYABMJjnwzyLEAAgnk3Y5lkEQojnYZvLJEkCJNnmBbDNc5Jkm+chiefHNiCJyyQBkgDbXGab5ySJF0CSJJ6TJF4A27YxGAAjCQEgnsU2D2SukIUAEIAQL4R5JiMJkARI4gGMeQDbtnlOknihbGOeRRIASBICJNnmhTCAbQxgDCCegwEwmBeRJEmAJEm2Adu2ucw2YNs2V9iAWmuSuJ9tSdzPtiRAkm0uk8T9bPMAkmwDtgFJgCTANveTZJvLJAG2eaEk2QZsA5J4TpK4n20eQMg2gAAkcZltQJJtni+BuUISYBvAIAAMApAE2Ob5kQTYBjCAJAAB2AZsc5kkwLYkQBL3sw3YlsQDCAHGgCTuZ1uSbcA2IInLJHGZbe4nCbDN/SQBtgHbgCRAEmCb+0kCbPP8SAJsA7YBSVwmCQPYBhCAJACDsM0DCYwk29xPEoB5JvEstnkeQoBt7icJMAYwiGeRBNgGJNnmCiMJMEbIQjybMeZ+QgjbXGEQAEIIY8wVBvGikGTbtiQeQJJt7ifJNv8SSbYBSYBtLpPEC2CbyyRxP9uAJC6zbZv7SQIkcZltQJJtwDYgCQAkcT/bgG1JgCTANg8gCbANAJIA21xmWxLPSRL3s81zss39JAFCiGexjUEAQoAxgBACbHM/IcQVtrmfJAyAsA0IcZltBCCJy2zbBiTxPCQBmCuMuZ8kwDaXSQJsGwsBQsZCCMz9jATY5jJJgG0AScZYPJt5NiHbgLEknpMkrjAPZMxlkmxzP0mYZxOAbQBjLAkDSEIAGABhjAGEMAgAYZsrhCwAgTHGIAAhYyEAMBYCEMZCgG3uJwkDGPMAkjDGAIDAPIsQ9zPmfkI8iwBscz9JAOYKY8C2EJcZSwIkYQBjDIBAYJ7FtiRAyJj7SeJ+tnl+JNnmedgGJPGcJNlGAEKAbcA2QgghC7CNABAYYyFAEmAbsA1IQmAA25J4AWwDkgBJ3M8YA2AkAQjANmAbkMRzEsIYI66QBNgGbAOSAEmAbcA2IIn7SQJsc5kkLrMN2AYk8QCSbAO2uZ8knh/bXCaJyyRxmW0ukwQAtnkASTyAbS6TxP1scz8hY4wkrhDPYptnEUK2MQgAgQEk8Txs8wBCxgACwDyLJO5nGwAk2eZ+kgDANgBI4jLbvACSeH5scz9JGMCYZzHPJACEEAYwBjAAQghhjHkWSYBt7ifJNiDJNmAbkMT9bAOSuJ9tSQGAuZ8kHkASl9nmRWBbEiBJEi+AbV4wSTwP25IASdxPEi+YbS4zloR4INtcZluI+wnxLOb5MgaEEFfYts0DSOL5MeZ+xra5TJIk7icJI4TB/JvZBmwDkrifbS6TxItMEpfZti2Jfw1JgCRJtrnMNgJAIJ6DeD4MYFsSz2IwCATiWWzz/Bgbc4VAAAhJPA/b3M+2JK4QzyReCNtcYSRxhcAAGNv860myzYvAtiReANu2AdtcZpsXgW3ANs9FPIttnpNtnodt7ieJ+9nmOUmyzWW2eU62eQDbtrmfJF4II8QLZpsrzHMzgDHPYgDbPBfzwhjEcxDPlySeH9vcz5jnZJv72eZ+xoAxz8OAeS62eTbzghnzLzLPQTxfkjDPxTb3kwQgAGMAY8wV5tnE8ycQAAJAYABjHkCIZzHPTWAAYx5IYB5ICMC8cMaYF4UxL4jAAMY8kEE8iySel3hR2OZ52OZ+krifJNsARogHkCQECHGFuEIIELIN2OZ+khCAEAKQBACSAGOuEIAkSTwv80IICQFCAMYYMDZGPItt2wAgCcAAGAwASJLEi8a2JEk8D0mAJF4ASZIASZIkcZkkLrPNc7LNA0jiAWzznGzb5n6SjAGEMYB4gcwziWcyV9jmWQwASOIBjLnCYB7Itm2ek23EFZK4zDbPyTYPIIl/LQMY80ACMLYNYGzzQOIKY9uYF0KSbQCwLQmQxP0kAZJ4bgKqEGAsBEjiAWwDkmzzgtkGJAG2uUwSl9mWxP0k2eYBbAOSuJ8k24BtQBIASLItiftJAmzbBiRxP0m2JQGWhXheBrDMAwgZA7YBSTwnSQBCyDYvgBDPQ4hnMc9FEiAEGNtGAELGXCaJy2xL4n5CgDEGkMRltgFJPA/bgCQAsC2JB7DN/STxPCQBtm0DkgDb3E8SYJvLJNkGJNmWxBVCiPvZBoQAIYRtwDYgCQAk2UZcYYy5QhL3sw1IAiQBtgFjQAhAALYBBADYlgTYBmxLss39jBFCAAIwBjAABiGJB5BkG7CMEQKMEcZcYSTxALa5TBKAeCDbkgBJgG0AYwxIAiTxnGwDgCSehyTbAGCbyyTxnCTxLAYQ4jlJ4vmxzXOSBEiybVsS95NkG5AE2AZsS+IBbHM/Sba5TBLPlwGMAQziWYyFAMQzGQCBQWCEELa5zBiwLQnzQEK8IAawjRBCXGGMsS2Jy4wBSYAkAIMAbNuWhAFsA8aSAEm2ucy2JJ7FAAgAAdgGACEhwDaAQdg8i2xAtgEEliQwALYBSYAQYBuQxP1sA0LGAAIjCcBghBDGtgEMAiFkG7AtBAgZAwjAtpAQYJv7WRayDWAkcT/bAAIjZMwDCQCDMMbIkoQxlsRzMQhAEgAYCwkhAAyAeCaBuUKWZYyxkLGQsRAPIMk2D2AbkMRltrnCPJMxFgKEAGMAkAQYY2wjAAQGQAC2ucw2IEmSbcA2IIn72eYBbEviCgNgELYl2ZbEAxnEMxlJPIBtSbYlAbaFANuSEIBtwDYgxGVCiAeyzWVCgLEsxAsii+diLAtJss39JAG2JWEwCACBASTZ5gWwLYnLJPEAtgFJtiVJsi2J+9mWBEgCAEm2uZ8k2zwPY8wDSQJs8wLY5gEk2eYBjDEPJAmwzWW2eQFsA5IQtnleAgPYBiTxL5HFZbYBSTwnYx5Akm1eANu8EAZAPIuxJMC2JABhGyFkG/G8JNm2zWWSeH4k2ZbE/STZlsQDSACBAIR4Hra5zLYkXjBJknhOtrlMEg9gmwewzWW2eR6SeADbPA/bvACSuMLY5nkYA5hnMTYGMELcz9g2zyKMbfN8CcwLJIyNeQAh7mdszAMYY56LJABAPJPAXGGb+0kCJAGAbcA2l9kGAEn8SyTxnGxzP9u2ecFsS+IySTwvAyCeSRjb5jJJkmwDtm0DmGcyz5ckSfxLbPOcJGH+BeaZDCALA2BeEEmAkCRjQBIgJMRltgEhLpMESOIKY5vLJEkCJAG2uUJI4l8iiSvEsxjb5gWwzb/IvBC2bXM/SZJ4oWzzAJL49zMvhBDPRTybMeYK8SzGPD/GPIAk7mdszL+BATDPxZjnZJv7SeI5SeIyIds8J2MA8y8xEmCeTRLPSRKXSbLNczHPnwEwz2Kb52TMAwhxmTEPIGSbF8IgjDGIZzMA4tkEgEA8H+K5CPEs5oEkYZ7FMs/JmOdhm+chiftJ4rkIwBgwNsY8i23MczDPYpv7SeIyYy6TxHOSxHOybRvzXGzzQhjAtjGXSZIESOIBbAO2Ads8kHlRGcTzMgaEuJ+xEIAQ4grxTOI5CElcYa6wzf0k8Txs2+Z5SJIEALZt85wk8QC2bQO2ucw2z5d5LrZt8/xIss0DSLLNZbaN+U8mhAAkSQIkcT8hnpMQABhzmW0ewDYGwFxhm389Y2MuM+Yy25K4TBKX2QYwtiXxPCTZ5gFs8zxs2+YFk8SzocyUAHGZbV4ASVxmG5AE2OYySbYB24AkQBL3s82/RBLPyTbPjyQus80DSAIwzyRscz9JtgEhYx7AtiSexSBeEEmAbZ4fScYYQAhAAJhnMeZ+Qjwn2whjjCSekyQAgwAwxvxLJAG2eU62JQGSuMw2YBuQZFsSIInnxzbPjyTuZ5sHkATY5nkIAZYBIcA2/xJJgG3uJ4nnZQCEbQBjLIn7GQtJAjDPYszzsC2JKwQGgQGMMZIASYBtHkCSba4wCCGEbYxlIUAIMOZ+QsYYxHMRMuZ+kmxzmSTbPA9JXGEAxBW2AduSeE6SeB7GGEnGQlxmWxLPj23AtiRAkm2eH0mAbe4nCbDNZbYlAYAkwDbPSwBCgDGAATBClgHbACCJy2wLIYQAY8yzSAIQV9jGGEvCAJKMeQAhY+4nCbAN2JYkifvZ5gGEAGMuE+IBjLlMyBgwxjyLJC6TBAC2uZ8kAGMMYJAExlxhJAFgJMA2tgAwAhBX2OYySYAkwDYASAIwxjyAbUmAJNsABvEstiUBQsY8J9tCiGcyCCFjAJAEALYxCEASl9kGMIgHkoR5FssYIcCYyyTZ5jJJtgGEEA9gG0AIYWwDiCuEjIUQtgHbXCaJyyQBtnlOtiXxAJIA29xPkm0usw1I4gqDuMI2IMlYFoAQMgZsSxIy5n6SMMaAbUCSJNvczzYgCRDCAAjbxpIASbZ5FiFkmxdAkm0ewDYgifvZRggBQoBljBCAAGwDmGcSACCJ+9kGMIAkwJj7SQIwxoAkDGCMkIUAbCOEbAO2AUmAJNu8AJIA29xPEmAbsA1IAiTxPGxzmW1JPIBtQBL3sw1I4vmxDUgCJNnmASTZ5jLbkrjCIDDGkngASba5nyTuZ5v7SbINALYBSYAk24AQYMxlkrjMNpdJMsYAGEnGGMTzZ57FGJAESOI52QZsCwHGCEAIgwCMMQBCCJDE/WxzP0mAbe4nCbAN2AYkAZIA2wAgyTb3kwQAtiVxmW2ejQBsbPP82LbNZbZ5wWzzIrDNA0jihZLE82Pbtm0eSDw38xwMABjznCRxhQAQgBDPj23b3E8SABgAY8zzIZ5JPAfxfAkhbANCPIvBAJjnz2AAxLPYts39JPGcbPOcJAGSeKEk8S+RxAPY5gURCAzmRWfbNi+cASzzLEIS9zPGALZtI55JSOJ5SLLNFQbAXCEkyTYA2OY52ZbEFQIw5n5C3M+Y5yWexTaXGfNA5lls86IwAOaZxPOyzWXGPJAw5gEk8UDmBbHN8zAGMLZ5Tra5nyTuZ5sXzgAYzLNYFuKFMMY8F/F8SQIQgDHPyZjnIYnnYp6XMf8aQtxPEvezDdjmuZhnE8LGPIu4wjwH8y+zzXMxL5CwzfMjiRdMEs/DmBdCXGGbF51AIP4F5vkzgDGX2eYyYx7ICAlJ4l8iiedkmweQZJv7SUI8mwCEAEASIAQghIx5TkI8i7nCtiRJACCJ+0niuQgAcYWQbZ6TbR5ACLBtDNjmOUniOUkSAoR4FvFMBvNMAkA8m3m+jHkASQBgzGXGPItBALYBDCAJkMT9bPNvJUkSl9nmOdnmfpJ4TpIkAZK4TJIk7mebKwQgifvZ5gEk2eZ+kngWASAk8Zxs80AG8yy2ucw295MkCZBkm8uMjXlOtrmfbQyAQRgDCEASl9nmWYQkrhCSeKEkIQAhISEAcYUQgBDiBTEABvOCSOIFsM0D2LYNSAIA21xm2zag1pokQAhhG7ANSAJsA5IASTwn2zwn24AkQBIA2OYy24AkQBJgm/tJss1zkmSbf4kk2wACAwBCxjw/kgCMMSCJF8Q8izGAASQBCMA2z5fAPJsQAmxzP0k8k22EuMwYwACSAARgm+diAGNACJAEIADbgG1AEiAJsM1ltiVxmSTb3E8SYBuQBNgGJAG2AUASz8M2DyDJNs/JthDCtiQukwRgAAQGYZv7SQIA24Ak24BtSZIA25Jsc4WQBSAA21wmZAzYFgKMJQGSAGPMFZJsA0LGPIBtLpMESLLNAxnEA0kCbPM8hBCAbcA2IAkQwlgWMgZsA5JsSwIkARgAAdjm+ZEE2AaEuJ9tLjOWBAgZcz8hLjMGhAAExpj7SbLNZUIIDMI2YJv7SQKMMVdI4nlIsg1gEJK4zDbPj20AIQmQhbANYIwRQrwoDAIwFgIkARgExhgQAoxtA5IAIWMAg8AYS5IE2OZ+QojnYIxtCwGAsRAgyTIGgwAQGEmAbcC2EOKBhIwxCECSMQYjCQGAbbCRAEk8gG3ARhgQMiAAYywJABtAAiQBxhgAg7jCNpdJ4n7GQsZCgBACsI1BAJK4zDZXGMBYCEAIGSOEjDGAEFcIwDaAEQIQzyQA21whZBkLIWzzALYlcYVBAELG3M+2JJ6TbUASQggDALYBhCQusw0IIZ6LbQQGsC0JkMRltgEM4rkIARhjAAFIwlxhDAC2EbIASQACwNgGEFdIss1lkgDb3E+IK4RtnpNtQBKX2ZYECBljnoMAjIV4TpIAwDaAEDIW4oEMAmPM/YQAYwCBEQJsG0sCJAGAbe5nWxIgxLMI2wAGAUgCbPOcbEsCbEsCJHGZbUm8YLb5l0iyzWWSeC7mWYwB20IIQBJgm+dHEmCb+0myzf0kcZltwDYgCZAEYABjIQRgm+dHkm1Akm0AgwAwCEASxpjnZBuQBEjCAMZcZhuQBAgBthEAIAmwzf2EAMsARsg2gACEuJ8x95ME2Oa5GIQQxjKAAIRsSwJscz9JgG3uJwmwzf0kcT/bgG1JABCSuMzYNgBIksRlkiTxIpAESJLEA9jmBbAN2AYA2zwP2zyAJJ4f21xhnsWYy2zzXAzGmMts86IQgDECQLxABsA8B/NCSYj7SQIQz595gcQDSQIkSbIN2LYticskcT/bPIBt2/xLbPMvsS2J+wkBkhCAJO5nG0BcYWybB7Btm/vZ5l9kEIjnYIwBY+4nZJv7CfE8jHlOkrjMmOckiftJ4n7GtrnCPJsxBmzz/FgGjLlCSAIk8UAC8bwk8VzEcxMIQBJXiAcyRiCem/gXCEASDyCJK8wVQhhAEg9gWxKAeFFIAoR4foT41xPiWQyAQQAYY64QknguAkA8i22ei3k280IY81wMYJv7SeJ5GPMAtgEhnoN4ANvczzbPZABknk0I8UwSiMtsAxgA8y8SAoR4FvNsBrAN2OYKc4UQgBAyBjC2Mc/NYJ5JAIhnM8/B/KsIGfMvEeJZzLOJK4x5oWwDmGcxBmwDtnketgEEgDEGEM8mAGPuJ0mIy4wRAGAMIK6QZJv72eYBJPFA4oFscz9JAGAbMMYAiGcSVwjxnCRxmW2uMIAQz0XYNuYBjI25wgDGGACwDdjG2OZ5iQeyzXOybZv7SQKMJXGZJC6zbRuQxAtg2zb/Ekm2+deQhAAk8YJJAjDPIsk2D2Cb+9kGJPE8hBCYF0SSbS6zzRXimQQghHletnkgAxgDAEaIZxEA4l9mMIAxAgEAxsbGxjyQwTw3g3gmgQEwGEASLwLbtnmhJPFMyGlj/iWSbPP8SAJsA5Jscz9JgG3AtiSeh21AEvezLQmwLYnnJGQMSLLNi8Y2IAmQBNgGMAACkMT9bHOFkMX9jLmfJNsAQhbPyRgwFgJsS+KFkzBg7icJ81yMAWPMMwkhHkASYIwBJNnmMtuSAEASl9nmfpK4n20eQBIPYBuwLYkXwDYgCZAEALYBSYAxRsgYsC0JEAIQtvlXksRltgHbkiTZBiTZBmxzhRACMIhnkWSbZxEY24AkQBJgG7ANSAIkcZkxRggw5n5CxtxPyLYxIIn72eZ+krifsRAPIAnAAJYxDySJy2zzAEIAAsAYc5kkDGDMZUIIjDH3E+IyYy6TZIyxLQkAbEuSxP1sA7YBSYAk24CxEEYSYCwJsM1lkrifsSzLQrZ5AEmAbS6TBNhGYIRsA8aAEAKQhDEGEEIAxthYSBLPYgAMwhjAAAgM4tkMQhJgjLEtCQBsS5KEeSZhjBGyzRXiCtuAJB7AWMi2JEASVxjAtrEkSYCNALBtLAkQMhZCNmAAbK6QAEm2eS62AZDEFTaSJGxjDIAkMADGQsaYZxJCACCEeBbbgBCAsA3YlsQDGAsBQhhjSQjbtiVJss0VQhZgDEgCMIAxIIRBGPMAQoAxIAmwbRuQZIyRJATYBhDGmGeRxGVCxhgAAQjZRjwXSQAGMAYQgBDGGLAtxAOJK4xlCVkGjIW4TAiwjXguQsa2JUmyDdhGCAFCxjyAJMA2YBuQBEgCbHOZJGOMJMA2xlgSz8M29xMChBCAsSTANveTZBuQZJv7SQJs8yxCyDYPZBDPYhsQQgCAMSDE/WxL4oUzz0USgABsYxCAJMC2bUmAJMA2z0OSbZ6Tbe4nCZBkmweQxHMxz2LM/STZ5jJJPA/bXCZkLISwDdgGJAGSANvcTxLGWAgBGGMAQBL3s81lkmxzP0k8F2OMASQBxoCxEIBBAEKAbcSzGQQgCTDGAAgh21xhAEmAMWAbkMQLJsT9jAHbQoBlIUAIsA0gAEmAbUk8D9s8P5IA29xPEpcZYyQFDyQeSBKXSbLNC2DbNgDY5jLbgG3bPD+SuJ8kHkASl0nigQxgzGW2uZ8QV5jnwyAkcYXBPJt4YQziWYS4TMg2V5hnMg8gQIjLJNnmhbPBAAYAbCOeLyFJPF/imQwA2JbEZZJsA4Bt27Z5ASTxALb5V5IkiQewzWW2AQxgDGCexRgBSOJfyTYPIIkHsC0JkCQJEOIK8UC2eQAhQJIknsUIAUJCPIBtDGDMczIW4oGEkCQA8bxsc5kxAEgCjLnCXCHEi0g8mwAwz58AEA9kjEA8i20hni9zhW3AGJDEcxICEIAxYJsXQgC2eU62eX6EAGPuJ8T9bPMsBsC8QAIAjHkWIYTA/LsYwFiI5yGJ5yQESOL5Eg8k7ieeH2GeL9s8P+L5M4B4HkKAEPcT4vmxzfMjieckxP0sA8a8AEK8CIx5wWxzP0mAEPczBhCAEPeTxP2MMYAxIMmYBzAGhDDPzWAwzyKJ5yGJ+xlzmRDPRbwobEsS4jJjHkASDyBJEiDE8zKAba4Qknh+JAnxAJYBY8A25lkk2eYy2zwX8xzMCyIE2OYKAQgBQkKAEGBbEi+ceRZjBAJAPJsAANu2ucw2YNs2z49t7ieJB5AkCZBkmxfEvDDCNi+YbQBAGAPGtrlMkiRAiOciAIQknsW8cLZ5QQzGGAMgAMQVQgCAABDPJK4QEuK5mGcytrnCIBAA4goh7ieJB7DNFeKZxHMQQlxmbBuBACRxmSReZJJ4AWxjANvVtiQAARjzAJIA2wBgG5DEi8C2JO4nCZDEZba5TBIgiRfMNs9iAAQgxPMykrifbUAIEOK5CEASgHm+jCXZBjBXGHOFeBZjDAKQADBItgFJXGZbEvezDUjifpYxkgDbCAwgC5AEGHM/IUCSbQBjjHgukmwDkmxL4jlJAmzzAJJs84JJss39JAG2JfGcbEviAWwDtiUBCMC2JC6zDUiyzYvGtiSeh23AtiTbkmwDknhOQsa2AUmAJNu2EbK4n20h2zyAEAZxhW1JljG2AUkYhBACwAghjBFCxoAk24Ak7icLAdgGhACMMQaBATDGkrifbQCwLYkrhLGQbQDxTMI297MtBEjCGPMC2AYk2QYASdzPNoBBSAIASdxPCEAYY2xLwkjiMttCCEAIwAAYxHORBNi2DUjiAYwlAULGtoWMAQSAAYwxiAcyxjybQUgCELIQto0BhBBXGEASl9mWBNjmWcyzCSHuZywJkIR5JvFcjAFZCAwgBGAQyCAA82xCCLANAAZJXGGbZ5IkCcAGkAwCgwBbCMA8iyRsA5IkwDYgyTYASAIA2xiEEIBBGCMwV0gCbNuWJIR4NoMAbANCgG0hwNg2gBACbAMIQBYAIJ5FEg9kbEsyBoR4TpYxCECSbUm2uUzIGGMsCZAF2AYsYx7IGIFBCGFeEEk8FwMIcZmQMQIDyEIYSwJsA7YlAcaAJMA2IAmQZBuwDUgCJAG2uZ8QArCNeSDbgG1JtnkASYBtLpNkG4FBGANCxtzPWBLPjyTbgBCAwAC2AUm2JQG2bQshhLhMkjHmCssYQBJXGEkAIAmwDdgWQhgLSTIGbPMswjb3E7INWBYCJAG2JXE/25IA25IASbZ5TpK4TBLPSRJgjHk2c4UQD2Sei20AkMQDmQeSxLMYYwwgifvZlmQbwLyIJHE/21whhAAMgAAQgCSeH8sARhJgjJHEC2cAIcAylwlZFuJ+kmwDtnle5gohQAgwBjAIIWOEbZ6HJC6zLQmwzf0k2eYySYBtxPMgEADiBbHN/SRJ4oWSBEiSxPOwbds2/2YCMAYQgLExYBuBeA4CASAQz5dt2zyAEM9ibPNvYABsSTyAJB5AkiQeQEgSz2KeSSAeSJIkLrPNA5kHsm2b+0niedi2LYkHsC2JF0oSz0kSIInLbHOZbR5AEiCJ+wlJAiRxP9s8gCSehyReANs8D9uSeCBzhTEASOIy21xhEADmCmMuMwYwxgDmgYQASZIAxPOyDWBsS+IySTwXgXk2AxjzXIQkrjC2uZ8knpNtnpd4IGMEgHhRSAIkcZll21whhLifbe5nDGCEeBbxHMQVxvw7SOL5Es8kACHEczPPQQAYAPNM4l8kyTb/ecxzMy+Ebe4nXiib5yQAkHggm8vMs9nmOYjnZYx5IPMstnku5l9kzAth/tUMYMxzEuJ5SOI5SeIK8Wzm+TAAxph/PWMuMwYwDyTEsxhJPC/xbOYKSVwmiedhDNjmRWCbf5EREuJFZpsrxANJAmwDtrlMCCHEAwhJ4grzgkjiAYS4TIgXwDYPYIxACPEC2JYEAJIAwDaX2eYySVwmiedhG8A8m3kO4vmSZJsXyjbPw5jnRxIvgCReANu2eS7mmQQCkMQLZzCAbdsYwJjnRwjAIBAAAoMBjIW4n23bkgBJPIt5bgLxTAJACBkDmBdOEs/DNs/LPA+Uack2V0jiMts8D0m8ULYBSQBgm3+JJMA295PEAxhjni9JgG3ANiAJEOJ+lgHMc5EE2OZ+QoBtACFkzHOyLQkwlgVIMgaEjHkAgXkmSQA2gGSb+0ni+bEN2AYkAULGgJAxz8k2gMBcIQmQBNjmfpJ4TrZ5TrYBSYAkwDYgiedkG7ANSAIkAbYl2eYy25IASVxmm/tJss39JAG2AduAJEAS97PN/SQBtrmfJMA2YBsAJAG2JXGZJNvcTwgw5n6SANsABiFkjBGyDBgDQsZCGEmAMfeTxPMyAAIDGGMsCwGSbHM/SQAGsA0YC0kCjLnMthACIWSb5ySJKwyAMMY8kxACjIUAY4xtSZJ4ANtcJonLbPM8JAG2AduSAEm2AQzi2YwkwJj7SbLNZZJsc5kkAAMAthGAJMC2JNuAbUmAJMyzCcA2l9lGCEkCbEuyDWAQgCTbXGYbISQJY4wBEFfYBiRxmSTANiDJNg9gm/tJAiRxmTEGgxBCALa5TBJgm/sJIWwDGACBESAZS7LN/SQBtgEMQhKX2cYGkGwDkpBk20ZCArAlAdiAARCX2UZgJAAEBmxzmQAJkATY5n5CgG2weSZJ3M9YFoAAEEJcYZ7F2LYQAoO4QhLGmPtJsg0IAYAxzyKEbPMvkQRgAARgG8AAQggAgTHGIIyFeB7GQgAgyTaXSQJsc4UQso0QwgC2eU7GkjCAJGNJmGcxRgBCAAZhGwEIcZlt7ifJNpfZBiRxP9uAJEm2AduAJJ6TJAyAAADbgG1AkpCxbUmAJJ7FGAshrrDN/YQABGAbsA1I4rkIDALAALYl2QYkAZIwiCts80AGIWQsCbAN2BZCPIttQBIgictsA0LGPD+SuJ9t7ieJy2xzmSRjIcA2/xJJgG0AA0gyRgCY5yIJsA3YlsRlkmwDkmxzP0mYZxKAbcA2IAmQZJvnJMk295ME2OZ+kngWYxkDSMIYS+IBbPN8CYwQD2CMARCAJMA295ME2OZ+kgDb3E/IGAMghHggcYUxBrANSOI5SbLNZZJsS+J+tnkASTyAbZ6JkDDPzTb/era5zDYvGkm8IAawjQFsc5kkXgBJAOLZBIB5XrZt87wEAmPMAwhhJPFMAhDmmYxBPIB5NptnsyXxfNk8J0mSAMAYAxhzmW2eiwEkSQIk8W8iSRIA2LbNCyVJEiDJtm3AtiQuk2SbF8A2l9kGbNvmMkmSeADbtnkA27Yl8SwGA2CeiyTuZ5sXgRD3MwYQlrmfECAEIJ5JvEgM4pkE5grbPIsAMIAxYAwgrpDEZZK4wtjmX2SEeBZjGyMLA2D+ZeZ52bbN/STxALZ5voSxMQ9gmxdCPJN4LrZ5TrZ5Tra5nyTMA9nmOdnmfpIwz0E8FyHMFbZtc5ltnpMknpNtnosBMP8y8xzMA9nmOdkGsME8LwmQxBW2eQAbsM3zYwmBxHOSBIgHsLF5XgIQAJJ4IPMczAsjAMQVkjAPJMk2L4Qx5lnEC2KbZzHPJgDL3M8YQABCPD9CXCbJNi+AkG0AAyAAxBVCgLEkAAEYA5hnMQYwz2QQz2Qwz5dt7ieJ5ySJy4wlAZIk8VwE5kUiACEM5lmEeAGMeU6SJHE/Y64wAAYD2JYESAJsA7YRV9jmAWwjAGPAtjFgLMRlQoBtSZIASQBgm8uM+deQxGW2eQAhDCDE85DE/SRxP2MAMAYwmBdIAJK4TMg2D2DMFeb5kiQJkGSb52GbF5kx5pkMIIR5LsZcJolnMc/FGINAPJP5VxPGPIAxz8M25gpJkngetnkASTwP2wBgm+ePapsXwDYgCZAE2JZkm+ckiedHEmCb+0kCjDGAbV4Q8Sy2eRYjiechCZAEWBbiCgNgEAAG8VyEeE7GGEmAkLFtIQAwFiAuM/eTANnmuRnAAOYyWxKX2QbEZRJgG5DEsxjANs/DNiAkCQMYA4Ak21wmicts2+Y5SQJs86KxzfMjiechyTYgifvZBmxL4gGEAIyxJECSbV4o25IASbZ5FgNIsi0JkATYBmwDkgBJPIt5FmMuE0IAxhjLQgiMECCJy4xtA7IQAMa2EMI2D2QQQggMANiWZFsSABLGBhkDFoAQgDDGXCFkGWPMswghBMY2AgNgEBhJGGOuEM9FEmBbiMuMAQwCAWAkAba5TBJXGGNAEpfZBoQQGGNJkgDbgG1JQgjbgG1JtgHbkgCMMSBJCMBgEFfYBiQBGATiWWzznCTxnGwLSTIGbAshJNmWxBUCwBhjJAGSACHbxpIQGMA2IEkSgDHmMiEMArAtCQMgMFfYBmxLAgBJtgEM4lmMAUkACABhAwgBkm3uJwmwjYQNSOIygyRAkm0kAJvnIS6TAGzbkiTxTLINSMIGybYEGCRxPwO2AMm2JECSbduAJC6zLYSwLQljDCAwgCQAIQQY2waEhBDPZgBjIcQVtiUBGCFjQMgYEAIQtrmfbSHAGCMJsI0ALAvZBoyFhBCY5yBsI4R4ASRxhXkW24grJHGFEeJZxLMY81wMAvEstiXZ5jJJgG3ANiBJkm1JXCYJsC0JwCAk2QYAhJBtQMgYg8BIss0VAsAYA0KAMeKZzLMZBCAJsM1lxphnkQTYBmwLAcbcTwghiftJsm1bkm0hBADYlmSb52UAIS4T4jJJXCbJNiDEZbYRQoAknh/bXCYJsA1I4rkYYwwgyTb3k2QbkATYBiQBQgACwBgDknhe5oGEAAyAsA0IcT9jLhPCCCEADAIDALYlAba5TBIgCbAtJAnAALYRQrxwBkAAQtxPkm0ewBgjBCCuEAKMMYAQlxkDkrifbUncT5YxYAwIAcY8gBAPIAmwzf0kAbZ5EdiWBNiWxHMjeABJPIAkSYAkAJDEv4Zt2zyAbds8X+YFkYTAPJO5wpgHEAIAIQCDeSbxTOIycZkBQDyTuEJIEiDJmMssAwDimYQkni+bZzHPyzYvOgEgELZ5oYR4AWzzgkniAWwDgCReKNs8gCSei3gW27a5TBLPRQAISba5n21eMEmAbdtcZmwMIABJPIAkQJIkzAtjMIAxzyIwgBBgG8BgAMyzmSuEeL7EswkAkARI4plsc5mFAIEQlxljnsVYCPEcDIB5JvNcbPMCSAIwVxgDxgDm2QyAeRZJAGDbmOckiSsMgHgmA2CezSBeEGOei0A8kCSuEP8qkrhCPIsk/iWSeC7iCiEuk8SzmGcRAhDPYluIK4SxMWDM8yWeixDPwYhnsc2zSIC5zOY/h22eRQJb4pkE5llswFwm8ZwkcT9J3M+2MVeYBxLiCvMvsmzMZZIAQMiY52QM2OYBJPGCCdkGjLnMGPNcbAOYF8SYK8xzM89NGGMeSMgYg3kO4nnZ5n62uZ8kHsA2IMm2be4nybZtwDYgyzaXGfMAtrmfkBD3M+aBzHMzGNu2eQFsA5IASTwnSYjnJUkSlxnbBgBJgCQAEAIwz0EAxsaIKyTZ5jJjLpMkBCAAzAtnmxdEPItt7ifJNpfZts1ltrlCCAHGCEmAJO4nCfNcjG1LQjybAYSMMc8mEBjMc5HECyYJ8UwCAWD+ZQLxbAawbRvAXGEMAMaIZzE25n62eQEk8QDGACAJYZvnYp7FNmDbNv8mkiRxP9tcIe6HWmuSACRsAJDEA9gGAEmAbcA2IInLJPE8bPOC2QaEjIUAScYAQsi2JMA2gAEkGQMIIcA2DySeyQBCAOJ+BgG2uZ8k2wBCFpcZI4Rscz9JPIBtQBKAbUCSzf0MADaAJDDPJgnABgyAJJ6TbS6TZBsAbAOSeAAhwJjnRxJgm+dHkm1Akm3ANiCJyyRxmW3uZ1sSz48kwDaXScIgANsABiEJsC0JYwwIGfMCSOIy24BtQBLPj7GQEOIK21wmCWOMQUiyDUiyzXOyLUkSYJvnZRBCxgAGkMT9jIWMAdvcTxIgCbDN/SQBtgFsQJIBARLYBiTZBjDGkrifbYQQl9nmMkk8gG1ACEA8BwFghABjAPNMAhACjAEMQhKX2QYk2QZsSwIkAbaNMZJsS+IyIWPuJwQYAxhjLpPE/WxLAiQBtgFJtrmfJJ7FGHOZJC6zbVuSJMA2z0MS5tkEANgGJNnmfpK4n23uJ4Swzf2EANsAAhACELYBjCQAcYVt24AkQBJgm/sJIQDbAAaQhAAbYWMEyDZIXCbJNmAbkAQgyTYIAPNM4gEkAzaAjSRAAmxzP0nY5pkE5n6SuMwGAcY8gCTuZ5v7SQIwxhjEsxljSTyAJMA2BgFI4gpzhW0EgBCyjcAIAbYRz8E8kwCEAGNAEg9gG5AE2MYYCyEAWcY8J2NJgJCxEOIK24AQYIyRhLAN2BZCIISMMYBtQBIgCWMM2BZCAJIwiGexzf1sSwIASbZ5wWxLAiQBtgHbgCT+NWxL4jkZYwBJXGYsxPNjWxIPIAnAAMaAsRCXSQJsYxCAJMC2bUmAJO5nG8A8F0mAMfeTxGW2ucIAkgDEsxgL2eYBJNnm+ZHEsxiEbcA2IAmQBNjm+RHiMmMeQJJtQBJgGxCyjTAGZAGSAGMAgxDCGCOuEDJGAELczzYgCbAN2JYEAJIA2zyQkAUgANvcTxJgjLlCkrEsAANY5gojCTAGMIAkwJjnZSQBCMA295ME2AYwgCTAmAewDQCSuJ9tQBLPSZJt7ifJNs9DEpfZ5n6SbAOSbAMhiStsnh/bPD+SANtcZpsXjSTuJwQIGQO2ucIAkngggTDmCvMczDMZDOY5GMxl4jlJss0VBnGZAYxtLjPmOdnmMtvYXGGDeE7mmczzI/EisC0JACRJ4jkZGwtxhZDECyaJ+9nmMtuAbUAS97PN85DEC2DbNg8kHsgYwNgGbHOFMRbiBbBt2zbPQxIASEIAGMDYNs/JNs+PbUk8F/Fs4vkQGGOeRTwXY8CY+wlxmW3b3E8IYxsAkJDMZQab+9mWBCAkYYSEAECI+0kCJHGFuEISL4jBAMY8iwAQLyLbkngA29xPEiDJNpcZC/ECCAGSAATigWxzP9tCPC/zL7LN82Ob52WusC2J52WEeADbPA8hxPMnni9JgBBgm+dink0AxgAIzGUWICTuZ5v7SeJfxeaBJJ6LhM0LIJ5FgDHPyTbPj23AGIN4JnGFJJ6TbWMewDaAeTZxhZBtAAMYA4jnJgDEsxjzgtk2BgAhLhOyzAtmzL/EGAAwkhCAkG3MFZIAY8A24gpJiCtsG/MCSOIySba5zDYvhHgW2zw/QjyLeC62JfG8zLMJAHOFJB7AtiSek22ekxD3s4150UkCEFcYIxDPRQgD2OZZBAJAPJAQz48kHsC2bcC2ba4QzyJJCAPYts39JPE8bPMAkmxzmbFtLrONAISEEIAxIAlACHGFeBZjAIN5XrYBSYAkXjiDQLxA5oGEuEIgnk08B4EwNuZ+khDPJF4k4tnEcxAISTyAJEmAJB7ANg9gm+fHNs9Jkm0usy0EKNNgwDYgCZAEALZ5AEnczzZgG5AESOJ+tiXxXAzCNlcYxBXGgJBtSYAkLrMtifvZ5n6SANuAbUASz0nIGAAEgBFYEvezzf0kAbZ5fiRhA0i2uZ94NkuAALDNFTZgkARIss2zSALANvcTAObZJAG2uZ8kwDb3kwTY5jJJXGZbkm0eQBKX2QZsA5J4fiQBtrmfJO5nG7ANSOI5CRnzXAzimQyAADAIIWNeMNvcTxIgCbDN/YwxkgBJgG3AtiReECELAdjmASRxmW3AtiRJtm0DQgBCyDIGI8kyxrYQAsAAkgBj7icJYxtAAJIA24BtSTyAJMA2gHk2AUgCbHM/SQAGMOZ52JbEsxgEIAmwzWVCCNtCtgEEAEiyzfMwFuI5SbJtGxBCSAJsI4QwGABhGwEIIWwDGGNAEg8gifsZAxgAAyAASYBtwLYk7mdbEiDJNoCRBBhzmSRjjG1JQoAxVwhZxhjEM5lnEoAk2zyQkAUYc4UQAmxLsg3YlgRIsg1gjCVhJAHGkgDbXCYJsA2AQYAkwDZgW1wmAZK4zADIxjYYBIAkJMA2l9kWIAGSeCCb52IjAZawAUAIbGMsSZJt7ieJ+9nm+ZEE2AaEELYB20IIQMgYg3g2g0AIcYUxts1lkgBJgG3bknhOQhhjxBWSuMw2DyAEYBAAwjZgLGSMeRYhACEEIAAMgDEGEFcIGQsBCMA2AEiyDdgGJAGSuJ9t7ifJNveTxPOwDdgGJAGSANuAbUASIAmwDdgGJAGSANsYhBACgwBsA7YlcZkk7mcbsA1I4jlJAmwDtgFJgCTAtm1JAAKDkIUAbNuWBAjxLMI2DyAJsM1lkmwDtiUBCFnGvFCSuMIYA0IIDMI2YBuQBEgCbAO2JQG2JQGSbAOIK2QBtgEEIMk2z0MIsA0gAEmAbZ6LQQgZSwJs87wEBhDifrYBBCDJNiDJNveTBAC2AUASYBuwDUjiBRNC2OZ+QoAxgHgmAyCEANs8P5JsA5IAwFgIMMY8iyTbAAIDCAGWAYwk2zw/krifbZ6TbUAS97MNSLItCZDEAxhjAAwgCQgwl0mSxAPY5gWTBEji+ZHEczGAbZ5FCHE/IUASz0kSVxjMCyYhQEg8mwWAeR4GbNvmWSTbtgHbXCbxbDZX2FxhA0g8f+IKCZAESOK52DwPg3kOtm0Dtm0Dtm0LcT/btrmfbS6TxPOwzXOSxANI4jlJ4n62bdu2zWWSJPE8jHkekoS4QkjiCoExlsS/hrFtHsgAxjyLABCAJJ4vY4zBPJO5wjYGA2AQzyIkxP2MuZ+xECCEeCBjY0k8izEGEC+IJO5nY5vnIgAEgBHiCgFgAGOeH0k8P7Z5TrYBYyEewDbPjxDPJC6TxP2EAMDYNoB5NgEgbHOFeRYh/kXm2cQDSeJ+QlwmiecijI25n20hAHGFMc9iEC+cbQSAeSbz3Myz2OY52eZ+kgCEsTFgm+diQAAIAGxzP0kAEv8SA2Aw2OZ+kpC4zDbPYvNC2NzPGIR4XpJ4Edg25jJj7ieJy4SMAcQLY54v27xgxsaIZ7EN2Ob5Es9FCBDifkIAQogrDIAALAOIKyQZA8aIF0QS97PN85BkmxeNJACQxANI4lnMs0gCAAQG8yzGGADzLJIAQBIA2LbNZZKEeB62bUsCJHGZJNu2eSADYP5FtnkASTwn21wmicuEjDGYZzKY52IbwDwHA2AA25IkcZltQBIgCQAkAZJsc4XBYIyNEQgAYZsHMOaBxPNnnk0IGQO2bfN8mWcTzySuELINALZ5ANuAbZ4fSZJ4fox5FvMCGQzmmcwLZxsAbAOAEGAbA9gGANtcYZ5NYDCAbe4nCcC8EJK4nyTuZ1uSJEAS97PNZbYxzyQQl6HWmiRAkm3uJ8k295PE/WxzmSTb/IsEgBGyjQAwkgBj7ieJ+9nmfpIwVxgDCEAIsA1gAEkGsHgmc5mNEMIgAQjANveTBNgGbAOSAEnczzYgnpt5NnGZxLPYAGBAArAB24AkLpNkG8DmWSRAEmAbsC0JsC0JEOJ+xoBtQBIASOIy24BtQBKXSbLN/SQBtnkBJNnm+ZHEczGAbcAYIQQIGSOEANuAkDEPIMk295ME2AZsSwIwiGexDUjCPJMAJAG2uZ8kwDbPxQCSuJ8xxrKQEGAbQABCgG0hYwDxvIR4AGOMZSEhwFiSbR5AEhhkA+Z+EiDANmCb+0kCJAG2ASEAYYwBMM8kAEmAbUASANgIbAMIQAiBAYwxCEAIwFgGbAOSeABJAAawjHluBiFkzP2EAGMeyABCCABjbAxI4jIhrhCAbS6zjRCSxP1sc4WRBCAADGAMAJKMMYBtQBJXGABxhW1JPIsxFjJGCAnZRjybMRbiMkmWMVdIAmzznGxzmRBCCAEYY66QBADGGECIy4yxkQBJALYxCEDClsSz2AZsJIMAkGSbyyRhA7aRAEASYBsbiSts8WwGAyBA4jlJwjbPTRIYiyuEbduSJNm2LQmQhHkgY9uSuMIYS+IySQAGsI2wLQQgHsg2IAQgAAwgCWGbBzIIQJJtSYAx5oEkYYwBYyEMIMkYwCAABAYwFgIkAbaNhQBJtoUQD2QbsA1I4gEkAbYB2wAgCZAE2OZ+kgDb3E+SbUkYYwADIABJgG3uJwTYRlwhhEEAlgHMFZIAjLFtSTwnSYBt7icJsM1zsi0JsM1lkgBJxphnkWSMEbINIABJtgFJtgHbgCRAkm1JgG3AWIj72ZYkZMz9hIxlAYhnsQ0gnoskrjAIAGMZYyzEc5KEARC2AdtCxoAQIAkw5n6SbHOFASQBCGPMs0gCbAPGsixjJAGSANsIzPMlCbDN8yOJ52QbsC0JwBgDQgghAAFgANs8i3gukgDb/EskcT/bgG2EEPezDUgCEAAGsA1IAiQBtrmfJMC2JB7ANs/JNiAJkGSbyyQBgG0eQBJgGxEAGLDNA9jmX2KbF4XBAMaSuEIYGyOeSbxA5rkZzAtgwDyAjQABiOcknkkAtgCQJIn/KBLPYmMDgCRJ3M82ABgAARKX2bbNZZK4TBIvmCTuZ5sHkCSJ+9nmAWzb5gWzLQmwDUjifrZtc5kxgAAQCElCXGYMYGxjAIwxz8k2zyKeP4EBhAAhSQDigWzbBmwDgG3bPC+BeG7imQSAQNgGLBsDxgDiCiEewJjnIjBXGAO2JfEAtkGABIC5wuYKiQcSYAOAbZ5FAJjnyzb3s80z2RhAPJt5NvF8SeL5Ms9kng+BMZbE/YyNeS4CsMxzksT9jLnCYJ5FEgbAYADbPIt4NvNcbAtxmSSei3gWSTwnIUAIwACI5yLE/YyF+Fcy5oUwL4ABbMAA4gqb52QukwDxQknczzYviMQDiOdHwuYFEv8SSZjnIJ6XJJ7FPJsAhADEFUIARojnIp5NPDcD2OZZzHOxzf2EAATCmOdinottAMDYBmwDCADzIrLN85DE87DNc7IN2DbmCvEstjFXGAPGxogrJPFABvMczPMyBhDPRZJt2zwn25J4fmxjnkXINuaZxBVCtrmfJEASgBGyDdi2zWVCPIAQ97NtGzAGEIjnIBCAkBD3s40BEFcYYwDM82GeyVwhCRASQiAABADYALYBwAaBABC2Mc+HAIQQQjwvA2AwLzpJvACSuEIIAYhnEs8kAMQzCUASYJ4/STwX80IIAZK4TJIQBsBgrpAkicts25bEc5LEv0SSJECSbZ6TbV4glC0RGMQVtiXxnCTZBiTZBmwDkrifbUASL4QQss39JHGFMRZCALZ5ACEuM+Z+kgDbXGGeSQACwDaABCAwzyQwgBCXGXOZwDybwDyTJMA29xMAtpEAbEnmOQiQbAO2AUmAJMA2gM0VEpcJAPNskni+zLMY8wJI4gFsA7YBSYAkwDb/GpIA2zyLkMUV4grbCCHbgG1ACHGFMUYS97MNSAIk2QYk2eZ+QlxmGxBCGANCGAABGAO2AUk8F4GxLUkSYAwIAbZ5AEm2eU7GGEk8i5FkGfMcjCTLGADzTAKQBNjmgQRGyBhjWUiAZBvAthACCwHm2YQQtgHbgCRAyDbiWWxLkgTY5n6SsG0ACRDiOZhnErZtc5kkkAQGwCCMucy2JECSbe4nCcAYY8AGIYSQMZdJwhhjEM9iW0gSz2IQCNsABpBkDNiWBCAwCFnczxiwLQmQBNi2DUgChLhCXGGb+wkBtgFjIcSzyOIKAdi2LCQEGAOSeB62AdsAIIQAJAG2AUAIAdi2LUkSxjYgACMBSLaxDZK4TJJtAWDARgIkYZvnx5aEZJvnZBDPJNsgCTBgA5JsGyQBkrAB24ABJBkESALbCBAg27wgBiGJy2wDtgEhIYQxIGQMIDDPZCQBCNsYIYQxYBuQJAkDGAshbAO2hSQZcz9JtnlOtoUQQsaSANuAbZ5FCAG2eQBJ3M+2JC6TBGAQAGAbsM0DSOIBbEviASTZ5jLbgCRAEmDbtiQusy2J+9kGhLifMSAJkMRltrmfkDFgG5AECAG2AcuYKyQBQoAxL5htSYAk24BtQBJgG5AESAJs85yEAGPuJwmwDWCeTQCSAAADWMYIcZkxYBuQBEiyzWWSjIUAjDEgZMz9JBkLAbYB25K4TMgYEOIyYyEEgAFsAwhAkg0YAAMgwDYgCZAE2OZ+kgAMgHgW29xPyJjLbEsCbEsCJAG2AUmAbe4nyTbPRWCukIQBbAMIQJJt7ifJNveTBNjmfpJscz9JtgHMswlAkm1Akm3uJ8k2IAkDGAPGGEmAJMA295PEZbZ5ASTxgtnmfpIA29xPEmAshEEEAkA8iySeh20us81lkiTxAJIk8TyEeBZjm+dlACFeAGMA8UC2bfMs4jJzhQQgIQEA5tnMFcYA4pls8xzMC2ADSIAkrpDM82GbyyRJAgBsbCTAPD8SLwoBGPNC2eZ+trlMkiTbvGC2AQRgm+dk2zYPZIwRiOdgbHOZJEkAIAkQkmSb+wkJ2QYwV9iWxP2MjQEEYJn7GSMQDyRJEgBI4grxLxCAbQCwLcT9hAAhSTyLAYyFeCADGAtxhQAQDySJBzKAsRACAxhsc4UkBIC4QuKBzPMnXkTmMgHiBRHPj20jnk1cIYnnxzbPJARIiBdACPHcBIBAAMY8kACMeS4GwCAAY56Hbe4niediANs8J2NeRAJzhTEPYMzzkAQIcT/bPBfznGzMs0g8J0lcJsk2YDDPwTb/euKZBAbAPCebywyAbcAAGAAJEM8mrjDY/CtJ4n7GXGbMFeYK24jnYhkQAiTxQEYWYJtnEQ8kyTYPIIkrBGAM2AaEACHuJ8S/RBIvlG0eQBLPSRLPyTb3k8QLIAmQxP1s85yMJUkCJHGZbQDAAJYBjCRJXGZsjEAISeIKAxjzL5HEc5LE/STxwhljYx7Atm0EgAAQCEASVxjAGAMY8wCSJAGSbPMAQlxmDADGPIBtzANJ4jJJxhjAGAEIIZ6DAHOZbTAABoG4TJIkXgDbthGIB5LE/YwBwLYkLpMESOIFk2Sb52WexTZXCASAsM0D2EY8k4SNDWAAwDYPYJsrxDMJQJJtLrPN/STZ5jLbiGcRkgRI4nnYtm2b/wi2bfM8hHgmlGmJK2wDkrjMNpdJss39JNnmASTxnGxzP0mAbcA2IAmQhAEQGMCYB5Bkm2cRQjyAbZ6bsSQAS+KZbAO2AUk8F0lgGzBgCwBJgAEbicsk2eZ+kmwD4jLJNmAbkITNFRIgCcA2z8E2IAmQhA0g2eZ+kmzAPC8hi/sZ8/xIAmzz/EgCbHOZJNs8D9uSAEmAbZ4fIcBYyBiwDUjiWQwCkGQbsA0IIZ7NXGFZCJBkmxfMthBCCAEAxhghwBhACAG2uZ8knpNtLrMtBCCEELYxCEmAbcA2IAmQBNgGbAOSAEmAbR5AEg9gG7ANSOJZbACJK2xJABJgwBYgYYwxQpYBwLYkQBJgW5Jt7icB4gFscz9JxhhAkm2eh21JgG1AkpABDEjiOdmWZBuwLQmQBNjGAnOZEAIBYIwBSYBtjLEkQBJgGxACEFfYBoyFeADbkrhMCEDYBmwDkgAhYy6TBNgGhABjwLYkSYBtnpNthBAgxP2MeSBjLAmQBGAAY0lcZtu2kCRjnosBJBlzPwkbDCCEQBjAMs8kcZltMEYSABiwAYEBMAgMkrhMYJCEbZ5NEoAN2DZIAsRltiVswJIAG0ACDAJAAgQ2AmTzLBLGmMsk2cYYSwIASVxmmyvMswkExjYgyTYgCSFkG7AtCZAE2OZ+QtzPGDAWAhBCGARgm8skcZltrhAY25IAIWMMwhgjifvZRmAASYAk24AkLjMGZCEAwDYPYFsSIInnxzZgG5DEc5IE2OY52QYASbwAkmzzALYRQoAQVwjb3E8SYBuwLQmwLYn72QYk8Zwk8Zxs8/xI4n62AdsIIUASYJv7SQJscz9JtrmfkG0AAUgCbHOZJMA2YFsSIMQVwjZgG5DEc5KEMeZ+kgDb3E8IMOZ+kgDbPDeDJAAQYJv7SeJ+trmfJNs8J0m2AdtCljGSAElcZpvLJPH82OZfIsSzCMA2YBuQBEiyASPJNsgASIAxYBuQBEgCbHM/SYBt7ieJ+9nmgYQQl9nmASQBtnnBbAOSAEmAbUASYJsHkGSb+0nifraFjAEAEdzPNpfZ5jnZ5gFs869iMFdI4nkZxPOyLYlnMbZ5ASQBIMQV4rlJksQziWexbYMAgSQAMJjLJO5nG4n72eYyg8E2YECSBCABBtuAbYMBwOZ+kiQBgG1zmc0D2IB5vgwCMDbmfpJ4TrYB21wmiRfAtiSehyTbvBDmgYwB2zwPYy6zjQCEhABAiCvEM5krbEviuZjnZcyzGMAY80wGwACY52WMeRZJxgDGmOchCZAkiQeQBEiSxANI4gFsc5lt24BtQBLPZgBJ3E/C5n4CcZltnsmyEABIss1ltgHbknjRGGNeOElcJolnMhjzgtjmOdk2V5jnZZ7FNvcT4n62ecGEeE6SuJ8xgEEAgCSeiwBscz9jnot5voR4TsY8FwHYBmzzQojnTwDGPJB5AcQLIvGCCQBJPJCEzXOyzXMyAAbAEvcTl0ncTzyLABDPRcI8X5K4n23ANs8iHkiIyyQBkrifbZ6TbR5AEs9DiMuEMAAG80II8QDGGAQgJIlnMUKYB7LNFQbAYDAvnG3ANs/Jtm0uk8QD2AYk8fzY5jJJvACSbPMAtiUJ8UKIZ7EtifvZ5n6SeB6SeADbtnkhzLMZSUKAJNu2eUEMYJvnIhAA4nnZ5n7GgLExDyDEA9jmCnOFbV4AY2NeCIkrLAADwmCeg8HYtg3YBgDbvGCSEEKSbAO2bdvmRWCb5yHE8xLPRYjLbIMBbECAQOIBJEkChHhOkmzb5gURz8FcYZt/PUm8yGzzAkhCPJtRpiUA29xPEmCb+0myDUiyDdgGJAGSANtcJsk29xPifsY8P5IA24BtQBIgCbDN85Bkm/tJ4jnZ5n4SIJ6Hbe4nCcAGbANIgCTANvcTAAZJtgFsrpAM2JK4n7EQYFsS9zPIBgySeBYbQBKYF8Y2IAmQBNjmfpIA2zwn24AkQBKX2QYk2eYBJNnm+ZHE/WwDtgFJgBBgDBgL8fzYlsSzGIQQgAAwgDHGGJAECCFsAxgEgDEGhIwlAZIA2zyQQQBCgG0AASAwVwhxP8sY24AknocQYMwDCcwVkmxzmRBXCNvcTwhhG7ANSOKBjARgQJLNs0iAbQBbyFwmAISQbZ4fIcQVNmAkbAkAYwQWMuY52eYySYBtSTyLDUI8ixDCGBACbAO2ASFjSdzPNpcJIZ7NAAgAEAJsWxZCYGxLkgTYBiTxALYBACHLmCuMJMCY+wkBthGAJNs8J9uAJEAIwCAQgG3AtiRJ3M82YFuSJMAYA9iWBAjxLOIK2wAghMAYc5kk27a5nyRAEgawDSAACSzE/WxzP4MAJIFtABuEEA8g8QC2sSUh2eZ+AgM2kkEASLJtkC2Jywy2JQGSbHOZeDbznAxCgABsMJKMAduSuMy2JJ7FCCEAYy6TZJvnZFuSbUASz0kIMAYASQBgjAEwCEAS97PN82Nbkm1AkpAxYBsQkmQMGAsBCMwzCSEAgzAGhADbgCTbXGZbEpdJsi0JsG1bEvezLYkHkATYBmxzmSSeRQhhAGOEEIAxBmxLwgAIQIhnEQAGAWAQgG2ek21AkiTbgG1AEiDJNpdJAmzzALYlAZIA24AkwDb3kwTY5n6SuMxYFmAMGGOukARIwjyQsW1J3M+2JMC2ECCJ+xnz/AgZYxBXSOJ+tgEMAsAgAEm2AUlcYQAMYAEGhGxzP0mAMWBbEv9KtgFJPCdJgG1eNEKIK2xzPyFjrjAIIcCY+wnxLLJBiMtsAwgMQoj72eZ+kgAMwjaXSbLN/SQBtgHbgCRAEv8S29xPEg9gm8tsA5IASdzPNiCJ+9nmmQheNLa5zDb3k8TzY5sHEs8ixHMxAAaDACRJsg3YNhYCMA9km38F8ZxsbAPYPIDBgITEFTY2EvczGADbkgAkJEmAQBKXSQBCACCJBxAgAeI5SUjYBiGuEFfYBiQBkiRxmW3bvAC2uZ8kSTyAbS6zLcQD2ObfTYgXQBIPYMwV4pnEMwlAEpcZ2+YKIQQgACFACABs2+a5iGcSAALxTOb5EEIAIInLJPEAxsb8axlJPJBBAJIk8VwEYC6zeQBjAAEABiGexdjmhTDPwQZAICQwxlgSL5Qk29zPgBDigcwDSeIyIUASL4h5DuJZjAEE5nnZ5oUzxjyLeL6MuZ9tIV5ktgHbPCfbgG2eH0m8iMy/jngAgXk28UzmWWyeyQCYF4EBQOJ+BmwkQDwnG4nnxzb/KuZZjPkXiWcSz5ckLpMESOIBbBsDxsY8LwNgXnS2JQGSEA8kJIR4FiEuE+J5iWcyD2Sb+0nifrZ5Tra5zLYknpNtnpMkHkAIAxgDGABzhW1JAOIKIZ5FPJN4JoF5viRJ4gWwzX8E27Z5ANu2ASEeQAiQJInLbBvzvMyzSOJZBOJfJMkYQLwwQghAAAjbPF8CAeYyYwQCgQAQV0jiRSaJyyRJ4l9PEpfZBox5fox5FvF8iOckIS6zDQCYF8Q2YNsY8UC2uZ8Q/ya2bXM/STyAbS6zDUjiRWeAyjNZCPGikwRI4l9iLMk2lwkZA7YBIQwCEELYBhC2JWEAIWOMMSAJEOJ+xkK2eX5sSwLAIDBX2IDAYCPxQEJgg0CAhA3YBpC4TBK2wSCegwGBAUAS2DwnC4xtQBLPImEQAksCY0ASl0niAWxzP0lcYa6QZFsSIAmwDWAQz0EI2QZsA5J4TpIwtnlOkmxzmWUhAANI4oWyDUgCELa5TBICwEgCJGFsA5aFJAEYQBJGiPsZA7YlSeKBDAaBAYyFuMIAloUQgG1AEiAJsC3JNoABEIAxRhKAeRbbPIAxBiGEwDyLLMQVtgHbkiRAtgFswBKABMggMIBBYFmWbcAYkARIso1BSMLYRshCIEDi2WwDiCskAbYB2wAgCZBkWxKX2ZYEIIQAjDEgBNiWZBuQhJEEGEuyDUiyDSCeyRhL4jlZxkgyxgCSANs8P7a5zLYk25IAIYRtQBbiCtsAwlgIgxBC2AYwQsZcITCWhYy5nyTuZ5v7SeJ+QsaAJABzhTGAeSYhhLENSBJCPBdJtnkWgQEQzyawQQgwl9kSGCQA24DNFQIjCduAeB4SYFsSYABsSwIkcT/bgCTAkmzbgCQAsA0IkLANkpCwsQ2SDBLYBkkYAGEsBAiwASRJ3E8SBmGMEQIQD2RbEvezLYn7STLmWQwCsC2J+xlL4rmYK2wLGfMAQsZCGMsABkAIAQjMs9gGJAEYY0AIkIQAbHOZbUASIAmwzfOQZJvLJHGZJMA2l9nmfpK4TBIPYIwBELaFjDFCAEIWAgNYBhAA5lmEEAhAEmDbtiRAkm3ANveTZJv7SeJ+kgDbgG1JPIAkALANALYBSYAkwDYPZBCAEGBbEg9kEM9FEoCRBCAA25IABMaYyyRxhQEQgG0eQBJgmweQBNjmMiGMMZfZFgKMuUwS5vkTtnkASYBtAIGRxPMjiReNbUmAbUmAJB7AtiTbkjDPZJ5NAJIA21wmhAwy5jkJcT/bgCTMM4kHsi0J80C2AUmAJNuYZ5HEczEAArDN8yPJNpdJ4n62AUmAJO5nG5AE2OYySVwhgBBXyLyoJPGvYmwDGIwxDyQQz2QwVwhJAgBjY56XeBYhXijbAAgbA2AjIfFMts1lBgABiOchIdkGbNs2z2RA4lkMBgyAbSNxhUAAICSQJEAg7icZG7Bt80JJ4n62bWMAIS6TBADGtnkW80wGMLYN2AYkcZkk7mfbmOdHkm0AY5v72eaFksSzmOcixHMRCAxg27YkrhAIBIB4INu2eS7mgSTxLMYYsA3Y5n62AduSAARCCBCSxGVCPF/iWWxjnpsBbPMANrYlAUhI2AA2NoDNAxlj8Wy2eR7GPIsB8wC2ecEkISTx/EjiX2KbZxGAMWBbEpdJ4jkJYV4QIUCIF40kQBL3s81zMuZ+QgDiuQlAiPsZA8ZCACCJy2zb5n6SeH5s80KYZ5HE8yMJkMSzmOdlAAEYzBUSgMQLYZt/kc39JPGcbPMsksBcJnE/SQCSwBJgnk0SIC6TQAYjLhPiRSMkxBXmCtu2Adu8YEI8i7hCEg8gCQAQz2SeRRIgxPOwjbjCGPFMAvMvE4grbHOZbV5kknhOtgHEc5HEZUKYZzHGIBBXGGOeRRZXCMQzGcxzM1fYts0D2OY5SeJFYFsSz49tLrPNswjbtrmfEA9g2zb3k8QV4gWRBCCei5AxBgNgAMyz2AYAzAtnm/sZGwMYY8CYB7ANYJ7NGAO2eU62jbnC/IeQBACSAMC2bUmAJCEMYNtYCPNMAgFI4oGMMRbPYgAM5nnZBoyNeQBJkrjM2JjLJEniMtv8u0myzfMjSRIvGts8G8pMBAYkcYVtAJDEc7INSOJ+tgFJPA/bXGEQgLEQYBtACAEIIYyxEIAAbAO2EULGGIQQIIR4JmMMALYBSTwnSQA2YBtA4gUTAhuBuUwSYBuwDUjiOUkyxkiyDdgGJAEg7idA2OZ+4gEkwDb3k8T9bEuyzQNIss39hIx5TpJsAxhAEs/JGLANSAIkcT/bAAZAAMYYSTyLMZbEc5JkmweQBNjmAYRsA5aFJNkGJPEAtgGMsSQuk4QBjIUsC9kGMMaSAEnGGEAIMOZ+QoAxBvEstgFJ3M+2JEASYBuQBAC2AQwCAQjZBoSMAWMhHkCSbYwkY8A2IDBIAiQBtgHbgCRAABiDAGMZJO5nEABC3M+YK4wkABlkW5Jt7icJsA0AkmxzP0mAbS6TxAMYC/EsBkDY5gEk2QZsS5LEZba5n5BtSYBtACEJwCAwxhiEJACDeF62uUwSz2JsA8ZCgJAxAsBIAhCAbSGEMUYIsG1ZiMuMhYS4QlxhG7AtCZCEASwL2eaBBEYIsG0MSOIyIcAYQAgBtrmfJNvGQpIwthEAQgjAGGMQkrjCNgghbAPGQgAGIbAxSAASIC4zYHOFjSRA4gqb+5lnk2QbwEYCJGEbsJEAwLYkQDyAZBsAgwBJAGAbEGAjAUhcZgPmfrIABAAYA7YBSTyAJJ6TbS6TBNjmASRxhQEQAAZjGRAyxiCMhQAMgAAQmGcSQrYBwLYkY4wkQBL3s81zss1lkrhMEs/JNiCJ52TbtiRAEsYYwACSuJ8xgJBlDAZJsg3YBoQASQDiCmPMczOAJABhm8tsA5K4n21AEvezLYkHkMT9bHM/SYBtQBJgG7AtiedkLARIso3ASAJs25YESOI5GQsBxkIYwBhAYJ5FCDAGMIAknpMxgEEIAQjANmAbkMT9bCOEMABgGRDCAIhnM4jnYB7IGJDEcxJCAJhnEs9iG5DE/WzzPCRxmW3uJwnAALa5nxDCmPtJsg1Isg1gAElgA2AbkARIAmzzALYlAZIA29xPCLANIABJgG3ANveTBEiyzWWSeE62AduAJEASYJvnIYkHsM39JHE/29xPEoBBBIABJJ6XbR7ANgDY5n6SJPGcbNvmfpKEACEukyRJiCuMbUCIKwwGwCCEACFJQjyLucKY+0mSBEjihbLN8zKYywyA+ZcIcT9jDGAbBEiSxDMZDAYDtnkAg7lCGIx4/iTxPGxzP0lcYR7INpcZI14QSZIAwLZtHsAYIQQISeIySQBCEs/DNi8CY8AYA9jmMtvczzZXCEnczzaXCXGZbe4nxGW2Mc/LNvcTQjyQJEk8P7a5n23ANg9kMM9iDBhzmSTuZ5vLjHkgSRKX2bYNGJAkcYUEgABAyACIZxLPyRjzLOJ+4jLbPCfb3M82V5jnZZsXyhiDeCDbAOaFMEYYA4jnZv4NbHM/Y56TMc8iMM9khLjCAMYAAvMCmWcSD2Sb+9nmuRjAGEAAkrifsTFXGMA2z0OIy4wBDIABMADmuRgAY+4nxHMRgAGweTab+0niRWOb52Sb58cAmGezzQNI4jLbPIvEczPPRTwXSfxLbPMs5l9mnosxBgEI8SziCiHuJ2Sb+0kChHgR2OYySTyAbR5AEv8S28ZcIQBjYx7IPJO5zAhAEgIQ4gFsY54P8Sy2uZ8k/iWSeE62eR6SeAEk8bwMIMk2gHkutgHbxjyAEJcJYQBjrjAPZGzMFQIwtsyzCACDeCbxQJIk8QCShABJQoCQEIBAXCHE8yWeDwMIcT9j2wDi38w2D2AbsG2bKwTiCsvG3E+SbS6zzRUCYWyeSYgXShIviAAQgG3Atm1JgCRJkiQBgG3+JZJ4Edjm345qWxKX2QYk8QC2eQFs8zwk8Zwk2QYkAYBtni8BYAAMgEAI8ZyEAGMAEOIBJAGYF0biMtuSeBaDEAKMZcAAEgAGcZmEzbMIcZlt7icB4jLbgG1ACDAGEM9DxhgAIYQAbAMSIB7ANkLItiRAEmAMGGMk2ZbE/STxnCwDQtzPNvezLYnLJAGWhQDbXGaMwAghAMwzCduAbUASz8m2JMA2AhDiWQziCtsABpAEWMY8HwawLSQJc4UxYFsSAsAAkjCWhRBCtgEMQhL3sw1Isi0JsM39bAO2ASHbkgDbgG1AkiwEYFsSl9kGLAsBgJAxl0kCbAO2AUmAJMA2SAKwDUgCLAkA2wACG2SMsSyEEMI8F9uSJAG2AYyxJNtCgCQAg3guxhgAMOYBhAAhBMYYwCAQQoBtSYAkwDZgGyGEkMXzMMZYFuIyY8xzkcTzsA0YA4grbANCQoBlQBaAQdjmfsaAJNtcJgQYc4UQAjBX2JaEQQCY52IbEEIYA5IASbZtS5Jkm8tsAxhjSYBtwFjINoCwLQTYFuIBbEviMmMh25JsS8IACACBkbANIGxLwgZsS0ICxAPYBmwuk2SeyTYgSZK5zDZIQjIABknYAJJBXGYbJAAJ25J4AEsC2wA297PNZULGQpaFjIUA25JsS7ItCbAtyVgI80wGAWCusA1Isi3JNoBBYAAExpjLhCRxmW3EFZJsc5kQ5oEkAbYl8QLYlgRIss39JHGZJC6zzf1s80ACkMT9bEsSMkY8kzDGGMsyFiABGEkI20KAsRCX2QYwCEASYAxgJAHGgG1JkmxL4jlJAmwDgCRAEmCby2xLsi2J+9mWJAmwDUjiOdkGbEsCbAO2JfEAkmzbloRBYBCAba4QQsYYAPEstgEhQBJgjAAwxlxhAElcZhlzhSTuZ5v7SQIwxgAgBBhzP0kABnGFJABjLARYBgAhAIMQMuY5GQNC3E8SYJvLJPGisS0JQACyAGPuJ8k2z0OSbYSQbQBzhSQeQAgAjPkXCQwCY1sSl0myzXOyDUjiediWBNiWxANIAmwDtgFJvGC2JQG2JXGZbdsIABOSAEm2ucw2LwLbPD+2bQO2ucyYy2zbts2LSDybkMT9jI0xAMa2JJ7FYADMCyIABJIASZIABIj7WSAhcYXBRgAgSVwhnoN5INu2AWNACAAQCEAIwDyTeCBjHsiAeQBJQoAkQBJgG7ANSAIkAQDi2cQLYpvnZFsSz2Js2+ZZDAYw5rmYZ5HEA0gCJHGZJECIBxKAsW3AmAcQ4oUTAALzbOL5EIAxlwlxP9u2eU6SMIAQz0mSJEAS97MNSAIQmCts8zwkcZmQbZ6HAJvLbANgg20eyLbNsxgLYwDAABjbPIAkXgBJgCQA8WwG8Sy2Mf8y82xCiAewzXOShHn+BCCE+BfZlsT9bNvmgcwVkhAviDEPIAQAkgAhni8DYABJAOIKIZ6HEP96QsY8i3kgSdzP2BjxLLZ5TrYB2zw/Es9imwcQz8nmOZlnk8T9xGUSYJ5NXCbxXCTuZwPYtnkWgW3+JcZcYR5IEiCJ+9kGMM8mnoskLpNkm+dlrhAS4gWwzf2MjXkA27YB24Aknocknh/bvOjMs0gCEIAxgAEk2cYAGANgcT9hrjA2BowB2zyAEFcYDGBszHOSxGWSuEwSAEjiAWzb5gFs85wk8YLZtg3YlsRzMQAGAwCSJAFCmOfDGGMQCEASl0kCEIjnzzyLMYDAvHBCXGbM/Yy5n23ANoB4NgMYA8bGQoAQVwhjY8A2/xq2uZ8kHsC2bcC2JEmAJC4zNgaMucw2l9kGbHOZbQBjGwEgEIjny5gXShIPIEkSL4AkQJIknsU8iyReKEmAJEn8S2wDkgDANleYy1BmSgA2zyIJsA3YlgTYlgRIAmzzgtkGJPGCCfEsAjAGMIAQgHgmAyBsA5hnE89ByOJ+xjyAJAM2IIn72QYkAbYBSba5n8AABiGBsSQA2wACA2AABCAJsA3YBiRxhUEAQoBtAPEstgFJgCSek22EEFcYAHGFbcA2IAmQxBXGmPsJ8SziWWzz/EgCbPMvkWSMAYQAY+4nyTbPSZJt7icJsM1zsg0IAYjnIGRxP2PuJwlzhTH3E0JcYRswFpIEYADbgGUhQBJXmCtsI4SMAduShLifZYxtQBIgCWMbQFwhyTYPIGQbQFwhyTZX2JIAA2BbEg8gybZtSTwP24CQsRAghEAAtnkASZgrjAEhwBgAMAghxBW2AdtCCIwxIAkQQtgGMAgAgZEE2LYtSRJgW8iYBxACjHkWgXkWSYBtwDb3k8RlkgDANs+PJNu2hQBJCMBYljHGWJIkzBXGgG0hScaAsRCXCRljEAAgyRiDQTyTMZYEyDI2liSJy2zblgRIAmxjAEnGtgEhnkVcIQmwbVuSJAxgGwFIsm0sJMk2gAEkWYAxCAEWYBsZAPFC2AASV9gGSZJsGwSAJNs8iySeyTZX2JK4zADY5jIBEiDJNvezDUgCbAOAJMA2IAmQBNjmfpK4n23bkgAhnkUAmGcStnlOthEYIcSzGSGEMQIjCbAN2AYQgBAghLAN2OZ+knhOkrifbcC2JB5Akm1JgG2ek21JtgFJgCTANoBByDKWBBgDtiUZYySBBLYRQsaAbYQsrhBXCAEIwDYAIDCAbUlcJon72eYySbYB25IA21wmictsSwIkcT/b3E8SD2Cby2wDkrifbUkARhKAuMIYg0EAkgDbPD+SbAOSbHM/Ia4QtgHbCAwgCZAE2OZ+QoAxz0UI2QZsA5K4n21AEiAJwDyLMYBBCBkjhADANmBbCAFI4n62uZ8kwDb3k2SbF8A2IAmQZBtAYADbgCReNJIA29xPEmCMAYRsI4wxkgAE5nlJ4nnY5gEk8fzY5n6SbEvifrZ5kUmyzf0kcT/bPAcCsLEBbPM8JHGZJF4ASTwPSYAkni/xfBjMs4lnMoCxbR5IIJ6beTYhBGCusM39bAOAbQCwbZvLbPMA5jILwMaAbRtzhXkmgXgOApAkCRACELYBwJjnZAwI8YKI58PYtg1ghCRxmW3bvAhs2wZsA4AkHsA2YNsYkMTzYxtzhbEx95Nkm+dhWxLPjzEgCZAkyRjAPAfzHMQLY3OFuUISL4QBANtcIQBjBMYYMOa5CFmAkCQAgQGEEM9iWxJgm8uMAcSz2JbEFRKXSeJ+krifbe4n8fwJIZ6TbS6zzWW2EQ9kzPNlnkk8kxBCAJK4n22eiwFs81wMYMxzMua5mOdgAMQDSeJ+tvnXMAYAjDHGmOdkzLOIZxHifsZCiGexzfMjiReNbR7IYAAhnkU8i22eL/HCCMAYjAEwz2QQIBD/IonLBEg8P7Z5fmxzhY3EA9gGAPFMkmzznCTx/EgCAEk8D9s8F/PczPNhMM8iCRDiuQjAGMA8F0mAkBDPQxIvMtuSeE62eR6SANuSAElCgBD3s40QsgwYcz9JgBACEBjznCQJcYW4QogXShL3s22b58e2JP5NJAGYK2xzP0mIB5LEFQJAAIBtzAshiQewzWW2eRbxbOYKSfxLjI15FoMBMLa5TEiIB5AkCQBs2+ZZBGCMAIwBzHORhPhXkWSbF8C2JEmAJNsAgAEASZJs8yKQxP2MeSBzhW1JgJAkrjAvIttcZpt/DUn8W9mWxIsEtdYkQDyAJF4w25K4n21AEpfZ5n6SANvcTxL3sw0IcZllzLMJWQACA7Z5JvG8bAOSAEmAMYARsg0gnoskwDb/PrYBSTwPIQCBeRZjrjAAwhjASOJZjCQAgTHmfpIwVxgDgJAxgAEkAcY8gJBtAAEI8SwCsA3YBiTx/NgGJAFCiCts83wJzBWSANuAbUCSbUmAJMA2IAQYcz9JgG2eh7EQ5pkEIMkYA0jYAEiyDRgAAZIAbHM/IcsYIWMMYCwJEDIGJNkGbAOSAAwgCUAYy+JZBGAbEAIsYzCIK2wDAoMk7mdbEiCJB7DNA4jLJNvcTxJgW8iYy4xlAYCQZSFjHsC2JC6TZIx5LrYBIUkAArDN8yMJYxtAGGMeSBLPScg2gAAk2eY52ZZkWxKAEOIy24BtQBIgybZtSYAkwDYgiQewDQC2JQFCCNsAYFsSIISwDdgGJAGSANuSANu2JQkhMMYYxDMZY0BIEvczxiAASYBtwDaXSQKEbHOFuEKIBzDmAYyFAEnGAEYIMMYgAEmAbS4TMrYtCSGLK2QQl9kGbAOSbHOZJC6TBNjmOdnmfpIkcT/bXGYbkAQIbANIBgEgAMwz2QiMAUncz7YkQJJt7icJYwzYlsRlkmwDxrIQQggMxjKAwCCEMIBtBCDJNoARQhhLwlxh21gSIAmDMMZgEEIIwDYgCbAN2EZgnkUSIMk2z0MSYJv7SbINCCEA21whZPEsArDNczGABIAE2AYwAALAAJK4n21jSYAkwBjAAJK4n21AEmCb+0kCbPOC2QYkAbYBSTwP25IASQBgjHkutgFJgCTuZ4wBJNkGbCOEeL6EkG3ANiAJkMT9bAshnsU2YBuQBEjifrYBDOIKYyHAtiSexSCEAMSz2OZ+kmzzQkkyFuIy2wBCiPvZ5n6SeADbXGZbEi+AJMA2YBuQhMAAtgFJgCTuZ5v7SbINCBlzP0mAbQADSAIQgG3AtiTANgBIAiTZ5jJJgG3ANiCJZxHPZBBCtnkWIcT9bHOZbZ6TJO5nG5DEc5IE2OYySVxhEAGA+NeQxP1sc5lt/h2MMQAGA2CMAYzBABgjAPFskgBJPBeDAWxLQlwhAGMDtm3zAkgCAEmSeC4GEAIkcT9JPIAxgAEwzySukCQJEBLiuQhjY8y/wADGkgAEwtiY52SbBxIvItvcT5IkrhAABgNgjAFJPIt5Ftu2JQGSJAGSuMLYBgBjY56HJJ6HEIB4IBvM/cQVtrnCPJNt2wZsY57JAMZCCEDINmDMZbaFAEmSuEIgnsnIssyzGMyzCSGek0CAkMTzY5v72eY5mctsSTyTANuAsRCXCRkDgGXAmOckifvZFuJ+QlwmCUA8m7nCmOdhDCAAIf4ltoUQL4QkQBIAYGwDmGeRxPNjm/vZ5gEkAYAknsUgAEASlxnb5n6SAISxbcA2z8U8X0I8DyHEs9jm+THm38o2gAGMjXkA27xIxGW2uZ8kQBIgifvZNg8gAdji+bPN/SQhcZm5TALEs5lnkwCEhHgASTw/to25TBIACNnmCoN4bgbAAJhnEw9kGwCMAds8i3gOwjYGMAYQD2Sb+0nCXCFJEiDJNs+PbR5Akm2exTyQLF4UAjAYsAEQz0UAxoCxbe4nhPkX2bbN82ObF0AS95ME2OYFsw3YxjwvSTxf5oFsSxLiBTGAJECSJADxQEIABmPbNgBIksTzYxvxLEJcJgmQxBXimcQLYpsXwLYxYBtzhW0AwLwobAMARogXQBIPIEkSgLlCkiQus22b5yRkm8uMeQGMAWNj27a5TBIAICRJAiTZ5nkZIUk8kMFgAIxtrjAAxjaX2eZ+kiRxmSRJgCRJgCRJ/Ets82yotSYJkGQbACQBtgFJPCfbvACSeADbvGCSAAxgG/Fs5gpJYANgjJEESDJgA5IA29xPEmAbwACSAGMAW2AukwBJ3M82L4AkALANYACEkDH3kwTYBjAIIcAYIwmwDGAAQMiY+0kCbHM/IcA2gLhCCAMYA4grJAGAbZ6TbYQQRpIxgAAwgJAxl9nmfpIA25IAIe5njJAF2AYQgCQAg8AgbAO2JfGcJHGZbQADIJ7JSDIGACHEsxkAYRuwDUjiWQziCtuSAMA2IIn72UYIARgAAUjCGPP8CGEs81wEBoMQQtgGMAhJgDEgC7ANGAMCQBJgLrO5zCAJkATY5n6SbGMDkswzCRA2zyaEbAO2AUkAAnOFJACDsM39JAEYwLYkY+4nCcAAxhjAshBGEmAMGAtJso0x5gEkAZJsAxhJgDFCCLDN/STxALa5n5BtAAFIAmwDtrlMEpfZliSEsM39JAEYAIMAEFfYFjLGAMaSuEySbZ6TbSFJgDH3E+IyY9tCgBBgGUAIAbYBDIAAbHOFEDIW4jJJXGYbwEhC2MYYCwGIywQGMJK4zJhnERghjLGxJEDIGCQZZBvANgCSJNnmMoHBtiRAEs9iAwbAIJ5JEmAbACTZBmxLsg1IAiRxmW3AtiRACLANGAOSJAG2uUwSYBvAIISMJWGusA0YSwIQQraFANvGXCYJkIR5FmOuMAiMsRAgCTDmfpIA27YBSVwmyTYPIAmwDdgGJEkCbAO2uUySJNvcTxIGgTEGMAACQAhxmTEgBGCeSdi2LYnLjGUASQAIsG0sSZJtAIMAAGMhDCAJQDyLMSAE2AZsA5IASdzPNveTBNjmMkm2AUCSbcC2JMA2z0MSANiWhMA8X5IwgDEvlG1JXGYbkARIwiCeyRgDQgjbXCZkzBUC87wk2eZ+krjMNi+AJNtcJonnZBuwDUjifraFAGNJgCSMMQYBIDBXSOIBbEsCbAMYhBBgzP0kcZltnpMkDGDMZZJscz9JPIsxxgAIjCQAcYVtLrMNSOI5SQJscz9JgG3uJwmwzXOyDUjiOQkBtgEEIAmwzXOyDUgCJNkGJHGZbcA2IAmQBNjmfpIADCIkAZJs829i2zYA2ObfRlwhBCDAADb3E5IEIGxjc5lt2zyAbdsIAIGwbQyAAQNgng8hAPO8bPP8GEvifrZtSwIQz0E8k8E8i7EknpMknotA2OYyY8AYQDyLbZ6TJEmAJCEAYZsrzLMYC3GZJACQBACSeCDzTOYKSYjnIADLtgHbPD+2AduAMYAQ4gphm2cRz4d5JiEJkCSuMADY5jKJ5yIJkCTEA5lnEeL5MbbMA5nnwwhhnoPBXCEECAkZANvmfhISIJ7Jtm2el4TEc7J5Dsa2JC6TxPNlANs8kAEQAMKYZxEAxpgrBCAEIK6QxPMQ4n6SeC7C2BjAGGzzojGWhPhXEM+HeQ4CAGwDxkIIQMg2l9kW4nmJf5ExYMyzGMA2zyKeixAgxP1sA5hnMeZ+QgDiColnEs+fAYx5TsYAGGSb+4l/O/FstnketiUBkpAMgG3ANs/JGBsw5gFs83wJIWPANs8iAElcJmQbMAYQz8U29zPmWcRzMTbmfpIADICQxP1s84JJ4n62uZ8kSTwv89wEgAEwL4SxbZ6LQUICkMBg7mcbASCEAEAIQADGPBfzXCTx7yMJkMRlkviXCEniMkncTxIGMOZfIon7SRLCALYBDIB5DuZZjLmfEM+PMeK52OYFELLNi04IAUIAIAQIGRsDxrYBzAsiiQcSQsbGgG3bgG3ANs/DGIF4Fts8J2MuM+YKASAAxBW2ucy2JEmAJMA2L4Bt24Bt24Bt2zwn25IkAZKEeBYBIBBX2LbN/SRxmSRJgCTbXGbbtm0AkCSJfxkVJPF8SQJscz9J3M82l0kCbEviX2IbkMRzEkI8k3kmGcBIApCwAZAx/xIhBAYwxhgjJHGFDQA2YO4nZBljjBCyLYnnZAwIcZkk2zyLkWQbcYUQz2IA24AkLpMEALYBQBKXGQthAIRtIcAyBvHC2eZ+kjCAZQwCwAAYACFkDEiyzWWSeBYDWMYIIYwBBIABbPOcbEsCbHOZJNuSANuAbQABIIRsA5YxkrjCGCMwgBD3EwIkGQCBJWwDIAmweS62uUySbcBYSBJXCGMMgBCyDUiyDdgGhIwlARjAWJaxkDGAeBYhAGMMCBkjhLjMtgRIABjEM5nnZpvLJNkGsAEDgMRzsg1IAiRxhXgmA9gGjCVJ4jJjIQTmWSQBtgEhQAhAPIuxkG1ACMAIAcaSjIUAIcA2IIQwxtiWhAFsJCQBtiVAxkKSMMa2JRlLwjxfkgDbgCSek21JGMA2z2Ik2QZsSzIWMgYkGQthEEIIwDYgCTCWBGBsS0IAxhhJxjyLMZZkG7AtJAlA2OYySYAkwDb3sy0kZNtYCBBCYBCAMQLM/YwRgBBgG2MsCUAAQgAGQAC2ucJGwhYAtiUB2NiAeDbbgCQkg7ifbbAtybYkbCQuk8T9BLaRANuAbUAS97MElmUMALYB25K4zDYghLDNFcZYkmUMQghAXGFbkjEgCYOwDQgZC3GZsSRJto25zLIQlwkBxrYRkjBCgCTbgG1AkiQAsA1IAmxLAmxzmW1JXCYJkMT9jIUAY0mAbYRtQMi2JEAWYMyzGMCY+9nmWSTbgAAsicuEjAFjQAgB2EYAxphnkQTYBiQBtiVxP9sAIIn72QYkcZlt7mcbACQBtgFAEs/DmMtsC0niOdkGhDAA4oWQZBtAyELYBjDGkmwLAbIAxHORBGBsc5ltIcBYEkbIGJAE2AYA29xPEiAEYADEFbYBQJJtnot5FiHAGDDGALYlAbYBQBL3s83zEEIAGMC2JMC2JNs8XwbxLLYBSYAkACMEGHOFACQBxpgHss39JHGZJK4wCEmAbcA2l0kCbEsCJAG2AdvcT8g2D2AbEEJcYZv7SeI5SeIFk8T9bAOSuJ8xIASExL+NJB5AEi+UJECSJJ4v8xwkEAgJG8DmChuJf5HBPJNAIAlxP0nGAJgHMAYQCCFAEg8kAEkIY+4nifsZ2wYw/2a2ucLY5jIhScZcIQBJXGabF8o2zyKem7hCiMsk8bzEMwnEsxnMCyIJACQBkgBJPIAkSRjAtm0uE5LEswgA87xsA7axAXOZBEji2cxltnkA2yAAgXj+zLPYlgQAQghJPD/GCMTzIRCAMc9Jkg1gMADmmSTxAtjmCgkJQOJfSwAIxHMR4jJJPIBt/iXGAIABEM8kACFACDDmWYwQ9xNXmPsJgQAhDOZZjAHbPD+SuJ8krjDPTRhzhbjCtiQewBiBAIQAxPNhrrDN8xDiMiGeRTw3ASCeRRL3s81zMgYQz00AxgDG5jmY5yKJ50s8N4nLzL/ANs+Xzf0MgG0AG5vnYkviOUni+RHi+bHN/WzzLAIw5n7GAOb5E4AQ9zPmBRPi+TJX2OYBJEniedjm+ZEEAJJ4TsZCXCaJB5AkxBUG89wMYMwDSOIKYZtnkbhMkm0ewBiDATAvnG1AEpdJss1lkngASZIAwDbPj23bgG1JPD9CkgDA2DbPjzEC8Sy2eU6SbHOFMTZGAAjAmGcRCADxvIy5zFgSAiEJAIy5zLZtrjBCgCRJXGYMIBCAJNtcJmSb+0lCAIAx9zPmAWxLAgBJ/JtI4jJJvFC2ucIgJPE8jHkg8UzmuUiSxBUGg3gWY2PbtgFAEiAJACTxPCRJAgBjrjCY52BeONuAbdv825j7ocxEAEI8P7a5nyTuZ5v7SeJ+tiXZ5jJJXGaMeSBJgG2eRQjZ5n4CAzYgACwBCCHMsxhzPyHANiAJMOZ+kgDbAMYYkATYlsQLJQQgbHM/SbYBSVxmm+dHCGEbsA1IAiRxhTHmfkII2zwn24AkQBJgm/tJAmwDtgFJtoUASYAxL5SQMfeTBNjmfpK4n23ANiCJB7AtCZAE2OZ+kgDbPIvAPJMBEIAknpNt7icJsA0AtrlMEgAC8wC2hRAAYMAGhBAABgFIMsYIGfNCGEASgABsAxgEYFsSIAljLGRZyDZgjJEESAJs8wAGAbYkAyDJNmAbkMRltiUB4tksYXOZJF4A2wCAEDLGXCEJYwxIss39JNkGbEuShDEWQmAwgDHiCiEAMOYySYBtAAMgMJIAYwDzbAIQQtjmCiELsA0gjIUwAAKQZJv7SbLNZZK4nzHmudgGAEk8gG0AkARIAmwjhHgWA2CMjSVJss1lkgDbPJDAXGGb+0kCJNnmASTZBjAISbZtS+IBhBC2JQG2eSaBAduAJIQQxhgjCbCMQcjifsaAbUlcZsAGJAGSbAsA2wZJPCdJgAFbANhGsi0uk8Rlkm2usAFJBsA2IAkQQthGALIAY8AYgxDifraFEBgEIGRsLMRlxrIQQsZcZhuQJAQYYwDLQrwAtgFJkrjCALYBxHORxPNj27Yk7mcbkCSJ52EbIQTY5n5CxpIAzPNlG2GMQQgBGIQk2zyTwNxPEgYw5jLbCCFAlrEkwBhjDEgCJAG2uZ8k25IA29xPEmCb+0kCbAO2JQG2AUmAbUASl0kCbHOZkDFgG5AESLLNZbYBSYAkwDZgm/tJAiQZYwDbgCRAEmCb+0niOdnmMiEEYBuwDUgCJAEYwDaAeDaDeEEkcZltAIN4/syzCQADWBbiedgGJAGSbPNCCIwkHsA2/xqSMJYxgJBtAAFI4n62AduAJEASgAGMAUmAbf4lkrifbUlcZhuwLYnnZCwLkGSMAGQZA4Ak21xmG5AESLLNZZK4n23uJwmwzf0kARhEABjM87JtG7BtG7BtmxdKEg9gmyvMM5lnMhgAgwEwtnkmA0g8i0DiCmObZxHPQQAIBIB4IGPb3E8IAQCSAMTzss1lxsa2eRZhm8ts88IJ2wAgSRIPYNsYMLYNGNsGAAwgCZAkyRiwbZsXTBIgCUC8ILZ5AGMAsM2/SACSJPGcJPH8SAJs8wBCPItAPC9jXihJPA/b3E8S4lkEgBBCCEDYBowxgLEQL5gxYGzMAwkAIwQAGEAIwNgGACFJ3M82z0kAIGFzmW1JgCRJ3E+SbcBgnkn8KxnbQjyAMc+Pbf4j2OZZBIAwNuZ5mWcyz2aeTQBCAOJZbEviX0MSl0kCJPGcJAFCGACwDWCeg3ihbJvnYp5FEs/JtiQewLYQz8OYBxK2Ads8P5J4FvMsxgAGwDyLMf8S24C5TOL5sW0bGzCXSQYBgAQASLZ5FgkwzyaJ+9kGMM9FCBDiMklcIYQQz8EAkrhCAMY8P8YYwFiI5yGJF04gAEk8gG1eBLYlSeKFMM+HkITBPDfxTAIQQgjxgogHsg0Yc4WRJAQAlgFj7idJEs9iHsg2YNs2D2DbNi+AJO4niftJAgBJPBcBYCRJAoRscz9JkgDEMwlAEg8kbGMAQJIkQBL/GsY8gCTANmDbGAEgjLlMEoAQ4gWwbds2ABjzgogrjG1jAGMhHkASz8M2DyCJy2wDAAawzfMjCbDNZZJ4fmwbY64wRiCusG2bB5AkCRDCYF4Q2zyQQDxfkgDbtrlMEs9DCIEwBjAYY+5nm/tJkgRIss2/C2qtSQJAEra5TJJtwLYkwLYkQBLPyTYgifvZ5n6SANuAbUASIATYRhhjJPF82YAkwFxmAEkAArDN/YQQAAZA2Oa5mGcTgCSMsSTbPCdjQAjzTAKQBNjmfpK4n23ANiCJF0wSYBuwzf0kAUI8iwBsA7YBSbYlAZJsA5Jscz8hnpNtAPFAtrlMEs9JEmCb+0niAWwDkgDb3E8S97MtifvZ5n6SANtcIWQZ8zwkYRBX2AYASYBtwDYgiQewLQkQAoyFjAFskCTAmOdkWwghZMxzsi0JsC2JyyRxhQFsAwhACIMAjLmfJMC2JNvcTxJgWxI2YBtAAgBJPIBtANsgCZBkjAFJAMZCxpjnZRuQBABCxpJsA7YlcT/bknhOkngWA9gWsgwgrpBlG7AsxP1sI4SEEMYY20JcZllICIMAjAEMQohnEVfYtg1IAoQAY4QQgDHmfkLGgLGQJC6zDQCSbHOZJNsARhJgzP2EAGNACDDGIABJ3M82YBuQBAC2JQGSbHM/24AkSVxmm8uEAAzCGMAYS+IySYBt25IASTyTQbZ5ACHbPCdjIUCSMQDGIAG2xQNIPJCEjY0ESLINYCPxAAJzmS1AQgJsA7YlCQyAbQkjASAE2AYQACDJtiTANpdJ4jLb3E8SgLHNFeI5CIxtrhBCPICxECCEeA7GGLAticskAcaAEGCMkQTY5n6SeE62AduSuJ8kwDbPSRL3sw3YlgRIAmwDsgDLAAIDIIQA21whZBlzmSSuMAjANoBBALaFAEkAArBtLAQI8SwCsA1IAmwDtgFJgCTANs+PJJ6TbZ4fSbYBIWOeH0mAbQBACNkGJAEYAGEbsA1I4oGEEJfZ5jIhrhC2uZ8kwDb3k8T9bAO2AUmAJGPMswhxhbjCNi+YbQQACPH82BZCPBdJtnkA24AknpMkwDZgW8gYIQRIAmxL4gFscz9JgG3+JZIA29xPEmCb+wkZc5kkDOJZbAO2AUmAJIwx95PEc7IN2AYkAZJ4fmzzL5HE/WxzP0nczzb3kwTY5n6SeCZCEs9k29zPNpdJ4jJJvAhs2+YFkCSJBxKAkCQuk8QD2EZCApCQAAQSgHj+DOaZzANJAhCIZzJCto0B2zyAJEBICEAIcT/btnketm0DgCRJPA9JPD+SJPFA4tkM5lkkAZIASdzPNi+IABCI5yIJEOIK8Vwk8fzY5jLbPCfb3E8Sl9m2Ddi2zfMlAMxzM89im3+JJACQxP2MMcaAAcRlxrwgxpjnIQkAJNnmMttcIZ4PgQEQz2LbNmBbEg9gG7CNZAAhcT/bPIB4JoFtrjCXmcuEeMEkSeJ+xoBtnh9JvHDimcQzGQxgDBhjAElcJgnzTOaFEc8knpt5XpK4QhgDGADzXIwBAPOvIJ6XsTHPRTwXG8AGkMT9JPH8SOJfQxL3s81zss39bPMAQsa8YMY8k5B4AcTzJ8k2/xq2AfPcJIHEsxkDiCsk2QZs8y+xDRjzPGzzPIS4TIjLhHgW82zmmYwkrhDPhwFs86KRxHOyzQtmmweQBGCeSSCeyTyTeRbbgJAxz2IADIB5NiHEZcaAMf8ig0E8F0n8O9i2zXOyzWXGAMaYB5DEcxKyzWXGAMLYNgBIQjw3c4Vtnpd54Wzb5gEkSeIy25gHMjbmCoMBbAMIIcwzCUCSLCEhQBJgm8skAZJ4HpJs8wC2JUniOUniAYQASUKAJC6TxL+WeV62bfMAtnlOxjyQeF5CAIB40UniXyT+RbZt27YN2OYBbNsGbPMvo0qyzfMjiefHNoDAIIQk2eZ5SAKMZSEAzLMJYyGezTa2JdkGbPMswjYgAWCMsQCwJAADGANCvACSbHOFEOIKgwAkAbYB21wmCWNsLGSb+0kCEM+XJMA295PEZZK4zDYgCbDN87CMAYS4nyRAEmDbGPNCGANCCAyAASQBxoAkjBBXiCts8yxCyDbPj23ANiAJsM39JHE/24AkwLYknsUYA8YYIWMhAGGMkcQLIMk295ME2AYk2QYsA0LCSIBtAAFIAmxzmTGAkQRIsg0AkgDbgCTbkngWAyAwzyRsIwAhhG3ANiAJsM1lkmwDNhK2AWQQD2BbEvcTGABJgG3AtiTMc7ENCBlLAiQBxhjb3E8Sl9mWBEjiAWxzmW1Akm0ukwQgMLYlYQBjQBKXSQJsS8IYS8IAkgDAthBXCNsIWQACsCwLYYxBYB5Ikm2exQDGGGNAiPtJAmxzPyEuk8T9JAHGtgFJXGGMMQiMsSRJPCebywSWBIAksJEA27YBIQRgmwcw5gqBARC2JWEQAMK2bUnczzYgybYkEJj7CQEYBCBkbBshBBhjJAGSuMy2JLAQDyCJB5IA24BtgSSukADbtnkWCcA8ky0JbCQwIGEjMEK2AWMhIcQD2ZbE/WwDkgDbXGYbQGCEjAHbXGEASba5TAhhm8skAbZtIzAIDIB5IEmYK4QQz2YQtrmfJF4oSbYlcT/bkmxLAmxLsg3Y5n62JSGEAMAYA9gGJAEABpAE2OYKAyAwxhgERhKXGWMk2TYWMhayDQhhAMtcYRBCQoAxRhJgWxL3sw1I4kUjybZtSdzPNiCEABAYY0mAJMwVQgBgm2cxiOclhAEkAYgrbAO2JfEvkQTY5n62uUwSD2Cb52IAhG1ACCMJwACSeABjBABIsg1I4n6SMIhnEhjEs9gGAEkAIInLbAO2AYQQz0XY5gWTxAsghLjCMiALsA0gHsg2L4gBjLlCCAHGQgDmmQyAeC62AUmAbUnczzbPjyTb3E8S97PNc7LN82Ob5ySJBzCWhQj+PQRgbIx4QWQhMBgA8yxCPIANANgGbEuSBAhsrrDBgAEwAOIK8a9imQcSAMK2bZ6Tbe5nDBgjEM9LEvezbVsS/xqSJHGZbcwDSeIySYBtAANgng/xbAbzHIwxzyL+Bca2JF4wSZJs84JJksT9bEsCbHOZMSAECCEQz2KbF0wSz49tBCAkBIB4FnGFbduSeE62eX4kcZkk21xhnk28IJIASZJ4TrYlAWCexTwv2wCAZC6TeBabF0BICJDEAwjxAJIAQJIkLrNtm3+RwTx/QhLPlwCMhXgASba5zDaAeSAhHsg8F9s8DyEEIAmBEEL865jnTwAIwJjnIXGFxP1sG8DmuZgXxiCeSQCIfzNjY8RzEeJ+knj+xAtgnskAmMskXgiJK2QukwSABOYyG8AAxjwX8x9CEpdJ4jJJ3M8297PNsxgA80DGXGbbmOdLvIhsc5ltwDb3kwRI4n62eX5scz/bGACQJAmQhHlBhADE87KNuUISAEiyzWXGvBDi+ZJkm8ts8yKTxAPY5goBCAFCAAbAAAjEFcY8J9vczzbPIhAAAgBs8yKQxPOwzQPY5jnZts2zCEnG3E8S9zM25jLbxoBtALDNA0jieRnEA0kCJHE/24BtHsg8k0AACNu8ULZ5QcQzCQzG2BgB2OYKg3lu4lmMjXleAmEbMDZGIP4F4lls8y+xDdi2zQsgSRLPQ5IkXjAhAJDTxjw/kgDb3E8SABhjni9JPBeDsA3YBiQBkgDbgBDCNmBbEmBbEiAAbANIgACwASQBljEAQgiwzf0k8Zxscz9JPCfbgG1JgLEQ5grLgJBtSYAkAIOwzWWSbHM/STwn29xPEvezzf0kAba5nyTbgCQAsA3YRghhJAHGPIAkAMAAtnkuApAEGGOuEELYBmwDkrifbUASIIn72QZsA5JsSwIASba5TJJtnpNtQJKxECCEQQDGAAYhiedkm8skAbZ5ANuSJAEYwFiSbe4nZGxbElcYYwRGEs9Jkm1Akm0eQIjLjHl+hIy5nyTbgG1AEg9gLAQIbFsSCBnbliRAss39BIBtBAgQss1lkrjCIADEs9gGbAOSAEm2uUySbduSAEm2AdtcJokHEAKMeSCDACTxnGxzhRFCGEsCbPMsxlhIEsYyIISwDdjmMkkABjCWBAgBxkLG3E8SxljIGABsS8JIAowRQrYBSbYB25J4ACEExhiDkATY5nlIYMxltiTACIy5QhLCNveTZJv7SeL5sc39JNkGbAOSAEnYCBsAg0AIYRCAbS6TZJvLhBC2uUwCBAAGbBCyAMT9bAPYBgESIIn72TZgC5AAScYYkLhMALYB25JsAwghrjCAJGMEBpDEZcaAEA9gG7AtJAQgAIRt7icJsA1gnsUYkMT9bEviMmNAFgLzTEKWMQJAAEKAbcC2JC6TBNjmOdnmfpIASTwn24BtQBIA2AYQQoAkjLFtSYAk2zyAEGAMYAAhY4SQMfeTZJv7SbLNc7ItxBUCsA1IAiTxgtnmfpK4n20eQJJtQBJgG7DNZZJ4FiELsI0AMJKMERgAAxhL4vmxDUgCJAHGgBDGGLAticskAbYRQgBgm+dhW5JtQBIgCQBsA4BtQBIgCbDN/SQBtrmfJMA2YBuQxHOSZBsAJAG2hbjMMgaQZJsXzDYgCRDiWQRgm3+JJO5nm/tJso0Qss1zsg1I4gqDACRxP9s8P0II24BthBAgicts8wCSAAxgDEjCGAO2AUk8P7YBSYAkwDb3k8Rzsg1I4gFsc5kkwDZXCAwQBsQD2eaFMubfSpIkni+DBEjiMkkAYDCAQFwhAYjnw7xwtm0DmOdl2zYASAIAIQABGANCgCQeSDyQbQCwDdi2zb+TMOYy28a2uUySEICwbcxltrnMNgAgAEmIZxNX2LaNeTYBSAIkSeJ+tvmXSAIkcT/b3M+2JJ6TJEmAEM8ibBsDmH+RbZ6TbZ7FAMaAbe4nxPMjBEjiBbMtxAMYA4grbPMsBjDmAWxLAiRJss0DCPEsEjbPyWCb5yWBuMwYASCeTTwX21wmSRIgiRfMNi8CSdxPCPF82eZZBGAM2Oa5CAABWMYAxrZ5vgQgiedkzBXmmQRgzP0kAQhjYwDzLLYl8YKYBzK2zfNj82wSz48xz8m2EM9inosx5oGMAUASzyRswOa5GQDzvIwBwDbPJBDPYgNgAMT9bHM/AYgrbJ7JAFg8m20sAGwMYJ5FEiAJEOJZhJAxgPkX2ea5iOfLNs8inkWI5ySJ+wnxXISQZQADYDAPJIn72bbN85DEc7LN/WzbBgBJPCdJQlxmmweQZJvnZGzMFULImMuMuZ8k2zwX8Vwk8ZwkIa6wzYtAEi8C24AkQBIgiQcQMjZGXCHJGMC8ILaNAcC2JEmAJJ7FAIgrJAGAJJ7FXGGb52FbEiBJEiCJy2xzP0mSuMw297MN2AYAY140kmzzPIwBBOYK27xgtiVJ4rmI50P8KwjbAOa5SAIkSQKEAASAeL4kcZltwNiYK4QQgLjCNv8S25YlAZIk8QJIksS/g21eEHMZykxJgG3ANiAJkATY5n6SANuAJK4wAOIK2zwnIWNJPCdjIQxgDCCEuMw2YBsQAgSABYAAyTyLMfeTBNjmfpK4n20AA0gCEJgrjLmfJO5nG7ANSAIkcZltAJAE2OY52QYk8QCSbHM/SdzPNveTxHOyzfMjCbDNFQZAGGMkAZIwxgiMkG0A8fwZhCTbgCQusw3YlgTYlsRlkrjMNveTBNjmBZBkG7ANSAIkAbYRsgBjzBWSAGMEgAEk2eY52QYk2ZbEZUK2AWNAEiAE2AYQxkKALGMEIMm2bUASz2IASYAxzyKEbHOZbUmAEGCMMQYkAZIA24BtQBIgifvZBrBBPJN5FgmQhA0YJHE/29xPEmAMYJ6LbUASl0myzfOwLYnnYRuQJAmwzRVCCLDN/SQBtnkWg5CEsQ0YS5IE2JZkjHkmgXk2g7DNZZIASZjnZRkDYCQBxpKMMc8khLjMGPPCGMAYEBLiWQRgGQPY5jJJtgUgCQAJwBiEsQBjy0KAJNuAbUmSuJ+xLMsYACGEwSAAxDMZYwwCIYMxRmAJIRC2MQgAgZEE2DaWxbMIkAQ2EmCb+0nCIADbADaSsBG2kAUgCWNskJGwbZDEsxhAkkHimYwxl0kCbAsBthG2JXGZkLEQwjYgCbBtG5DEZUKIK2wDtgFJgCTAtrEsScbcT8gYIQRgjAEMIGQsyZjLbAOSAEk8gG2eh21AkiTbgG3uJwmQZBuwLYl/kXkm8UC2AUkIzDMJWYBt7icJQAC2uZ8kDICwzf2EAAyAAIwB24Aknh9JtiVxmW3uJ8k2YBuQxGW2JQGSANsYBCDJtiTAtrEQIAmwDdiWxLMYAPFMBoEBEIAk21wmCbDNZZIA2zyAJO5nG7Atiechicts8zwkAbZ5TrYBSTwnSYBtwLYkAJDE/WxzP0kABkAAtrmfJMA2z8k2IAmQBNjmBRMyBiTZ5jIhY+4niSuMMS+UJJ6Hbe4nifvZBmwDknhOkrifbcA2IAmQBGAA2wACkIS5wpjnRxJgG5BkWxL3sw1I4n62uZ8kwDb3kwTY5jkQPCdJkrjMtm3ANi+EQLwwQhLPQwhAPJuxzXMSAkAGAzaAwUY8L0m2bQOY52AwAMYYMDbGAMbGAOb5EIAkSYAkLrPN82Ob52SbB7AtiX8N27Z5AWzblsQVAgEISbLNAxnAGIF4QYwB2wBgG7ANAJIAQJJtLrNt2zYPYNu2JJ5FPJBtLpMkifvZBjCIZxLGCMAYwDyLbUk8J0mSAEnczxgwBiRxmbExgACEeAEkSeKBBMLYmAcythFXSOIBhBBCQphnkcRlknhOtgHAPDcBiOcknoMknpd5XpIk2eYy2zyAJC6TxPMjiWcxz2YA21xmm8ts8/wYA8bczzZgW4gXRGCEAEkA4l8mAGPAthDPYmzzIhKAEM9FPBdJgCRAEoB4NgMIAMRzsc2LyDw3A2CePwmEeP4MYBsAMM9FAgNgHkgIAwbAXCEBNmAQ97MNANgIAInnIp5J5grzXGwDxsYIQBL3M+Y52eZ+kngBbHM/STyQeCAhYwADYMCAMQAYA8bcTxKXSQIwV9jm+ZEkiRfKNs/DNi+IABBXSAIwQjyLuEIIASAAhCSuMJhnkYQBjG1zPyGuEAhjY8A2LzLb/GvYtg0grrAN2LbNCyCJBxKIZzIIAIEAANu8YLb5l0jieUgCANs8gG3bgG3bPA9JkowBAIMBbNsWAiTxIhKIF50kSfxLbHOZMQAYcz9jnpd5UdjmRWDbNmCbB5AEAJK4wjyLJEm8AMaAbS4zBmzb5jLbXGbbNveTxItAkiQewDZg2zbPxSjTEmAsxBW2AduSeABJ3M82VwgA80C2AUmAJMA2IAHiMttcJsk295ME2OYKIwRYBgwYCQABYAAhAAHYBjCAJGMAIQuwjTAGhAAhwDb3k2QMIDCAJB7ANiDJNveTBNjmhbItiRdMEg9gWxJgm/sJcT9jHkCSbZ4fIcA2whgjCUBgrpAE2OZfIgmwzWW2JfFCScI8k7AN2AYk8YJJAmzzXAziCtuSAAQGEAIQz2IbsA0gMJIASbZtA5IASQDGGAMgAEASl9nmfpIA24BtSZJsGwNCCCEuM8YgMIAsAAFYFrLN/SQBtiXZBmxL4gpjEIBBAiTAMoB5XkKAMSBkDNgGJNmWBEiyzf1sA4AkQBLPwzYgyTb3EwKMMYhnsQ1I4lmMsSQMQsiYy2xL4jlJ4gFsAwghjG0AAQgBxggAg0FcIQQgANuAbUmAJNsABgFIwiAwxhiEJNvcTwgw5jJZAAKwLLCRZJv7ScK2jYQExgAYhCSMbcAYEAIQtgFJQgjbgCTAGGNbkhBXGGPEMxlAEpcZxGUCAwYZc5lt7idJkm3AWAgDSDLmMiFjSYBtDEKABAYBtg3YQlwhrhDYIJ6XJMxzEIBtDAKQBNi2LQkhhEHYBjAAQsiY50cSz8UYA7YBSYAkjDH3k2RbEmAbgwCEANuAZSFjzBWSJNnmfpJsS8IYcz9JPItBXGEbsC2J52FbEi+YbUmSbBsLAZIADGAbcYUk2zyAEGDM/YSMJWEQAAawDSAQsrhCYADbCGMhLrMNAJJsA5IASQBgGwBsA5K4n21AEs9iELYBIe5nDEjiOUnCGAMIWQiMMfcTMuYyIcA2wjYgCZAE2OY52QYkAZK4nzEGkIQx5gohBNjmMtuSeADbgCSeH9sIIa4wCEASAGAQgG2ehyTb3E+SbUnczzYASAIA21wmiQewDdgGEEI8F4N4ISQZYwAhwJjnZBuQBEjiOdnmfpIA24BtSTyAkDEPIMm2JJ6TMSALsA1YBoQwVxhLAgDbgCSekySeH9vcTxJgG5AE2AZsA5IASQAGsI0IcYXMs0kCJPGiMJjnIonnTzwP2wAGA9i2LcQVwthYCBBIPJPBAJgrbNvmCiGJZzHGthGAkBAPJBBX2OYK87xsA4BtLrPN/STxQkniX0MSD2AbQDybeCDbgG0uk8RzEYCQJGNAiPvZti2JyyRxmW2eH0lcJgkAEC+IbcQVtnkA2zwnSTwX8UzihTHPnxHiASQBkrhMkiTbPIt4XrYB2zyQwTwvISEAc4UxBsA8k0A8k7ENYDAPZJvLJPEAAmMuM2CeyTxfxtzPGMAAkgBJPD+SAMA2L5RtHkgAQogrJHGZJC4TAhCSAATGWIjLJPEiMoAxgHgWYwDzwhghHsA2z8k2AkC8IMY8F/FsFmCb52QewACYZzEGACEhAAFI4n62ucK8QOK5iWcRz82Y+0ni+RECEAhjnot5DhIA4lls8XwJ8XwIzHMzz2YA2zwXA9jmWYSQMS8i8yySJHGZbR5AyDZg25j7SeIKgRAChHjBbAOYB5IEYDCY5yWJ50cSLzpjG7BtmyvEFUK2eaGEAEkYAIN5JoEAhHguBgEIcZltLpMESJLEA9jmfpIkcT/bPF9GiOckSRIgCbDNFebZjGXMFbYBhDEGAxgbIwBJkgBJvACSJAGIZzOYZzLGPIsBbHOZbUk8J0mSAEncTxKXSRIChADEFbZtYwAM5kUkiefHNi8yIZ6XeBbbPA/bmGcTiCskSQIkSeJZzAti27YkQBLPyZjnIYkXTiCEhADEFZK4nyRJ/IeSJInnJYBqzDMJsM1lkgDbPBeDeL5sA5K4TBIPIAmwzXMxCCGEMeaZhJAx9zMGJAG2AdsIIZ4fSYBtAAMgnkUSz8U8k7jCNiAJwBgDkngekgDbACCJ58c2IMk2YBuQxPNjm/tJ4n6SuMwygJGFsA3YBoS4n7EkDGAsJAmwDQhxmSTb3M+2JJ6TbUmAJC6zLUkSYBsAhBC2eX5sC9kGLANCCMA2l0niMklcZiyEeRYhAIExRkgCAGMhjGUhYwADYABJtoUASbYBSbYBSdzPNmAZgwEkAbYB25KEeE5CgG1JtgEMwrYkDGAbkIRBGCOEMAAGkATYlsRltiVJAmwLGQOSjMUDmOdiGxACLPOcJHGZJNtcJon72ZZkWxLPj23ANiAJkATYRmCEEIBtQBL3s42QBGCMAYyxJACBAYx5fmwDGIRtwLKQJIxtwFiSkDHCtiSMMQIDYACEsZBtQAjAIJ7FNoAAbEvCGGMQgCTbgGWuELIAzDMJIYRtAAkQGGwDkgDbAMK2ECAJQNiWBCAwtiUhAMwzGQBxhZBtYwAQMhYCm8sElgQI27YkSbaFjLnMtiTuZ9sYA0hCYIQA24CxkG0AEOIySdgAGAQIIWxLAmxzmSQewJj7CWEAhG0hwDaAADCAbQCBEQKMuZ8kDGAMIADbAAIQsi0JYRuwLQljLMQDCQAjhDC2jQBkcT9jSbYlAbYlAbZtS+J+QgACg0DYFuJ+tnkASbYBSbxQtgHbkgBjQJJt25IABCAEYIwxCNuAEIBAYK4wlgQYYxCAJEAIA9jmWQwgicskAbYl2ZbEZZJs8wJIAmwDtiUBtnlOkoyFuEyWMZdJ4jJJPJABEJhnMpIADICwjblCEiDJNmCbyyQBtrmfJACDMeYySRgAY8xlxoAk2wBgm/tJwiAADIB4INs8gCRACLDN8zDm+bHNC2ab52Sb+9mWxPMQ4jJJPCfbgG3uJwnAIGxzP8sYQBJgG5DEcxG2eQBJtnkASYBthBAGsA0YA5K4wiAwxtxPCIEAMM+XEIAAbHM/SbZ5ANvcTxLPjyTANiCJ52RbyBiBkRQABiPxQLZt87zE82WbBxDi+TDPSzwHASCMjQFjYwAD2LaRBEgSAhDGxjyAbdtcIRAA4jmY50sIkCSJy4y5zLYkXijbPA/bXGZbEiBJEi8C27Z5ANsYDGBsm8skSUJI4gpjGwHIAoxt8wLY5jLbgG3ANiCJy2zbBiRxmW0ewDZg2zYgiQcw5gqDATCAJF4AIR7IIK6wzHMSAhCAMQYDYAAEIAkD2OYy20JcIQDbXCYkCSGJZzFXGBvzAMZcZlsSYMxltoUAIUkAwjaAsc0VAgEYA7Yl8QC2AWMEAhDiRSSEuJ8Q4lls84JJ4oWSJIkHEhjAGLDNC2GeizGAeSFs85yMMQBgDBjznCQBiOclJARI4lnEFbZtc4W5wjYPYGyb52IQz4dBPC9JPCdJxoh/mflXMeZZDIB5LkKAEPezzQOZ52XM82PMs0hgEPezDdjmedjmhZLEA5krjAEEgEAY80IY21xhnpexJAABGPMs4vkzz5ckXhABGHOFQTyLMQDY5jLbXGabf4lt24BtSVwmxGWSJAGSeABjDAKQJISQxPOwbcz9hLjCAMa8YLYBSYAkAJBkmxdAEg8gicskcT9jBCDEZbKMuZ9tY56XQDwH8UwCAUjiOdnmOdnmMts8kHhuAkBcYcxzss0DmedmMC+IbWMM5nkZ869nm+dkm8ts2wZs2+YBJCGusG2b5yFJEiCJKwTmOZgrjG1zmW1eBJK4n23btgGMba4QV0jiCoMAEM9BABjMswkEgACMjXketvnXsG2bF0oSAsAAttVakwRIAmzznGwDkgBJGISxEGAbsC2JKwwgCUDYBkCSQbYB24AkQBKXGcvifsaAbUncz7YkQBL3s839JHE/29xPEmCb+0kCMAACsM39JAG2eX6EEA9kG7ANSAIkAbYBSYBt7ieJF8A2IMk2z48kwDaAQTyQEGAsZMwDCAGAMfeTxBXGGMAYS+J+tgFJPCdJ3M82z8k2IAmQBNgGbCOEjDEIIQyAsA1IAiQBGGMhhG3uJwmwzf0kAbYl2eY52QYkAUKAMcYYkARI4n62eX4k2bYNIDCSAEmAbS6zLYn72QYkAZIwgDEgZIyxLCSJ+9kGbEviedgGJAGSANuAwCDEFcI2gDGWBEgCbHOZkDFgG5AESAJscz9J3M82z0kSANgGELIQtnlOtiVJsm0bkMRlQgDGMveTBRhLMgZsSwIk2QZsCwkZA8aSuJ9tQBKXSeJ+tm1zhRCyLQmQZBuwLYnLJNkGMMaSjIUwgBACMMYgAEm2MQhACLANAJIAxLPYBjAISbZtS5Jkm8uEAGMuk2Sb+0nCGGMQgBBgLGTMA9iWBCAwGEAIYcwDCAG2AWNJXCYJsA3YBiQBkgDbgG1JAMZYiMskAcZcJsRlthFXSOIKg7jCGPNMQhZgDEgCbAO2hQBJxtxPyBiDACTxALYxiOcixP2MuUySbQDzbAJAYCQBtjEIQMgYI8kYkMQD2OYBJAG2MYgrhBDPYts2IIQAbEvi+ZHEZbYB25IAQJKxLMQVtrmfJMC2sRBCFmAMIDCSANu2JfFcBAYQso0wFrINSOI5SbLNc7ItCZDEA9jmBbAtZAxIAiQZywKMAduAJEASgAGMAUnczzYACPEswjZgG4ERAhAAxhiQxHOSZBshZJv7SQJsA7YlcYV5JvFMBpAEWBbCGAsBxoBtQAhAYBCAkDEghHgW29xPEvezzf0kAbZ5wWxL4n62JQGSeE62uZ8kAGMsicts8wCSjIUA24BtQBLPSRJgm8sk2QZsA5IASYBtnosBJAHG3E8SxjIGgXlBhADEs9jmfpIA2zw/knhOtrlMkm3uJ4n72QYASTyAbZ6JAPFCSZIEALaNAVm8CGzzTAZxP0mSMICNDSCEeC6SeABJXGbbNmAbwPwLDOb5EAjMczOYB5LE/Yxt8wCSAEmSeKFsA7Zt84LZ5gEk8XyJ52JsDBhL4gGMjY15FnGFbWOuEJJsA5IASZK4TBIvmG3uJ0kSIAmwzWWShAAhQAhAALYBSTyAMVeYB7JtGzC2DWBsA7Z5AEkAIIkHEEJIkmSb+9m2zfMjiQcygG2ehyTuZxuQxAMYc5kxgMA8N/FCSJJkzGW2eSYJ8SxGEpcJcT/b3M+YyyRJss2/n0E8L9s8J0nczxiwzAMYGwPGkngA24Axz0kSlwkBCEnczzbPjxAgyZgHkMT9bAtxmSRACEAAxjyLeL6MAQSAAPMAtnkRGBtzP9s8X+K5GPOcJPH8GPOcjAEEIIn72bbNZZJ4FvMskrifEPcz5vkSz2aeSVxhG/OC2OZ+khCI52KMQbzoJPEs4rmZ58M8LyFjAPEstrmfbS4z5gqDeW7ieUlCXCGJF4FtSdzPNgbxIjHPwQC2eSCBeDZzhW0EIARIAmzznGzzorHNCyYJIQnAALYxxsZcJgnAAJjnIF44Y9tcJgkQAhDPIsTzELINYGzzALa5zFgSz0U8m0A8i7Exz0kSYMwVApBkzGXGPF/iudjmRSaJfzMhicts8zyEAEASIAnxvGzb5n62EYAkSRjANiCJ5yIQAALxLLaNMQDmRWUwQtzPtm3Atm2ek23bPD+2+ZfYNjbmuaHWLAFItgEk8Txscz9J3M829xMCMAACMAbAIEk8iwHbApABcYUQxoAQz49tnosBJBnzAJIAzLMYcz9JtgFAEs9insWY+0kCbHM/SYBtLpPE/WxzmSTuZxuwDUgCJNnmMkmAbZ4fSdzPtiTANoAQ4n62uZ8kwDbPjyTANi+UJB7ANveTxP1sA7YBSYAkwLYk29xPEmCb52QbIQRIAowBWTyLeBbbgG2EEOb5EM9FiMuMJQG2uZ8kwDbPybYkSYBtLrMNAJIASYBtLpNkG7ANSAIkcT/bPIvAXCHJGCNkzGW2JXE/25J4HraFJAHGAAYBCNkGEM9iG0BgJPE8JNkGbEuSxP1sA7YBSYAkwDb3k8T9bAO2AUk8J0m2eQBjISHAGGNZiMtsI2RxmbEQQohnERjbAAIQMuZ+kmxzmW1JgCTbXCaJB7BtW5IQzyKusA1gEEKIK4wxQoBtAPHcBEaSbcC2kCTAmPsJIQCMMQawjLlCEiBkDEgyxgBCCMA2BgFIss0VAguMEZj7CUm2uUwS5pmEbe4nyTZXGISQMUIWwrYQgDFGABhAkjECEOIK80CWMZIA27YlSeIBbHM/SQAGMEYAmCtsSwIkcYUxRghhnk1gjHkWAWCeRQgwBoxlGQshAEm2ASEuMzYW4jLbkgBJGGPANiAJELKNMMYAkrifEMI295PE/WwDtiXZBiQBkmxzPyFj25IAIWNAkm3uJ8k2DyAJsA3YBiTxnCQBtgHbCCFAyFgSYBuwDUhCYADbkngA24AkQBIA2AYA25K4zDb3kyRkDBgL2QYkAZIA2wAGkGQsiedhmysMIGTMFeLZDCCJ+9kGEIAkYyHANveTBNjmeQkMgEEIGQNCXGZZCAMgnottwDYgCZCEMeZ+kgCMsRCAAGwDgCTb3E8SYBuwDUjiOUnifra5nyQewDYPIMk2l0myDQC2AUmAJMA2l0myzf0kAbZ5fiQZywJsAwhAEs+PsRCX2eY52QYkcT/bgCRAEmAMYK4QMgZsA5K4zLYknpMk7mcbsA1IAiQBtrmfJO5nG4EBJAG2gZAAJGyusM2/jQAQiAeyAWzbBgBjAxiZywzmMvMCGYwQz0UgjHnBjAHEs9jmX8O2bV4w21xmm+dkm/tJkgQAtrmfbdu8CCQBtrnCPC9jXgS2+ZfY5oWyzf0kSbINALYB2zyAbduSeCAjJMSLTBIgSQhAAMbG3M+Y+9kGjI0BIS6TxAtlGwBs2+Z+kgBJPD+2uUySJJ6HJJ4fYwxgLMRlkmzzohDPlzGXGQOIB5LEA9jmMtuSeMEkSeJfYhuwDUgCAEm8EAYwNgYQmGcygBACAQjx/BhzmW2eh21JXCaJ/xACY8yzGMAYQDx/BrCNeCZxhRAPZJ5NIIR4TsY8i3k281xs8yzmWcy/miTbPIsQMgYwgG3AGLDMswiBMYB5NvMcBAawjfkXSeJZDIDBPIsknoeQLB5IYJ6beSaDeS5CgBAASLLNAwkA83yYZ5HE/YwBDIB4LsY8gCQus22byyQBkgBjwDaXGQOIBzLmeUiyDQAYQBIPIInLJAG2MYBt2wAgSQgQMgZs2+YySZIADGBbEs9JEmAbsG3bNveTxAtgzGVCgCRJgCQeSADGPD+2eRaBMOYFEAIQCABhDAC2MbYBwBgAbNvmfpK4nxBXCMCYy4y5TAhAIJ6XECAJAQjZNgZs85yEeH5scz9Jtm1zmSRJgCQewDb/EtsAYBsAbHM/29xPEi+AbV40kmxjjI0RCNuAbds8DyHAtm2ehyRJPIAkSVxhMBgMgMEYA7YlSeJ+kngetm3zAJJ40ZnnQQVLvDDmednmMkncz1iSbS4T4n62JfFcxLMZAAEIcT/bXCGeRciY52QbkGRbEgAYc5mQsRDiCtvcz7YkAIN4NgMAkmxzP0m8aGxLkgRIss39JNnm+ZEE2OZFZhtAXCHE/YQQV9jmfrYB24Ak/vVsS5JkWxJgG5AE2AZsA5K4n7GQbUm2AQwgCUAAxoAQYMyzmAeSxGW2AWOEEM9iLAsBkoyFAASAAYy5n21AEmAbsC0JsM1lkgBJtiUBkgDbkrjMNiAJkMRltm3zQEIIg0FcYRuwLYQQMgYA2zyLAYyFEABGEmBZCANYxgAISbaFAMyzCAGSbNsGJNmWBNgGJPECSAIA24AkLrNtm+ckCZAE2OYKAUiyzf0k2QYkITBCtiVZFgIQsrhCAIhnsQ0YA5IwxpKMeQBJtrlCYIQwlm0jhADbgCTuZwxgrpCEMUYAGIRtnkXIAmwjAIHBNgBIkmUsASAwthFX2EbIQghxmW1JtgEMwrYkwDZgWwgB2BYyxiCMhYyFAIEBYSwECHGZJMC2bUASBiOEADCAbUmAJAADYIwBY0nGAAKQhEFgAwgMwjaAQQCSuMy2JMuYK2xLss1lQoCxbYQsAIEBjAFJkgDMFcYYAIPAIDAIjBDmCmNJAAZAYJ5FEoBBYIwB29zPWJJtQJJtLpPEFcZYEmAsiWcRtjFCAMaYyyTZlsQLJgmwLck2gABsAwjbgCQAgbnCtiQus80VBhCyjQAkAbYlAbYBSRgAYywJkGRbEoABbAOSAEkYY8C2JC6TxP1sS7JtWxIA2JYESAJsA4AkwDaXSQIwAOIK2wiMJMA24tmMMQ9gWxL3MwYkcYW5QogrDMIyRhLPyTYgxPOQZBsAJPFCCMA2L5Qk20IYYwBhmwcw5jIhnh9JPD+SuJ8kwDaX2ZYESOJ+tgFJ3M82LwJJ/PsY8/zYlsRltrlMiCvEA0niOdnmfpIAzHMxFkIAtrmfJJ4f2zwnSYBtSbxgtrlMEoB5TgRgY/OCGBsDtrnMmOdHFgbAAOZZJIkXQAJAIF4Y80zGGMAAQtxPEiCJy2xjAAwghHlBbAOI58s2/1a2ucw2D2Cby2wDknhOknh+bNsGbPNczPMhnottnh9JACCJy2zznCTxALYBSVwmiefLPJu5wjYAIBDPZDDPh3letgHbACAkBAhxPyHuJ8QDCcTzsm2byyRxmSSeH0mAbcA295PEA9jmeRkAgXgm82wCMOYFEzLmCmEbwNiWBAhJAoQASRghIV4oSdzPtm1eANsAIEkSL5gkrjC2eRYD2OY5SeIyIS6TBAhxhTFGIDAABvNMAgAkAQjAmOdkm2cxiOdgANs8gLEx5oFs81yMJJ6X+JeIy4x5vowxDyAJQACSeC4CMAaMAQQgBAjxnIT4VzHPxTbPIl50QrZ5LuaFsM0V4jmYZxOAEM9ins08NwNgAGNjLpPEcxFXGGOexTLPj23uJwmQxGVClgFjHkAIMOZ5CAkBgG0MgHkukmzb5jJJ3E8S4tkMgHkg24BtnkUI2QYwGNu2Ads8kBBCPIttwLZtLpMkictsGwO2JXGZJJ6HJEmAJEASANjmMtuSuEI8HwZjG8AAtnku5oUQAoR4AGOeh23Mv0iI+0myzf1sc4V5LpJ40djmgQQgSYjLbGNeCEkAYNs295PEC2XbNi+UJMA2l9nmOUmSxAsgictsA7Zt83wZAIN5FkmSuMw2z8s8iyReMEkYzLMJABBCXCGJfz3btnmhbPNcBOIBqDYStiUBkgDbACCJy2zzLOY52AYkYRDmfuYyCUAStm1AXCGwAQmb+xljAEk8D2NACBDifpJ4vsyzCWMMIAmwzXOyDUjiOUnifrYl2eYySYBt24AkwDbPj21AEveTxGWSAMA2/xLb3M82YBuQBEgCbAshnpdtSbZ5TpJ4AElcZpv7SbLNCyDJNmAbkGQMABhAEpfZlgRIAmzzghljhBAABgHYBjCAJMAygAEkAZIA25IA27a5TBKX2QYk8ZwkAbYBSba5nyTbgG2ekyRAEv8iAxgjMEIYQBJgDNgGJHGZsRAgZFsSgMAAtiUBtiXZBiQBkjDGGGOek21Akm0AkGTbNiCJ+9mWxPNjG5BkG7DNZZKEEBiEbcA2IAmwzQNIsg1IAjBCiGcStgHbkhAYyxgAgZGEASQBkmwbYyQBgCTbXGYbkGRbyDLGWJJtHkCSbcAYc4UQl0kCG2wjMEgCsA0YCQQW2AYQgAzGGLAQ2AaMMZKMJWGMJQkBxpJsA5IASYBtAGPMZcaAbUASIIR4FmPbCCEewDZGEg9gG8AgMEIARsi2JMC2JMA2wljItiRAEpcZA4AkHsC2JAyAwACSAAwgCUBgbEvCALYBBMZYEkIWwrYkwLYQAGCeySBeECEEgMA8k7jCthCAQQAYhG2EEPezDUiSZFsSIIkrDAJjLMlYCMAIGSOeRRZCyLaxJGMhhG1AEg9kEIAQ4gpjIdsIWQghAAHY5jLbPIuQhcBgEM9iW5JtQBIgCcBI4nlI4n62AduSjCUBgCTANg8gCbAtifvZBiTZBiQBkmwL8QDGgBD3sw1Isi2JZzHGGMBYyBjAXCFkLAlAYCRhEM9kjLlCAELczxjAAELGCABhm8tsA5JsA4grJNkGbAOSeB62JQG2AUCI5ySEuMKYZxGY52Kb5yHJNgBIAmwDkgDbPD+SANuAJMC2JNtcJonLJNkGbAOSuMy2JACQxAPYlsTzYxsQQghhEIAxz8U8i2VAEgDYBgBJ3E8SlxnzAJJsCwGIZ7EtifvZ5jJJgG1AEi+YJF40trlCAIiQACTx/NjmMkmSACEeyOYKGwQgEGBAAgAkYfPczBU2gHkmc4VtHkgAkoQASQAC8UC2uUwSgED8e9jmOUniAWzzQtm2zfOQxL+GbdtcJkkSDyBJEg8gCXGFbduAbUASIAmQxAPYts0D2OYBbEvi+bFtG7DN/YQAAIF4Fkk8DyEhnh8hBCCEeA4CARhjbPOcbAO2eU62JQGSJAGAJJ6TJC6TZBuwbRuwzQtg2zaXSeL5EghJGMC2EA9gDAhhrhDiWQSAeBYhDADYFgIwVxgDxlwhAGMeQBIPIEkSl9m2DdiWxAtgWxLPydg2gJEESJLE82ObF8w2YJvnIp7FthCAeSBJ3M8295PE/YwBxPNlm+ckxDMZzHOxARBYCAwGzDMJxHOyeQBJgBCAAIy5n22ek22uEJJ4TpJ4FvNsBsA8X7Z5wYwBBEIS97PN/YQASTxf4pnEFZIAxAsnxP2EjAEEgACMAQCDeGHECyQQD2TMAwjx/EgS4gEkSeJFYAwYAwhjAIMBMMZcIa6QxBUCAWCeTVxhDBgbAxhJQgghAPFCCHGFQDyQJEASl0niOUlCPJN4XpIAIS6TxAtgG7DN8xDihRLiCnGFJMA2YJv7GWMAYyFACPEcxHMTz2SMAQQCkARgnkkACCFjnsU8iyRJPCdJtnkBJAG2JfEvMTbm+RIvhG0us81/HEk8J9s8P5K4n21jIUAS4nlJAiQhEM8kjI0BY64QAAKBQDyTAWzzgtnGAJhnMkK8YJJs81/DABhlWuK52OZ+kjDGkrjMNvcTDyABtgEwIAmwhcAGBIB5HgaQBBhzPyHAGJDEA9jmMiGEbcA2IIkHEkIABkA8i22ekyTuZ5v7SeI52eb5kcRzsg3Y5n6SAEkAYJvLJAG2AduAJEASYJv7SQJscz9J3M+2JNsAIMk2YBuQxHOSxP1scz9JgG3ANiCJ5ySJ+9kGbEsCbEsCJAEYBGCbBxACEM+XbQADSAIsAxgh2wDiWWwDkgBJgG2ek21AEgBIss3zkGSbyyTZ5jnZBiQBkrifbe4nCbDN/SRxP9uSbAO2JQkBtgFjQAiQBFgWwhgDCCHANlcYIcsABhBCAMaAMeYKSQDGWAjxXCTxALZ5fiQBtgHbknhOtiVhAASAEAIwxjyAMQYhJMRlxoCQbQRgWxIgCbDNZbYBIUAIARhzP0m2McaAJEm2AduAJATGNiAJkGTbtiQAsA0IcZkkMGAA2wCSuEwSlxljbANIGGEQAhthEAJkDIgrJNnmfkII2wAGgRCyzf0k2QYwkmwjAEkY2whAEmCb+wlxmTEPIAljbBuQZBuQxGW2JUmyzf0kYRBX2AYASYBtYyFAkm1JPIsBbCOEEJhnExhjrhAY25K4zFgIEDIWQjybeTZxhTEG8UwGEAIQxoAswJjLJNnmfkKAMSAJsM1lkrjMNg8giSuMMQZhjJGEwDyQbUASgMA8iyTMFZaFbAOSANu2JfEsBpBkjBAyxlwhCcBgEADiORgA8WzGmBeBJNs8P0KIB7IN2AYkcZltSdzPNiAJkMT9bHOZEOI5GARgG7ANSAIkAbYBYyFAyDaAAIRsI4QQz80AthFXSAIwgDEgCcAAtgFjIWNAEiAJsM39JAG2AduAJEAS97PNc7INIAAhAAMgAEk8J9uSANtcZlsSYJvLJAG2AUmAJJ6Tbe4nCbDN/SQBtgFAEs/DNmAbkARIAgDbPIAkwDbPjyTANvcTAmwDxoAkQBIA2AYQshBX2OZ+kgDbACDJNmAbkAQIAcYAAvMskgDANveTxP1scz9JtiVxP9uAJMA2YBuQBEjifrZ5DgQvhAFsGwO2eV7imSTbtnkmSbKxAWPzLBJX2FxmjECAjXkWYWzM87DNAxkEIEkSz8U8k0D8+9m2zYvAtm0ukyQJkMQLJQmQJInnYRuwbVsSz48kHsA295MESJLEv8S2bS6TJMk2L5gkQBIASOKBBGDMi8a2bcCY+xljMIAxDyAJkCSJF0qSJO5nWxJgmwewLYnLbEviOUmSxPOQxP1s2+YFsw0YSwIAY8AYEAIkAcYY2zyLATDPJp5NAJYBAAEISeIKgwGELPM8bPMisG2bF0wSgHg280ziuQhJwjwvY0lcJolnMc8iiftZ5jIhnocQz0kSz0kSL5gQ9zPm2QRI4n62uUyI52ADmPsJ8UxCPIttnotBAAgAY1sSz0sAiGcx5lkM5nkZ85xscz9JgCReOIEBMIBt7mebBxDCCPG8xAMZAwgA8cKYK4x5Lub5MwAGwDyTeVEJBOIK2/xrGGMQgJAkQIjnIQkAhHgA2zyLMeYK80zCmGcRCGMAY4x5JvEvMM/FtjH/bsaY52JbkiRAEpfZ5n6SJHGZbR7IPB8GwAAIQJIQBrBtm8uEuMI8i5AxgDHGYJ4P8Sy2bfOCCIQQIEkSIIR5FtuAbe4nifvZNuY5SUIAkgAhIUAIMOYFEAJsc5ltSTw/kiQBgG3b/FvZ5gWQJInLbAO2eU62bQO2eR7GtnmR2eYKg3hR2JYESELYBoyNucI8kG3btnnRSOLfSVxGBcA2z4d4PowQAsDYXGYwDyAJAAO2AUkAEvczkgEDCMA8myTAmAcyAOKZDIAAhBBX2AZsA5K4n23uJ4n72QYkcZltAJAEALZtA5J4wSQBtrlMEs9DEiCJ+9nmAWwDknjBbEviMkm2eRZjLInnRxIgCQAkcZlt7icJsM39JAG2AUkYhG1J3M82DyDJNs+XAWwDQgACMMZcIYS4wjaAAIwxlgEhYwRGiMsk2ZbEZbYBSTw/trmfbS6zLcm2JMA297MtiRfANveTJInLbAO2AUlcZhuQxGW2AQRgDFjGSMJIAowBDGAZgwAwlwkMAAghYwABIABZCNuAkDGAELINGAsBtgFJPCdJgG3ANiCJ+9kGANuSAEk8izG2jAEkcYWRhDG2LUmSbUkYBGDMswghnocQYMxlxpIABMY2AkBghIwBSQBGEmBbCBAylgRIAmwDkrifJEDImGcSAsCWxLPYSFxmG5BkG1sSYJANCAFGgGUhhG3AtiRAEgYwFkIAtrmfJC6zzf2MEUKAbcBYFuKZBAYQwhgDCECSbdtCljGSuJ8k25JsSwJsS7KNEOJZDIAxlgTY5gpjLMlYCLANAAghwBgQkmSMAQAhYwRgLAmDACTZBiQBCNs8i0EACMyz2JaEAWwLGQvZlsSzGGNJtgHbkjAI29zPtiTbgG1J3M82Qsi2JABAAIAkwLZtQAgB2JbEZZJsA4BthJBtIUASVxgEBhCybSyJ+9kGJGEA25IwCIwx4tnMsxkERhIA2JbE/WxL4jLb3E+SbZ6HbUCSsZBtQBIgicsk2QYk2bYtifvZBiTZFkIACMBYCDDGABgEBoGQhbBtLARIAgBjjGVZCMAYQGAwCMAYI8QVQgiwzbMIQBb3swzI4goBGHM/29zPtiTbkgDbkmwDkjCAMfezLYSwLYnLhABAEvezzQNI4n62eQBJtiVxmSTANvezDQCS+NezzWWSeAFs8zxsS7LN82WeRQjAPJv4F9kGAEm8YJJsCxnblsT9bHM/STwnSbZtA5L4l0jihbINAJK4nzEQApsXRBIPZJ7JYC4zGMAAGEBg2zaALZAEIGFjc5kEAiQw5grzbOY5mGcyVxgDto0xmGcSgCRJvGgkcZltXjS2AUm8ALZ5AEk8J9u2uZ8k21xmmxdAkiQus22bF8o2IIn72bbNi8A295PEFQKQxAtmm+fLXCFJEoAAEM/NCAFCQhgMgBASAoQwz2LbNmCbyyRJ4gWQxPOQBEji+bHNv5UkALANALYlcT/b3E9IEoAAjLlCIAAEBkBcZp6TEFcIAANghLhMyJgrBEaIyyRJ4nnYts1lkiRxmSRAkiRAEpcZG3OFAIQk8bzE8yEAY14ExsbcTxKAMDbmWYyxMc/FvBC2eQBJvCBGvEC2uZ8k7ieezQAGA8bcTxLPScgYg3mRGMA2YAwgnklgnsUygHhuAkA8ByMJkMT9bAOY50sSD2SuMOZfJADMsxgDGIwQgHgWSQAgZJvnyzwvSQBgDBjzXMTzZZsHkGSb50eSEJfZts39hDDPzTyQJNtcZluSEJcZc4V5XpIk8SxGkiRAiPsJYZ7JPJN5vmwbA0I8gCTuJ4l/iSQAQNjmeUiyzf0kSeJ+tiVJ4jJjY8Sz2LaNeW4GYwwgMA9kG/NMAjDmWQTimcxzsW2bF50AjLmfMZfZliSJy2zzXAxgzPMyz0EAiGcStvnXkMT9bHM/2zyAbV4A24Bt29xPkm2eH9tcZts2DyBJCJAESJLECyGeSSCuEBLiMtu2ecFs8wLYts1lkiQBkngASZIASTyAbf59JEkCJNnmBaJyP9vcTxIgiX+RASwDQoAQAAYwgCQAyWCeTQiwDALbFgKEANtcJoQAbAvxQMJYCIMAMIAQVwjAtm1JvACSAEmAbZ6TbZ4fSVwmiRdAEg8giRdAEs+Pbe4niedkm+cinoskLpNkm+dHEs+PJJ6HJO5n27YkLrMNCBlLAiQBGAQGQAAYIYSxZSEMYFvIMpcJGQPGgBAgCbANSLLNA9iWxGW2eX4kcZkk24BtQBIgCbDN/STZti2JB7ANSAIkcT/bPCdJgCTANvezzWWSANuSAEkYYyHLmCskARgA8UwC8/wJwDaAAQAhY0ASYBkjCZBkGwAk8YJJ4jLbtiXZBiQBkox5TpIA25IA25IQgG1AEmBbEpfZBjAISYCxEAYw5jJJAAawLYnLhGwDCNuAJATGGBDCIADbgCRj2wiMJNsAxlgSl0niCiMJwBjAGEmAbdsCSYBtABtJkm1JXCZAwrYNGACEECCJK8wVxgBCiMuEEMa2AUnczzYgCcA8k5EESOJ+tiUZcz9J3E8SgBACbNsWkgQgrrCNMZYE2EZgAIwQAkDYBmxLMhbiuRgEBgEIcZltLrMtZAxIEkJgnkkYYyRhjAGEbQAhiedhWwiwDUiybSzEswgAI8m2JGNJPItBCCGusC2J+0nifra5nyQAg0FgnskYS8IgMJK4n20hQJJty7KMMQACIWSbK4Qk2wAGIYTAABhJgG0hBMZYiPvZFgKMMYAkDICwDUgCJNmWBNiWZFuSbUASIIn72RYCMM9iWxIA2AZsSwIkAbYB20KAkDEAYCQhbPOcbEsCbHOZJMsYSbwgwhjzLJIAY0AWYBtAyOIBJAG2EQBCFiDEFQKDwFxhDAC2eR62eRbxQMaALABhLIkrjDEAIGRhjAHbgCSehyTAtiRAEmAbAGzzALYBSbxQtiUBkmwDtvmXSAJsSwIkGQOSuMw2YBuQxHOSBFgWwjxftgFJgCT+JZIA24BtQBIgybYknh9JvFC2AUlcZlsSANgGJPE8JPEC2AYASWFAAJK4TBKX2bbNC2BsjEAICQGI5yCQACTb2DyAsbEQICQEIADEsxhzmRBgbAwAQkIA4vkQgG0us81ltnnR2LYN2OYy27Z5EdjmBbNtG7BtG7BtmxeZbdv8a9gGbPNC2bbN8zDmMtsAgAEA25IASZIASTyQABAIDAYwBgCMbR7IXGEsxP2MuZ8kLpMESEL8e0gCANu2+U8jieckicsk2eYyY4yxEPezbRvxLMYA4vkzmOdiDCAAhBDPYgDbgG3bPIAkXgDb/OvZ5jJJgG0usw3Y5grxbAZAPJBtIS6TxP1sS+IySQAgxAMJwJjnYgDb3E+I52IAzP3MZbZ5TuaFMQCWeCHMczNXGHOFeb4k8Zwk8fwY868iwDwPSTyLeTbxXCQBQrxobAMARggQ4gqBeRbbmGcSAAKQBAjx/EjiOUniMkk8D0mAEJcJAYhnMg8kiQcymBdGABgEAkBgANsAYCzEczLmORkDgDEPJIR4IPEslgHEMwnAthD3ExIChADbkiQBkmwDtrnMtiRAEi+AZUBIiPvZBmzzAtiWhAAQD2TbNs9DEveTJIkHMoBtHkjYxjyLJJ6XuMIy9xPiWQziOQgAA2CelyRJgCTuJ4nLJAnxAEJCCMCYBxKYZzLGxlwmSRKX2TbmMkkAIAkAbHOZbR5AEiBJEs/Dtm0ukyQJkGSb58e2bUmAJB5AEiBkGwPY5gEkSQIkcYUBMBghAAEgEM9iGyGJF8A2YNs2z0OSJC6zDdi2LQmQJAmQZGwbsM3zsM1ltrlMEi8a27Z5ANu2uZ9tZaYkwDbPjyTuZ1uIy4y5nyTuZwCEQTyAbZ4fSQDm2QRgm/sJcYWwzf0kAbYRsgDbAAKQBNjm+ZHE87AtifvZBmwDknhOkgDb3E8SYJsXTBJgG7AtifvZlgRIss1lkrifbUASYJv7SQJsA5K4n20AkGQbsA1IAgBJtrmfJMA295NkmwcyCECSbZ5FAJgrhBDGmAeSZJvnZBsAJHE/20IAAmMMSAKEuEJcYVvImPtJAmzzQkmyzXOyzf0k8Zwk2eYySYBtQBL3sw3YBiQBkgDbXCbJNmAbkMQLJoSwDdiWJAmwDUjiWQxgLGQMYJ7FMiBkLARIsg0gMJJsc5ltSYAkwDaXSQJsA0LGgG0ukyQJsM39hABjhCwEYJvLJAG2AduAJJ6TJMA2VwiMkDEGAUjiAWxjEIAk2zwP25J4LgJjG5BkGxBCYBBXSMIGAWAEyBhjWxLPYgOAQSAJQIAwxthIILANWBIGAQghbAMYxBW2JQGSAMA2DyAJsM1lknggg7DNc7ItCQNIAhC2AduSAEmAbWMhhBC2hRDmmYRt24AQgBACLGMk8QC2uUIAsrifZcyz2BaSBNjmCgEIARhjwFiSJNs8P5JsS+JZDGAbQDwXSdzPNveTZJsrhBAGgwCMuZ8kwBjzHAQgBGAAYyEeSGCMbUviWQxCCDAGbEsyBoS4n20hBCCJ52QbkATY5oUwAALAAJIAY+4nyTbPjyTb3E+SbR7IAJIAY9uSuJ9tQBIgCbDN/STxLAawDSAASYBtQBJgm/tJAjCAbQABSLItBBhzP0kYYwSAkQTY5n5Cxlwmiedkm+ckBCAA29xPEuaZxBXGmGeRxBUGAdjmfpJsA5JsA7YBIUASgABs8/xIAmzz/EjiMts8gCTuZ5v7SeJ+tgHbgCSekySeh20hwDaAACQBtrmfJMA2gAEkAZYxAEIIsA3YRggBkrjMtiTANmAbkARIss0LYBuQBEjiOdkGbAOSeMEkAba5nyTANv9GBPeTxGWSJPH8CPGcbAO2bfNsBsA8B3GZQIB5DuL5ss0LZmwbwCAAxL+HJJ4fSfznk8R/Dts8P7Yl8ZwkcT/bPJB5Fts8kME8izGAeS62ES8KScY8i5DEczHGtgFj/vVsS+IFs81zss2LRpIk7meb+9mWxP1s85wk8UAG8SzGtnle4gpjrhCIK4SEACEus80VBrAticsk8fzY5n7GkgBJknhBxDOZZzLPYts2l0mSxPNjmysEBjAWQjyTeUFs8/xIwgBCXCGEuEwSIIkHMOYy20g8m3hBJJ5NXGbA3E8AGECWBCAwAGCbF8w2z49tXgjxfEkCEICxsW1eKCFsQOb5EgIQQlxhnott7ifEAwnMcxOAMeKBjI0tA8a8ALa5zDZgm+cini/bPIAxl9nmWczzYa6wbRvz3AzmgYS4wgAIzLMYA4BtxDOJKyQBQkKAEJcJcT/bPD+2eQAhnpdAPJMAjBHPIsk2DyCJ50eSbZ4fY2PuJwTY5gWTxPMSiCtscz/btnkA2wACQDyLbcDYGDAGJAEIAINBPBchY8y/lm3b3E8S5gpjLrONAWzzQAbAPBfbXGabyyQBCASAwGAADCCEeFFIAgDbvFC2eQDbtrlMkiRAEpfZBmzb5gFsA8bGCGMus22bB7BtG7CNQAAIzDMZ27YB25KEAEncTxKXSQIkcT/bPIBt29xPkiQus22by2zbBmzzAkjifrZt868nSRLPBxUEtgEkAbYBIQBhmyvEswhxP9uSuMKI52JzPwnbgBGAuMI2IIR4TpIAjDFCFg9knoPAIB5IEmCb+0niOdnmfpJ4TpIASbxoJAG2AduAJNuSeE6SAEmAbe5nmwewDQCSuJ8kLrNtG5AE2OYySVxmm8skSQJsA5IA2zyAbUCSbcA2IMlYCHGFMUYS97MNSLItCbAN2AYk2ZYECCGusM39JAGSANuAJNsYQAgQAjAAAsAAtgFJgCQAYyyJ52QbsA1IAgBJtgHbgCSeh21J3M+2JNuSJAG2AUmAJJ6TbcA2IAmwzWWSANuSAEmAbUkYY9uSMIAkAPMstiXZ5jJJGACDkIRBYJ5JALYB29xPEpdJAmzzPGxLsg3YlmRbkm1AEs/JWMi2kBBgGZAkxGW2AduAJECSbduSJAG2AduSMIBtScaSAIxlIQwCI4SwbRkDSJJkm+diEELGQrYBSTyAMQbAGEviCmHAwpaEASTZBiRJsm0AJGGMBDJgkCzAtjEgicuEEBhjAGEsZJv72QYkAYAkALBtW5JtIYRt2zxfxlgIIYnLbCMwQsbGPCfbgCyEbQFgwEZgJGEDkjCAkDGAkQQYA0I8D1mWhbifbUCSbUkAAmMshMAACAQGgZEE2JZkGwBsS+Iy25IA20LGCIwQwjYCkGTbtiTbkmwDQrYlYQBjSYBtIcuyEEII28aSAMC2JATmgWwjhGxjAEkABsAAkowB25K4Qjw3AWCMMYAkwBiDsC0JADDPYlsSgLGNEOIBjI2FuEIAtiXZlsRzkmQbkMRzsg0AthFCGABhm8skAcaAJNuSuJ+xEOKZDMI2ACCEANtcZpvLbAOSEJgrbCMQshC2EcaALAAhhLAthJAEYDDGAEIIY4wxFgIAYwyAEOIy24AkAAFgnkUSDyAEGAOAbR7AGACEMELcz5j7SQJsS+IKARgDGEmAMS+YJNsAYBuQxGW2AUk8D0m8AJJ4HrYlARgA8bwk8QLY5rmI58s295ME2OZ5SLItiQewLQmQBNiWBEgCbPP82JbECybJNv8S24AknpMk24Ak29xPEhACmyts2+YyY64Qz2SeyRgDtiVJAhCY+wkEAvNANoANmPsZEIC5wrZt7idkGYEx5goDCHE/27aFAAxg2zaXSeJ+tm3zQtm2zQPYts2LTBIgSRIgyTZg2zbPyTYPIIn72eYFs80LYFsSIEmSJB5AEi+YbUmAJEmAEFcYQEiSba4wQpIAScaAJC6TBEiyDWAwz0FI4jLbtoW4TBIghAGMjREIAPEsknggIYnnIQmQJInLbNvmfpJ4fiTZ5nnY5oWybZvLJEniASRxmSTbAGAbsM39jCXxAtjmfraFeF4CAwC2eR62+TexzQtirjDmhZIkyTbPjyReANsYQAhAAIhnEkKSeAEsIwBjwDZXmBdEEs/BYMC2JC6TxHOSBCCwjQEQgHgWIcwVxoBlAAEIAUL8axjzLxHi+RLPl22ek3kAA9jmCnOFMc/LPBdJAAIw5gEkAZL4FwlAEpdJss39JHE/SVwmZAxgAGMA8XzZ5gojCUAAkrifMQbxbOKZxLMIcT9JtgHMs4lnEs8kACFAEleI58NgAMwVxlwhnskAmOdiGzAGMM+XMc/JNmCb52Sbf4kkIe5nGwAk8ZwkcT/bGMSziQcSsm2b52SbB5DEsxiMMSAJEBJCSOIy24Ax5pnEsxnAmOdkG/NMxpjLhIS4wmAA27YB27Z5FmEbAwCSJHGZbcyziWcTAOZ5GQO2bQMYwNgYwLzobHOZJEn8u0mSBEhCIJ6LJEk8D0k8gCRJgCQMBsA8kCSEbcC2bZ4f2zwPSTyAJC6zbRuwzfOQxANIkgQACNu2Adu8UJIk8Zwk2eYy29xPEgDIaWOeiwEkAcY8J9vcTxIgCbAthAFbAoQB20gGDIAshJFkzGVCAAKwzf0kAbYBzDMJACMJMOZ+QoBtAPFAkmzzPCTZ5n6SANs8P5J4TrZ5ASQBgG3ANiCJF0ySbUASl9nmfpIA21wmyTb3kwTY5n6SANv8SyQBtrmfJC4zBoRs85yMMZIwkgBjXggDIACEkG2eiwEkAcYABgFgLAtJAjAI29xPEmCb+0myzXMSMuY52QYkAZJsc5kkwDbPw7YkLpPEZba5nyTANveTBNiWZJsXzLYkHkASYBuQBNjmuZgrhBCAZQADCAHGgG0AAWAASVwmyTYPIMk2YBuQxP1sA5IASYBtSbYB21wmCZCEQWCMuUwSl9nmeUgCbPOcbHOZkCQAYYx5JiEEALa5TAiBMbYNSOIBbEsChIwxloUADIB4JoGRZJv7SQJswDyAbUlCxgAGQABCxhgEIGQbQDyQJAxgGwEAtiUBkgDbkmwDtrlMkiTbgG0uk2QsBACyEMYAIITAXGEMGAsBQsYARpJtxLPYBiRhA5JAxoCxLAAhBCAA2wAgyTaXSeJZjDGXSQJsS7INALYBIUASYBkjBCAwxlwmiedlANuAsRACIcRltrnMNpdJwkgCEJhnMbYthBAyloQx5vmRZFuSbV4AScayeBbxvGxzmW0hADDmfpIASQAGY5n7CQHGPBcDSLIsC7CNsA1IkmQbsA1IAiQBtgHbgCRAkm0usw1IQggBtgHbQoCxJK4wCEASYJv7SeIyYyHANg9gWxL3sy0JsC0JkATYBmwDQoAkYwRGEmAbsA1IAiRhEIBtnpNthBD3sw1IAoSMMUJcIQBjwDYgCZDEZbZ5EUiyzRUCwDyLJMA2YBuQhMA8F9uAJEASYJvnZBuQBEiyzQNIAmwDkrifbR5Akm0uk2Sb+0myzQNIAgDbgCTb3E8SYBuwDUgCJBljhGwDCEASYBuwDUji+bENSAIk8YLZBmxzP0mAJF4A21wmCbAN2AYk8Zwk8Zxscz9JgG3ANiAJkGSMAQKQeDYBIBDGxjwPSVwmCZCEwQgBCCQwgAAkAQIJCSEAYZvnYjAA5grbtrlCIJ5NAAjEsxgDCIRtHsA2l9nmAWwDtm0Dtm3zAJL4N7Ft2zaXSZJkmxfMNpfZ5l9imxfKtm1eBLZt8wC2bdvGYGwLcT8hQEgSgAAQkgDMcxECEAgMgLEtBGCeTSAAY8CYy4QQmGcyAEYIwAAYDOKFM+YBJAGSJPEAtrnMNg8krpDE/WxzmSSekyTuZ9s2YJvLbPOcJHE/STyAbS6zbZsHEgACAVgGEEKYB5IESJKEwQCSuJ9tSTyAbUlcJonnYZvLbAO2eX5sIwDEi842L4R4NvNs5vkzzyKEeSBJPCchrhCIZzOAbUncz2DzLxPPYiyEeDbxwohnkcT9bAO2ES+IJEASIMQVxjLPxTwXIZ6LABDPRRKABJhnEwIQQrzozHOxDdjmMts8gLExBjAGMC8qAUhCAEIAYJvLbHOZJADxHMxzEELGgG2eh20AsA3Y5gWzzQOJ52Wb+wlxPyEeQBIPZP5lAjDGPJMAJEniASRxP9tcZluSJACwzWW2JUkChGzb5jJJCECI5ySJfzdJXCYJELJtG7DNAxgDGMC2MWBbkiQus23M/WwDkgDbkoQAIcA2zyKMeRaBeCBJQjyAbZ6Hbe5n2zZgm2cxGADzvCRJ4jlJAmwDkgBJ3M+2be4nifvZ5t/ENi+AbZ4f21xmm2cRGAwACAkZA7YxgDEC8UCSAEk8P5IASZJ4oWzb5gEkSQIA27Z5Hra5n23bACBJEiBJEvezbZvLbNvmAWzb5jJJkgBJtjGXoUxLXGEbkMRltvmXSDLGPJsAhDDGACBhcz8JANsAApAEYADbAOK5CPEsAjDGSAJs8/zYBiRxP9uSANvcTxL3sy0JkATY5gWQZJvnZBuQxPNjG5DEc5IE2OZ+knh+bHM/SYBtQBL3sw3YBiQBtgFJPCdJgG3+JZIAjDFGEgIAbAMIjJBtwBgQAiQBxoBtQBIgBNgGEIAkwDZgG5DEcxICbHOZJABjWciY52Sb50cSAEiyzb9EEoABEIBtwLYkQJJt7icJsC3JNmAbkMQD2JYESAJscz9JgG1JtnkuBiEJAyBs8yxCyDaAQUjCGEuyDdgGJPE8JNkGbEviASQBtrnMtiSeH9uAJNuSuEySbcC2JO4nyTZgG5DE/WxLkgTY5jLbQghJgG0AYyyJKwRGEmAbI2SZ+wnZBhCSANsIIduAEJfZlmQMYIwlAZIA2xI2IDAIzGW2JWEkAcaAbS6TBAhhLANCgG1jSUIIY64wGEnGvFC2AUmAJGPMMwkh24BtSZJsAxhAyLKQZSGeiwGMAUm2AduAJEDI2CBACNkWAowBhBBgG7AtieckyViWsRCAAGzb5jJJXGaMASQBGGMhQAhhDCAwQoAxzyIwgBCAMMY8i21Akm1AEiDJNgIjBGAQtgHEMxkAAWAQz2IshAGMAUmSbGMQz0WSbS6ThEE8i21jWYAk20KAZcC2EAKQBGAA28aSELK4Qti2LUmSbWMhQBJgGxDiMmNJgG3ANiCJ58e2JNuSuEwSYNu2JIQswDZgGZAFSDJGALIQAMYYAWAQQlxmG7AticskYRCAbQDzLMaSeABjzBWSeMEkAbZ5foQA2whjWYhnM4AkAPFs5tmEMea52AYkcT/bkgAMYMyzCCFAEmCb+0niOdnmfpJsA5JsA7YBSTw/tgFJgCSeH9uAbUAS/xLbgCRAEmCb+0myjQBkARjAMmAsZBuQxHOSZBuQZJvnRxLPyTbPQ5JtwDb3k8RzkgTY5jJJtgHbgCRAEmCbB5Bkm/tJAmzz/EjiOdkGbEsKwMbGNpfZ5oUTz2Ib8xwMBvNANoC5wggAAdgGbNtGAAjEv4J5Fts8J0mIKyQBkrhMEs+PJACwbZsXzDb3kyQJkMRzsg1IAiRJAiRxmW2eH9u2eR6SuJ9t2zyAbduAbUAS95MEAJJ4wSQBGEASz2IwxhjAGIMx5goDGPNcBIBAAAhJAOIKSYgrbNsGACFJvCACARgDCMCYK8yzSJLEC2aby2zzwpkHksQD2OYBbNsGbHOZJEk8J0m2ucw2D2BsG7DNC2KeyUjiWYxtAPMsxoBt7ieJ58e2JF4wSVwmCQAkcT9JXCYJkMT9bPP82OYBbPOcbNuWxGWSjLnMNlcISTyLAWxzP8tCPJB4FtsA5pmMMWAMGHM/SVxm2zZgIwSAwNxPEoAwNub5MeZ+xgDi2QwgxP2Mucw2L4Ak7mcb82zGNs+XACzzorHN/SQBQgCAAYRsA8Y8iwFs84LZxjwH86ISz2KZZzHPn3lu5rlIAiRJAgDbAObZBIBAPAchBBjzAEIAApAkiRdMyDYPYMxzMVfYBoyNuUwS4grbAAJAXCHEv0QSz2KMAWPANgBgnottHkASIIn72eY5GRsDxkJCCMA2gMEgnkkAGAwgxAPYlsRlkjCAbds8D0k8JyFAkiRAEveTxIvM2DYCEEI8B4EwNub5ErYxzyIJAISEACEEIIkrBCDEZZKEuMJgnk28EJJsA4BtAJAkCZDE85DEi0aSJF4wSdxPEoCwbRvAAEK2AQzmCsvGXCYESJLE87DNZbZ5IPEstm3zL7ENAJIk8aKxzWWSuJ9t2zwn27xgkiTx/Ni2zWWSALWWEiAw95PE/WxzP0k8iwFsA4jnIgTYRhgDsowlAZIA24BtQBKAwDyLEMI2l0niMmOMJB7ANmAbkAQIIWxzP0m2JQG2AduAJEASYFuSbZ6TbUASD2BbEiDJNiDJNs+PJJ6Tbe4nifvZ5n6SANs8gCQus80DSLIN2AYk8ZwkAba5nyTANs/FIJ5NyAJsAwiMJMAYsA1I4n62AUmAJMA295NkjLlCyBiwDUiyLYnnJAkwFrLN/SQBtgHMs4kHsi2J+9kGJPEsxlgSIAnzTAKwLcQVArAN2OZ+kgBJgG3ANiAJkATYBiQBtnlOtiVJAmwDtgFJgCQAY4wBJNlGXCHJNmAbkISRBBgDtrmfJO5nW5Ik2zyAbUCSbUmAJJ6TbR5Akm3uJwkAbNvmfpIAwDb3k8T9bAOSANuAJEASYJsHsC1JEpfZNsZI4jkJIWwjZHE/Y56TbSEAARhjhBBCCMA2gAEkAcY8gCTbkowxGGNJgG2EECBkGwEgMABGEoAAbHOZbZ6TJECIK4RtwLaQsRDimYyxJNuSuEwSYNtYCCHE/WxzPyGMsQEMgCSuELINgJG4zLYkIWMeyBgDgCSehyTANgbxLLYl8QC2JfEAtgFJAIABEEKAsW1JPJAQAmzbBiTZFkI8i21JxoAsQBICAGwDtgEhQBJgzBVCyDYCwDybAGQBtgEEIATYNpYESAJsA5IA24BtACFkG5CEkAXYNpYESDLGPIskLrPNCyAJsA1gnk08i21AEvezDUgCJHE/27Yl8fzYBiRJsg3YBiQBknh+bHOZJNvcT5JtrjAIYwADCAGSEJhnMeZ+kmzzAJK4n21JXGab52IAScaSANs8P5Jsc5kQlxnzAJIADIBBAMYIjCQAA9gGjAFJgBBgDEjCAIBljBDiCts8P5JsA5K4zDb3kwTY5n6SANs8D0k8D9vcTxJgm/tJAmwDGEASYMz9JAG2uZ8knsUAtgFjhBBgG5AESAIwCNvcT5JtHsA295MESAJsA7YlAbYlAZJsA5Jscz9JgG2ek21JXGYbkARIAmwDkrjMNveTZJvLJNnmfpKA4JnMv5YAEIjnJhAAAhASQgjxPCRJwgCYBzK2zQthMJhnkSSJy4xtAxgMYBuwbVsSIEkSgLBtG7AtieckSRLPSRKX2eYy25J4fmzb5n62+beyzWWSeADbXCZJEpdJ4n62bfMAtm3zvMRzMM8mAMQDSZLEA0iSxLMYIe5nG/MsxlwmSRIgicsk8VyMbR7IYB5ICPFcJPEAkiRxmSQAIYkXQIj72bbNCyUJkCTJNpfZ5nnY5vkSgCRJXGbbNuKZBIDAXGFbCJAkCUAAxlwmSRIgifvZ5gWTBEji+bHNc7LNCyBJEs9JEs+PJO4nifvZ5gUxmCuEJPH82AYwz0G8cEJcYYy5QjyTAIx5TrYB20IAIIn7CfEs4gohrhBXGPMAknh+jHlOkgAhnpMkQBL3s82/mrlM4lmM+dcQAiTxvMQLIokHMpIAQIgXRDyTeDbxgkgCJCGexbYkQEgI8WwGc4WQEJcZG3M/IdsABvMcDGBsjEBcYQwgrpDEA9jmMmMuEwIkIQAhY2MewDbmgWwb2+Yy29zPtm3Atm2uEAACAUjiMkmSeABJXCaJ5yTJNs+PJC4zRgCShAAhDOaFsM39JNnmCoMAhPjXsM0LJonnIYkrBMIYsI0BMM9mAMA2z8mYB5CEwTyTAIwBDGAbY2wbMBYSAoR4IPPcxL/INvezbZsXTBIvmG1eMEm2bXM/SQDmmQTC2BiwzQOJZ7FtmysEgAAkCXGZJJ6TsW0ewDYPYFuSJEmSeB6SAEASIMk2l9nmRSCJ+0niBbPNA9jmfrZ5blQwiOdhG5DE87DN/SRxP9tcYYwRQhgEgEEAxsaAJAAbZAwYYwQGSbwQwlgIQDxfthGyEADGGJAEYK6QBGCMeQBJXGabyyQBtgFJXGYbsA1IAgBJPIBtnpNt7icJsA1I4gWzDUgCbHOZJNuAbUASIIkHkGSbF8w2z0tgAEncTxKAMLbNA0gCANvcTxJgG8AIWQaMMQ8kBEgCjHkASRhj25J4ACFj25IQmGcSQsYABvGCSLJtm8skcZkxQgjAAMYAIAkD2OYySbZ5TrYl2QYkAba5n21JXCaJ+0kCbEuSxRXCNmBbkm0AARgDxhhJGIQQArAtyRhjWxKXSQIk2bYNSOIySQBgG5DE82Nbkm3ANiDJNpdJAiQBtgGEEMK2JNs8D0mAJMA2IAmQZFuSbUCSbUm2AYyxJIyxJEASl9kGbEuShLENIDAIwLKQEMI2YJvLjCVxP0m2JXE/WQACMAYwCEm2AduSANtCloWMuZ8kwDZCCLDN/YwBWYAQArAtyTYgCbAthAAQthFCGGMhwBjASAIQAGCby2wDGAQGYVsSANgWQgAIQJYxCACBAduAEAAGGUvCGEtC2AYwV0jiOUkCMM8mbEsChBCAbdtCgBACA2AAhJAxRkgSgHgWSQBGEoDBAMaAJAAQAmwjbAsBgCQAgzDGCAEYACFkbCwLkGQsCQBs8zwkYQBjIS6zLckyRhJgWxIAYBC2ASFjIe4nBNjmMmNJAGAbkAQAGATmCttC3E+SbduSAEmAbcQVkmwDkmxzP0mAbUmAbUm2eU62JQFCAICwLQnASLKMQWCMEULGmOdiWxIgybYk21xmGxDiMiFjSdzPNg8gCbAN2OZ+knhOtnlOkmzzvIwxV5h/mQEQgCTuZwAkAAxgGxAyBhDGAAYQAhCAEIB5FiGEbZ6TbUASIAmwzWW2eQBJgG1AEgDY5l9im+ckiechyTaXSQJsA7Z5HrYBSbZ5ANsAAoO4QhJgWxIvgCTANmAbkMT9JPECSOIFkMRltm1L4gEkcZltSYBtSbxQtgFJPCdJ3M82IoR4HrYBwDYPYNs2LyKDATAYBGAMYDD3EyAJEBICJPGCCWEwAOKBbHM/SUIIIQCBkMRlxlxmG0D8i2zb5jLbPIAkSbYB27Z5AWzb5t9EkiTbPIBtLpMkicts2+Yy27Z5ASQBkiTxPISEMM/FNua52OYBbHM/IS4z5jIhSTwvYwwYc4XBGHOZbUnczxhAGAsBCASAuMKY5yQJsA3Y5gFsc4V5NoF4Fts8J9s8gG3bgG1eMNs8gCTANpfZRjyTkcQLYAxIAhDPYhuwzQslSRLPQxIvgG3AtiQukwRIAiRxP9tcYYy5nyTb3E+SJACwbZvnRxL3sw0ACEm2ucwYc4VtwDb3MwYQAOKZDGDbNs9JEs9JEgBgMM9izPMjifsZA8Y8J9sA5oURiAeSxP0kcZmxbQADGAPGPIt4EdkGbPMs4rkIiSvMZZIAMAAChMBcZsyzCATi+TPPwUjiWcxzMQYQAMJYCBACEM/LmCvMsxjznIwxCEAS97PNczIGEIjnZQzY5vkREgIkAZjny5jLbPMAkrhMiAcyz2YkcT9JPA9JXCYJABAAIIkXzDYA2AZs8wLY5gFsS5LEZcbGPA/bGADzbALzQtgGbHM/SYgHksRlQsZcYa6wbZvLJAGSJHE/27wAtrnMNg8krjDmRSEQV9i2zXMwgAAkAcYAAhASQiCMjfnXsM3zY9s2l9nmBbDNCyXJNs/DNs9Jkm2ekxAgxHOyzWW2eQDbXGGeRZJt27xQtm1zmSRJgCRAEi+YbV4o21xmm+dhG7BtmxeBJEn8y6ggAWAhnsk295ME2OZFYxuQxP2MuUwS5jnZXCaEsBEgwDybJMA2IARIAmxjAEncz7YkQBLPYgAh7mcbkMRltgFJgG3bgCT+JZIA21xmWxLPSRJgG7ANSAIkAbYBSbxgkgDbAGCbB5AESAJs84JJ4gFs25Zkm8skcZltAIERwlgGJAGYf5Ek7mcMGANCPCdJxlxmjDEGEM9mAMQVkmwDtgFJgG3uZ1kIACTZ5jJJgG1Akm0uk2RbEveThLEMyEI8LyEAAdjmOdkGJHE/25Ik2bYtSRL3sw1Isi0JwDyLbS6zLYn72QYkAZKMbSMwz2ausC0JkMRlkngA25IA24Ak24BtQBJgG7AtyTYgCZBkWxIgCbAN2AYASYAk21xmm8skcT/bgCRAkm3bkgDbkmxLsi2JBzCWBCAA29xPEmAbQABCCNuAJACBwViWZFsSIMm2bUmSuJ9tAIN4NiOJKwRGkm0usy1kzGWSeC4G8Sy2AUlcZhuQJAmwLQmQhEFgLGMQgG3AWAghhLBtGyEE2JYE2AZsCwGSbHOZbQABIADbQgjbYBtJgCTbEjaSAAFgBEYCbEvCGNuWJGRsWxIgCTDGAJJkIQBjwLYkDCDJtiTAtiRjQBL3kwRYFrLN/YQwAALzTAbxLLaFLAsZCyFsG0uyLck2YFuSMfczBoQAxLPYBiTZBhBCGEDINiDJtiTbkgAMIGQbkGRbCGFsGxACEMYYACHEFQIwlgTYlmQbEAKEbCOEMAgAgwBsS+JZjCTANmBbEmCb52RbEmAbsM2/SACSAAxgG2EsyRgQss1ltoUAhG2eg20ASVwmZBsQAiQBCAAD2AaEeB6SuEwSAEgCbHOZbUk8J0m2AUlcIWwjnoMBJAEIwDYgCbDNswhsAZINGJBkW5JtYyFAEmCbB7ANIAAEgBEy5jLbXCYJsM1zkmQbsM1zEuI52QYkAZJ40ZkrhHgexoCQsSRjnpNtQBIgCbAN2AYkAZJ4TpIA24AkwDbPjyQus81zksS/iSQAsG1bEi+UJMA2IIn72eZ+kgDbgCRACAjEfyxJkgAE4tmMbcSz2LZ5JmMbiSsk/jVsc5kkSVxm2zYPZABJgCRJgJBtALBtmxeNbdtcJgmQBNjmOdm2DdgGJAGSeB62bfMCSAIkSeL5sc2LzDaX2QYASTwXAyAQz2QwV9gGJPEsBoN4INu8YJIAIZ5FAEJcIZ5JXGHbNveTxLMY2wDGtiQukwRI4jlJAiQBknguAoMBMJJ4LgLxvCQBkiTZ5n6SeAFscz9JPICxMQ9gm/tJksRltjEA5vmSxAsliQewLYnnJIkXzDZg27YQIEkS97PN87DNA0jiMttcZpv7SQIk8QCSJPEAkgBAEs+PbZ6XEAIk8cKJ50M8mwFscz9JgBAgiefLIK6QxP1s8y8SAOK5iRdIPJAknockAAMI2QaMAYRBEs9BkrifARsJABDYYJ6HMWDbmCsEgACMuZ8xVxhJ3M82L4CQbR7IAEI8kHhuAjAGjAHEs9jmedjmWQzihRACEIAx95MESAIABAAIAcaAMQ9kEM8mhADEFcaAbQABSBIChIwBDOb5ss3zY1sSz49twLZtwDb/IgHY5oEEIAQICXE/20IAApCEeBYbSZK4n20ewNgyDyBJCBACMM9FEg9gm/tJ4vmRxHOSJAQIAcYIxDMZzBW2ucw2V9hcYXM/21wmifvZtg3YBgDbXGEADEbINuYKSYAk7mcbsM39JAGSJAGIF0QSz49t29xPCDDGAJhnMbbNA9jGAMYIQEiIB5AEYAAM5gpJgG3Atm3+RQYQ4nnY5kVj2zYvAttcZpsHkMT9bNvm3w5lWjJgS4CwLYn72ZYEALa5nyTbPCdJgG3uJ8k295ME2Ob5kcT9bHM/SQAGMAYkAbYB24AkQBJgm/tJAmxzP0kAxjJGyDaAeC6SbAOSeADb3E8S97PN/STZBiTZBmwDkgBJtrlMEvezzf0kAbYBSdzPNg9gWxLPSZJtLpPEA9iWBNgGbHM/SdzPNkIWIInnZMz9JAG2ASEAYYyRZBuwzf0k8ZwkAbYl2QYwgCTAGBACjHnBbEsCbEsCJAG2eRaBeSaBuUISVxhjrhCyAGMAIcRltrlMyDLGNiAJkATYBgDbXCYJQGCukATY5n6SeBaDsA3YBiQBtgFJgCTANmAbkGRbEiAJsM39JAG2eU6SANuSbPM8bEviAWxLAiQBtgHAtiRAEpfZ5gFsA5IA25K4n21JgCTbtgFJXCaJy2xLsg3YBiQBQghjzLMIcYV4JmMbMJYkCTAGMEKIZ7HN/SQBtoWMAcA2IEkSYBuBATDGgCRJGNsA4gpJthFCGNsIhJBtnkVgrhBCGGOelxDiCts8gCRjzBVCiGcxxggBxgBCiMtsYxDPZBCSbHM/SbYBSYBtAcYYCZAEgDFgGyQAgwBsSwIk2TYWAiTZBjDGgCQAYyyJ+9mWBEiyjUEIIWwDtrlMkhDGGCGEMBYCbNsGAEkIjG1JCAyAeSZhLAswRghxhQEQgCTANmCbyyQBkmwDtgFJgCSuMAgAA9hGGGMk8SwGkMRzsoyRBNi2LQmQBGAAjDHiWSTxnGxzP0nczzbPyTbPQxIPYBuQxGW2JQGSAAxgGQMghHhOtgHbgBAgCWGbF8y2JK4wxpIASRgEgHkWY8A2IAmQxAPYBmxLAiTZlsRzss39JPGcbPM8hIx5fgQGQGAAbAOSeH5sA5L4t7INSAIk8bwMAFjGAEIIwDb3k8T9bHM/SYBtAANIAoy5nyTuZ5v7SeJ+tnkuBpAEIADbgG1JtgFJgCQusy0JAIxlcT9j7ieEsM2/RBJgm/tJss3zkATY5vmRBNjmfpL417ANAIjgfgIEIIkHkATYts39hGzzPGzb5gFsI57NYADMA9kGbNvmhTPPRZIQ97PNA9i2zQMZDIABbCMQz8s2ANjmhbJtmwewzWW2uZ8kLrPNv55t2zwnSTwnSbxgkngASZJ4vswLJJ7F2DYPYIwBbHOZkBAgiedh2zZgmysEwrYxDyCJ+0nifkKAJACQZBuwbVsSYBsQ4n5CPBfzHAzi2YxtnpMx5vmSBACSeABZPIuxzfNlEAACACTxAMYAYJvLJEkCJPFvZZvnR5JtHkASz48kXgBJXCaJ50cSz0kS97MN2AZsA4AkSba5wmAeyJjnJRDPwWAAY57FPJBt24CxEABI4n62AcyzCHE/YwDxLLYBzLMIAbZ5IcwLY54v20I8kHk2AxjzLOZfJp7FNvezDRgMSDwHASAknpMknh/b3E+IZxHPRRLPj22eH8tcIQAhnh8hnpNtrhCAEPcT4jIhhDFXGMwVkgBJPCdJXCaEATAA5tkEICSJBxKSeC4CA9jmfsaAba4wxjyQeDbzfNnmRSaJB7DNc5LEZbZtAwjMM5kHsm2byyQhACGek0ASD2RL4gGEuMIAmOcgANuSJAGSeADbPCfbgG3+PQxgDNi2zXOQARuwxGXimSQk8UziMkmSeBbz/JnnIgkBSAJsA7Zt80DmOQhJiOdlG7BtmwcymGcSgLExYJsXzmBs2+Z5CcQVtm0DgCRAkiQA8SySuJ8QABgb8wDGtrmfJF5ktnl+bNvmv4BRpiUA2zw/kgDb3E8SYJsXzDYgCZDEsxjANoB4FtuAJEASgLnCGAFgACHAMiAE2OZfIgnAIDCAbcAYkARIAjCIK2xzP0k8gG3uJ8k295ME2OYFsw1IAiTZ5n6SuMw2IIn72eZ+kgDbgG1AEiAJsM39JAG2uZ8k7mcbsA1I4n62EUIYSYAx95PE/WxzP0mAbcA2IAnAAAhAEs9iANvcTxL3sw0gAEk8gG0AgQGEjBFCtrnMtiSekySuMJYxAEIWAgPYBhCAJMA2DyDJNmAsxBXGWBIgCcAgbAO2AUmAJACDsM39JAEYYwQgBNjmediWxHOSBGAAsHkmSVxhEIBtwDYgCZAE2OZ+krifbS6zLQmQxP1sA5J4TrYRGCEEYJv7SbLNZZJ4Tra5nyTbPIBtLpMkyTaAEUIYA7YBSRghhDFCCDDGPIsk29xPEoAxloVAALYBzBWSELZtSwIA24AkAAMgnosk27a5TJIQ97OMsS2EEEIAGGOMJGMAg0BgAIwQwhghxGW2uUwIAWAAYyEExhiDkGTbtiQAgRECbBsLAZKMJWGMMcaSeCCDJEAYYy6TZBBgm/sJIa6wzWW2hYwlARgAASAwgG1JgCQeyAAYwBgwFgIQAALzLJK4zDaX2QYk8XwZQBICA9hGXCEJsA1gELKMJQHG3E+SbUmAbQADIJ4vIQABYABjnsUACEASYNu2JO5nG5AECAG2EQAgCWMZc4UkYyGek21AEmAbsA1I4n62AUmAJMA2YBuQBEgCbHM/SYBt7icJAGwDGIQk2wAGkAQYcz9JYBsAG5BkAIFlkLjMNoAAEEJcZpv7SeIBbHOZbUlcZhuQBEiyzWWSuJ9tSbYBBCALsI0wBoS4n21AEiAE2AYQgACwDSABkgAwzyQusw1gAEkAArANYJ5NAJIwCMA2YBuQBAgBxgCAQQCSMJYxAEIIsM3zIwQYA5IA2zw/kgDbXCYJ8yzGPD+SuJ9t7ifJNiAJwBjz/EgCbPP8SOIy24Ak29xPEvezzXOyDUjifrYBSTwnSbZ5TpJs8yITMuaZCPGvI4kHMi+IJF4QgXggISEMgMEgAGMAg/kXGECIyyRxmW2eRQDGxlwmJMQDiedim+dkmwewzb/ENs9JEpfZ5gFs80LZBmwDkngetnmRSQIkSeI5CQGI52CegxHifrZtAxghSTyLeD4EgEAAiAeShHhhzHMwtrmfJF4IIcQVBvEskhAPJIkHsM0VBpAEICTxQOK5GHOFAWzzXAwgxBUGI8TzkIR5Psxl5oWSxP1s8/zYts1lkrhMkm1eOIPBABjAGGOb/yCSJPFcBOKBJAEIwBjAPF+2hXgWAyCEeCDxQMY8P5J4FvEiEc8ixAMYA5hnMRbieQnAGMA8f+a5mRfGAMYA4lmMAdvcTxLPRYj7mfsZBNjmuRjANpcZCwGSeBZxhRAASOJ5GPM8hADEFUI8gG3ANveThHgW2zyQeG7iWWwbc4UQsgwY85xsA7b5VzH/ItvczzYAGAsJcZmxMeJZbAOYBxLiBbDN/SRJ4gEkSeIBhABJAAawbZv7SeIFsM3zYwCMLQPGBsA2BsAGBOYKAxbPJhAAAjDmOQnxALa5nyTuJwmwDdjm+ZHEsxghY2MEICTEA0gSAgQIAGEAAwYDYDAAtg0gEIjnIhBX2LbNFQJAIADEA0kCJPGiEJhnM5jnYpsrBCAkiRfOYJ7FmOdHkhCXCfH8SLLNZcaYF5FtALDNA9gGANs8D9u2Ads8gCRJgCQukyQJkMS/xDb/GsaAbQCoxgIQLxrbAEKIKwwCQAC2AUmAJNu2AUkAAsA8H0IIY5nLJGEA24AkAAHI4grxbAYhhHgWSVxmG5DEswghzBXGAAaQxP0k8fzYBiQBkrifbUASYBuwzXOSBEgCbAO2AUncTxIvgG1JtnketrmfJNu2JfH82JYkyTbPSRIgZGwMCAGIZ7ENAELGgG1ACJAEGAMIQBJgW5JtrhCyAARgWcg2zyIwtgFJgG3ANiAJMAZsA5IASYBtwLYkSYAxBiHLmOdkjMBI4jLbXCbJNs9JEpdJ4n62bXOZJB5ACMAAtgHLQpIA2wAGIQthDGCEjAHLQpIwljEIQBJgA8gGLGMsifuZZ7HN/SRxP0mAbe5nWxIgyTYgCbAticskcT/bXCaEwBgLWcbYliSJyyQBtm3znCTxAJIA21wmyTYA2JZkG/FMBhACJGGMMcaSuEwWwjaAQSCEuMwYwACSjDEIWQDCtrGQbUCSbSFjSTyLACTxnGwDQsaSuELYRmAASbYBIQxgG7AshJCFADAIAGOMMZaEQdhGyDK2jRBCABgAg8AAQrYBhG0uE0IgMJJsIzCAkGVZCACBeRbLtiVxmW1JPAeDJGEeyDb3EwIQthFXSLItiedkGyEkZMxzEkIAxgiMJMA2l9nmfkLGQraFjCVxmSQAgzCWhQCEANsYBEYSlxljEBhjSYAxYBuQZJvLjCXZBiQhMMayuJ9ljCQAA9gWMgYwgCTbgCTbgDEGIWQbQACSMMa2JRnzAtgGJPEAtiUBtrmfJMA2D2AbkGRbkm0hY4wkQJJtACGJK8yzGMsChGzuZwshDCBk2yBkWciSjDGX2QYkGUsChDDGGAAwFpIEAJhnsQ3YlgRIsi0JsC3Jtm0AkMQLZZsHkGSbyyQBGMuAQYDASGAQALYlAWBbEjYSYJtnEveTxBXmOYgrJAG2hYwxCEm2JfFABjAGhHheBgCEAGPANs9ijAHMcxNCAOb5MM9BYABj7mcMYJ5FEs/FPJMBEP8Cg3ghJPH82OZ+kmwDQjwPSTwn27xgtiUBtgFJ3M8295MEIC4jABvb/KsYBIBAvCC2eU62bXM/STwX8UzGNgBIksQDCcQVkgAEYGwM2OYBbHOZbS6zzBXi2cwLYtu2bdu8UJIk8QCSJPFCSZLEC2Cb+0mSxIvANgDY5jLbgG3bgCReKGPMM4lnM5hnMsY8F/FM4rlI4oEM4lmEACEAA2Cexdg2l0mSZJsHkMRltm3zALZtYwCMMQ9g2zaAAWxzhbjCNv96thFXCAGAsTFgjLnCNs/FPIsxV5hnEUI8JwMIBAgJmyvMs9jmfpJ4TrZ5TrZt2wYA2wBgmwcw5lmMsRCAAYS4n23bvMhs80LZBjAPZAwAxoAxAGAAy7a5Qjw3g3lu5tnEFUJcJgkQ4gUwBgDb3E/INgDYBjDPIglzhTEvgDEGMAaMuZ9tAPPCCACBMOY5CfEAtnkgASAeyJgrDGCb58MAiPsZ88KJZ7HN8zKIF8IyYAxgAMy/SAiQxPMjxP1s2+YKA2AA2xgAg5DEA0iSBAgBtiUBkiQBQgAGEEIgrrDN/SQhhABJkgBJXCYJEOJZBAKQZNuY50cSz8M2DyCJ+9kGJNm2DdjmMttcZpvLJAFCkrjMNs9LPBchYzBgI0kIEAIwQgACZACMuZ8kwBiwbYx5LkKIZxMAYJsHkGQbsA1IAiQBkiTxr2Sb52TMsxjMM0niMkk8kySusLF5NnM/Yx7ANs/FYCQhMADGNg9gbIxASJLE8yUQgLExl0mSBADGvBAG8y8TmGcyAAYDYB7INs/D2BhhzPMwtg1gJCEASQBg2zYvAknczxgAjI1tA7ZtA7ZtA4BtLrPNZZJ4TpJ4ASQBgCQuEwIAtdYkAZIwxoAknpNtwDYgCZBkDGCEELYRQtzPNveTBNjmfpIA29xPEmAbsA1IAiRxhTHmCgFgAEm2eX4kAbZ5foS4nzGAQUjifrZ5Tra5nyRAEvezzf0kcZltLpPEA9iWxPNjm/tJ4jLbgCTbgG1JXGYbkARIAmzznGwDkgBJgG1AEs/JNmAbkMQDCVmAbcCY5yQJQAjxnGxLAmxzP0k8J9uAbe4niRfANgIjifvZBiRxmW1J3M82IAmQBNgGbAOSAISQbcA2IAmQBNjmOUkCbAO2AUk8kJEEGAO2AUnczzYgBCCEjAHbQlwhAEk8gG0uk8T9bHM/IcBYyBiwDUgCJHE/29xPkm0ewDYgybYknpMkwDZgLMTzY1sSIAmwDdjmASRJAmwDkrjMNiDJNpfZlmRbEpdJss3zsC0JkATY5n6SANuAJMA2zyIwxrIkAcZcYYQQljEYIWMAcYUk24AkwDZgWwgAEIAk24BtSYAk2wAGcYVtSYAkwDYgBFjGYIwlARjAWEjI2FgSIMSzCMA2YFsIAIyFACGEMVeYZxIAQsg2l0nCALa5QggZ80ySuMwgAAyAANtcZhsQAhCAJIyxbUmAJIyxEAKwDQgBxsYYIWNAEgJjWwiQBCAA21wmBGCMASEEYIwQss0DSOIy2wBGEgZAAMa2hQBJxgAGIYQwlgXYRgBCCNuSbHOFASQhbHM/SQAGsI24QpJtLpME2OZ+kmxLss1ltiXZBiQBkmwDgCTbgG1JgCQusy0JsM1zsi2JB7ANSAIkcT/bgG1AEiDJNpdJAmwDGAAB2AYkAULGshDGAIDAALYBSdzPNiAJEAIwCAxgGUAAmOdiWxLPQxJgm/tJAmxzP0m2JQG2eU62AUmAJMA29xMyBoQQgG3uJwnA5n7m+ZME2AZsA5IAIQAMIAG2uZ8kwDb3k8QDGWMhxBW2AQTmWSRxP9sABgFgjAFJgBD3swxgEICQbZ6TbUlcZgwIARgAAUjCAAjbvIgMIAmwjJEE2OZ+kgDbPCdJgG1eMNuSANuSuJ9tSYBtSYAkwDb3kwTY5n6SANuAbUASIMkYgwhJgCTbxvxLJHGZbQzmmQzihTGYK2wDtm3zgghJAGDbNuY5GAwA2JbECyaJ50s8k7jCmOfHNiAJkCRJkiQus22bF8A2L4AkXmS2AcA2l0niX0OSJP41JPFczAMJCXGZJElcYWzznCTxQtm2DRjzPIQA2zyAJAxgm/tJksT9JNnmOdnmOQlJ4gpjW4jLJHGFwTwv27a5TJIknot4DkISDyBJkjGXGSOeRRLiRSeJKwTCGGPM/SQBgG3bgG1eKEmSAEm8AJIAzLPY5gEk8QCSeAFs8/zYlsRlkgBJ3M+2JJ6HJB5AEg9gmxfEGGMQgDHPIhDGGABhDCCexTYAYJ4P8Vwk8VzEs0iyDQC2eQAhAJDEv8SYy4wxzyLE/YS4nzHPIgDEFUK2eRYDGPMCSDw/AmxzhRHiOdnmuRhAiBdMCBDi+TFGvHCWAWMA8y8TAAIBIB7ImOdkG2NsQDyLbcA2zyIAYwDxLLYBY2PEFZJscz/btnkA24Bt7icJkMRlkmxzP9s8J9uAbcA2z48kAJAE2OZ+QpjnIon72eYyIcwVxsbcT5IkLjPGWOYBhADzXARIkgRI4goBIJ7NYJ6XJJ4f27YB2wBg2zb3kwRI4jlJAoyFhAAhnpMkYwBAGNsGzP1sbBBXiGeRxBUGsG2byyRJAiTxTALxXMTzss1zEkJcYZsrzL9ACAEISZK4zNgYQGAwAAZjm+chifsJCQFCiGczgLFtXgjzLLYRCGNjDGDbNs8iXhDbtnl+JAGAJC6TxANI4jJJXGbbtiReAEk8gCRJXGYbA2DkNAKwzf0k2eZ+kmzznGwjhDCSAARgm8sk2eZ+QoBtwBiQBEjiOdnm+RECbAOI5yIJsM39JAG2uUySbe4nyRiDEAJscz9J3M8295ME2Ob5kQTY5n6SANvcTxJgmxdKkm3uJwmwDdgGJAGSANuAbUASIInnxzb3k8T9bHM/SYBtnpNtQBIgxP2MAduAJP4lknggYwxIAmwDtiVxP2NZXCEA25K4n7EQYFsSIIn72eZ52JYEAJIwxoCQZQzm2QQgxP2MAduAJJ6TJAADgEGIZ7HN/SRhrjAGbAOSeBYDIIQsA7KMAUm2uZ8kwDYPIMk2YIy5QhLPj21JkgDbQojnyzZgG5AESAJsc5ltIQBhWxIgCbDNZZJs8wC2JXE/25IASbYB25IASbaFAIRtwLYkSVxmm8skcZlt7ieJy2wDtiUBkrifbYyxJACBsS1JEmAbsM39JAGSbAO2EUKSANtcZlsSl0myDUgCMIAxVwghLrPN85AE2OYBhIwxxkKIK4wxQkIAwpj7yQIQz8W2sSQh7mcsyTZgWwgQMgaMJckCjBGSjDEPIIlnsQ1gJBkDxkLGQlxhEABCFs8iAAyAMQaMJQnZBhDPYlsIAUiyLQnAABiEbWNJCIxtSdzPNiAJkGRbEpfZ5jJJGGPANs8iACEAAyAASQDGGGMAA5J4TpIA27Yl8ZwkAbYB20LGgCRJtgHbQsaAJEASYJsXzDb3k8RltiUBkgDbtiUBkrifbcA2IARIAhDGQoBtAIN4JgNIMuYy24Ak7mebK4QQIIn72QZsS4AASTyAba4QgCzANoB4FtuAJEASYJvnZFsS97MtieckifvZBiQBtgEMIMkYAWCBhYx5HrYBASAJsIQBc5kQsg0gZBtAPBdJgG3uJwQYIzACkLEkwDb3k2SbF8A2IAmQBNjmfpJsIwAMIAQYcz9JgG3ANiCJ+9kGJAGSAMA2Vwgh29xPCLANIAAh7mcMYBBX2AYkcT/bgCRAElcYBGAbsA1I4gWTBNjmfpK4n23uJwmwzf0k2eYySYBtnpMkwDZgG0BgJAGBsG2bB7DNA9jmeUgSAgBjY56TbR7A2BgAJEnihTPPn0A8FyFjY14w29xPEoABMLZt81yMbds8gG3bPA/bgG3b/DtI4jLbPIBt24BtnockQJIkXgS2Adu2eREIAUKSeAGEhAAhLrPNv5UkHkDIGEBcIQkjJAmQxWWSeB6SeB6SuJ9t7mcsiwcwNuY5SQKEhGwDkrifbds8k3hOQjwPY56HEA9gjME8i22el3gg2wAgJInLbPOC2bYNGGMwz8U2l0mSBADGtrmfJO4nifvZ5n62eU6SeH5s85xsA8aAbcCYK8yLwjZgm+dkmwcSkrhMiAewzQMJSTwnSZhnkcRlkrifbZ7FPDfzwhnb5jkZA4jnIsSziOdizPMlnosxYJvnZAwYAxjAmGcx/zLxLEKAEM8i/kWWeS7CGJAE2BbifrYBDOaZBIC4QojnIUmIy2xzP9vczzaXGQOIK4SEABAC8Uw2YIx54Wzb5vkRwmAAQBIgxP0kAZIASZIASbZt8/xI4gWTZBuwzf1sA7Z5TpIAY8DYGCPEsxiEEFcIwJj7CfH8SBLiMts8J0kgAPFAtnkW80DGPF/Ctm3ANg8giQeQBEjiMtuAbZ6Tbds8gDGAwYABY64wz2IsECAhAUjYYJ7NNlfYRiAASSDuZ5vnIhAABjAAQlwhnsU2L4gR4gWzDWAwAMbYGLCNATAYwBiQxANIksQD2OZZjG2elwAwgLGxsTFXCCEukyQJQFwhJAkAbNsGEM8kAEmIF862bcC2bcC2bZ6Hbds8gG3+JbZtA7YlSRKSBCBk2zb3kwTYBmwDkgBJPD+2uZ8kwDb3E+J+xgAGkAQgANuSAMBYCANgAASAAIyFuMw295OEMQYQgBD3sw3YBiQBkgDbPD+SuJ9t7icJsA3Y5gEkAYBtQBIgCbDNZZIA24Ak2/xLJHE/24BtSYBtSYAkwDYvmCTuZxuwDUgCJAG2uZ8kwDb3E+JZBGCbK4QsAGMMSDIGjDEPJAmQBNhGYAAhwBghhAEQV9gGbAOSACHuZ8zzIwmwDUji+bENGAvxAEKAbcAyRgiQBFgGMELGGAQASLINYIMkgS2BMc8kMA8kyTZgWwhhLIvLhCwDxoAQ5pkEIAnAIDCAMWAbkGRbEiDJtm1Akm1JgCTbtgEhBMZYCJAEGCOEANsABiGEwCBsA7YlCXGFQTyTsA3Y5gEkSeIBbNsGJGEAY0ASVxhjIe5nDEgCJAEYxBW2JdkGbANCiGcyxtxPEiCJ52Gb52GbyyQBkgDbkgDbPD+SANu2AUASIIQBLGOMJUkCbPMsAgNIsg3YBoSMAUmSbGOMAUmSbAMYhBDCNmAbEEIIIYyFAIwxgEEIGQMYYy4TQjyLsRAgZNtYEvezLQkASbZ5FklcZhsjCQFgEIAxBhAy5gqBASQBtgHbknhBjCTbCAAhyzYCQACY52IbkCTEZbaNJQGSbAO2AYQs7mdZljEgCZCwkQRgA4ABMMYIAHOFJJ7FNgAIIQAhYwwgCbAMyAJsI66QZFuIy4wl2QYA29xPEiDJNpfZBgBJPIBtQBL3sw1IAiTZlgTYBowBWYAkwDJGCACMEUK2AdsIISHbgDHPSRLPSZJtQALEFbYBEAKMAduAJEAIsA0gnsU2IIn72ZZkG5AESLINSOIBbAO2AUmAJMA29xMCbCOMASHuZxsQQgJjjAEBIAlAMmADthEyzyQMgBAgybYEyDbPjyTANoABJAEIDICwDdgGJHE/24AkAIO4QhJgm+dkG5DE/YwBIYwkwJj7SeIBbAMIWQjbgG1JtgFJgBBgDAgBtnkuApDE82WexZj7ScIYc5kk2wAGkAQY85xsA5K4zLYkQBJgG7ANSAIkAbYB24AkQBJgG7ANSOJ+tgFJgCQAYxyYF0SSJF4A27Z5ANu2eQBjY9vGXCEQDySJ+wkBCACBeCAhwLZtwDb3M+Z52LbNZZIkAZIA2zyLkMQLZhuwbRsAJEnieUjiAWxzP9u2ucw2YJsHsM2/RBIASOLfQZIk7mebF8QAiBfIIADLCMBYCBCSxPOwbRvAPDeDeSZjbJvLhISMAWNjwJgrzL+deS7GxlwmSwhAPJsBjIUQz2KbZxGXCYx5NvNcbAOAEADIMuYyY1kYQAhAAIhnMgACYwwgAEmSAEk8J0mAJNs8gCQEgJBkjACMAcwzCQABIAAEIIn7GRsDiGczknh+bNvGABhAkiQAAQjxnCQhEABCkiQeSDyQbQCQJIkrBICQxHOyzXOyzfMjictsc5ltwDYvmG2eH2MAIYR4NvN82UZcIQQI8ZyEeC7iuUhCIK4wBowxzyaEjLmfECDEZUJcJsSzCMQDSeIyCZsXwhjAABgAc4Uxz8O2MYCRxAOZ5yAAxBVCxjyLwTwvSdzP2JgHsM39JAkhnkUWIMT9bABs7mfuZ8SzSZJ4FttcJsRlQsaY52AwxgDiWWwDxoAxYJv7SQIkSeIy2zwnSVwmCbAtSRIPIInLJNkGbHM/ISHEs5lnMQYwtgHbkoR4ACH+Jba5zOaZDIjnZFuSJECIK4RlXgAhQBIgifvZBgDbAGDbNmBbkiQAsG2b5yUAISFACMA8k7jCIBDPZDDYxgYASUJIAiSQkBAgsA3YPIttHkgAYK4QgLEx5tkEIEkSDyBJEiCEeBbbtrmfJAADSOIBhIQABIBAPItt21xmmysM4lkkAZIkAZIQgJAQV4gHMuYFM+ZZxAthm+clnoskSdxPEiDJtm3AtiRJgCSekySehyRJPCdJPIAxUAEJmxeFbQCQxL+KkQQgAGNAFsI2L4gQwtgGhBBX2OZ+trmfEM+PJMA2YJv7SbJtLAmwbRuQxAPYlgRIAmxzP0mAJMC2JC6zDdgGJHE/24AknodtAJAEALa5TJJtQBIvgG1AEi8aSYBt7ieJ5yKeSRhjMJJ4LgIDIACEkG1AEpfZ5gFsA5K4nxBgzGVCGADzTAJjLAkwBmxzmRBgWxLPj23uJ4kHMJZlLIlnERghAGFsWQgDYBDIQrYB24AkbEkAAsAAtkESz2aMuUwIIQmwjRAylgUYA0I8iwAkAbYBDCALASAwQgDiCtuAJECSbUmAbUASIAmwDUgCLGOusC1JCHGFsRAA2AYA20IIxBW2MZJsA5IwCACwjRDifpJ4FmMMSAIkYRAAwjYCkARgjG1zPyHEFbYlCQGWAVkI2zyAbUASz2IsA7YlSbJtW5Ik21wmCbAN2JZkWxJgG2MsZCyJ+0kCAGMhDAIwBhAA5pkMAsAAGAQGEAIk2ZYE2BZC2JYE2JaEQQC2MZJsAxgEAgCEMMYYhCSuMLaFAIQQBhBCCAEABmEbELINSJIE2JZkG7ANSAJsS8IACMBYiOdiEBgEgAFsS8IIIZ7NAAjbAEIIgZHEZbYBhG3uJ0nImMsk2ZaEMeYyY56TbSEuE0LYBiQBxkLGINkAEjYSgG3AlgTIGEsCJNkGbPOchLhCYBDPZhDGkgDbGGOEkDGX2QYkcZkkQJJtwLYkwDYPIInLJHGZJO5nWxJgm/vZlmQbIYRBYBCyAIQxl9nmMklcJgQIIYxlWRbiMtuAJAkbwDYgicuMuUwW4pmMJAAhy5j7CfFcxLMJIcC2JF4o2zw/kjAA4tnMFZIADAJzPwMSmBdCEoBtCRAgAdgANoBkm/vZlgRIwjYGJAG2Ec9iDGAQAEIIAIwxgBACEAJscz9JtiVxhRACJHGFARBX2MYAkmzzLxLPZq6wzQNIMpaFsA0Y80DGmPsJCRkDCECIZzEABkAAQjwnIYRt7icJsC2J52Gb+0myDUgCAEmAJACwLYnnZBuQBEjiORAGm38t2/z7iecmnoMBEAgEApAESJLEcxLiBbBtG7DNA9jmMts8gLFtXihJkngASTwnSZJ4AEmSAElcJgmQJIkHsM3zsM0LIEkSz8O2bZ4f24Btnocknou5wjaAsQ3Yto14Ftu2JfEAkrhMEiAJYZvnIgCMMc/FCAlhnkWSJO4niX89IYQk24AkrhCWLQMAxrYk7mdjGzAAkgAkbJ6TJInnIsRlxlxmzP2EeADbPCfbtgHMczAYwBjAPBdJPA/bXGabBxDiWYQx5lmEuMw2D2DM8zDmWcSzSMIACADxQMYAYAzYNuZ5GczzZ56LMQYwts2/SAjxQkni+bENAAhJCEk8P0IAwtiYK8yzCCGelxAPJJ7FGEA8i20A8yy2eR5CmBeVAIx5FgPY5gojxP1sA7a5nyTuZ9uY52TMAwkAcYUQL5gxAkAgAASAuMI29xMChIR4fmzzAEIAIAkAJCGuMOZ+xtxPSIAkBCBhYwPYkngmI/GcJPGcjI25QjyTABBX2AYAY0lCPIAkXjBJPA9JPCdJvAhsA5hnEwACYQwAGCFAEvczto14FiHuJ0kSDyBJEiDJNgYQQjybuELIGPNs5oEkCXGZMcY2DyAJsM1ltm1zmSRJPC/zTOaZzLPYNkYAkiQBSFwhAUhIvADmmQzY2AbbgLlCACAkBAhh80zCxubZZIzBABgAY8wV5gpjzPNlG7Btm+dlnsk8F9u8ULZtYzAYzAshhAAQiAeybcwLYjDPJp5JIAAEAkAgAIRt29xPkm3bgG0us22byyRJ4jLbAGCbB7BtG5DEvw6ybZv7SQJsA7YBSYAkwDZgG5DEc5IE2Oa5GECSMQAIAQjANs/JNiAJkARgAGPuJwmwzf0k2eZ5SAJsA7YBSYAkwDYvmG0AgZEESAJscz9JgG0uk8RltrlMEpfZ5jJJtrmfJMA2YJvnJInnJAmwzf0k8fzY5n6SANs8J9uAJJ6HJACDAGwDGAABGGMkAZIA29xPEvezzf0kAbYBzLMJIWPuJwQYcz8hwBiDeC6SuJ9t7icJsM39JAG2eb6EkG3AWAgAbEsChMAYY8AStiRAEra5nyTAAIhnMoBtAGFbEs9JCLAtZBkAbAvxLOLZDCAJMMYYCwGSEIAxBpBkmxfMNiAJkATYBoyFhABjQBJgG7ANSLItCZAE2AaMMQghSdzPNveTBNgGAEm2AWOMJNuAJIQQz8UYA8aAEEYSYAxgnkk8B2NZCABsSwKEEMayjPmXSLJtm/tJAoS4QgAYhG0AEEI8kG3ANiDEFQJAYBCyAAxgWQjAAAiEbQCQBNjmCgNIMgZsA5JsCyEASQAGsG0sCZAE2AZsSwIk2eZ+kgAMYNtYkpAxz8k2l0nigQxCyBiBEULY5jJJXGaMEcIYG0sCJAEYzBWWAYSQba4QQoBtAAMgrhDCIIwBSRhjwDYgScg2gAAkGcsCbCMADIAAEELcz+YyAwLANoAEEuaZZIEtCbAN2AYAhBAgyTYgZAxIAmzblsQDSLLNZZJsA7YBSYAknpNtwLYkLpNkWxL3s839JAG2uZ8kwDb3EzLmCgFgjGVJsg0gns0ghBCYK4wRQoBtACQZxP1sA7YlAZK4zLYQArDNZbYBIUASgABsA7a5nyRAkm1JgG2eH0mAbe4nCcAAxgACwAC2AUmAJJ4f29xPEs+Pbe4nAGwjGbAl8SwGkASAAfNs4goBthHGmCskAZIA2wAGkAQgANs8P5K4nzEgi2cRgG3uJ4nLbHOZJMA2z8k2IMk2IMk2IAmQhEEAtgHbXCGEeBYDSAKMuZ8krjAAwhjzfAgh29xPEmCb+0kCbHM/SYBtwDYgCZAE2OZ+kgDb3E8SYJv7ScIYA4CksHlBJEnieUjiX0UgjHkuBvPcjJAkHkggHsg297MN2Ob5sW0bACRJ4gWzjQGEAEmSAEkA4oFsA7ZtS+Iy2zwn2zwn25K4n23bXCZJEg9gm38927a5nyTANs9DkiSeH9sAgHk2gbhCSJJtnot5LpIADGDbtiQAgXgmY8wDCUCI5ySEuEIS97NtmxdAEs9JEs+Xsc0LZgxCCJAEkni+bJ7FPJMwBhCAJJ6HsTHCshAASDLmCvFMAkAgnk08kzDmOdnmMmNAEs+PMQDYBowBAGHMZbZtA4AkSYAkLrNtm8uEJGEA27YB2zyQsc39bHOZkCRAElcY2wAGg8EAQoCQEIB4bkIS9xMCEELcT5JtrjCAMQ8gxItAEg8knkk8N/Ns5lmEeC4GwCCeSTybeF7GtnkWARhzP0mAJJ4v8WzmCtuSeH5s8yzihZAESOK5CIExgHlhDGDMA4kXyDwH8xzEcxPPYtuYyyQhnklY5jLbGGPbiGcTL4CxucxgQOIy8ZxswDb3kwRIEgIk2eY52bbNi8Y2LwJJ3M82LzJJPBdhzLMYDIBBAAjLmGcTVxhzmTGAAWzzTAaBucw2zyQus22MEeIy29xPEoBAvCCSJHGZbcC2MS8y28Y8kMFcIUkSV5gXThLPy8bmeUmAQADmmcxlxgYA8zwEgBGAECBJEiBk2zZgG4F4JvNM5gpJXCbEAxkMgLnCtm3ANg9gmxdAEpdJksQDSJIEALaNeQBJQpKEeCCBABDPh3kmg3n+jG3Atm3AtjHiRSRJEv9O4llsV2Ek7mcbkMRzsg1IAmxL4gWQBNjmOdlGCGEQzyIEGAMYQBJgGWObyyRxmW1Akm0ewDYgifvZBiQBkgDbkgDbtgFJgG3ANgLAIISMASFAkm1jSVwhbEsCbPOvJInLbPNC2ZYESOJfTxJgm/tJ4jnZBmxzP0lcITAAAgMghADbgCTAWEgIQADGQsYARsgYg7hCkm3AGJBkWxIgybZthBCAeRbLPIuRZJv72ZYkifvZ5jnZ5jJJtnkuBkAAGMtCgCTbkgAwYEmAhA0YbEvCBmxLsi2wQWAk2QYsC0kCbPOcbAOSAISQbUCSbUmAJACDAIxtS8IAQsZCPIsBjDEIjCQuk4QBbAOSbAsBtgHbgCTANs+PJMC2JC6zDWAQV0iyLQmwDdgGJAHGgG1Akm0hhCTANoCwjRDiASwDGIQQYBswloQBjIWMJQG2jRFCPIBtSRgA8SzGQghAiOdhG5BkWxKXCdlGCAEYhG3AthDi2cwzGUmAkDFgjAEkAbYBBCCJy2wjACFJAGDMcxG2uUyIy4QAAGGMkYQBJGEAhG1AEpdJAiQBtm1Lsi0J8yyWhWxzPyFjBCDJtm1JkgAM2LYQAsA8i21JPIsxBoQADOKZxDMZY0m2eU62JQG2EYAQ4gpjDOYKSQjbQoBljJBtLpNkGxCSZBsBAJJ4XsI2IAlJNhIGbIlnMgZA2JYE2JbEZZJ4FmMMIIwxDySJ+0niASTZ5gFs8zwkAbZ5HrYBSbYB25IkcT/bkrhMEmAM2BZCAMYAYAwIGWMkAZIwgCyEMQaDsM1zEw9gG7ABJGGezTwXSVwhng9xhSTANlcYScZcJsT9jAFJgG2uMAgAA9gGJAGSAAxgjEEAmAcQGDDI5lkkwDyTAAkwAAIAG8kGbACBASEwCCEuE4BtAAySAGxL4jIhAANY5nkZAPFcjDEIIUAIsM1lQlxmmxeNJJ6HJC6TBNjmOUkCbCOukAQYYwDAMiAEAMbG3E+I+9kWAoy5nxAghLAtCSMEGCMAjCTuZ1sS95PEZbYBSfy7EBYPJEkSLwLbvAgkCQGShADA2JjLjI0BACEJMMY8kG1JgCTANveTBEiSxANIksRltm0Dtm1zP9u2uUySEICwbcz9hDBX2OYyIUnczzbPwzZg2zb/Ekk8D0mSAElcZpvnZNs2z8M2YNs2L5QkQJIkQBLPYhAA5pmMsW0eyNjmAYS4wgDGXGYbsG0bMAYkAZK4zDZXGGMMgHk2g8EY2+Y52eYBJPEC2JbEFUISV4hnEeJ+kjCAhQEwz2Sby2yL52CezTYAxgC2bUviOUmSZMz9JHGZJJ7FABgAA9iWBABCPIsRAoQkYYQwzyYABAKQxHMSwjwXSTyAbcA2DyQeSBIPIEmSbUASl0kCJHE/21xhAAyAeQ4GwAC2uZ9txAPZ5lkMgMFgnk08kwEAIQDzL5LE/WzzQojnIAAhxHMRAiTxQgkJ8S+RBAhxP2OexQC2jblCSDLmOdnmORkDtnkAIds8L/N8mGcTQjwX8RwE4jkY2zyQuEIS9xOyDdjmuRjANuaZBOJZbPMsRgiQBEji+bHN8yNJAAiQAMRlBoMxCAQgieckiQcSAAIQ4gEkcT/bPA9J3M82z49t27wIJPGcJHE/2xjAWBLiCiGekyTuZ9sYAGxj/rUkSQIk8ZxsG/NA4rkYSxIChLifbQxgG4PBvEjMMxlJkrjMtm0eyGCeTQJzhc3zZQPm+RKAuJ8lSeIyY2Oeiw2AeQDbgLFtBEJIEpcZGxsb8wC2eSDzHMQVxlwmSRIgifvZ5nnYts0DSOJfYts295PEFebZDOYK2wAG82ziCiGekyQEAvFMBjA2BjAA4oEk8QC2+Y9igIplgREgbHM/SbxQtiUBkgDbkgDbQgjAmMuEAGPEMwkA8yySANuAbe4nCQAk2ZZk27YkQBIvgG1Akm3+JZIA24AxRhIgBNgGEIAk7mcbsM3zI4nnJAmwDUji+ZEEALa5TJJtLpMESAJs80LZlmRbEiAJsM39JHGZJNuAJEASYBsQ4rmY52YABIDAYBAYwDYgCZDFFeYKSYAkwDZgG5AEYADMs5kXwrYkHsA2YJvLJAG2JQG2JdnGGAshAGNAEiAJsC2EAGxzP9sCJGwkbAOSJBthBAIwAgQgCduSABtJtgEMQpJtIR5AEg9gG8BIsg3YloQR4jJjAGOMkWQZIwRIAoy5QghxP9uAbUASVxgEIAmwDUgCbAPGQraFhBC2AduSJPGcbAOSANuAJEAIsCxkG7ANSLItCUA8mwEwCNuAbUAIgQGEbEsCjAHbkmwLYRAYBAYwxkgCLGMwiCtsA5K4zLYkHsC2bUASzyKeRRKAAGzz/BhLsg1I4lmMsSQeQBJgGwNIwgghANu2JQGAEIB4JmNZCAPYFkIIIZ7JXCHJNgDYlsRlkmwjMMaAJMA29xOAMIAQYHOZANtCAEYIMBbCIAAExhghCWNsLCQJAyCELGMkARghwLYknsXYlmRbkm3AtiQMYFtIEoB4FkkARghhW4j7SQJsSwJsYxC2JQCMQRKAjWSwjYQkG4ENGJAEgCTbXCaEuMJYSBJgGwEIGUuyLQmwLYnLJNnmfpIA25J4ANuAJO5nG5AESAJsS7INSAIkAbZ5AEmAbcC2JGNACAAkAbYl2QYkCRlLsg0IAYhnMwghwDIGkGQbkATmeUiyjQBkARgh28aSAElcZizEZUJcJokHkIQBMADimcwDGQtJAjCAMQaQBADGAAZA3M8gHsjmeZhnEpdJPIstAAwAkhA2EjbPl3gO4gWxDQgBkgDbvGC2uZ8kLrONEMIgrpAE2OYy24AkQBL/CSTZBiRxmW1AEg9kjAFJAAIQ4gphLGSMuUISYFsSBsAAiCtsAwghXjBJgG3uJ4l/iW1JXCGAEMgIEP8qkiTxAJK4TAgAbGMAjLGxJF4o21wmCYGQxGW2bUsCJAG2Adu2eR62ucw2ANjmBbNtG7ANSOIyY9sA4nlJAiRJ4jLbtvnXs81zksRltvk3kQRI4oWybZsHsG2bZzEABgMgnkWI+9k2xjyTATCAJK4QzyQASTyQuEISgBACEIgXnW3bgG0ukySJ+0myDQC2uZ8xV4gHsg0YAwhJADaXmcskAIn7SVwmIZBAPJsk2wDYtiSei3lRGPP8GHOFuMJYCEAgXjhJ3M82BoN4Fts8gBCAucIYsM0D2LbN/WzzPGwDxsaAMQAISQIkYZ6DEeJ+QlwmxHOSxGVCPIAxz2KeSSCMjTEvhG1eAEn8+9jm+RHiRWReIPNM4rmJF5FtYy6TBCAAxAtgHkAYAIMBYwMCcYUxz2IAIQDzwhjANgAY2wZs8/zY5n7GPIv4lwnEs5krbPOcbECAAJvnYvMskkGSAJBkm+dHCLBtG8AACMC2JO5nmxeBJJ4f29xPEgBI4kVjmweQBNi2DdjmfpIkAQgEIAlAIADEMwkhAIF5LrZtnpdtACMEYK4Q4n62bQNCGAyAAYS4wmAADAJAIABJmOcixHMxVxgDiGcSCGNjAPOvYNvmgWyei22byyRJAiTxvAzm2cQDSQIk8SzmgSQBgDH3k8RlkrjMNoCxzf0k2bbNc7LNA9i2zQtgmxeZJNtcZpvLJAlxhQAQV0jiMtu2EQACEAKEJHGZbdtcIYQQz2KbK8x/Ets8G3IzAkAAtrmfJNtcJgmwDUjiOdmWZJv7SQJsA7YBSYAknpNt/jUkAbYB24AkQJJt7ifJNs+PJJ6TbcA2IMm2JO5nG5AESMIYCxnzLAIDSLLN/SQBtrmfJJ6TbcA2IAmQxP1sA7YBSYAk21wmifvZ5jJJtrmfJC6zDUiyzf0kAba5nyTANoBBCAEYAAEgns0AxlxhnkXIMgYBCAHGXCYEGCMAIcA295ME2AYQgBAvmG3ANiCJF4FtSVxmWxKAEMIgrrDNswgQtsA2gARIAmxzP/FMBiRxmQEj2YDBNpK4TMiYy4QAYwCBeRZJgG2elwGEjAHLQrwgQogHsM1lQsZcYRC2JQGSANuAbUmSANsAYFuI+xkjhGxLAoQQtrmfJNu2AUk8izEWAiQBCMwVxpJsA5grhIwBBEYIAWAQAAKwDdgGJAEYIcsYwBiQhMAAtiVxmSQewDYgifvZ5n6SANsAIMkYg0EIIWwDtgFJPIBtQJIk27aFJGEQAAKwLck29xPifpYxgG1JgJBtY0mSAAxgGzCWhBACjAEhnpNt7ieJ+9k2FpJk27YkSdgYc4UACWQbwDYgCRACbCOegwEkcYUx5n5CCABhm+dkG5AESLLNZbYlARhjhBDPSRIAGAvxnGwDtgFJQrYBBCAE2DZIAALbkgAkA7ZtSYAkAzb3kwTYBjCAJGOEEGAbsC0ESDLmOdmWBEgCbHM/STyAbS6zLYkHsA1IAiTZ5jJJgG1AEmAbsA1I4n62JfEAthFCgCRjIa4wCIwx95OEARCAbQTmhbMNSABYYCRACMAgjAHbgCRAEmAbwAghAMsARggDIADLGASAeRYhwBhAABgAAyAASbYBSVxmG8AGJAFIADZgLpPEM9kGsAFJABKADWADBgAJkGQbACQBtrmfJMA2lwkhMMaAEIAAbAMYQBKAeBbbgG1AEs9JEmCb+0nifrYB2zwnSdzPNiAJkMRzss39JAG2uZ8k24AkALAN2AYkAUI8iwBs8/xIwhhzmRACsM39JHGZMUYIAIy5nyTbACCJy2xzmSTANveTZBuQxAPYBmwDkgBJgG0gLF4Q27xoJPGCSZLEZbZtc4V5gYQQgLnCNs9DkiSeH9u8CGzb5jJJkgBJgCSeLyEJ8RzMFbb5t5IEALZtA7YB2zyAbV4o27xgtnkA27YB27Z5IQTiBRHiCvFMwjKAuMLYGHOFMQBgMABGiPsZ2+YKg3letnlOkiTZ5kUgiftJsg1gbCMA27Z5IIMNmMskHkAS9zOY+9m2ATCALXGZJHE/Y8wVxjyLeQ4G8/wJwBjx3MyzGAMY2zw/xjyLACQBgG3biAeyzf0kGfMAQoAk7meb5yFJEs9JCEA8f+a5GAMABjA2BhDPZGwDGEAS9zPGXCGEAIQAQJJtLrPNv4Zt7mdbiGcRDySJ5ySJ5yIAxLMZwDb/Ekk8i3g2AxjzojDPRRL/agYbgxCAJB7IIJ6buMKY5ySEeF5CXCZJiMtsA4BtSVwhJAkBknggc4UQ9zPmfrZ5IPEsxrYBMJeZ+wnb2NxPkm1swDYgiQcSkowBDGCb52TMC2bbNs/JNgDY5jLbkrhMEpdJ4n62eX5sc5ltSZJ4AEk8J0lCgCTbGNtcIWwb8ywC8yy2AcwLIgEAAgFICAEYA8YA4vkzGACDsMwDCAEIBIDAABgMgHkm8WwGA2AeyDaX2eaBJEm8ILYBGxvARkICkHgASwbAPJNt7mfbmBfEGGOei23bXCEAY2Mus20bACRJAiTxIrBtmxeNJEASL5Rt24BtLrMNALZt2wZsS5LEZcbGAMK2be4nictsA7Z5AGPbtgHMA9nGAMYA4oFs85xs84LZ5jLbPA9JknhuVAAB2AYkcT/bvFC2AUn82whjSYBt7ieJy4SMAds8J0mAbe5nG7ANSAIkAba5nyReMEnczzYvGtvcTxIgiX+JbS6TxGWSeE62AduSAMA295PE82MbkARI4n62AduAJEASYBuwDUjieRkEgHgW21whJBkLCdkGjAEhQBJgG7ANSLItCTDmWQxgG0AI2QZsA5K4n23uJwmwDUgCbHOZbUm8YJK4n21AyLYkAIN4Xra5nyRAEhhsEEiyDWAAA2BZyLbAXGaQMBK2AduAJNuSAGOek21JACAEIJ7FNmAZgwEwxkIISYBtQMhYEmAbACRxmW1AEiCJ+9kGjIW4TBJgm+ckyVjIWAiQBGAA24BlIUk8gBCAsM1lQgjAMiCEADCyEFcYA0KWAcwVkrhC2JZkjAGMJQGSbFvGAEIIjBCXSbINSLItCbDN/SQBtrmfJO5nG7ANAJJsA4gXRBKX2eZ+tgEhAIGxjcAIARgAAQgBAMJYCPHcjCTAtpBtLjOWBGAQgCyeRQC2EZIAY9tcJsk2gEEYA5IA20KWMYAxIGRbEmAsCYPAGAsZ8wBCCIwkwBgwFjIWAixjEEK2bSMkYRC2jXkekowxV9hGABghYwwCI8RlQgjbgCTbXGYshLCNMJYECAyADBJgAxiwAcA2ALYBAbYl2ZbEZbYBYyHbAGAbQAC2AUmSbAO2AduAJECSbUASIAmwzWW2JXGZJNuSANuSbEuyDUjiAWxLsg1I4nlIAmxzP0kAxpj72ZbEZcZCgCTAWAjAXGEbkMRzkgSAuZ8ABEbCNpZkLMkY8/yZZxOAEGAMIAAh7mdbkm1AiCsEBrAtyRghBAgBxjwnSVxmG0ASl0kANlfYXGHzLBLPIgHYSLZ5TrYBSZh/gQEk8SwGQDyTeF62AUmAJEAS97MNSOL5sc39JHGZbR5AEiDJNpdJAmxzmSQusw3Y5gWzzfMlnoskHsC2kDHPIp7JAEI8XwJAAEKAbV4o24Ak24BtQBIvgCSeG8F/NNuAbduAMfezzXMS4jJJPD+SAEm8YLa5nyRJvAC2bXOZbds8gG3bgG3ANmAbkMQD2LbNZZIkSZLEv55t7idJEveTBEjieUjiMtu2eQBJkngA27a5TJIkLrNtWxIgSRLPSyBeGAMI8aKRBEjieRgbcz9jBCBJEpfZts0LJQmQJAkAJHE/SdzPtm3ANlcISVxmbJsXREgCANs2ICEsjBCAQDyTucI8i7HBtkFcJgmQhHlu4tnE8yUJEJLEAxhzPyEAIYnnZFsSIEkSl9m2DdgGjDGALJ5FPC8hQIjLbNtGGAPGmOdlDNjmfpYBAIN5PgQACAFCmCskcZmxbcC2EABI4gGEJHGFQVxh2zb3k8R/FANgMIgHsg3Y5gGEeAGMhRDPYgwAxrwIjLmfJJ7FPB8CAWAwmGexzQsgZIwBACEADNjmWYSQZYQxz8kYQADGPCdjYwyAeW4CQDxftjHPwWAAY64wz8U295OEuMIYQABC3E8gQAjM/WwAxP1sLjOX2eZ+tnl+JHE/STyAbZ6TJNs8J9tcZlsS97MN2LbNZZIASZIASTwnSYBtnpMk27a5nyQAMMY8kG2uMADiCiGuEFdI4nlI4jlIiPvZliSJy2xjANuSJHGZsW3AmCvMczPPRRIgSRKX2bbNZZIAISFACEAAtnketrnC5gqDeSCDAQkwBmzb5jLbtgFAkiRAiMskCWGei21jwBgBIBDPQTwvIR5AEv+hJPGcJNnmBbDNA0iSBEjifpJ4oWzb5lnEMwlAEsKYy4wRzyYk8XyJZzIY2zwn27Z5ANtcZlsSIEkSL5htnhuVF8C2JC6zbRuQBNgGJEni+bENSAKEANuIB7INIDBXSOIy2wgEBpBkWxL3sw1I4n62JQGSuMy2bUASYJsXjW3ANveTBEjiXyKJfw3bgCRAkm1AEmDbNpdJss39JPFCSQJs25bEA0gCbPMAkrifbduSeCAB2OYySbxwAvO8JAGSANvcTwgwBiwDQoAQwjbPyTYgiftJAmwDkiTZ5gEkcT9Jtrmfbe4nCbAN2JYkifvZBiTZFuL5MwASMgYsYwDbkgAkbNuAJAAMSAIkYRAYywBCyDYgCbAtiQewzWWSbHM/SbYlcT9jLhOyjLENSAJsSwIA29zPGLCNEAIAIcuALIRtwLYkSdzPNvezDRgDkrifbQADWMYYA5IABEYIMAYwAEIIAwgBQrYBQBIgCWMbMJZkW5JtSdxPEmAbMJbEZZJscz9JXGYbsC2J58c2l0lCYCTZRlxhWxIGAWAASbYBSbYBjLEkLhNCALaFAIyxJGMhwLaxJGNJQjwP25IkAbYB25IwgJAxz2KuMBYCMEIAAgNgjLlMkm1JgCxjAGOMQABCxkLGMoCxJGNJ2IAxRhJXGARgLAnAIGxLMhYCMM8kbAMIwLYkLpNkG5DEAxkEgAGMAUk8i0FgAMTzErINSLIsxP1sg7hMkgEbsC0EINs8iyTANiCJy2wDGGPAGCEkybYkQJJtSYBtQJJtSba5zDb3sy2J+9mWBEiyDdjmfpIASVxmG7DN/SQBtgFJtgFJgCQusy0JkGRbEpcZC/EAtgFJAAZhG0AIYYQQtiXZBiQBkjCIBzLIAgAhAIEBbEuyLcQD2JZkDGAABAbxHAwCEAIAYwCQhbANIABJXGYbMJbEZZK4n21JYJ6TMZcJAcY8kIRtLInnRxJg25jLhBAYDAIw5goDCHGFeC6yELYBBCDJNuYKSbYl8QC2AUmAJO5nm8skcT9JgG0AkMS/iW1AEvezzWWSeCEMAgMgAEkYABBC2BYyRhhjrpAEYIx5FgNIAmwbS+J+tnmhbAOSuEySbUkAYBuQxPOwDUgCgOAFkMRltvnXkCRJEs9ihIQkAQjbXGGexTbPYjBX2JbE/WxzmW0ukySJB7DN/Wzb5gFs2+Z+kiTxALYBQJIkXjBJXGYbsG2by2zzgkkCJEmyDdjmMtuYB7INAJIk8S+xbZvLbHOZbcC2bR7Atm0AsA0AtgHbPD+2AcA2z0kSICTJGLBtWxLPRTybeDYjxPOwDUgCJEniRWCb50cSz49t2/xLJHGZJJ6LBDI25jIhSVxmmweQxGWSeF4CA2BsC/EAtnkASVxmWxIASAIkcT9jrjDGQoAkSba5zDZgmwcygCQhLjM2xmAAzDMJwLZtwDbPQ0iI+9nmCoEQQghJ4vkyz2IsxPOQxANIQjyLbcA2z48k7mdbEi+AJB5AEs/DthCXScJcIck24rlI4jlJ4gUQ4gGMeU62eX4kYR5IEoAAjHkBLGOegwAAIUASIIkXjRAACBkDtrnCSOJZxLPYNgYASYAQzyIQAOKBbBtzmSSel3gmAQgJAUJcIYQQzySem5EkiQcyGMA2l9nGBgBJXGHxPCRJAiTZ5jJjLhOSxRXihZAESJLE87BtGwAk8ZwkAZIkcZltwDb/EknczzbPyTZg2zYgxP1s85yEbPMsBjC2zWWSJHGZbQBzhbExYGyMQABCgG1JgCQEIARgJAFCQgjEMxkMYBsDYJ7FmPtZBhDGGAAD2OZ+tm1zP0m2Ads2D2QbA2CMEUhcISEBkrifbduAbQCwbRvAXGFsjHgOBiPEswjAmAcwNkYgAEm2eQDb/OvZ5jJJACAJAGzb5l/JNgDYBgDb3M+2bQCQJAQIcYUAJAEYAPMsxrYBjCRASIgHMOZZzBXGtrnMNleYK2zb5vmRJInLbNsGbPMC2AZsc5ltAKgAGABJ2OZ+knh+JAG2uZ8k25IA29xPCDDmfpIAYwDzbOK52AYkcZkk24BtQBIgCQBs8yKQBNjmfpIA25JsA7YlAba5TBJgG5DEC2BbEg9gLMTzsI2QZBtAGAMYSYAxYJv7SQIkAba5nyTbtiXxL7EtybYkXjDbgCT+JZIAY8yzSLINYIwlcZkkLrMNCPFAAgNIAiQBtiVxmSQuk8QD2OZ+knhOkrifbR5Akm1eMEkA5tkEgHkgSQDGNpdJwjyLJNtcJgnABiQBkjC2JQEY2wiMEIBBYIyFjAHLQlxmW5Jt7mcbkARIAjCAbcAyRhJgW5JtQMi2JMA2YFuSJJ7FAAjAMsa2kLEQlwkZSwJsAxiEkDHmudjmfpIA20IIwDJgm8skYQDbXCZkzBXCGCMJkATYlmSby2xzmSSek21AEiDJNveTZJvLbEuSxGW2AdtcJsk2gDEWQmAkAbYlAZJsSwKMhYQAYy6zLQQghACEMYABhDDGXGYbELIMYGwLIWxLsg0IGQOAEA8gyTaAsA1IEgJsIxBCgDEGIQnACFnGPIskDGCby4wlAZIAsAALQMZCABiwBUY8m7GQJNsAgJFkmysEBpAEIAAMArANYABJCNuSAEk8L4PAALaNEUIIYwxCCCMJsA1gEEKIK4wxIAwgySCwDUhCkkHYBhBCPIAk25IwAGBbkjGAAYQwCABhWxLPj23ANiBJkm3uJ4nnJAmwLYn72ZZkGwBsS+IBbAOSuEySbUCSbUCSbe4nifvZlsRltgFJgBCAMZaEeSaDsA1IEjIGMMaSMICQsWUhQAhAYABJXCZkwLaQhbjCmAcwloUAJAEYhG0hAIOwDUgyBiRhMAjMFbYBSYAknh9JgG3AtoQNIGRbAgkMAEi2JfEAtnlOtoVsA5K4QmCMhRAY2wgAIQQI2eYySTyAJO5nm/tJAiRxP0mAbe4nifvZ5n6SAEmAbf41JAG2AduAJJ6TbUASIAnAIJ4vSRjAGANI4goDCHGF+JeZBxICjDGWJQG2JQGSeH5s85wk2eY52eYySYAkILifxHOxbZsXjSSelwAQCGPAtm2uEAgE4jkIQJIkALBtG7ANSOJFYBuQxAtlG7AN2OZ+kviX2OYySZJ4ICHE87ANYGxLAoSEhADMi8g2YJvLbHOZbUASz0mSJEAS/xJJgCQAsG2bF8Q8kG0uExKyDdi2zWVCQjwvAdjmMtuAbUn860nifrZt85xsS+IFsw0gEAgEBgNgMC+IbUnczzaXSQIASTyLMQZs8ywGMEYgAARgzHOyDdjmBbBtG2EMIIQkcT/bQgAghHkutm1zhXhBLEtCAJJ4QQTiBbFtGzAGjDGYZ7EtBEiSxAMYA0KIZzK2Ads8J0k8J9u8ALZtcz9J3M82z8k2VwhJiGcyz2SelzFgzP2EuMIYAxgA8yyWeV4GAwhxP9v8S2xzP0ncz5gXwgDGPCfbgDGXGUvimQyAMGAAhABzhSSEhHg281wkbPMs5rkZAIN5JoH4VxDPxTbmOZhnE0I8kLnMYAQgACRxmQABIIyFeABJtgHbXGZbEiAkxGXGCAyA+a8hCbAtiX+JJC6TJAmQBEiSBEgCbEvifpIkAZKMjXleApCEAAAhAAEYAwhAkhAgxBXmgSSMwQgwAjA2BmwDkowByzyQMAaMAUmAJMRzEICxMZdJ4jnZtg3Y5jLbtgHbkkCSJBkDNrZBgG3bgDEPIEkSIAkwFgIkSQIQCAAhhAAsAxgAY5vnZBuwzWW2bQO2JUmSJAkAbNvmRSCJ52Sbfx9JkngekiTxPIyNAdvGgDGAeCBjrhAIAPF8GfNA5vkTCCEuk8R/BEmSJHGFASoAAjCIF0QSYFsS/yoCA2CMhQBJgDH3kwTYBgBJXGYbsA1IAiQBkrifbZ4fSVwmyTZgWxIPYBuwDUgCJPH8SOI52QYk8fzIAowBSYBtwDYgicskcZltSTwnSYBtnh/bACCJ+0niMkm8ALa5nySekyRAEmAbsA1IAiRxP9uAbUCSbQAhhEEAGNuSuJ8xgAEQAEYSBpAE2OYBJNnmRWObB5BkmxdAkm3uJwmwDUgCbCMwkrjMNiCJZzEABkAAtiVhELYBSYAkwLYkDGAbQAC2hTAAAiMJMAYsY64QAmwDtgFJgCTMFZYxV9gGEIAkwDZgW8hYEuKZjDFCkm1J3M8YIQRgACFjSYCxkGUhyxgMIIRBCFnGGAMYQBIgybZtQBJgGfMcDIAQQtgGjCXZlgRYFgIA24BtLpMkybYkQBL3sw3YliSJyyQBgG2eH9uAbZ6TJEASgDG2jRASQlwhCWPMZcZcZlsSIGQMYBAA5jKDLDDGgCTAtjGAEAKEjAFjIYwxgAAQz2aMhRDPJDDGgLEQBvFMArAtZBsALAsZywIsA8bcTxKXGbBBPJORsASI+xlkm8sEgG1JPJsB25JsA5KMJdkGMM8khBCAbUAS97ONEMIYAwhAFgKDwBjznIwRGEkYBGCMeRYbMCAESALbSAC2JVnGSOIySTwXYxkjBEiyDRgDQrZ5HrYlcT/bPCfbkrifbUm2eU6SANuAbQCwDUjiMkmAbe5nG5AkybYkwLYkSbYlcZkkDCAJkGRbEgBI4n7GPIsAhADbQhhjSULGloWMhYwlcZkxBpAFIABJYB5IABjANpfZ5n7GkrifbS4zliRkWwgDSAKMEQAgCbAtiedhm+dkm+dijCXxnGxzP0kA4oGEuEwIQGCMERiEEFcI2xhJPCfbCCEhY4wkLpPEA9gGJPEvkQTYlmRbkm1Akm1J3M82IIkXwDYASOI52QYk8QDGtgFJAAawLQmwLclYEoBBAIAkjDHimcTzEuK5GEncz1gIAWAk8QC2JXGZbe4nifvZBiRJ4gEkAZK4n20guJ+xbe4niechiX8N27YB25IkIRAA4grbgG3b3M82z0kSIInLbNu2bRuwzQtg2zb3s81zsi1JEiCJyyTxn0YSANi2bWyb+0mSBEjiMkkAYNs2l0mSBEjihbLN/WzbBmzzIpMkiQewbRuwDUgCJAFCgCQhQJIkni/xLLZ5AWzb5oWyDdi2zXOyLYnnZJvLbPMAtm3zXAxgWxIgSRJXGMwzCcSz2AYwkngA24BtrhCIZzFGIADEFUKAkCQeQBIACGGeixDPj23bkngAY55FPIskHsg8iyQuEzLmMmPAWAhAIIyNMYAQz8k2z8k2IMRzEYjnIgmQxBXGNgBI4nlI4jnZ5gFs2+bfShIPJF4g83xJ4rmI5yQeQBLPSYjnJAQgAMTzJcS/yDwXY+4nBAgBCCFeEBsAA2AAm+dhzGXiWcTzkARI4n62eb4MgHg+DIB4JvNs4nlJMuZZDIABMM/JPIBtG8AWANjGPIsknpcQQhhzP9uSJPGcJHE/21xmm3+JJO4niX8N27a5nyQeQBL3s22bB7BtzAtg2zaXSeI52bbNAxgbA5grbAO2AdsYAINAXGHbiAcyzyJJEvezbQzYNuZ52LYNGCMQxsY8i8BgHsi2bZ6XACQJcT/bQkI8D0mAMWBsjAFs2+YKARgbY57JPJtAAJIQV9i2DdiWJMRlQpIASdxPEpdJksQLZds2DyAJkMS/nm3+NWxjAMC2bS6TxGWSuMzYmGcRto0BzIvINgIBIABACIHBALZ5AEn8O0jiuVF5fiTx/NgGAEk8J9tcJgmwDdgGJHE/ScbGQtzPtiReMEmAJMA2z8k2z0kS97MN2OZ+krifbe4nifvZ5n62eQBJPIBt7ieJ5ySJ5ySJ52KeRZJthCQewDZgG5DE/STxnCQBtrmfJJ6TbR7ANgBI4n62AUmAbZ4f24Ak7icJkATYlsT9jG1L4grxLLYBSYAknpNtnpNtQBIPYFsS97MNSAJsS7ItyTYgCbDN8yMJsA3YBiQBGElcZgxgAGMhSYBtAAMgANsIjCTbgG0hBCAJsM39JAEYwDYgScgy5oFsA5IwkgDbkgDbsiRhnsUyxrYk21xmLAmwDGAASQACAGzbRghhEMYYIWNAyFjItiQAI8k2YCyEAGwDkmxzmSTANiBkLAkAJNkGJNnmMmNJtgFJgCTANmBbkm1JtgFJtiUBkgDbgG1JtrnMtiTbkngA25K4n21AEveTZFuSbUmAJMC2kDGAeCZhDGAAWZKMuZ8QwjYCEAKMbQNCBkDC5rlIsi0JkMRlQhgEYNtYCJBkG0BcIYQwBoxlAcYIIQyAsC3JNoAxBoQk8SwCQGAk2eYy25IwAAYB5gqDDDIWAjBCxiCwJABshA0IhBBX2JZkWwhAGHOFkGUsybYkwDYASJLEZbZ5FoMAZAHGCEAIYxvxbAZAYACMMSAkhDC2zWVCxgCI5yQJsC1kDEjiWYwkwDYgCZBk27YkQJJtLpPEc7LN82Ob+0nifpK4zDbPj21JPIBtwDYgCbAtSZJtwLYkLrMNSAIkcT9JgG3bkgBJgG1JPIt5JgMgANtCgCTANgBIss0V5vmwhQAMYBkjCbAN2BYCJNk2loRBGANCtgFjnkU8F0lcZiwEGPOCCVmWhbCNMEZgACEADJIE2JZk27IsAIF5buI5GAABIDCSELaFbCOEMMY8kLhCkm1AEs9DEmCb+0kCbPOcJHE/25J4HpK4n21AEvezzfNlACFeNJK4n20AA0jifsY8gG2eH0m2Ads8iwAsA0I8D9s8J0k8J9tcJokHsC2Jy2xzmSRACAjxHGwDtm3zgtnmfpJs8wC2AduAJEASl9nGYGwjAEmS+HeQJIkXSpIkSdxPEiCJfyXbPD+SeCCBuMK2bS6zzQtmG8DY5vmRxGWSuEySJO5n2zYvMtu8aGwDtm0DgCRJPBdhbBuwzbMYwDYPJABJkngBJHE/27a5zLZtLpMkCZDE/SRxP9uAbS6zzXOSxHOSxP1sA8a2AdsYzBWyAGPbXCEQgDGAAWzzLOKZDEYSL4R5IEk8F3GFEAYQAjCIZxHieUjiCoN5YQyAADCAsRCXCQGSbHOZbcAYQDwXSQhJAEISlwnZBgDbPD+2JXE/27Z5Tra5nyTuZ5v72eZ+kgBJPIBtXjBJACAJkGSby2wDxjxf5lmMeU62AcyzmQcw2LbE85LEczEA5rnY5gpzhWXuJ8T9hACEkDFgm/sJAYgXQhLPYsDcT9xPCAwgA4AAhMBIXCGweSYBgG3bXCYEIAAhrjBXGPOC2eYBJAGAsW3EsxjzXMRzEeL5EQKEuEwS9xPCAEL8m0iyzQtgmxeZbe5nm8ts8y8SACCJ+9nmMtuS+FeSZNs2YBsAbBtzhUBgMEIA4pmEkBDPYhCIZ7HNA4nnSwhAAJKEMEK2MYBtwJjnJZ7FNpcJAYhnE1cICXGZbYyxMQIQEkIAxsYgnpMkIcTzEuJ5CQSAwACYZ5EkxGVCQoAQlxkDtvk3sc1/NNu8CGzbBmwDgCSuEFfYts0VAvFMBvNAtnkBjBGAJEmAJB7IYB7INs/DNg9gmxdAEpfZ5vmgGgtA3M+2JF4w24AkQBLPyTZgG5AESOJ+trmfEAJjWQiwzb9EEmCb+0nifrYl8QCSuJ9tSdxPkm1J3M82IInnYRuQxPMjCZCEsQ0gMIAkLrONEDIWAiRxP9uAbUASANhGCAGAJEASYJvLbAOSuMw2YBuQxH8cSRgEBgFIAmxzP0mAbZ7FIGwDGEASgHgm8UC2eQEk2eb5kQTY5n6SuJ9tQBL3k2RbEiCJ58c2IMk2YFsSYBvAIIyFEADmWSQBtgHbgCTuJwkwFuJ+kgDbthFCPIsAMIAknpMkwLaQMYB5NoOQhbANSLItybYkQJJt24AkwDKAkWSbZxGAbcBYlrGQsZAxIIQxBixjJAHGQkKAZYwQIAmwLWQMSAJscz/bgG1AEmBbkm3ANgBIksRltiUBkrifbcA2IMk2IEkSYFsSl9kGJHGZbUmAJMA2DyAJsC0JsA0AtiVxmSQMAvNMxhiDAIQAYwwCwCBsA7YlGQO2JdkGJNmWBEjifrYlAcYYSba5zDYPIGQsCUAIARiEbUlcJoTAAMaAkJCxJMCyLMAYQMiSBNiWhEFgQGAAY5CEeCbbRsIghLAtBBhJAGAMYCzJNmBbCBBCAAjbkmxLsg0I8TxsS+Iy25IASbYlGQMIQBLmCmMhIQRgGwEAQgjbkrjCSDIGEEK2hQDbkgCMbQQGEBICjDEAQhJgG4MAJGEASYBtXjBJtiXZlsT9bPM8JPGcbEvifpJsS+IySYBtIWNJgCTbAGAbkMRzEQ9kG5DEZZIA21xmW4grDIB4LkLcz1iIK8yzCPEsRogrBIBBCHGZMQ8gxBUCgwEAY0mAEPezzWVCCNtcZlsSz0UAQlxmLATYBhCAJO5nG/EstrlMEpcZYyTxnIwlcT/bXCaJy4wBIcwDCSEwz80YA4Ak25IASdzPtiRJgG0eQBIvMts8J0mAbS6TBEjieQkMgHgg2zwvAyAeSAhjmfsJAcaAbe4niQcykhCAbcA2l0kCjIWEAARgm+dkG5DE/WwDkrjMNg8giReIAGxsc5kkSTwP27YlAZIkcZlt2zwPSZK4zLZtHsgAGIxljG3bPICxbR7Atm1eKEk8P7Zt80LZ5jLbPIAkQJIknockSYAkwJgrzBW2uZ8QQggAbNvmCgFIkoQBbAMY24gXzjYPIEkSl9m2zWWSAEmSeNEJAJAEIGxzPyGexWCEuJ+xbQBAIP7NbPM8bAO2bQO2eQBJgCRJPCdJtgHbtnlOtrmfJAAw5lnEFcY8D9u2uZ8kAIEAbAOAMc+XQTyT+BcYjCRAiOdlANvcTxIgiQeQJMk2gMEAtiXxALa5wlxhjDHmMmNACCEkifsZc5kQgAEwtgFjAHGFEM9JSAhzhW0AkCSJ5ySJy2zb5jlJAiRxmW3bgG2eh21eKNs8P5K4n20A82wCQDyQEOJZbPMvkcTzkMQDGPP8SEJI4vkSz2IMIAAhnkU8X7IAzLMJAPEvMgDGAAIBgG2b52DMc7LMc5IECPGC2eY52QZsY56beQ7mmQyAeCbxXIR4FmEMALYBY56XwDyLbdvcTwjzryIJkMRlkmzzAJJ4ASTxAkjiASTxPCTxnGxLEgKEeBFIQgBCiAcyBgBjwNiY52SMQACIZxLPJDCYB7KNeSYhxBUCsGwMAJJ4HpK4wmAeyLZtHsgACMAywtgYgQAQL4htnpNtDGCbF41tnot4DgJAIB5IkiQewLZtHkAS/xLbtvn3sc0LIRDPRZIkALDNcxHPZgAM5nlJkiRJEg9kAAxgzPMjxItAEiBJEiCJ+9nmX4FqWxIgictsc5kkwDYPIInLbAO2AUk8J0mAbV4QgwAwz595ISRxP9u8UJJ4AEm2bQOSANuAbUASIInLbNuWBNgGJNnmOUkCbPOCSQIkAbZ5ICOEwDyTMQYQgBBgWYgHsA1I4jlJAmzzALYBSba5nyTuZ5v7SeIK80wCwACSAIxlBIARsg0ghLjMNoAAJHE/29xPCEA8X7YBSYAk7meby2xLss1lkgBJXCaJ52Gby2xLAmxzP9vcT8gYADDGkngW8yySAGPANiBkLAmQBNjmMtuSAMtCGIRtwLYk20KSAARGFmAMIAAhwDZCFsI2gEEgMBjAGEAAkngekmxzmW1JtiUBtiVxmW3ANiDEFeJZjCVhLAshANuAbUmWhTBXyDIGjAGEkBBgLISwjQGEAGOMZYwk7icJkMQD2LYtiQeQBEiyLck2AEgCbEuSxP0kAba5TBIA2AYkAbYl2QZsSwIk2QYwzyIJQNhGAJIwthGAJABjG0AYS+J+QrYBSUIIwLZtQBJgLGQbMMYAQpK4zLYkAJAE2LbNZZKMhQDbtiUZC1nGXGEshAAAy7KEANsAQpYknsVYxiAwCACDAAOSbZAAYy6zLQnAFrKMsYx5FmNAyFiSbUkABjAW4lmMJIwxl9kGJNmWZJv7SRJCPJPASMIYS8IACACDwEgCbHOFASQBljGSbAOSbAMI24AkY0m2eRbzTAYhC0A8i21AEiCJ+9kGJPEvkWQbkGSb+0niOdm2DUjiMmMMIAQYI2wDCCHbAGCbyyRxmZBlDEISxjYgCbDNFUKWsRBXCNvczzIgZAxgjAFJgG2eRQAIAIMAMFcYA0IABkAAQghjAQiBQWAAIWME5gpJ3M82IAQY84IYBALzLJKMMUK2eU6SANs8X+YFsY0Q4nmJF0g8kBDGmPvZBiQBgG2ehyQusy0JsM3zsC2J58c2IInnRxJgm/vZBgAE5oGEEIBtwDYgBCBsIyRxhQEwAAJAAEI8P7YBAIPAXGEbkMQVxpgrhBBXCCHANiAJkGQbkGRbEg9gG5AEALYBSVxmDAgBIcQD2OYFs22bB5AkieckBACSeL4E4tmMbR5ACMBcIYl/B9s8gG1eNLYBwDb3s81lkiQBkgDbPC/zbAawbRvAGAOYZzIIAGEZQFxh2xhjG7AN2AYk8Txs25bE/WxzmW1edObZjG0ewBiDwQDGQlxmjAAkIa6wbZvnJRAPZJvnZJsXQBIgictsA7Zt8zxs2wYASZJs80KI52IbEOJZBOK5CAFCxgAG80C2AYxtAIN4IGMAcYWxMQJxhbExlxnbBjDPQSAAxAti2zb3kwRIsg0AtgHbgDEgxPMjBCAwxhiMJJ7F2EZcYSyEkCQJAxgbY4y5QiAAYwAhJIn/CJIASdzPNi+YbUmAJEnczzbPyTZXCASAeL6MuZ9twBhAAEI8JyGexTxftnkBjHkA27xojHkhjDFXiGcSD2QMIADEFQYwCMCSxGUCwLYkLpMwxrxwtrmfsW3AmGcRto25nyQukwRI4rkYzDMJAAEYG3M/IQxg2zaAeSbxXCTxQEaSJACwzfMlhBCIF8Q2/3q2eR6SeFGYZzEGMM9kbPOcJAGAkDEGwACI50vIGDBGPC8hIUCIy4SEAEBIiCvMczEGjLmfsTECAQgBgBAIACMABGAMYJ7Ftm2exQAIxAth2zZgm8tsY14Q27Z5ANvczxgwBhDPYhvA2OYFMZgrjAHbxjyAbWMeQJIkQJJtXihJPA/btgFJPIBt24BtSZK4zLZtwDaX2bbN82WeizEPIEkSArANYIy5zNgYMOZfRTybkSSJK8xzMM9mbNvmfpJsc5ltnock7meby2zz3Kgg8cJIAmzznCRxP9vcT5JtzBVCgLFtxPNhrrAtCRACMA8kictsS7LNZZJ4HrZ5TpK4n21AEv8atgHb3E8SIAmwzf2EAAxgjDHmCiPE/YR4XsI2gAAkAba5n23ANiAJkATYlsRzkmQbsA1Iss1lkrifbUm8IAYwBiRxP9vcTxJgzAMJ25Js80IYxANJ4jlJ4vmRxHOSZFsS97MtiRfMtiTuZxuQBNjmWQQgxGVCCNvGgCQMBpAECBnLQjyQJGOMsRDGshAGkGRbEoAAbAshMFcIGdsGJPGcJHGFsA1YFpIE2AaEuEJcYRuQxP2EbEsCbAO2AUmAEAYBWAYwkmwDCIxlIduAJNuSANvcz1jIMkaSbUm2JQG2JdkWsoxBAJK4zLZtSZIA21wmyTYgCbAtSRIPIAmwLYnnxzaXSeIy25IASdzPtm1AEpfZ5n6SJGEQxgBCSBIA2AYQtiUBtgEEIAljWxICY8wVxliSMYBB2JaEAWwDkowxgJBt7mdbEmCb5yQEYABJtoWMAYQQ5pmMZVlCXGYMIADbkoyFMM8iCcAGJAzYIAkAgQGwJQGSeCYjbGMk8SwGsA1I4jLbAMK2JO5nm/tJAmxzmSTAtiTbkjDGkowlAUKAbcuyAEnGgLEsY8BYSJJt7icJQAC2JdlGyEIIAcaAbUASIMSziAeyzf0k2QYk2ZYESOI52ZZkG5AE2AZsA5Jscz/bkmxzmSQewLYkHsAy5jkYYyHAmGcRsgAM4rlIsg1I4goDGAvZ5lkE5lkkGctC2AYwz2YAhG3EsxljScY8gCQAAxgDCJBsQIBkG2Fbkm3uJ4n7CSEA25K4n21AEmAbwCAwQjwn21xmW5JtQBIgCbDNZba5n7GQsRACA9gGEIAk2wACA0jiWcwVxpIwCNuSuJ9tnpMkXijbACDJtiTANs/JtiQewDYvgCReZLYBSdxPEgYBYBC2MQgM4lmM+ZcYc5kQAjAGZPEAxraFuEI8X5J4fiTxnGxL4gUQ4pmogAEQz2Zbkm1AEi+YbZ6TbR7AmGcxz0FgJBkLAcZCxgDi+ZLEA9iWZJsHkATYBiRxmSTAtiTbPA9J3M8297MticskAba5n22ei8BYBjAIIR5ACDDmCoG5whjzbOKBbEviMknczzYA2OYy25J4AElcJsm2JC6zzWW2AduAJB5IALIA25IAQBJgWxL3MwaEbHOZbV4oY8wLIon72eZ5SLINSAIASTyAJJ4fSbYl8aIQsgDEcxDPQbwQQsaAkLEQgMBY5n6SbEsCbAPGQpa5zJjLJPFcxHMQmGczz81cIYR4DkKIB5DEAwnAGHOFbZ5FYCxLsg1Isi0JABAAxljIGJAESOJ+tgFjIctcZhuQxP1s8wC2eU62JfFvYpsXShIvnMA8k0E8L0k8P8aAsZAxz8lYyJj72eZ+QoAsY56HJF4AY1ncTxJGyFiIy4QABMZYCDDmOdlGYJ7JIAAMCMDczyAeSDxfkmzzPCRxmSTb3E8Sl0myzXOyzf1sA4CxEOYKY+5nmwcQMuYKY8yzCABxhSSuMM8iCUAIcT/b3E+IZxEPZJvLbEsCJNnmMtuAJNuSeADbPA9Jtnketvk3kWTbsiyeh5AxBvFchHgu5pkM4pkMgHkg24CxEMK2kJCxsSTAGMA8k5HE8xLPhwGDAGNsAJAESLItiSsE5oGEMM8mnpsAEFdIsm2MkcRlkgBJvFC2JXE/24AQgHgW2zwXgzDmfkLGtiXZBmwLSbItybYkLpNkGwBsS+I52eYBJPEik8QLJck297PNA0iyzWWSuMw2IARgnk3YloXAPIsk/kXmCmMhBOa5GGMQxjyAbZ6Tbf6DUQ3i+bAtiftJss1ltgFJPCdJgG3ANiCEeCEsYyTZBjDGkgBJgG3ANiCJF0ASD2Cb5ySJyyTZlsQDSOJ+tnketiXxAJIA21wmCZDEFQIDIJ6LJGOMJACDQTyTeRZJGGNJ3M+2JEAS97PNc5LE/SRxP9uAJEASYBuwDUgCJPEAlmUBxgDCtiTuJ4n7GQNC3M82IGQsifsJIWzz/EjiOdnm+ZHEi8Y2IIkHkMRltgHbgCTbPBeDwAgBCMA2YCwEIISMMQjbQgjAMoCRZBuQxP2MMZK4nyTANmBbkrEQBjAGJAGSeBaDMAZkITCAEGBbSAgwBoSMhQAEYAzYFpIEGAO2JUkCbHOFsA3Y5n6SACFjBGAsyRiDsC0JkGQbcYUkHsA2YJvLJCGEbAO2JdkGJNmWxP1sc5kkXgDbgCRJgG0uk8QLJokHsM1lkgDbgCTbkmxLAmxLMuY5GQOSuJ9twLYkSYBtAAEYAwjbkmwjhGwLGWOMhSQZS+IKIQQYI4Rs25bEZbYlAZKMAVnGGAQghLAtCSMEGAMYIdsIBOYKIWPbkjDPZK6wzWVCPIBlIbBBIMQVtoWQJMC2JECSbS4T4gphm/tJ4rkYhCQewDaXSTLGIIRsI56Lba4QtrnMWJIxgLnCshD3M8YAGIQQ4tkMgBEyFsIYSzJGYCTxnGxLAiTZlmQbkMRlkmxzP0k8J0mAbUm2AUnczzYgictsA5IAwDbPRWAkcZkQIMlYyLYkwDZgLARIAmxLQgCSMM9iG5CEQQAIQIhnMcaAJGNAEsYyIIsHsI2QBQgBxtxPEmBbCAFgnpsBEIAkwLYkLpPE/Yy5nyzAMiDEcxHPZCRxmZCxbUmAJAyAuMK2JEmAbcA2z5ewDUjiMttcYQBjQBYPJISMAduAJGMhSbYlAYAk7meb+0nifrZ5HrYlcT/bgCSekyTANveTxAPY5jJJgG3uJ4n7SeKFEABGEg8kAIwkwLZtnpMknosAhLhCPJN5FkmAbcA2IAmQBNjmBbDNZZIASYBt7icJsA0gACEgJJ6XJEm2Adu2bfNCSeJ5iRdI2MYAtrmfJC6zbZvnYds2YNs2YNs2z0OSJC6zbZt/iW2ehyTuJwmQBACSAEkA4grbtrmfEJfZBmxjANs8i7Ftm/sJYYwB25IASZJsA7Zt869hm+chCZAkCZDEAwlZXCYJISSJ5yEJkCQJQDyLECDE85DEc7LNc7JtG7DNA9gGbNvmASTxorHN85AESOJ52AaMjQHbgDHPxQAYwJhnMYBtSTwnSZJscz/bPA9jnkVcYds2gAEwz2ausM1lxjwnIQQAGPMAto15ANu2eRbzXCTxvIxtIQAjiReBJECSJO5nmweQxGWSuEwSIEkS/w62eU6SeKFscz9JgCTbXGabf4ltXjSSAEmYK4x5FvECmSsk8fzYBjDPxRhAPIsx/wYC8UIIcZkQiPsZhHheBjDmWYRtHsg8f+aBJAGSACGeRVwhiedlnkUIEMIACECIBzLPzQAYzDMJy0IAQpIxgAEwmAeSxAPYliQJkMSLwLZtwDbPQxL3s82/yAC2eRbxLJK4TBL3k8Rlknh+jAEEgHgWIR5ISJIESEIACCEAASCukCSEkAQgnkUSl0lCPIsxDyQQAOK5SMJgAMxzEIgXyAAYwLZtACNJEoDAPBdJgG3bgG1JkngetrnMNvezjQGMMRhjwLYx9xMCJAG2Adu2uZ8k27a5TJIknh/bPCdJvAhs2+YFsM39bPNCmOfDvDACgwFs2+ZfZADbtrlCPJtAPC9JkgDAtm2eh23ANs/Jtm3uJ4nnD2VaMmALkABsA7YBSdzPNiAJkATY5gEk2QZsA5IASYBtLhNCALZ5fiQBtgHbgCRAEmAbsC0JsC0JkATYBiQBtgHbgCRAEs/JtiQus839JHE/29xPEvezzf0kYQCEbe4nBNhGGGOukAQIGQNCxtxPCLANIABJgG3ANiAJkMT9bHM/Sba5nyTb3E8SYJvLJPE8jAHMswkAIwkAbHM/SYAxlwnZBjDPJgBJgG0E5gpJtrmfJMC2JNuAbUAS97MNSOIFk8Rzss39JHE/27wQBkAYC3E/24AkACFkG7ANSAIkAbYB25IkAbYBDEKSbYyxJC6zDUgCbAshhDAIwDLmWYS4n2VZgG0AYVsSIIn7GWMASbYB24AkrjAAArANAJIwQoBlLrMtCRACMAjLGGMhHkASgEE8i20eQBJgm+dkG5AESOL5sQ3YBiQBkgDbgCQewLYknh/bPCdJgG1Jtnl+JAG2AdvcTwghhLANCHGFsM1ltiUBkgDb3E8IQAC2AYwxDyAJkARgjG1L4gqDkGQbsC2EAGxLAoQA21xmLAlAyDKWhTDGIABZgGUAgRECbCOukATYNsZIAhBCBhnAGECAsDFXSAIsY55JYIRs8wCSELaNhSTxLMaYy4QAhLEQANjmMkm2MQiEEMYYkGQbAGxzP0mAJMA2YBuQBEjCIIwxgDEgC5DEAxhzhUEIAcbGsgBJCGOMEIB4FtvcT5JtSYBt7ifJNs/DtiQusw1IkmSb50eSbS6zDUjiCoMAJPG8DAKwjUEAkgBjzANJwhhzPyGEMc9iACHEs9jmgYQQz8k2DyCEAADb3E8SYJv7CfEsAmMshLjCGAPIQtgGEIAk7mcbkATY5jnZBoQASQACsM39JHE/24BtQBLPSRJgm/tJAmwDGMQVxoAQl9mWBEgCbAO2hSxjJAGSANvcTxL3sw1IAmxzP0m2uUwSL5ht7ieJ+9nmMkm2AduAJECSbQBxhSzANoAAJAG2eRaBEeIyY0CSbf4lkgAMYBtAAJIAYwwCwDybADCAEMI2L5ht7icJkATY5n6SbAOAJAwCsA1UiSskANvcTxLPQxIvmG0ERhL3s80VBmEsZJsXxDyQJP59JPECSAJsA4BtQJJt/kUCc4VtQAjzbALAIAAhhG1JgJAxBmGMwFxhjAEQV9gGhIwl8fxIss1ltnkA24BtSTwP25J4LuaZDIDAXGFbEs/JNg9gzBXiBTLPYpsHsM1ltrlMEs9JEpdJsg3YlsS/g21JPIAk24grhGxL4jIhAIPAGHOZJB7IPJN4FiFjnpMk7ifJNpdJsi0EIK4QMuZ+xkKAMeYKScaAJF4w20LGkngggblCkm1JAAKDEDIGJHGZMSAECBljEA9kG5DEC2Wb50cSL4BtHkAS/xJJ/OvZ5gWzzXMS4n62eU62uZ8k/iW2uZ+QMc/LvDACIwlzhSTuZ8z9JAGAkDHGMg8ghHg2AxgLIa6QxANI4jIhQDwng8wV4pkE5tkMYMwLYhDPQWCeixAvnHkg27xgtnl+bAvZ5n5CxjwPY64wCCGexSCEuMI8N4N4INuAbR5Akm2eH0ncTxL/EtvcTxLmedmWxHMRz2KMkWRbEuaBJGGeizGAeS7GQlxmm+dijCVxP9s8gBAviHkmg7jCWAjAAEKIK2xzhbEMIDAviG2ei8BIwiCeSWCeySAAzHMwz8U2Qsg2z8U8m3gWIR5AEiBkm/tJAoQQgCSekyReBLb5D2IbsM1ltiXZ5gojiWcRV0jiMiHAGIF5FmMus83zMggAg3g2gUFgnoMBMM9kAATmWYwBBAaQZJvnJMk2IIkXkXgAqo0knh9J3M82IAmQxHOyDUgChBDPZADbgDEgBNjmfpJ4FvNcJAGSeE6SuEwSDyCJ5yQJkATYlsQLYJvLbEviOUkCMMaSAFkI2zwnIQAB2EYIAbYBSYAQgHkWIQQGsA0gns0ACCHLQlxmmweQZBuwzXOSxL+BQWAwxoAk7icJsA3Y5n6SAEmAbe4nCcAgrrANCBlLAiQBtrmfJMA2z48kHsA2l0kCbHM/SbwIbHOZJAAjZCxkDAC2hQBJgDFgjJEESOIyY9tCGEASYCwECCEAjBACQAC2AUmAJNuSAMsABsBIss2zCIwshGUAAwghAIxtQBKAATAAQsgy5gpJGMtCljGSACHAMoAAMEK2AQQGAdjmMtuSAEm2bUviAWwDtgFJgG3uJwmwDUgCJPGC2QYkAZIA24AkwDb3k2Sb50cSANgGAEm2JfEAkmxzmSTANgDYlmQsCwHIMkYAGGMhY64QkrjMtm1JXGZbCAHYBjCAJGMhYyHbPBcjyVgIIwmwjQCEEAACwAC2AQRGCEA8m7hCCGFsLGSMMQaEEMaSANu2JdkGhABJgG0EIARgEICQMQJAABjANveTZIyQJQlzhW1AEmBbEgZhm/tZFgJs81yEsRDiORiEsRBgWxLPxVxhLAkwBmQZA8aSAECIBxIABsAAQsZCAEYIMJYECPFcBCAJsA3YBiQBkgDANgDYlmQbkARIAmxzP0mAJJ6TbcA2IAkhC4F5FtsAwrYkjGXMFZJsA5Js25Zkm8tsA5JsCwFCgDEGgbnCNveTZFsS97PN/SRxmW1J3M82IGQsybYkni9zhRAgZJtnERhJ3M82IAQIIa4wBoR4wYQQGAQAWAaEAAyAARDPZhAAYJvLhGwbSwIkcT/bQkIA4jkYAPFMBsAACEASD2AbACRxmW0ukwRIAmwDgCQAsM1zss3zI4nLbNsGJHE/21wmiQewDUjifsZcJoSwzbMIIZ7FAAjANiAJkATY5gojxP2MMYAkDOJ52QYkIYwxknggIwlh2zYgiQewLYnLJPH82OYBbAOSACAAGxvbtgHbtgHbtnkBbNsGAEmSeF4CQFwhifvZ5j+Ubdu8UJJ4wSRJAiTxALZ5FiGJy4xt8yziuRkA83wZA4jnIAAE4gohAIEwNsbY5vmxzWWSJHE/SYAkALBtmwewbZvLbNvmCgEgEIAQD2QASYAkIUAS97MN2DbmCgNgrpAkCSGJ52GbF8w2YNs2z0kSLwLbtnkBbAPGxoCxECBJEpfZNhYChCTZBmzbBjCAMVcYAGObBxIPZJsXxGCexTYvgBDm2cxzMJhnEogHss1lxhhjIe5nbIwBMBjAWBICQDwXSbxgtgHbgCReAEncz7ZtHsA2DyCJ+9nmX8+2JJ6HbUm8ALa5nyRAyBiDMeZZBGDMC2abZxHPTTyLECDJNg8kACEA8WwGMOZZDGAMIADEi8iY+wlxP9vczzYAYADANoDBPJN4/sxzkQQI8ZyMeU62jW3zIjKYZxPPJAAhLpPE8xLPRUgI8byMASEA8RwEwhgwxjyQbV4w27YB25Ik8QC2ucy2JECSJC6zbRuwzWW2eQFsS5IEYIwBBGBszAMZAPMstrmfJB7AtiRJAGBsbGzM85DEAwkAc4UkQJIkLrMN2LYNAEJCXGYM2MY8m3gm8UziBbFtjAAk8SKwzQMYA7YxAOaZDOaZBAIAjBHGthGAkBCXCQFCPD9CXCGeg3kuxsaAsTFg2zaX2eY52eZfwzZgm3+JbV4wSTwnSfxrmWcSCACQJIkXRCCeyVxhmwewzf2EJHGZkBDPScjYNvezzWW2bfMAtm3bts3zI8k2l9kGgGpbAsRltiUBtiXxopEE2AYwgDGXScIghLifbR7ANgAgMM8iCQBsS7LNZZJs8y+RxP1sS7LNc5IESAJsA5IASYBtQBKX2QYASTwnScbG3E8WIMTzYwwgAEmAba4QQgDmCiEEYJvnxzb3k8RzkgRIAmwDtgFJ/EskAbYBSRghY2NACAAk2UYIAZIA24BtQAjAPIskY4wkXgBJvFC2uZ8kSbYlcT/bgCTuJwmwzQsmCQCMMYAQgBAyFjIGEABCyDaX2ZYE2AC2AUlcYRAA4pmMzRUStrmfJC6TZBuwDUiyzWWSAEkABkAAtgEMgAAwxkJcZiwLgQAwCAwgCbANIK6QZBuwDUgyxgBCgGUhxLMZQBIgCbANSOJ+tgHbgCTuZ1uSJMA2l0myzXOyDUjifpIASYBt7mdbEg9gG7ANSLLNZZIA29xPkm1Akm1JgG3bgCTANmBbkiQusy3JWJYxQogrhG1ASBL3sw3YliTJtiQAAcgCEABCCAAwxpIADMI2QgjAIIxlCdlGAIjnYIyFACEEgLGMkQRgnklgANsIAPFMxlgS5grbkjBCAAawLQlAGAsBtm0DkngWA0iyzQMIAbYlARhjSZJs8zwkcT/bgG1Akm1AEoCwDWAeSBJgm8uEjAEAIQthW4jLJAG2LWMkAbYBBGAshEHYlgTYBmwDQsYIwDYgybYkwBiDQchCXGFbEgBI4jnZlsRlkgDbgG1JgCTbgCTbkngekgAhYy6zLMsyBnGFEM9iAMQDSbItybYk2wAgyTbPxSCEAARgW5JtBIBBIIQA25IAQBJgm+dLAMYYIWNJAAKDADAIwLYQACCMAQwgCSMJYVsSBkAYIwBZAOIKSTyQsSzLWIjnZCwkBBhzmW0A8dzEs8jiAWzzQOaZxHMwkrifsSTAtiT+HWxL4gFsS7LNv5sk7mdbEs+PMQawDUjCAMZcIQCMJF4UAsAAtgFJPIBtrhCAJACDeCbxbAawDUji30oSzwfBM5nLJPEvsc39bAO2bfP82EY8F0mSAEm2eRbzQLYBQBIPYFsSz49t2zwPSfz72Oa5iGexjXlBjG0DtnkA24Bt2zyLeQ7m+bJtWxIgSZIkSVwmCZAkicts2wYASZL4NxC2AQwGAdi2zQPYts0VQhKAQDyLMQawzQtl2zaX2QYkAZIk8ZwkcZkkQJIknockwDZg2zbPjxCXWQZsGwPGkhAPJAmQJIkHEJLEZUIIzHMRV9jmgWzbBmxzP0mAJEASgAAwz2LMFQJxhWWeRQgBAAZjjHnhhAAhSYAQIMT9jHkASdzPtm1J3M+2bS6TJIl/iW0ewLZtXjDbPCfbkngekgBJgCQeQJIkQBL3s82/hhBCEuaBJCEQz2IbsM0LIp4P81xsAxgAA2CEuEI8fwIBAMY8i3khJHGFeUEkAYhnEv9qApCEeBbbXGYMIF5EtrmfJECSJECSbZ4f27YB2zyLAYS4QiCusG0bwEjigQwAGBtjAMyzCPEsxlhIiMtsG2OeySCeRRKXSeJ5SOIySdzPtiTuJ0kSl9nmedjmeRhjEFcIAYhnEghAEs/JtiRAkiTuZxvzbEIIQNi2zWWShADAtm2ekySekySehxACAIwBDIABEM9ibBsBCGEkSeIy27a5QgC2AQzmmQzmeUkSQgDGxjyAEOKFkAQAkoQAIQDxIjEYAIMBbNvmMklcJonLbNsGbNsGbNsGbPMC2AZs2+YySZK4n20uk8SLRpIkXgiBwQCAMZfZRkgCAGPMMxkMYJsXRCCMjXlOknh+bPP8GHOZbdsAIEkSl9m2zQtmm8skAYAk27Z5FnEZFQwCJHE/25J4AEmAbQCwzRXCNoCQBSCeixDCNveTxAtmG5DECyXJNi+AbS6TxHOyDUjiMttcJonLbNsGJNmWBNjmAWwjJNkGbHM/SQDi2Qxgm+dhWxIvmGXuJ4SwDWAQgCTuZ4y5QhKX2QZsA5IASYBt7icJsA1Iss1lthFCCNuAMUYSL5htQJJtSYAkwDYASMK8EJIA2zwnSVwmyTb3kwRIAmzz/NgGJAG2ucy2JF4ExgBGEoAQArBtA5IkcZlthAwIAVgGMEIIY2NABrABEIAkwDb3sw3YBiRxP0mAJMA2gJFkDNiWJInLbMtCGAMYAIG5QhIgiQewzWW2EUIAQsgYEAIk2TYWsi0JYwxIss0DSAIA29xPEmAbsA1I4jnZBiQBkgDbgG1JXCaJ+9nmBZAE2LYNSAIk2ZbE/WwDkgBJtgHbkgDbgG1JPIAknsVI4n62JdkWQkiyzbMI29xPArAtCXOFbR7IIGQBxgAgZBtAAJhnMUZgnsU2l0kCMIBtQMhYyLIQYIwBJGEwkjDGQsYABjAWwhhLMpYE2LYshAEkcT8hnpNtSYAxQggwFrItCZBkGxCyjBECjCVxP9tcZlsS97MtCZDE87AtyRjAIDDPZowRV9iWBMgCbCOMhWxL4n6SbAPGgBCAEbKMEQKMJRkLGQMIIWMMAgPYlsRltgFJPIBtLhNCABgAgUHYBiQBgCTuZ9u2JNuSeABJgLEk7meMAABJGATGmMuEELa5TJJtQBLPyTYgCYORZIywLYkrDAKQBNjmAWwDkgDbXCaJ52QMCAGAkDEgZCwLsIyRhLAN2AaEuEwSlwkBtgHEMwnbGEnczxiQBNgGMIAkwBiBeRZJgDH3E0IYYxCAJECIZxGAEM+Pbe4nifvZRggBGAABSOIy20II24BtSQBgmxeBbQCQBEgCbAO2eQBJvFCSbPNcjDEgicuMjYUwAMIYAwgBQoBt/iW2AUmAbZ4fSTw/tnkAYwQgSwiDeCBJ3M82L5htHkASz0MSYAxUSVxmmxfMNpfZBiRxmRDPIp4/AyAwV9iWBNjmeUjCYBBX2AYA25L4l9jmhZLEZbZ5Tra5n23ANs/JNoAxFjIWAox5XkbIWBL3k2RbEs8iMC+IEIB4FmMh24AkrjAPZBsAbAOSAMA2z8k297PNAxnEswghrrANCBnzAJIAQJJtSbZ5ANs8gG1AEvezzXOSZJsHkGRbEg9gmxfKNveTxP2EjAHAtiQeyFwhictsA5J4HrYBDAIDNmAABOaZDGDuJ0DcT5Jt7mcDSOJ5GWPuZwwY85yEjGUhMM8mMIh/mUFgMJaFjLnCABgEYFsSBrDNi8Y295PE85DE/WzzfBnEi04S/xLbkrifJF4ASbZ5XgbxLJIwz2YQgG3uJ4n72RbiBTEIzLMYA4hnEphnMi+IbUk8D8sAgMA8N/McBAYQ4n7GgG1JXGbMi0ASD2DMFUYS95Nkm2cRAAbxL5LECyYJELINYJ5NPIsxIGRbkjEGAQgBkngAYy4T4lnEsxhjEIAQIGTMswhAkm0uk2SbF05gns0YYx5IEpfZ5jnZBiTxIpCEATDPZBAI29zPNs/DtiSeRcgyBjCAbSEewLYkHsA297PNc7LNZcaSeCEE5grbQlwmCQAk2eYySRgAYVtICDCWZJtnMYgHMgaEjIUQGATGGBACMM9kLAsBiCtsS+KFM89krhDiMiFjQBLPIq6QxGW2AWPMFZK4nyRjzLPYBiTxnCRxmSTb3E8S97Mtictsc5ltQJJtSbZ5XuKBbPMsAhACEFcIAZgXyACIF8I2L5RtQBKX2eZZBGAbA9iWxAtlWxIgybYknpNtXiAqIAmwDdgGJAGSeE62AcC2JEAI8UwCsA0IcZmxMSCEsM1ltnkASTyLQTwv2zwnSTw/tnnBJHE/24Ak/iWSANuAbUASlwkZIwDMA9nmWQSAAWwL8UAGcYVtBIAQAmxzmSTuZ1sSVxhjnh/bgCTuZxuQBEgCbPOcbAOSuJ8QgACMAQyAEDIGMAhJgG0usw0AkgDbgCReNJIA25IAwDYASOIBbHM/24BtQJJtSdzPNiAJkATYBoQQDySJy2xL4rnYgHg224BtSQDCBsAgAIRtnosAJAAbMEiSDdgGLAkQMgYAIcA2YIyQxBVGEvezDQgBGACDeCYBWBayzWWSbAO2AUmAba4wxgACMAaEbEsCbAO2AUmAJB7AtiTuZxuwDUgCJAG2AUnczzZgWxIASOKBDAIQQtjmfpIA2zw/tiUBtm0DkmxLAmwDkgBJtm0DkrifbUASANgGhIwxAEIIgwBsA0IYYwABSAJsA9ggBGAbwBhLsi2JKwSAAWwjhCQBtgEhBIABbHOZkLEkwDYgZAwYC3GFeCDbQraFeCCDEOIyY8C2JMAYMBYCJNnmfsYYQBJg27Yk24AxBhCSxBUCsC0JwDw3g7DN85AEALZ5ANuAJO5nW5JtSVxmLAtxhSTbxpKMAcQVkrifbcC2kGUhDCAEIIwxgG1ACJAE2BYCjCVhEFdIAmxzP9uSbEviMtuSbHOZbUCIZxGAJNuSuJ9tSbYBSTwXAWAAY0AIQADGgCwExljINpfZ5n6SJNkGbHM/ScayLGMAY0CSMYCwDUiyLYn72QYA27wAtgHEs9jmeQnMFcaSAMTzYRAARhLGWJKQsSSeRQjxAELGxkLGQgjbiOdlGxAylgTYBgDbQoAxz2KeSQgBmOcixHOSxAPYBiTxAJIAwLYkwLaQsSRjjCReMEk8J0mAbS6zLYn72ZYE2JZkGwBsA5J4LgbxLMY8gCQAY4xBAJgrJAEYwFiIyyTxr2cbkARIAmzz/NjmAWxzP0m2Ads8gCReKEncTxIQgG3bkgBJkngBJAGSJAEIxHMREgIQxgAGsG0bwGAAwNg2YNs2z8s8iyRJ/JvYts0DSAIkSeJ52AYk8fxIksQDCUBIElcYzDMZAIN5FmOei3k2A2Cei20hQEjIGLBtzAsmiQeQJIl/iSSeH2MAMAZsGwO2jbmfECBJEiCJyyRJ4gFs8/zYBmzbBmzznGzzL5EESOIBhIS4n22uEC+IJJ6HwTyTbds8gG3bkrifbds8kHgOBgyAbQsACUm8IAIhJMT9JGEAY9u8AEI8i7HN/WxzmSRJtnlOQlxhhLhMEs9JEs+PJO5nm+fHNs9DEveTBNjmWQTiCsu2eQDbtnnBbHOZJEmAJB7ANs/JNpfZ5jlJQjwH88KIZ7ENgAGEwZj7SQIk8fxIwjwf5lkkAUKAJK4QAEYIEOIyIQzmgYwBYy4z5gWQxGVC3E+SbR5AiOdhm+cins08BwEYA5IwgG0eQBIPYJsXgW1J3E8IASCukCQJwDyLJJ6HJEAIQADGCNsYACPEZZJ4XgbxQgjZBmzzvIwQz0OSbcA2l9mWBEji+TLPn3kmY9kYIYkHkARIksQLYBtjjLlCiMsk8SISAAYQ4gGEhABJXCYkxAMYGwPGAGBszPMlnpcxV5hnEs8kMBgAI0kSL4i5whghiSvMFcbGgLExVxghnsUYGyMQQkKAEM/DNvezDQC2Ads8gG3Atm0AIwkQkgRIsm2byyRJAgDb/Ets2wYASVwmiQeQxHMxGMSz2OYyY2PANsYYg3gm8UwGAwBCPCfbtgHbPCdJknhOkiTxIpAkCQBs8wJI4kVm2zbPhlprkgBJNmBJXGaMuUISYJv7SQIwCGNAFsI2gBCyDWCeSTyQMYABJAGSAGNACANYFgIA21wmCbDNCyCJB7DN/SRxP9vcTxJgm/tJAmwDkmxL4lmMMQaQBCCMMYAswDJgGyEEGGOEACEEgEEACMA295ME2OZ+QoBtwJj7SQIkcT/bPD+SuJ9tSYBtQJJt7icJwAAIwDZgGxBCPIttSYAk7meb+0kCbPP8SOJ+tgHbgCTbkgBJgG3uJ4nnZBuwDUgCJPEsBrANIJ6LJMAYAwhxhQBs85wMAkmAbcA295MECEC2AWNAEiAJsLnMCIyQbQCBQQhZBjDPRQhA2OYKIYR5FmOeRQhhjDEAQsgYsC2EAIwxkgBJtm0DQoAkwDbPIoQQgG3ANiAJkATY5jlJAmwDtrmfJJ6TJO5nm+dHEsaYyyTZBjAISbZtA5Js8wCSbEsCAEm2JQGAbUm2eR62JfGcJAG2ASGEbe4niWcxgG0AcYUk2wA2IAmwwAAYSQACsA1IwgAIwDb3k4QBAGMhBMYYwEjiCgFgANsIQAhjjBBC2AZsc5kQgABsA5IASbYRQoBtSRhjYyGekyQeyBjbBiQBGGNJXCZkWxJgzPMjZJsrBCDJNpdJAmxzP0m2JQG2AUmAbe4niWcxiAeybVsSIMk2DyQAWQCAsG0sxLMYSbYBBCDJNlcYQBJgGSMJsI1BAJIA2zwn24AkIWMAg5CFABC2+ZdIAmxzPyEAg8AACGOeh21AEs9JEmAbsA1I4n62EUIABvFAtgFJgCTbXCaJZzFXGCOEbAMYQBL3sw1YFuJZzBXGgCRAkm1JgG3uJ8lYFmAbQABC3M8yBgHIAjAAwhgBCPEs5lmMuZ8Q9zMGbAOSeH5sA5J4FgMIGUsCjAHbgCRAEmAbsM39JAGSANuAbUAIkAQgnskYcz9JgG0MApDE/WxL4jLb3E+SbUnczzbPjyQMgLjCNmAbIcRlxkKYZxLPRYj7WcY8iyTbgG1AEiCJy2wDkmxzP0nczzYgxP0sA7IQD2QbsA1I4jlJAmwDkrifbUASYJv7SbINABUAg2xzmW1JAOa5CcwVtgEhDAJAPJsxlmQb8VyEjIUAxAskACEus82LzLYknh/bPIBtQJJtnpNtHkASL5Qx5pnEswhxPyEEBjAGhBDPy7Yknocxz0UIcYUBLGNeFJIA21xmm+clANtcZgwAiAeSBAC2AUm2AWMh7ifJNpdJsm1bEs9DEgBI4n62eQFs86IRMuYKgbnCNg9gLARgnsW2JEm2sZF4HpK4nwGMADBCGATmMnOFAYyFLAMIjGXMCySeySAwxpIwV0iyDQAYY0mYZzKWhYwBhJCxEOJ5GQsBtnlOxkKAJNuSeADbvFCSANvcT5Jtnock27Yl8VwE5grbkmwjnkUSl0myzWWSAEnczzZgW5JtwLYk2zwnSTwPY8yzGQTmeRlzhXgW2zyTEFcIzGXiWWzzXAzigWxLwgBCAObZxLMZxDOJZ7GMARC2ecEkcT/bAAZhG7AtBGAQL4x5FklcIYS4nzFgLAljW5KQMQYBGAOIZ7HN/WxL4gFs85xsIx7ItiSuEM9mnottnosBjIV4FoN4NgEgnsU2ANiWxBVCFoBBAAhACIN4LrZ5fmQhnpck2zwPSbZ5vgSAAIx5ACFjY0k8D0m2eUGMJJ5FPJBtSdzPNi+YMYAx5gGMJdnGAMZCPD+SuEySbcA2l9kGJNkGjAHE82cAzLMJwBjAAIjnYswVBiEJwAAIDCBkzPNlJHGZJNvczxgwFuIBbEuyjbhCEs/JNveTxGVCAOIK2zwn21xmjJFkG5AESAJsc5ltQJJtwLYk2zyAJNvczzYgBNjmfpJ4ACFeOIEBEJgHso3ASOI52eYyYy6zLck2IAlAPAcDYF4QSfxHsM0zUUGAbS6TxAsmBBgDGAABCPECSMIYA0KIK4Rscz9J3E8WYMz9JPGisQ1IAgDbXCYJsM1zsi2Jy2wDkgBJgG1eMGOei3k2AcgCEAACwADGAAJAGGMAIe4nictsA5JsAxgAAWAAIUAIMBbCPF+SANuAJJ4fSYBtwDaXSeIy24Ak21wmifvZ5n62AdsA4llscz/bgCReMEmAbUm2uZ8knh/bgCTb3M8Yg3heQgjbgG1AkrEQ5pnEs0gCbAOSeBEJjBAghDEWQmCMASEAIWQZY4y5QhLPybKQbcAYI4krhDEGI8k297MNGANCGGNAEoAQAgDbkmwDQsaSANsIYwADCHE/24hnEbIN2OZ+krifJMA2IMk295PEFcYYkGQbkGRbEiCJ58e2JK4wQgDCNiDJtiRAEmAbsA1IAmzzAJIA2wAgiefHGMAAiGcSGMA2l0niedgGhABJgGUAGyTJYFuSbe5nWwgwxkgCbPMsAmOMASQJIQDMFcYYBEYSl9kGLAvZBjDGkrjMthAgZAzYFjKWBNjmCmOMkGRbCCGJy2wDCIyQbUASIAQYCwHGgG1AyDYgCWMshDAGbCOEhIxtA5JsA5JsSwJs84IYSYBtALAtCbANIDBCxhgh21wmZIwQAjDGkowlcZkk24AkQJIxBrDNZZJsS+IKYZvLhDAIAIOxjJGEMQZsCxkDgDH3MxYyRmAkAbZtSwJs25YESOIy25IAIcAYQGAkARhjWYAQAAghJNnmfpK4n22ekxDiCmNjIe5nm8uEjAHbgCTuZxsQQmAA20IAwhgQsg0gbHM/ScayELa5nySehyTb3M82IAmQBBgDGCHMswljhBDmgWxzmSQAA2AAIYxlACEkBBgLAYAkwDaAAYQAxLMYcz8hY+4nybZtSRhJAGBbEmCb+0niAYwxGIQQz8M2IEkSxrYknh/bkrjMNiDJNg8gCZAE2AYwAALzQJIAjLEQYIzAIIQADIAAjBFC3M82IAkQAhBX2LYtiWcxz2JbElcYIQDxHIRtjCTuJ4n72eZ+krifJJ4f24AkwDZgGyELERIAApAEABgMgHkmg8E8izFg2xiDwWAeyDbPYowxmOdgANu2uUIgXjjbtnkekiRxmW3+JZK4nyRJtgHbtnkA27YBwLZtwNgYMDYWAjAvhLExAnGFbcwVtm3zALa5zDaXGSOuEBIChABjjDFgzGWSeMFs2+YBbNvmOdnmMkmSAElcZts2V4jnIkkSANi2zYvMNmDbNmCbB7BtmweQBEiSBEgCAGMMgEE8HwbAAJIAIQABIB7INiAJsA1gMFcICdkGhADMswkE2BiwDEIICXGZsbEQDyCEeW7GNpdJkmQbwGCexTYvgDFXiOdiG7AtBCAk8QBCQoAQ5jkYDAZjm+dhm2cxgCQuk2TMcxFX2OZ+kmxzP2NAEg9gmysEAmGb+0nifra5TJIkXgS2bfM8hAAE4pkM5rnYFuJ5CPEchHk2G7AtnoOxMQDY5oEM5tnEs5nnZhAAYJsrzANJ4n6SeADbQoAknotAXCEJ8XwYwBhAPIsxxtiYyyQhnoMALHM/SUI8gCRAEvezzQsn/gUGMMYAgBAgBEgSAoQQgDFgm/tJ4jJJtjEPJAmQxGWSbPNcDOaBbBsDgCSEJMSzGHOZMYB5LrZ5TrZt8wDGxlxhANtcYa4wNuZZzAPZxgC2eS4CAIyNAQyAAABJkgDEFZIk8TyMjblMEgJhzPOQxP1sY4wBhDEgZNs2z0MS95PEczEYwDZgjEAYAxjb3E+SbQCQZNs2gEFI4goDyOJZBOL5EICxMQZzhRAgSRIPIAmQJIkrDGAbsG0b8XzZxjyTsc39JCEASZK4QkgCEM9LEveTJIkXhUA8HwYwBoyNEQDi2QTimcxzkSSJy2wbYzC2AcCYK8zzZ14Y8SKybZt/JUlCCEBOG3M/SYBtACOJy4yFuMwYsI0Qwkgy5n5CxjwXA0gCEIBtwDYgCZBkG5Bkm/tJ4n62AduAJEASz8k2YBuQBEjiBbAtCbAN2AYkAZIA29xPEmAbsC2EMBYChLifZSEAYwwAkmzznGwDknh+bAOSeL4MIAQYA8aAJNuSAEmAbUASl9mWBNjmfpIA2zwn24AkQBJgG7ANSAIkcT/b3E8S97MN2OZ+kgBJgG0uk2QbsA1I4jLbknhOkgDb3E8SYBsw5n5C3M82IAkQAmwDCEASgAGMAUmAbZ6LAYQABGDMFUYIQIARIGzANmBJIAkDYCxjEM9ijJEECGEQgDFgG5AESLKNASQBxoBtQBIgybZtQBKX2ZYESAJsS7IN2BYChBCAZcxzM5IABGAbsA1I4gFsS7ItCRBCGGOEELa5nxACg7AN2AYkAZJscz9JxhhAkm3uJ4n72QZsS5JkG4N4IEmAbe4nCbANCCEA21wmCbDNswiMJMBYyDaX2eYySYAQl9k2BiQBsgDLQsaAjcSzGSGEMc8iMM8iCQBsC9kGEIAQwjYACBkDtiUBkmxzmTEGIYQRQiCeyQAYYwSAkQQgMBjLAALAIIQwxoAkwDbGmPtJEgIwxgjbCCHuZxuQJMm2sRBCiMuMZQG2EYAk24BtQBIgyTYgCcAYA4hnMpJ4TrYBY1mWASEhY8wVkowlAbYB24AkQBJgm+dkm/tJAiRxP9tcIWQZY4yFuJ8xIAkhBNgGbAtxhQBsA5IASRhjnpNtHkCSbUASAgPYBiQhMIAxRhIgC/FMArANYJ5JGAvZBiQBkgDbgG1AEiCJy2xzmRDiednmfkLGQoAxYFuSbUAS97PN/STxgkni+bHN/SQBtgHbkowxkrifbUASIAmwzXMxgCTAGJAFWAYQgBD3sy2Jy2xzPyFjjJAxgHgukngWYwwIGXM/SYBtIcSz2AZscz9JgCTbgCTAGMA8ixCXGXM/SQBgWxJgm/tJAmzzAJIAY8xzEQKMuZ8kAMBYFrINYABJAMJYiPvZBjCAJMCY+wkBGMAYYYyRBAgBxgACAwCSMAjANs9Jkm1JgG3uJwkAbAOSuMw2IInnYYxBBCDxLLZtcz9jLhPiOQkJAQhjHsAYAGzzLAJhbAxgHsg2YBsAbPMAtm3zAJIkAZJ4Tra5TJIkXijbgG3bXCaJ5ySJ+9m2zWWSEIAQABgbc5kQgHkg21xhrjAGJPFA5oEk8ZyEEIAxYGzM/YQwQlxmbJvnIl4UkgBJkrjMtm0AkCSJy2zbBgBJvGCSJHGZbZ6Hbe4niftJss2/xLZtrjBXCPGchLjM2FgS4grbthEvImPLXCbEFQJAXCYA80wSEpgHEkKIK4QAIUk8i8AYA4CQkDHPIhCYB5LEA0iSxP0kcYWxDdjmORlzmRDPSzyQJECSJACQBACSAEk8i3k2IwRgnskY2+YBbHM/21xmm/vZ5vmxzQMZwJjnYZvnZJtnMQ9kbJsHMi+IJEASV4hnEs/FGGMMAsA8kDA25gWzzf2MeU62uUzImOdkm/sJCQkBiOfLMs8inj/zTMY297NtzGVCgJAQDyQASUI8i5EkiRfANsbYGPGCSLLNA4lnMhghXjAhhBAPYAwIGQO2MVdIksRltrnMNiAE2OY5SeIFMMY8F2NJkgBZtm1zmRDPYjBCvACSANs8gCRAkiRACDCWJAkQAmzLEgKEEM9i2zaAeSYBCAGSAGPAtjGXSUI8kwFsc5kQ/xJJxoCxMZdJwghxmSRJgCRAkiSeH9v8S2zzPCQBQpJ4AEncz7ZtnpdAAAghIa4wAAbzQJIA27a5nyRjLjPmfpIQz5cxgDHmAWzbBoy5zLZtwLYkSZIkAYBtrjC2MZgHMuZ52AZsA7Zt8wC2eR62bWOeP/H8CVkYAINAPJORxWW2bXOFQDwvY2MEgACEJHGFeDbzHMQLIYkXTJIk/iW2MQCmGgtJ2Oa5CAAB2OZ+QgACQAC2Ads8D9uSeC4GwAAIIQCwDUgCJAG2eU6SuJ9t29xPkm3uJwmwzf1scz9J3M82IInLJHE/24Ak24BtQBIgxP2MeRaBsY0AhDAAAhACjDHGgCRAEoB5JmMMSAIkAZhnM1dYFjLGAJIAIcwVtnkeQrxoJHGZbV4EtgFJgG3b3E8SYJv7SeIFkwRIAmxzmW1JgCSek21AEg9khABJGGOEJAADIACEkG0eSAgBtgFJgG0A82wCQADGAAawDEiAsAAQAAaEAGMJG4SQEMbYtiQEYBuBAYwxCECSbSEuk4QBEM8iCZDEZZJscz9JAAawDRgLAQhJxrIAYyFAkm0Ag5AE2AaEbHM/SYCxbQCQZBvAAJaFZAG2uZ8kDIBAYIwxV0gCbAOSbAOSMIAxRhIgCTAWsg3YBiQBxoAk25IASYBt7icJMOYKAyCMERhJtgHb3E8SYFuSECAJsA1IAiQBxpKMMc9kAGPEFQKDhG0JkCSMZQwCkMQVArDNFQaBwCAwsgBjrhAIDMZYEiDJNpdJsm1ZSBLGMoCRBCBsA5aFAEkYhLEQAoMAZBnbFrKMMZYECCFsCyGEMMYAQghxhW0AIwlAALYBIQCDMOZZhJBtSba5nyTANmBbkm1JAIBBXCHJNs+PJIyxEGAZIwljGWMsZCxkLAkwti3JNiAJYwwIWZZlLATYlgTY5jJJXGaMsA1YBjDPImSMQQAYSTyQMRbiASRxmW1Akm1JxkIAQshYyDYgxGWSuEwSBhAyRmAkARhjWQjMs0gCbEuybSwJIwmwLYQBEJhnMsaSMAjAGBACEBhJ3M82IAkQQtiWBNiWJMm2JF4A2zyAbQAhxANI4lkMAnOFJMA2DyAJ82ziuUgCjLmfEAKDQfyLJHE/Y0AIEMJIQlxhm8skcZkxRhIgCbDN82Ob+0kCbAO2AUnGXGabK4QsAPEstgFJtrnMNiCJB7ANALYBSdzPNgIDSAIQmGcTAMYYIQRgHsgYAIR4TpIA24AkwDYPJJ5JCAEYAIEBbAOSuMIAiCtsA5J40dgGJAGSANs8gCQusw1U/g0E5kUhCQCEjLmfMYAAhLifJNs8D2MhHsA2z8M2D2CbF40kAJAE2AYk2QYA21wmyRiDeDYhyxiDsM0VBjBGPDcBYCRxmW1ACEA8fwJjzP0kcZmQMQ9gmReZbUm2eU62+ZdIss1ltrnMtiReKEkAYJsXyjaXSeJfYluSJNs8kDFGPBfbkmzzLAZhG5AECCGuEDLmCoF5JgMgMAAGQIAwV9hGPAdjLjMIAIEBjIVsAxjLGABxhTHCtiQA8xwEBoPAAIhnsS3JNiAJgwAwgJAxIGQsBBiDsHkA27wAtiVhnsW2JNvGQhjLkjAIAIMAEBhAyFgIYSzEc5Jkm2cxknhOtrlMEveTZBuQBAC2AUm2ucw2IGQMIJ7NALYRmGeRxP1sS+Iy27wIjIV4PiTxnITMv8ggnklgjHleQggAMM/NIABjnsUgbPOcbAOyhLhCPDcBQsYAQgDmgYwBxLOZZxPPYpsrDELINlcYhJBtwDaX2ZbE82MbABAvCtsAgEEIWcYgnosxYMzzJTBXyAKEuJ9tXjAhwJjnZIxBPIuxEAAY87zEFba5nyRAiMuEbAPGXGEQgG2eRcgyBjCAbUkABiFk2VgIsM39JGGem0EIGfMsAmMsBGAQGASAAWxzhREy5jJjDOJZbEvi+ZFkG5DEZUK2ucI8k3guthGYZ7HNFQYhZGwsiedhWwgJg8A8mwAQV0jiAWzzAEK2uZ8kbMSzGcRzsQ0Y8wC2hbjCIGxzP0lcJokHkGSbB5BkWxKAwBhzP0k8J0k8gDEgBNhGCAEIDCCJy4x5vgwCgcE8k3gmYZv72eaBBOaFMOZZjLEkhG3uJ4lnMc9kHsi2JNuAJP4dbEuyLQmoPCdJgG1eOGEMCPEAkrifbS4TAjDPJDAAApDE/WxL4nkI8fzYBiQBtgFJgCTANv8SSTyAbS6TxP1sA5K4TAjAIADLXCZkjAEQGAABSOK5GEASz0UAxkKY52JbEuZZJAG2eU7GAAaQBCAA2zyAJO5nmweQxItMkm3ANiAJsA3YBiTxnCRxP9uAJJ6TJMA295PE/WxL4nlIAmzzLAKwzXMyBgDbXCaEQGAQz2KMARBCQsaAbUAWgAAwgG1AEoABMAACYwwAAsAgifvZBhCAbcC2JAyAACQBtgFJAAawjUAAsrjMtmVAiPtJsi2JKwQGEAIQQsaAJNtCAAbAAJKMjTGSANuAbUASYBuwDUgCbAOSbEviCoEBEAACYxnASLINCPGcJNmWhEFgJAGSANuSMM8iyTaX2ZbE/WzblmRbEsbYtiSEkG3EMxnAtiTMs0jiOdmWZJv7SeIy20IIDCDJtiTbkrhMkm1AgLhMxkgCEICxLYSwDSCEMICxLASAsYy5QhKAkcRltgFjSTyAJMA2YCwLQGAA2wBgWQiDeCbxTEbINiAEIDCSANtCCAwCYwwYCyEAwBiDkMTzMpIA24CxkBCAucK2JNuSuJ9tALANSAIkGQNCgG2eh23uJwQI2ZaEsA0YSwJsI4S4zDb3kwTYRmAASdzPNoB4INuSACHAmCuMJAADGCOEhIwRgLEkAIPAAEKAMSDEc5JkWxLPybYQgLjCGCMJEEJgELYBSbYBSYBljJBt7icJEEIAgDGXSeL5EoCxECAL8UC2ASEEIGQsZBsQ4gFsA4BtQBIgyTYgiSvMMxkEgAAwgCTANleYK2wLGQNCgBAACAGAJMA2YBsJg42EeQ4CI8RltrlMEs9JCMAACECAxGXmCmMkcT/bgCRZxgjbgCRjLjPGXCEJkATYti0JkATYlsRlkgDbkngWcYUk7meb+0kCbAO2hbjMGBACJGEQAAYwFuIKA2AAxLMIcZmxJO5nzPMjCTAGhABjjCTANi8aSQAGsC2EeCBJtm1L4gWzDUgCbHOZJC6zDUjiMkm2geA52bYtiX89STyAJC4zNkYgEADiP4QkSVwmSZJtwLZt/pVscz/btrlMkiQukwQgEAACwADGCIQxIAnxvIx5TkIABjC2jbHNA9i2DdjmMtsABnOFkBAPYIx4IWxzmSRJPA9JPCfbgCSekyRAkiQukwRIksS/RBIPYBuwbZvLbAO2bXOZJMC2bQCQJIkHkCSJy4T4FwlACGEbsG2bZzEIQBJCSMgYwDyLJEkAAgEYIwCEQDybJACwbZsrzHMRAjCAbduIZzE2BgAM5jmY5yUJ8yySAGMEYMz9JHGFDCAQVwhJss0DSOIySYCQJC4T4jJJmGcTz81cYRsAMC+QEEI8i23ANs/DNgDY5vmxzXOyDWAAzAtizPOwzfMjZIxBAIAkQBL3s82zGBAAAsBgLhPPyTyLkDHm2QSAeC62AQDxLxLieQgBiOdmAGMAMFeYBzAGEP92AjDmWQQCQFwhCZDE8yNJEiDJNgZjbJsHkAQAkngAIWPAtm3AtiTuJ8T9JHGZJB5IIIx5FoF4QYxt8yzigSQJ8Zwk8UBCiCsMxjbPyTZgG8BgrpAEIJ5FSBIAGBsjAElCvABCgJAQIAnxbAZzhbExgHleti0jANu2AWOexVwhBEhCPIttHkAS97PNczI2Box5HrZtAxjMs0gChIS4zNiY58tIEiAuMxjxLLaNucyYF0ASVwgEIAkEAEgCAQbAXGFbSBKAADAvCtu2eQDbtnkgg3kWSbwg4goh27YBjBCAQEiSxLOI5yAQz0EgrrBtm/sJ8XwJAPNAQkIAAgPYts2ziAeybZsXQBICQCAASYAk/k1sc5kkSVxm2xgAKgjAPBdJGMQLIgtAPBdJ3M82L4h4FtsAQojnJZ7JIGxzmSQewDaX2ZYESOJ+tgFJAGDbNiCJ52Sb+0kCJHE/Y64Qz2SeiyQuEzIWMgYwgCRjIR5ACAHY5kUjhEFghADAGBAyBiQBiOdiG5AESAJsc5kkwDb3k8RltgFJXCaJy2zzAJIA27YlcT/btgFJgG3ANiAJkATY5jLbkngA25J4wSQBtrmfJABjbAxgJBkDCEAIwBgDgDEA2JbE8xIYIWNAEoDBSDJGCGGMbQOSDBIYAyAJWxJgAGwDQoAkwBiQBABCxhjLQkIIDGAbsAwIYQCEZQwCsC1JkjFGCGFsW5JtQBJgDNhICPFAAjC2Lck2IMm2JNuSAEmAbQDxLLYRQgACMOaBhG0hBMYyIARIsm0sSRIGkATYNkYIAbYB20KSAARgm8tsSwIwCNtcZlsIsIyRBNjmWQyAAYQAIWNJxrKMJQGSbNsGhBCSANsIDCALIYR4DsYYbAMIACTAIBtAAtsWMghsA7Yl2ZZkGxACMAghDMLYGIER4jLbkgCMMZdJwhhjjBEI20IAIGQsCZDEZcZCPIBtSbYBEEYSYBsAjAHAWJJtSQAG8UwCsC2J+wkBCGOMZcwVxpJsc5kk7mcbsM1lkgBJgG2exTyQJNuSANuSbEsCjDGAsSTbQoAk25K4TBJgWxJgW5JtSYBtYyFjSbYRQrwQwjaAEUIAQsZCCAwgBCBsA4AkAIMAjAHbkmxLAmwDtgFJtoVsI4QAwBhAAEKAbe4nyVgWwraxJEAS9zMW4jIh2whAEoC5wpgrzHMwzyQwiGexLYQAbANCgCTAtpBtSba5nyTAtiTbkmwDkmxL4n62eQBjIQDzLJIwiGcSGMCY+0nifsaAEOJ+RhgAIYRtAPNMAgMgrrDN/WwDCCEwYBtAAoMBQAiDwACSeE6SbPM8JAG2eRFIAmwLcYUwloRBABiEbQABCHGFQSBk8SziWYyFuMwYEOJ+xoAkwDbPIowxCFmAMSAEIJ5JXGGMARBCPCdJPD/G3E8SYBshCbANIDBXSAJsS+J+tgFJXGYbkMTzI4n72eYKcxkhYWwM2LYN2LaNADDPn0D8WwhJ3M82VxjE82EwGMQD2eYy27a5TJIknockSVxmm+dHEiBJkiRJPC/zTAbAvCDGxoCxEOZZhHgg8RzMFZJ4foQABAJAXGHMZcaI50sSIEkSDyAJkAQAkngekngR2OZ+tnkBJAGSJPEAkgBJkrhMEiBJkm2eH9s8J9s8i3ggYwAQEuJ+QsYAAgAkcZkk7mfbNpdJQjyTQDyTsQ1gnkU8kyQkAAkbEM9mQAAIBGAbQACSEJhnEwACISQEIIyNAcSz2LaNAYy5n22eD/OCGMC2JC6TBEjiMtu2AQDz3MQDCWGeyQDGQgghIZ5FPJN5PgwG82zimQzmWSTxLOZZhACEEOIFEgjEAwkBkngAISGei3lhzP0kiedi8ywW9zPmOdnmuZjnZp7JPJAxz2IQAEKSEAYwNuYySTyAsRDPSRIgCcQLZlsSIAkAEM9NPC/bmOdlm/vZ5jlJkiSJ+9nmBZBkG7Btm8skAYAQwlgSIInnIYR5LrYB2wCAASTZBjD/IkkIIe5nDBjzQMI2z48xz8m2bS6TJAkQMgYAhLFlwBgjxHOSZBtjzANI4oGEMZcZAxjANg8giSvEAwkhEABg2zaAEeJ+khDGgG3uJwmQJIkrDOYKSYAkSQBgm/tJkgQI2cYYGyMQCEkAAkBcYdkyAgEgXnS2bXOFEEIACMQVtnleBgDZPJvBPJNAPBdJCEASIIn7SQIkAYAkXmRCPIvBAIhnEs9mAGOuEFdYtszzEOJ+QkIA4gohSTyQAWxjAMzzYTCIZxKY52AAzAsjng/x3Myz2LbNA9jmMts8D9u2Adu8EOIyqs0VtiUBtiXxQAZAYIRscz9JvGgkcZltY0lcZpsHEsYYjCT+fWzzAJJ4fmzzAJJ4ANuAJJ6LAYQAY56TbUASYJvnIgBjDAYhC8A8kCQMwhgDIIxlIQDbXCaEwFwhhMAgbAsZc5kknodtLpPE/Wzb5gEkcZltLpPEZbYBSYBtnpNtHsA2IMk2D2AbkMT9bNuWZBuQxP1sS+IySTwnSdzPNmAMSOI5CQHGgBCAASQBkgDbkmwDGAABIIQwxsZCxgAGsIx5JvFMkrnM5grbgISELQEgAAwgiSuEbUASDySEjDGSbAOWhSQBtnl+LGNsA0LczxgQwhgLWQZkIWzzAJIAAIOwDdgGJAEIDGAsCbAtyTYgxP1sA5IAhJBtSQBgGxDCIAAMwjbPIjAYQBJgLGRbCIGRBAgBGMQVkjCSAMuAEC+IucKyEIBBAJYB21wmhHhuBrAsZAxgEDJXCCFsS8JGArAFgAEbJAQgMLYBSYBtLpPEZbYRGEkABoNAPIsQIMsYwCCukATYBowBIYQsYyHEswjZ5jJJkrjMNiAZxP0kgW0wxtxPkm1AFmAsCcBgjAEERsg2YMxlQtzPNveTZFsSIAmwzWWSANuAbUmAJJ4f24AkQJJtSQBGEpcJIQAMAsAYAxhJgG3ANiDJNiAJsA3YlmRbEgYAjLmfJMC2ECBkGzAGhGxLsi2J50vY5jLb3M82IAkhBGAAjLGQMQDYBhC2JWEAQBKXGcsyBoQA25IABICRhEEAGGNAkm1JAMa2JMA24gohhBD3s40AEELcz1jItrEk2zwvAyAAxLMIAba5zLYk21wmCcA8iyTuZwwIAQgA8yySMM8kAFmABSAbAAFgwDYgCRCyzGWSjIUA24BtSbYBSTwvGwCDAIQxBhACEJgrJAG2JXE/STwP21wmiRdEAJjnYpvLJHGZbUCSsSTANs8iANuAEGDMswgMgBFCGGMAhBBgjDEGJHE/WdzPMlcIQIhnMc9knpsBEIAxRgiBAYwBWVwhrrDN/SQBkrifbf4ltnkA2wAgifsZAwHmMklcJonnIgAMYIx4vmwDtm3zAtjmMts8kAFs28ZcYRuwbRuwbZsHsG1bEpdJ4gFs829imxeBsTGAkMRzkiTJNpfZtg3Yts1zMQgAgXgmgwEwz2Ywxjwny0KI5yAASYhnsc0LZpsXzDbPyTaXSZJkm/vZBmzbBgDbgG0usy2J+9nmMts8J9s8gG3bgG1eANuAbduAbUASD2AMIABJiAeyzWW2AduSuJ+xMYB5FmPA2BghhHhO4gqbyyxZAgCBJC4zts1zss0D2LbNsxjAthCAATAYSbxQQjyAkBAyABhjnsk8fwawzWWSJPEsApDE/WzzPCRJsg1gbAO2AduAsTHigSTxnCQhnsUYsCyEuMLYmMskcYXAGGMwL4gQYBvA2OZ+xhjMMwnLPJAAEAjAGMAAGCQQiAeSeP7Mc5LE82PM/WzzggjAmCvE87LN/YSMAWP+JbZ5JgEgrrAxVwhxP9s8gBDPywDGvGCSAEmSeADbtgHbAGCbB5DECyBJEpfZBmzzAJJ4FoHBXCEEYDCAbV4U5vkzGADzgtgGbPP82AYA2zyAJJ6TsW0AAQgBtnkA28YAYNs2gAGEeADbtm3b5grxLEKAMWAbMAZsY55FEs8inklcIcSziCskSQKEANuAJMAYgXguQjwP29zPtm1eKGPM87JtzPOysUEgAAGY52DMZZJsY2zbBgBJgCQhnpPNs9jYBmxjnk1gnsW2bcSz2LbNC2XbNmCbF8o2D2AbsC1JEpfZNuZFZ56DwTyTQQCI5yYABAKBeCaDwdgGMMaAsTEC8QKZZzLPn3kgSZL4t5LEZbZ5gai2JQGSeCBjLMTzMi+IbUm8yIwBIWMM4llsA5IkYWxLAiQBtnkASbwAtgFJPD+2JXGZbUASz5dBSAJs8yzCGCPJNs/DtiRJgG1JPIt5DgLz/BnANiCJ5yIAhBBg2zYghHhBbHOZJJ6HbV40kgDbXGaMASRhnklgEABgWxKXSbIN2AYkcT/bgG1AEiAJsM2LwLYkAIMQAoQA24AkrhCAEADYBiQBtnkWI2TMsxjANmAZEMJIAhCyeF42zyYwEiAJbEvCNveTBNjmOdmWxGW2AQxgjJCEQQDGCAwgifvZBiRhJBkbCwkZ24ARgBDGspAkALBtGyELsA0gAEncz7YQArCMsQ1IAoyFhBC2AUkYyxgEYBuwDUgCLAvZxgCSAGPbXCYJsG0bkAQghGwDtoUQgG0ERsgYYyzJtiTbgBBXCNtcZlsIYVuSMca2EJdZCCwL2QaEEIBtYyEMYFsSGAkM2DyTBGADgLnMIJBBGEASIMk2l0kCjAGEbUmAbSFjQMgYkIS5whhAyDLGSLINSLLNZbYBBGBbEg9gW5JtSVxmWxIgCWyEDWAESMZCxhgAIctYkrEQz2IQtoUQiGcRwkjiMmNJgCTuZxuwzf1sA7YBSYBtSdzPNveTBNgGbAOSbHM/25IwCNuAbUlcJoS5QsiyEAaQhLAN2JbE82NbEveThXgORhLGmMsk2ZbEAxhzmW0hYyFAkm1JAAbxTMI2ANgGJNkGbAOSuJ9trhCAsRBgG0A8F0kABmFbyLaxJNtcYYwlGSMABMYYAwBCAAIwxkjiOQkBGCHANiDEFQLAPJt4Fts8J0mAJO5nm8uEhIwRxkKAEGCbZxHGPIAQYBkQ4jKBeT5s8wCSAGNAFuK5SDyLJNuAbUASgDAGhDAAAhBC2OZFYJvLbPMAtrlMEmCby2xzmW1eECPE/YwBIV4IAyCeD4FBYJ6beDYD2AaEeBZjLInnSwDGQkIAxhghxItAEmBbkm0AkAQAtgFJPCdJgCTANg9gG5AEAFUSl9kGJHGFEAKMMYCxLARgWxLPQxKX2eY52eYKgwBsc5kx4tkERhLPIoS4zDbPyTbPjyTbkmwDgG2eh21JtiXZ5jkZc4UAbHOZMUaSbS6zzQNIsi2JB5DEZbZ5LsaYF0oSL5htnh/bPCfbgCTbgG0ewDb/epJsSwKMuUI8m8AgAElcZhuQZFsS97PNZbYBSTyAJNu8AELGkngWIcQDiefP/MsEYCyEwCAAQAiQxAOJF0Jg7meMABtJtgHANs/DmPvZ5goBYJ5JYBAA5rmZZxMvhBCAwFgW4oHMczAI24Ak24CxECBkDAhxhTGWBEiyDSCELGMQV0jiWYwx97MtCfMstiUBQogrjDHPJgBjAAMY85xs85xscz8h7mcb8SxCxlxhjHkWg3gAgXluAnOFjcRl5nkYIWOekySekyTuZ8z9hLhCYJ7NPItt7ieJF41tSbYl8QC2JWHzTLYknknIWBKAwBgjnoMAJGEeSAhAvBC2eR6SbAOS+JfYlsRlkmxzP9tCCNsIzAMJcYXAAIAQgHgukrhCYIyFEJhnEhhjSTyAbSEMAEjifrYlAYBt7icJI4kHsC1JEg8gyTbiWSQBtnlOkmxLAgCMZSHEFZJs2wYk2UYIAQhAiAewLSRkDGAQmOfPIDAABvFAxhjE85LEcxG2ucw2DyCJyyTxAJIA28aSeE7GAOIKIWMA8xwEBjCWJMm2JF4A25IA29zPWIgrzANJsg1IAiRxhbDNZbYR/x62JXGZJNv8SyTxAJJsc4UAMM9knsWYy2xLAiTZRjw3g7CNQGAk8UDieUkCMM8iiRfKGDAWAowRgDEvMkk8gG1JPCfb/Etsc5ltAJDTxtxPEmAbkATYBmwjMEKWMZIASYBtnh9JgG3ANiAESAKMuZ8kAAMYc5kknodtnpNtQBLPSRJgm+dkm/tJAiQBtrmfJAADGCOEANuAbUAIAdgGAEmAJB7ANiCJKwxgG0AAQoBtAAFIAowBDCAEIADbgJCxEMI2z48kwDb/Eknczzb3k8Rzsg1I4n62AUmAbcA2IAmQBNjmfpIA29xPEmCbyyTZBmwDkgBJgG0eQJJtAIOQBNgW4jJjBAaBAYQAhDHmOQhZ3M+Y+wlxP2PuJwmwzf0kARhjACHLmCsEIARgjDFXCMxlApAA2QZsA5K4n21AEs9iEJJsc5kkzBXG3E8SYBuQhUAAtnkWgbENSOJ+xkKAJNvcT4grjGUM4rkJIdsA5lksCwGSAAxgGSNkG0AAkgDbgG1JPA9jDCAJEOIKAdgGbAOSuJ9trhBCPIsxFkIIAbYBY0ASgHkm8Uw2CECyDQgbBCBJgGWMbUkSNrYlSeJ+trmfAMk2YCNACAHGGIQkwDYPIAkwxkgCbNvmMkmAJNuSMAiMsW0hLjPmMkmSbAO2hRCSAMC2JC6zDdiWxAPYFiAJDIBtQBJIAmxjW5Ik29xPkm1AElcYYyHAmPtJAjDPJp7FNmAbACTxnCRxmW1AEmAbsA1IAiQBtnlOtgFJCAxgGxACJCEwgG0AASCEeE62ASEAAdjmASQBxhhJgG0AI2SMACTZ5n6SANtcIWTxLAJjzP2EEADGGLANSJJkG7ANSAIkAba5TMiY+0myLQmwDdgGJAGSANuAEGAM2EYIARgAAQgBtrmfkDECEOJ+xoBthCxAEoB4INuSANs8J9uSuMw2IAmQZJvnIQmDwDyTAGxzP0mAbcA2IAmQBNjmfpIA2zwn29xPEvezDUgChLjMWBKX2QYk8TxsA7YBSYAkDAKwzf0k8fzYBmwDkgBJgG3uJ4n72eZ+kgDbkgAMgABsAwhZAAZAAMaAbUASIIn7GQthANsAApDEA9gGEJhnE0IYYwwgBCCexTaAACQBxjyLAYQABIBB2AYQQrYB24AkQBL3s839JPGcbHM/SYBtQBL3sw3YBiQBFZCweSAhnpMkrhBCiCtsA0LGPA/b3E+SMc8iMM/BPBfbkviXSOL5sc0DSLINAJJ4ANuAJNs8DyEAg7hCEoB5JoGRxPOwzWW2JWGMMc8ihLDNA5nnQwC2uZ8k/pUk2eY/lCTuJ8m2EM9Jkm0usw1Isg0AtnkA25JsS+J+tnketrlCXGEbMJZkG8AAmOdmnklgAAwCg0EIGXOFwDyTwFxhjAFsI4QAzLMZBAaDwACI52UuE1fYgAFAEs9JCMAgAMyLzhgDYB5Ikm3bkngA25K4wiAA2zyQwAAIIcsYhJAxVxhjBMZYiCsMArAtiSsMYIx4FtuAkDGXSbLNAwghbHOZsRCAeS62JXGZJMC2EM9JiCuEbS4T4grznAQGcYUNCABxmbhCyJhnEph/iW2eySCMZSEeyAgZGwsBtiVhANuSeB62uUJgXhS2hXgu4rlI4jlJwjyQJNsA2OYFEbLNczIGjIUA25IA25J4FvG8JPGvJ4nLJNnm+ZHEZULGGCFjLjMGJGEQmGcyiAeyzXOyzWXGQkIYBAawzbMIDOL5ss0DCPEswjbPyVgWAoEBJPFA5kUlbAO2hbhMEs+PMfeTxAMYCwHGmAcy5gqBAYy5wkgCEJjnZRuwzfOwLYn7SbLNZbZ5QQSAeL4k2eZ+kmxzmW0AsC0JsM1ltiVxP0k8gJCxbUnczxgQEuIy2wBgWxLPjySuEADCNpfZlsS/RBKXSbLNc7INSOIBJNnmMttCAIAx5grzTAIw5jLbkrifbUlcJgQYA4hnMwACsM0V5jkYyzyQeCYBYBCY52AASYAxV4hnEs9mjCXZlmSbB7DNZbYl8e8jyRgAqkEgYfMsxtxPCGEbQDyLbUAIQAghnottHkAIABDPzQCYZxPPxTaXCQGIF8Q2YBuQBEjifpIASYBtHkASl9nmfpK4zLYkAAMgAGMhBCAJsC2J52UADIDACAG2uZ8sAPHcBGCbZxGAbUASz2IQgG3bACCJ+0myzf0kcT/bgCTuZ1uSbe4niedkmysERsiY5yHJNg8gybYk24BtQBKXSeIy2zwn2zwnSYBtAIOwDdhGCNmWBCAA2zyLeTYDGGMQQghj24AQAvNsBrANCAEYwDaAAGwDxhhJ3M8YMOZ+kgAJG9uAJEASYBuwLSQJMOZ+kgBjBAawzf0kYQCEbQADIADbkmwDkgDMs0iyDUiSZIwBJAGSANuAEALzTMaykDFgWxLmCmOEkJBtSQAGsA0YA5IASbZtCxkDkrhMkjEGg5BkW5JtSTyLARAAAhCyLQkQMpYESAJsCyEwCMA2YCwkCbCNuEIIwAbABgNCAAhhIwEIwDYgCbANSOIBbEviCts2YAAkGQsBtgEEgAFsAwjbgCTbgG1JtrmfJNuAJCEAA2AAScZCAOZZbAOSMEKAbQRGCPGCSAIwFtjGkgCDJAwSNmAsCbAtyVgWgAEQtiXZBoxlGSMk2QYk2ZZkG8AgAAwgCbANAJJs25YESOJ+kgDb3E8Sl9nmASTxALYRtoUQtiXZBoQwCAQGsA1Isi3JtiQuM5ZlLAkDALaFAGNJmGcygCQAQAgBCEASYNu2JEAS9zMGJHGZbUk8gLGQbUASxrIQBkBgHsgYQGCMhQAEYAxgjCUBCGOeh22EECAJsA0YS+IyY4QsQBJgmysMAsAAGEAIABAAYIyRxHOSBNjGGHM/SYBtSba5nySeH9tcITCAJNuSeB6SMM8kjCUBtgFJtnl+hHgASTwv8YLY5gEkcYUBMIhnsc1zss3zI4kXjSReRAZAGAsBGMCY52FbEs+PEGAMCPH82AYkYZ6LMQIDSMIgnskAQgAGkATYxlwhiechybYknodtHsA2z0kSANiWJAmwDUgCJAG2hQAgABub5yUkhACEuEyIBzAGjI15ANu2AdtcJgRgANu2Ads8kEAgEFfYts1zMkY8X7Ztc5kkSVxm2zYvgG2ekyRJCMQzCUk8F/G8JPF8CQCBABDGxlwhEM9BPJuxDdjmMtu2eV4CsM0D2OYy27a5zDZg2zYASJLEv5kBjBGIZzKYKyRxhcDYBmxLAiRJ4jLbtm3b5gEkAZIk8QJY5n6ShABJXGZsGzC2zf1sA8bGXGGMMZhnsc0DCAGSJPFAAmGbBxDCABgM4oGEeABJkmwDGIwkrhBXCHGFAIwxmBfGPJNAAMaAbZ6XkARI4n5CgBAGwNjmWQzi2YwxDyDEsxgAkMQDCAFCQrwAxtxPiOchiQcSCCEuEwIk8UAGwNgGjAEExphnEYAxz808gEAIBAKQuJ9tXjjzQOa5CfEs4gpjY64wL5wkQBJXCAABIBCAEC+EAIwBzBXGvFDGYAAwmPsJAQKQxGWSbGOMjRHPYpsrzANJ4n62eRaDAQDbtgHbPA/bvGC2Ads8J9u2AcA2gAGMAQQgicuEMFdY5gFsA7a5whgDxlxmW4j7GSOeSSCemwCMMZhnkcTzsM39jHlOtrnCGGNsG3OZJO5nGwNgnk08BwEYI2xjMJhnMZYkBEjiWYwk7icEAEJcIZ7Ftm3ANgLx3AQGsG2b+wlxP2NJkgDAtm0uk8QLIInnYq6wDdi2zf0kIQCEEAIQ4n6SAEmSuJ9tnpd4vmwbYzAA5grbPF/medkGJPEisG2b58c2/zYCYQwYGwOAJEk8D9u2eS7iORgMgAGEEIAknotAGAOYK2zzAMbGCACBeCbxbAaDeBbbtnkA27a5TJIkQJJtnodtAJDE82PbNlcYoArMcxMCbCMwAEIIwDyLJMC2EM+PbR5AyBhjzHMRgG0AEDLmhbLNZZJ4fiQBtgHbgCRAEs9JEgDY5lmEEGAbgXk2gUEAQlxmbAxgrpDEcxEYSQBgm/sJAcZCgLEQAgPYBox5wWwDkrifbUASz8k2ANiWxP1s85wk8fzY5jJJXGYbEDKWBAgBxjyLAQAhYx5AEpfZBmwDkngekmxzP0mAbR7AWBIgiedkG7ANSOJZhG0hBALAAMYYBMYyYIyRBCCEjIUwzyYwgG0AIQkQwiAAzLMIAUIAIGEbEMIgANuAJAABYCRxmW3ANoDAXCEJwAAYQBKAAGwDtgFJgBBgG5DE/SRxP0kYIYwxgMAgANuAZYwkLjMWwhgDkmxLAiQBtgHbAEIIAxgL2QaEjLlMiGcxQghj2wghwDZgGyEJsA0IAZIAjLFtQBJgjEEAxkKWMcaAJMAAIAAJkDEGDEiSjQRYArC5QrIN2EhIss39JGEDSEI2ErYBAyDJNg9gLCQJY4wBjCXxnCRxmW1JgJCxJMC2JAyAQQCSMMaSbAvZBiRJwiAwxkIIQBbCNmAbkMT9bAPGgCTbgCSQhLEsBIAAbAO2JQFCCNuAsSRAkjEghMBIss1lkmwDkrifbUm2AcA2IMk2IMm2JNuSbHOZbUCSbcC2JEm2bUviOdkGJBlLAmxLwhhL4jIhYwCDsA1Isg1Ism1ZyDJGEgaBQQC2JWEQgG0MApDEZUKAMUYIsC0Jg3gmg7ANSLJtLEmSbcA2IMkyBrANSBIylgRgAIRtQBICsA0AkgDbloVs8/wIAYAkwBgQQjyTAGwLAcZCxoAkDMIYsM3zJZ6LJC4zBoQASTyAbUASAEiyzf0k2QZsS+J+tgFJCAxgG5AESLKNQGAsc5kkwLYkLpME2AZs8wDGXCaEsM3zMs9knottQBL3M+Z+QgAgCQAk8ZxsA5IA24Ak7icJsA3Y5jnZ5n6SuJ8x9xMCbAO2AUkYIWMhwJgXTBL3swwIAbYBWVxmLISwLYkXwDb3k8TzY4xBCGEADIAwFkLYBmwDkgBJgG3uJ4nnZJv7SeJ+trmfJJ6LQQgBFUBgnoMAMJhnMsaSEABGEpdJ4gWQxLMIDAIjhHghjBGYK2zznGzzL7HN/SQBtiXZ5vmxzQMZxDOZ52AADIDAPJMBEBjANoBBAMYYwLYknovASOIyIQxgzGXGPICQMQDY5vmRxP1s85wk8a9hW5JtHsA2l0niMiHuZ4xBYB7INg9gG5AESLItiedkW5JtHkASz48kXgAhYyEAg7hCCIEBhIyNhYQsAwgMIMQD2AaMJWGuEDKWBNgW4lnEi0KSbQCwjXhuBsAgAATmmQwACGEQxoAkAIMAbPMAtiUZA5KMMYhnMohnE7YBIcsAwpj7CSGeRchYiPtJ4jLbPA9jIWPAWJJtQMhYiGcxz80gbPMAxpgHsg0IcYW4Qsgy9zMWsoyRxDOZ+9mAEc8kAUiAAZsHsM0zGcRzsi2uMAhsc5kRQoAk25J4HkKWMUK8YJJ4fmwLAQgAsC3EZZIwQsY8kMAgnsU295PEZZJsAwBGEiDJNgC2QTyQbZ6TMfeTxP2EuMJcIcm2JEASAEiyDUgCJNnmfrYlcT/bgG3uJ8k2LxrbkgBAkm2eRQDGGACQxP0k8Zwk2UZgnkkAiGexLYRBPJNBYAAEYIxBPIttQBbPjxDPIjCSbAOyjAFJXCEwz8FI4n62uUySba4wCEm2bUviAWxL4oUwCMBYCDDmWcSzSOIKgXkmYZvLbEvifra5zJjnIck2DyCJ+9nmfra5nySekyTbgJBtAPNMBgHY5gGEMIgrJHGZJNsABmGbKwxCyNhYiGcRz8FI4jJJPItBPC9JPCfbgCQuk8QLJon72eYFEwKMAcyzSAIAhG3AWBIGwCAADOKFMOZZBGAM2JbECyIwknguAgMAtgEMgDHmCiFkDNjmfpJ4ASRxmW3uJ4kXjW0usy0JQADVWIAE2LbNZZK4zDYgictsA0KI52YAYy6TZJsHErKQuUKAwBgM4oGEEFfY5n6SANs8kDEGJHE/2zwP25J4fmxzP0k8J9uAJJ6XsM2zGADz3MxzkcSzGMCYBxDiMmNAkm2uEEIAYJvnJIn72QZs8/xI4jnZBiTxPGxL4n62AUmAJMBYiMtsA5YBWQACMMZI4vmxzWWSuMw2l9mWxP0k8Zwk2ZYESAIwxpIAYy4TAgAEgABsAwjAGJAEIIRs8ywCc4VtHkgYYzCSbAOSAEk8iwEwL4wRMgYsYyQBkgDbXCbEFeZZJBnLAoRsIwBjIctCtgHbgCTAtm1JAEKWMQYBSLKNeBZjIctCloVsAxiEJO5nGwCMJWGEAGPANgIDIABZgDFgLGRbyBiQhBECbANCgDFgW5JtwDYgCcAAtoWEjI2FjAEEgABsSwJsA4AxIAkAgbGRBOZ+FhgJQAIM2NgAErYBMACSANuSbHOFjQCBABAYsJHEA9jmMklcIWwDgBBXCMC2JK4wCNuAsRBgbFvIWAgB2BYyloTAIGxzmW1JAEYSD2SMuZ8kHsA2DyDJNiAJg3gmc4VtSYAsYy6TxBXCtiSMMQYhybYkQBJgG7ANSOIy25Jsc5kkQJJtwLYk24AkLpNkmwewDUjiOUniMkm2AWMhSbZtSwIkAba5nySuMAjAtiQukwTYxiCuMJZlLMk2gMBgEM9BAJJsG8viMmNJCGPbQoAQANiWhLAtCTCWxHMRAAYhi2cRgDGX2eYy2wBgG5DEc5LEA8hCIADbgBAGEDIGMIAkY0m2eS4G8Vxs8/zYBiTxPCTZBiQBkgDbgG1JtrmfJEASxrIQArAtCWPMZcaAEOIK24AkQMhYCPNAkrifMQZAyAKEAEAIAyCezQBCXGaMsA0IAYjnyzaXSQIASQAgiedkm/tJ4n62ecFscz9JPIsBEM9iDAjZ5lnM87LN/SQBtgFJPIu5wjYvgBDi+RO2eU62AUmAJADzLJJ4TrYBSVxmG5DEA0jiX8M2DyQCsLFtmwewzWWSJAGAbQAw5l9imytsABsbAQKBQAAGMLbNAxnMfwhJPA9JPA9JkhAYAINBAJIkAYhnMoBt24Ax5tkEAoF4DgawbZsXwgDGkgAhSYAkAIGxbds2l9nmRSNJEpfZtg3Y5jJJkngASYAkSVwmCZAkCZAE2MbY5gGEhBAIDCAkicsk8QLY5gEkSQIASTwnSZIASTyQkIQBMBjANgLxQJIA2zwn27YBAIEQQtjmCoN5FiEusy2J+9m2DWCeSSCuMAaMjTGYK4QQQpIwAAbzHAzmCkmSACGuEIhnMQaMuUxIEg9gG7BtjEA8m3g+jDHGtiSeh20ukyQJQNg25lnMsxljnsVcYSwJASBsGwOAsTFgzGWSuJ8xIIkXRDyTsQ3Y5nnYXGb+RTa2uJ9ksMQDmGeyzbNIIO4nAQCSMM9LEpfZts39jDFX2AZsAxjANi+YZV4I8YIIcYV4ISTxALYlSeKBzLNI4rmIZ7EN2OYFs81zsm2byyQBkngA25IASZL4l9jmBbDNFeaFsA1I4lnEcxO2bfNcDAAY8ywC8aIwBoy5nzFgGWEM2MYAtrnMNs/FYJ5JIADECyJJEvezzQtmGwFgMADGGEAAkhAPZJsXjSTEM5krbANCgCQeQBIgCbAN2OZ+kgBJPCfbxhiMbduAMfczFhJCPIskSYAkY4wxz8m2bS6TBEgSQkgCEA9kbMwDCYQxgLnCmPtJ4gWwzXOybZsHkCSJ/wwCkCSJ+9lGIBCIK2zb5oWybRuwzRXiX8W2bZ4fSYAk27Z5oSRJAgDbXGabB7BtmxeZJEm2AWPb1bYk7mcbkARI4jLbkgDbPBeDMAYAIQyAeA42EmBAYANCPIsNIAGyAAuweA5CPC8DCAHGAAYhiRdKEgDYBiRxmRCAQQCAJB7AmCsMAjDmCiMJsAwIGWMAWYAxBvEsthGAEAawDAgBGCEEYBmDEDLmOUnifrYBSbxobHM/SVxm2zaXSbLNAwghAGOMMc9JEs9iAASAeDYjBBjblsTzkMQD2LYtyTb3k8Rzss0VQhLPYp7FMiAE2OYy25K4n23uJwmwjAFsSwIkcT/bPIAk2zyLeTaBuUKSsSyeRdiWJITAABjLgCTA2BgDCAEIwDYPIGQM2AYkAUIAAjDmfpJsA4AkQBJgW5JtwDYgictsSwJsCyGMbUuyDdgGJHE/yxghhCTuZ1sSDyBkWwiwLGQMGGMkAQiMbUASYJv7CQG2ASHAMiBkGyEkBNgGjCXZlgS2sQ1IMpYBBNgGJEk8kwDbtpGwASSBJWzzTOLZbAOSQBIAxjZXCIwQwrYx95MESAJsA7YBhCwEYJtnMYAxBgEgMABGkm1JAAKDwCAADMI2IIn72ZYE2LYtCYGRZJvLbEuyLQljLMm2JNuSuEwSYIwBMAhJgDHGMkYSYCwEYIyFLMsyBjCSuMw2YJvLJNkGbEsCAEkAIInLJHGZJMA2YBuQxHOyLYn72eYy2zyQAGwDkrifbUASYFsSBgHYBoQABMbYthCAAYwBBGAbkARIAowBDCCJBxDifsZCljGSbBsLGQPGsowRkmwDkmxL4vkSz8EIIWxzP0mAbcA2z0kSz2KEjAEhAHOFsRDCtpCxJAADIK6wDUjiMttcJgmwLYQBEBhAEgYQwgAYxBWSbEuybVuSbUm2JQG2JdnmeRgDgG0hwBgBYAAhAGGMASRxhQCMucw295MEAJIAQBL3EwKM+ZfY5n6SAEm2JXE/29xPkm1JgG2ek23uJwmwzf0k8e8jhAAA24Bt7icJsM0LJonnZJv7CSFsA0IAArDNFUIWgHgukgDbgCRAEs9JEsZYCAMgANtcJokHkATY5vmxzWWSuMy2JEmAbS6zLQmoknhOkngA24Btni8BYADAGPEskmwjYZ7J5jmZ+0lcIQNCIJ7JAGCMeS7GgBCAeSaDAGzz/NgGJAEIzHMQgG0ExlgSgHk2AQgZCxlzmW0EBgFgnoN4PgxgGwEIIa4wBoSMMQDGmAeQZJsXhcC8KGzzALa5zLYk24AsY8CYB7ANSOJFYwwAtnnR2OYy25JsA5J4FoEBMAgAgUEAxgAGMOZ+QoBtSVwmCbDN/YSMhRAA4grbPA/bXGEQDyRkLIQAhIyFjBFCknguQoh/kcA8k7EMAEKAsRACg7HM/SQBkmwDtiVhjAHbACCJB5BkWxJgLMRltgFAEmAsxGVCCMyLQpJtIYxlHsC2JCFjIQCDeCDbkrhCPJAk2whjnodtSWBJACAEBswD2AASL4B5YSTZBsA2knggAxgLITDPYlsSl0myzbOI50NgAMQVQlwhAEk8kEE8k7DNA0jCABgEABgLcZkk7mcbwDyLJEAS97PN82ObKwwCMAaMhRAYBGAZAyAAwDb3k8QLYFuSJO5nW5Ik29xPkm2ehyQAkGSby2zzXAwCgblCkm2ek21ACEA8B4FBYK4w5goDCBnzryFkDABCljGSbPMs5oEk2eZZDOKBJPE8jDHPIokHkMQLIQAMYAwgnsW2EGBbEs8inkUSl0myzf1sc4VBCPFAQsgYAIyFANvcTxL3sw3YlsRlknjBJGGuEAIQgLGQbe5nm+dHkm1JXCbJNpdJAjBXGAOIKyTZ5n7GQlwmyTZCCJBkG7Aticsk8Zxs868hiX8Vg3gm8WzmuUjiediWBEiyDQC2AUmAbe4nicsk2ea5GEAIMMYgANs8gCSekyTbPBcDCAGI52UbsC2JF5ltSYAkwDb3k8QzUUESgG1AEiAJsC2JB5DEFcY2IIR4IElcZtu2JAzifub5kgABYC4TgDCIF4UAMM+XbSFJgG1AEs9iJNnmfkKAMQbx3AyAABBCtoW4QmAQGGMAAyAwzyQA25K4zDYgBEgCbHM/Y8A295MESAJscz/bgCReEGEbkMRzksRzsg1I4gFsCwGWAduAJJ4vAyCMhbifMZcJYQAEIInnZJvLJNkGbAOSuMy2JJ6LeS6yELYB24AknsU8k8DYlgQgMAjMMxkhBIAAMAjMs0gCbAMYQAhjWcgygBFCAMZcZiwJQAC2ERhAEmAZwABCXCGMMRhJmGexjDEWEjIWAjCAMcYYkMSzCIwkwDZgDEgCJHE/24Ak25IA2whjjCRAkm1ZxpIASRjLAELINiAJkATYlmQbkGRbkjFGSJJtSQBGyFjIMmAMSAIAYyGMJAABALYl2ZZkjBASsg1IAiTxLDZgsAQIsJEA25JsA5awuUISYHM/SdjiMsm2kG1JAOaZjDEASEJgJNmWZFsS97MNSLItxBVCiPsZI4R4AGMAIYTBIDCAJK4QV9iWJAmwDQgBtgHLQrYlAbYB25IABObZBEYSYBuDuMI2gBCyzWW2ASFjwLYkY0ASgMBYFrItictsA5IABMY2IAmwDUgCbEviMkmAbcC2JC6TxGWSeMFsSwJscz9JAEYSLxohjDEgyRgQMpYECBkLAbKMhXgAIQABYADEAxkDQoBtSQjbkmzznIQQtiXxLMI2IAkAbAMIDEIWAvMskgDbkiTxnGxzP0m8YLYBIcsYIQAQQjyTeE7mCoN4JgMIGfMAkgAMYJvnRxL3s81ltiXxQAYB2OZ+QgjbQjwnYy6zzf0k8TwkcZkkQIjLbHOZLJ5FAJKMhQBjBMZYEmAsicsk8QC2JXGZbUmAbe4niX+JJMA295PE/WwDknggAWAQAOa52AYkAYjnJYn7SbLNCyaJF8yY+wnx/EiyDSAASTwPIcCYK8wVkrifbf6jSQIwiOD5sW0bsM2/yACYB7LNZbYRzyaezcbmWSSDAQxgY4N4wYS4n23bvACSEM/Ltm3ANoB5JgEgELYB27YBAIF4PgQCQNjmMmMEAkA8k8EAtrlMkiTbgG3bPA9JkiRJsg3Yts2LQJIkDOZFIQmQBNgGJAGSEMYIIUCSJB7ANleYK4x5LgYDGCMQ/yLbACBJEveTxL/IIABJgJAkrhAAAiGEkSSJy4QAIUlcZmzMAwkA8Sy2bXOFQCAQz2YAY8AYACRJ4oEE5oGEMM8mEADmCttcZhkBIJ6DAYyNEQhAEg8gJIkrBOIK24Bt24Bt7ieJBxCSxHOSxP2MMQDGtiTuZ9s2YFsSl0kChLjCSAIAY2PAshAgJMT9hACEsTHPSRIgxP0k8QIJSSAukwwGwLYkQCCJK2weQBKAhM0DSOIK8UxCSIjnJAmQxP1scz9JtrnCPAfzApkXRAjzXGxzP2OuMFfYBgDbkrhMiAcygG0eQAgAJAkBkrhMEi+AbZ7FGAO2uZ8kAMAAgCTuJ4l/JUm8UJJ4TpL4txFX2MYAtiVxPyGuEAjEi8g2z8M295PEswjEcxECAEmIK2xzhQEwxra5nyQuk8QLJQkAbNvmfkI8kAAQCEASzyIeyLbNM4lnE5KMAQADALa5zJjnRxIvgG3bPIuwbZv7SUIACMSz2OYBhIQkSQIkcT9J3E8SBnOFMVcYY2PAGBCyjTE2RgAIwJh/iW3ANmDbNi8C24Bt2/wbGADxwggA8dzMA9m2zQPYts3zsG2bF8K8ILa5wgC2eR7GxlxhnsW2bS6TJEmSJC6zbRuwzQtl27Zt2zyAbdsIoAJgACRxhW3ANiAJkATYRmAAWQACwLxQRsI2yABIgG3uJwkwADZgSVxmA0iAADAIc4WQMfeTxP2MMUKIK2zzfBlAiMuMjSVhAMC2JAABYJ4vIcCYy2wDAAJAABjANveTxAPY5jJJPCdJgG0usw0AkgDbgCQeyEgCbHOFEAJsA5IASdzPNpdJsi2J+0myLYQAEEI8gG1AEoB5FiHANgBI4gEkcT/bPIAkLrMNSAIkAbYBSYAkwDZXCEkYBIBBGAMYIQRgGZCFwADGPIsAMJJsA7YBSQACwADGgCSEbcA2IAmQBNhGCAGYZ7GMuUISz2IQGMC2JARgGzAWQgDGQgiMbSEERhKAwAgBCCFjDAJAYCQBQsZcJon72QaEjCXZlgTYBmxLkgTY5n6SuMzYNoAQQgC2AWOMJC6TZBuwDUjiMkkAYIyRhJEEIDDGGARgLAkAMIgrbAPGQtxPElcYYyHuJwmwLck2kmwQsgAB4jLbPIAkbIMk25K4nyRAXCYZsEESYCTANkIWlxlLAmxLAgAM4grbAAYhZCwJAyCeyQCSAAziCtuAbUlcIWwDiCtsS8IAkgDbAAZhzGW2hWwLIWwDkgBAkm1JtrnMNiDJthDiWSRxmSRAEmBbEuYKScZCxpIADCDJtrEk24AkHsC2JECSbUlcJgkwFpIE2AZsA7YBSYAkHsC2JO4nifvZlmRbEgBIwtjmfpIA29xPEmBbEg9gW5Jt7ifJthDiucjCIIyFMADigSTZFgIsYwBJtiUBtiXZ5lmEbUASYBvAIJ7JPJvAPIsk24BtAIF5Fkk8D9uSeE5CAOa5SOJ+lrlMCAMgnoskrjAIAAPYBjCAJNuAkDH3k8RltrlMEiAJsM0D2JbEc5JkGwFIAmwDtrlCYJ5FCEDYBiQBGElcZsxlQtzPNg8kMMZcIQBJgG0EYCyJ+9mWJAmwDQC2AcA2IAmQxAtlWxIvgG0uk8S/niTAMuYKSVwhhADb3E8SYJv7SeIK87wk8SwGwDyLMSCJ+9kGbAOSAMC2JMA2z8k2IIkXTBJgG7DN87AtCbDNv8hYrtxPPDdJ3M82V5hnEs8mMFfY5jLbkrjCBsT9bEAAGADb3E8AGAS2ucxG4jIBCMwLJ4S4wjb3k8QVAgMYS+KBjDH3kwQgjDEviDGAwEji+RIYSTw/knhOkmzzgkniMknczzYgCfFAkrifJO5nG5DEA9iWZJvLbAOSbPNABvECGQTmgWzzorHN/STxLEbImMtsAwgMgEEgMAgEIGQbMBYyxjyTQWAQz2YAY8wLI57JICTZ5jnZBjCIZ7EtScgYAGwDknh+bHOZbQAB2AaMeRYhZBmDeCbxLEKWeSCDeA4GQAAIDEIIkMTzY5sHsA1IwjyTsSwEIDBX2JYE2AYASYBtSTyAkLFtSTwX8Sy2JWEADMI2VxjEczNXGAvxnGwD2EgYEBgDRsLmudjcTxLPwwCIZzEIxLOY58u2JAyAQdjm+RKYZzIPZFnIGPP8CcwDGfMvkYQR4vmxDdjmfpJsc5mxEIDAPIttSTyQkGWMkQQIcZkk24AkXjBJPD+2EUI8J0k8J9uSuJ8knodt7ieJyyQBCMwLIgnASOIBbEsCJNkGJNkGjIW4wjyTeBbbQjyLeRZJAOa52JYE2Bbifra5n20AA2AAYx5AyNi2JMA2L4AkALDNc7LNAwgZYwBjSdzPtiQAEAKMjYUA21xmW5IkrjAABoHASDLGPBdJPCfbACAJAGzzAJJsA7YlcT8h2wAGsA0AGCEuk2UMGAsZC9nmMtuSEABgm/sZcz9JgG0AwDyTuEKSbS6zLYnnJAmwzWW2JXE/SdzPNiCJ+9nmfpK4n22ek21eCIPAPAdjWcgYEEJgns08izEPJJ7NIJ6DeEFs8ywCAwBCvABCXGYbsM1zERhJtvnXkMRzksQLJsk29zPGVAAEGDASDySJy2wDtgFJAOLZDOKBbPMsxoANCAAkAAnA5n4CwFxmm2eSxP1swABClrEQgABsCxlzPyHEA0kCMIAxIAlAALZ5TpIASYBtwDYgiedHCHGFbR7IAEIA4grb3E8SYJsHkMQLIAmQxP1s85yMMZK4n21eZJJs8wCSAIxthJBtBCAJwAC2ucJI4n62AUmAJMAYEOJ+tgFJ3E8SIAmwDQBCxjyLeS6WuUzINvczBjAA4pkEBrANSAIQGNu8IEYIQAC2eU62eX4kcZkk2zwX8UC2uUwIkATY5jlJ4jIhxDMJDMIYwEjiCvNMBiEEGNtGyLIsC0A8i23ANiAJsM0VRpJtBGAbsA1I4lnMs0gCbHM/SbYl8ZxsA5IABGAbkATY5vmxDdgGJAG2JdlGyAJsc5mxEELI2DYgCbAtyRiDjYQNyEZCGNkGxGUSgA1IArANGIQRGANYFrKNEAJsc5mQbQABYJ7FNlcYQBZCiMssAxhAyBiDEAIwV9iWBNiWhAEQtiUZA7IAScaAbSFJto0lScIgMAjbCEDIGLAtyTYgSZJtSbYBSZaFuJ9tQJJtSYAkAIPAXCGEMMYYS8IgANu2JUmyjUEIIZ5FEmCbKwzCNpdJAmzzALYl2ZZkG5Bkm/tJ4jlJsg3YlgRI4n62uUwSgLnCNiDJNiCJ+0kCbHM/25J4ANuSMEIAAmMMAEJC3M9YlmUh24Ak24AkDEIIsG0syTaX2QYk8ZwkYQBJPIBtQBLmWWxL4vmxDUgChAAMYMzzsC3JNpdJ4lkMYMxltiUZ8yxGEsK2kDH3EzIWAhDPy7YknpMkHsC2JAADYABjrhBCCFk8D2MhY56TbUk8kMA8L0lcZhsQAiRxP9s8J9uAJO5nm/tJ4n62+ZdIAmwDtgFJ3M82IIkXxCCezSAA25IAxItIkrExIIS4whgjBBhzhQAwz0sIYSxkjLlCCAEAQoAQYMz9JPFAwrYkXmSSAEmAbZ6TJF4kVDDPQTyAbUncT5JtXgSSADDIgA0g8VxsAIMAkLCRAGwuk8RzMFcYQAhAABghnpd5PsRzsc1zEZgrbHM/STyLeT6MMQ8gyZjLjCXZ5jJJtrnMNv8SSbYlcT/b3E+SbduSbPOC2ZbEA9jmRSeuMAaEeL7Es0iyLcnYWIgXQBIvmCTbGMtcZluSkDEPIMsYMAaMMZKEjBHPZp5NCHGFASQBxpjnIDBXGGOukATYliTJtm1JtgFJtnkASbb5l0gChHgA25KEjI2FjAEhAPNMBoEBbEvCGAshAAziucjiuRghYyHAtiQhYwABIJ6LJK4wz5ck2zyAbUk8kMA8i20eQJJtHsCYB5DE/WwDmCskGWOEeAABEvezjXj+DJgHsnkWA+Y5GEAAGMsABoFBABhjxL9AYCwL8cIZBOZZJHE/29xPEiBkzGXGPIsAEJhnEhgEgHgukgBJPCdJtnkekrifbUk8kLAthLDNFeYK2zxfBoFBXGGbBxCyzf1s84LZ5vmxLYn7SbLNi048kwFsc4VBvCCSeB62ASGuEBhAiPsZY64QAiTxXIQQVwjMA0ni+bEtBNiWhMBgJPH82OYBJNkGJHGZJNuYK4S4TJJt7mebyyTxLAYBCHE/2zwn29xPyJjLjDGWEUI8gG1Akm0eQJJtnpNtSQgMwjaXSQIAIcQzCQwgicsk2eZ+tgHbCACDEDK2LYS4QhLPjzHmCkncz7YkLrMticskAYAkALDNc7INSOIBJNnmMtuSAECSbUCSbR7ANpfZlgQACNuYK4QQL4xBXGEsBNjm+TLPh3nhhADMs4lnE8+feTbxLMZC3E+SbV4w2/x7mAqAeKFsA5JsS+IBbAOSeE62ARswl0kCkHgWG8AGQFwhYXM/SYAkg21JXGEABGAZwACyuEJgAAQgicts2wYkAQiMJMA295MEYBC2AQwgCTAGMAACwAAIAANgAAQgCcA8i20eQJJtXhBjGfMskngA29zPNpfZ5jJJvAC2JfGcJAG2AduAJACwbZsrhBAGQBhjAIQQ9xMCLAMYSbaFeCADGANCXCFsAxiEJO5nGzDGXCEJgxBCABiEMWAbEEJIwiCELPMsBsAAkgBJ3M82gHk2g7ANCAGY5yIJsM1ltiVxmSQusw1IkgTYtg1I4jlJAoQQtgHbgBDGmMuMJQEIjG1AEoB5NgMIAZYxQhhjAPF82QYwQpYBIQxCyDIACHGZbUASIAnAABhAkm3uJ8m2JNuAJMBYljFCCHGFbcC2JNuSAEmAbduSMIBtQBL3sw1IwiAAY0ASRhIAlkECzGU2EgawhC0JMBI2wkaADIBtQAjxTLYQkm1jSZJsW8ZIAmxLAjCWMUKAJAzGshACELINIABjIa4QmCssY2xLwjyQJNtcYQBJCACwLQkjydg2IAQYAwjAtiRj7icEYBCAJK4wxrYlAbYlARiEbcC2JCFjDMK2JNuSAIwkwDbPyxhzP9tCCAzGsiwEBsAgACEAA1jGPJAkLpNkm/tJss1ltgFJtiXxALYl8ULZlgQAxgBgGyEkybaxJJ6TJNsAIAmwDWAAxLMIAcaAEIBBYAAhY0mYZxJX2JYEYCRhAEnGknhOto1lWcYIARghBGDMZUKAMYABJAEI24AsBIDAAAgMQhZgbFsSYBuwDUiyLQkALAsBxoBtIWNAEvezDQhxmRDPIgAMwrYkLpNk27YkQBIvlG1JCIwk29xPEmCMATBCCAAD2EYIYRC2ucIIIQAMIAmDeSbx/JlnkQTY5jLb3M+2JB7ANiCJF8w2IIkHsM39JAGSANuSeB62eRbxTOIKSYBtxPMnnkWI5yUA24AsAPEstgFJ3E8S97MNSAIwD2QbkMRlxoAQlxnb5gGEuMIYSwIk8fxIAmzznGwDknhOtgFJAAKQBdhGBPeTkHgukmxzmW3+9QRCknguNg9gG7BtLAmQJAkAbGMDtsVlAgEgAMwzCcsIAAEYGwOAMc/FALZt80AGA2AkAQgEgHg28UwCYQwYG0tCXGHbNmCb58c2zyKEAAxg2xgDCAGAbf5NbNvmMkmSuJ9t2wBgm+dhmwcyAAIBYJ7JPAcDYDCAbSFeCIFAAJIAy9zPtm0ukyQJkAQgnoOwDQBCQgghAGHbGIO5wtgYMOZ5iSuEMICxbR5AEv8S24Bt27zIJEniMmPbACBJEg8gJGQMAMYA4gpJ3M/YmBdOPIttHsCyEFcIwBiDeQ7iuQkAgQAkcT/bgG0hnsUYA5hnsc1zss1zsi2J+9nmASQBCMCYZxHPJgDzHCQBAkk8k40ESCDuJ0kSV4jLhAAQDyQkifvZFgKEJPGchAAMYJvnZMy/hm2eRQjxvMSzCPE8hGzzgtkGMM9imweQZJsXzDZgmweQxP0kIQDE8ycQQlwhAMQVxgDCGPOvZZsHsM2/kiQMxjYGsC0kiyvE82WbZzGYZxLPJJ6XsW0EgEAYA7a5QlxhG7BtzBUCYQzY5nkZBIBAPJAxDySeSUgCELZ5IIF5NiFk2ZjLbAMARpIkLrMNAEIA4gohQEgIQAAYISGuEIjnZRuwbZvLJEkCANu2bdvmfpJ4ANu2AUCSJC6zbYx5DgZAGAMYDOIK2zyAsTFXCCEuM+Z+kiQBQgAGA2CusG0bAGzbBmxzP9tcZhuwzfOwzWW2eQFsA7ZtA7Z5TsaAJEASz0nItm0A8x9DGBtzmSRJvABCQhjMA9nmMttcJiTEZbYxz8EYA4AkSYAk27Z5kUmSxAtnMMbGCKCCwDYPJMm2JO5nG5AESMLYBiRxP9tcJgkABIAEgAQYAGwAWwiJy2xLwiAkcZltwDYgLpMElgBjIcyzGPNA4jmYF0IS97MtZAwAknheAkAAGABjLAlACNkGbPOC2eZ+kgBjQAhjDCAAY54fSYBtwDYgicts8wJIAmwDtgFJgG3ANiCJ52QbkARgAGNJXGGeSUjiWQyAAAAhY8AYEOL5sQ0I8YJJAiRhjBGyELYBDCDE/YwBY4wknpMxz8UgMIAQgABsA5K4QhhLss1zsg1I4jLbkrifJO5nmxdAkm3ANiAJkGTbGJAECNkWAmwDCAAB2JZkG7AtCQHI4lkE5grbAAKQxf0sCyGEjIVscz9jIQwgZMxltrlCCAG2uZ9tAIMAJNkGbANCiCtsA7a5zLYkwLYk29zPNveTBNgGJAGSANuAbUmSANuAAMk2YFsgCbCNJIMA2yABlgQYYwxCEgZhsAFJAMaAJAAjictsA7Yl2ZYEYIwB21xhAEk8gCTbtiUhAFmIK2wDQhgEIMk2YFsSlwlZBjAIISEAAWAkYYRsGwNCgDEAGAsBxkLGGGNJtoUADICwLYnnZFsSYFsIsG0MAJJsS7IN2EYIYWxLMgYk2eZZBGCMASTZBiQBtm1LMgaEjCVxmW1JPCdJgG3bkgBJgG3bgCTbkgBAEvezDUiyzWWSAGMhAAMYIzCAEABIsg1I4n62AUkIDCCEwCCMMQiMJAAD2AaEJNkGbANCxpJsSwIADAIjZCyEsM1ltiXZlgQAkgBAEs/FPJvACHGZsSSexRgL2eYyIQABYBC2AUm2hRAAYMxltiXx/AgZAxghBAZhm/tJ4jnZxiAASRjEs9gGbAOSACHbkjDGgG1AEiAJsA0AmGcyAOJ5GQsBgCSuEADmWYQQGABjLIQQAhAABoHBIDCAJNu2JUmybVuSbUnczzbPSRJgG7ANSOL5sQ1Isg0AtnkeQghAkm0uk2QsC8AAiOdPGGMAIQCBsYwBEBiEEIB4LpIADGBbkm2uEFcIAZIADGAbQFxhm8sk8YKYB5LEc5LECyaJ52Sb+0ni+ZEEVMDmudgGbHM/Sba5zJgXyjYAIPFcbK6wAWMQIEDiMtuAJEDCRpKxjcA2EjaXGQMYAAEYCwGSbPMsBsAgANu8YEI8izGWhDEW4gWQxP1sA5JsS7INSOKFss0VxjL3sy2JB7ANSOJ+kmxLAmxLAiRxP9u8AJL41zMGANtcIQDbgBDPIgDbkgBjDAIDIDDPwRjzPCTZ5gqBMRYCjAGMMeaZBGAbEDLmMkkABmGb+0nifrYBIYyQMQIQMpYEGAsZYwBjHkCSbUk8gCSeh21JvGC2JdmWBNiWxP2EMAgAgUFIss1ltrnMNg9gG5CEQTyTwCCeyQAIQJJtDMI2lxnzQMZYiBfEWMY8kCTbCAABSLItCbAtxANIAmxL4n62JdnmASTxnGxLss3zsM1lBmzAXCYBBgAbhEECc4VtEOL5MAAYgXkuBmGb52RbkjEG8VyMhYx5QcQzmWcSz0sS9zPmWQzimQzieQnxnIS4nzHPl7hCEs9DEpcJGfP82OZZDMIYsM39JNkGJHGFeS62JfGcjCVxP0k8gG1J3E8Sz0kSL4Ak2zw/tgFjIYRtSQBCCEBgAEm2uZ9tSTyAsRDPxTyQbUk8XwIwBmwjHsgYMBYCMADCNmBbEs8iXhgBWBYCbAO2ucy2JCFjHkjY5n6SeE7GPCfbkmzzQMI2z0UAiGexLYnnIgBJtgGMJO5nzAMYA7YlYQBJXCbJNs+XwBgDmCtsSwJs8wCSuJ8xRpIxgACEAEAIQDyLsSSekyTuJ4n72QYA25L415NkWxIPYJsXTJJt7meMMcYgnsU2z8k2zyIwAALzTAbxHASAeQ4CkMUDmRdIPItt7mebKwyAeC7GQgDmudgGJPEfjCpjgTEGJHE/24AkLpPEFeZfJAmwAYN4TrYBBEYASAJs8wC2QRK2hYwtAGwQWBJGCGEM2AYQACCJy2wDGEAIMOZ+kgDbgBCAADDPZgAhY0kABjAGhLifMQ8gybYkHsA295PE/WwDCECIB7AtiefHNgBIsg1I4jnZ5n6SAIyxJO5nG7ANSLLNC2CbK4QQRhJgDCAABGAshAEkAcaAMUYSVwjbCIwkY8A2IIn72QaEELYBIcA2L4TA2AYQgBBgjEFgJAEIwDaAeRbLQggAELINYIy5TBKAMZbEZZJ4ANtcJsk295PEi0CSbUASYBsQAiQBCFkIY2NJtgHb3E8SIGRbElcIDALAGGOukARgELYBIduSMICxJO5nWxICYxswFuIyy0IYwDYgCcBIAgDbgCRJtgFJgG1JkgDbgCTuZ1sSIMk2YBuQBCAwQsaSMMbcTxJgG8AACMAYIwmwwGCDEIBtSbYBDICQhTC2Lck2z2buJwTYlmQM2OYy25IADGCMkWQMAJIA25K4zBiQBGAQz80gAARgm8sk2QZs8wCSbAthLGMAIQABCAEYxBVCXGYMGHOZEAZAIIQA27Z5TpK4wiAwxlwmictsA5JsA5Jsc5ltQJIk25IA25IAwLYk2wAGYQxIsi3JtiQuk2RbEmAbsC0JkGRbEpdJAmxLAgBJgG3uJ4kHsM39bHM/Y0ASAEiyDWAkAbYl2ZZkm/tJwljmCoMAMM9LEgBI4oUzQpaFAGNjIdtCCAxgG0DYlmQbkIXAGAsZA5K4wgBCiOcgMJIAy5hnE89FEs/FPC/bAGAbEMIYA0IAAmNZSAiwzWW2JdkGEJJ4HrYlcZmQsSQusw1Isi0JYwxI4jkJcT9jxAPZBmwDkgBJgG3bQghAyNi2JEASl9kGjAGMJC4T4goBCPH82OYBJPGvJAmwLYkHsC3JNs9JEs+XAWwDQtzPNkIIkATY5oHE82WbZzGAJC6zDQAISdzPNiAJQNjGAJKMhbifbZ6LQWAwiGexDSAwCEASYJv/cALAICqAeb4k8YIYxLPY5gqDAGzzQkkCEAAIg3gmg7ANgG0k2ZbEZZaxJQGIK4SMJfFczDOZK4wBBOb5EM/FtiRjQEgI8yxCPItBPC9JtgFJgG1JPIAkwLYkrhAPJIkHsA1Iss0D2BYyBiTZBmxL4gFsA5KEuMw295PEZZJ4HpIA21wmBCCelzEGMOYFsC3JNlcYwDbPwzb3M8a8cLYlAQAGAIwxkgBjAAEgns0IGSMAYwBjWYgXQBJXCCHbknhOtrmfbUm2eZHZ5vkSz58x5jJJgG1J3E8Sz2IAjCRj7ieEQRhjnkkIAQhAiOdljHleBiHJNpfZlgRgEIAQArDNc7ItCZBkm+fHNg9gWxIGQAgBCMxzkWQb8SxCiPsJjAQYwIBtrhDPJDAIwDYvgDGXGQsZSwJsS+KBhBAgZCyJ+9kWQmCeTTwf4llscz/bvGDGQjyLQfwLDAIQMhYCEP+BJAGSuEySbYwkAMAAtiUBtiXxXMSzGUmAJO5nG7DN/STxPCTZ5jnZ5jnZlsSLyCAA29zPtiQAkARIAgBJAEKIK4Rtnot5LrZ54YRtjGUhAGNZyFgIASAwV9jmWQwCMOZ5CcA2DyBkDAAYwLYknh/bkrjMNg8gyTbPSRKAASTxQEKI58c2AGAQgG0usw1Iss39JGEQgCTMFba5n21JgG1J3M+Yy2xLAgDM87LN/YwxV0jCPJBtXgTGQrxQkmzzALYl8Zwk8UJJsg1IAiTZti3JNiAJsM3zI8m2bUlcJokXzDYgiQeQZJsXTBJgG4N4FkkYDMI2DyDECyeELAPGQlwmiSvEi862JNuAJF5E5n5UAIFBYK6QxAthEM+HAYQAYwADIMAg7icJkARgG4wxQoAxxhiQxGWSuMy2EAIQAowBhBDmWYwBIQADWMYIAUIIAGNbSBJgm8skcT/bkgAEgAGMuZ8QYIyRBCAA2wACgbENSLLN/SQBthEYIQDxTAZAALYB24Ak7mcbEAIQQogHsi2JF40kwLYkALANSAJscz9JgCQAYywEIADbAAaQBCAA29xPEuaZBIABEIAkwDbPSRIgCbANSOJ+trnMtiSuEMaAEMYYQACSuJ9tQEgIAdgGEAAGQDwXSYAkwDYgifvZlmQbsA1IAmzzL5HE/Wzz/AghbEsCELYB24AkQMhYEiAJgwAsA7YBjCTbAAIjCRAyNsZIAiTxnGwDtgFJgDFgDEjiCiMJsM39JGEQz8U2YFuSJNs8gG1JtgHbgCTANmAbkAQAtiUBkgBjjCTbPCdJPA/bgDASlxljbANCCEmAbSHLGGMukyQJ80zCtm1AEoCRBNiWBAgBtgFJgJCxJECSbQziCiHEFcayAGNAEoCxLck2YBuQxANI4n7GGEmWucIYC1kWwhgjAEkAYBsQAoyFAEkAxhgjyTYA2JZkG5BkW5KxEJdJsi0JQGAkAZK4zNg2lwkBAAYQsg1Isg1Isg1IEkJgAASAuMI2xliSbUASIAmwbRuQxP2MhXh+bAOSbEvCGHM/SdzPNmAbEOJ+tgFJtiXxALYB2zyLEOI5SQJsYyQhbAO2JQE2CBAGkGQsCTBGAMaAJNvGkowlAbIQtgFjQMhYEkYSBkA8m3hekmxLAmwDtnl+bAOSbEviOUmyLQmwzfMjBCAADGAZwCAkAbYB24AknpNtSbZtSwIkGctCPItlIcAYsA1Isg1I4goBYADbPJAAZBnznGxzhRAChBDGQjyAbUAS95PE/WxLss39JPE8bEsCbAO2eU6SeE62uZ8kLrMNSAIA25Js25bEi0CSbduSAEnczxiQBNjmOUniOdnmfpJsS7LNZZIwthGSANsI21xhJPGcbPP8SAIwAMZYEiCJ+xkL8fzYBiRxP9uSuJ9tLpME2LYNSOL5oCIEFkKIfxfxTAJzmZEAEC+AAQwACAwCwDw3AwgZAwjbAAaBMRbi+RKAEOKZDOIKIZ6HbS6TxAthnk08kwAwz2QeyDbPyTaAAYyFMAgA8Vwk8Zwk2TaWZAxgAARGEveTZJsXwLYkwDZgWxIgieckifvZBiTJ4nkYSzIGMA8kCUBgEM8kAAzi+ZLEZcaY5yXJtiTuJ8lYiCsEBnGFbUASIAnzTAaQZJsHMg8kiQeQZBsAbAOAbS6TxHOyLYnnYRuQxPMjyTbPYoQwxjwn25J4fowxD2TMFQbAIK4QQlxhG5DE/STZFkI8FyGeRTyQJK4QD2SMAWzzPGxzmW1JtgFJXCbJtiQeQBL3s839JNkGjIV4AGMhwDbPJJ6HEPezDRgLWcY8F2MhLpPEAxnEAxlzhUE8H+L5MJIQAAawLcmY5ySJF0zImAcSsgAhzAthLARgEADmWWxzP0mAJNtcZhsBYBCAJK4wgG1JGACBeRZjSRgEgBEy5gEk8SzmmQwCsM1lxpIASdzPtiQeyDyTQTxfkmwDgG2uMADCNiCJ+0niOUmyDUjiAWzzvIwxDyCEQVxhLAQAkrhMAgQgQMaAbUk8D0m2ucw24lmMeQBjQAiBwRgDkgDbPCfbgG0AsC2JyyTZ5vmxzQNIsg3Y5nnYFhLigQSAeSZjLAnACCEAIR5AEiCJ+9kGjAEhwBhjWYjLJPE8JNnmCiOJ5ySEkMUVAgNI4jkZYxDGQjwn25JsA5K4nyReNLa5zLYkLpPEi8w2z48k7mdbEmBbEoDAPJAkzPNhAGNeMNu8YLZ5IIHBIJ7JSOIKcYVtQBIvmG3E82EABCDE82MbAGwDgCTuZ5sHsM2/jGosSQbxLLYlcZltQBKAASwDshCAsSSeLwlAXGYQ/yKBeb6MuUwIARgDxhghAAEgAFmAMZcJIQAMYIx5LkJcZhuQBEjifra5TBIGwAAIQBJgDGCEMIBlzBWSeE62AdsIWQACMMZcIWQsiSuMMSAJsC2J5yGEsM0DSOIy24Ak7icJsM1zss39JHE/2zyQMMZgJHGZJJ4fSYAQgAAQgG0hBGDM/YSMJQGSANs8J9sAIInLbCOeyUiyDSCeL9sIzANJwgAYY0ncTxIgCbDNA0iyzf0kcT/bgG1AEveTBNgGbEsCANuAJNtcZhuBATAA4llsA5KMZWEQQpa5QtgGMM9iGRACJNlGAAghLrMNYBBX2EZghBCAZSHbgBAgBCAA24BtQBIgictsy0JcYRuQxGWSbEuyzf1sA5IASYBtSba5nyTuZ5v7SbItZCwEYBC2ASGEbQCDsC3JtiQMIARIAmwDtiUZA5JsSwJsS5KFACRhEJgrjIUkARhjDAIQwlgWQhjb5oGMMZcJ2ZZkm/vZBoRsc5kkLpNkG5AECCEA25IAhBDG2DKAETIWAhDPZAAExrIsMA9kELYBSYAkwLYk24AkDIAQQlxhG7AtCWMsCQNgjAEh25IAWQjbkrhMEgZhjLENCAEIwDaX2RbiMkmAbQzCNoBB2BYyxgjZBiQBkrifbSHbQsaAJEm2eU6SANvcTxJgWxJgWxLPybYk24AkLrMtCSHLtiQMYFnItiSeyTbPIgmwwUayLYnnZFuSbUAS5gpjSVxmGxDiX8O2BAiwzf0kcT/bgCTbtgFJgCSek21AEvezjcAYC/H82AYk2RZCPJOwLYvnJIn72ea5mCuMJWEQL4wBhAAEYBuQBRhzhRHiMmNJgG3ANiDE85Bk27YkLrPNZZL4l9gGJAG2uZ8k21wmCbANSOKFsi0JkMT9bHOZbUASlwkhMA9kGRAyxghxhUEAkgAMwjaAEAIA24AkHsA2l0niBRFXSAJs8/zYBiTxQOY5GADxLLYBACFkLAmwzf0kcT/b/KsIAANUkA0gnk0Sz5d4NnGFEA9gmwcSV9iAAWwknouNZJv7SeIFMBbifpKMbQsZA0IAAsBcYSyLZzGI52CMJdmWxAtlm8uMhYwBIa4wgG0EIISwzQsmCUA8f0KIy2xzP9s8L4MAjDGAbUm8YJJs868kyTaX2QYkGQO2eSCBeV7GGEmAMQYwFgKEjCUBGEk8gJAxDyDJNmBbkm0Ag8AAtgFjQEiSbduSbHOFeQ7GWBIGIWQshMBcYZvnYVuSbZ6TbS6TBNiWxANIss39bHOZbR7IPJN4XpIAIS6zjcA8NwFgAECI+0niOdkGAMSzCNkGjIWMMcZcZixkGyGEETIGANuSMABCyFgWAiOJ+9nmMtu8ALa5zLYk27xw5goh7mebZzFCxtzPNmAbAIwlcZkk2zwnSdzPthAGgQEwzyKEQTybeDbxbOa5CYwsBAKwzfMjZCyJ+9nmuRjEczAvjEFgnk0AyJjnIABJ3M82lxkk8QDGQgDmWSQBiGcSGECIyyTxQOKZBAawzXMRgDH3kwQAkni+BCDJNgYwlsRlkgDbkgDAWBIghHkm8UziCtsAYFsSYFsSD2AbkMT9JAGSuEySbQAQMgaMeQAhDMI2l9mWhITNc7ItCQziASTZBiTZBiRxPyGuEM+HeSaDeBZJ3E8SBpBkm8tsc5ltQBJXCNtcJonLJAGAJNuAJAABGANCgG3uJ4nLJGGeSdgGjHlOtiXxXIRtLjMGhGwDsgDEs9jmWYQQgHggYyEuMxYyFjIGbHM/SRgMwrYkLpMESOJ+tvnXkMT9JNnmMts8J0k8P7Z5TrYBSfzrGQOAMQYw5vkSz2aMAUCSbZ6TJJ4fIZ6HbcQLIYkXQBIvnDEGbPMfyAAIoNqWuMKAeS6SANvcTxJgm+ckieckCWxbElfYgHhewjyTACTxL5EE2BYyNhbi+TIA4jkYxPOSZJvLJNnmMkk8P8ZCPIsBMIAQYMwLJokHMDYWwvyrCAG2eRYD2OY52QYkAbb517PNZZJscz/bgG1AEiAJwBgjMJIA2wDm2cyzCQxCCAMgAISxbQCQBNi2Lck297PN/WwDthGyAEmAbQCwLQnzTOL5ELYRQoAQwjZgm+ckicskAbZtS7LNc5LEc7INSAJs85xscz9JAAIwFsIAkgBJGGPAGCOJ+8lCXGEMCAGSANs8J9uAbUmSAAzCmPtZxjyTwADGkgAMYBuBAIQwCMA2IAshyzLmCkm2AduSJAG2Ads8J0mAbZ6TbUASz2KEuMy2kDGAeCZjLAlhbBsQQlwhCUAAtgFJtgFJkgCMMeaZhG0A80wCAWAwVwghANvGgCTANmCMkQQgrjCWhcA8iyTbGECSbQQgZAzYlgRIwtiWZBswFsI8kzEWAhCSMIAxBhASQlxhGwzCRgILcT/bGGMhYwBJEgZjWRLPQxLmMlsWCCEwCGPbCMwzCSEA80wGMEbIMhZCYJ5Fkm3ANgIjhLBtLAmQZAwgbAtxmSQMIATYBiQBCFmWAWOELACDeBbbkmwDkmxLAmzblsT9JPEAtoUwgCTANoCwzQMYS8JcYRsAsAGDbJBtgyTbkjDGgCTAtiTAtiSexRgLcYWxjEEAsgAMQghhG0AAksBcYZAAzBW2AQSAeRZJgDGX2eYBJPGvIQnA2AYQQtzPNkIWYAxIsi0JkGRbEmAMGEsyNpYFIABjQIjnJAkwxkjiAYwRAMZYkjEA2AYkAUII2xiEbUm2JfGcbPMCSOIy21wmiQewLck295PE/WxL4jJJgG3uJwmwzXOyDUgCbHM/SbaNuZ8QL5x4DgZxhW1AEpdJ4jJJgG3uJwmwDUgCbAOSANtcYSTx/EgCJPGcjAFZAGBsGRDiRWabyyQBtrmfJMA2L4RBBPezwfyHswFsc4WEBCCwsblCIBCI58NgAIwxz48kSbwgAnGFsTEC8RwMYNs297PN/WzzPCRJAgDbtrlCIJ5JAIAkXijbGIxtHsC2bV4oY2ME4gpJgCRJ/JvYts0LZpvnIUmSbcC2bQSAATAYIQCBABBX2AZsG3OFeCYBYJ7FNvezzQNIAmxzP0lCCEmYZ5EkCUAIIa6QxP1s2wYwDyTE85AEALZtcz/bPIAk7mfbNmCb52EbkARIkgQAtgHANsY2ANjmfkKAkJBtAPHcBMI295ME2AYwGABzhW3blm3zgpgrJHGZZWMuExICEIAxVwgAgXkW25J4ANtcJkkSD2Cb+9nmuZhnEwDCMmAMIK4wtgwYc5mQEJdJ4n62bXM/STyLeSaBQBhzmSTEMxkM4tkEgHkukgCMJB5IIBCAJJ6XABCYB5LE/YwBY54v8W9n8ywGAwBCgBDPwUI8P7a5nywQV4hnM89mAMyzCUCSEAIwNuYBbPMsBjC2zf2EbGMA20IAIIR5JmGbBzLGPItBIBAPJAmQxAtlmwewDRgbA8aAEGDM8zA25jJJIC4zAAbznMyz2LYNgAHANvczBox5FgNghLhCAMa2AWNAEgACgUCAsTFgmysMRkgIEMJgANvcz5jLbNsGbAOIB7Jtm/sJYTDGXCZk2zaXSRJCWOYBbAO2AdvcTxIgJIRAPAeDeSDbxhjANs8inkUS4gohQJIQ5tkE4grbgG3bvGhs85xs8zwkAZIkAZK4n20us20bsM1ltm0DtvmXSLINYDAAYMwDiX+BeBZJkngetvmPYNs2gHmBDMYYMAYwmBedbf41bNvmuZgKBvFvZRuQxPNjG7ANSAIkAcYgMCAukwAwiMtsA5J4FgMIcT9jjCQewLZtQMhYCPEczHMzAAIwxlwhieckCbANSOI52eZ+QoCxEAaQBAjxLAJjDAhxP9uAJP4lkgDbvACSbEsCbNsGJPGcbAOSeMEk8ZxsA5J4AWxLAmzzfAnAWIj72ZbEsxjEFbYB24AkwDZgG5BkWxJgm8tsSwIkAbaFAIwxgBACjC0DCMAYIQTY5jkZCxnznCTxnGwDtgFJgCQAkGSb+9nmfpIA24AkAJBkm/tJAmzznCQBGMBYyDJGEoABjDGSAARGEvezDUgCEJhnEsZCPItBSAJsA4Ak24AkQBJgDCAASdzPNs8iANuAbUASYBuQBNjmfpJsS7ItiQewLYn7CXGFMQYAScYYY0ASIAkwxiAAYyEEBmFsGyGEsQ0gACFjSQAGsC0JARhjMAhjwBgjCcA8F8uYBzIGJAGSANuAEGCZBxIYIQRgDAhhAEnGkrjCAAjbXCYJAyCukIRBALYlARgMwlgSDyTZBiRhEIAxBgAkAbYlAbaFEMYYBEaSMQYDWJYFssAgMBLGGMA295NkWwgw5jJJXGaMADCSANuAbQAQ4gqBMBbCGAOAZUlcJgTYBiTZ5n5CxoBt7ifJtiTANpdJ4jLbknhOkrifJNuAJO5nW5JtBMYYELIMYABjQAiQBNiWeCADmOdmDMI2zyQwIMm2JB7AWBbPImxL4lkMwjYIsC0J2wBIAmMA25K4zBiDAIRsCwGAEPcTss3zMkLcz5j7CRnLQmAAhG0eQBJgW8hYyDYgyTb3sy3EZcaSuJ8xIAQYA0KAMVeYZ7EtCcAgrjAWwgAIIQCBwVgGJAG2AduAJP4j2AYkAbYlcZkk2wAgiedkm+dkm+chyTYgiedkm/tJMpbE/Yx5wWxzP0k8J9sAYJvnIYn7SQIwxpK4nzEgxLMYQAgwxlwhiQcw5oWSBBgDQoBtwDYgiftJ4n62AUmAbe4nCcAAxkJVEi+UbZ6LeRZJtjEIzPMliediAPG8xPNjzBXimQyAQDyQbR5ACMAgMA9kWxIAIJ5FyDJGEiCEsM39bPO8zHMxBjCWucIgjAEhrhDPZBBXSOIKgQFsS7LN8yPJNs/DNgDYlsQLJon7SbLNC2Cb+0kCAEmAbZ6TJO5nG5BkDAgBmCssIzCAJB5IALa5nyQewDYgCZBkWxKXSeJZjDFgLIkHMJaEwSAwz2IMIDBXGGMAYwCQxIvGtiTbgCTbXGZbEpfZlmSbF0oSz2IABAJzhWUMYFnIMpcZ8ywG8UC2eS7mmYQQYFuSLGMeSGAA2zwPWcYYxLPY5gGMMVdI4kUmieckiQcSgLEQgAFsIwBJAAbxHAwCMBZCYBAABvFM4oFsSwKMAWMh2zwvIcTzMgghYy6zzfOwzXMxz2YQGMCYBzDmMtuSMM8iybYQz5cQMgZsS+IBbEsCwFwmyTYghEE8kLEQ4lmMQWAAA9jmWYQQ4jIDGJBt7ifJtiTuZ8y/hiTbQjwnIQAQMjYW4n7GAAJjzPMjyRjzQtjmASTZ5gWzLQTYFsIIYR5ICDDmASTZ5gqDEDLmfpIAQBIGhAxIsg2AeQDbiAcyFuIyYyHbCMyzSOJ+tsUz2ZYEBiRxPyEuEzJG2AYAYyFJGGMhY56TJNs8P8YYYwxgLMRzss39hBBCtnkexkLGgG1JXCYEYJ7JWBbiuRgEYBshBBjznIy5nyRAiOckiedkm8tsSwJsS+IBbPMAkngA25J4ANu8ALYBSTyAJNs8J9s8gG3uJ4nLbNuWZBuQxP1sS+KFsg1IAmxzmW1JvIiEEM9ing+BMQYwz2Kb52UQgG2uMAjANvcz5t/KtiTbgBAgBCjTEhgL8XzY5n6SANuAEGAMYABJAALAAIjnZANIBjAGEADmWSQB2AZJgG3uJ8SziOdim/sJAcaAkLEQYAzYBiTxgkkCbAshANvcTxKAQdjmfkKAbQABCAG2AQQgCWMZI8RlxkIA4llsA7YRQsYYQBIgCbAtyTbPyTYgieckCbANSLINSAJsA5J4AWxzP0nczzYvmG1Akm1J3M82IInnJAmwDQCSbHM/SYBtwDYgifvZBiTxgkkCbPOcbAOSbHOZJEASBgHYBmwDknjBJAG2AdvcTxL3sw1I4n62AUmAJC6zDUiyzbMIDICRBCCexTb3kwRgANsAAiMJQAC2AduAJEASABgLAba5nxCAQSAA24BtSZK4nzGAEQKMAUm2uZ8kwDb3kwTYBmxLkmTbtiRJgG2ehyQewDZXCCHANmBbkhACwFxhGZDFZbYBhCSMbQABCPEsAmMbQDyLsRDPYiRhjAEEIITAIJ7JGHOZJMAY80xCyDZgWwiQZAwYYwBJgCTbXGGEEMYYAAEI2ZZkzBVGEpfZBhCSANs8gBBg21gSIMm2JMA2gAEkGQPGGEASIAmwjUEgMNgGSbYBISGEsSSwDYBBwgYjSbLNAxkEAvMsQjYIAQJsgxACbAMYQAiMhMAYyzLmCiHJNgAgMIBtQBIgZFsSwjZgG5AESAJs8/xIAmxzP0nczzbPxQCSAGOexQCWhWwDkrjMWBYgCTAGbAOSAEm2AYQQYBuwDZIAbAOSACHANuKZDGAMSOI5SQJsA9ggMIAEAoNBgCQA8yzGgG0EBpAECAG2EcZCtgFJPCdJgG3ANkKI+9kGJHE/2wghQAhjDBgDknjBJNlGALIA2wACkARgAAxgDCAASYBtwDaAADCAJECSMQYhBNjmfpK4n23AtiTbgCRAEmAbsA1IAiTZlgTY5l8iifvZ5n6SuJ9t7ieJ58c295ME2AZsA5IASYBtwDYgCZDE/WwDtgFJgCTANmAbkARIAmxLss0LJgQYA5IAjLEQYMxzsg1IAiQBtgHMsxgjZAGSAGOek23uJwmQZJsHkMT9bAO2AUmAJMA2IrhCiH+Zbds8kAAQCACBwbwAEhLPyWCel3luxoCxMQBgMFfYts0DiWcx5n6SAEmSeB5C3M+2bcAYYxuwzbMYAPNMBjA2loR4DgKBAWwbY55NSEIgMBgM5gpJQoAQVxjAtm3ANoB5JgEgJPEAtgHbtnlOtrmfbf41bAO2AUASVwhJgCRJgCQeQJIkLhPigYwQANhGPJMAbHOZJEk8gCRJPA9J3M+2bQRgm/tJkgRIAoQwgG1j27aFMIAkAIEAjLmfbZ4vIYkXSpIknh/bkgAMIMQV4rkZIZ6LeCYBIJ7NCAFCQrYBDAYQ4jJJgG2eRfzLDAYw5n62Ec9i27YkHsA2L4Bt2zw/tnkg8UzmmcRzMC+MeG7imcTzIZ6DASRxhQAQQgAGMLaNeDbx3MyzGds8J2OuMA9kW4grxLOJZzEGGfMs4tnEs9jmORlj7mfANogHEoAxAGCEhAAhzP3MA0gCJHE/Y8C2uZ8AEC+cEA9gDAYjLpMkIQzmMnOZMQAGjAFjLjPmOQkBtiVJ4jJjwJj7CQkBknjBJNm2zQPY5nlI4gohiRdACJCEeDaDkAQgA4AkSYAk21wmns3mMgOAJEmAJGNjxDMZwFiSJEASD2Cby2wbwDybAVsAiAcwNgYwkoQkIQDA2BgBCAGShLifbZ6HJCGuMBghnpMkWRiMbWPAWJIkQBLPyTaX2QYwmGcSiOdDXGHMZbZtc5kkSRjMA9nGABgMBrDN82NbEiAJsA3YBiQBkiQBkmwDtm3zgtm2DdgGbNvmedi2zQPYts0LJokHkCQJkGTbNgBI4oWSxPOQJAmQZNs2LzqBeBYhXgBJkrjCAAgAgQCMJQkhELaNeR6SAEmSuMw2/xJJkngupgJgmxdCEgDY5lkEIMRlxpYBIZ4f29xPEoB5ISTxXIyxJP4lkgDbCFnczzKAARAABhDiAYSMAduAJIwxYMyzmOdijJEEIIQAwBiQBRhjLGOEAARgDAjxLMZYEoAAbHM/y5gHEgKEANuAEPezDUgCbAOSANvczzbPyTYgiRfMNmCbBxCyjDGWBGAAhG3uJwnAGBsLIQAMYBtAALIQtoVscz9JgG3uJ4n72eYBJNnmWQwA2JYESAJsA0KAJMAYwADGgCRAEmAbwBgLGUsCMIgHEuJ+tnnBJAG2JdnmfrYBxBWSMMbG3E+WMQaBEDIGMIAkAAEYA7IAjJBlQAiDAIwBjCTbgCTuZ8xlQlwmifvZlsQVBjAGEIAQwjaAQQCSMAjbgG1AEmAbAGxLss0DSLItCbAtybYkDGBbkrEQBpCEQQDGCCFACGMZwAAIAGMsCUAAtgEhy7KMJQEIwDYgicskcZltLhNC2AYQGAQGYRvAIGxLEkJgjG0DkgCEMSAkZIzACBkLYYwlcZkFWAILYRsBIGMQgCTMMwmMsZBt7ifJNgZABoRsAxJX2JYE2EbYFrIsCQBkGSNhBAgAAyABSLYlYSxjAARGEs9kDBKALQmwjQEkQLYlAbYB2wgh25JsIwQgMAZkGZAxCGFzmbGQsRBgW8hYyDYgCZBkG7ANCNnmAYRsIzCAJJ4vg5Bkm8tsSwIkYQDbgBBgjACEANuAMSAEAEK2JdnmMmNJIDD3k8QD2EhcIWHzLJIwiOdD2OZ+kmxLgGyDQTaAJNtGAgQGbAABYBAYAcIAGEAIMBayzf0kAZIADMI2wjYPYBuQxBXGWAhhLIQBJHGFsI0wBjDPIsm2JMA2YFsSgDEGhAAEgAAwz2IZkIXACPGCCRnzQhgh7mdbEpdJ4n6SbNuWZFuSJF4ASYBtnpNtSbZtS7LNA0jiRWCbyyTZlsRltrmfJF4wSdzPtiTuJwmQBNjmfpJ4Hra5zDbPSRIGAQgBxtxPCJAEYIy5QgAYIWOMJIRtwJjnZSQBiGexLQkAJAG2AduAJC6zzf0k8SzmAagI8y+wLYnnywDGAOZFZIwBbEviuRgAAdjm+RKYZzLPZBBX2AYwzyYAzDOZ5yAwzyYwkrhCXCHE/YwBIe4nifvZBiTxXAQghLjCGMAACACBQQhxmW3uJwTYBiTxvATm2QQGkAQAkviX2OYFsy3JNgDYBiQBkgBjzBW2JSGuEDLmMtuAEICxLIQx5lkMArAN2OYBbPOcbAOSuJ9tSYBtwDYgSchYCLAtyTbPIp5JCNnmCvEstgFJtgFJgBAAGGOeRRIPIAmwzQtgG7DNZbYl8YIYBAZAYJ7JGPO8DIDAXGHMAwljAHOFbUm2ucwYwCAwxpJsc5ltLrMtyTYCwCCeyQCSbCMA24AQDyAJACTZBiQBkmxzmSRAEvezDdhGYJ7JGPMs4vkTmGczCIQsnocxBiGLf5F5FstCiOcgbAMAAgBsS8JcIYkHMgDimYwQIAQgMMZCPC/xbOL5MS+cAIEBSVwmYRuwLYnLhAAh7mcMgEEACACBeSAbScgyz8XmChuJ5yJAxoBtSQAgicsk2QYwSGAMYIx5FoMQ2FgIIYv7GWMs87yMkDH3M5YkZAxgni/bXCGel22EEMI29zMGMJK4n22ehyRAEvezLYkHsM1zss39JHE/20K2AcBYiPtJAgBJtgEbMGAjIWwAJAEYbMAgAIN4JvFsRhKXCQwgZMwD2JbEFQKQhLnCNs9iAGOMZSGuEIAxzyIAIQBxhZBtwLYkLpPE/YQAxDMJzHMzgDGAwDwXgQEsBAjxQogrhGwDtiXxPCRxP9vcTxLPyTYPIMk2IAmQxPMSAGCbB5Bkm8sk2eYBJHGZbZ4f2zwP25IA24Bt/iW2JQG2AduAJC6TxGW2AUkA4jmY58uYZzFXGHOZbQCBkWSbyyTZRvyLbAOSbEvifrZ5ANuSuEI8AFXG/CtI4jJjIQDAPJsALAMYQAjxHAxgm/tJAjCAsRAPYBsQMuZZhG1AFs/JNs8ins0AtrmfJAABGHM/IcQVtrmfJMA2zyIAIe5nm+dlLANCAOZZjHlOtgEEIAvAPJsAMM8iCbCNMBbigQwgCZDE/WxzP0nczzZgG5DEC2BbEmAbkARIAmwDtgFJAAZAYABJtrmfMYAAMAAGMEYIYSwDxhhJ3M82IIkXTBJgG7ANSAIQsoy5zLYQYAxIAhCAbSFjnh/bgCRAEmCb5ySJF8y2JMC2JMA2z8M2l0nifsaAMUYSYBswxkji+bGNkAVgAATGWEgSYBuwDUjiMkm2JdkGjDGSuEySbcA2IInLJGEABIDA2EYISbIN2JaEeBZJgCTANiAJkGQbACQBkgDbgG1AEoABJNkWAiQBCGPbgBBXGABxhW1AElcIYwwGIQRgEMYIDCCEkcT9bCNkARgAASCEMIgrjAFjIS6zLQlzhRACwBjLMpYEGAOSMJK4zNhYFuIKScZgnkU8k0FgAzaSQGBJGISQMQIMIABjJHGFQbYB25JsCxkLIa4wNgYQsgAkxP0EGLABSQZjJHGFucyADUjiMgMghACMAduSbEviAWxzP9sCBLYkA8YYSWAMCACMJMAYYyzJNiAJkAQIIWwL2eZZhDGX2QYk2ZZkWxLmgSRhhBC2MQgM4tmMZQyAsC2JyyTZBmwDQoAkY0mAbRsJ2wBgm/tJkmSb+0kCbAO2ASHLXGYM2AYkAZJ4Tra5QmAMkrifMciY+wkAAzYSzySuEIAQYCzJGLANSLItCRACMJaFAGMusy0EYK4wloRBALYB24AkQBLPYgAMgLAtCTAGZCEwzyb+RUIIDBgJAAPYAAKQBRgDkgAMYAxI4lnMFbYlAba5nyTANmAbkMRltgFJXGab+0kCJHE/24BtQBIgCcAgHkgSIIkXwLYk7mcbkGRbEs+PbZ4fSYBtnpNtQJJtLrMtybZtSYAkwLYkLpMEGAOyEM9B2Bbifra5nySekxDCtiTuJwkDGCOEMMaAJMA2DyDJNmCbyyTZBiRxP9uAJABAVPNskmzz/NjmMtuSAFmAMQZAPJsAMFcYY56XJNs8DyHANveTBABCXGGeTfyLbHM/STwn21xhEM+XbUm2xTPZlsQLZwAE4oGMAQziudjmCgMgMAiMsRCAEeJZjDGAAYx5oWzznGzzPCTxPCTZlsT9JHE/29xPEvczBoQQtjGAbUCSJNs8kAAwGARCyFgI8UCSbNuWJMk2l9nmBZAEALa5nyTuJ8T9jDGAsSRjYyFJtm1L4gFs81wEBkAI2bYticskAba5TBKXSbLNA0gCbAO2JdkGJNmWBGAQzySEeF4C8xzEMwkMwjaAwEgCMAjbXGabyyQBtiXZBiTZlgTYlmQbEOK5iGeRZJsXzDbPjyQeQJJtQBLPSZJtIQwCwDx/RpJtQBLPl3lu5tnEczNXSDLmgQQA2OYKg0Bgnj/zLJJ4LuK5ifsZCwnMsxgkbAADAgNgEFcIIWMAY/EcbCQAZJvnZIyxLMSzGEkA4vmzeS42Es9L4gpJPJsxDyDARuIy2zwnAzYSIDCWxGWSbNsIAGMhLpMESOIySZhnEwDmgYSMjSVxmSTbgG0eQBKAsI0BEIAkHkgIWeZ+trmfJMA29zMGbAsBYBAIbJvLJPE8JHE/YyEAIWQMCNnmAWxLss1ltrlMEoDAGMSzmedgALABbK6wkZC4zBhAAEKAMfezjRACjDGWucIACGMA8UzCNoBBPBchrjDPJmxjJNnmfsaAJO5nmweQZJvLbEviWQQIQGCei2XM8xLifsY8J9uSeADbkrhMEvezzWW2JQGAbUk8J9tcZlsSl0niCvFcbAOSANs8gCTbgG3uJ8m2bUm2eX4k8QC2JQG2eX4k8ZwkAZK4TBIvnHgW25JsA7YBIWNJPA/bkngWgXkm8xwMwjLmudiWZFsSDyAJkGSby2zzvEzFlgQgnosk7meb58sACEASz2IAzLOJ5yWJB7AMCAGYZxHifsaAbUASYBkQAjDGgBDi+ZLE/WwDmBeFbUnmmSRxP9uAECAJwADGgJAxBkA8ByMJQAC2AduAJK4QGARgWxbimQxgDBgjZAHGgCRAEpfZti2JF8o2IAmQxP1s8wCSeADbgG1AEiAJsA1gEA9kG5DEZZK4wiAwz00IYRC2eQBJ3E8Sl9nmfpIA24AkQBJgGzAGhABJgG2exTyLMSAE2OYy20LczxghBEjiCnGFbS6zLYn7SeJ5SOIBbHM/SbYlAYAkDGCMMQYkAZJ4LsZYCGMZQAhhrrAtCRBCYABjWZYxloUkAcYYhG1JAEaSbS6zLQmDABDPJgAMwjYgCbAtSRL3sw3YliQJsA1IAiQBtiXZBiQBkgAMwjYgCWNZyDZgW5JtSbYBjCTbgCRAEmBbEgawLYnLLAthAAzimQxgjACEbCMQgBBgjAEk2QZsA5IAjLEkDAJAABhjIVkIwBiwLUkSYFvIGCMJQGAEgMAAtpEACRtsCxkEko2wkTASAOaZzBW2AUm2JWFzmW1JYJBtQMhYCANIAiRxmW0MAEjiASxh25ZkWxIPYElgkGSbyyQBGMC2JGyDJGwkHkCSbQAbSYBkWxIASOIySbaRBJZlIQBjBAZhLGRbEgLzbALAGANCCIQQ97MNSEII8fxIMsYgJHGZbUmAbcA2IEnImPsZcz8hY4wQAAYk2QZxmSTb3M+2JAAQAgAhY0mAbUm2JdkGJNnmMts8NyGwDUIAQmAQMgCykbjMILANCGxL4gWzDUjCIJ5JXCGEsI1BAJK4nzFXmOdiLMTzkGTbWBZgDEgCEAAGwAAIQBL3s82zCMAYgwSI50c8kGUAAwhhnkkAmCtsSwJsc5ltSVxmWxJgm+chiRfANveTZJsHkATY5gWTxP1sA5IAQJJt21wmieckCbAN2OZfIgmwzf0k8QC2uUwS97MtSRaAeCDbCEAWgBBCPIttwDYPYBshCQPYBoQASVwmxPNjW5Jtnh9JvDBUSQDCNv8G4tkMwhjzTAIQMuZFIMTzJTDGXGEAxPMyBjCWhfhXEc9iG5DE/STx/Bhjng+BeRYhxHMTgDGAeRZJ3M82QpJtIcsYQMiY5ySEAIR4Tra5zDYvMtuAJJ6HbUm2uUySbUnczzYgyTYAYJ5FEvezDUgCEIAk25K4nzEGwFxhW5Ik27wAtiXxfBkERhJgW5Jt7mdbEpfZlsTzkARgHkgIAGwDkjCAMQBIAmxLkmSbB7AtyTYgiftJsi2JyyRxmW3uJ2QsBGAQtgFJPIuQBSCEjDHGkmxLAmxL4gphG7AMIDCIK4SMhQDbkhCAJNuSuEJgEBgAgXgmASAwz2JbEi+EwDyLbcA2l9mWxBUCkGQbQGAs85xscz9jnpNtwLYk2wCAsI2xLMk2z2KezUjCIAAMgAAwV9jmMkk8gBCAeDYDCAEIwJjnZBswFrLMCySJ58cWQlxhAzaSuJ8k24AknsXmfpIAECDJNpcZA4jnZB7ANuJZBOaZJAEgnsVGAmzz/EgCkLANSOIFkMRzE2AjcZkknklcZgxgAAwCEOJ+xjw/xkJCtrmfJK4wxoAkHkCSbS4T4jLbgG0hLpNkm/sZAwgMIMSziOciicsk2eY52eZZhJAxYJv7SQIk8QC2eT4MQmCMuZ8QILCNxP0EgCRjLrMtCTAW4jlJ4lkM4tkEBkA8k3i+hIwBIe5nWwiBMeZ+kgAERhJXiOcgbAsBtgHANs/LANgg80wGAQLAXGGbBxK2uUJgrrAtCbDNc7ItyTZgm+dkm+dkG5DE/SRxmSTbvAC2JfH82OZ+kmxzmSTbkngASYBtALAtSZJtSfxLbPOcbAOSANs8P5IABGCb+0niWQTGNgIDSOIBJHGZbQCDQGAQz80gEM9Fkm3bkrhMEv8KKDMlAba5nyTANveTxP1sAwiMJABjDAgZcz9JgG3uJ4nnxzYgifvZ5n6SANuAbUASIAnAPJOwzf0kAbYBSVxmm8skGcsCMAACMOZ+kgAbiStsgyQwCMA2gAEkAZYBWYhnMojnYIyFAGPANiAJkATY5n6SANvcTwiwDVjGSAIkAba5nyTANveTBNjmfpIA24Bt7icJkATYBmwDknhOkrifbe4nBNgGhIwlAQjANveTBNgGEEK2+ZdI4n62AUCSbe4niWcxAAKDAGwDtgFJPD+2AUmYZxKAEGAbsIyRxHMSAmwDCACBuUISYBuwDUiyLQmQBBhjhCxjACGEbcA2IIQQ4n7GGAQgicuMMVcIGQO2JUkCbHM/SYBtnh9JAAZhm/tJ4rkYYwyAABCAEAZAYBC2uZ8k7mebZxFCPIBtwDYgZCwJQAgBxoCQbZ6TbUCIy4y5TAiQBBjzIhACAGMAA0jiCmGb+0kCbAO2AUmAJJ6Tba4QGACDkATY5jLbkngWgwAk2QaEAGSbyyQB2EgAtgHbgCQkbMC2AAmQZBsByAKDjAFANmAJQMKWBLYBbCPJIIQAyxhJ2AawDSAJkISNhDHmfpJsJDDGgG1JtgFJgCQwBkACbHM/SdzPNpdJAmxzmSQAG9sSgIQtCQADILANYBuQBAhxP2PANveTBNhGCHGZbUmAJMA295MEABgExhiDACQBto1lAZIAYwDzLJYxV0gCJAG2uZ8kLrMtCbAN2JZkm/tJAiQBtgHbgCRAEvezDdiWxAPYBiRxP9uAJEASYJv7SeJ+tgHbgCTuZ1sIMOYySYAQYAwghACMMSDEFcI2zyKEMIBtBIBBYBCAJMA295ME2AaEAARgG5AE2OY52eZ+kgBJgG0wFoDAGAOSAEmAbV40tgFJvGgkcT/bPD+SeH5sA7YBSYAkwDb3k8T9bAO2AUk8J0k8D9uSANvcTxIvgG1JgG3uJwmwzf0kAba5nyTANveTBNjmfpK4n23ANiAJkATY5jnZBiQBkrifMYBBYBCYZ5EE2AZsA5IASdzPNveTZJvLJAG2gQrYBoSMAcA2LwpxhTGAsQzYlsRltvn3MAgM4lkkAYBtQIgrDAJzhW2ek20eQAgAEM/FtiTbAGCDwFxmLrO5wlgIYQBjnskgAMRzMQaMAQRGEoBBYAAE5grbgCTbXGbMFUII8WzmhbPNv0QS97MNALYBSbwAxpjnYgwgACGexVxhW5JtnsUYCxlzmSTbACDJNi+YbZ4vg3gmAdjmMkmAbUmSbPMAQggAIWTMA0gyFkJcIWRsW5IxgHgWIWOuMMbcTxIgCYOwzf2MMVcYYyTZ5jJjIR5AyDKX2QYkYZ7FmAewDUiyDQC2AQTm+TDPZCTZ5gqDeA4C80wGgXkmgQEsY56DeSbxHIyxEIDACBkDQgghAMAYS8IAxjyAJNuAEPcTMgaMhWwjnpexkJAx9zMW4oHEsxkEBoN4JoGRxAtgm2cxD2SbB5BkW5KQMfezzXMQGACDbAM2kgDbPA9J2FxmG8AgwIAxzyLxLDZgWxIYkAQghLjCALZBYJCEbQCEAWGei23ARggAJAGSAEASAAID2EjcT4CNxPOwzWUCbCQeyAZsSwLxTAIDkrhCYJ6LkDEPIInLhIy5TBLPRQDGQggAgXkW20IABhDigQTmClnGkrhMEub5sg3YlsRlkgBJtnkA24grJAGAJK4wz2Qk8Zwk8ZwkcZmEbR5I4jLbXGZbEs9JiOfHWBYCwFiWBQjxQhjEMwnbkhAA4grbiGeRZBsAMJYBIe5nG/EskmwDQoAxz2IDAAbxTEKI+9kW4vkRMrYNSOIySTyAbUlcZhuQxL+KwDyTeDZzhSTuZ1uI52Gb+0myDUiyzQtmG7DNc7INSOI52QZs8y+xzb/ENg8gxGW2uZ8kXgBJgG1Jtm1Lsg1IAjDPZADMA9nmfpL4l9jmfrZ5JqptSQBCyDYvnBECjDGIZzHGPJBtwDYgiRdMEmAbACTxLAaBuUISz48xl0niMtv8i2QQBgyAuJ9tLpMEYJ7NANiAuUxcZgADIABjAPMsQogHEkJgAGMMwlgIYZsHkGQbsA1I4rkYQAhAALa5nyTANveTxL/ENveTxHOSBNiWhHkWSYBtAPEsxoAsAAMgbAvxLAJAyLKMsS0JsG1bEmDbNpdJ4gEkcT/bXCEADEKWMc9JEpcJAQjMsxgDxkJcZgxIErINYABjBMK2JEASDyCJy2wDtgFJgBBgjDEGhBAAxhiQBNjmfpJ4LkLINvezDdgGEIAQIGRbEpdJss39hBAYwJhnMQACMEZgEMaYKyQBtgFjQMi2JAABIADMswgBGATCWBJgG7AtZFnItpBtQBJGFsIYwCBsA7YBSYAkwDYgCSMEGAOSjIW4zLYkQJJt24AQYCzJmGcRGAxgWQiBuULIGAFgLMviAYxtA0II24BtQJJtABAChGwjAEm2JWEQQghjwFgIgwBsAxgEmGexAUm2ucKWBGBbwjbPJAkEBmNACAAJwMY2AJJsS+IyG2SDDIC5nyUhbEvCIIPANoAkhG3ANkKWsSQDMkYSYNs2krjMtoQtCcC2jYQtiQewzRW2QRI2YAkbyTYgybYk29xPADIGMAgAA8gCLAvZ5n6SAAyAEQJsS7INSAIwxkLGAAIQQtgGAGNACGEsy1gSwjYCc4UQl0niWYyxJB7IIGxL4n62JdkGbAOSMJK4zDZgWxJgDGCEuEIYy+J+xtxPEgAGwAAIkISNxDPZ5rkZQBJgLGQsZIwRMsYACMwVtrmfJMwVtgFJtiUBGEkAIAmwDQAYSTwn24AQz8tI4jJjIcAYQIDAIC6Tzf3M8zDGkgDEsxkAI8m2bUmAJMA2YFsS95Nk27YkQBL3sw1IAmxzP0mAMQBgEIAQ4gohwDaAMZYEIF4QSYBtnodtQBLPSRJgm+dkG5DEc5LEZbZtA5K4n23uJ4nnZJv7SQIkYTCIB5IE2EbYBoQQgG1JkmxLsm1bEv8aknhOtiXxAtgGJAEYRJXEZbZ5UYgXRBIGcYUk2zwn24AkXijbXCEwthEviDGAQWCMhQAE5gWyuUIG8UyWZFsSYJv7CQzYSOYyCcDmORkknsk8F2PM8zLmCgEIAZhnMgjbPIAkQJJtwLYkY0CI+wkhbAO2eX5sc5ltQBIPIIkHkATYti3JNpfZBgDbkmzznIwBDAIwBhBCCNuSuMy2JMAYc4VtSVxmWxIPYFuSbV4II8kYY8wDSLLNs4hnEhiEMYABLAsBGMQVkmwbCwGAEOKFsM1lkngWgZFkLAswFhKyjJHEAwhxP2NACMAYc5ltSTwnIe4nZFuSbUDImCvM8yeezTyTeSDb3E9cYQE2ElcYQMgYAIwBSVwmhEEIGXOFsQwYAwgAYRuQZBvxLEKAbUmAbZ5F2OYBhLifJAziCkkA5gpjnpcAMIjnwyAQQgjMMwnMFZYxVwghAEm2hXgW8dzEcxECEMY8m0EgMM9Jkm2usJHM8yEuM0g8i43EZQLzHGwDGLBBCIGNxHMRQlwh8ZwkAQiMMYABbEviChuJZ5G4zDybbUk8Lwnb3M9GAiRxP9s8J2OexSCusMz9JHGZJB5IPJOwzbMYQIhnMYhnEphnMRYCjAFjIQQGgXkWIcwzmWeRZJvnZFsSLwLbPC+DeCZhGzAWAvMAkmzzTAZxmSRsABsJMEjiAWyDBMZCXCYECBkbC/FczAMZCwG2ecGEMA8khAEQzyKJ+9nm+bENGGMAYyEAJO4n8UIIjDEgBGCeTQCSMFfYlsRlknhOkrifbUASL4AkHsggMAACwADGkgDAWMgYEMIY8wCSANvcz7YknpNtLrMtCbDNC2aby2xLAmxLss2Lxjb3kwQAtgHAmCvMA9nmCiPEFcYYsM39JGGusA0AGISQMS8aSbxgkngWAVQhY8A2IAmQxAPYts1zkgQYA5IA24grJPGcbAOSeBbzHMQDSQJsI2xjJAFC3M8YwDyTeSYBCCGusAFLgLANtgEkDJgHkGSb5yEwYCPxgkkACAAD2AYkARgAAUgCbEviCgEgAAwgCzDGIJ5FEiCJB7AtCUBgnkk8F0kAYNu2JACwDUjiOUniOdnmMttcJokHsM1lkgAhwDaAwBgDiGeRxP0kAbYB24AkwDb3sw3YBiRxmSQusw1I4jnZBmwDkgBJXCYJAGzzAJJsA7YBSdxPEvezzWXGkgBJAMbYNg8gyTb3k8Rltm0jZAkZA5IAY0ASz2IASYBtnpMxYIyQxHMSAoQAYwBhLIRBCCEA24AQz0UAtiVhXhgbkABsBEiAQWAMYCRZxmAQCIwxIAmwjEHYBjBCxpJ4FnGFJNuAbSEukwTY5n6SbBsDkjBCgGUhDGAZwEgCMMaAMUYSIAmwLQnASOIKcYVtAPEstgEhwDZgWxIGwACSAIRtSRhJgGUAA2CEEMa2EUJCPIAxxrYAENhGEti2LQnJtiRsAAkDmGcTALYFSNxPNhIgQLItng/bgCRjARKXWQhzPwMYEAYMGEAIAdhG2BYyBiTZ5n62BUgCbCTbAJJtQJJtSbYBJAFgG4lnkbhMEmAbsC3JNiCwAIGxAIRtSQDmWSTZBmxLAowBhBCXGduWZFsIwCAwAAKDAGQhbCOMhTDGXCZkWxLCNgIDCAG2ASEERgiwzRUGwAAI25L4txGAsSSexRgLAAmDJJ7FBiQAJMAACLABIR7AtiTbBiFjSdzPtiTbxkKAEAAgMIAxQpYxIGTMA9hGCGGMMYAkADDmWcwVkrifbe4niedkG4F5FkkGbAAJkA1gAwZAElfIIJ6TMYAAZCFsAwjbkrjMtiSek22ekyTAGJDEZcayEFcYYyTxPGxzP2MhAEBgnkWSbUmSbAO2eX5s84JJ4jnZ5n62AUm2eR62AUm8YJIA25K4wjyLJMA2YBuQxPNjG5AECCGuMAYwgBCXCXGFuMK2bV4wSYBt7ieJZzGIagCBJfH82OaFMADiWYyFbHM/SYBtnsU8H+Z5SbItCQAkAZhnEhgEgDEW4lkMgAAkQFxm7ifxvGzzTJK4nwGQZC6TBLYl8VxsJNtIAoMAiSvEs9gGANsAxrIQgLnCMoBBPJPAPC9Jto2FAMTzsi2J52QbACQBgCTANg9gm+ckifvZlgQAkgDbkrjMGEA8k8AYA0KSbHOFwDyQJF4wSdzPNiAJkMT9JNnmASTxIrONwEjiWQTmCmPMFZJ4FvOC2OYBbAOSuMIAxgDiuQghbBtLAox5TsZcJsTzY1sSYMxlQlwhMIgXzjaX2eaBBOY5SABgAFsSz4exkDECsA1gAAQgZCyEsC0ECNmWxAPY5vkyCATmuUgCEBjLGGNJtjEIAIMwBgAJEFcYY8C2hHlutnlOtnkAIWMuEzJGALYRQlwhAGPM82EADOK5CBlzP3OZjcRlBnE/CZvnIZ7NIJ4P8xwk8QCSbAOAQTyTbCQwz2QABOa5GMQVkrAlcZkk29zPIJ7JNpfZlsT9bPMiENgGAGxJgCTbSDyTEELGgG3Es0iyzfNlEJjnYgxIAhDPZoyFAAQgxP0kcT/bPIvAGAMIjGUhxHMTAObZzBW2eV4G8XwZA0K2JQHGQoBBYABsSwIMkgAAiX+JbUmAJO5nW8iY+0niMiEAgQEQtoUwDyRkzGW2AQxgjEE8k7CNQQCYZ7EtiecinpckAHGFhG2exUbihTCI588AxrIAY4wk25JsA7Yl8SIQ4n62AWPMFUIIAIF5viTx/NiWZBuwzf0k8fxIAmzzPCTxgkmyzX8oSbZ5ASQBCMzzkgRIAjAAAvNMAjAGjIW4n23+A1BtS4AknsU2AEjiMtvcTxJXCFkABvFMxhiBkcSLzFgSANi2zfOwDSCEjIUQtgFjAAFgAARgDGCBQRLPJPH82AYkAZIA2zyLJLCNbZDEA9mAARsJGxAgAUjczzZgGxDifkIA5rkJQBJgm/vZBiQBtiXxQAZAPIsk7meb+0niAWwDkngetgFJgCTANoCwLYn7SeI5SQJsA8aAEJdJwiCMERgEgJEE2Ob5kQTY5jnZ5gEk2eZ+krifbUm2uUwSl9kGJAFCCNvczzZCCMA8iySexQC2AcSzGUASYMz9jLnCGAOIZzOAJMA2IAkw5n5CgDH3kwRYFrLN/SQBxgACI8Rlxpa5nyQAAwgBxoBtQBIgCbANyEJcYZvLJNkGkAAkQDybZSFAkm3ANiCJ+xlLsg0IAZKMAduSAEmAMcY2IMlYFiCJK8QVtgFJgBBgGYMAbAMIDAKwDSCwxRUCbAPGkrAkMIgrbHM/SYBtwLYkBMY2QgjASAKMEVdIsi3JNmAbkIRBALZ5TrYBSYBtLjNIsi0JwFwmwLYkGzAIQGAEBklcYYMQ5n62QWAbMAgAgW0kbEmAbUm2AUmWZGMjYQOAbUAImWcygGUsCRsJwEYSAEi2JQG2ucwgLrORbEsCBAbANiAJG8k2IIkHsgFsJGwkAWCQxGWSbCTAGAwCI2QshHkhjIUAjJBtQBKAAIQADGBbCAEgAFmAsRAPYBuQxBUCQGAQgDGX2QYk8ZyEeBYjyRiDADAAwjZCiOckZNtYkm1AyBiQZIMBELYBcT/JNgBIArABbMASgM39hADbAMIYAyAAIcDYWBIGAWAkYZ5NABghHsgY80DimcQD2QYk2ZYESMJcYRuQxHOSxLMZsA1IwuZZJEBgwBYAAsAg7mcAY4SQMULItm1JtrmfbUlcZlsSANi2zXOSxHMSAhAAAjDm+ZHEFea52JYE2AYkAZIA25JsA5IA21wmyTYgCZBkm8sk8TxsSwJsA5IASdxPEi+UJNvcTxIvmCRAEmAMCHE/SYAk2wAgiWcRgDHPIp6Lbe4niedHEpfZts0VQghQaykBSOJ+tnkA29xPEg8gifvZ5jLbgCRACGEbwCAASRgAgQEwCABhjHnhJHE/2zwXgxACjHlBJGzuJ8k2YFsCJAkAbPMCSOJZbMAAtpEEAOIyCbDNczHPJK4Q4n6WMf9akgDMMwnbPA/bgCRJ3M8295PE/WzznCQBgG1eAEm2AUASgDHmeQgBCNs8FyFk27YkSbb5V5Jkm8sk8SwGYZsXTJJtnockwBhzhRCAeCZjDNiWJMk2BvG8hIy5wiAASYBt20IA4pkMAoG5QpYxYIwQEjIGAEm2bUviBZBkG4O4QhJXGGOek21JkmxzmRCAuMI2V0jYPIAEyDZgWxIPYFsSz0OSbS4TMuZ5CBnblsQVBiEEIADANs9DyJjnIQsBGAOAbCQuMwLbSAjxLMI2DyBkzGW2JUmyjUFcIcRlxlwmyTYPYFsSlwkBxvxLbEviASRswCAQmCtsSUi2bUvimQzi+TCIy2yLyyQeQJJtHkiSjY0EmGeyLUkIDJhnkQAw5pkMEjLmBZBtiQcQmBdIEg9kA+aZxDOZZ5JkmwcyiGcyCEm2uZ8kwDaXScIAxrYBQJIkzDMJzDMZBGDMZbIs86IQmCuEjI2FeADbQgACEAKMucy2JK4wAAKQxGW2eR6SbAO2ASGeRQgZ25aEwFwhictsA9gAEpfZloSQBRjzghgEQhb3M+YyIdvGkoQAY0CSbWMhLjMWAoQAYy6TZNs2IIn7ScI8izEPYFsSL5Qk22AAxP1sSwIEABJgG8AYS+JfQxL3s83zI4Swzf2EAACBeSZjmedHEmCbF0qSbS6TZJvLJNnmeUiyzf0kAba5n21AEs+PJF4w27xohBC2+Y8mBBjzQtkGJHGZJMA2z0kSUMEgnh/bgCRJgG1JPF/GWBJgWxIASAJsS8IgrjCWZMwDGUmYK2xzP0mAbUAS97MNSLItCbANIJ7NAMYgYUASgASY5yDJtiQewLYkLrMN2AYkcT/bgCQAGwS2LQlAAvM8hABjAAEIAcaAJEAIYRvAAAjANiCJ5yQJwDwHI2QsCbAN2AYk8SKwLYnnZIwRksRltgHbgCQuk2Sb+xkDQoAxgAEQgG0AAyAwCIwxIInLJNkGbAOSAEmAbV4AScYY24AQgHgukgDb3M82YJv7SeJ+shAYY2NAyBgjCQNI4jIhBGDM/YQAYyFjAAFIAmwDgDECIwRIAowRGCFjwDJGCDDmfrYBSYAkAIOwzf1sA8YYSTyQwAC2JUmyLQmwDdgWQgDGQra5nwDJNmAjAeIBbAOAwCAJEBhsA5IAQBLG2BiQBNjmfpYxkgAhAAFYFgKDbAO2JUmyzWWWhWxzPyHAGIMQQtg2YEuAkDHCWAgMMsg2gEEIAbYBY0ASYAwYCwkhbANCQgjANmBbCIGRBEgCbAOSuJ9tnodtSVwmyQZhLAABCBsbYQRgA0gCJNm2kbifQRI2BmwBQhJgGxDYBiTZ5n6SAGwDEjYgCTBIAowlAWAMSIAAMDZgkMAYABsASTyLbRCXSYBt20gCJAAbsA0g2ZZkG5DEZZK4n23xTJK4n21ACBACjBGAbUnczzZCEgawLQnASLLNZbaFMAgMArCNkIV4JmMsBBhjEIAkwDb3kwQYA7IQGCEEAgPYlmQbEAIQgBBgWxLPImxjJNmWxP1sA5IASTyAJGNACJDFZeIy8yy2JXE/AyCeSRKAucwCEOJZbAO2ASHMMxkAAQhxmRBgLCQEYAAh7ieEucIYIYS4QhLPybYQL4Aknockng9xmSTAtiSukHhOxtxPEoBBAIBtXgDbkrifbcQVsgAERhL3M+Z+QgAGgQEQ/yJJvFC2uZ9tHkASL5gkwDbPj21AEvezzXOSxPNjm/tJAiTxnGwDknhOkgDbgG1AiGcRz0WI50cS97MN2OYy25J4TrYBSQAGUSXxALa5nyQeQBLPwzYgSYjnJAmwDdiWhLlCFs9FAMbcT5JtQBKXSbLN/WxzmW3ANs/JmPsJASAwL4BtkJAxADLGALYlcT9J2Fxh8/xI4llsAPFcjAFJxlxmjEE8i20uMxZCCBlL4jnZlmQbEAIQz2IbsM0DSOIy24AkXgBJPBcjxBUGAUiyLYn72eb5MeYyY0ASYAwYA5KELPNABmEbkGRbkm3bknihbPNcxHOxLQmwzfOQBNiWxGW2ASEMAoNBABjAtiTbXGYbwCAQmCuMAYxlSbZtS7LN/SRxhbAtiSvMFcYIQAjxwtkGhGxzhUFIsi2J50tgHsi2JJ5FAMYYYx7ANs9mEFdI2JIA25IAgbEQ95PEAwnMA0myjUFgANuSeABZAJJtXhBjzHMy5gpjWYgrJJ6DEADCCMwDGAMIACMJADAPZJvnZJtnEUKWeRYjxHOSZJvnJIn72QYwSGCeyQAYSWAA88IIAIExAgDE/QSAJNvcz7YkAJsrbCTAPJNtSYBtJMxlBjCIyyzEZULG5vmRsA2SsHkuNs8icZkk2zwXGwkbEM9mGwnAFhgQQjwP25K4QgAYwBiwjbhCEuYKY4QQgHkWyzyLAIx5TraFeADbCACwDCAwgJCxbUmAJNu8YELGgCTuZ1sIsM2ziAeSBAgBAMYYQIAASbYBGwnbknghBDYG8XxJ4oEM4lmMsXgAYwziCtuSJNk2FgKMuZ9tHkCSbcC2JGNAiBdEwub5sc1lNhIgnodthCwAwEjifrYlIR7ItiRAkm0AsA3Y5n6SuMw2lxkDsrifJMCYZxEAwrYQL4BtSTw/trnMtiT+JbZ5fmxzP0kAIMk2l0niMts8P7a5zLYk7ifJNv825lkkYQDEczMAwhiDeCBJPD+SeADb3E8S9zPGKDMlLhNgm/tJAmwDknhOtrmfJMA2IMm2JMA295ME2AaEAGPANiCJF0wSYJsXzDYgifvZBiQBQgA2YAFI4n62AQwgBCAAY+4nCTAWwuZ+BkAAIBnEA9iAAZDE/WxzP0mAbcA2IAmQBNgGbAOSAEk8iwFsA5YBWYAkwDKAkWSbf4kkALDNCyIwQgjb3E8SYMxlQlxmm/tJAmwDtrmfJO5nG5AECAG2eS4CkATY5n6SAMA2l0kCbAO2AQRGEiAJAyBs85xscz9JPF8GkAQY81wMQhJgG7ANSAIkAbYB24Ak7meb+0kCJAG2uZ8QYBtAAJIA24BtQBLPl3kukgDLQtzPNveTZJsXjW1AEiAJYxswBiQBkgAMwgYMAJJsYwBkDBIgCbCRsA0YBBIgbJAN2BghhEESIGMBgDFgG5AESAJsA7YBSYAkjG3AGJAEgMBcJgmwzf0kQLYB20KSbCMABOYKIcA2gAAwzyQQQrYBY4wkQBJgGyELMOYKgXkukjAAArBtG5AEIGQZhEHGPJPAXCYJANuAbUASgCTbXGFL4jLz3GxLsg1IAgTYBoMkLrMNSLINSOJZbEASyBjAAELGXGYZwACSBObZBAZsgyRAtgEJkMT9bHM/gW0kQICNBJhnEwC2ASRAEvezzf0k8SwGsA0gAEkYY8A2IAkQsi0EGBtLAiRxP9vGsgAEgAEkIWzz/AgZCwHGPD+SbHOFEMIYA0IIwDaAARCAbUASIMk2IIkHsA3YBiQBkgDbgG1AEvezzf0kAZIA24C4TOJ+tgEEgBGyDUgCjAEM4grbgBDiCtuAJJ7FIDAA4rlIAmwDtgFJgCReEANGAmxzmSTANmADSAIkG2QBtgEEIARgAARgzP0kYQDAmPtJAmwDtrmfJEASYBuwDUgChABjAAEIAbYBSYBt7icJwAAIwDb3k2SMASQBtgHb3E8Sz0kS97PN/SRxP9vcTxL3s80LZpvLJNnmfpIASYBtwDYgCZAEYBC2AduAJEASYAzIMhbiAYwRAAaQBVgGbAOSAEmAbe4nCbDN/SQBtrmfJO5nm2eiAjaAxPOyzWW2JXGZbZ6Tbe5nG7DNAwgZYwAM4lkk2QYABOZ52eZfIsm2bUlcJsmYBxKYB7LNswjANiAwALYFSNgGwEI8DxsJEM9JwuYBbPP8SLItyZjnIQmwLck2IAlAYBAARhLi2QwA2OYFkGSbB7DNC2EAxLMZxDOZK4wl8Zxs85wk8QDGgCQAYYx5JgEIGWMQV0iyzYvOABgEgMAAkmzzAJIA25IAQJJtLpNkGwFgLPM8jIVsA5JsA5K4wgCSbAshHkgIMJbEZbYBSbYxiGcSz2Kb+0nifpJs80IIwBhjLInnYZsHEDLmMkm2MYgHsi2JF8IGMJJsnpsAIZ7FNmDzTDYSBozASDbIgAAEtoUQYMwDSOJZjJCxJJ6TJGNZPJt5TpJsYyNhwAJjAAEgrhAyti3JGJBkzPMyxpJsCyGexTaAQWCezQgZ83wZxBWSuExgjLF4Tub5k8Sz2OZZJMA8f5IASbYB8dwEBkASIAkAJNkGkLANYK4QGGMuM8YA4vkzYHM/gSVsrrCRbPOczHMzz0nCBpC4QjyTeSBJPIAxBvFMAkBgjHkWYRsw5oHEM5lnMoCQMYB4XpJsGwshbGMsS8LYliTJtrGQJNs8iwGMMQjANlcYhJAxIMkYELLNMxkEtnkWSdzPtiTAWBKXSbLN/cQziWcS95N4XuYK21xmzLOIZzJCAOJZJPFcBIB4/syzSOIK8QLZ3M8297ONxGUSBjBgAxhjEM9NPJPA2AYk2QYkAZhnsc39JHGZbV50BkA8i23EczAvhG3uZ5v7SbItCQAk2bYtifvZ5jLbkgDbgCReBJJs85wk2eYySYBtnh9JvGCSuJ9trhCAEAZxhTGAeTbxLJK4n21eKEk8D9s8H1Tbknh+bAO2AUm2JfGcJAG2eU62AUmAJAADYJ5FEmBbEgAIIZ6XbZ4fSdzPtiTbtiUBgBBXCACDeFEYAGMECNtcJmHzAALAEs9icz8BIIQMBvEAkgDbXCbJthAPIAmwzWW2JfFAAgNIAiTxLAawDUjiOUkCbHOZJB7ANs9FYCTxXASAQTwvSYBtAPNMAoF5INuAJEASYJv7CXGZEAIwxkiSxAPY5gWTZBvxLMYYQJJtnpMkQBKXSeJ+kjCAMeaZBGAMSLItCbANSAKEAGMAI4QAEAAGMAYk8VyMEICxDEgyxgjZBixjJAGSANuSbAOYZxK2hSQBxjwn24BtQAiQBCBs20YgANtCxhhjhCTbkgDM82cDYJABCYNsG0AAEiAAsA3YBiSMJLCRAJCFjAABWMJGXGYkDGADlgRIAmyDsBEIIcC2bQQGAIQwYGQjJO5nmytsJGwDIAmwLMRltgEh24Aky0K2AQRGkm0AgZGEAYwl2eaBBIABMAiMMZdJwgAYhG1AEpdJAsDGQmBJgG3bkoQQgLEABEgAtgHbgCRJXGEDgISNbUmSuMy2JGyDwIAkAGwDAkASgG2wLQmwjcRlkgDbCNsCJCFjDAiQbZCEZBuwLcm2JMAAIGEDSNiAbUkCA2AbkA0ASNgAEiAJ2yBJGASAjbmfEICwzWWSuMyyECAJg7hCljFXGABhG4F5JoN4NiMEGAsBCMAYkMQDCAEYAAHYBiQBtgEhwDYA2AaEjLnCGAMIDCBkLAmwLYQx5gphIwECcz9JgG0uswGEAEASz48AMGCDuMLmMknczzYgCfFMBpAEIAAMAnOFsSTuZxvAAJIAxHMzAObZBCAJMIgHMogHsgHANiAJWxJgW4ABEIBtQAgQAowBSTyAJNu2JXGZbUmAbcA2IAmQBNiWxAsnAMwLZCRxP9uAEGCMASQBgG1eAElcJonLJPE8bAO2AUncTxL3s839JPH8SAJsS+IFsw1I4lmMMQBgJAG2eV7mCmOMJO5nG5AEIAAhnpNtwDYgiftJ4jLbXCaJ+9nmfpIA20BI4oWSBNgGbNvmMtuAbds8D0mSMIBt21whEP9e5oFs2+YySQgMIMT9bBsj8Sw2Ns8mLrOMEAKEhAAkAAkADOb5sbGReG7G2NgGbPP82AYA24Bt21wmCZCEMOZ+tm3zgghAkiT+JbYB21wmSRL3kyQkiSsMgHgWY9s8L2ObBxKAkCQAkARIksSzGCGexTwf4jkY24Bt24Bt29xPEiDJNmDbNvezDQC2eU62bfP8GAPGxtxPSAiQxPMSD2TMczLmMtvczzbPIhBCQhgMYIxACEmyzWW2AduSeCBzhW1jxLPYti0ESJJkDGCem8EAxtxPCJAEAMbGCMQVtgGDAQRgY4MxIABzmbjMNpdJkgQSgJAwACBAAkCAuMwANraFAAlJ3M82AOYKY5tnMc9iDAYwADa2bdtcZkACLIFAXGFsA7a5nxAAYGzzLAJAIJ5NGAO2eSADCHGFABDPhzDmOdnmX2QAIRAYbJv7SZIEgDGYBxAA4jLbtrlCAszzYe5ncz/btnkBJIG4TAgAgw2AeSbbkgBJPBdJYDDPhyQkQIAEICEBkrABcYV4JmEwzyZscz/bmAeybWzbNoCQJAmQBNiWJCRJEiCJy4xtA8YIBIB4XrZtA5gXQhLPQxLPlwAQkowB21xmmysEAgBsc5nNFbZ5DgYwgCRsbJ5FAIDBgA2AATBXiGexjZDEAwlJAOI5CIQxYNs2z0mIK8zzZdkYMOYKA4grzDOJF0ASz2JzmQGBxGWSJAGIZxMYjG3bXCZJiMtsA7YBIUCSJF4EkngetrnCYJ6DwTwf5grbAOb5ksT9JNm2zQsgCZAkif84kngetgHANs8ihIQkSeJ5iWcxBhCAsTEACEkCEM/Ltm3ANiCJ52Gb52TbNs8fFSQB2AZJ2FwhCbAtybZtSTyAbUmAJJ6TbcAYg8BIAiQBxhgMIIn72ZZkm/tJsi0JwAC2eaGEAAxCyDaAwCCQZAMGQBIYC7ABJAEIIS6zDSDxXCSexeZZbACbZ5G4n21eBLYlcT/bkmwL8QJIAmxLss1lkrjMNveTBNiWxAPY5vmRBEjifsaAEOIK29xPEmAsZAxgAATm+ZKEQQDGtgGMEAIwxggBCGMhwDaAEDIGbAOSbEvifpJ4ANs8gCQewLYk/iXGgDFCyFgIkMT9bHM/SVwhMM8mANuSjAFjQJJtLhPCPJN4FtsAApAE2AYkAbZ5FiNkDFgGMMaSACGEbQADIISMASEAAdgGjDGSMIAxl0kCJAE2YNuSEJgrJNmWBCABGDAG8UziWWxzP0k8izFYAGBAgGQAYwsZY4yFLAtZFuIyG8A2IMm2JMA2YBsAAZIBEGALG4n72QYkARZYxgA2l0myDdgWkmQsyxjASAIkcZkQlxkL2QaMMZIAIYRtrhAYSbYBIWNJGMtCljFXSLJtLGQbkMT9bAOSMJaFAMA2AAbZlsRzMghAYAlsQBJgc5lBXGYJGxBIsm0Jm8tsi8tsJNuAJEAS2AaMEMIgrjCWZFuSbSSBbUASAEgCbHM/ARI2YAkJ2yAJybYAMIjLJGwkwICNhI2EkXhu4llsI2QZA0KWASEAYywJkGRbEgBIAgBJXGZbElcI2zyLADAIjCQeyCBkAQjAmPtJMhYCbAOIKyTZRggBsgBjQBKAucI2IMk2IMQD2AYkbAOSbEsCbAMYQAjzTDYAkjEGxAMYMFcIDOIKSQAgCTDGAMYA5pkERhKAeSBj7meMARAYBAYAJAEYhG0AAyBskDEPYJ5JYIGRBGBbEjaAhA0SgMESIAADYCwLCfEsBkAAQogrjLnMtiQh21wmCcAgnskAgBDCtiSekyQeQMgYEOIyY4wQ4pnMcxBC3M82l9nmMkk8J0mAbUASYFsSl0kCbHM/STwP21wmyTYgyTaXSeI5SQJsc5kkLrPNAwmMJJ6TEMI2lxkDiCuEAASAMLYNCAGIZ7ENSAIkAbYl8SKQxHOgSlwhCbB5viTxnCTxL5HEFeI5mOdLEs9DElcIDOKFEDJGAMY8i0HYBoTA4n4WV4hnsY0Qsg1gIwmQbPMAtnm+JIwxkrhMYCRxP9sAAvNcJHGZbS6zLWSMQdjmfrYlcZkkHsC2JJ6HbcA2z8UYS+IySdzPNiAJwACIF8Q2YMwVAhCyzAMYCwEYAGMZ8yzGQoAQAoMw5rkYYy6TxGWSeAEkAbYBQBIPIAnbtiRJtgHANiCJZxEYSQAgZFuSbe4nZGxbkm1AEoDAPIttwDaXSeIySbYBYyFjQAiwjHkgY8zzsi0JYRtACAGIZzOAkDHiCmOuEIAxDyAJQGCELAtxmW1Aks0VQsaSuEwSl9kGQDyLwDwHgXk+BDYGgQGQuMIAxpKMMQDGMsZYEkZgACQBkmxLkmRbCDAWYJAAAxiJB5DEswnMCyGeRZaxJF4Qg7hCCPFMAkBgnsU295MEIDCWMc/NIB5Ikm2eRTyLbZ5JXGZbEs9iBAAYsLlMXCEwIJ7F5kUhAZJsc5ltJDCAQVxhzP0kAZK4TJJt25IkYfOczDMZxGUSNvezLQAMSNgAtiUeyAZsHkiSbe4nCUBgAGMhLhOyjAEk2QZsI55FEpfZBmxzmbEQV4hnElfYlsSzCCEEYAwAGIQk24CxEOIKIWNAEgAIIZ7FthBgW5IkwLYk29zPtiQusy2J52FbCAADBmzAIAAkcZkk2wDigYRs8wCSuMI8fwawzQNIsg0AmGcRMgYwz2IbcYUk2wjAGMDczzwHA4Aw5tkk8XzYIMvifkI8F3GFEC+AbR7AtiTE8zLGPJBtnpMxD2AsBGD+BQbxQtjmOdkGJPE8JNnmX2Kb+9nmediWxP0k8QCSuMw2z8UAtiVxhUFgEABgWxIPYAwIIWzznGxzP0k8J0mAbS6zLQmwzQNI4rlRbST+RZJ4wWxzP0k8J0mAbV4w21wmiedhmyuEEPezDSCEMFcIIQDbPJBBAAiQAYwNCAySANtcYYwBbEAAGCTxIhIgAAnAABKAbe4nhLjCNiAJkATYBjBXSLKMQTyLJJ7FIJ6XJO5nm/tJAmwDtgFJtiUBkgDbPCchwDb3k8T9bAO2AUmAJAAjhAGMAUkABjAWwgC2ASHuZwwgAEk8J9uAJEAI8bxs8/xIAiRxP9tI4pkk2eY52QaEAARgjAFsIwAhjDGX2ZbE/WQhrrAN2AYkAZIA29xPkrEQ5pnMswgBtnlOtgFJgG0A8VyEANuAJAAhZJsXTBIgBBgDQjyLQdgGJAGAJAxgLMk2YFuSAGTxTBI2gAEE5plsA0II24AxRhLPYgMYhGUMYCzJtiQAA9gGJAEgsCTAtpAxIAlbEmAukwBJPBeDsAHAXCZhY5vLJAEIWYCxJEAIgXkuQrYl8ZxsS8IAtgFJxrIASYAxgLAtCUAIGQOSbEsCJAG2AWMhhBCXGfMsAoONZCxkjAEkARjMFRLIIAAJsA3YlrARAmwDAoMkrpCwJQG2JdkGJGEDtiXZlgRgsJEASRiwQRIASAJsC2xLAgyAbR5Iko0EYAOSbAMCbMC2JGwAyTZXCFmAJADxXCQBthG2uZ8kACMJsM2zGElcYRDPYluSMeYKIYxlDABIAmwDkrjMtiQAA2AAIcwzGWNJPCdJPBcDYIwBIcC2JEm2JdnmeUjiMkk8gCRsAAQCI9lGwgBCALJtQAjxbAbAAAhAEgbxLLa5nyTuZxuQBEjifrYRACDLmMuMAQwgCSMJsC2JB7ANSOJ+tgFxmcT9ZBuQDEiAALB5JgMY8yzmmQQGIYQx5jJJxkKAbcA2AgNI4lnMM4nnJQmwzb9IALIAYwwCI4TAIIwlYQDECyEJsM1zsg1I4jnZBiRxmW0ukwTY5nnY5nlI4n62JfEAtgEERhKAARC2eRaDwDyLbUk8F/H8GQABSOJ+tiXxALZ5fiQBtgFJgBCiAjaXmctsS+I52QYk8W9imyvMMxnE87LNA5nnYBDPzRhLwjwHgUEAQsY8kM2zSTwnG4krJC4zYBsk8fwIzP0kbAAJsM1lNgghYwwCAyAw/wLxTOIKSba5wjyTeUFsc5ltSTwPSYAk25J4QQSAeSEk8UDGWIjnYYwBLCMwkgDbQrYRz8EAiGcRMrYtCcA8kwAwgJBtY0lCxiCJZzIAApBkmweQZNu2JIwxD2QeSBLPIjCAJB7IABiEbQCQxAPYBgAhABACEA9kLGQMIDBXSLINSOJ5CBkbCyFsAwhjAGPMC2cQV0gyxiBeGAMYA7Z5TsYYBOZ5CMxzMZJsS+J+tnl+JHGZJC6zjAEQ9zOAQQDGAAJAAsxzsA1I4goDYCRsnsXmgWxL4grxLMYYIQTmX0USlwkBCMAYADBCGATGWMgYkMT9bAMABoExlmSbBzIAEoAx5grxbAIQAkBcZpv7SQIkMICEjW1JPIttkI0E2JbEZQLzbLYlASBAEjZgAGxL4n6SbAPmmWwDgCQuE8+HJGxAYJ5Jkm1sgUESgHgmYZsHEMIgANtC3M82L4RBYADMs0gChIy5zBjAXCGJ52EbsC0JMBbiCoEBEBhjSRgMArAticts8ywCg3gW29xPkm0hnh/bkjDPJonLBAaQBCCEAITNsxkEABhzmbEQgAFsc5ltLpPEZZJs25bEZZJscz9JXGbMAwgBiBdIYABJtnkASVwmAJCwAUs8iy2J5yTJNoBBYJ5JYAAMwpgHEOIBJAGIZ7ENIJ7NIJ4v25J4IIF5FtsIIZ7FPJNBAEIA4nlJss2/RBL3s839JHE/29zPNpfZlsQLZhuQxAsmiSvEMwnAWIgrBAaDAABJXCYJsA0AtnkWg3gm8XxJ4jlJ4vmxzfNBtS2J+9nmRWBbEi8a2zwX83zZBiQBQvxrCQzCNs8ihIwBzPMnANuSeBYDBpAA89xsAwIkALDN/QRIAGAbsA1IwgBCAMYygAGEwEjGNsgCEGBsDEgYMIBtIQRgGxACEAAGwAaQuJ9tnh9J3E8Sz49thCzE82EASYBtnsUAsgAEIATYBowBSYAQwjaXGUsCjAFZAOJZhABjIQSAASwDQtzPNiAJsA1IAELcz4ABhLjCIGwDQhhjnpNlIS6TBEgCbAPGgBAgCbANAEK2uZ8kwFjINoABJGGMhRDPZgDAWAgQQmAQtgFJPCchwDYgCbANIJ7FNiAJQGAwgCQewLZlQJIsY4yxkCSeiwFsA8aAJNuSAGOuMIjnYIwByxghAAEYIzCSbAMYhBCAeCZxhW0uk2QbQDybASTZNgYkQJIA2zwXG8m2JNsgbEm2ARBYEs9ijCVxhQCEbAO2JSEAxAMJ8ZxsCwGSjAEMAgMIGQMYACEE2EZcIckYAIS4wliWZFsIYRvAIJ7JIJ7FNiAJgwAkAcbGGJB4bpIADALABiQBkrjClo1kG5DEZUJgjJBtQJJtIQSADRiwASTbkmxL4grJtiSehyTbAJLAIACwkbifJMC2AMm2eCZJPD9CGAQGkIR5Fts8J0mAEGAsCwCMhSRxP9uSbANCPIBtSYAknodtQIj72ZYE2EYAtoUQGABhWxLPSzyQbUASAEjCAEIAArDNZbaFjLlCMmBjA0KAMWAsiWcxxpJsS+J+xjwXAxhLss39JHGZJC6TxHOSBNgWMgaEAElcZhuQZBsAJAFgJMC2JC6TBNiAAQOALQnABmwDkmxLAiRhkLmfMeYKSZhnsc1zss0VAhACMIBtAAEIYa4wxgCSeE6SuEwSzyIA21xhEAAGwACIZ7HNFQLzQLYBSVxmmweQZJv7SeI5SeJ+tgHbgCQuk8RlkgDbvGC2AUm8ALYlAbYBjLEkQAhhWxYCkMRltiVJss3zMghAEgYB2AYkAba5nyTbPA9JgG2ekzFQATCX2QYk8ULZ5n62ucy2JMA2L4TAIJ7FNveTxBUC81xsS8I8f+aZzHMwxrxQxhjANs9mHkhgnj8biedlAGOel8Agnh8ZMGAMCLDMswmb+xnLAiSwuMI8gHghzLMZhCTbvBAGwLwgtnlOxoAkHsAYAQhxP9vcTwhxhRBgLGQbIYQx5lkMAmGMQWCuMAYQz8kgY0AILGMADBIYA+aZBIABjCUBxhjLkmzblmQbkGRbEg9knslY5jnZBowBY0ASYBkwlgUgnkUIMBYCMIBtHkCSbQwCgUE8fwIjCbAtSciYBxIYBIBBXCHJGPN8GfMAkgBJtiVJsg0ghIy5zBiBQQghbAvZRmCusC3JNlcIzHOxzf1s87zEMwmMJADANi+MbQAMGHOFLMRzksQDGGP+dYwxgHgm80wGAIyFjAEAY1kI8UzCNvczlsRlQoAkHkg8m3ggSba5n21JAOZ+BmEeyLYkXgTmuRkLIdsW4n7GQgCSbWwk7mcbsC0JMEji+bHNCydhcz+DAMm2QBLPZh7AWMiYZxHPIsk2l0niMiEuE+J+QohnMs8iCfO8bEviBTMWEjIGbHOFQUiyDSBedLZ5LgYhxAtgjEEA2DwnY+5nm2cRGGPAtiQuEwIABOYKY0mAJO5nG/FAthEPZFsSAAhxmXgm2zwPGwmQbR5Iss3zY5vLzHOwjSQbsAEDtiXxAELGPD+2eRYDGEsy5nmJZzJX2JYEYJ6DeCDbPCfbPIt4NvMczL+Kbf7HsA3Y5vkSGEnczzb3s83zJa4wFkJcIYnnxzbPj22ek20AwFTuZxuQBEgCbHOZJACwLUkSz8k2z48knsUY20YIcT/b3E8SYMzzI4S5wjIgxP2MASHuZxuQxPMjhLjCNs/JXCGwABBCXGZjkAAwAOJ52CDbgGXMcxPPZJ5NANgABkA8F9uAbUAIQAAGZEAIA2AAxAtkEM8mAEASYNu2JC6zDQgBCEAS97ONkARgANvcTxKAeBbb3E8S97MNYABJAAKwzWXGkgAMgHkWSYAxV5grjAHEAxjAgJEAMGAbQAIwADaABAgBxoAkwBhAALa5zLYkLpNkm2cxAAYwxkgCJAG2AdvcTxJgDGAABGAMCAHGgBCAAWwDCEASgBFCAMYIWYBtAAFI4gphG5AEYIS4zJjLJNkGEM8kbANC3M+Yy4S4zBiQxP0kARghhLFlACPJNoB4IGNJGMBYEoARsswV4oFsA7YBSRhJgGWMbUmSANuAJEACYxtAAiTZxgYEts2zSBgDGEkCJAEYAAEgjG1LwgC2AUk8gG0eQBKAMQYkcZltwDYgZAzIMhayjEEACCHbkmxzmW1Akm0hBGAsiedkm+chybYk7ifEczEIQBJg27Yk25LAWCAwCNk2EiBAwgaQeABjQAIjZNsgYSyJKyQewDYgyTYgACTZlmQbsM39JGEjCQCDuEzifrYBSQZAEmBbkm0AJAG2MZZljDGWxGXGQpJsS7LNFUIWVwjbGASAwCAAIe4nhHgmAdjGIGxLss1lkgDbgG0AYYwBjAEhQAjzQJIA25IkAbZ5TrYBBGAMyAKEAMuyMIAkwDZgGyGEARC2ASFjLjNGYABJXCFsA5Js8wBCmGcR4jJJgG2uMJIA21xhJAG2AcA2DyAEBoO4n22ezSCeySBAEmAAbPMCCJAA24AkbK6wAfNskgDbxoAQAsAAtgFjQBIPYJsHEAKMMZJ4HsZcJgQgMMaAJJ4f24AkQJKxMSALwCCMMYAQArANSLItifvZBiTxQkmyDUji+ZEE2JZkG5AE2OZ+kgDbgCSek21AEi8K8UzmudgGJAGSANs8ixCyDSAwV0ji+bENSOI5SQJsA7YBSUCVuEISL4BtSYAk7meby2wDknihjLnCIJ6LbUm2eRaBeQ4CwCCEAATmCiGeRWAk2eZ52AaEMAjbAAbxXCSDeG4SVwjMFeZZbEsyYAMIIYRtSVxmGxAyBmwDkmyDuMwg7icwtiVxmSTAtpBtBOYKYwBA3M8gQJJtSVwhbCMk2eYBbHOZbR5IvEAG8Vwk8TxsA7YRQgDmCkm2Ec9mACFjIcTzMpYEGHOFAGxzhbhCkm0kABvARgLMZRIPJAG2JRkDiGcTGGMhLhMCjIW4QmBsSzIGEAAgBCAA21wmiRfMNgIDIDCSjDEIY+5nW5JtQIgHkGXMsxiEbQCBeSBjQBIgZIwx5gFsAwjM82Es8wC2JfEAxoAQgAEA2wjMA0niCoERsi3JGMAgXhBJXCGuEDLmfrZ5JoNAYIEBG4krJACbBxDPJsAgAMxzM4BtIWNJPA9JtgFAEg8gBAC2uZ8QIGQZAxgDiCuMMYBt7ifJNiDEZcaAbUkAxph/B0kAwjbPxSAewBgAm2eReIGEwAbAIMC2JJ6LLTAPYCMBSNiSANuAuJ/E/cQz2eYy2zwXG0mSbS6TsM0V5vkziGcR4jIhXhADYJ6LsRBXmOdiGwAQDyTJGHOFMQ9gzGW2JUniMkmAbS6zLUmSbUASxjYgCUAIAQghxBW2ucy2JJ5FAJJscz9jSQACA0gyxkiyzf2MJQnx/EjieZnnYpsHEDK2LcQzifvZBiTxbOJ+NsJI2FxmmxdAPJsk7mcQINlGEgBCtrnCIJ7FmMuMASFAyNhYFuKZBOaZDIBBABgEYJvnYl4429xPkjHmOQjMFZK4nyTbtiXZ5n6SbPMvsc1ltnkASYAk21xmm8tsc5ltSYBt/iW2eSCBeS62EZjnIDCAEAIQwiBeIPMstnl+JPGvQAVJYBD/ItuAJO5nG5AESAJscz/bgCReBLa5TBJXCMBYCMAAloUsAxgEgAEQAEYIYVsSl0kCbAMYAAHYBjCAEGDMswmQBGBzP3OZAMk8L9tcJon7SeJZDGAMWEYI2ZYE5jLxAOYK25J4AGNJAAZAAJK4zNgGwFxmQBJgG0BcIYQAMIh/gQBscz9JmBdEEoBB2AZsA0IABjDmMkkAYBsQMhYSQgAIAPMskgBj7icEGAMIQBIAlmQbMAACbHOZBEjiWWwusy0JkMT9bAMYYyEEAiPEs5grbEvifkKAJMA295PE/WwDGAAB2MZI4gqBEUIAxoAxANiWBCCeRRaAARDPZBAA5oWwDRgDkgAMYFlIFgAYGwsBAOK5SLItCZBkm8uMAduAJEAIYRvAICQBGMAYQBgL2ZbE/WxzP0k8F4OwDUgCbAO2AUkABjAIkAADErbAEjYILIGRuEwYJADbgEFIAmwDGARCiOdkWxIgiecihGwL2QZsA5IAIWPAspBtQEgIYZvLbAOSJNlGYIwlITBXGAvxAJJs25YkicskcT/bkmxLkgRgbEuyDRhjAAyAwCAAjG0AkAQgAQLANvcT95OwEdgC24Ak25IA2wbZAJJs20iyAQG2JCTbXCFhAwJsS9hIgLjMBgySuMyALQAE2NzPNpfZBhBgkBCAMeYy2zyAkG0ERhIAWJaFeCYDIBCYK4wlAbaFZCGMMcaAJAwCkATYFjJGCAnxAMaYZ7EtiedkGwHYlgTYRmAQV0gCbGOukMT9bHM/IcQVxpJsIzDPIoQwti0JYVuSbQQGQBgLAbZ5ANsIQBKAAWwDCCEAsA0gACEAIwnzvCTZti0JkAQGcZkkbGzuJ8kgnoO5zAbEZRJgm8sMgCQuEwIwgDEgZCzE/YwRsgAhLhMCMJIAY0kYQAhA2BZCXGHMczGAJJ6TbUCSJNtcZpsHEgAGgXkWSYBtSbZtSwIkAbYlcZkk/jUkAZJ4fmzzL7ENSOJ+tgFJgCTAmPvZBiRhHkgSYAxI4jJjIcwLYhuQxAsmiX8FKoD5V7HNA0jiMtu8iAyAeBYhxAPZBiQJ8QBCXGGem7nCNiDJNs/DWJIxzyKeiyTAILANCPFsBjBgJMwDSeKBhJBt7mcMCAEIIS6TxAOJK4wBQJKNjYQk25J4FvFcbAAwAOZ+tnlOtgEhAPEsxkKSbEvihRNXSLItifvZ5gpzhSSuEBhjDAJjLARIwmAkITDPQWAQz8W2JGMA8Sy2AUmAhI0kABsQGGxLsg1IApCwAUm8YJK4wgDGQjyAJJ6TbUm2eU62AUmAJNsIAHOFJADAAAjMMwmMJJ4fY4wQgABsSxKyzGVCxgAgZIxBGPMAknggg0BgnsVYkm2uEBhJXCaJ5yFkLIn72ea5GABhG0AIAYAkLrPNC2cAjCTbACDJtiTAIEDYAJbEZTaXmcskbAADBnGFeCYJGwAwgCTbiBdEEv8S21wmCbAtiSuMJECSbQSAeRZJtnkWc4UxDyAEIDAvOtuSuJ8xYJsrzDMJIa4wiBedARAPIBnEs9nmCpsrbEASgCQADLK5zCAJQBL3swFsnkXClsT9BOaZzPNhm2cTDyCJyyTZ5n7GAAawDQAYxLOJ50MAxkIA4gpjSTyTMAjb3E8Sz4+QsSTuZxuQxBVGEpdJss1ltiVxmSSeh20AsC2J+xnLQiAwgCQAgQEk2eZZDOIKSQDiWYwBBOaBZCEwzyYwAAIDIK4QAjAIAIG5wjb3k8RlkgAQNs8iAbYBJECAjcT9xGUSYC6zJfH8SMIACEDItrGQbUmAMUIIIWTMswghYy4zlsQDCPEsAvNMAgMgni9J3E+SbZ7FIIRscz9JXCbJNveTxH8oSbZ5AEm2AUAS95Nkm/vZ5n62AcC2JK4QmGeRxGW2eU6SjDFXGAsZY4wRL4gQ4rlIAmzzryEJQFQMAjAGMIAkXjSSeH5sA5K4wkgCMMbG3E8IQAAIwDb/IvNM5oWQhHkukngWA0gCjAEhwBjANkjifraFuEI8kzAGBCCek22EJNuAbUCSbUmAJO5nG8AAkgBjHkDiWSTZlsRl5jIbAIPAPCfb3E8Sz8sAiCuEuEySbQCDeEFsc5kk24BtQBJXGAQgifsZA8YYIQAB2AYQzyQwCFncTxJgG7ANALYlAZIA2zw3Sdjmfpa4zLYknsUGJAGSMM9LEvczBoS4nySek20AsM1lknheBpBkGzAGJAFCgDEghAAwshC2uZ8kwDZCFs9JEoAQwhgbCwEARsgYY8z9JAGSbBsDkgAMYAwYCwGSAAwGQDybAQBJGGPbkhCAbUm2AdtCkjAIwDaAACTxnGwDtgFJ3M82Qhb3s82zWZJtQADYBpAASwJswLYkJGwewCBAgMAg2wACgwBsIzAABkAAtrmfJNs8gCTbgCQusy1JyFgSYBlzhSTbAAYBSOIy25K4nyTbgBBGkm3ANiAEIIS4TBJgWxL3sy1JEmAbkMT9bPMAkgDLskAABpCwkcT9bHOZJMA2NhKAZFsSgC0AJNkGbHM/AyAAxGUSgC3A5jIBEiAJwAawDQIAyQAgicskwLYk2wA2IElgAGxLss39JBnLQjyTeBZjSQBgm8sk2eYKIWSMQRgDkngWI8kYkARgJHGZEFeYZzKAJABhLMT9bEviBRBCPJN4FtvcT5JtSdzPNiAEGCOegzEWso0Q4gqDADDPZAAEBoFBALIA2wDimYRtQBaAsA0AQlwhANtCxoAQl9nmgcTzksRltpG4nwAwAAZAAAiQAPNMAsAA2AYk2ZYE2OZ+kgBjQBJgW5JtY0m2ASEukwRgnkUSgHk2ARgDmGcTGEAIwFgW4oWSBNiWZBsQAoR4TpJ4fiQBtvmX2OYySTwP24AknpMk7icJkMRltgFJXGab52Sb+0niWQyAuEISl0niWQxgGxAyBhC2MZIASYAxIAQgAGPuJwmwLYnLbHOZJF4ASYAQUBHPZP5tJNnmfpJsS7JtW5JtQAgwBjAIzLMYA5jnYhuQxP2MeRaDeDaBATAIzAshZIzAGAOSMGCeyQIkLjPmMmPECyCek23ANiDJtiQuk8S/xJjLbEviAWxzmW1JABhzP/GcJGwk2QYkcZmQMQ9gjHkg2zwXg3gg2zyAbe4niWcRV9gGhIy5QghxmTHPywAYBOYK29xPCDAGbEsCbPM8DNhcZhDPJEDiMts8J9uAEIAx5lmEkG1J3M82IInnRxIvhAGMMc8khLifMQbxXGzzQMYYwCAwxkI8gG1ACMBYFgIQgCzLsgBjIQziCiHAtiRjQJIxBmEbkMTzMs9mnsVYyDZgm2cRAAKDkGSbF4FtSba5wiAwxtzPtiQbMFfYSDyQbZBkGwAE5pkMArCRLMACm2cRthEA5pkEYFsSLxrbkmxzhcC8MOJfJMk2gLDNAwkMxpgXyrYk7mdbEgBIss1lkrjCGANCCAxGEpdJss0LILAN2OYKG4n7SbLNZeIySVwm8QCWsLmfJGzAgM0DmGczCGxzP0m2eR6SAElcJrANGAsBCNtcZlsS95NkWxIgicuEbHM/IWMeSDyLbUk8gDEG8WxCFoCwDRhLss0DCBnzAMZC3M82ANiWxGWSbAO2ucy2JK4wQrYRkmxjrjAGMIgXSMjiCgNgAGMuMxZCABhJxlxmzGWyLHOFQQDGGAQCg/mXSVxmG8DmCtsSlxkkcZl4JnM/25IkbAOSeCbb4jnYBoQADOIKSTwPSTwP2zwn20I8i0EAmCuMhQAh/kUGgcBI4jIhY14Ekmzz/NiWZBuQxAPYlsTzY5vnZJvLbEvifra5zFgIA2AQ/zLxLELGXGab5yTJGANIMpbEZZIwz8WYB5Bkm8tsSwIkAbZtS7ItCbDNczLGVAABYP5FkgDb3E8Sz0OSbUm2bUviORljJAEIAAPYBiTxfAkAA2CeySAASYCxEAIwBoQAYwAhhDEGhIwRzyZsANkAEoAE2AaMASFAEvcTAmxzP0k8D0m2uUwSl9nmCiHE/WwDxiDAtiRAEmCb52JeKEnYlsRlkgDb3M+2EAZAABjAMkYSRhJgGZDE/WwDtgFJ3E8SIAnAIGwDGMAYMAYkAZIA24BtQBKAeTYD2BZCPJsAMIAkwDb3kwTYloQN2AZJ2AgASYBtwDYgxLOIZzHmfpIwlhGyELZ5FoMwxlwhyTYgictscz9JAAbAAMaAJEAIsA0gns0AtgFjQAgwBhDPJGQBQoAxgAGMucIgAGNASMgYkISRBNgWMgYQtiUBxlxmWxKAeS62AQwCI2QbsCxkG8AgrpAEIDCWuUwS5gpjQIjnIYnLbEviCoEBbAOSuMxGGCHJgM2zSIBtQBJgG5BkW5KxDIAMwgAYhBBgGWMMSAJsS5LEc7IN2AYASba5n21AEmAsyVjINiAJsA1IAhCAbUCSJO4nCbCNADBX2EYIGfMAkrifbUmAbUlcZhuwLcm2JMC2JNsAIMk2V4grBAgAiefLFiBhGwAkbECABGBLAmxLso2EDQgASwJsAAnARsIGBLbFZTaSeW4GQLa5nyQwSLKNhG2QBCDZlgRgA9gAkrEk7meb+0kCbEviMklcYZ7NIIRscz9JPIBtLrMNSCBhgxCAkGUhzLPY5gGEACEAAWAkWQZkARjAmPtJ4n62eU5CCNtCgG0hBAZhG0DYlmQbQAgBQsYYy0LczzaAwDybkYSwLcQDGWPMMwkAYwwI2RZCYADbgCQuMwaEEJcZxGW2AUlIXGYbQAIEBvFstgGBbUA8J9sgCTDPj0EAQoBt7ifJNpdJAmwDtgFJPIsx5jJjQIhnMQACMMY8L0nGGCFjDEISYCwEYJ5FEmCMuUKSsRAvlG1JvGC2AUk8J0mAbcA2L5x5JvMvMAgA80BCXGYMYABJgLEQ9xNCXGHMZUIAAsA8iySeH9uAJC6TxAtgG1ElnpdtnpNtXjS2uZ8k7meb+0ni+ZHE82Ob5yIADOIK21xmLMRzMVdYFgJsIyTZ5nlJPBeBkWRsW5JtQBL/EtuSANvcz7YkHsggMAgAcz8DgG1JtnketnkA2zyLQTyThM3zMgjAGEA8kwCEEADiCiGeH0m8YJYxzyQADEIIsC3JNgKBAYS4TMgYAIwxgGWeTWAAkMTzYxuwDYABCZDEM9nmORgLAYgrbPMsBoExxgDGGCFjLjPGSDIGANsAYFsSIMk2l9kGhABJxkKAbUmAMQBgEBjAmOdkLAQgrrANSMI8k8AYC/EAthHPJIwBBIAAjAFjACGEsC2JyyQBtiUhMM9mnosx4lmEjLlCYK4wBjAIjLEQlwnxPIR4AEm2JdkGEBhAEveTwIB4IIkXShIgZCEA8ZyMuUII8QC2JfFvZowBYyFjLhMyBgCMMVeY5yCeySCeRZJtBOZfJAkAbPOcbHM/SbZ5fgwCEM+XhM39LGEjAUiykbjMkmwusy0JQBIASOIyCfMcJIEBMGAjAeKZBAZAYO4n8ZwkAUjimWwDtiVxhcT9bHM/SQAghEE8ixAGYZsHEs/LNg8gybZtSTyLxGWSbGMsc5ltSVxmWxIC80zimQSAAYwxVwgZc4V5Fkm2JXGZJAyAwACAsRACQNgGhGzznGxzhbEsCQNI4jJjIe5nm+dLYABjSULGxjyAsRDCNkIIEDLGIAziCnE/STwnSdiAJNvYBiQuk2Sb5yQwYBsEBvECCAxgzAMI2eZ+trmfJNs8kMAgACGuEBjbQohnMs9Lkm0uM+YKYxkDGHOFQQAYBOZZjDHGvGCS+I8giQeQZJvLbEsCjDGAsRAgZCxkzLOIF4l4NoFBAMYARsiYf4ltnpNtXgSSANuSgGojAZYE2AZsA5IASYBt7ieJy2zbBiQBtgHbgCRAEoABbHM/SYBlwDYgiefHNoB5NvFsApAE2OZZBCDEs5hnMsYA4gpJtgFskCQwCAwCYwBJCNtCxrYl8aKRBNgGbAOSeEEE5jlJMgiwLQmQxP1s80KI+1kGiedhjLlCEs9JEvczxmCeRZJtSfyLzLNIwiAAYwCwLQlzhRAgC7AMCAG2AQQgifvZAJIASYANIAHYBrC5nyRAXGYDFoARAAIDxpIASYBtAANIAowxxoAQgBAy5n62ecFsS7LNswjAtiTbgBDGMoAAhDCIZzEGJAGAbUk8L2EshLnCWAiBAYwxkgBj7icJsA3YBiQBkmwDtiVxP0lcIYwBjBAGsIyRBCBhywIQshDPJK6wDRhjhAAEYAxgnkkIGXM/IWMusy0JwACSAEkABozEZQIDYBAIDNg8iwRIAmzAwiBkkAzIAtuykCQAg8AYA4BtSZIA24BtLpNk27YkQJJt25Ik2bYNCCEASQDmmYQs21whEBhsBAjAAJK4TJJtQMg2IAmQxIvANpfZ5n6SuEwSYFuSbQSALckSIAzYIMRlErYBW5K5TOIygSVAgCTuZ4tnkmQbwObZhA2AJJ7JBmwDAkASYNsgAAwCAyBAkm0bCZDEZQbZADaAZFsSRgKwDdgGJAGSjDG2ERhJAMa2JAxgWxIgCYN4FtvcTxIgicskcZkkwIAtiStkGwCBeCYjBGAQz2SMAUnczzYgCQCEMAACkATYFgIASRjLgCyEbQBhLAnASLJtzGWSMIhnsQ0I2ZbE/WxLwiCEAGOuMM8knknY5jJjQJJtSbYBScaAJAAQAjD3M8g2AJIEADZgQBKAjQRgA0i2sSUBgCQAkARgA9hcZhAYJIFBgG1AEvezDUgChAAMYMz9JHGZJNuAJK4QV0jifsaSuEIAGMA295Nkm+fLPJMBJCFsCyEwz8EAtgFJgCTAtiReZJJ4fmwDknjBbCMwz2LMAwgZC/EiMAYkcT9jQAhhG7ANCBlzhQAQgG1ACGGb+0nifrZ5TrZ5AEmAbQAhC1EBG5DEA0kCJPEC2Ob5kcRzERjEsxgDGEASLwoBYK6QZJt/JduSeADbPIvEC2ab+0nifrYBIZ6LeT4MIInnZRAYAIFBABhh7ieJ+9nmfrYlAUjYtiUJzP1srrCReE6SeB62EUI8kHlekvh3kGRbEs9FABhjDMIYQDyLMeaZBOY5GbB5FoO4TOJ+BgAJAASAMSCJ58dYyBgQsizE/WwjXhBJtrmfbcA2l9mWBNgGbEuyjXgWYyEAcYUk2zwnSVwmyTZXGGPAmAcSgJAxIInnZQAERhLPSRJgWxIPYBtAYABjBCCEbFuSwFwmAMTzITBXGEsCjDHPwSAwz2Qsc5kQYFuSkDEGgQHzPCQZsJG4QuL5kWxjI4EBI2EEFhjEMwkAgXkW25Js85xsA5J4ASTxLALzHIwxgHgmG4QAkEHImCsk2eb5sQ1I4gFsS+JFZlsSYBvAIEAYZBAIkHg2m/uZ52bARkLCBgzYSFwmsM3zYZ7JIO5nWxIASOJZbEsAYFsSlwnMs9mWZBswYCPxTMI2yIAAjJAxl9nmuRiEMWAsCXOFJAyAQQAYIWNJACCEQTyLJK6wAds8kySem3g2g8A8i20hAPMcjLEkrhDPYlkIASCeg8AAkjDPZCTxnGxzmW0ewDaXCXGFEOJ5iSuEjAFJtgEEBpAESOIySba5TJJtLjMWAmzzTAYBtnkWG4nnIYnLJNnmfraRJGEjYfPcBAZxhXkWSVwmyQbMZULGCCFAkm1AEg9gWwJkW4jnIh5IEs/DtiSeLwEYYxDGPD+2eR6S+JfYlmQbkMS/hm0usw0IIYSMASHuZ4xBvIiEeE5CgG3uJ8mYBzAWss39jDHPyzYA2JYE2OaFM8aYalviMnE/SYAkwDYgicts8wJI4gFs2+YKIQTYBmwDkrifbUASz5d4JvEskrjMmMuEAMAYwACSeADbkgBJgG2eiwEhQACIKwyAACQBtgEMgAAQAOYKY0kABrANSAIk8bwM4pkEBhAAQoAlQADYBmzzXGxAgI0kQAJscz8BYMxlQgCAAGwDtgEh7mdbEpfZBiRxP9s8J0m8YLYRAAYjictscz8hwBiwjJEESOJ+tgEwSAgB2LYtiefHIAkQADZgJEASYJvnJAmwLYn7GQsBCCEusw0YYyTxnCQBtiVxmW3ANveTBNjmASRxmW1ACEA8i22ekxBgzGWSMIBtAPHcDGAMSOJZDCCEQQBCljGSAAxGkm0AsC2J+9mWhAFsS5IE2AZJANhCCMAygAEwV0jCPIskwDIGAyAwAMIYsIyRZFsS95MEAELGWMgYZBCSbWxJBkCAjSQwAAaBJAAbyQaQwEaAbEuyASQBtiVhAIQkwDaX2QZsA5K4zLYkQBJgG5AEAJIwCGPAGACELGOMMQghSQC2sQSAMRYIIQDbgG0AkATYBiTxnCQBtgFJtgFJtrmfJC6zDUjiWQwCQGBkAQYwEiAus5EAwDYgSWAAbAMC2+Iy2yAABAA2YJ5NEgiMQdhIXCEJAEk8B8m2JNvcTxJXSLYBSba5wgbEZRJgI2wLLAlhLGSbyyQZA7IABAZAALYBIcC2kG0ERghhW4jLhABjjCQAzHOyDUgCJPF8GcAYIwRgrjDmCoHBAMY8i8AgrhACMAiMJMAygEEAtrlMFs8ijIUA24BtSTyLMQaEjCUBCMAYIwmwjbhCyFgIMJYEYIQAY0ASgLENSOIBjPkX2QCSbSRAYBDPZAO2kQTY5gobCQkbCZvnYQCBbQOSAAQYBIB5ACEAkMTzY1vCgC1kLAlAABiMZUCIZxGAbcA295MEABjEs9hGvCC2+ZfYBiTxPGxL4vmxDUjifrYBSdzPNiAJkARgJHGFAWxzP0mAMeYKSdzPNlcIWYAxIInnIcQDGWMAIYQxBiQBknhOtnmhbHOZbUASUHkBJAG2eQDbgG3+JbZ5IIN4IElcZpsXhRCyzfMyVxgLAZjnS5JtnodtSZgXRjwXSbYRz2YeSAjAPJN4LrYBwFgI8fyIywzYgHk2SQZsSVwmMPezkbCReCaDuMJcYSwE2OZ+krifbQCwzWWSuJ9t/m2MJGPAtiRAkm0eSABClm1L4vkQ97PNZbYl2eYBJPFcBIgrDCBkLAmwLck2l9nmMiHAtiTb3E+SbUncT5Jt7mcbsC3JNveTxANIss39bHOFwNiWhAEsY54PYZvnZAwgnpexEIC4QpJtLjNGCHGFAWxL4gojyTYgicsk2eZ5GUDImMsMYFkIIdtcITCAbSFjSYCxkJAx4pnEM5krJAGSeBbxTMI2gAwgQDyAuZ8EAOZ+NpJtQICNhA1CmGeyjYSxLQmwLYkXTBIPIIn72eb5sc0DGcsYAANgEM8kCcAAQgDiMtsAIMk24gpJPICxEM/JNveTBNjmOUkCAEm2Ec9iIS6zAWzEM0ncTxIPYFs8m0E2D2DABsy/xCCeReIyg7ifJEASl0niASTZ5oEkAEACAAFI4vmSBAgZI4SMeV7iCmPuZ4xBXCEJ82wGcZlBXGZbEvezLQQgnsk8F2MM4pkMYIx5FiFjAIEBMIjnJp7JPC8hxDMJ24CxJMC2JJ6TkDHi2QxCFoBBPIsk2xjLkjDGQgjb3M+2kDHPjxAACBnblsRzkQADgI0AiWeyzWUSz8s295OEzQOZZxPPSdg8i3ggSTZgAIMQGABJgMAYQDyTeRZZXGEQgG3uJ4nnJZ6LsRAPIMk2IInnZJsHsC2J+9nmfpJ4wSTZ5jLb3M8295PEZZJs87wMgLjCNi8K80C2eV4G8VwkcT8hBCCJ5yGJF40knokKBnE/SdzPNi+YJO5nm/tJ4n62AUk8J0mAJMA2z8k295PEZbaNJXGZbUASz2IAxPMlCbAtiechifsZwCAAA+YyAQiMsAEjEFhgMIgHEoBtnkUAGMQD2QYQAAKwjRDifsaAMYABJHGZAAkQALYFSIANNpJsXhADIAAMgAAkcT/b3E8S97PNc7INSOJ+tgFJ3M82IAmwzXOyLYQAbANCgLEQ4gFsI4lnM4hnMgiQZJv7SQJsgwCDBIAxtg1IEjLmMttCgGWMEIC4whgDSOIyScayuMIIAQjb3M82YBuQBEgCbAO2JQGAbZ7FAEIYBIABbAOSbHOZbZ6TMYAAJAG2uZ8k25IASQBGyBhAAAjANs9insU2IAmQBNgGJHE/IQwCYyxkDBgLIQDbPIsBMABCyBgQ4jJJthFCGNuAMSCEEELYBhCAJMA2gACQuJ9twIAtCZAE2AZsA5KMZQAkAIyELck2AAaBASHbkgDbkmxzmSReKGMhY8C2JEkABmEZY5srBAKDEEjYSAKMBTYIzAMYgQXY5n5CgCTuZ2wsZBuQBAC2ecEk2ZYESOIySVxhwAIk2wAGgUECDALZSAAStgFbEiCwjQRYAgQGbECAJJ7JNs9kIWQM2AKDwAC2QSCeSRLPxTaXSQJsS8IGJBmQwADYFgACkAFxmXlekgDLGGMhBOZZhADbPJC4QhKAADACMBYSmPtJAkBgAGMsCWOZ+wnxLAYQAowRtoUs8yxGCMAAxgBGkjFXGADxLLa5nyRjSTwP24AkAJAEYBC2hXguxpgrDEKIZxGAbUAIwFxhGxCyjAEQtiXxQEIIAwhxPxsQWBJgmysMwrYkHsC2JEAChA3YBpAAARKXGQCBAAxYAGAABBgAAWCeTRIABrABIQAJEAC2JXGFADAA5gpjABDiOUkCbHM/2wACEOIyIS6TxPMjifvZBmzznCQBtrmfJO5nm/tJAmxL4oWSxPOwLYkrhBBgzL+BARCAJMA2gAGEAGOekxDimYQx5lkk2eYFkATY5n6SAIzlyvNjGwBsS+Iy27wAkgDbPCdJvGC2edHYBgDbkrifbe5nLGTMi8Y2IMk2z8EANoCEeQADGDCAucyAAcwDGGOeg3km82xGCAEgAAyAeSZxmcBCAALARhKYZzLPZBAACBC2JS6zkcAGQGAeSAC2JdkGJPGcbHM/SbZ5AEnczzYvmG1JPIBtLjMWAoQA24jnRxLPwULcT4BtnpNtnskgAQZAxgAIwJjLJAEYhBDCtpAsy0IA4tmMMWAsiX+JJJ7FGHM/25Js87zEc5HEZZJ4AGMhDIDAPAeBASQBkrjMNg8krjDGPC9jnodtni9hjMAY8ywCMOYBhIwRgG3EA9nmCmOZ+wkBxkLGGCFj7meb52HA5jJJPIttnkkSlwmBQRgEgA3YlmQbxLMIIe5nm/vZlsQLYBsw5gFsA5IAIWNJgG2MAPEsEmCQjAFk80ACDAAWxhhJiOcmg2RzhW1JgCTbkmzzbyBhbHOFeCZjIZ6bARuJZ5F4TgKDeG6SuELCxjwH8wAGgXkm8QC2uZ9tcYVBgAHARuKZzLMYSdzPtiSelwEwCCFjLhPiCmFbSJJt7mcbkMRlBiEAAwJzhY0EBmxLEuIK8xwEBkA8k8AYCwFCPIt4FmMMArDNFQIwlgUAGElcYa6wDQghnottSYBtScYAYCwEGANCAIBBAJhnEgAGgcA8F0m2EUKWbQvxXARgDCCukGSb+9kWAmwkANuAbSSeySDbkrB4Fon7GQDxLAZhDAgMAsT9xP0kbGMhAJsrbB7IBgxCPD+2hRDGGMQzCcyzGGOeDwMY80DCNs/JtiTb/OvZlsR/KNuSbANCgDEPIMk297MNSOI5GWMAxPMnAAQGEEIACMyz2OY52eZfzxhTecFscz/b3E8SYJvnJIlnEZhnEoBtQBJgm/tJ4j+IsRAgBBhzP2NAEmCbB5DEA5lnswFsnkXifra5nyRAiPvZ5jnZBiTxLEYIASCMbQNCgIXAGJBB4jLbXGEjCZAA27wgNgKQwEbimQQGDOLZbEsCMAghxBW2eQBJPIBtXmS2JXE/24Ak7mcsBGAQgCTANvcTAgMAwiAJsA3YBiRxP9uAJJ6TDYAAjLmfEIAAjAEhACGEeDYD2AYQz2Kb+0niOdkGMIAxYAxIAmwDGIQQzyIAYwADSAJsA5hnEQIQgBDiORhAEiAJsM1zEYAkwDb3E+JZBAYDSAJscz9JgG1AEmAMGHM/SYBlzBWSMLYlGQPGGCFACDAGEM9NXGEshEEIIQDbgG1JkgAMAhvAICQBtgW2ASRAEoANmMsECAMGg2wkcYV5JmEbsM39JAG2JdnmfpIA24AxBkAI2QYk2ZZkLMk2IGRswAACEGAQNkIYAPN8yGAMtiEASbZ5AIGEjW1JtgHbgG0eQJJtwLYk7mdbkm3uJ4TAYBBIMhhkGQsMAEjiCglAkm0ABEjcz7YkbEBcJnGZbSQwgIxBAFgGgTEghIwxlmRbEjYS97MNCAziMoFlG0BgI3E/24Ak25K4TBIgyTYASLIN2OYy25IAzANJAmxLAmzznCQBtgEQIDDIRjLGMgYAY0kA5tkEIIkrDOIKIQAQAox5TrYBWTyLwABCtnlOQgjbPIuwLQTYBowl2QYk2eYyYyHbgCSexQC2ASFjSRghBIAxBjCAJMBYEmAMSOKFEAAgifvZBoSMAQHm2QQ2l9mAJdkWMgZAEoBtnkUCCwMAQgaDwFhgwAASRuIKIR7I5vkyxpIAxANJ4lnEM4nnZp4v24AQIAlAAMY8D9sAIIl/iSTANpfZlsTzI4l/iW0hxAPZlgQgAMyzSAIkAbZ5TpIA24BtQBIgCTAGhAAEYBkQAhAAArAMyAIwgDEgifvZBiTx/EjiCvMAVEm8YJK4n21JAGCbF848mwGEEP8ZJNmWZAwAxjxf5rnYBiQBtrnMNiCJKySei8BIwgCIK4x5TsZCCAwgicuMucyyEALAPB/mMmEQmGeTeF4SzyJhI/FAwlxhns0GIWNJtm1LQgCI52Jbkm1AEv8S24Ak25IA29xPkm1AEpfZ5jJjBGBbkm1AyJgrBBb3E2CDhIwlARjEs0gCAGNACBAy5oEM4oEk2UY8B/NMwjZgjJEEYF50QpaFeE7GQgjMcxGyjLENSLLNAxhLAgAMgHgWSbaNhQDbXGEQkmxzmW1Akm0ewFgIABDPJjBX2OZ+thHPQQhxmZAx9zMGjHkAYyFjrhDPZJ6LEFcI2whZgCTbXGYbEMIIGXOZbS4zIPEsNpcZEAAIkLABAWAbSZhnEoAk25IA25K4n21eACGEbQxCPJttwBgQIEA2BhsDxlwhQQQhg20AjCEBGyQMsjECySBAEsISwRUGJIxB2PxLbEvifraFjAHEswlAXCaeyTyLbSTuJzD3k7jMNs8iYRskcZltAJtnEuIKYwEgMCAABOaZDAiDAABJtkE8iwEQzySexbYQ97MtiediEM8iiSvEAxlzmbEQYJvLbEtCPDeDDAAYJABkzAPY5oEEYCwEYADbPIsQAhCYKyTZNhbieQgBmOdlLISwLQQYA8ZCXCYJkIQBJNkGJGGEuEySbe4nZMxlxoAQD2QQQgAC8xwMArCNAGxLQmCukGSbK4wkLpMxz8FYSMLmuRhjEGAQz0EACBvEFRLmmWwAkLAN2Dx/kkE2z0U8N/NAkmxzP9u8EAbxHMS/SBLPjySeH9s8J9sAYFsS/xpCAOZZhIwBwDYPIMk2l0niCoOwzXOSxP1s8/zI4l8kACGekyTb/IuEbZ6JCkgANoDEs0jifra5n21eNLYBSQACY8xlkrjMNveTxL+JJNtCvABCgDEgBBjz/NjmMtuSAEmAbe4nQGCQeADbAOJZhAAMIAmQBNgGEAACsM2zCABsJK4wgAVgACQACcA2SOJ+Bmxs7ieJ+9kGbAMIQBaAEDKWxAMZAPFAtiXxgkkCbPMAkmzznGwDkgAhhG2eh20hwBhAABjAmPsJGQsJAYAxxhiQxPNjLGQMYAAhwDaAAIQkAcbGAAYQAmwDxoAkAANgAMSz2AYk8VyEEAKwDdgGJHGFMMZgAEkA5lls8ywCI4n7GQNC3M82IATYBjCAJMBYkm0eQJJtwBiQBAghMIAxIISwzXMyloUAEBghQBJgWwhA2AaMMVdIAmwbCwGSAASAAYwB25IkAba5wiAA2wBgW4j7GQsZY4wBSYAkABvABgyAhQAB2JZkGwCDbAvZRlwhS5JtQBIgyTYvgCTANgAC24AAMM9BCCQMwsaQthNzhSXJSKAowmADdhoJSMvGyAYbkBBECElgENgANoCdPIAkSQC2bYFtQJJtSYAkrjAABnGZwIBtkDBX2IABkIQtCRuJywwC25J4XhJgWxLPRbKRALAlYXOZAEBgJHE/2wiMJMC2JAwCBGDAXCEwiCskYSTZNpZkW5IxYCyEAGwjZCFsI4QwCASAAWwLIQDbPJBBPAdxP0ncz5JsC9kGJAGSuJ9tAPFsBkAAkgBj7ieEAYS4TBIPYFuIK4QxgAEkGQOSMADmCmMeQAgB2EYIYRCYZzLPRcgyIAtAGAsBmCuMJQGSANsABoEBEBhAEoCRxHMxgBBXCGwAAWCEAJtnkcRltgEhnk0AWMIABsA8ixDiAWyeyQYkAUg8iy2egyQDNmAMCAHGgBCAsC0JsM1zMYAkwJgrzPMhANsIIQABYBCAbUn8W9nmRWOb+0kCjLmfEGAshHk2AUjiAWzzLAYBYABJAAKwDdgGJAEIwDbPIgAMQgiQBRgjACGeh21JACCJ+9kGJBkL8RyogA0g8UJI4gFsSwIk2eYy2zwnSba5zJgHsC2J/wi2ecFsA5IAIZ4f2zyAJB7ANs/FgBCY5yCeRZJt7mdbEi+AbR7IAAgwiOcmZC6zDUgSz0EAmAewASTuJ4lnERjbCEm2eSAB2OY52ZbE87Aticsk2QYA24Ak25IA25J4IPHcBOYKYyEA8XwYABDiCoFBABhJgCTAtm1JljEYy0LGCAADSDIGAAyAwDwHg0BgJPGcJBljELZ5foyFjAEMQshYEmAsxBXmOZgrbEsCAGNJQpa5nzEGcYUx5vkQgG0ExliSbQzCNs9iEBgAASAwz2aEjG1LQmAAhJCxEMJYyDaXGQvZ5nkYcz/LQgCAARAYScbczzZXiCuMuUwSYFvImMuMuZ8QBoEBkLCRDNgABgG2AWxLsg0CAGMEgAEQgCTbPA9JtnkA2zwHgXlOBozBFhByiCIbiqQCCEg0NQ4Gn93Lp+/lxbUTB0gEdEWbnR50LM5sxqxSiyIcQggMxhhaCjCSLIQTm2eSxLMYAIMknh/bPDfzbOYKGzDPJsAGsJEAbCTANi+EzXOQbcDmmQwIDBjEc5Bkm/vZlsQVAsQVAgQGMAAG8UwCQGCusM0DGcsABrANYBAIDOIK20LcT5Jt7ieEQTyLbUkAgEE8iyRAljEvlDHmWYQwCMyzGHOZbSEhHsAYsCzEFQaQxBUCAyCEbBsLcZmxkCQMYBuBQTyTAIy5wjyLsRCAAIwBYwziWWxL4n7GkgDE82VbEvezLYnnImwLAQjMA0nifpJ4buYy2zyLQTyTsczzspG4QuIFMJfZPD9C3M82YFsSz0sAxlxhLHM/STwnSQDi2QRgG7AtiX8NSba5TBIPYBuQxIvCIP5lBvF8iGcTz5ck7mebKwyAwDyTQTyTwGAAY0n8a9gGEM9mENW2JO5nG5AE2OZ+kgDbgG0eQJJtwDb3k8RlkrjCALYBSfxHsM39JAGSuJ9tnpMx95ME2OY5SQIkAbYB2wACkAUgAcYIGRDPjyTbgG2ekxDiCtvcTwgwBoQAyxgEgAEkgYx5fgyAbACbZ5G4zCCJ52Qb8SySuMw2IIn72QYk2ZbE/WxLAgBJPIAk2zyAJNtcZlsSIAkwBoQABGCb+wkZSwKEAGMhHkgAtgGMJAwgCZAE2AYkAZhnMgghrhCAMYABEIBtwDYgBCAAIcQzGcAYAISMMcaAJJ6HMYCRhEEI2QaEeL4MgAEQtgFAEoAQwgC2AcSzGQDzbOJZLGMkARghY4xlDICQhEEAxgAGEAIwgG1AEoABJAEIIdsAxhgJWwgwBowBBIABhDCAsRAPYAxIsg0IAba5nyTAGHOFJNuAMQAgACFjWYAQxjIASLINGABJgM0DSTLGPJPAYBBX2OZ+tiXZBmwLIZ6LjYQk27bAIAljjMEoTaaBviIJJHFu6X+4J598Pp98r28956ffrUsr7S05v+vxUEikETQootfmdVy72U5scGrDDzvtl7klXu56PfpMbMyEEABT2hCiCAwG2yAhAmFbkiTbSIAkLrMtybYkSTw/tgFJtgWWAIG5zDaIyyRsQBI2ErZBEs9JEmAbG0mABNgAtgEhCQPINgBgnsU2gLANSLItifsZC3GFATAAAiOJZzGSbEuyDQhxhQBsC1nGAAjbkhDPIgkDCAHGkmwDGGNJtiVxmSSeRdgGEIAQYCzEAxhjACGeRWAAWcaSMFfYBhBCxgiMsRCAADAIwDLmmQQASAIsA7K4TJIxgLnCthBXGIRtSQAGwDyTuMI295ME2AZsA0I8gG1JXCbEZZJ4TrYBwLYkLpPE/YyFuEwSzyJsA5IASfxr2AZkITDPIgTYBsCAALCEzRUSIADMc7MNSAIAjGVAFoABELYlcT/bPCfbgBCAARCAJMAYwABCXCGei21J3M8295PEc5LE/SQBkgDbPCfbgCReEPF8iGczAAKDADCAJB7IIABj7icEIJ7FNmAbkATYBiRxhUE8X7YBSTw/tgFJ3M8YEAKMAWVLBCAJsM3zIwmwzYtMkm2ek21JXCYJsM39JAG2AQzieUkCbPP8CAEIAGOMQUjCGHM/SYAx5gohY0AIYZsXgSSMMZcZy0IIcZkxDyDE/SxjHkiIZxGAbZ4vgbEtSRL3sw0IAANgWyAJQOL5McZcIQQgAGNACABs8yKTxP1scz9JXGabBxACjBFCmCuMAdtCAGBZSJJtDOIKYyEE5jkIzAsiyTYPIAljzLOYZxLPwSCEAMQzmWcx5jIhYwCwLYkHsC2JKwxCEoAxxiAkAbZ5wWxL4gEk2cYgnpdtIcTzZVuSJAxgDAC2JXGFQSAwV8hCIDDG3E/ImAeQZBuDeCYbxAMY8wBCXGYsCQCEjLlCYGxL4gEk2eYBJNnGAMZcJokrDCBkDCDuJzAvgCQus81lkmwDgCQAsG0sxPOQBNhI2IB5JoFtjG1sjMDgNCAUEoeT/+wZ7c/vaH/2ZD/hNp27qHEqOanNlOCwMzWDANmAcELIE0xiUoRKupoiui6Pn8nH3tJe86F+rYfUh5+um7OwbRsbgw1IlhSSJAkkHkASl9mWsAEk8Zxs2wYA8dwMCBkAiechMNiWxANI4jLb2EjiMsk2NldIQsZcZiwkZGxbEpcZYwBJXCaJBzKAMZfJQjyTuMI2D2SukAQY25bEFQZxhSQAsG1bkhCAsM2zGADxfAkBxhjEMxnEFZK4zBjACCEA21xhnklIso0BjCXxQAaBADCAsRBXGMQVQgjANi8CIWPuJwnAALaNJQkZAxgAIYnLbPMAkmzzAELGGAQgifvZ5jLbkgBJgG0eyCCegwAwgG1JgCReMNs8D2MhHkDIGIN4IIF5PgS2ASSuMMaAJB5IyAJsI66QxP1s87wM4rkIIWxzP0nczzbPjyTANveTxP1sc5kk29xPEmCb+0kCbPMAtiXxojMIQMiYB5DEs5hnsQwI8VwMYMzzsC2EEEIYYwDbkgBJgG1AEmCb50cS97PNc0DZLAEgANvcTxL3sw1IAmwDtrmfJEASz8k2z48kwDYgyRgDSAJsA5hnE4AkwLaQMSCJZzGAsZBlACMEGAsBtgEEIAmwDSAAjBCXGXM/SYBtQBJgm/tJAmwDtgFJGCHAshDiWWwDQoAx95ME2OZ+kgDb/EskAQZANvczl9mAJMASgM39JBkLARjAGEACZABj7ieJ52Sb+0nifrYBSbYlcT/bCFlcITDGXCYJsA1ghIwRz2QAxLOZZxPPYhuQBEgCbAO2ASFAEmBZyDb3kwTYBjAAAsAAknhOlgEMAnOFkDH3kwTYBmzzQEIIEAIAYwQgi/tZBoQA29xPEmCbF525whiQxHMRmCskcT/bvBAGkARYFrINYABJgDFgEAjxLDLGNmBJRsjYMiBkLAQIGRtjJAEIzAMZA5IAWQjbgLGQJAAD2AaMAUmAJAwGMEbYBkCAJEAyCAMgrjDGAJIAwBgjhDDGSLINGGMkGQMYhBAgiedgwAZk22A7TWtYjpDN4cSf3pE/8Vf5J0+NO+/SOEkieqnikJM0mbilncZgZEDiClk4UEQopAgcENDIAey6yGtO5Ru9uN/rZeOx15QwtrNZOIIQkkKSkIQkAAyAbCQewDb3kwTYBmwDkgDzbDLGAEgCCZv7SQJsA7YBSYAkbCTANoANSOJZbAOSAAmwDWCeSRhjrpAE2AYkAZIAYwADCBlzhQEQAAIDSOIKY4wBJCFscz8hwDaAACQBtrmfJNsIQBZgGzDmfpIASdzPNmCb+0kCJNnmMiHAshAPYBuwDUgChADbAAKQBNjmOdkWAoy5TBIgifvZBmwDkhBC3M8295MEYBDGgCzANoB4NgNIAiwDQjw/tgHMswlAkm1JgG3ANiAJkMT9bAO2ASFAEoDAIADb3E8Sz2IQV9jmOUkCbHM/SQAGsA0gns3mCsk295OEkQyAAANgG5DEcxLiWQRgG5AE2AZsA5IAIe5nDGAASYAx95PE/Wzz/EgCbHM/SdzPNs+PJMA295ME2AZscz9JvGCSuJ9tnpNtQBIgCTAGMIAQgABs8ywCkGUsBCCexTaAASQBxoBtQBIgifvZBiRxP9vcTxL3s839JAFymisEYJv7SeJ+tgFJgG1eAElcZpsXQBKAucKYF40kAAMYcz9JXGGuMOZ+QsYAgEFcIQQY8y+RZJtnEQDmCkmAMeY5GAABSOIKYwwSAMbcTxJgm/sJAcY8fwLzPMRlNhKSbV4oSQDmWYwBAQgAjHlOkrifbcC2JEn8S2wDQogrbAMYhCSMMYABJBnzPISMucIACEDIGPNMQhIGMLYNCCGEjLlMkm0M4pkE5gohYy4T4jlZxjwHg7jCtiQeyADGXCaJBxAy5jJJmOcgMIAxlwkBCNsAIMk2z0OSbcyzWJaFeBbbkiTZ5jJJXGYbAGxL4gUQMuYKgbEtBCCusC2Jy4QAhG1swCAkZIx4LkLGXGZbElcYBALzTALzQLYlCQEI25hnEldIwjyTMeYyY0kgMAAIAYgrbAOAJACwzWWSbPMC2AYASVwmCbAtAQKDWpJGGLfJSmI0T76v/fBfj7/4V37y7SZLPyt1FkIyMjYJKZwkdjptbAAMIIMEQligEhGBJAkFyAgHadqYSZt308s8JN/+5bo3fXR/cqGwRQZERIRChJDE/WwAAcIgAGzzAJJsA7YBSVxmwOYKIcQVEjaXSeIy2wA2gMT9BEi2ucJGQpIBGzAIJGyexQCIK2xzmSQusy0JkATY5nmZZxIPJInLbGMQgBDCNlcIWYCxbUk8D0m2eSADGHOZEICQxAPYts1lkgBAyJjLhLjMMkYSYJsHMBbiMiFj25J4HkLGtoW4zJjLJAGSANtcYZ5JCCGexbZthBDPj5AxD2BbEiAEGAOSeE62AcC2kJAxgEBgHsi2EIB4FkmAbQBjLAkQQmCeSdjmfpK4n21AEmCb5yQJsM3zMogrJNkGsAEkALAtiStsJEAAmOcgyTZgLARgJAEIwDbPxRhLAoS4QtgGMAghwJj7CQEIwDYASLLN/SQBtvmPZhuQBCAw/yq2ASEEIAQYcz8hAAHY5jkJ8SwCsM0DCBlzP9uAJO4nCbANSOJ+trmfJO5nmysEBlCmJZ7FNveTxPNjm/tJAmxzP0mAbe4nCQNYBgAMIAQYA7a5nyRAEs/JWAgD2AYQgCTANkIIsM1zsg1IAiQBGMA2YAxI4jlJAmwDtgFJgCTuZxsQQlxhG7ANSAIkAbYBIS4zCIMQz2Kb+wnxLAIwBjCAEAAGbANIgAAwzyYADIBt7icJkARgAyAAAWCexRiwDUgCJHE/29xPEmCb50tghBAPZJv7CQG2AQRGEmDM/YQAY0AIsA0gACEAAyCexTZgGSOJ5yQE2AYQgCQAYxlzhRCX2QYQQsY8J9uAEGDM/YQABGCMkcQLJgmwzfMQ4jJjAAFgAEmAbQADSAKMhTCAZQCDwADGgCRAEpfZBiTZBmwDkmxLAiTxnGzznGwDErYAYcAgCZAE2AZsA5IAIYxlIQTmmQRgG7ANSMJI4gqBQRhjjDFXCAGSAGMAA0gCLPMsBsAIGQOIZzOAJAABGGOMhSQBtnlOtrmfJEDIGGMsybYkLpOEjYSNZNNMa5ZaCa0z/uGe9o1/PP3gHzBcqHTUuTs7EC4RSAAWBmMbGxsbA2AMGAvJIMkIFaFAAnGFDUEKy8jNHiYwt1zL+75Cvtsr1uu2FAaphkoQsgDJINsIkHgg24BtQBL3sw1I4n62JdlGCAGSAGyukLjMNoAtyVxmA5IMkgDb3E8S2MZYCAQ2lsWzCEm2AduAJJ6TJMA2VwgMYBshxP1sA5IASYBt7ieJBzIIwDZgm/tJAiQBtgHbgCQuM8YAQoAkYwQgBNgGbAOSACHANveTBCCexTbPyTYgifvZ5n6SACHANuKBbAOSAEmAbQCDkAVYBiRxP9uAbe4nieckCbAN2AYkAUJcZiyJ52QbsI0QAjAA4llscz9JmGcSgCQAA9gGEIAkYwwgZCyJ+9nmfpK4n23ANiAJkATYBmwDIAAMSAIkAbYB24AkXjBJABgL8Sy2AduAECAJQAC2AQwghDAGMIAkAAHY5n5CgLEQlxkDCIwkDAKDuMI295MEALa5nyTANveTBNgGbHM/SYAkwDZgG5AESAIwzyYA29xPEmAbsA0IAZK4n20AAUjifrYB24AkQBIAYBCAbe4nCbAN2AYQmCskAZK4n23uJ4n72ZZkm8uEEIBtQLZ5ANvcTxLPj23uJwmwDdiWxItMCDAGbEviAYQAxHOxDWCeSTyQJMA2z8k2IAmQhLnCGAMgnpckwDbPSQhAAJhnE4BtXjAhZBDmeRlzPyGeRQC2uZ8QAsA2YBskScI297ORACRsns02krhMiGcRBmxACDDmOUniAWzzIpPEc7INGAtxhUE8k0FcYSzEFQbxvIQADOIKYwCDeCBJtnkg80xCEpfZBjAIQBIGMMYgrrAtSZJt20JcZsxlQgCAeC6SbGMQkmxzmRBgDGAQz2QQkjBXGHM/SQBg27YQ4lmEuMzYthCXGQsBCElcZpsHsC2Jy2xL4jJJXGabKwwCgbEtictsi2cySOIBbAOSACFjDEIS5pmEbS6zLYnLhAAE5pmEbS6zzWVCAOKBhIx5XuY5iAcSAoy5n21JkgDb3E+SbS6zzWWSJNnm+REg2TaysYGMwOjv7mtf8wfrH/n9urwYzDM60UJ2oJACCSSQDMgY2zYGAxZgzGUCQEggJJBAIAADYEg5ZQQCWWGnaXnNiXiPV/MHvXx3w07UIHBazYQoARiwASRxP9sYxAPZBgBJXGZbEpfZliSJK2yukLjMNgAIzP1sJACQZJv7CQCDbUkIjG0hAHGFJNtcYRAPJMk2DyDJtm1JPA/bknh+hIwlARjAmMtsC3GZsSQewLYkHsC2EM8iXhDbkiTZxgDGQgACkARgAGMuEzK2LYnLhIx5ANuSuMIgrhAy5jLbkngeQsYYBCAJwADGXGEAY0k8D0m2bQOSAIQswBiQxHOyzXMxxpJ4ANtcJgQgnknI4n7GXCEwV8hCPJO4wjb3k8T9bAMABiFkzAPYFgIQV0jiMtuAbUASAgMGSQA2V0gCMM8mANuAsRCXCQEIwLaxLEASYMz9hBC2eSCBwSAAIcAYQGAkYRAYBGCb5yQJsM1lkmxzmW1JgCTANmCb+0kCJAG2eR5CXCGexbZtSTyAbYQQAAhxP2OuEJjnYIwlcZkkAPMsxjyLwDyQbUAS95PE/WxzP0k8J9vcTxJgG1BmShhkIWxzP0mAbe4nCbDN/SQBtgHbgCRAEmCb52QbkARIAmxzP0mAbUAIQAC2AUmAbQADSMIYAwhAEvezDdjmfpIAIS4zFuJ+lgEhLrPN/SRxhQGMAQSAeRZJxkI8J9vcTxJggxAGsAxgQBKAAYwlGWMkAba5nyTuZ5v7SQJsA7YBSYAk7mcbsA1IAiQBGACBsQwIAbYBIcQVtiXZBiQBtgHbgCTuZ5v7SQIkAcYYIYRtwDb3k8T9bHOZEOJZjDGSeE5CgLEQArDN8yMJsA3YBoQASYBlIduAbUASIAmwDWCeTTybARCAMSDEFQbxXIS4zBghhDHGCFkGjDFXSAIkAcZCtrmfJMA2YJv7SQIkAbYB21whhDCSAGNJtgHb3E8SgMDYBiQBkgDbAAaQBBjzbAJjA5IMthFCABgE2JYEIDBXCAHGQsaAbUASIAmwjcAAsiwDkmwDtgFJXGYshJEEGAO2JXGZbUCSbUmAkG3LQpIA25JsA7YBSYAkHsA2IMk2ANiWBCCEMAgbCRtsbEISadlk2nZf49zgL/+99bf8au5fDPez0k0xjCklxQSOEGGHEBgBFrINBozFFQJsJEAGIQTIWAhZYMxlIiFJQoCUoVackleuOZUT1/nTXt8f9UpdDWwPjZBqWBK2hQBjkIRtMBbifrYlAYBtSbYBSZJscz9JBmzZlgBJgG3uJwnABmwbJAGSAGwAG2EDQoDAgG1AEiCJZzGAbQABSAJs25YESAJscz9J3M82z48QYAwgAFmAbcAYIQRgAGMuk2QbkARIAmwDGAAB2AYk8S+xLck2IAmQZIwBhLifbQABCBkDQgjANmCb+0kCJBkLAbZ5fiQBtrmfJAADGANCgG0AAUgCbPP8SMIYI4QA29xPkm1J3M82YFuSbUAS97ONkAVIAhCAbSEuswwIAbYBDCAEWAYkAba5nySMMSAJwDyLMc/FAJIAhI0EYBuwDUjiOUkCbCSeyQaMBAjANveTBBgDQoBtAANIAoy5nyTANveTBNjmfpIADIAAjLmfEGAbsA1IAiQBtgFJgG3ANiAJkATYBmxzP0mAJMA2z8UAkgDEs9jmOdkGJAGSAGNACDAGhADbAObZBCAJMAYwgJCxEPcz5jnZBiQBkgDbgCTANveTxHOyzf0kAbYlKTO5nyTbvGCSANv8GwjMA0kCbHM/Sba5TIj7GfM8hABjjLEkQAhAALZ5wYQQAMaY+0kCbPOcJGGuMOb5kcTzYxuwLYkHkATYBoQAxHOxzXMxiCuEAAtsLpME2IB5AEmADZjnIYR4IGNACLDN/SRxP9vcT5JtAIMAJNnmMtsAQkgSYBsQAowB20I8ixAy5jLbQojnZhAPJAmDQSAA29xPkm0AkAQYY2wLAQghY56TMSAkyTYvAiFjnoexkCTbtiUBgJAxl0myjUE8kG0uk8QDSLJtW5Ik2zyQeSbxfBjEFULGACDJtm1JPIAk21xmW5IkjDH3E+IyYy6TZNu2JIHBIJ4PYyFJtnkgg3gmg3gOAnOFkDEvAlkIY8C2JCFjDIDAAAghY9uSJNnmCoF5IEk8gG0AkGSb5yHJNvezsQ1CkiwAJusXnjx99s+NT/nbaFvVM3kSbjhTMrIFCiMsI7Bkns22JK4QYIwESAAIQDYAwgjbNhLCYIxAIEsZttKpcC2EyjJf5iXa17x5ecWbC7glzQpRgytsAxiEMQASALYl8QJIss1lAvNMsi3xALYliedgsC0JECBhcz/zLALzAJK4wjyLMc/DtiReAEkAYJsrBAaDkIQBjAFJxrIwxsaSAEDINoCwLYkHkGSbF8C2JEm2uUzIGIOQZJvnIWTM/YQQGMCYyyTZxiCEuMwYwACIK4SMuUySbQCQZJsXRMjifsZcYQBjSQjMFbYl8QCSMIAxQgiwzf0kcT/bXGEQV9iWxPMjhMA8k0EAxlwmyTaAARAvhBDPIgDbvFBCXGYMAAjMi0gSgAGMAUmAbS6TxPOwzf2EELa5nyTANvcTQtjmfpJ4TrYRQsZCgG3+9SQBtnkA25IASYBtrhAYwLYQApDE/WzzvAwCkAQYA0KAbS6TZJv7CRkDgBBgDAAYSQACc4Uxz8O2JEASYBuQBNjmOUkCbPOCCLWWkm0k8fzYBiQBkgDbkrjMNveTBNjmfpIAwDYgCQBsI4QA2zw/QtzPmPtJ4n62AduAECAJsAwI8Zxscz9J3M8295ME2AZsA5IAIe5nDNjmfpIASYBtQBL3sw3Y5n6SAEkABmGMeSBJgG0AA0gCbHM/SQAyCADbABIg7mdbAmSb+0nifsZCxpgrhAAEYJv7SQJsS7LN/SQBtrmfJMA2YBuQBEgCMM9iDGAASVxhEIAxgAEkAQgAA9gGjAFJgBBgDCAAWYAxl0kCMAjANoABJAHG3E8SYJvnRxL3sw1gEEKAMYAAhADbPCfbgCReMEmAbcA2IMk2l0niBRMCMIAxwjYgCRDiWQRgG8AgHkgSgAEQgG3uJ8SzCGPMFUIIwDbPjyTuZ5v7SeJ+tgHbgBAgCbCMeSBjIQCwDUgCJAG2AYQQBsAAljEIQAjAPJsAjAEMAoGxLUkSz8k2AEiyDWAQEiBskGUMBiFkbBuwAYzSACUoobNrf86vrH/wV5nWHcdKW+FIm5QyATDGMthYAgBsxP0MEpLEZTKXyQIECCwDxgJIG2NZYAksAbZAUoKRXCpSqJNX3ujHj38Lf/Jrz4Dl6CJ1BQmwbacBgYVBEuYKSTwnSQCAQQYBGGMAGwQGDAASIMAWl0lItgFsQBJgCYMMEhhjZCwASdzPWAgDGAOSANuAbS4T4jJjQJKEzbNI4rmYZ7EMCPEsBrANIAAhAANYxiAASdzPNv8SSQAGwAAIY4QQ9zOWBdgGEIAkwBgQ4n62AQwgZAwAQgDiWWwDCEASYBuQBNgGbAOSAEmAbUAIMAZsIzCAJO5nGxACJAEIwDYgBCAA29xPkm1JgG0AA0gCjLmfJB7IWBbCALYBSYAxz8k2IInnJIn72eZ+kgDbgG1AEs9JEoABbAMIQAgAgwAwCDAGbAOSAEm2AUASYBuQxGW2eQEkcT/b3E8SYCyEAYwBBCALsIx5ICHuZwxI4jnZBmxzP0mAJO5nG5DE/WxzP0mAbZ6TbUASIAmwDQghAMAYkMX9LAOyAARgm+dHEmAshAFscz9JgGUAAwgBxjw/knh+bHM/SYBtnpNtQBKgzOQFkGSbF0ASYJv7SQJscz9JgG2eRWAAhCzAmBeBbUmAJMA2z48QgHgW21whMAAGgcA8k8BcIQRYxgC2JQFC3M8y5pkMgAAQmCskAbZ5FoN4ICHEFbZ5TpIA29xPyBgDIAAhnkU8gEHczzbPQxLPyTb3k8QD2OaFkgTYBmxLEkIAtnkeQgAGYRlzhRAPJIwxtoUQgCQAsI0xBiTxggjMA0niCmMMYBBCxjyAJC6zzfOQxP2MMcZCkmxjEA8kZMyLQJJtAEBgnskgrrAtiechyTaXCXGZMQ9gW5IQzyJs8zxsS5LE87DNZZIwGATCNlcYhCQAsM1lQsbGQjwvg7hCEmCbZzEAApBkG4OQZNu2JB7AtiQhYx5ACDAWMgYwCEmYZzIIwJgrDEKSbduSJPGcbPOCicsk2zyAbcAmTSIbyaH4q3vbR/7o+m//upbjNSys1nC1jSENxgZsg01yP4FBXCEASQIEIJ5J3M8yNhgMgA0CkAxIPJBAIoo7RYSyQrgctdd4uekb36q/8VhMtk1IIdt2WljCyEKI+0niMtuSJPEsBvEstrEBJGzzTJIAABsJECDZBjCABJJtrpCwucIgrpDEFeZZjAFAyNg2lwnxAMaSJNnmOUniWcyzWAaEeBYDGGMQkjCAbZ5FXCEJAGzbliTJtrGQJNu2JQGAJMyzGAOAEICwzRUGMJaEEAKMASHANg9knk1ghBDPZCxzhcA8kCTbgG1AEpcJGWMQL4iQsW0AkAQIcT9jQAgw5oEE5oFsSxICELa5nySexTyTwADGGMTzss1lkhCYZxJC3M82z5cxliQJsM0DCGEsA4CQMQYhCfMsxhjE8yWEMAaEANu8cAJzhW1JPJAQwhjzAJJs85wkcT/bgCSek20ewDYgCZDEZbYBSdzPNveTBNjmAWxL4n6SANuAJO5nm/sJcT9jQAgwBoyFANuSeE5CgDFgWwjxHAxCyJj7SbLNA0jifrZ5TpIA21wmyTZgWxIAKNMSgG3ANiAJkMRzss39JPEAtrlMEs/JNs+PEPcz5gWzDUgCJAG2eX4kAbYBSYBt7ifE/Yy5nyTANveTBNjmfpK4zFgIwAAYAAEYcz9JgG0AA0gCEIBtQBL3sw3YBiQBkgCMsSTANoABJHE/YwABYAAhAAHY5vmRBGAABGCb+0kCbAOSANuAbe4nCZAE2JZkG8AAkgDLQhiEbe4nxGXGkrjCWBYy5jIh24BtQBIgCbAN2AYk8UIIjG1AEiAJsA3IAhCAMfeTBNjmMkkABkAAtrmfJNsABnGFbe4nCSMEGAMIQBJgm/tJAmxLAgDbAAaQBBjznGwDkgBJgG0hLjPmuRhAEoAAbPMsAmMbkARIAjAAwliIy4wxgBBgDNgGJAGSANsIGZBtwJjnJIkrDAKQxLMYwDZgWUiI+1nGGGMkAZJsc4UBjAEhQBKAMJbF/SwDGEAIMAZsA0KIB5LEc7IN2AaEEJJsG2QLkIwkrrAN2AZsmpUGjPRTfzd9xI/kxXNdt6OSaJIKNgYLsI2NDbYTbCeAJYEAjIUAWUgGApAkbISxhAwYY4vERoCMhTBCMkgSBhCEkBxFJYiQAwIH7OeNN7Zve9fyqrfEanAEJbDtzBCBLRmBwJIASbYBQBIgCQAMsgFLgGzANsIgyxiQJGTM/SQB2GAsEAIwti2JZzEIDIAAJBljMJIQtgHMMwljQBYgBBgDCEASYJv7ScI8k3gutnkWAcjiMmMhwDbCGMAAkgBJgG1eMNuAJECSsRBgG8AAkgBjwDb3kwRIwjyTAGxzPyHAGDAGZCGEbHOZJGNJgG3ANiCJ+9kGEIAsnkUAkgDbiCtkAbYRtgFJgJAxl0nifra5nyTANmCb+0kCJNkGhLjMspAxgHkWSYBt7icJsA3YFjIGJAGSANuAEIAAbAO2uZ8QzyIASYBtAAMIGSOEuMw2gACEAAxgDEgCjAHbgBAgCUA8i23ANiCJ+9kGJHE/24AknpMkwDZgG5DE/WwDkgBJgG1AEvezzf0kcT/bgG1AEiCJ52SbB5BkG5AE2AZsA5IASYBtQBKAARCAbe4nBBgDQtzPGLANCHGZMZdJAiQBtgHbAALzQJJ4TpIA29xPEvezzf0kAbYBSbYlAbZ5DihtAWCbF0wSYJv7SeJ+trmfJJ6TbZ6TbUkABgEgMA9kLMTzEAKMuUySbe4nCbDN8yPE/Yy5nyTbXGEQQoBlzBWSeC4GwCCuMOYFE0IAtgFAEgZA2OY5SQJs81wMgAAkYYx5TkKAMQDYBiQBgLEQl0nifra5nyTANs/JtiQAsC1Jkm0uk2SbKwziCiHAMuaBhADEczHGPJBtIcQLIck2lwkZ8yIQ4jJjXihJPIBtnpdBPAeDeCYDCBkDCCFjXgBJgG3AtiQhYwAwFhIyxgDGkngAIcAYwCCEjLnCICRhjLmfJNs8gBDiCmNAiMtsA4AQABjbBhBCPC/zLMZcJgkAhIy5TBIPZABj25KEuMyYy2xzmSRJtjEIIWMMYCxJCLAMCGGuMOYFMxYCANuSJPFcjDEPIDDYFpdJXCYJwAYMLd1SxoYp4yt+Z/mFPzd5XWLRMZYISQgwyFxhDE4MGNtOAAMIkAyAkACEMCAJEGAAgS2wwTjBCAwgAAlkWUICcKAIIohAQgGBggDBNHqxPX39O5Y3f3SxUzYAFkhI4jKDJECSbQCQBEgCAGMhwDaXCQzGsngmIwkZc4Uk2yDARgIZc5ltSQgMBiFkzPMyCAQG80ziCttCPIu4QpJtnpMQAAYhnottHkjIAox5Hra5TBLPQ5Jt25J4UZgrJAHGtrlMEs9JCEAAtrlMEgYw5jLbkoSMMYjnwwDGkrjMNpdJ4gqDuEKSbZ6HkDEPJDAYBCCJ+9nmAYSMMc9iLIkHEOIKAdjmCoO4QpJt25L41xACEIBtY1lcZiwEIF4g80xCkm2eHyHAGIMQMuaBjBDigYy5zLYkHsgg/hUMgHhRSOJ+trmfJMA2L5gk7meb5ySJ+9nmOUkCbANCPIsAbHOZJNvcT4j7GQO2hRDPYhuQxAPYlsRltgFJ/CtJAmzzr4YyLRkAAbYB29xPEiAJsM39JHE/29xPEmAbkGQsC0AAtgHb3E8SIAmwDdjmfpIASQAGMAYQQlxmm/tJAmxzP0kAxpjLJBnL4n7GgG1ACJAEWAYwkmxzP0kA5vkyBmwDkgBJ3M8295MEYIyFeABjIYRtwDYgCcAACEASYBuwDQgBkgBjwDYgxP0sYyQBQlwhbHM/SYBtwDb3k8QLJgmwDdgGhABJAAKwzf0kARgA8Sy2AQyAeBZZCNsAApDE/YwBzBVCCMAYc4UkwDb3kwTYBjCIK2xzP0mAJMBYyDZgGxBCCAG2AQQgxP2MAQwgiSuMMYB4FtuAJEASYJvnZBsQAoQAy4AxgAEkAUIABkDYRggZcz8hwLYkywBGEg9gGxBCYJ5J2OZ+QoBtwDKAkQTY5goByOJ+xoAkQBJgGwCEEM/FNoABJAHGgG0AgZEECAHGXCZkG0AAkrjCIIyFANu8YLYBIWNJgCTANs9FCIExtgFLYIGNEEISALYxtGRqBpaTP/bnjr7nlzptec6U2bXsFQosSQAWBgnZ2DbCtsEYA0ZgxGUSIITAAEIAkgGBjbANxikAgzACQAhAYQSCCIUUYQlCCMkKhEinmZxq7Svfze/xcl22FCgMCiFJgISNBEgCbAOSAEk8J9u2JSEwGABJGGwLQAIkAGzANiAJMAC2AUmAEJcZSwJsA7YFBkASIARgAATCNmAbgQEkgSQA2xgEIAmwEeYKCWwAhADbgG1AEiAJsA3YBiRxP9sAIGQMSAIkAbYxCEASBjCWBNgGbANCCCEAAxgjbAOSeBYDSAIsA0JcYYyFEIBtXggDSAKMAdtcJsk2IInnJAmwDdjmfpIASTwn29xPkm0ukwTYBjAA4rkYY64QAiQBCMA2YJv7SeIFk4RBABjANveTZCwJsA1gAARgG5DE/WwDkrifbUASz5cBJAHG3E8S97MNyAIQgDEgBBhzP0kA5lmMuZ8knsUAtrmfJMCY+0nifra5nyTuZ5v7SQJscz9JgG3uJ4n72QZsA5IASYBt7ieJ+9kGJAEYwBiQhAGMJQG2uZ8k7mcbwACSAGPANiCJ+9kGJPGcJAHGGCHLQoBtnh9JgG1AEmCb50cSYJtnQrZ5ANuAbUk8gCTANv8aknhOtnkA25IASYBtADCWBSCeSQhhjLmfJNuAbUmAJMA295ME2OZ+kgDMFcaAMUYIAQgBxjw/QjyQADDGPD+SAGPM8xLiWQSAMeYFMc8kAAQGsA0IIYQAY54f25J4AEmAbcC2JElcZpvLbHOZJJ6HbUm8AEIAAmPMcxICEM9im3+JsZAk7mebKwyAkATY5jlJss0DCcwVkmxzmW1AEiDJNg9gm8skCXGZMQ8gyzKX2RZCAELGGGNAkiTbgDFGkhBgzHOyLcQDiediW5IQD2CMQQgZGwsJAcY8J0nczzYgBCAwxkLGPIvAYBBX2JbEZbYlcZltIQQG8SySbPMAkgBjQBYAGNuWJGTMA9gWAhDPS8iYB5AEGANCAGCbyyTZ5gFsS+IBJNnmBZCEbZ4/SVzW0i0BA4cj7/X9l37u16uurdEcKaLaFQgsAQRgBCDABrDBtjGAjYwRVwgJJHGFkMBgLhPYxthgYQGIK4wQgMIISYRQKEABgYQEALZpkLiV1HL82LfgE15z3kUWpSSBJEkSzyKJ5yTJtiTuZ9u2JACwLUkIDBgwiGcSMhgDGIkHMgghLjPmBTAWEuJZDAJhmxfORpLEFeZ+tngWWYAxAGAQgCTAtm0ukyTJGAPYFuJZhBCXGXM/SYBtAJBk21gWgBDiMtsA4gpjISFj7icEWMYIIR7INs/DtiQhY+4nBNhG2AYk8QJIss3zsC0JACTxALYxiOciBBhjEELGPC+DeBYhhG0us81lkrhMkm0uk2TbtiSekxBgjEEIGfO8zDOJKyTZxgCI52IsBADGQlxmLAtAPAchCzDmfkLczxgQQtgGbEsCELK4nzH3k8SzGMCY+wkhbNuWBCAwz2JbEiCJ+9nmfpIA27wIJNnmeUiyzXOSBNgGJAEYYy6TBNjm+ZHE/WxzhUEIGQPGQoAk27wAQsY8i8C8cJIA27zIbAOSqm0EIMT9JAGSuJ9tQBJgG7ANSAIkcT/bPCfbgCSehyQeQBJgW4grDIDAIBCYZ7EN2OZ5SOKFE4BtwDYgBAjxLAZAvDDimQTmWSQBthHPZF4IY0AIMOZ+krifbR7IIDDPQQCIK4QADAKwDUjiuRjEFZJ4AEm2eQDbkgBJgG0usw0AkgBJgG3AGMAAQoAxgAEQD2QsBCCexTbPSYhnMYgrbAOSeE62AUlcJsk29xNCALaNJdnmOdkGMAACQGAk8QBCxgAGsIwxBoSMhQBjwBiQxGWSbAuBMQhAEmAbsA1I4n62ASFAEmAbEMIgAARgmyuMZUAWgHgW24AknpMQYAxgACFjSdzPNoB4FkncTxIPYIwBhABJgG3ANiCJ+8lCXGEbkARYxtiWJMm2ECAJYwwYA5IAhJBtAIO4QhZgzBUCAxhLMsbYBiQBkrifbcA2gAAEBiEAjASAMUIIwDZgWxImTdolGBvv+/17P/er83oTZZgaZVInImSMsU1YxhgkhAAJW7YRMsaAuMJYlgEBFkISgAWWsYwxBgsbMAgwlxmBhYwlAQJkbISNhW2BsEm7QZMZ0zN9wQ9z8Wj4wjfqogBGADJIIAnbXCaJB5BkG5DEZZJsAwACsCwEYCNsgyQwIAQ2yDYgCRBCYIwlITCAbUASIAmwLYQxlmQMIIQwCEAGhADbALYBASDAtiRjDCAA8Swy5jIhAPFcJNnmMtuSELYlYRCyuMJYBiRhEJhnMwjbgBCXCRkL8TyEMMaSAMSzyAIQgG2EEM/LGAMYY0kAAvNs5oEkAbYxCEASVxgEIAmwLck2IMm2JABjWQhxhTGAARCALJ4fSQAG8UziudjmOUmyDUjifpJ4XgKQZVmI5yQJsI3AAEIAAhBCXGHMAwhxPyHbXCEsAxhAEiCJZzEAAkBcYSzE87AtCfMvMIBlQIjnIYkrzANJ4gFsA5IAwLZtQBL3s839JAG2AcC2JO5nGwBsA4BtQBL3k8SzCCGeh21AEiAJMMZcIQmwjQCMuUwIkMRlQggAAxgDQgAGQACYZ5EE2AYkcZltnockLrPNZZIA24BthCygAhjAmOdkG5DEc5JkWxL3s80LYJvLbHOFQQCSbHOFARDPyxgjyTYvgCQAYZvLbEvi+bHNc5IEAEKAMQAgXhiDADAA4grbkgDbAOZ5SbLN87DNczLGPAfxLLYlSbItifsZYwBjScYYAIG5QpJtLjPGPBfbPCdJPIBt7icJsC2JK4wxVxgEgAEQCIyxEAbxLEIAgAEQtnkggbEtiSvEA0niMtvcTxJgW5JtXghjLMm2JMC2JK4QzyKEeCaBsY0AjAFJAAIjhJBlLMRlkrifbUCSbSQewDaXSeJ+QsY8D0m2Ec9ijLnCshCXGQthEAiMJO5nG5DE82Uk8QCSbHOZJNsAIGTMA0gCMC+IJK4wgLEsY64QL5B4JiHLmMtsS8IAkmzzQALzbOaZjDGXSeJ52OYySYBtSQiZZzJgJAxgLGSb+7W0TUApjKmP+tFLv/DrfbmuZ9VSSmQkbANgANuADICxAGOMwABCyAACCyFkgzAIbIQMIMsgyxiMAQPCRjIGECAQElfIQmBskDFgGYzTNNEASwNxzN/407nJ9GlvvKhyCRdZsgiEEQBI4gWwzf0k2ZbE8yPJNkgCAyAMQtzPWMgyxpj7SeIySdzPthBgDAAYBIABDMKYZ5FkG0kAIMnmWYwknotBIDDPZp5FEs9ink0IIZ5JAAgAgQFsc5mxEJfZFgKMAWNZgLGQJNvGQoAxgEEIAQDi2YwxANiWxGXGPIAxgEFgnkUSl0niWQQA2JYEGAsBtiVxmSTuZxuQhHk2gQEQzyYAYy4zFkJgnskgEFfY5n6SbPMAtrnMtiT+JcaAbcQD2eZZBMYYkIW4whgAbEuSZBuDeBZJtgHM87LNAxgLcT9jnh9JmAcy5vmxDAjxnGzzAJJs84JJ4n62eaEk8QC2JdkGJHE/25IA25J40djmfpK4n22ek21JkmzzLAYhZIwBjGXxnIwBxAPZlgTY5jnZBmzz/Njmfra5nyQAAVTbkviXSAJscz9JtiUBtnl+bPOcbANCACDJNvczBoQAY8AyIATYBiQBkgDbgCRAEmDMC2GexRiQBEjifra5nyTANveTBNgGEAAGEMJcIQmwzXMSAhAARhIG8UwGsA1IAiQBtnnBJHGZJAziCtvczzb3E0JcYRuQBNjmfpIA2zwnSYAkwDb3kwTYBiQBQoBtwDKAwAgBCAADCAEIwJj7CXE/24BtQBKAASRxP2MhLpPEc5IE2OYy2wAgCZDE/WzzAJJsc5ltSYAkwBjAAAgA80zGGJDE/YQADICxLAuQBBjzAJKMhQDANs+PMc+XETIGLAthANuAJO4nBCAAIQAB2OZ5CQyAARDPYox5DkYSxti2kDGAAIQAY54fSYAQYBuQxLMIQBJgG5AEAJK4wgDGAAIQwiAADIAQMgYwQhjAGJAEYIwlAZIA25IAwDb3k2RbEiCEwAaMhTCAjYRtwLYEKE2aviD0Wb948IO/0pVrZzEqVVvD1TLYWICNAAtsCwAL2QC2ERZgGxBYAssAxgYZC4EthJAwljGWsLnMgG0LDEIIBAKQbSEQGGMBMiTYGKWcQokgxiw7/sqfjhPb04e/eie3YiSDsRBX2JbECyYJsC2JyyQBtgFJgG0JwEYCwIjnZgwgAIwkwDYgCQCDAEm2AQxCCPEcbIMAkAQYJAEGSTyTMQCSbUk2Es8kANtCxgAgZCwEIIwxgG1AEvczBhAYIcBYFoC5wlgS9xNCAMaAkGWMEGAbEDJGYABJGMTzZRuQBNgWQkjiAWwDkjAPJAQgjDGAJMA2l9kGJNkGJNnmBZNkDGAwCCEuM8ZIAjCAbQCBeSYDGGMk8Twk2QZsCxkDkrjMNiAJ80wC81yMASFAEmCbBxIYAIFBABjANpfZBhBXSAJsS7KNeCYDYJ7FmOdHFmDM/SQBGMQzCQDzLJIA2whZgDH3k8RzksRzksT9bHM/STw/tgFJXGZbEg9gWxLPwzYPIAmwzfMjieckCbDNc7INSLItSRLGGCPEFQbAAAgAAWCeRRJgG7DNv49t7icJkARgEFUSL5RtQBLPyTZgm8tsS+J+tiXxPCQZYxC2eS7m2QQgxP0k8XwZBOaZjLEkDIB4NvFsRhKAADCAMWBbCIFBXGEsBNjm38kAGMTzksTzsC2JBxAyBgAMgHghbEviedjmedgGbAOSJNnmediWBNjmgQQGAQhxmWXbkngAY0lcJmSbKwTGmCvMA0myzWW2ucyYF0qSbUASz49tHsA2IMm2JJ6TkG0AwDwHIcT9hIwRgCxjQAgB2EZIss1ltrnMGIG5wrYkLrMtCYF5DgYw5lmMMQBIAmxLkmQbARgDQgjANgDYlsQVAkBgEM9mAEnGPBfzLMZcZluSMSDJmAeQZBuDQNgGEM/BIK6QZJtnMVcYAwhAiCsEBoHAAMYABjAWMgYkcYUQ4jLbXGabF8o2IAlbCJCwkXgWgS2DRMFSfOPvHnzDz1ZOzGLCMhKhxAYBGCQkY8BggyTZgHk2AwiwAGMMGAksBMaAwFxhwCCwEDLIGIMFgIx5JmEQgDEy2OYyQ0LaGQaTGIWkZm/pM350OjP3O79cN8m2CxEhARIg7mdbCPGcbPOcbEsSMsYgLhMA2JYE2JbEC2ab+9kGAWAAkGRbEs+XhG0AxP1sJADbIAAhsLnMNmDzQJJsYxDPQdjmfpKMAQTm2Ywk7mcshLhCCAAwCMQVQgAgZJnnJAlAPAeDeC6SuJ8knh9JXCZkbCyEMJZkm8uEeAEk2eZZDEKSbduSeBbzbAbxTAawLQmwzfMSmCtsSwJsCyGukARgAEnczzYAYADEM4lnMgAgifvZRjwfQsgYwFxhWxL/EkmAbUASlwkZA7IAxDMJzPMhMC+IbUncTxLPj22ek20usy2Jfx/bgG1J3E8SIMk295ME2OZ+tvnXsC2J50eIy2xLMuYyyzyQeBFJ4jJJtvnXk8TzY4ypABJYCLDNv8Q295ME2OZ52JYESOJ+toUAzDOJ5yaeRYgXhUFgEAhZGMQLIQmQBGAA24AxAoNBYK4QAmzzggkBxtxPEmAbQACyAGOuMEKIKyQBknhOkngWAyCEjIWMAQziCiFjSYBtQBIvmCTuZxuwDUjiMkk8D0mAbcA2IIkrhCzEFbaFEM9mAEkAArDNAwkMYBuQZMz9JNkGbAOSAEmAbe4nifvZBiTx/NjmBZCEARDGxkK2AduAJO4nCUAAtgFjQAgwBiTxLOIKSbYB24AkAAPYBiQBtgFJAObZDAIDIADbgCRAEmAbkARgJNnmOdkGbAOSuJ8xRghxhW0hLrMN2AaEuJ8xwjIgBAjZlgQY85xsCyEA2wACQACyAARgDGAAhJBtIcyzCUASgAEQgG2exQAYwBiQBEjifrYB24AknpMkwLYk24BBAEayLQksyTZgW4CwMRJZin7uH9af9sMlNxYAYYyCImRSYEAYYZASAxYAlmRLWMIYZMAgZAwyxmAjARaAbBAYAwbAGLDAAFjCgADMMwnA2BiDLGMsgyzSNpAQdmCHZYDmZn3UD7QHn6qv8tDiNEWCAGMJEM8kwDYgifvZti2JB7AtJMQD2AYk2QYk2QYkSbLNFUIWYBswBiSBATBIyFgSAJIAjDGSANuWZCMBgAAJG7AksATIRrINmGeRBCAJABDPJIR4XkII82wGQNiWBAgBljFCAALAPJu4wrYkAAPYBiQBknhOthFCGGNAEvezLQkAJGEQD2QsC8AIGQNCxgAGYSwESOI52ZZkGxAChDCAJJ6HbUCSbUlcYRC2AUm2eRYBYBAYAGEbkITBSAKMuZ8QgABsAxhjSbYRGCHAGBACEIBtAMBIAmxzPyEAg7ANIJ4vSQAGkATY5jlJAjDPIgRYFjIGhHgg8xzEA0niAYwBIQADWAYwgCTuZxuB+VeRZJvLJPE8bHOZJEASL5htQBL/EkmAbS6zzfMQAjAAwjZXiOciCWMMYABJ3M8YEAIQAMY2IInLbPOcJHGZbdtcJonnZJtnQ5nJZZK4zDbPQxJgGwBsS+KFsi0JkATY5gGEjDEIQBLGGJAE2OZ+knhOtnlOQoAx9xMCjHm+DOI5GGNAEgAIAcY8P5Js8yxGCGHMCyYE2EZcIQQYAxiEJMA2z5cBJBkDgCzLvACSbPMAkgDb3E8SYJsXTBL3s81zsg1IAiTxALZ5XgbxTAJzhW1JAIDAPC9JAMYYMMZIkgQAtrlMEmCbfw1JtnkekmzzPGxLkoR5FmOuMIjnJck2lwlxmTEGcYUk27YBhBDPwzaXScIAQpZ5AElcZpsHkGTbWEiSbQBjLInLJHGFeSaBMRayjXgg20I8i3g+DOIK25Ik2QYAIWMusy1JEoB5IGMeQIj7GQMYxBWSMMa8EAZxhSQewDYvgCTbXCZkbFuSJNtcJonLbNsWIKXJRPLTz+brfe3y/MVF9IUkDdhgAGeCscFgABkDSAAgAAEyYAAZEBgAA9iWBAgACSTuZ2NsAHOZQUiAwJYkAUjCAAKQMcaAbEAk2DYQNgaDhaNlNA9jueXR8Wcf0u9sZEghRRACbAMgAQLbgCTuZ9u2JJ6HkDEA2JbEFQLzQJJsc5kkDGBsWxLPQ2CeSRKX2QAChG1jIfECSLZ5FhsADJK4TJJtHkASl9kGAAxCEuaZhG0MYCyJyyQBGMRzM88kMIAxAEiyDWAAxANJAjDGCCGMMSAJsM3zkMQD2OYyIWOMMUKI50cS97PNA9iWJAQgbPM8bHOZJB7AtiSeH0mAbQADIB5ICEDYNhYChBBX2AYADOIKSTwP21xmWxIgCbDNZULGGMTzEjLmOUkCbPM8hIy5zFgWgHgOBvFchDAIAPEstrlMkm3uJwQY8zwk2QYwCMBYiPtJAmzzgkniOdkGbEvi+bEtifvZBiTxH8RYFiDJmOclMIAkAGPM/STxgtnmfpK4n23uJwmwzb8C1bYkHkCSbe4nCbANSAJsS+IySdzPNg8giRdAEoBBPJsQ4l9PEmAMCHGZMVcYwDb3E0IgMMZcIa6QBEgCjAFZ3M8ygAEASbYBzDMZSYAxL5x5JvFs4vkSAmwDCMCYK4wxYBuQxPOQZJt/DUmAbZ6TbUAS97PNC2ab52QbkARIAmwDtrnMtiRACEAAtiUBxsaAJCHbQogHksQLZRuQBNgGJAGSuEySbcA2IAmwDdgGJHE/SVwhbAvZBixzhZEESOIy27YBhJBtACOEABCAbe4nBEgCMIBtAIERMhYCEEIIwJgrDEKSbe5nDAgBtgHbgCRAEvezzf1kAbK4wiAeyBiBkQRI4n62ASGMMSAJsM39jAHbgCSeRQAYwDZgDAgBCABhLAswxiCeSWAADCAEIABjAAFIAowxQgBCEi+AbcC2kGWMJMA2gI0EALYBwICxsXMY9ak/P91z16xuhicLkGwAgU0YWzK2sUEYkDBgrhAyFhhACHGZAVlGEjZgACGwJWEMtg3GgMAYISQwCAGyELLA2CDLGDCAQcKWQMJ2giQw2BIOXMRtT+Azf2P6mjcPyQmyAIQAMM8kiechyTYgictsSzLmMtvcTxLmuRlJPJORAIwkLpMEmMtsgwBAAowBAQjAAALAIIkXzDYgCcAWzyQJzANIsi2JZzGAkDGXCQEAwrYk24Ak25IQtgEEIAQgAGNACMAACNs8iwAwxoAk25IASQAGEDLmBbMtiedhDCAwgG1AEi8ySYCxJO5nm/tJkmSb52Sb+0kCbAOSAAzi2QQGQACSeAAhrhCAbUASYBthG5BkWxJgjJHE/WzzQEYSgAEwzyKJZzGAEGDM82MbkAQIARjAGIF4NvNcJAG2Ads8JyFAkm1JPBcBCPEsBkA8m7hCyDYgiRfMNiCJF8q2JO5nm3+JJB7ANiCJy2xzP0kYY56TbR5AyJj7SQIwCIxtIQADIJ6LbQBACPGvZxuQxAsmhKiSuMw2D2AbkGSb+9mWxGW2JdkGJPGcJNnmMts8D9tcZixkG5DEczEI24Aknh9jzDOJZzLG3E8IMBYChIwRmCuEEM9im2cRmGcyz2KbZxHPTWCuEDLmCoFBABjAGEBgXiCBQTwf4gpJ3E/ImMtsS+Iy25J40djmRSaJ+9kGJHE/25K4nxAvgCSeizEGbEvCXGHMv49tSZIA25JsA5IASbYlAbYlcZkknpNtSYBtwBhACAHGgG1JPC9jzP0sCxljnkWIBzLPJAAhBCBkLGQMCNnmCoGwzXMxgG1JkmxL4n62ASGexSCeSQAYwLYkSbYlcYXAIAAMYMxllnl+bEvifpJ4HpYxD2QsifsJITCSjHkggUEAtgFZlnlOtrlCPF+2JQG2eRYBIGxL4jKDwDaXCZCaaYmwIr7hj9Y//VvBiZIjFBQYQJZtBCCeTeaZzAPIAOJZBMaAAANgAwYQYBuwucIYkLhCCINsJAAECMAYEDLYABjAAsxzEBjEZUmAFJSa3/vrvObD4p1ePJAlDCBhABsAIZ7FNveTxAsmifvZBoR4gWSby2xLksQVNs/FBpDAIDDPYiEA25J4ANtcYYtnEljCBiQBILBtSYBtwLYQYFsIMMYAGMuYKyQBkrifbUlcYRDPwQDGGMQVkmwbSxIyNua5iGcSVwjxnCTZ5gqBeV6SbAOSjCVxmSTbACCJ50eSbe5nGwBsA4AkLrPN85DE/WxzP9tCxhgAgxCybFsIsM0V4tmEbZ4fSdzPNvezjbhCEuYK24AshDEAGAsBtrmfEMYyVxjEMxkAkGQbQAAYBCBkzAMJIdvGQoBtrjCIZzMAArAN2AYA25IAzDMJ21wmhHm+JHE/21xmWxL3k8S/RBLPSRLPjySeH9tcZlsSz8k2l9mWBEiyLYkXzDYgCTAGjAEEBoOwDUjigQzi+bLNCyaJf4kxpkqyDdjmfpIkAbZ5AEm2uZ9tSTyAJC6zDUgCbHM/SYBtwDaXGUvifsaAEGCMQTyLbUAS97PNc7LN/YQAY0AIkMRzkgRIAjCAbQDxTOKZDGCb+0kCJHE/Y0AIARjbBoQAY4QswJj7CSGMMbYBSdzPNiCEsM2/SAjZBgDbXCaJF41t7ieJ+0nifrYBSdzPNs+PJO4nCSPECyYJwAC2AQRgm+dHEmCb50cS97PN/STxALYl8QCSbHOZbUmAJMA2YBuQBNgGMIAkwJj7SeJ+tgHbgCSeRQDGgG1ACBACjAHMs0gyFgJsc5mxEGCbZzGI52UbkAQAkrjMNs/FPJNBPBdJXCaJy2wLIQAMYBswBiQBkrifbS6zzWWSAEmAbS6ThAGMAUm2JQEIwDYPIAljbBuQhLANGAsZYywLSQJsAxjEA9nmfpIA24BtQBL3k2QbgQUCYwySAElOMl1Cj7+nfcGPtNzsaABGYYMxNhgDNpYBZBkL2QbACAAhyxgJCQAjAAMWWAgsYQsbDEI2yBhAyCBAxpLAwiAQYAwAQgbABkDCNmAjcZkQAgAEltPFImrrarPiM37Jr3azH3RS2IkwAgQGQMYYJHGZbUmAJMA2YFuSbUCSJNuAbYQsxBW2AQQghEE8i20usy0JAGxL4jkJQAgQNiADtgGQbEvCRuJZbEA8JwmwLQkMSLLN/YSMAUnGAEaSbUAIkMRzsg0AtnkWg7AtiWcxgBCAuEIIMAYk2eYBbPM8JPEAthHPxTYgCUAYSwJsy0IAkmxzP9s8P7YlAbYB2wAgyTYPIMk2z48kwDZgG5BkGQNgACEuk4R5NoGRxP2MeU5C3M+Y52UkARiEbZ5FYK4w5n7GgBCAATAAAhACjBFCgG1JAAaBEAJsC3GZJABzhRAPYBsQ4gWzzQtinskYC/EsApAEYBBX2AZsA7YBSYAkwDbPyTYgifvZ5n6SANvcTxLPyTYgiedHEvezDdjmAYS4QgC2ASHAmBdMCGEbg3iBjCQA83xJAmxLAgBJ3M82DyCEAGwDwfOQxP0kcZkkSTyAJEkAYNs2YJsHsG2b+0niOQkJCXE/2xjMMwnEA0mSBAAYDICxDdi2zfMSCAQCQFwhSRKXGds2NkYgnslgMBgEIAkBCGEA27Z5HsaYK4yNhYQQAALxTMY25vmSJAnxXCTxnGwDtm1L4vmxbVsSz49tnpNt27zIbPP8SOIKcYVt21wmSRL3s21sjABsA5J4Tra5zDYvMkmSAEmSuJ9twLZtLpMESJLEAwgBQpK4n7Ex4gpJgCRJvADGgCTANiAJkCTJGDA25grxbAZj27YkQJIk2zwX8VwkAZIkcZlt27ZtC/FcBMIYwDyLJMRzsQ0YAwACQCCusM1zksQDSOIy27a5n20uE5IESOJ+tnlOtnkekngu5grbXCEA27Z5ASQBgBCXSeIySUISgC0DgG2wKaIL19AX/EI73O9Lj9KGhDRp0tjYYIEAGUAIGSQAISwAAxZgsLEBAwgkSRJCCAM2AGAMBsAYAGEBQoCQJIEEWEZGgAFsg8GAxRXG2AIAg4VlC4ckhVRCUUofZ+/gS39v4rKxuRkkkCRJIANgmweQxANIAiRJ4n62JQkhnk08mwFs2wZsCwkBIGxsnkUCzGUSlxnMM1kYAPNMtg22bQO2AcDcTwLAAGAbxGWSJEkS4goBCAGSAEmSeNHYxgC2AdtcZhuBeCbzQEJcJkkSANjmMkm8cAaDwQDGkoQAhG2MbQCBACTZ5t9KEiCJ5ySJB7DN85DEFeaZhCRjY64QCATimQyAwQCY508AtnleBkAACMs8i3heQkJcZtkywjKAABBCQjwP27Z5LsLYtrExAvFAkiQBiBdEkiRJPCfbxlwhAGNjwJgHEs9FkiRJkrjMtm1eKNu2eQDbtnkR2LbNi0CSJC6zbWyMuEKSEC+UbcDYGIF4JoN5INvGXCEQtm0DtnkASdzPtm2eH2OejcpzkgRIAmzznCQBtgFJ3M82z49tQBIgieckxHOyDWAABCCJy2zb5n6SeBYDIIwxgCRAEmAbkMRlxjwPSYBt7icJsA1gAMuAEMK2EM9iEM8iC0AAGMA2IIkHsCzE/WwDtgFJPCfbgCSehyQus81ltiVxmSTbvACSeH5sS+L5sc39JAG2AUncTxL3E0IAtm0DgCSuMM+XbR5ICHGZJC6zDUgCbPOcbAOSuJ9tQBJgWxKX2eYBbEvifrYBIQCBMQaEhBCAMWAbkAQgrpDECyUE2AYkAYAk21xmjMAIcYWwLWQbQFwhyTaX2ZYESAJsA0KIZzKSAAAD2OZZhBDi2QwgBCAA2wBCCPEstnkWAWAQmGeRxHOyzf0kcT/b3E8SIARYFuIBbAO2AQQgBNgGEM9iGwCMuUwSYJv7CRnzQtkGhAAhwFgSAMYygAHxTGmAIkeN33z88It/EN2JyNEIg2wjY9JCgRAYYWNJGADZCIyxjAUIjGUQYCQwksBIYFmJJWxhS4AMwiCDsRBgI5AESALbAoPACMAYDIBBYIExz2IZJABkEJRAERSpRXT82O/pnV6qveaDS6YlLrMNkgxgW5JtQBJgWxIgictsS+IBJAEIIZ7FIJ6DASwjMIAQz2KLy2wkgQGbyyQwSAA2km1JBkA2V0gGSQZAtkGADYBsA5JsS+JZDMI2DyAEAJIADMJYyDb3kwTYBmwjMJhnErYBSTwXI2SMMUYIIZ7FNpfZ5vkyCAQGwAAISbYBIcyz2JaEeCDb3E8S97MNSOKFksRlkgDbkrifJB5AEmBbkm1AEiAJwDyLJJ7FAMayjAGMEJcZA5IwiCskcZkkAPNMBoHACPEs5nlJ4n62AWMAAWAwxoAk7mcbkMTzMlfYBiTxnCTxLOJZbAOSuJ9tSTwXg3gmYZvnywDGgCSek23ANiCJ5ySJF8w295PE/WwDknhOkrifbe4nybYkrjAIwDaX2ZYEGCOEjIUwgDHPybYkQBJgG7ANSAKMecFs869hG5DEAwnZtg3YlsQLYFsSz0MSYJt/MwNYFuJZDAKQBNjmOUkCbAMYxAsixBUCsM3zkATY5lkE5gohwJjnR8gYAIQAY0AIMOYy2wghSZhnEoBtnh9J3M82z8m2JACQBNjmMtuAJEkAYJsHsC2JyyQBtrmfbS6TxAslCbDN/STZ5jJJ3M8Y80CSAGPMA9mWJMk2l0myzQNIAmzzL7EtiX8TSYBt7icJsI2QxRUCsM0DCAGI52CMhSxjXhBJXGabBzKI52AAY0k8gG0AkCQJwCCeL9tcJmSMeSYhBCCusI1BCAGAMQYhiQewzWWSMMZCljEPJAmwzbMYwLIQD2QAY0mSbHOZJNsYxDMZxIvEAMaAJEDImMsk2QYASYBtni8DIJ5FEgDYAGDANtCstPqwzCt9yfrvnjZj5myeIu0ICYPBFgoECMBgA2BjnsnGIACBAQkkYYSQBAYEALZtDBhjxLPYSEgSl8mAkCQAAwYMgAFjAJvLxBXGIAEIbIQABCEiUBDVtYkiN7/sS06/+l59DRuQhMEgAAMgni9JgG0uk2SbB5DEZbYBAIMAhABjHkAIQNjG5gpJEpfZBgBJPIBtnpeNxPOykXgBhHgAY9uSAMC2JEk8D9s8D9uSuEzI2LYkLrMtCSELABC2Mc8kJPEAtm1L4kUmBCBsc4XAPC9JtrnMNpdJkmSbB5Bkm8tsc5kkXgDbkngAIWMuk2SbKwxCEgDY5jIhAPFM5pmEbQwCEAKMERhACGGb50cIMAYADCBkmctsS+J5CcwVxkIIzLNIAmxjjCVxmSTANs/LIISMuZ8Q4nnZBiRxP9u8AELGPICxECAJwADGgCTuZ5vLbAOSAEASz49tHsC2JC6zDUjihZLE/WxzP0nczzb/EknczzYAIDDPQWCezQCSAMsYAJDE/WzzopEE2AZsS+K5UbmfJO5nG5DEA9iWxAsgictscz9JgG3ANiAJkATYBowBjLEkrhDPyzYgieciAEnczzbPyxjzgknifrZ5FgFgANuAJEASYBtAABhACDAGhABjSVxhAGNAiOckifvZBiTxAtiWxP0kAbYl8QDGkrjMNpfZlsRzsg1IAmzblsS/kiTbknggA9gGJPEsRhKX2QYkcZkkwDYgyTbPSRL3s839JAG2ucw2l0nifra5nyRAEmCbf4kQBkAYAxghBIAxNuYKAyAwgCwEgJAF2AYQgCTANpcJIQAMYIwx5n6SAFm2AQQGQGAkcT9jzBWSuJ9tnkXIMuYKgwCMAYwQAkAAtgHEs9gGAEmAsW1AyFgIcYVtnosBEADGWBIgBBgDkgDb3M82YIwRAiQBCACDMAZkAbYBYyHEM5lnEkJcZpv72QYkAbYB2zyQADCSuMwYkIRtsA3YtHQah37oL1Z/97iOU/IkSspCYAsZZAEYhLHAPIskAIxBGCQZYwMgQFxmI2SQsQxClgEMGITAIAySDJINGBC2hWwElrARGGyQJWywQQKQsbARIAkLARIhlUDFIShK5E5/+ZflR192ereXqbKbbZAtMCCBAYwkSbZtS+J52OYBJBkL8SwGEAJbBrDAEs/LkmxAYFsSD2BbEjZgnkniMgHYSAZAEvezjYQNCIEQYAOAMRYylsRlkmzzALYl2eYySdzPNiAJsM39JAEYSbZ5IIN4DsI2IGRbEgZxhSTbgCRAEmCb+0niAYyFAACDwEgCbAO2AUm2JQG2JdnmMtuSeH5s85wkcT/bgG3uJwmDADBX2JYEYBAAxjIgCcAAxhiEEOI5iAcSwlxhjJEE2AZsA5J4FvNMQgjAAMY8J9uAJIwkwLYQgHn+hBAgCbANSAJscz8hxBWSAAxgLMsygAEkAZIA29xPEmAbsA1IAoQAIQAB2BbieUji+bENSAIkAbZ5TpIASYBtwDYPIMm2bUnczzYgCZAE2AYk8aKRBNgGbAOSeEGMJAwCgwCMAduAEPcTQmAQtnlOkgDbgG3uJwmQxHOSBEgCbAO2EcEDSOJ5SAIkSeJ52LYN2LZtmxdAkiQAsG2byyRJkiSJfzeDDYjnZNsYsM1lkngWg3lBbNsGMEKSAASAeSaDQTwXY2NJ3M/YNua52AZs2+YBbNsGANs8gCQAsG2byyRxP9u2MbZ5AEmSeH4kcZkkSbwAtnl+bNsGbGMwGMwVkiRxmbFtwDbPw7ZtLrNtm8ts8/xI4jlJAiRJkiSJ50cS97PNA9i2zWW2eRaBQDyTAYwBzAMJcYV5JgFgMMbGXGYbwNjmfsYYDAKQhBASAoQwGEAIwFwhJIkHkMTzI4n72TbmCoF4JoMBjLmfbV4w2wDmWYS4n20eQBJXCCFASMg2gAAkIR7ImPtJkoRAPJsBMEIYY2ME4oGEJNnmOUni+ZEESJLEsxiMJACwjZFl22AbMBgkIjhc+Yt/bvSmSMCIAmHLOE0aG9s2GGQAgZAkxGWyZJ6HDCCDwRgLwDJg8UzimSwBCAEWBgSShBHCAAZswDa2AYwNGLBsYYEEQmBsgeyAQCECAgIhoiTyVOJrfntaDk4zJZm2SWzABjD/WpJsY2xzhbnCGAmDAQM2IBBg2zaAjSTJANjmMttcZtsAiGeyAfE8bAPY2FwhIVkYG4O4QiAsA8YIBCAJkCQJAGxzmSTuZ1uSJC6TJAkAbBsDGCEhSZK4nzEPIEkSIIQBMBjAtiRJgBDmCttcZts2ANjG2DYGEM9krrDNA9jm+bHN/WzbBgBJkiRJ4gWQJAkAbBvbtg1gAMA2z0mWEA8gJCTE/Wzb5lnEC2LbNpdJ4nkYIwBjY8BYkiQeQJIknot5XrZtcz8hDCAJ8Sy2bQPGxjwPIQCDedEJ8bzEC2JsbNs2z0OSJF4Etm0DtnkekiTxAJIkAZJ4oWzb5nnY5n6SJPFABvNAti0bG9u2zWWSAATimQwG8XzZts1lkiRJAmwDtm3bts1ltgHbtrlMklDFlgDxgkkCbHOZJMA2YBuQxHOSBNgGhAAEgEHY5n6SuJ9t7ieJF40knsXmfhIA5pmMMQ8gCQMYA4CQbUASYBuwDQgBkgDLAAbAAIhnEs9kHkgSBrANIJ6XbUm8ULa5TBLPj7EkDGAbQDyLEM8inoskQBL3s839JAG2AUncTxJgG7ANCAEIwBgQAhAABmGbZzEISYBt7meb5ySJ58c2z0MSz8M295MESAJsA7a5nyTuJ4n72QYkAZhnM4BtAAEYA7YBSQACwAC2AQQghDEGjAEhAHGFZVlCxoAQIAkw5n5CtrlMEmBbkm2ek20uk2QbsA1IwggBCADzbAKwzf0k8fzY5lnEs9jmOdkWQlwhZAxI4goBCNkGbANCxpIASdzPGJC5n2zzLAIDGAtxP0k8i0HYBmwDkngASba5nyTbQgACAwYZANuAwQaQXKQf+rvVE546i5PCdoCRCGOwjcGAABsBEsZCGAQIYwwIwOY5GGMJLMCywBiDAIFBAoOMhcxlxjJIyICwQdgAMkbIGGOMhBFYYJAEYAMCBBYIQhYSkiEt2caWC497Uvzy48c3f/E+0wgJDIDAlsRltgFJ3M+2JMA295PEZbYl2RZC2AaDbC6zDSDJtiTuZxsALGFzmW1Akm1AgITNs0i2JRkEADaAZFtgAARIgG1kLGNJAAKwjQBsS0LYlsQD2AYk2ZbEZZK4TBL3s80VRgiBAYwBhBBGyBhACGEA28YAQhaXCXGZkLEQBpBkG5DE8zJCAAZAYABJtgHbgCTbPIBtQJJtSTwnSQAGQAC2uZ8kAMAgANuAbUASAgMgbAsBtgEEBvFsAsAAknhOkgAEgHkutgFJACCJ5yTEAxjz/EgCMM9BXCEJsM39JAEYYwCDeCBJtm1LAhCAMfeTxbOIf5EQYCzEFQKwjUEAQtzPmPtJAmxzP0m2JfH82AYk8ZxsA5IA24AkQBJgG5DEA9jmMkncTxJgm+ckCbDNZbYl8UDGGBAChABjrjAPJAmwLYkXyjbPSRIgCbAtybZtLpPEA9iWBEgCMBbVgAFL4n6SuJ9tXjBJPD+2eRbxLMYYAIN4FmPM82GeRRLmCmPMFbYBIa4wAMIGEJcJQIj72QaEuJ8QL4AkQAgwxjybeBbbgBD3sy3JNg8krrDNA0gCANvcz7YkSbYl2QYkcZkk21xmm8uMJWEQz2IbkMRzss1zss39JNnmMtuAJNu8YJJ4wWwDmOdmjLnMNiBJkm2eh21AEmCbF4FtHkASD2CbyyTx/NiWZJvnJMk2lxkDCMC2JAwgiedHEg8kMIAQ4grbCCEhBAYB2BYyBoSMMZIASdzPNmCb52Sb+9mWZBsQ4jJjQIjnZIx5INuAJECSbV4Qg3gg2wBgLMT9JBlzmW1AEiDJNiCEEAIA24AkQIAFALaRucIgQGBJgLEQz8MY8yySeB6SbEsCAEkYAHOZAARGEhiTKBNgb8gv/dVkoyiMRUBiZDBI4llskDEGwBgkS7IxCDCAeTYbyYANWAhjwCAAyUYCg8AygATYCANYCDAILDCYZzKAAWzASAaJKwxYBhAgAAzCgDGSsA0GDVm/7g+G130UXWAwFgKDJPH8SLIN2OYBJPE8jIUQIAAMgCSukGSb+0myzf1sS+Iyg7hMApCwAYNAkm3APJNBIMk2NhISzyYEYAxgJPEAtnketnkA2zyAJF4oyzyLQTwHAxhjnkkAljGIK4SMMZa5nyTMczOIZzKIZxIYQJJtSTwnSbYl8QJI4grxQtgGMJIAjBCAef4E5pnMsxlJxoBtnpNtSVxmDAghMIAknpewDSCeiyQewLYkAPPCGASAQTyLMQZAYCTZ5n6SuELY5jkZ828gnsU2z2KegxACjHl+bAO2AUmAbS6zDUjieUjifpK4n22eH9s8P7b5txEPZMwDSLLNcxIyBhAYDIB4ISQBkgDbXCaJ50cSz8kYU21L4n6SuJ9twDb3k8QLJon72eaFMIAQz2KeRRJgzP2EuEJcYRuwDUjifjKAMQYJQABC3M82zyIAIQADSOI5SQIkAbYBDIAAJAG2AQyAeCDbQghjjCSeH0k8P5K4TJJtSVwmicsk2QZsA5K4QggBtnlOxoAQz2IQV9gGJHGZJNs8gCTAtm1AEveTBEgCbANCAAKwDWAASQACwCAwgG1AEpdJ4gFs84JJAmxLsg1IAmxzP0mAbUASYJv7SQJsA5IA21xmm8sk8QCSbPM8bEsCJHGZbduAEGAZEAJscz9JgDGAeA4Cc4WxEGAMSOI52QZsA5IASYBtwDYgCbANCPH8SLItCbDNC2abK4QQ5gpjQJJtSYBtwDYgiWexQQghY56TbUAIEAKMeU42YCwBEhgDSOIKyTaAMZYESAIwiCtsA5IASbwgQhZgjEEAEiAwkm2QBEmzRfzyPxw96YmlHoNMK4xAYGMQAkvYALIRGAMSMkg8m5ABGQMCkGyDLCQAjDEggbCRwLIsywIjMCAZCwlsSwLMM1lgyRgDAlvCyCAAGbABCYzAABgLTNoC2UYWhhTZ8/t/F39wa772Q4VtCQNIABI2ACCJ52QbkARIwiAwgCTbgCRjSWAb25IASTyAbUlcJgnABiRxP/FM4n4StgCwDYBtHsg2gATYlgRI4n62ucy2JMA2YBuQxP1sS+Iy24AkQBL3s839hIwlYRAABrANSLItBGAAhDGAsA0IcYW4QgjAPIskAIO4whgQQlxhLMkYQACSMMaSeH4kAYAkwDb3k8S/km0hBAYw5n5CAALAIGwDQoAxIMk2DyAJsM1ltiUBkgBjQBL3s839JAHG3E8IwAAIwBiwzbMYAAEYA5IADGCMEUI8N2EbI8k2DyCJ+xkDtgEhhGVAFiAEGINkAyAAWcgGDCCEuJ9twDYgCUAAxgAGEOJfwzYgCZDECyYJsA3YBiTxrycJsA1I4oUwgBCAADDPIonnxxiQxBXCGBDi+ZEESAJscz9J3M82AEgCANs8B6oknodtALANSOLfwTbPRWCeyTx/5jkIAPNsRggBIDDPJEA8B2NAxgBgLMT9jAFJvFC2AQDx/AmMbcQVkrifEOIKIWNeKEm2+deQxGW2uUJIso1BYAAExpj7WRaSZFsS97MNSLLNZbYBSTwnIWMeSGCeg8AYC/EAxkJcJokXTJJt25K4TJJtHkAS97PN/WxLAmwDgG3uZ1sSYJvLbHM/SYBtSVxmm+dLYCTxghkDGMCYZxEAYMwD2AYkAQiMJACDeF7GQtxPEvezzQPYlsRlxkJCxrYlcZltwDaAwFwhZMxltnkgg3gWIQCQxGWSbEviuUhcZsxltiXZ5lkEYBtxhW1JAOZ+thAyIJ6DETIGJHGZbUAI80C2JdkGJAG2JdnmCmPMFeJ+wlgIJNkGJIo8pX/sL7EkMq0EJTIASABCgAAD2OY5GGNAEvczCLABWwAWAoQtYSEuE9iWQAYMIACBkSTAgDAIMIABc4XAXCbMM0k2AhAChARIAglZAImFAbBIyDDyOPI9fzK+8k3dvEOWhACQBEgAkmzznCTZ5jLbkgAEBpCEucK2JDCXSeIy2zyAJNs8LwkbGxDPSeIBbK6QxAPYlgRgGyTxQAYB2BYCMJJ4TpK4nyQAkMTzI8k2YFuSbQAw5gGMMYgrhIwBSba5n7EQYIxBPJN4XrJ4TkI8iwGMhbifkLFtSTyAJJ6HbUk8gG3+JcZCiAcS4jLb3E8SBgEI2eYFMwaEbEviBbMtiechxBUCAyAwgCSeRTyTkMVzEuI52eZ+kngekmxzmSQuEwIQgBCAeBZZAAgAAxhjnsUgnosk7mcbgXk28a8lictsA5J4fmxzP0m2eRHY5jLbkvhXEc9im+dkm8uMhQBjDADYBoS4n23uJ4nnZJvnxzYPYJvnjwqSAGwDkrifbUASIInnxzYgiReNJACDMBYy5jIhxPMnAGOELGNZAAJAGBsDkgySQYCNASQMYABjAPEsQoBt7ieJ52Sb+0kCbAMYQBJgG3GFJAzimQyAeBYhnodtHkASYNs2IIn72QYkcT9JgCTANlcYQAjAIADMcxHiMklcZpsHkGSb+9nmORkLITC2ASHAMiAEYAAh7mcMSAIkGWNeCNuAJO5nWxIA2AYk8fxIAmwDtgFJ3E8SYBuwDUgCJAG2AUmAJMA2YBuQBEjiWQRgm/vZ5jnZ5n6SACHANoAAMADiWWQhMIAxBvEstgFJ3E8SIAmwDdjmfpK4nxBgDEji+RFCYIyNAUmAbcA2IAnAPIsxgAGEjIUkcZltwBgQAmwDxghJNpdZEvczxlwhCcAAGAAZhBCyQRiDMALbgCQAgcEAiOciybYk7ieJ+9kGEBhJgCQAGwkA24AMUtbQU+5tv/OEQgctHZEoQAYEBmEDBhBgkGwjACHAtiQkDBjkAIMRtsAgBGCQzBUGzGUGIbAQspFBXCaEsJHAGDAPZJ5NgMDYQpYAGUmAhG0JQAhsY1nQQEqRRpmK/J2/922v60ecibQlSZawkQAkcT/bgCRJtiXZBiTZlmSMAGQhbAMI24AkwLYk7meby2xzhQ1IAiwBAiRsJNsAEiAAbAOWJGyei20kbABJYMBGAEII2wBgLMT9jLmfJK4wAAIwBgAhHsA297PNZbYBSdzPNiAESDIWAmxLwlwhZIyQBQgBCMC2JMsABsAACEASz2IA2wghY0mYZzJCXCYJsI1BPIttQJJtSTw/kgDbgCTANpcZSwKEAMzzJYS4wliSbUASIIkHELJtLMm2JEAWYAxI4jJJPIAkAGPMZUIIAHOFEIAAjIWMuZ8QYBlzhSQAA2AABCAJsM39JPEAtnkAIQABYABj7ieLZxHPl21AEvezzRXmRSGJ50cSL5htnpMkLpPEA9jmMkk8D9s8J0mAbUAS97MNSMIgXgjbPIsAMIBtQBKAADDPIonnxzb3k8Rzsg1I4vkRIEI8B9u2uUySJF4oSTyAbdu2eQBJPIvBXCGEeBZjXgDbtjEYQAiBABAA5lkEIMA2GBsbBCAQLxKDeRZJXGbMFeb5EM9B2LZt2xjxIrIN2LbNCyBJEi+UbcDY2LJlnocQ97NtmwewzXOyzf1sA7ZtA8YAQpIkBALA2LbNFQJh2xiDeSaDeSFs8wC2bQO2eQFscz/b3E8SYBuQxPOQxANI4jlJAiRJMuZZDAKwzWW2bXOZbUASIEkSIIn7GQOIZxKIK2zbBjBXSEJgAEmAJElcJokHsM1zksQDCQQG8bxsAxjMMxnAtm0AEJLEZcbGAIDBPIsQgAFs8wCWjbmfECABlsQDSJIkENgGkAEJBAiwbRuMjcEGGwOIK4QABOK5SAIk2QZs2+YySTyLAWwDNjYW2NzPYGNb4kf+Zrx4sdBHEmnZdmIDCAkkAAkEQmBAWBiMDGAAJJAkhBAIJAESCJvENhhsGwMWSEIgOUBYGAGSBWDbAMYIkCRJAmwMYBmQLUA8iwEQAAIhnkkGI4ONTSbZ7GZl67p279n8taelkQ0gcZm5zLZtwDbPQ5IkLrONwWCMeQEk2bYNYIvnYBtJksGAjc0VEoDE/Qy2kZAEIEkCQBJgW5IASYgrbACDeSZhzBUCASCeRRJXmGcytjEYIdu2eU62eQBJiAeSBACSbGNs8yxCEgKQJISQBCAwGCEMBgPI4oWSJARIAhDGtgFjAGHbNmCMwQCYB7Jt27Zt7ieJB7BtmwewbcyzmGexzWXGto0RVwgJAZK4zLZtLhMS4jLbPCfbtgHbPA9jXhBjbAwAQgAG82wC83wYAAEgnoMBbBvznGwjEADiBRIIBAKQxPOQJInnZJv72ebfShKX2QZs2+YySdxPkiRAEi+Ybf7dbBvznGxzmSRAkiRJkngASZK4zLYx4rnYtm3bNs/Dtm3btrlMEveTxHMy2FSDeG6SuJ9tSba5nyRAEmBbEpfZ5gWQxGW2ASEA8XzZBiQBtgHbgCQAARgDQoBtnkWAARAPJADMv8wACEACAHE/IQADYADEs8hCGPPvZlsSYJvnxzYgiRfKNpdJ4n5CgDGXCRnz/EjiOUnifpJ4FoPAIIwBIQAD2AYkcT9jjCTuZwzYBiTxnGzznGwDkrifJJ6HbUkAYFsSl0nifpK4zDYgCZAE2OY52QYkSbINCPEsArAN2AYkcT9JXCbJNiAJkISxDSCeP/MslnkWcYUkAIMAbHM/24BtQJJtSYAk7mcbQACSANuSuEwIc4UxYIyRBAgBCMCYZxEABsA8i2Uh24BtQBKAAQxgSdxPEgACc5kAMACSABDCIGQbsA2IZzMAkgBJPJB4JgNIAiTZBmxL4n62eRYBYBlkECAEmMvS2GAs/ugpxkiRkJLBGIv7mSsECCxkGWMhDFiAhLEQRrINIAnjANs2YANgEMIgZJAwAoO4wiDbAsuSACyEsYwlnklgLDAygIUQVwgAGwnbAhkkY1mAMSKNIcFYzqJGxk/+zfRBr9gFBjCIK2wDgJAk2wBgWxL3sw3YBhAYIcuSAGwAASDxLDYSIDBgcz9zPxtAApAAbCTb3E8AkgBjkABsQBIACFmIKwxgAMQVkjBXGCMAIWPEA9mWxAPYBjCIZ7EtyTYgCQCEAEASYFsSYJv72ZYEGBtjJHGZZWMeQIhnMcY8L/NMQggwti2JK4RtrjDPh3k2Y8wDSAIk8ZxsA5J4IIMAjBFCXCbJNvcTsi3EA9iWxLMYQAhhG0DYFgIwAOIKSbwgBkA8m/mXiRdIXCEJMAaEAGMMAiMJsA3Y5lkEYAAEAAZAAAhAiMuMuUwIMAYwgCQeQBL3k8SLzDYgiedhGwAkcZkk29xPEiAJAGzzb2IbkATY5n6SuJ9tQBKXSeJ+kngA29xPEmCbK4wkhDHmX0sSYFsS95ME2ObZqIBtnpNtHsA2z8M2LxrbgCRACDAGZPGC2eZ+knhexhgAbAshMCDEc7HN/STxLAZAPIuxJACwAcA8i0EYA4hnM4Ax5gpj/jVs8wCSeB62AUnczzYgyTaX2eb5MRYyBoSMucw2QsiYF8AGzAsnAASAAYx5LgYhybYkY9uSbHM/SbZtSwJs8zwk2ZZk27YkXjBJXCYJsC1Jkm1eANuSeKFscz/bkngASbYlcT9Jtm1Lsg1Ism1bkm2uEM/BIJ5JABhAlmWuMIhnExhjLrMtiftJAiTxQAYhyTaX2eYy2wgMArDNswghrhAYjGWel8AYCwHGGMvcT4CNBAKDJXGZwDyThM0zSbYBJC6zzWXGAgMgHkASz2YbAHGFQTxfkgDbkgDbACAJsA2AsYwFQgAIDMKkKejsvp9xX6EDYwVGGGQbkDGAEMYgMMYYxBW2EIABjBEGgblMCIzAIAGYywwCG2QAIwkAS8IggQEMMsYYhAUYcz8hG4ExYMA8k0AgAAkQVxhjDJBgO7nCgGyq/+EeXVxx3aYkJCFkY4QAYwQgiedkmyuMkLEQAhDiCoENQrLNFTaSwAAIACQewLYkcT8bCQAk8RxsIwmMjYSEzf2MMRZCgG1JQsY8ixAyBjCAMYAxFuIySQACY1sSz48kQBIGkGSb+9mWxHOyLQmwzXMyBjBXSDLGWJaEwTyLsRDPyxhzP9uSANsIIUDImCsEBkAAQjyLASQBgCTbPCdJtgEEBoMAbPP8SMIgnpvAGAO2Ec8kMMYYxLMYYxDPJDDPYlsS9zOWxBUCgwEQAOIFMv8i29zPWBbi2QwCsA1IAhA2z2LMZcaAkG1ACDAGAIxlAPNs5nlJss39bPMvkcTzI4nLbPMAknh+bAO2eX5s8/zY5l/DNs+PMQaQxHOyzQPY5n62eU62edHYlmRbkm3ANs9EFZh/O9vcTxIvnLEMCAG2ASEA8dwMIAlAABhjrjCAbQCBwGAQYHOFJK6wDWAASdzPWIgHkAQgAAxgGxBCABgEIAnAAJhnErYBSYAQAsDY5vmRxP1sA5L4V5Jkm+dHEmDbWBJgDNgGhDAIIQTYNiABwgC2AcRzkcQDGPPCCQCQZFvI2DaXSeIySQBgG7ANSAIkcZkk25J4ANuSeABJgCTANiDEZZKMMbYBSdxPEs/JNi+YJO5nm8sk8QC2ucy2JMA2l9lGYCTxLOaZDAIQ4n6WAWOMJJ7FIIwB24Ak7icJkATYBmwDQsZCkmwDtgFJgBDCNmDM/YQASYBtIWMMApDEsxhACDAGLGMQIEnYkgBjQBIgAAwCJC6TxGW2AQQgCbANYAMGJEmAbAAJQAJs89wM4jIhBIABJNkGJAG2uZ8k21wmZCyJ+8lGAAanVeN3n7q+5wK1YmEEYAtj2cZIQgLLWAAIWQYQRjLPZBskGYRBEhgLMOYyYXOFQRgwCEDYliTJtsBIYBA2gGUBFhgEWBIIIzBGwpZtACFAYADASIBBGAPYBmwLsIxBGFFi/5J+9za/84tJ2JKwQSBkLJ5JEs/DWBYACAGAkLnCAJIAmytsQGBAAmQjcZkBsM1lBvFMtiVxmW1JgG0wyEaAZMCWBNgGbIMExoAkwJgHkARgXhBjLpMEAJJsA0IABkAAkgAMAsAIAbYBhG1JgG3ANs/JNiDJmMtsA5JsAwjAthDCNmDM82UAY+4nyTYgicuEAEAIgUEAmAcSMuZ+knhOkgDbkgCMEOIKY55FPIssxDMJwBiQhcAACIwkwDbCNiDEsxhACLAMSAJsc5ltSVwmxBXiCstCAMLYNveTBGAAYwDxbAZAABgA80DGQlxmDGAASVwmCTAGQNzPGMBYlsVzMkYIARgA8SzGAEIIY1sSYJvnRxJgm3+JJMC2JNuAJF40krjMNg9gG5DE/WwDkvjXkMQDmWexzQPY5jnZ5n6SAEmAbe4niedhm+dkW5JtHkAIEebfRZIkQBIvnDHGYK4QEuIKg8Fgnk0ACABjDNi2DWAASUJCCMDYgMGAbfM8jI0RgBBg2zaAwQC2bXOZJAQCkIR4PsSzSJLEFeKZxAti2zaXSZIESJLEv8Q2YNu2JJ6TJEkYQJIk2zwXgXgASZIE4pkMIB7INmDbNpcZY2zblsRzkiSJKwxGCJAkSZIkLpPEc5IkiechieckiRfANlcIwLZtzAPZ5gWTJEkS95MkSRKX2bbN/WxzP9vcTxIPIEmSkCTb3M8YIQmBeRbLljGAkCSuMADigSRxmSQewDYPJIS4TBKXSeJZjBDPyZjLbAPGXGEA27YBjBDPQ5KQuEziColnkQzY5vmRABsAG5vLzPMjcYWNLQmwDUhcJsC2bZ5F2AYkAbYBSTwnSZIQkgDAtm3uZ0gAfuupjKMiUKCQhITBABhssDGAAEmAEEggbK4wl9kAtsQDWJICyRYIBJIEwgA2BhAA5n4GAZYwWAZjMBgDAsSzCYSQJEkIhDHYAMgGg20b28ZgsLCMjGzkDJVgze/flhIGG5v7GYEESOL5MghJCGNAYAwG80ASYBtJkrnMxjZgA0gAtkA8k3km8Uy2Ads8kwCwwTyTbWwAkCReGCHbtgHbPBdhjAEQDyRJiPsZc5ltnpOxbQTiCtvcTxKXSeIySUI8gCQh7meby4wBBEKSJC6zbcwVAiEJkCSJ5yRkbBtAAAjbtgHbgBAACAlxmW3b3E+SbduAMc9FABhAElcYjDHmBRKIZzIAApAkxP1sIxDGxhiMbdsABgPYNuYBbNsGhACEbczzZ4SEMBgMgEDYtg1gEJIQAAJxhTHG2JjnQyAeQJIkSUIIwDICYYwQAoQQxlwhns0AxoBtLrPN/Wzzr2TbNgBI4kVgmwewDdi2DQCSJPEAkrifbds8gG3btm3zAtg2Boy5TIjnYp5FkiRJ/GvYBmzb5jJJvEBUsCTANveTxHOyzWWSuEwSYBuQBEjiOdnmfsY8J8s8i3kWIQABWAZkARgAgblCEiAJsI14QYQAYx5IPJMBMM9kEIAkwLYQVwghwLZtQBJgGyEEIJ7FthDi+bLN/SQBkrjMtiRJtrmfJJ6HbUkAIMk29xMCEIAxl9kGJPFAArANAsAIkLBBAjAAtkEg25J4FvNAkmxzP0mAbcA2ICSEABAABsAIIQAMgHgW25JsA4AkwLZtnpMk7meb52QbQGAkAba5nySekySekyRAEvezDdgGJHE/24BtQBIgCcAACMA2l9nmMklcJmSMQTybACRhEIBtQAhzhSRAEmAbkATYBmwDknhOtgFJgCTAtpAxzyIwQoBtwDYgiSsMAsAAtoUsA7YBIUASABjbAmQAJMA2gMSzGDCAhA0IsJF4AIMkQFwm8ZxsAxJXSLINYBBX2AYkAbYBSVwmyTaXCSEADMI2gA0gYa4IsHniXSgIYQEGbIExhjBgI2EAEBgElsAyCMCAkQyyLQmDMAgMCIGNsBEIABsQgBAgCxmEhS1AANiWANsAGJAEYFlcZhAYEDYCQNgSGMCyEGALbDAgIwBJ2AYTaUty89/f62aKlCaEABlLXCYBNhLPRRJgDEjCNs9kACQBSFwmCTDPZBsQGAS2BUi2AduAJIMknodtSWCb52YbJIEAxGVGAmxzPyEAAxhzP0nczxgBYBAYSQAGYRuwDNhGCNmWZCwLwDwv25IA25IA25IADMI2gACEELYBywjbgCRjIe5nzBUGAQgBtiXxPIQAzBW2JXE/2wiMMQ9kAGNAEiCJ+9nmCnGFZQCQBNiWxLMYYyHAWEgWYIwQAjCAMQaBkIWwDRjzXMxzEBgMAiMJsM2ziOdiG5DE/YwRQjyQQTybAYQAAPEczLNI4n62ARD3kwRgg7jMGAEYA5K4TBKAkcSzCMwVtrmfbUAS95PEC2Wb50cSl0niXyKJ52EbkARI4jnZlsTzkATYBmwDkgBJgG1AEvezDSCuEOK5GMuAJMC2JB5AEvezDUji+ZEE2JYEAJK4n22gCvE8bAOSeB62JQG2+dezLck2L4TAAAgAYwwgnkk8kG1eCPMskoy5zDbPRTyTMRbiAWxLsg1I4kUjhLANALYlAZJsS+L5sQ3Y5n62JdnmeUjifrZ5IIG5QpJtSYBtQBLPTWCuMGBAGMT9BIjLxPOwLcm2JEm2MQjbPJB4buaZxHMQDySJB7AtiefHNs/JtiQukwTYBmxL4gFsA5K4n21JkmxL4n62AUmAJNuSeH4kcT/bgCQusw0AknguwjaXGQOSbPMs4gpJXCEwgG1JtrmfbZ6TbUk8D9uSANuAsSzLACDEswjMFbYlCVnmMmMuM+Z5GQAZAwYMADb3M4hnMVfYPJMAbCQkbEkANpIBEM9mG4lnEveTZBsBGGNeENs8kHgmAUiyDQJsIwFF1KqjdZ7djahqCgTmfuIyAyAbCcyzCJkHEhhsIQTGIIwEQsgAkmwkMJdJ2DKIKyzL4goJbNtgwDaXCRCAQQACA0JghGyQQRKAAASAAYwAW5YR97PBAJgwhJ0dt53nYOR4j20DAjAGSeKZbEsCsM0DSLINIMkYjHkgm+dhWzybATAIkGzzALZBwjwfAnOZkDGAhG0QDyTuZ1uSJAyAsC2JK4Rtni8DYBDGmCtkGUvifrYBYwziCkm2uUI8i21JgG0AwDyLkDEGAQgBCAyAsM3zEMI8B4OQZBuDkIR5Lra5nyQAIWRsLAtAAELGAGCby2xzhXgmgXkWY8C2JMBYiCsExlgIEOL5MoCxEMI2QghAYADEMxmEkGUuE2AQgLEQYJsrxBWSuEySbR5IYAAMAoN4IGMAsC0JMMYgni9JgG2eTQAIMOYyYyEEgHm+hGxzmW1J/JtIss1lkgDbvMhs8/zY5n6SeH5s8yKTxGW2EVfY5vkxFgIQGADxLLYRL5wkXjDbAGBbEmCbBzLVWABIAmzzrycJsM39hABJgG3ANpfZlsQLJ57JPIsknpNt7ieJZ7INgCTAAMYAAhACbHM/SdzPNkKI52FbEmCb5yQEIJ7NAIhnsc0DSOJfwzbPQxIgCbDN/SQBthFCGECSbUASz58B24AkDBiwAMRlEoAEtgWAQdzPtiTbQkLGGGPuJ4nnYp6DQTyTQbwQtnnBbPMAtiXxPGxL4gWTxGWSuMw2z8m2JK4wxrYBSdzPNs/JNveTBGAABGAbMAaEuEwSANjmOUniAWzzAJJ4TpJ4fiQBtgEMYMxzEgJscz9JAELINmAbQALAAknGGAAB2ADYAAKweRZJPCfbgCQAYWMJEFiSDRiwkbifbQESNhIgAQIDIJAAYZvnJIn72ea5GAQGgREyBiwwiBIATznbzl8URWQIQ9pgyYjLbCRLAiEAI0BYCAHGgA0IGWMMAiQM4jkJDDIIGzAIDAIQAhDYgCywwQghA4jnZCwJywLACPFslmSQZIwN2DIGbJCQMQACZGOFnLXj4r164lm/0o2Rdoj7CbAtCZDE8yPJGCGEQWALWQaBMQAgCTAAtgEk7mcbkGQAJNkGbAOSeCYLgRCADYAkwDYWAoyRMMaSAGQQ95ME2JYEYCQBgCTAmPtJ4n62ASEMgMBcIcQD2OZ+QoAkrhAYWYgrJNnmWQRCCBACMM8iCcAgAIwxYBuQBAgBtnkAIcA2IAnAGANCgG0AAUgCMIhnMkLGgBCAELINYAAhIWOeRTyQMfezDQjxLEYIsA0gMJIABIABbAOSjAFJXCYJQDybQQDGCABjEGAAIZ6LkcQLIZ6DQWCEAGPANiAhCWxzhRAgCbDN/STxQhjAGEBgJCGusA0ghDAABjDmfpJ4oWzbBiTxnCRxmSTbPCdJPCfb/Esk8ZxsA5K4n21AEi+YJB7IPH/CNiDJWBJgGRACMM9kJAG2AdvcTxJgm/tJsi2J+9kGbPMCUQGby8zzY5vnZJt/kQBscz9JvIgMwhgD2JbEFeYKy5gXQGAA2yDEsxjAmOfLPBfb3E8IASAwgG1JtgFJPBfxXCRxP9uAJF40krjMNiCJ+0kCbPO8xDMJwDbPw7Yk2zyAJAABAsTzYQMGbMBcJgmwLcmYB5DEZcZCxoAQgMA8mzDGSOJfz7YkSbZ5HrYlSbINSOIBJNm2LQmwzQPY5n6SbNuWZBsAbEsCEJjnJcm2bUmAbR7ANiCJy2wDgBBgLGQbkMS/nm1JkmxL4jkZC/G8BIDBXGFbCIO4QghxhW3uJwmwzTMJEAIA2whJtpG4nwSADdiWBACWsAEkAAQgYyPZBgyAJAM2knkmSwASl9mAJQG2AQPmRWFbkm1AEvcz5gohZLAxlvTXd/noSGxINgJLGAwYCZAQAsACjCQECAwSMsY8k8AGcZkBDBLYXCaEALDNc5MBLABkLIGFkAEQGAtACGEQBhkQEiAwCDAgAUgChAwYY66QQTyTAQEIQEShHfjv7uOVbgRjAIENAsA2IInnIck2ACCeSQBCAAiMxBUSNiDJNiAw2JYEAEjYgCQDNs9kAAuBuJ8BDMiAsQwAGIQQl9kAElfYlgTY5gEkYa6wLYnnZSzzLAKDeA5GEpfZBiSezQDGshAAIMm2JB5AiCvEs9jmMiEAgQGEuEySbQzimQwCMOaBBAZjWYj7SeIK8VwkcZkkY0DIthDiCiHuZ5sHkGTbthACsC0EGAtxhcAAQgBgmyuMkDHPYhCSeCDzLMYA5pmMZSEAg7jCthACg7DNA9iWBNjmMmNJgDGXCSEwkng2IWOEuMy2JF50AhCyzRUG8RwMwhgAEEK2ucw2IInnxzbPyTYPIMk2IIkXgW1JPIAk2/xLbHM/STyAbUk8D0m2eSGEEOJZbHOFeF62eZFJ4nlI4gWi2pbEc5LEv0QS/xEk8SzmmcwVtnkW82zmWSQBtgFJPBcBYADbgCRAEmBbEpcZA0IAArANYABJAAIwBgDbkrifba4QVwjZFgIQgG2ek22ekyTANiCJ+9mWxGWSuJ9t7icJsA1I4n62AduAJB7ANg8gCZAEGABsQBL3sw3YBiQBkgDbXGZbCHGFJJ7FGEsCEIBtBAZxhSzANs9Jkm1JgG3ANiCJ+0kCbHM/IcAYkATYBiTxnGwDkgDbPCfbgCTANpfZ5jJJ3M82z49tQBJgmxfMNlcYBIAxlgRgEFfYBiTxAkiyDUgCAEm2eU5CtoUAxLPYBowBBCDEFUYIjAQYA7YBSTwnSdzPNiAJACTxQDZgACRxP9kAkgEJsM0VNldIXCYus81lEiAJsA2AQTyQQUjifrYBSTwP25J4oYxs0pTC0+5tUysIZCGEEQJbgADE/QxCAEgYYQNGxhYYMCCBASwAAQawLUlgnsUYCQMgMEhgEBiwAMAgIdsAGDDISFhgIwAjZAADIMBYYAsZg7jMAMZCBoGFwIAAAVaEk6dfMFcYgitsgySusM1lkngOBtmWBMg8B8lcJgGSANuSAAMgicskAUiAbYF5ICHAtiXxLMYYgTDGCAFCxlwmxANIss39JAGSeBYjxPMlrpAE2EY8BwMIAcaSABuJZzMAAiMJsC2JyyRxP2MhIcA2YBuQZCyJ+wlxhQEQzyYAY+5nLIkrBGAsCcAYc5kQYAwI8ZyEAGNJXCaJ+9nmfpJ4AEm2MZIkGQOyjCVxhQCMhXgWAyCEbANCgBDGMiDEsxgAARhzhZBlzHOShMEgMABgm+fHNoB4IGMhxDMJwLYQVxgAYZvnZgAkGbABwIAkwLYkDIDAIB7INleIKyTZBiTxALYl8aKRBEjifrZ5oSRxmSQAsA1I4jLbgCSeH0mAbcA2L5gk25IAzLMJwDYgBEgCbAO2AUkYxPNlm/tJ4l9iG5DEczEAAsAgKvcTMgYA2/xr2OaFMAjAWIgrDOJfYABJXGYMCHE/25JsA0IABvFMBmEbgcBI4n62ucy2JECI58dYEoCwzf0k8UDm2cwzCUkYAAMgMFfY5n6SbAOAbV5ktnkekrifbS6zDUjiMkm2JQG2uUyI52LzAAZsAAxI4gGEjIW4nyRjQBJgG5DE/WwDGATmmQQgZJvnJInLJNmWxHOyLYnLJAEYAJDECyXJNs9Dkm1AEg8gCbAtiWcxQsY8J9s8J2OMJEm2ucw2DyRkGQsBtiUhHkgSDyDJNvezzXOyzQPYBiRJwiCeyQBCxlxhJPEsAoMEAJJsCwDbkgBAgASABMYAYFuSbUASNgAg2QaQuMw2IJ5JYJDNs0g8kGQbQBIYsJGwAUm2bSRsA5JsGwvxnCTxAJJsA5J4AIO4n7ifjcBYF46ihQKDAJAwBgkMSADigQzCAiRhI2OwQbLAWIBBIAQ2AJIAYwALECAwkhAGCQMCQIAEGAtsG0AACNnGIJDEsxkkBGAQ9zMGwBbPSeAAWxIGCYEAQ+jeQ2wAScIgQBKXCWzzAgmQhM0VNhLPxQaQeABJtrmfbR7IlsQzCQCMkLmfbUncTwhACBnzAMayuJ8kHkAS5tmEbSFJtnkRCBkDCIyxJMwVkjDPJp7FNg8ghEEAgBBgGwBsC3GZkG3uZyxkzGW2JfGCiOcihAGMMYAQAsAgEM9mbAvxAJJs80AGIcQV5lkkcT8hYwAw5jnZRjyTkGWby4QQQsYARhIPYJn7CXGZMVeIKyTZBhDPJDAYIQSADQjMC2MMCPFchJAx5nnZ5plsIwHmfrYlSbKNwBgDmH+RJNu8ALYBwLYknh/bgCTANv96trnMtiRAEs/DtiSehyQewDb3s82/niTbGIRtHkhgAEm2AUm8ALYBSYAkni/xnKg8ixACANvcTxL3sw1IAmwDknhOkgBjQAgwxljmCvN8GGMEIAvAAJJ4LgLAXGFbiPtZxggBxhgERhLigWzznIwBBCDE/SQBiOciiWcxAAYwBiTxnIy5QshC2OZ+tnmhbEviOdnmfpIA21whhLifbUASIAkAJNnmfkKAEAAGYfNcbMA2IAmQBDYAAiFjAAEghADANiAJkATY5lnMc7EN2AYk8QDGQpJs8zxsSwKEAGNAEs9JEmCbB5BkG7ANSAJsA5J4fiQBkgDbAAYhifvZ5jnZBiRxmSQus839hLhMyBiQxHOSBEjifra5nyTANvezDdjmfpK4wgAYxLPY5n6SAEmAbQABkjDIFpjLJBthQBKABNjmAWxLArC5n20AiWexASTAEiDbIBtAApC4n20ACQAEADYSYBsAbEsCbANC3M82IMk295NkG5AECCGwDSBjJIFtwLYtG0Ezd15UCgw2QpYBBBYyti1kISOwwAKMJdkGMAACY1kWYCwAsBHYSBI2GIMwAgsMGLAksC1hrpBsCwADwkYySBgAYxAgsC1AwiAwSGAAbAMIDAIEIBkLBCAhA1ggQAIDd57XmIS4TGAuEyAB2DyAbQAhARgZA4BsJNuAJJ4fSVxmWxJgm+diAwIQAmwQCGEhrpAEAJIADOL5EEK2uUwIYSzE/YwBIS6TBNjmCgNIAhCAbQAhhAGEAGMEYFsSYDCAQULGEgAGwAAIQAgwlmUZEOJ+tgEEIIS5wjIgyRgDWEZgAEmAMfeTBNgGJAEYY1k8izAWwghhjAFJXCZkG0AAkrifbUAIEAKMASFjIQDxLLaFjAFZgCTAmCuMJACDwABCgBAPYFsSgAAwzyIJsC1kDAgBkrhMCAE2AEKI+xmJF0ASYJtnEYAx9xMyCBC2ASRAANiADYAkmytsA5JsS5JkG2EbEAIkAca8AJJ4oWzznCQBtnl+bAOSuJ9tQJJtSVxmmxfANveTxGWSeB6SAEmAbcA295PE/YwBxLMIAcaAMSAJsC0Jg3kmAUjCAAjbkrhMEmCMkQTY5jnZ5n6SeBYDIO5H5X62eX5sA5K4n23uZ5vnZBuQxLMIACOEQLxIxPNljHkO4tkMwhhAYDAIDAKwzfOwzbMYwJjnYp4/82wCEOJ+tgFJGCHANmCMeVHYBiRJ4gFs88IZBOZZJAGSANs8gBDPYhAYMC+YJJ5NYIF5PmzzXARgG8AAiAcyxjyQsRAA2AYQgCTbtiVJsi2J+xkDkoy5TJJtnodtSQAgybYkwLYkHkCSbZ6HbZ6TbUCSbcA2IEmSbSHEM5nnyxhAAELGvGC2eQEkAbYl8ZwkcZltQBL3s4wBEELczzbPwQDGAAgM2JJAXGbA5n6SeE7mMhuJB5BkG4nLDNhcJkDiedgGAIPAAEjieQhhEM8kANvczzYPYJsHEoAFRoCFACRhI2EMiVr6cfdmVmEDGEDcT8gYAdiAERb3M+YKCYxBYIxBSDZgACMAbACEAAsbACEEYMACEDYCMGBACGwkALABAIEwBgQCjAQYxGVCYMCAAWyQAQwCCfNMRkJcYRDhJ93D0eRjPc8iDELiOUmyzRXGXGGeRQKQsM3zYRAAtgHbknhekrhMPItBBrANALYlScI8izGX2ZaEeDaDQNgGjIW4TIgrBOaBbEsCjAEM4pnMcxCYZ7HNA8hYBmwkGXOZsZAkDCAEYABjSVwmicuEjAEEIGSbKwQgBCCEeB62ASFjDGCMMQYQz2IbIQsQAjDPJjAAYJv7SeJ+xgAGAchC/IuMAQCDELLNs4grhAAExhgQsg0IcZltSYgHEs8ksM1lxrKQBGAQVwjMc7Ik/kXmmYxlAIFBsi1AgLARNoAkHkCSbWMh21xmzBXimQTmCiFj25IABOZFZxuQxAsmifvZ5gEkAYBtwDb/Etv8S2xLkmRbEmAbwCBs8yzmWYy5nxDPRTyTsS3JNiCJ58v8WwjAGBACKggA2wCSAEmAbf4ltgFJPF8CwABCgBBgWYjLbAOSAAxgGRACMADiWWwDtnlBDAIQQmBsIzDGgG1AEvezzf0k8ZyEAGNAEpfZNgaEAGMAIcRltnkg8UzmWSQBtrmfJO5nm+dkG5DEc5LE82UADCAJkATYBmxzP0mAEGAuM4AEgGSegyRAEmADSALAgDEgBNgGbAOSAEmAbQADSAJsA5IA24BtAIER4n5C3M82IInLJHGZbZ5FCNkGbEvieQgBGAQgyTaX2QYASQAgyTbPyTYgBBhjJAG2AduAJAAjhAAQgG3uJwmwDdgGJAEIIWPANkISgEHYBmwDQjw/knhOknguBvFMBkAAkgDbAObZBGADYANGYEmAJMA2gA1IApC4n23ANiDAlgQgcZkkALANYANIABJgwBYAtgHbXGaQBCABBgE2IC4TGAQghLDNc7LN/SQBkgAbMJIEgA0YyUZgANuIsXFuTxa2QYDAXCEZA7ZBwkZcIWRkkC0JZFmWsS2wBIAAY1mAZIwlIQQYxGUStsEYJGOBhAFsAAECBICFjUBggZGFbDAIgYUQWIBsAwIjyxjJNgYkQCCwZZAAxGUCjLh4keXIibnMs0iAsZAtiQcyAALAGAOSACQAG8k2IAmQBGALkHgA25IAABuJZ7KNADCIBzCAMZfZFuI52eYKg3gmAdjmCmMsBFgGEBhJgG3ANs/LPJMxlgRYBoS4nzHYBhCywAAI21xmzGW2JfEs5grbknguBvEskmwDQoAkADDGAEKAMQ8ghAEQCAwgBBhzhbnCNoAAJAEYhG3uJwmQBNgGbAOSMADCmPsJ8VwEgAEQCCHMMwlAEpjnJGTbWIgHEAIwCEA8gEE8kwEQGItnExhJgAGQDeIKCWyeTTw324AQAEJgSwIwCCRsSTw/kmwbcz9JxjyLACQBGAAjBABCCGMAg3hBbAOSuJ8k7mcbkMT9bAO2AUm8YJJ4fmwDkgBJXGbbNiAJsM1ltiVJss39jDGSuJ9tQBLPj21AEvezjcDYlsQDCSGMbQDxr2Kb+0nimagSABayEADY5jnZ5jLbkngASYAk29zPNs9FCAHGGGNJPD9CXGFeEEk8J2MA8WwCYxmwjbhCEpdJAmxL4jlJss1lxhjEczMAAvNMxlgIcYVtSbZ50dgGJHE/25Jscz/bPD+2eU7G3M9YyDb/EnGZeBYDtnk225Js82wCkLAlcT8hYyEAg7DNs4hnE4Axz0mI5yIAjDEPYJvnxzYPYFsSl9nmCgEgnkWSbUmAbUlcZpv72ZYkyTYgicuEANuSuJ8kADAGhHjBhIwlAcZCgG2exSBsA5grJAEYhBAvmCTuJ8k297MNAELGXGYbkGTbWJKQsW1JAGCQJDDigSRsAIkrbAAJkGRbEi+UbR7ANpJsAAmwzf0kAbYlcZltLjMIzGVCyDIGYYyRZNu2JEm2JQG2JfEsRgDiMnOZASMBiMuMwWQzbrYhZGEwYMAIkMBgnocAgTHGmMsECGwABGCQDCAwyBhAGISMERgkwAhj8UzifgYQMkiAMcjcT9gSCMAgg5ABCduSDIDAAAgJBGADloQAEJcJQOQoGwEYBEgACGwDtiTbXGYsScjYmGeReABJ3M+2JK6weU62JQEGcZkBATbIGCSuMAhAiPsZ85wk2QYk2eb5Es/NSLINALaFuEzI2LYkLrMtCTAGMM9kEFfYiPvZgLEQABhL4n62eX5sCwEI21xhEJKMMZJsA0IYhG2uMJYlYZ6beDbxTAJjWwjxTALzvCTZ5gFsc5ltHsAYgwAwgLEkLpPEFQZxhZAxlxkLIS4TNhhAXCGJK8yzGAsB2NzPEs9FCAEIbAAMYBAgnpe4TNhcYVsSL5jNc7KNxP0k2eYySbYBIS4zlgRI4n62AUk8i3gW2zyLuEISDyCJ52QbkMT9JHE/21xmG5DEv4kk7mdbkm3uZ1sSD2Cby2xL4jLbPIsBJAEIzHORxPMjifvZ5gpjDEgCbAOIf5FtXiAqCIwQ4jlJAmwDtnl+JAGSAEnczzZgG5AESAJs85wkcT9JgDGAeW4GkGQsBNgGbAOSAEk8kMAAxhhJgCTAtm1AEpfZlmSbyyTZBmwDQtzPNg8kMAAGQGCuEMI8kwAkARhjY0ASYJsXwDYPIAmQxGW2eQFsA0KAEGBbCDCWBNjmWQRgjEEChEHYPA/bXCaJ+8k2QgjbADZCCMAYwACSAMtCXGFeCCGuMAjAmPtJAmwDtgFJ3M8295PE/WxzP0mAbUASAEiyDUjifra5nyTANiAJEELY5jLbCIwknot44STZBoQA24BtQBJgzP0kARgAARgDtgFJgCReAEkYwDbPIoQsY66wDUgCjLnMNggsCUASADYGQDZgCTAAAnM/WxIPYJ5JPJNtABtAArCxkQBswDYgiftJAgSAbQCJywQWAkDIGIMAbAOSuEySbUASIIn72SADQtg8FxsEMm6JmyENGEAGMBYSAEbIgCzJIBsQIDAGsAEkZBljIQNgQABCYABsAyAJLGOMQVhgwEK2hQySbMBYXCEACQNgJIOMEMLGAmMhYxDYYJAMwkY8JyNAXCEQAgvAkgEBGARINpLNs9nmMttcZhkjyTYIwEYCJHE/21xmWzyTQRJgm8tsS5JkAHOZEBhAGMAAAhBCALZ5AYQA2zyLwDyTEMIgAMwVxlxmG0AAsrhMiCuMEA9knpckbBCAMAC2eRbxLLYBSYAkwDaAMZaEeSYDCGEkIWxLwhhLwlxhGxCyLYn72UZgAEk8D0kYDOKZxLMZSYBtSbYBDGDMZZKMucI8X7Yl8SwGmSskAIOwzRUGARgEBgxIXGGDBAZACGGeTTwXSYBty0LczzYgCYMAZANGADIgns02IDCIF0YAmPvZkgDABpAAGQABCDAW4jJJgG2eHyFjSYBtnpNtnpMk7meb58c2IIn72QYkAZIA25JsA5K4zLZtnockLrPNZba5zDYgybYkwDZgm+chCfMskgBJPCdjIdvcT8hYEvezDdgGEBhJ3E8S/xq2AUnczxioEjb/Ikm8YLYBSTwPSdzPNg9gG5AEYAAEgHlu5llsA8Y8J9uSbHM/IZ4f2zyAbUm2AdtcZpv7SeJZjDEPYJtnEYAxzyKei23uJ8S/RBL3s81zsg3Y5n62JQGAJJ7FICQBGCFjISHuZ5tnsQEknpPAIInnYgMGMMY8iy2EeBYBGAMYYyEEAvN8GMAYEAJs84JJ4n6SbEsCbEviMts8D9s8D0m2eU6SeCCBeSZhGwAkcYW4QsjYtiTANg9gLMQVAkBgMAghY0k8i3kWY8wVQoAk21xmWxJXGADxbAYAjAHEFbYRmBdCEmAbMIgHMgYwl9lIXGEjYQOAbUncTzybbZ5FAgQGJMA2EpeJy2wkSba5QsIGkADAXGYsADAA2JbEA9gGJNnmWYyxEBjAGPPCyZZF2tiWMEIIZCQMAiwAgQGEbTAWAAYBCEAIARgEAFgI2xKSAIlnERhkAGOEAWzAWMgYgUEIAQIECAAEYBsAWZJt7mfACADbAgyAAAQgAAEYZAEoAAxYQphnEvcTNmDAtiTuJ4krDGAbAIO4zEYCsM1zMshGksQLYnOZEIDEFTZXGATCNg8gZGxbkiTbiOdmANuSMMaSuJ9tSZgrJNnGAMY8F3GFJNsAAoMAgxAYAElgYxvxvCTZBiRhAEm2eRaBMZaEARBCxgBGiCsExlgSBpDEC2IAIQwC89zEMwnMMwnAsiyuMELGXCZkLAkQ4jIhY2MhBAYDIGxzmSQABCBscz9J3M82l5lnMZZlnkmIZzJXWIjLJGyDALDNFcZYCMAgifvZSDyTAQwSL4Bt7ieJKyTbPIBtSdzPNs8kGzAAQrwgtiXxLAKwDdjmOdnmMkm2uZ9tSba5zDYgyTYgifvZlsRlkrifbUASz8k2L4BtSTw/kmwDgG3uJ4nnSzwHAWAeSIjnIcRltrmfJC4zNhayDUji+bHNA0iyzWWSuMw2AGAq5oWTZBuQxGW2edFIAiQBtnkhxAthG5DEsxgAASAAIcA2IIlnMQDiudgGJAG2AduAJMA2IAmQBGAA2wDiWWwDkgBJgG3uJwmwzb9EEs9DEpfZ5gWzDUjiMtuSAEkABrAMCAHGgBCAeC62AUkAGIQAYQMGAZIBLMQVNoANWAKwAUkAApBBgADbAAZAYIS4nzH3MwaEAAyAARCAJMBYSBLmCstCgCTbgCTuZxuQBEgCbPNcDICQZBuwDUgCJAEYBIDAIGwDGEASYAxgAGNAEmAbwDyLJJ6LeSaDEEIAtrmfJMA2zyIAY+4niWcRgLEsAHGFbQDxLMYYSYAQgAGMAcRzEc9m81wM2JIAS4BtQBL3sw0gAeK5SQIAgW0ACRAABkASYJDEFTaABEgCbHOFQcYYI2RhEIBtQBKXSeIy20JCmCuMMUIISQCYZ7O4LJMICWMjCQwgIQMYSdgWl8m2zGVGGIGFEAZZxlhgELKQbSQMkgAZZBBgLACMQTwPgzAWAiyBhbnMIGQbBCCDsRAYwIDABgRgLAshsACwkUBgZCNZQiBIZASySPMcbMCAzf0kYRAYY8A2z0PiBbINAmwkQBIANs/NWBLPyTYgZJsHEAIwQoCxEGAbQDyLbcA2IMm2JC6TZBuQBACSbAMIQBYgBCAbsAwIQAYBBpABCQALAAsZAxKAzRW2JQE2yEKY5yYA25IADIC5wlgSYIwAbEsCMMaSeL6MsSSMsRAASOJZjG0EIMRzkgVYFuIKIwQAkgAMAiMEYIQQtjHGgCTbknh+BIBtwABI4lmMMQZAGEsCZCFsc5lBEpeJ52AbkGSMAQSAuJ/NFTaAhI3E82MbkARI4n4GwDYvlG3uZywJkAUgjLmfJF4oSdzPNpfZ5jLbgCTbAGCby2xL4nnYlsT9bPOcJBnzAtgGJHE/STwn25J4ANuAJEASYJv7SeI52RbiCmEsxLMYAPF8SQJsS7JtLIn72ZYkCbDN/STxnCRxP9sIWYhqkLB5XrYBSZJs2+Z+tiXxohDPS5JtnpMQ5jkIACOJ5yKeRYj7CRlzhcAgACHAtiQuE0JcIcm2JO4nifvZ5goDIAAhwFiSsW1JtiVxmW1JAOZ52ZZkm/tJ4nnY5jJJtiVxP9uAJNuSuJ8knovACAEIjCRjzLOJBxLiMhswABYYAINANgBG4rnYkpB4NoOQMM/LNkLImCsERhKAeRZjAIGxLQmwDRhLQgC2McY8J0mAbUASl9nmOdnmWQwgybYk7mcbkIR5JmGby4wl8QDGQgDimQQG8SzGQrYBIe5nLInnYVsSgBEyxiAwxlwmCbAtCQMgACGEbcyzCQAhZBuQxGXGgCRAyJjLhIwlARiEbZ4fAWBbPAfbkgDbAIANGABJtnkAAzbPQ4AEGLDNMwkAcZkNSLKNBMgyBoQQzyKJ52EbMBZCyLItBBgLAQAWAgyAkCWwAWRkMIAQwgACCYMQNsKAwDYABoxkjAFZyFgIwDbPZFvIWGDASOZZJAAbBAYwCAzYRlgAGHGFuMwGi/sZhGWBAZDNMwkZYwwyYIxBGMsCGwkkQBYgoUCSLCxkBGALDNiSuJ9tACME2JbEcxDPj8BgWwCYy2wukwQSz4dtHsC2JJ4fYwzimYwxBnGFJNuAJC6zzWW2uZ8kDCDJNiCJZxEYYwTmMmOuMABCFjLPYsxzMoDA3M+2JAHImAcQMuZ+tiUZc5mxEFcIzLPYloQQ4gFsc5ltIcBYkiyuEJhnMQYwgDEgJMkYgxDifkKWMQBgWxL3MxbiWQQgxLOY52AQgHkmA5IAkGTbtiQAwACAbSGuELYBIds8gCTbtrnCXGEQiMtsJJ5FwuYy29xPElfYAvMCiWcRl9kGANuSuMw2Qsg2z2IQtnnR2OYFk8RzksQLZluSbUm2eb6MEOL5ksTzY5sXnXletrmfEMYYgQGMeRaBeUFsS+IKIcQDSOL5sc3zkATYlmQMABUASdjmX2KbF40QL5QknpOxEM8ihABjHkgAmGcTgCzAWIhnEUKAbUASIARYBhBCgCTbkmwDkgDbgG3uJwkQAgAhYyFj25Jsc5kkAANgAMSzSOJfSRKX2eYBJHGZbe4nCcAACAQGMJaEETIGjAEh7icECAHG3M88gM0LJgmQBGAuM4ANYAAhwBhAALYBBCCEsM2zGADxTEIIsM1zsg3Y5n6SAEmAbUASz0kS97MN2AYkcZkkLrPNs5hnsQ3YBiTxLOYKY0mAJMAYkATYBjDGkngWA0gCEM9FEoABMIAQxhhAPIsQBvF82QYkAZIA24Aknot4FlmAMSAEGGOMAUmAJAAbMM9kEM8mCbAN2OZ+krhMEra5n839JAHYABJgAGwD4jIJMADCIEASNsgYkARIAmxzP0nczzbPQ8gyBsSzyDyTAYGNUhSBJYOxBAIQgIQtZBkAgW0QmMtswAILIQAh24ABDAKEwLa4TLItCQwSNgDCFjIIjGRbIGMukzFIGCRkbAAkbHGZBAYBNgjZSFhgANlI2AgsG0DYCAwyFoCEUCBFWNg8gM0DSAJsAxhjQIjLJIFtSYBBXCYJwAawBQZANpJtQJJtSQAYJAmwDdgGhBC2eSEMIAQYA7YRQoAkQJKxEGBbkm1ACJAEGCMAjCRjjCQus40AMABgm/tJAhDifuaZZAsQiPsJGWwDkmxLAjDPIgQIAcZgkG0AbJ6TkQTYBgDbknh+bAPGgJBtSdzPWAjzTMI2IAQgMAACMJbE/WQhbAMI20IAIIQBEAACwAAIAANgAAFgDBhxPwEgicskcZkQwjaXGUsCAEm2jblMEiCJyyTZBowFljBggxASNoDEFZJt7icJkARgI9kW/wIB2AAYAQJJYJAxAjAWAjAAAvNAknhOkmxLAmxzP0mAbe4nCbDNCyCJ52Rbkm0eQBLPyRgQAgCEbcQVQgCAQTwXSdzPNs/FAEKAZSEeyDwX24AkQBJgG/FAkgDbXGaby4QASQAGQDyLJMA2z48kLpNkWwgBVLDNA0kCbPM8JNmWxPNjm+dlnpdt7icJMOZ+QoBtYwCQxLOYZxMAYNsYkGTMZbZ5XsI2D2Cb+9nmWcwVknhOxhjEc7EtiQcwBoSMeaFs84LZ5n6SbHOZbUCSbcC2JO5nLMk29xMCjLlCCPFCCMwD2ZZkALCRsAFxmcSz2OaZZAEgrhBXyDLGAIAxIMQDGAtxmW1JvCAG8SySeADbPIAkwLZtSYBtAEBgJNm2LYnnYVuSMf8iAWAAYyEAAwjxgggM4kVhzP2Mucy2JB7IIIwBIUCSbUnczzbPSZJtLrPN/YwBIQCBkWSMkcRltgEBILAkHsAGbEvifpK4zLYk2/xLLGFjI/EABklcJgnbCMDmmcxltiUBtrnMtiQAsC1Jkm0uM+Y5CQDbXCaBBIC5LAo2QiAhBAZJPJOEbYG5QgiMJGNbgIUsC5n7CQwWwgAGIQHiMiEMEra5TMLINsgCDJJtBNhGXGYLyQZABsACENg2gIwFxlgIEDYIIbBBMpcJbC6TjGUAhcASKnTVNZTGuGCEeTZJPJB4LrYlSYBtwAIk21wmm8skAYBt8QA2yAAGJAG2JXE/SZhnsS1Jkm3bkgBj7ieJy4RsA4AQgLhCEgAIAQhZgLExRpKxbUCIZxMYkMRltgEEBjDGIIQAGwAsiWeyeW62Ec8iCQMYA4CNxBUGSQAgBCBs81wMYMxlQlwmCcA8i23uJ4RBPIskLpNlDAC2JQG2uUyIK8SzGGOeSTyTEOJZDMIYQAiZKwQIsLmfAJsHEDLGAMZCgDECwEjiASTxAJJ4JmMDGMAYicsESNiAJC6zzWW2xf0knh9xmQQYsEGAwGAbEICFuMwYASCeDwEAtnkASTwP21xmWxL3k8T9bHOZJNu2eU6SeADbkmwDkrjMWAgwBgCMEGAbMAYABOa52OY5SQIAIWMAg8AYS+JZxHMwgBBXGEAIMAYwL5BBALZ5FvMsknjBbHOZJJ6NalvCRhIgicsk2eZ+kgDbkrhMElcYY8A2IIlnMYBlQBYgCTDm+RIYBIB5LsZCgDEACAG2eRYhZBuwzf0kAZIAY57FALa5nyQA82wCEAJsA7YBIZ6HbUk8i7lCyBhAAEKAbZ6Tbe4nifvZBiQBgCTb3M82YJvnJIkXQgBCAAYw5jkJWRYCbHOZjbC5zJYEIHE/2YBtAIlnsQEkwFgIEDIGjAEhnoexEAJjWxIgxP0sy0I8iyRAEmAbsA1IAiQBtgFJgG3uJ4SwLYkrDOK52JbE/YwxCAADIJ6LEIABAGMhXhCBef4EIAuwzf2MAcsAYCwECAEIQMiYZxGyANuAMSAJkAQAkmwDmGcTAOKZhG1AEgAC8wCWAEmAbR7ANpdJ4gFsc5kknpcEANhcYfMAkgAkrpCwARuwBGAAJAHGgG1AEveTBACSbAPGGAQghMBgLGMERmCQAKjhRe9La6lwhUCADRIC2whsCWyQMYBlkLCRbJAwz0kIAIG5n5DBMkhgA7ZBgMAgMAYJjIRtQAhAwsZGgBAy5pmMASMBwlgIgwGDJGMZJAzIApvLDBgJAwgskCA5fZpjMzVbYCFjBOYy25IwCFkA4grbYJCNBAgsLrO5wjYIDALAIAkbkA0g8QC2AUlcJgnAIGwDxgBgG5DE85AEYADMFcaSMJIA2wDi2QSAucI2VxhjSWALgS2wJMC2BIABwBgwyBiQZJtnEhgEBgFg2yAJjCTA2CABYADbPJNtAAQgCQziOQkBGAABYIwlAcZCXGYbYQwIAZhnkWQMALIQGMAyYFuSMSDLWBIgCbAN2AaEACEAcYUxlwlhnsWYBxAg2QYAG2EACRACMIAxYAwIYSQhbHM/ScZCgCTuZxsEBozASIC4n81zkmQbEBgk8YIZAEkANhL3E5hnkwBshLhMEmCbZxEYxLPYBiTZlsT9JAG2Adu8CGzzPCQBkgDbXGZbEv8i8Sy2AUmYB5IE2OZ+kgDbgCQAAxhjJPEsAgMIIQAMQhYgxGXGQtzPNvcTAhAABsAAiGexDUjieUgCbEsCbHOZbZ6NCrIBcz/bPIBtLpPEZbYl2QYkIYRsS+Iy24AkhG2MEJcZ8/wIAbYBzPMlxGVCAGCMeTbxQEIIwDbPl5BlLInnR4gXQBIPIInnJMk2ArCNEOJfIokXQBLPw7YkSbYlcT/bgCSeh22ekzGAEOJ+xgAGQGCukASABIDBIACwBUhItgEknsnmWQxIwgAIIWMh7meb+0niASRxhcAAxhhjIf4ltiUBtnmhJNnmCvFcJPEsAiOEuMJYyDZCyBghBADGgCyEQTyTJMC2JC6TxP1s8ywCY8wDCSFjDABI4jJjQAgAhADbAICwzWVCAAZhm+dkLEnImGcxzyQw2EjCBmwkJGzxbJJsC5B4ASTxLDYSl0niCpvnIgkM4gWQsAUg25Iknosk7meb58sIARhjIQQGAxjEFUaAZ1XXnYm7bg11xpJ4XgIbwJj7mStsCdsgbAOABZIACwwYEBaSBEgYwDyLuMyAwAgBILCFLIMAAULIIAQIGdsGzLNZABiEAQMYcz8JY4ElwAYB2AgQGICEkZtPeV4ZkhAYxHOxLQljDABCXGEhwDYIAWCeybYAsCQwDyCJf5kk21wmhMBI4nlIsm1bEmCbKwziCiEAYZvLhGwb85xsS+JZhAwYSQBIgDBX2EgAxhjAIBAYAEkABgwYS+KZxP0kYQAhxLMYc5ltHkBgGwBzmW1JAIAxBjDGQoAxlxkjhADbCCFAFuJZbHM/YwxgLIQAbEsCEBhjAPNMRhIACAEIY0AACAHGXGEQV9hIIACMJGwAYYQRINkGEICQsRD3s81lkmwDtoWMeX4k8Sy2AQkwz0GSbQBJPJN5bra5nyTANg8gyTaAJAAEGAPiuQhxhQAQtrmfJO5nG5DEc5LE/WzzrySJB5DEcxFC/Esk8VyEbZ4fSYBt7ieJZzGAEGBsjEEgMIgHEjLmfpJ4IPNMQggw5gEkcT/bgCTAtm3+ZVSQZFtcZhuwDUjiAWxzP9uSeBYDSAJsS+J+kjAIAHOFJMA2L5gkwDaXGQvxXMyzSOI5SQKMJfEAQpYBIcRzMIhnMlcYA0LcTxIgiedkGwAkAZJsAwgA8UwG8VwkAbYBSYBtwDYgCZDEc5LEZZK4zDbPSRL3s839JAG2AQSAeDbzbObZJEAYZFvcz+YK21wmAZIA24AxIARgAMuAJCEus839JHE/24AkQBJXCNv8a0gCbHM/SYBtrhBXGAMIAIN4JgFgAEmAMSAJsM1lxkKAbUASz2IAxGUGSQJsA5L4FxnANiAESAKMuZ8kXjDb3M8295ME2MYgnsU2IAlACBkDmGczz2QDAkviMgmbZ7EFlgSWAAFgG7ANSAIEgCUewCAbwAaQsJEESAKbZxIPJBtkDEgAkgBjAAMAkmzznGwDQpYlYQAElmUhAAnABtuAhCAhrt02g7xJNISEwDIABrABGWMMxkaAMUjGIGOMJAwCZCMByLYBCQwGYSNhgwBZYMDYkkAA2IAxIECSQQAGQMIgzGUCWxZgYcQVArBBABhkIQkjMIABBEZghIVtg41BjdMbIKUdgASWsQCMMZJsAxgEBgEIIWwDCAwSgA3YBgyAwDwHSVxhEGAhwDb3k8QDGAshjAHEMxlJXCbJNiAEGANCgCSeizHmCvEstrmfJMA2MgjbksAAFgIwAmwAgWQDwjZIAkCAMWDM/SSBbUAIMAACMIgrhIwBEAAGMAYEYAwCIzAIzLNYBmwL2eZ+kowBSVwmhHgOBrAMyAKMeQBJPIt4DgYQAhAABoMQ9xMABsAAGMAYAGGQENhIBgEIAWCeixCXCQG2AYRtrjDGCMA2QgiwDUgCBCBj8XxI4n4CQBJgG8DmfgZAEs+PJO4nAIQAY+4niftZxkji+ZEE2OZfzzYgieckCbDNCyaJ52IeSIgHkMRzkgQYcz9JAAZAPBdJgG0E5vkwkhC2AWNAEoABMIAkAAHYRgCAJAwCwAAIjCTANv8SSYBtnk0SVQKQeC6SAEm2AduSuEwS97PNCyEwCCHAMgDY5n62eU7GQrYBIQAjZMwLIAmwDQBCPD+2eQDbACCJK8QVxgghQBZgzPNjm+dhm8sk2eZ+trlMiOdHEs9JEv8S24AknpNtnodthBDPywCWMc9LiGcTIDDPyUbiMoPANveTxP2MAVkI29xPyJjnYoSMeQDbvGgk2ZbE/STZ5jLbgCTuZxuQhLjCGHOFEAJh2zYgCXGFJNuSeH4k2TYWso2QBSCDJNnmMtvcTwhAYGxL4gEsCwHGACCJ+0myjQBsIzDPl7GQbUDIMg8gBBgLcZkQYAwIcT+DwIAkMGBzP4FtAMC2hM1l5vkwAALAAMgWmGeTjQQYsLmfAGMBEgYh2QYQIAADSAIQzyLJNs/DGPNAEiDbgBAYwAASAlvADcfAhCQhIXOZAGPAgAGBkQFkjBBgLhNCYBBXCLAkAMT9LHOZDRgLgc0zCQADGMBYCNvCBswzCduAAQGyQRIGIbCNBMgAYEBgDAIkAAHIWJYkkMDcz2CEuX4bAYBABhBCCMCYZxEAwjaXCSFsCwnZ5jLb4pnMc5OEDRgADCCeybYkIdsAYFsSYIxBSOIKA2CeRYj7SeJ+tnkuQsgYAwgZ25YEAIhnsUFIkgEESMYYBAgQGIwlASBsgyQMBgEIAYAkACQB2DYA2AgAg7hCyCBxmbhMyNg2AOYKASCusI0BJAFCXGab52GMQSBkAQhACEAAQrZ5TpJsA4Ak2wBCljGAeRZZPJMRzyaEjAEh2wBgm/sJkGQAY64wiAcSAjCI5yYwV0jifpJsc5lBgMRlkmwbAIFtHkASDyQJAIPANlfYAICNhDBgA9hIEra5zFiI+9kGhBC2eR5CxhjAtiReBJJsA5K4TJJtAJAEAJIA27a5n21J3M82IAmwDAgBto0xDyRkGfNMBvF8CADzfEni+bEtyTb3kwTY5lkEYAzIQiAwAGAbwABCXCH+zSQuowISGCTANiAJkMQD2JYESOJ+tnlBxHMQgBBgm+dink0YywIQz2YAxHORBNjmWQTGsiwukwTY5grzwhjEczMAApDEc7INSOJ5SOIy2/y72ZYESAJs85wk2ZYE2AZsA0KAMSDEswgA82zmWSRxhbnMBpAAMADiOdlIAGDABkkAkgDbAOaZDALAAAghy0JcYQBjXjBJvGgkcZkk2zxf4oURgG2eiwEQEiDANmAMCAG2ucxYCIMADMIgSbYB24AQgAAwgBAGgblCCDAGbAOSAElcIWQBxhhjQBIgBNhGAMZCAELIMiALMAaEuJ9tQBIGAWAAwCAJMAC2AUmAbcA2V9iSAANgwOYy24AkAAkQD2DzLBJgAGwDEhgknpMNgAwS4jJjIQADIADbXCbJNg8kjDFCPBeDQGAwEhJOA4+4ViGKAUmSbTBgYxljAGzEM9lIWAgwCAxIAEjY2EgySJJt2QhjLBvJlgQYC8BYRmAAbAMIISwAG7CRhGQbGQCBESBkQIBBAmMZBAaBAYQBW5LAAAKEjcxlxmAbQzrEY65FQtxP2EhcIck2IAkhBBhzmTEggbHMZbYRlwkjwAYkAZa4n2wQAsQVRoAxRgDGgG0hY0DItiSexTybAGQZCwHGgG3uJwmQBMiyLMRlkrhMEphnEYBtIa4wAOIKSQC2EM8iAbaFkLlCABhjcYW4n20AA0jCCIEN4pkk8SxGkm2eiwAwkmxzP0mAbUm2AUnczzYghEEAmGeRBNiWZBuQBEgCEJgrJAEYBAYwBiTxHAQGEADGWBJgWxLm2QSABCAADIABMAgAEAIwgBBgzAOJKyRxP9uSbAOSDJJ4AIFt80ySAEk8iwRgA4DAIIkHsrnCgAFsQIABAGOekxBXmAeSxLMYwDYvmG1AEiAJkATYBiQBkmzzAtjm+RECMIAQ4nlJAowBIcuYZzIvEiHEA4lnM1fY5jJJvBAGQGAkIWwDtgEhAPFcJAG2eb4M4pkERhJgI1ElgxDPRRJgm8skcT/bgCTuZ1uSbUASz2IQto0x/wLxTEYIARjzLOJ5CQG2eQDbgBBCiCvMC2eMuUIIsM2zCMyzmQeSxAtmm+dlnpdt7ieJ52Rbkm3uJ8k2D2AbsM39JHE/Ie5nG5DEC2ab5yQLAHM/20g8kA2I+4nnZSyJBxKAMSBkmwcQAhDPxbYknodtSYBtLpNk2zYvgG0AkIRBYJ4v21xhEBgAgcEYwIAk25IAbCQAkMT9bCNkAQhAkm1JAAYBGHOFeCYhxHMSAoyFANtcITAIQIj7GXOFEUI8kBD3k2SMQdgGJHGFMBbiMkk8J0kANhL3k8QD2VwmicsM4n42gAQgMJIMBgFgnkkIsC2wjSQE2ALzTAKMASEhY8wVQoAknpMk7mdbiMsEBkmADQgsBMYIC4d4hVvKrGIjCSHJ5gqDDMYYwBgASQDCIAkbgQEBsgEQVxgEIAHYxhIgAQaMQRYgGUDGkngAYYMBMAgENhbCCEAYI8SzGDBggzAgwJJAGCRhCxDmMoG4whakpra1qVe4OQAJhCQADOIy25IAAGPM8yEEBgFIAjDC5tnMZTYSgM2zyFgAAgSAwBhJCAAQwlxhmyuMJC4zlgUYCxlzmW1JXGaby2wDgBDPwzYgnkVcZszzELLNZbYlcYWNJIEBCQAMAsAAiGexLQQgnkmyzTMZBNgWl0lcJonLbAOIB5LE/WxzP0kYQJJtjBDigSQBGADzLJK4TBIGEELYts0DCUDINs9mAwgEyDyTeA7igSTZ5oEMQsjYthBgzANIwtiWxGXGgJBtIQBxhSTbAMg2l0niMkk8J9uAJIMAMJhnsy0JMM9kEM/N3M9I4jJJXGYMCCEwL4Qk27wAkmxzmW2ek20uk2TbNgBI4n5CiGcTzyQAzAthWxLGmMuEMIjnYpvnJISwbQwgAMzzksQDCNnmASTZ5gpxhW3uJ4krjG0E5vmyzQsmhABsAzbVlmSMJUAIQAC2uZ8kwDYvgG1JPJBBPJsBEM8iBBgDiGcRAoQAY+4nCTAGZBkLAbb5FxlAyBghBBjzQOZfIJ7JPJsAMC8iSQAGwAAIIV4Ekngekmzz/EgCjIVsA5IA2zwXAWAQQoBtXghzmQEjDBgQAALAXCYBSAIwiMskAQhACLDN/WwDtgFJAOL5ksTzIwmwzf1sA7a5nyRAEmCbBxKYZxOAEGAbwABCGASAAWwDiCskYQMGbCRAEmAbAGMhg8AgAxI2IAkw5n6SAGNAFmCb5yQE2OaBBAaQBNgGMIAQYBlACAGAMSAJwAgZYxDPzSCeTcIGxLMZsA2AJEASYBswAJK4nwAQz0sI24AAMAJjnklgDJJ4NvN8CQDzQkgyFgJsAwJACBshMAIDYPEsBkKEeOQ1sZjnmkAAGBkbQAaDDVgWEhhhLMBCNgAGDMJGAhAgDLJBwgaQsAGEDGAMYBDYSLYlsBCyQYABgbmfDQgBCIwBEAYZQADYgC0wIAkkQNgI20gYsISNsAEwGACv2/GT5ZbjAQaEkDGSbEuyzfMjCbDNA4krhAAwCAxIYGwDSLYFSBgAhI0MyAJbCGwhwAACwCCEAGMA80BCxoCQMZfZ5gEk2eZ+kowlAUKAbQADIMCSANs8P0IABrAMso0kGxBgEICNwIAR9zOIKyRhACEwEmCuMICNhG2QhC2ezSAJwCAABEYSYBuwDUgChBDGGCHLXCGePwMgAMQVxkJcYa6wDUgCJAG2JXGFAGGDQQAYBGAsBAgMAAIDkrifbUAIEAIASbYBSYBtQMg2IIn7Cdk2FjKWhJEE2JYEgLmfbQFgACQBtnkA8Rxs8/yY52ZxmQFZgBCAeDbxLJIA2zwnSYBtSVxhEFdIAmxL4gFsA5IA24Ak27wgApCEMZbFFeI5GAQgCbDNZba5wvyLbAOSAMRzMFfYBiQBkgDb3E8SgHkWSTyLeDYDIABJgG2EbYwk7mcbkMRzkgRgYyGexTbPRAXbAsAYA4D5F9nmfpJ4UYgHMua5CAwCMAYQmCtsA5IAY8A2AsAgAATmCts8kEEAgG0uk4Qx5jnZ5jLbkngWg3ggWTyL+NcRAGAsxPNjm/tJ4n62JdnmBbMNAMY8gCTbXGabBzKSAEm2eX7MZQIEiCvEs9hIAvNMAtsAmOdgEA9gW5Ik25K4n21Akm2ukLC5wgAIQJJtXjBJPCfbPC+BMRbCAMbcz1jIMs9LXGEbEACSzAPYAgMSYIOMAUtggQCMZa4wiCuEAARGyDKXCRnzPGwDkrjCCBkbS+IyIS6zDQBCAMI2l0ky5jLb3E8SIIkrDAgMmGeSZBAABoFtnkUSz8lGMgACAzbPyVhIYDAWErINSOIy2zwnIWPbkngA25K4zBgjiSuMMc8iYQAE2AgMgIXAXCEESUzpa47VG66dnnEWLALbGIGNeSYLwIBBtgEAYy4zFtiWxLMZgSQAJNtgASBjc4UlCYExtsBIAkDCgAVGgASAuUwAAsQVBmEElgEQIHE/c4WFMAiwJJCxBAgsgWlGkJOvPe7jvcAhSchCtpFkWxKXSbKNQQC2eQEk2cYgBEIANhI29zOXCQwYwFxmAGMswEJCYABjjGUhwLYkHshI4gpzhSQMIMk2IIkrDIAAjIV4FnGFkbifQUiyjUFIwmAAYyEEyDYgMJfZEkKAMJJtDALAPJsQMgawBYBtSQIDNhJXSLaxkSRh8yzGWAjxLLaFuJ+xEGAMCAGIF8QyRgjxQMaAEPeTZJsrDOJZJHGZJMA2V9gIQBYghMBcJoRt7ieJy4QABAaQZIwBhIx5LgIDCBkDgDEgxAtmEAiQeC4SNmCeTVwm8QIJDGAASQBCyBjAPIsQYMwDSLLNCyEA24Aknh9Jtm1LksRlkmxzP9vcz1jItiTANleY52aukAQAtiVxhXgm84JI4gphm8tsA5K4TBLmgSQBtgHbXGEQgG3EswnbAGAsxGW2uUwSz0kSz49tSQYw5oGMZSHC5pkMYNu2bdtcJkkSDyBJEg8gSRJXGNsA4jkIIQTigSRJAgAhSTyAkCReAGPbGEBISAghSRKX2bZt25grzLMZAIN5INu2bfO8zDMJxAMZG3OZbdsAIIkHMEYg/j0k8fxIAiRJ4jLbtnlOkniRSQIkSTKAkUASEiAQEhIAIAHm2WxzP0mSABDPQxKXSZIkiQewzf0EkgAhHshI4nnYti0JkCRJkiTb3E+SJACDQUhCXGHbtm3bgDEPYNs24tlsbC6zhIQkCRsAxDMZ2+YKC8BgjAEMRpIQ9zPGAAghhCSEJF44A9jGSAIQCATCNoDBXGEMYACEJC6zbZvnZYMBkAHAxgbE/Wzb3M+2eAAbG8DmMgOAwVxhbCwEGANCgDEgieckSRIgZBsjieckifsJcT/bgG3bto15AAMYY1sAFoABASitMVVLvOQtjTENGIHAxmBjnNgYhEC2jW1zmW0MEgCSQEJgrhCABNhcJpCFDQZbArAAIQAJAIEwBgSALcCSARswgAyABJIQEoAsWZLEZQIhWSTYgMHYgLExAkAIAIztBul8iZtcA4OEwDJIEiCJyyQBQoCQEC+AJK6QAfMAtiRJ2Ng8i2wDBgMGAxiMAQOYZzJXGAOSeCADCAkBiCuEEEKYBxJCABiwAAyAeBZZMgAGIQCMEAKwDSAAIe4nCTBgYwM2CGQkAEDYto3BCAkJARgM2BhbABgEkrhCAgAkwLYkCRAIWwaMzf0k8UDGNgYDGCOeP4EAJAGYB5IkxGWSJAGSMBgAIwnxgtg25gGMbfMs5oEkSQKMAYwkSYAQ9xPiMkmSEICQECBkbMwLIEkS9zMgcT9JAJK4n43NZQKBQDyTbds8m3kekhBX2LbNFQZzhW3bgG0AsG3btm0ukySJF0qSJECSJECSJEmAJEk8L2MbsI15IWzbBmxzP9tcJkkSgHgmgQAQCAQCIUmIy2xzmW0uE5LEC2DbNlcYDICRJEmSEJcZcz/b3E+SJECSJJ6TJEnczzbPYjAY2wACqJLA3E8Sz8k2IAmQBAC2eR6SuEzINlcIIS4zxjxfkni+zHOxzf0kcT9jrjDG3E8SLwoBIIRsS7INSOKBBGAMYBDPZBBCgG1AEmCb+0niMiHbPCfbgCReMNs8J0m2eQDbgG3uJ8m2bUm2uZ8k2zyAbUnGmCskAbYB2zwvIwyAACRsHsBYiOdkGwDbgHleBkAACIxtSQCAQWAjJNnGIDDPZB5Ikm1JvAhs8yxGEg8gieclMJJ4LhL3k81l5pkE5pkkAbYlAcYAQsiY50eWMYBBYIyFAATGtiQhY+5nmwewLck2IIlnEYBtBAYwFrINCBlzmW1JtnkuNuIKg8A2EpcJANvcz7YkSbaRAIHBtiQAMJYkZIwR4oEEIGTM82WEAEnGXGab+9mWxP0kAba5TBLPYgCMxWVCCAGAAQwgCUACiTd7sfi5P0yLAHOZwCBjEEiAeSYD2OYyy0JCCINAYDAIAWADCBtkDAhxmWxLYBtAkkGAkAEJ2wAgAGzAkrjCgAEkQABYYAAMQjybAYOMADBGEgCWMAYEIqVsSena6z1mBmBCSDwvSbYBQAhAYJ6XJNs8k7jMIDAgYQuQuELCBknYXGaukAAEyJgrzPMnMBhJPA9JGCFjLrMtCTAWAhDGgBAgAcIGMAACJAAZGwNCPJCwEQgMAJLAPJttSTyAJC4TAhC2AcRlAhDPJGEDAiSePwmDEJcJ8RwE5pmEkG3uZ5sXRAjxLAYwBoQQV9jmWQTGGMBIMrbN85BkmwcQQtjmBZPE/WzzPIyFuJ8QzyIAIS6ThLnCtiQewAAWsi3JNpdJsm3uJ2FjAwZxmYTN/STxQEYSAEiyzf0k2eYK8UBCPIAkHkCSbe4niReBJNs8gCSeRWAASbxwAsBI4oGMEOKZDMKY+wkBCAADGAPG3E8Sz8kYIwnAPBdJXCEwz2Kb5yKEeMFsc5kk7meby2wjhADbkhBXCBljEMFzkiRJkiReANvcT5IkXgiDQBhzP0mSeOEM5pkEQpIkHkCSJB7IPIskSQDi+RCSAAABIK6QBEiSBEiSxGWSJPEs5pnEfxJJkngASZIASYAkXgBJkgBJgG3btrmfJEmSAEASgHm+bNvmMgkJzPMhLhMGg7ENAJIk2eb5kSSJZzKYK8wVtjEYgQyAsQ0Y28bYNrbNZZIk2eZ+knh+JEmyDdi2zfOQBEiSxHMRkiTxAJIkcYWNbRuby8xzE2BsYxBXCPG8DIDBGNvGYJ7JAEIYQEiSJNuAbdvGxoBtHkCSJAAwto2xDdgGAMtcIQAMYJsHMLYNGIOMDMZgbJ6DAElcJgkkyVwh24BtSYABEAJA3E9ICCGJB5AkCfNsQhIPJAAhnpNt7idJElfIgAUGBCBJEgAGg4QAkJCQ/NqPKPPFmIBAWLYwABbPJAFGBiFAgMFCCCSQEMY8iwGMDRjAtgFbiCuEbWNAAoGQxGXiMgFgYYwBgcHGtjEgDIABiWcyxgDmCvFMxtzPBizAyAC2capkTnntdXrFmyMTQwjxfNgGMBhjACNJEg8giWcyD2TbRlxhEAiQBJIkAZJ4XhLiCtvGXCYkJIGEeCZxhTHPIowRiCtsA7ZtA8aI52ReEIF4FmMEAoEAJLBtCwQCQCCezTbPJhAgABDPRZIkEIDE8yUhASAuMxhAADL3kyQJQACAECAkxGXGxrZt81wMAvH8medP2LYN2AYA27a5TJIkQBJXCATiWWzb5jJJkngBbNvmMmOeL4F4IEk8ixHiOQkwtgHb3M82DyCQxP3MZTYviAGEhCTxPCRxhUBcIQRgMAAgSQiBkMS/niTuZ9s2YFuSJMSzSJLEAwgJcYXAXCFJElcYQJIQz2L+BQZzhSRJACBJEleY508gJEniedi2zQMI8ZwkScL8i2wjsAy2uZ8kSYAQAFQJA+aBbAOAbUnczzbPyTbPQxIA2JZkm8tsS+J+kgDb3E+I50eI58c24pkM4rkZIcwziQeyDQBCCADzQMZCtgFJAOaFsA1I4vmxDUjiOUmyzQPY5n6SeAFs85xs8zwk2ZYE2JbEA9jmRSaJBzCX2UjY3E8SBgHI4gFsAxjE8yUJg0FgACFjSTybwIB5JkkARhKAeCBJAGDbNmCb+0niMtsAIAmwLck2z2IQGEAS5tkMYMzzMPeTBAYM4grbkgDAIC4TVxgDkgDAGPMskoyFeMFsIzDPIonnZFsSl9nmfpIA25J4ACFjSdzPthAG8UC2BQgABGAjCQziWcQDSNjmmQzYBmxLAgPGQgLzTLYRmGexLQmwzQOZZ7EtScgYAdjmOdmWBNjmMoMEgLAtCdsgCRub+0mSCAHccLy+5EP9R09qdMWGEIkDEgMIwAZkQACWsQQgQIhnkgFkIQAD5rkJY0nYIAtsxGUCbAMIG0BggQEwCCNhAIRBADZXSAAGCSxkAwawEeIKWVxhwIAsCQGAkJh4lUeU0xuamiMossBgm8tsSwKBwSDAWAjzXGzzTAKEjAEkABuMJDCX2eYBbIF5AIF5JiNkjBDiMhswABhjEAhZGASAQdjmfpJ4IIExFgKMATASgI0kYZsrxLNI4jLbPIskMPezkSRhcz/bPJMBwADGCAG2JSFxmTCAjWQJkI1tAMT9xBUSgA0IGwxIss0DCBlzhcAYA4AkLpNk27Yk7meMQQBCXCGeiyTbxjwPSTyLeS62AUAIsM3zsM39JHE/IWMEIIS5wjYPJABjIYQx5pnEM4kHksQDGcRzkABsJNuAwDyTQTyTwFwmnsU2z8O2JJ6LeC62AYwk21xmLMT9bAOSuJ9tQBLPSRLPSRYvnJHEsxgA80wGQAAIWYAxlxnLQmCMeRYDIB5IEs9FPJOwzf2EAMyzCQADCCGei5AxD2CbF40sBIDE8yUQYSMQIBAPZJt/iW3bGMC2bcA297ONAWzzIjKYBzI25jJJkngWIyQEYK6QJAkD2LbN87DNswgA89yMbZ6HkBAvAkmSeEEEwpgXmSQewLZtLrPN/SRJ4n6SuEwSIEkSz0OSJATieUkCJEniAQy2bdvmWcQDCQnZBjCAkBACCZAEBrDBAOaZDOYKSZIQSObZhIQkCfEC2OYFs83zsI0BjG0DmGcTCAQGsI25QpLEc5AAkBCAMbbN/WwDxojLBGAwVxgDtm0DAEISl0mSBIBlZCEAy8aAbS4TEhISAgBJPF8CkARIkoSQBCAAIS6TBEgS4gGEAGFxPwEgSeKBhMQVtgHbtnlOxsbGQlwmxGXGxlxm27YkwDbPybZt27YlcZkkQBKX2bZt27YkwDZg27YQgAAA21xhA5IEQoBtQYSwgbd+6RJthBQGGxssLEBGNrYMGDAgCQCDAQAhQAaQhMBgSwAGIwHmWSQEIAFgrrBABiSQkEASAALABgECCcAAxgA2SAgQlwnAYIGFucw8k2wMBkIOwJBSqhS99iOqoZk05jJzhW3uJxACgzHGGIyQEJfZts1lQoCQEA8gHsDmWWwAEOJZLC6TJQQIAcYIxDMZDOaZDIDAYADMA0mShAAQlxnAABhsABtAAmzxLEaSJEk8P5KQuMy2AbAtSRLPw7aNsTFgjBECsHkuNg9kY2NjA9g8DxsbwDYPIARgMMbGPA9JACCJ5yKeSSAQzyJJkiQuE+Iy27YBQJIkJCQuExLiMtu2AWOMEC8CISFAiMuEJAkJAYBt2wAGEAIwmGeRJAkQ4gGEhLjCABjMFZLEZRIgCTBgY9tgrhCXSUgIxDMZzAPZ5gWTJElICIMBbHOZMYBAAJhnMhgMRkjItm0AkMQDiX+BQACIK2wb80AGgQAQAAJxhW3uZwwYG9s2RgCSJHGZsTFXCEBICPFCCAnxAJKEEIgrhHhOtgEAI0kSL4AQICSEACEJYWyEJAFCFQxCiOcmiX+JJC6zDUjiASRxP0m2eUEM4pnEsxgDQjwnSbZ5IPFAtrlMEsY2AvNAtiVxhQEwiGcRQjyQMSAESLLNZULGXGaMeV62JdkGJPFA4oWTBNi2zQNIAmxL4gWwzb+GLAQCsM39jIVsA0JgLpNkwJbEMxnEAxjzLAIwBgQAkm0AzDMZwDyLkLFtXgBjHsC2JNuAJF4w2zwnSbYBSVwmC3GFMYB5FiEAAWAQl4kHsC3JmGcxkrjMtiQuMxYSNhgLGXM/SdzPNiDJtm2eRQJjAAxgLIRBAMYYhCTbXGab5yRkzAPIMuYyIWMusy2JyyTZBiQBIBuEJGwMwoDNZUJcZhvM/YQAY0k8kEEgnkXIWAiwLUkSgEFcYVuSJNtCiOcliftJ4gUQwiCwAUkANhISNoDE/UIY0grxNi/WfeGx9f7Q2UqRwsZCxhhkAwgZA8hcIQEyCCxjLAnAGLABG0BgWwA2km0AEGAhjDFIAiMBCGMAbANCGHGZZAMIsAGDMAgjCZCwAYQAJAljA0IIMAIbZLAkwkKaxnjw9fnGjyiSAQlsJEm2bUviMgkMAmQsgzEGhBAYQBIGkIQBjLnMIElgnsm2ABsJQBIYABlzhQ0YhBCADULigYSQMVcI2zwvg5Bkm8uEMAhAYBkDGMQz2ZYEBmxLkmSbB5AE2JYkyTb3k2TuZyOeRZJt25IAEAYBIK4Q2OYKGwmQjWTAlgQYsLnC5jIJsA0ABvEAQsYYwBjAIIQAzBW2JQG2JQG2eU62eQEkcZkkHkASlwkAYwxCEoCRBABClgEhzAtnzHMyFuIBJHGFwFwhZIxBPJBtACEEAAgMgHgggW2ukJCwJXE/AQDCNgDiCvFA4tmMJO5nm+dkGxACELYBIS4TQmCeSQgBxoAQ9xMCbHM/STyLQVxhDAgBkrifMfeThDEGhAAExrKQbUCI+0kCEBjAGCGEeBbbAICQxXMyBjAvhDHPIp5FiPsZc5ltSdzPtiTbgCTANiCJZxHPIgswNs9kwAC2AwQG22CukMT9JEkCAEmSeABJkgBJknhOkiRJkgRI4oUwV0iSxL9EEggJDOYySZJs80ACwBgbc5ltnsUAmOcmAIQkHkggHsgYkCQJ81xs2wZs81wMBmPbNgaQJMQLJUkS97PNZZIkAbZ5HpIk8YLZBjCYZ7FtG2ObZzIgEAACSYAkSSDuZ2xs2zbPhwDbgI1tMPczNkYgjAFjY9u2uUySJGPAtm3ANmCbF0qSJB5AkiTbgCRASAgAJEniMtu2MZjnIEA8P7bBYGNjSdxPEveTwbbBBowxtrlMkiQewDZg2zbPZMDYmMuEACFZtjGIKyTxAJIkISQZA4AQlxlzP2PA2FgSgEDYBiTxLALAAEgANoDBXGGb+wkJcZkkQJIkrhAAAvEskrhMEiAkhBDiMkkARgjxTAIQ4l8iicuEAIGMQAACkACwJIHAyBJCsqBZq9HXHK+v8pBsSzds29gCYzCywWCDzRXiMhmBQAiDJQEgAGxsGxuEJRCAwAaDwRgEBhvAgGQADBgbWzyTQFxmnsk2AgQ2NoBswOaZJEIKSUgCAcZgYYS5zAZkg/JIb/TSuvGYQg5ZgDDYPJAkDBISIGRszLMYBAKEALARiCtsY/MAtrmfQCAJSSAAxAMIwFiABGADYAAEAoQASUI8gJAAAwhhnsnYBjAIBIAw5gEk2TbY5jLbXGbbNmAbkATYBsDcT4CNDcZGICQBgAQACEkSCJCQxGU2tm0DNjaADSDxLJJt27ZtAzaABBiwbZvLhAAMYIx4ICFJGAxgG5DE8xASwmCMjbnMtm3AtiRJPIDE8yEA20KSeABJCADx/Innw2AAYwQC8SyShLhMFkYWL4hBIK6QkMQDiMtsbABbIAlAgECSJAFIvACShLjCAEJCPIAkSVxhMM8iCWObyyQJ8Szm38I8k0AgEBjMCyMQCAABIDC2ucJghABJkgCEMSAESJLEZbZtA5jnZdu2bdtcJkkSVwjEMxmMkBDCMlcIxBW2eR62eQBJkjCYZxKI52Cei22ggkEA2IB5Fkm2bXM/Sfxr2OYKgcBcYZsHMBZCGAOYK4yFuMw2z5dBAmQADOIK25KMhRAABkAAkrhCYIx5ACHuZ2ybyyRhbHM/STyLeb4kAbaFMAjbPCdJgG3MMwkAAyCexbYkwDYvmCTbPD+2uZ8kHkCSba4wzyLEA5grDJJkm+clMJLAGCReAAkbCZBtMEJICLAthACEAMSz2AYk2ZZk27Yknock/g0ERhKAARAYSTwnIZ7JGACJ+0nifuIyg3ggSbYNkgRGAsC2EAZhGxAy5gqBEUJcIcm2JP5FBpBk27YkwDZgLAkB2MY8F0m2JfEAtrnMtiQhY14AYyFjQJJtDMKYK8Sz2OYyWYhnEs8iyTZXCIwQz48sywBGyBjzLJK4zDYASAIk2QYQIDBgAANgkA0YSdzPICQAG4Xe65X7X/wrj5aMwTYg80ySABBGEgiBwSAkQAIAAQIjnskg24AAAUI8mxCybEsA2IAw5jJxhSwbAIFtEAhA2AYAhAAbwEJIPJO4TIAQQjYABsDGIGPJ9uKE3+nlSggghGRxhQFJgCTbAAYJwAgZ80DmMmMQBvFskmwD5pkk2QYEBgAbALABg0CSbR5A3M9GkgBsGwBJ3M+2AGQsJAEY8yxCljGAeRZJtnkASRiQMfezzXMxiPsJkGTbtiRxmcAAxkgABiFhm8skCQADNhIgnpsAMM8miedgLpNkW4jLJNnmMmMA83yIF04SBkAAQrYRgCTbAGCb52QD5gUxgBDCtjFGEg9gDEgCMJjnIISMuZ9thBDCNmAbcYUxgBACEJjnYhsBYAAwYFsSEgaMxGUC2wCAEUbCPF/G3E8IAWAQQoAxYFsSD2BbCPFAkmzzAEKAMYABJAGYZxLPYlsSYJsHMlcIAcYA5rnYlmQbkAQYY66QxP2MeX4kAYAkY8wDGQsZYyRxP0mAbZ6TbZ6LeCAh2zyQEUIACMwVkngexoAk7mcMAEJcYRBXSAKC52TbNpfZBmzb5gEkIRDPZCRJ4nnYtg1ghCQJCWEwxsa2MYhnsW3bNuYK2zwn27Z5AGNjAPMstgFjnockSZKEjAFjY64wmGcyz2YADOZfJoQkcZkQV5gXztiYZxEPJAmwDdi2zYtAkiQAkAQAkngRCAFCQkJCPJMAQAJAgLmfEBIAkiSegyRJ3E8SDyDEAxhzmSRJkiTxnCQBkiQBkiQBkrjMtm3+DcRzE88kJAFggwHM/cyzCIF4FiEAAwYkSbINSAKQJAGAEIB4JgMIISRhAAQISQJAIEk8B4EAEA9kG5AE2OY52eZ+kiQBkgDEs0iyDdi2LYQBhEBCXCGQeCYZc4URkiTEFQKQJMk2gMEgnosxYJsrxLOJ52WMwWAwgLFtHsA2z8k2DyQZANu2bWyDAWEA8yw2ggiMX+uRs+uvyzY403IKCwBbICFAsiQBAgwICUlIQkJICMwzGYxsc4UACQQSgEASGAQyYGMDNjZXCLC4n82zGAAJBGAw2BhjwABCApARgJAskBCX2djYdqZdYPCrPCZf/sYwACEkANu2uUwSVxgAW0gSIMTzsG3Ms1mSJECSbdvcTxJgnsk8m3km20ICDAYADOYym+dkm/tJGIwBYwTigYQQGIxt29xP4gpJCCFJgJBtAEA8kCyeRQJJXCEJMCCBeBZbgCTAPIttnkXiMkmSkJB4ASQBkiTxnCRxmRDmCmOei8EAgCTEFZIk8QCSAARCkiRAEveTZNs2D2Cb52TbNpcJCWEwAOZZbCMQxpaFhHhe4grLkiQBGADz3MwVxsaAMeJZhIR4FnOFbRvbXGEjkJCQBAA2NjY2gM0DCUk8X0YIIQlhDNjmeUhCPIuQECCJZzEIxPMhEIgHksQLYjAPZNs2z8k2L4AkSVxmbMwLIAnAALZtc4WxjXkWSZJ4oWzb5jJJkngetm1jAElCkoS4TBIgSRIG8y8y5goBSJIESKog29xPEpdJss1lkgDANveThDAGhHh+JPEsBmHM/WQhEM9FEvezLYnnIYnnJAQYcz9Jtm1LAgBJgG1JtiUBtrlMCMAAlgEhnpMxgMAYCwGYZxIYIa4wiOcghGzzvIwxAAgZ2xZCvBCS+DeRxAPYBiTxnISMEYBtnpOxkG2EJIwxmAeQhM0D2JbEZTZgACzJtiQukwTY5vmxzQPYBiTZ5jLbgCTbXCYJsA1I4l9iWxKXWcYIAUKYZ7HNZQLAXGYjCQCJy4R5JgEIGWMhbPOcDNgAYCyEAYwlAcYYYyEewAYMCAOSbNuWZBuQhLnCWIgHkGTbtiTbPItBXCHJNpdJ4jLbXCaEuMI2AjBgEBgwCCwB4jJjnpNtSbZ5IGEMYJ5FCJDEFeaZBCDJtm1JgDGAuMI2BpDE87AtCbDNZcZCCNvcT4jLbEtcITDPJJAokt025rzna+Tn/AD0lNYySlKNwEKIywRGAAZJXGGQhQy2QRjzLEYYC4HABkBIArANgCUZDIBskLhCYIFBGMRlMgiBBQgwBjAAFuJZDDIIAAEIAMQDJcJSupvnh71mLDrGRBIyYCOJ+9mWBBgL8SziCiEAgbEticskASAeQBKXSbINIAHYBsAgCUkA5jJjDEJcJsnGtgRgIwEYhJBtnkkSz2JbEmBbkiTbGAQgZJv72UgAGCGuEICQbSEhwBgQQsgCjAUIEM/JNlfYSJKwxWUStrEQYJsrDEKSbe5nwEaShG1bkiRAkm0usy1Jkm0AgTFGYABJPA8hYwAjCfG8JGEAYy6TxAtgG5AESOIy25IASbZ5AMuAEALzLLYRkgAAg3guQggAsM0V4grbPICQMSCJ+9nmfkJcZlsS9xMylsT9bCMJAAM2gARg8wBCCNvGACCJ+xkDGEm2uZ8kzAtiDAghMAAGgXkhbPMAknh+JNkGEM9LEg8gyTYvCiHEA0jiCoN5Fkm2JfEvkcT9bAOAbUnczzZCEs9JyBhxhTEG8SySuEI8iyTANs8iMC+E7RDPQZIkSdxPEiBJEi+UJEk8gCRJPIt5IElCCMQDSZLE/WxzmSRJvCAC8VwkAbZ5TrYB27YBDEZIiAcSCEmSeC5CCMA8B2FszPMSgDHimQQgSZIxDyAkxHOSJIkHkCSJ+0nieUiSxItMkiRJkgBJXGZszLMYjG0AgwEwGNu2eRYJgcRlkng28wCSuEwSYJvnxzYvgCQewDb/VpJ4IAEgMM9im2cRiGcS9zMIwDYGAAQCEAIwV0iSkJCEDdi2DTIYG0sCjAEM5pkEwjaAjc1lNlfY5grzbALxTEKSbS6zzWVCQgghADDmOdnmCiNJiMuMbQMYY9tcJiEJJITB2LbNc7JtbAxgJAlxmW3bAOYKY2PMc7ENSAKMeU6WjSUBkiTxAJK4n23bkgBjwLZtSQAIQOJ+xjyLCFFkyUl775fv5jujp6kwBs0ARiBzhQwIg3kmAdgYY4wBG2M7jTGXSUKADcaAeSCbZzIAliQknk1IIJ7JIMSzGQvA2CAQCMmyAQMGEAAYARISAgEgEHIetFd9sXyjR1dkg8EW9xPPZgwgnkkgnsUYcYUkAJDEM5krJBD3sy1JEgCY588GbNsYMCBxhYSNDWALIckCMNhcJkkSAAZsAEmAbQDxLJJsg23zHAwAkiQBkrifEGAMIIwBMBgAS5LEZbZtYwMCbCQEEhgQsm2by2QJCTDPZGNjc5ltQBJgmwewDQC2JUkCEABGSIgrBOIKIR7ANs9LPJvBALYlSeIy27YBxANJkgRI4n6SuEIgnkkAQkIYDIB5JgNgMA9kbMwLYNs2l0lCPC/btnkgI8RlQkKAEM/F5lkkJEAgCWPzTOKFMRjANg8gJIkHkCSJBxLPwQDGXCbE82PbNmBbkiQuEwIkAZIABIBAXCEJkCRJkiRAEs+PEA8gBEiSxAPYNsZghIQASVwmSRLPIl4Q27Zt87zMFcaAkBAgxGXGXGEkCQnxohGSxANIEuLZqOa52eZ52JbE8xBCGGMk8SwGYZsXRFwhBCCem8BI4jlJ4jkZA0Lcz7YkLpPEZZIA25IADAIwBoQs8ywGYZvnS2CuMMYACAxCEsYYwACSMM8kMM8mANs8gCTbXGab58e2JACQBNi2zQNIsm2bf4kkwDbPl8A8k0EACIwQBgHmCiHEcxPPyRgD2AYk2QYkYWxzP0n8S2xLss39bEviAWwDkrjMNg9gWxIASLLNAwgBljFXCHE/25IwDyCeSTyTBMYA5lkkGdtIADaXWcJGEs8mAIO4wlgSz0vifgKDEOIKyxgMQgiQBAC2uUwSYFsSYIyxjHkW25Js8ywGMOZ+QoBtSUI8JwnbAEIIsC1Jkm0hAPNM4gohY0mAbSHbCCEAYRuDwLwQkmwLIV4Q25JsA4AknodtSQKDeF4C24ANJtw4sxnv9Rr6lp9u07HiFBiQjGWeSQIkQAhJAFgGLLAQwoABCyGeTZINAmQjgQFbCGNAXGYbCUsAAjCIZzKSjQW2MZcZhJABgQFbgIxkEAYhhBACEBgJkLLIFtb6A15tPi+kXSKEJUASgAGwLUnIWIjLbHOZsRBgGwBsS5Jkm2ezeDZJXGaby2yLZzLPZgO2kcT9bAMCAMm2uMIyBgwCBAiwkQAQAOZ+QsY8D5vLBEjYxiADmCtsC/GcjGVJQtgGwCCJK2wjhABsc5kNgLnMtiTuZxkDSGAAJF4w29xPkm0AxHMSMsYgJNnmMiFj/kUG8UzCthBgjAEwQlxhEFdIMsYAxkJCxjyLeSZhDAhxhbjCNgAgMM9BCGEQV9iWxP0k2eYy25J4HpIAAIEBEJjnIK6QZJv72eYBJGHACIExgHkutgEhAIF5bgIDCPEvEQIQVwjZ5n6SAMwzGYQQl9kGJAG2AdvcTxbPQxKX2QYA25J4HsZCPD+2uZ8QBvFMAvNcJAG2MS+IJACwzQMZhG1AiGcRzyQwAAZhGwAwL5xtSbYlSbLNswjbPBMBSEhIkmQbsG2by2zbBmxLkgRI4lkM5lmEhACMsW2uEIhnEgAC8RwM5oWwzQMYG4vnwzaXSZIkcYUkISEAYxsDGHOZkBCAsW2byyRJAgAhhJAQBjC2DWAAxHMTxsYAAgFgANvcT5IkLpMkicts2+YBJPH82LYNALYB27Z5kdk2tm0bwGCeTTyLECAkC4NBAEhIAAIMxuZ+kiRhANtcZpsrDIDBvHCSJHE/2zwn27wAtnlOkngggUA8kwEwzyYQVwhhnkkg7mcwGIxAXGHbNpcZA5IB2zybJIFACIRACMDYti0JQCAAMPeTBAJhMAhAkiQMgHguxjyLACQBxoCxbQDA2AZsGxsDmCuMjXkASYAkSTyAbQDxLJIAjBAPJB5IiPsZI57FNmBs27ZtLpMkifsJAZL4l9gGbEsCJEnCAAhACECWACEAjEAgAPFMxoIi61Nfb7Gz3aZlUYayyRM2GAy2hZEABICMLAPGNkgAGAPimSQJEABISGAJsABJwmDzTLIA8yxC3E8IwGBsA8YGEJdJwsbYGEBGWICwDRiBbBmMDBY4Vdq0N77Mi/N6j6pjw1YRJYSQJInLbHOZsRBGSIjLbAPG3M82lxlzmW3bYAAbG7DNA9jmAQS2DeaFkpAASTyLAIO5TNzPliSJBxAChIS4zLZtns2ALQBhm+dkzP2MjTHGAOYBzP0kCXGFZBsMgMGAbe4nSRKAAGxLAvE8JEniMtu2ARAgCQBzhUAIAZgrbHOFsY3BAIAkSTw/thEIQBJXGADzXISEJAEYwDYGY1tICIF4NiMkxBUCkCSJZzEAYNs2gAEQzyKJyyRJAiTZtg3Y5gEkSeKBBAJAPJNAPJMwliSJy2zb5jJJAAJAQuIBJEnigQQCQDyTQCCEuMzYmBfM2LIxgEAgXiADCPGC2baNwbwobPNvZjCYZxOAJB7IvHCSJEmSBEgCACEhAIPBAIBlxDMJQEiIy4xtYwDbtnnBbAO2AUmAJJ4bVWDAgHlOtnlOtgHANg8giWcRGAQghAAQAEaI+xmDxGW2AQnABoQAxANJss39hABAgHgWSdzPNs9k7ickyViIBxIABgEI8ZwkAbYBYwABCHE/2zwn24AkwDYPZADbkrjMNs9DEgaDeFHYlsRlknhOtiVxmW1JtrmfJAyAeCBJ3E+SbcQDCCweQMKYy2RAEleYKyRxP9uSjAHECyGJ5yGJB5DE/STZ5jLb3M+2JB7ANveTBNhGCGGeySAwgJAx4lmEAARgGxCXiediI4HA2EhcYVuSbUASBsvYAJZkLARgIwG2uUwSl9nmWYSQsW1AyJjLbPMs4tnM8xLCIBBCPBchZIwBjIWEjG1Lsg1IAmxL4jLbkoSMeQBJPCfLGAxCkm0hxBW2eQBJXGZbkm1AEgYwxgCSbHM/2zyAJMA2YFsSD2Qk8UwCJEAGQAJAABI2WMIhMKc3+ZJ3nX3o18kn3bU2FaUDCUkgg2SQEFcIELItsI2weS62kTAGyUZCYK4QNghbMgCyEMJGICGEwDyTAARGGDAAAhCAkWQQIBAAFgACkAAQGARAOlPDEIiPeP3ZZkdiCTAgZJv7SbINYIyFAAQGkMRzkoQBZBkDkgDANvcT2AYAbElcYSMBAmwkJJ4fSba5zLYkSdgAEpjLDNhIALYk7ifJNgYhBNjmMkkAxhgAAxgh21wmSRL3sy0EIABjIcC2JEm2AQCDkGQbkGRbAgTYlsT9bAsBxkKAbUkgnpNt7ieJywQGYyHAtiQhwBgDGAvxLALAGAshrrANAJIA2wgh2zyAkLFtSULGtiUJAcaYZzJC3M9YkhD3E0JcYQwIcYV5Fkm2AUm2eZFJ4gWTxP1sI4R4TkIABkA8kxFCAJJscz/xghkEgHkmgwAwVxgLAUII2zxfRghA2MYAQrwg4gUyz0E8F0mAbdvczzYgiRfANpcZC/FcBGCMeSbzLJIAY4Qs/kXm+RPPZIwBIUASz0UAQgjANi+UJO5nm8ts89wIAPMvsm2bB7BtmwcyGMxzkSRk2xgAEIgHMM9JPCcbm3+ZQSAJSVxm2zYAGBtjbANCCMQziWcSQkK8CCRJQiCEhDCYF51t7mebBzKSEAACASAQ/yLbXCZJkiRJACCJB7Bt2zaXCUlCPIuQEAIBSAIQl4lnk8FcYQwYzHMxzyJJEvezzWWSJHGZbdu8UJIASZIkSeI5SeIy27a5n20ewLZtHkCSEABgMAghAPNMAnE/cz8JSbwAEgDmCttgMGCbK2zANuaZhCQAQBLY5jnZBmzbRgDGAAYDCHGZbdtcJiSJy2zb5pkECAGShBCIB5IkyZj7CQHGXGabB5B4FiEMIMQDCcSzCQyAADBCkoS4zLZt27Yl8QC2eQBjzAsnSRIPIInnR5IkzP0MBoN4JtuAZASBQ5b9bq+weMyjRu27kIUEDAgLQgiQEEYGWyAbsMFk2hjbtgGMAbB5NgMSCJn7SchgASAAYbAwz2QJBEhISCAAiWczgDEACGQAZAkkEAgJCQmJwJLdxXRQX/nVuzd6VKQtnsnG5rlIsm2MMQYwiOcmEAACgxEAkiQAJACQzbPYgEA8B4EkABAIsLG5TBL3sw0CbCMhCYSwAYORbRvAtiRAElcIjDEgxHMSMjbmfkI8gCRJgCQeyNjGCAE2z2QAIYwkSYAk7ieJBzK2MbJs2wZsc4XN8yNJkhCAkWXbNmCbZxHG3E+SJC4z5grzXGwDkjC2bdvmMiEAIwQYA5IAY2PAtjGXCQlxP9tcIQDEswnEMxkAAQgBkiQBkngekrhMEg8gSRIPIEkSVxjMFUKyEICxMQ9gbACDAQQCkMSLTjwH8/wJBOJFYp7J2BYSQiAwthGIBxISAoQwAAbzHATiedm2bRuQBEiSxANIkgQAtjHPZhCAJEkAAoPBYP4FQpIkxAshxGWSJAGI52AwzySeSUiSBEjiASRJ4gEkSeIFkCQJQCjTYP4ltiXxIpME2OZ+QoAx9xMPIAHGgMxlMiAEYIMswJh/Nds8kBACEEIAmCuMhYy5nySek22eRWCeRcg2gACEjPkXGcSz2JaEwAAIIcwziWexzb9EEvezzf0k2eZ5SLLNZZIwxtxPkm0AEAIsY64QAEZgLhMCkEG2uZ8QzyJs8wBCAMI2DyAJsA0IIWxzP0k8gG0AkAQAtnkBJNnmASRxP9uALAAw5lmEJMAYEOJ+tgGJywTYBmxL4nnYBiRxPwEIbJ5JEgDGAOY5CABL2DyQwDyTQQgZAwAGIWTMAxgLSbLNZbIsc5kk2zwP24AkQMiYy2xL4jJJgAEbgxACEBhzhQEhAHGFbR7IICTZ5oWyLYkHMohnMogrbEuSxGW2eQBJXGabyyQBtgEEIAABtnkAG9s2adJOx98+Y3ztzxnGjRrKJFBBIRQgEBJgABnAYGwbYQCMQRJXSNxPElcYCwwYwAZjAQgkbMlGCAAhy1xhjADbWAYwAnGZZAOShMCABICwwFIgkIRBzswp3FrMen7hE/Qq11DkIiQQkngASbZ5IIN4DgYhCfMsxhiEEBgwzyQwYAMGSeKZzDNJss1lkmzzQtmWxAMIbBskcYVBAJIA21xmWwhAPJuRZJvLjCUJGXOZbUmSbPMAkmwbC3GZsRAPIMQVArCNQTyQJNu2JXE/24AkQAiwjJEE2LYtiQcyz2IsiRdEyAKMAduAJCFjHkhgHsi2JC4TMsYgng8DGEviCoN4XkLG3E8SVxgExpgHkGSbF0CSbe4nifvZtg1IAgBJXGEQz2QsA0KAbe4nBFgGZPEsArBtWxIgiefLPJPAAMY8P5IADGDMA9iWBAhxP2NjjBACkMT9bPOchABjnodtSbzIJPEAtnketiUBkgDbPC/zTAIQ4vkx5n5CgDH3EwKMMQgAgXkgIcAyIMTzY5vnJInnxzbPjySeibC5QkJCkiSehyRAkiQhIUmSAMC2bdu2eV4G86IQCBAvhJAQLwJJkgAQz8kYgwEwGACDEQIwmBdOkiQMYNs2YMwVBgMI8QCSJAGAkCQAISQEAJIAzDOZZxOYf5EkSdzPNpdJ4jIhAAEgrpAlZBvAPJN4INsABgMGMAA2Ns9knkUgXjhjBAIBCAGAMeJZJAEAAkBgnkkgMLa5zDbPQ5IkSTyAJEm2AQSAQDyQkBCXGQPGxojnYJ6HeB6SAEmSJEnieUiSBIABASBxPyGZKwwIBGCukHgAIUk8iwGEAEBIljHmfgKEAEBCSMgYc4VtwLZtng8DCEkgALDNA9kAMoCMAJC5wsI8F0lcZts24gpJXCZJEs+PbQAQEgIwxsbGGNu2JfEAknh+JAFCXCEAIQAEGAO2bQNgMBIIISHyJR9UP+StnXu1lShyDQcSCAcIBCDAwoBtAIzE/QQISQgkASAAiWcRAtniWSQknkkYA4AsJK4QGANYAJYMNlcYLGxsrjAGEBIIQCLkEpSQQiqUI3/y2/Iq1whbdtjCgME2l0kCEIAkIQDxQLaNAds8F4ExYDACQBISgGSeyTwHSTyAbZ5NXGbbNveTZBswGAADIJ5JSBKI52QbMDbmMiGuMEJCgBBgLEkSIAmwzQNI4jIh7idk2zaXSUIAYC4TkoTBAIAkLpPE8zKYywwgcT9Jtm2DAWPL3E/IGLBtm8skSUI8m8E8kzHGYK6QJCQECAkBkmzbBoyFJGEwz8FcIcSziAeybQwYYzDPZgAEgLjCtm3AtiRJkiRxmW3bgG1eMEmAbV4Q88IIxPNjLpPEA9i2zfMSAAIhCfEcBAIwBgAhIUmSAElcIRAIBCAEGPOCGIyQEALxQJIkAZJs2+YBbNsGAEmSeBFIkgRI4nnYts2zCAAQEuKBBOKZDAaDeYHMsxkAg5Eli+fLGBtjMM+Xbf61DKDMBAESz2IbsC2J+0niMttcJsk2YJv7SQIkAba5n5AxDyAeQAKwAQMgCcAAxtxPCDDmBTMWkgTYBmwDkgDAWBbiORhAEmDMCybJNs/JGCPEFQIQAhC2uUwIcYUx5gohhDHmgWxL4gUQMuZ5SOI52eZ+kmxzmSSuMIAxYAwISQJsAxjEFbYlCRnzLEaAMAJjEBL3kzHmCiGeRWCuMAYwCEnczxhzhSSuMAgMAsAgbPOcJAG2eU62JXGZJF4I8yzGgLEQAEjiAWwDgCSezSBjzANJAmwDtgFJgBBgGfO8JGGby2wkSdg8kwDEAxgE2OYKg5BkG/NM4gpJtrGReAAhYx7ANpcJcZkxAJIQz2TA5gpJEjZgnkkSgAFzhYUw5jlJso1BvHC2JfE8JGEwxsZcJokHkMRltrlMkm1eAEkYAAHY5jLbXCZhwEpjk3Yam8l6uS9fPuVpEXNVAopAIBDC2GAA2zYWBjDiWQwCJAEYQBIPYANGxhjbSIC4QhjJgAABQmCwjQxgG8AWMlgIIcRlQmCEAAFIAhQUEUJWBlNkrqY3e1W+9527TmCHXABhSRKXSQJsS+J+to2FeF5CFgAgbHOZjAGMJDDPZJvLJPGC2EgCg21JPIBtSTyAbQAQgMAAElcYhCTbAGBbEg8gBGAAY0mAMQ8gyTaXSbJtW5IkLrONQTyTAYwlSbLN8xAyti0JIQTYti1JyBiDuEIIACMBtrnMtiSuMM8khIwB24AknocQlxnzQAZxhSQus41BSLLN8xAyti0JgXk2AyAQmCsk2QYA20JcZiyJB5DEZbYB24AkQBL3s20bkMT9bEsCJHE/27wAkmxzP0mAbQDAIABJ3M82l0myzXMSAhCAbQBAYJ6XJMxzEFfYxgCI5yWJ+9nmOQkBCMC2MUYIcYUk2zyAkDGX2ZbEFcZYEgBI4n62uZ8kwDb3kwTY5t9PYAAM4gohwJj7CQHGtiXxLAYhhLEMCAHG3E8SYBuQxPNjm+ckiefHNs9EABISNjbPxTaXSeJ52OaFE4AkScbcT5IkEM+feL4EAgxGAJIk8TyEeKGEEM9i2zYPIEmSJElcZts2ANgGMBghIUAIMDY25gqBACQBCMvGAIB5NgFgACFJ3M+2bds8LyFJkiReZLZ5XsIYsI0R4jlJEuIySYAx9xOShAAJBAiQkXkmARLPZGMEAvPcxHMzz4cwtgwAiGexbZt/iW2eizE25nkJxBVCgCRJtm1zmW2eDxsAgSReOIN5JgPYtg3Y5gobwMZG4jJLIJ6TwRiDDUjiCgHYBoyNEYAkSdjiMttgmyuEJC6zbZvLhHhOwtgAYIzNFRKADdjG5jkYwGAQz2LbNlcYIYQQANi2zXOyDdjmMkmSAEkYwJj7SQIkSQKEuMw2z8m2be5nm2cRV9gGbNsGAeJ+smQEChRIXfArHzxb7CztoEYEUVCIwAIZjLBs7icQtgHxAAYwGABjMGAAjDCYywQGMCAZAIRAGAwgrpAlDJYNEphnMoBACAzIGGyBzGUyMjJhVVjx2Ifnt7xtt6iUcCmSZGGJ+0ky2EYAGADzQJK4nyQhnslgJIQAAQZhm2cyz2bbNg9g2zY2IJ5Jkm3b3E+SbdvcTwIALBAAwhiwbQzY5jLb3E+SJCEAAxhzP0mSuJ9tSZIkAYAkwDbPIjAYWUKAEGCb58cYkARgnkUSxlgWzyIQCMQD2eZ+QpK4TIgXzLYxxjbPl7hCEg8kANs8P8aAJAAjSRKXGRsDGEkIwLYkSYAkY2NjnodtXjSSJHE/2/xLJEnifrZ5QQwgJMTzY5sHEBICg3ku5pkMBoMBbCMQxsYA5tmEsW0ukyRJkiQus22MeCYBIBCIZxECjG3bBmxLksT9jCVJAiTxLEISIEkSBvOCSOI5SZLEA0iSJEkSDyBJEs+XeSYBSJLEFQIhJMT9JPFA4pnEczCYBxIS4gFs2+YBbNvmAWzb5vlDtsE2V0gCbAOAbUAS/0qSANs8gG1JgCTAAAgAA1gW9zPmfkKAZUAIsM2/RBJgA+aFsg0AQojny7YknocQYBnzfAjMA0kCbPP8CAEIwDZgWxIPIGTMA0gCbHM/SQAGcYVtwLYkLjMW4kUgCQMY8zwMAkkYY56TJMA29xPifpYxVwgBljEYhJAxL5QknpNtnpMkwDZgWxIA2JbE8xACLGOeSWAeyLYkAJAEALa5zLYkSba5TBIGDEK2wUbimQTmCoMQAsAGDGAsiedlI0nCBgwYxBUCwBIgAwDGPICxEA8gCRswYABjSTyAbUAS9xMy5gHEC2TABpB4LjYIQCBh8zyEjHketrlMEs9Dkm2uMADiuUiyzQPYlsQLJQkwxjyQbR5AwpBWWjhtZwrpd29rb/MV69ZvCBUswAbRbGNjy7ZtwIB4DgYhZC6TQcIAiCts7meDeCYLLEBcJsTzsI0NYBAPJAkAJPEskhESKoQIqRRyYGMx/cYn1seeZkoEEtjcTxKXSeIy2zyQQQCSANtcIYSMhbifbTDGIIkrbCSehyTbtiUBADYSz0PI2LYQgBAy5llsBMYgicuMhbjMNpdJEjLmfkLcz5jLhIxtS+IFkwRgnosxz0OSbduSJNnmfkKAMQBgEEIAwjYASAIA29hIPJBBCAEI2wAGQAgZYwBjIQBxhW1JPICQMQAgMM8kMBjEFbYl8ZyEELYB24AkQAhxhW0AMBbiMtuSeMFsA5IASdzPNpdJss0DSOJ+tiXxnGzz/EgCbAOAkDH/GkIAArDNi0LIwhgjXnSSANs8kBDifra5n21AEpdJss39JAG2eRaBeSBJ3M82z48k7meby2xLAiQBtrnMtiRAEmCbF8C2JEAS97PNFQbxLzCSAGMAYywJkATYBiTxnGzz/EjifrZ5PgiMzXORJAmQBNgGANu2eR5CQlwhEA9k27ZtnpOwsG3bYF4IgXhRCAnxABKSJEniAYSEMJhnMcYAtm3zAJJ4TpIkcYUBEIgrhIQwgG3bvHAG87wk8SwGAwjxvAQCIYkXQBKAQADGPA9Jknguwpj7SZLEZeJ+4grbtnleBvNMAoEBMJgrZAFCsowxGIyQkCRJvAC2Mc9FEg8giftJ4n62jQHMM5lnM4Bt28a2Ads8gG3Atm1JgG2exQBGYIy4zOYyyRIgACHuZ8niMkkACADzLBKADdjGNtjGxub5EeIy27aFeDZzhQQSAgEg2zybeQBJkngmgXgOAoEscZltbIPBtm0ewGCMAASSAEk8gDH3kySJB5AESJLEFQbAALZtIwAhIQDAPItt24BtwDaXSZLE8zIA5gUQiCuMICBw4JAFr/uQ+pXvXWN3iKAk1a5BGMI2BrDBYEAA4jKDEcgyBhBXGAEGY4O5wjJCgYTEFbKwMeIy8ywCjAAEgEA8k2WTaRvbNhgMxoBsLFuJgiC36vC9H1Qee1qADSiEJEAA2LYN2OZZjLFtDCAkBGAADIABhMA8kwGQeTaBJJ6HJJ6XBACSJCEQQgDmWWRhg0AAIJAFiGcTss1lkrifMQbzTAKBQDyTMQYkGRvbts1lknguAjA25gqBEBLiMklcJgmwLUkSDyBJEoAAjBEPZJtnkQRCXGbbGDBGAEJCXGEAISFAyNgYA9gGbNsGACEAgwEwkiQhhIQkYQDb3E+SJJ7FPAeDATAPZJsrBCCJyyRJAgDbGADzgkgCJPGcJPEAkngBbNvmMkmSMIAkQBLiX00gnkkgnoOEJEkSz2IABIC5QpIkLpMkicts2+Z52LYNYAAMGJAkiQewbRuwzQslJIkXSpIkXijbPD+2eU6SJPE8bPOC2TbGYISEuExIiCvMczHmX0+SJEASYJsHsG2by4QkVWPAtiSeH0m2bUuSBACSANs8gBCAAYy5nySuMM9mnkkAQoAxz0sAmMvE8xAyxiCuEAJs8wCSuMy2JB5ICPEAQojnYBBCthHPYhkQ4gpjDBhzP0m2bUuyzXOSZBuBMQaEeC4CYyxkLCTJNg8gBGCMeRbzTALzQELGtiUhMC+Ibe5nW5JtJIEBG4nnJInnYSxkG4FBCBlzmTEPYIxB/AuMMQBIAoR4ANu8aGQBiAeyLUnIWBKAQTwX21wmiftJso1BGAOykJAxSNi2JYEACSzAGMz9JBnzTAZAgCTbXGYJG0ASgHgAYcBcZhCSbPN8CLDNc7MkALANgMC2JQG2uUziMvE8ZIzAAJIAsA3YlsT9JHGFDUgCJNnmedgGhIyFAAziCkm2EYAxIAmwLYRBSLJtLGQbkATYlsTzkMRzMYAk27Yl8QASlwkQBsCWBCEBwh/0irPH37P83p+fYrt4koSELRUwaTBYxoDACBsBAjBYyDIgA2AEBoSRsEGIAIPAIAwyAjDmmWyDwAgJJIEBECAAg8BgAAFGgLAlQQESd1jWUfvy94s3eJjAaYWQAAkjAeI52JYEIIQQgBDPRTyTQdiAAQnAIAkAJNnGRpJkGxtJkm0uk8T9bEsCbHOZJGMMQggQ4jIBAoMxAiMBgCTbgJBtLhMCMADimQTmuQnMFUIA4oEkAYBtLpMkxLMYwBgQQmCusC0JsM0VBmEsxAOJ52UbIcAgEBjbCCEus82zCCFj2whJXCbE/STxAEJcIZ7FNleIZxI2D2Sbf4mxkG3uJ4nLhIx5fiTZxgCSuJ9tHkCSbS6zLQmwzYtGEvezLckYA0gCMAAGIWTMAxmEkDH3s839hBD3M4CNwDyTjcSzCMwDSeI5ScJgEBjEFZIwz8ECjPm3si3EA9jmMklcZpvnZJvLJHGZJNtcZpsHkMQLJsk2l0niBZBkG0AACFlcIQAM4rlI4lkMIAmwzf0k8TxsA7YlSeI5SQIkAUDYgHl+JEkCJEkCJEkCMADimQQCgXgmg7lCkiQA8Uw2AALxAkiShAAwAEbm+RICMM8kEFfYtg3Y5jIhzAMJAZIkcYUAJEniWQxGiAcQEgIADIDBXCFJEiAJsM3zIwlAPJAQICSEucIYMAYkIRDGxlxmzPMjJAkQkiUECEkChIS4wgCSJAGAbdu2bQO2AWxAgMRzkgRIksQDCHGFATCAkJAQ5lmMAQQgSRICYYy5QkiSMYB5vmxzP0mSAEkAYNu2bdtCgCQhrjAYIQwgxBUCQCAASbZ5vowQgAEwiMuEBCBJPAdhDNi2zf2EeABJksAASBI2gARIkgQS4pkE4goB2OZ+tm3zQDY2gDE2lsTzIwmwDYB5NtsGA2AAA2BjEM9FEveTBAjEMxkDBsQVQkIAgMEAsrhCCHE/STwPIQAB2OYy21whACFAkiReMNsIwDaX2eYFMIDBQoqIiFIAWuNr3mrxlq81lEtZgmgoEQZZAJYtI0AIYS6TeSaDsQFkBLIxAkAAAiRJSNjGAAgZwICNbdtg2waDASEkAguEJIUkIWGwbDAGQADGSAKIg/yYt9e7vHx1sp5oSQlCAOYKAZIkcT/bkgAE4pnEswnE82UDiGeSxAtgm+dhm+dhzANI4pmEAIOQeABJgJAQIIRAPC9JQlxhMEJCAMLYGACEAAQCY5vnZJsXRDybEbINGBtjrhDiMklcYa6QJIlnMSAkEAaQJMT9bBvbtg0YAwjAWBLi+RAIwJjLJCGEhDAYwDYCAUi8QALxQMbGgDEGc4UkAAFI4jlJkgRI4l9iGwBsA7Ztc5lt27wAtm3znGxzP9sYAPMskiRxhQGEAEmSuMy2bQwGwCAQBsBgc4VsQCBAIADEczDPIgkBIAAMgJGEABCXCUAgEABg2zb/IiNJEvczliQEALZtA7Z5AEmSJEnifrYlSQIk2bbNA0gCJAlhMBgMApDE/SQBkiQBGACQJAmQhAAQgLExlwnxQEIS4gpZsniR2eYFkwRIAjCAWmsSIC6TxP1s85wkAba5nyTANvcTAmwjrpAEYF4IY64wCACBuUKIKwwCMOY5CQHGPIvAABgA8UBCgG0AAQghbAMYxBWSbAMYACEEIJ6bAWwjrpAEGGNeEEm2AWNACIG5Qggw5lkM4oGEAGNeMEm2AUASgDHmMiHE87INYBAviAAwLyohYx5ACDAGbAsBxgghSba5TBIGAQC2AWNASJJtXgBJ3M82YFsI8XzJMuYyIQTCNpdJ4jLbPIAk2zyAkLFtSUIAAgBsc5kkzBWWMbaFeBbxQJJsc5kkbANgEEiyzWWSAAxgzLMIjG0uE5dJAgM2V0i8ALYl8UwCc5kkAAyyzQsmybZtSVwhYduWxBU2kgBA4grzTMI2BiHEAxjzAJJs25bEZbYlCQEI27YlcZkk27YlSeJ+tgFJgG1AEpfZ5nnY5jJJXGabZxKSAJyW7VoEvPu3HP3Kn87YjmlgimzIkEkCRoARBrCwhQDzLDbPIjBYkgAJECBh2wCAAWTbBgyYZ5KQBEggMIAEBmQwtp0WkowAJCElsooipKP80Lfxl7xpEaRJK+QSArCRANtcJsm2bUkAIInnZRDPZABjALAtSZJtXgSSbHOZJNsAgI0kybZtSTyAJJ6bsQBjnoeQbWMukyRkzAMIARjEMwnbAGBbkhDPIq6wzfOQZJsHErIAYwziCttCAAIQQtgGAEkAYBuQBNjmfkKAMQBgEJJsA5grjCUhMM8kZHGFsM1lkmzzPIS4zJgXmQQIsI1BXGFbCEBcIYnLbHOZJC6zzWWSbPMAkmzblsQDSLLN87ANSOI5SbJtm8skSbJtGyHEczFCgGUuk2TbWBYgCUAAtnkAIWPuJ57NXGYDSFwhMAAGIQQgnsU29xMCjAEAIYtnkUFcZpsXziAASYBtLrMtiReNJO5nG7AtiReBJO5nGyELMOaBhBBgDMjifsYAgBDCIADb3E8SYJsrBAbAAIjnSxJgmxdMEmCb+0myDQABgABJkngBJEniRScABBKXWbYMBvNMBmMwz2QAISEMgME8m7hCkiQeSCAeSEiSkCQAc4UkSTyQwQCYK4xtcz9JAAIBIBAvkAAQiOclSRIPYBuwjRECMM8mEEKShIQAjG3bPJDBXCFJEgKQJMk2z0VIQiAQVxjzvASAkJAkiQeSkHgRSJKEkMQDCcSzGBsDQoBtnh/bgDEgCWEbsG0bsA0AkiQBxjyAECAkxGW2bXM/SVwhANs8J9sABiMkBEjiAYwBSQAC8QACScI8mwGEACEhAHOFJEm2eRYbwMYWALZ5buZZhCTMswgAgWzuJ0ACkCTxHARIAJIkIe4nMM8mwLZtLpMkSZIk24AkQJIkbC6zbbANYPNANoBA2OZZBAJAGAO2bXOZbS6zbdu2JACBsA1IAiRJss3zI0kSAEjifrYB27Z5fmxjMFdIkhBISJIs0dJpvv8DN17/lZa5ny62nXbaxgZjY3FZCgPCYARICCMuswAMFgZLAAKBQZKEsACBMYAhJQsjJEvGFuYyCQmJEEICQCAECIGMjNJRUso4ah/2tv6iNylOhom0ukIJDDaAeQ62ASHbtgHbAAaDwTyTsQ0gEFfYBgFgLrMN2LbN85AESAIkAZKQAJAADEjCYIQAhDHPTcaAJElcZts2YAwIcT9jISEMBjDGPJsAJEkCJAHGPIt5IWzzAJKEuMI8kCQuExJCPJBt7ieJ5yUQz2QAIYwQICQECAEYSZIQgLExgHkW2zwvY5vLJEniMts2V0hCQkLimQTiWcSzSDI25jJJPA/bPCfbPIAkLpPEZZIkSQIkSeIySZIASZIASZK4TBKXSeJ+tgFJGNs8kHk2gwFsA0K8UJIQz2Rjc4WExGUGg23bAObZzL9AIJ7N3M9gAGwuEwgEQhJCkiSuMICQEA9gm+dHkiQeQJIknh/btm1zmSRJgCRJkrjCYJ4PgwEASUK8IALxTOZFYq4wNja2zWWSJPECSJLEC2WbZ0KtpcRzkQTY5jlJAmxzP0mAbe4nxLMIAMwzyTaAQVwhBBhzPyGEbQCDeDaDABAYwDYgCUBgANuSeC4GAUjCXGHM/YQAY56HEGAMAAjMCyJkzGVCPIvAAMY8gCTbPBdjWUgSYIy5QsiYBxIYDOIKIQABALYBY0BIkm0eQBL3s839JGEAYx5Akm0ukwTYBmxLAoFtS5JkmxdKEgYwxgCI52YQkrifbcC2JATmCttcJgkAJPEAtnkgg3gmg3gmAyAAIWMusy2Jy4SMMQDi+ROYKyRhjLmfJNsABkAgMM9kEFfYlsQLZRDPQRJgGyQuExhjwCCeSQCYZxMPINkGAEm2uUwIAHM/S4AwCLBtWxJXCMzzkoQNmH+BJNtcJglzhWWQADDG2JbEFQJjWxL/SpJ4TrYBSYBtnh9JtnketgEJkAQIbGOwhV2KMO/73Qc//nvz6ZingRDGaTlDICMjc4UNAoQwYBuQQQAGLElCIAmwBQYZMICxjW1zmQBJAGAJISQJiWeybWwS2wKwwhRnRGYh5W6Vn/Fu5eNeuwvZxihECQO2wAIkwLZtSQgMBjCWJMk2l0myzf0kGQsBtnkmg7jMtrhM4nkIzAskMM9kWxIgxP2MeSAhBNjmMtuSuMIgrjAW4gqDeCbzTOJZJAG2uULIAox5AWxL4jLbkrifEGBsWxIPIAvxLMY8J0k8LxsJsG1bkpAxlwnZ5lkEAvMsQoAxl9mWxAMJzAtnWxJImGeRANtcJsk2lwkZc5ltSZJ4ANs8D9uSeF4C86KQZJvLJPEAtnkA25J4ANuSeCCDEDLmeRnEMwlZgDEPYIwRIIEkANuAbUASz48QgHgW29xPEmAbABCyAGPuJ4TAAMY8gCTbtoUQQogrbAO2AUk8J0mAbZ6TJO5nmwewLQmQBNjmBZMEYADbAAIQ4oGEbe4nCcA8mwBscz9JgG2ehzFGEpdJ4n62AUk8J9vcTxJgm+eDCoAAMM9JEmCbF848kwAwz4/A3M8YIwlAABhACEAAQgACMAZsA0IABrANALYlYZ7FNpdJAoQQxgDm+RMABpAE2AYwxpKEEIBtnpNtQBJgzHMyBmQBtgEEIAnAAAhAFmAbEOJZzLMJIWNACLANIAAhLjMWAmwDtgFJgG3ANiCJF07YBmwDkrhMwgbEA0gCwIAkLpNkG7DN/SQBkgAMgBEyBoQAYwADSOL5kQRgANvcTxIgicuMhQDbPCdjjBAgCTAGjAEhwBiwDQDGQlwmZAwYA0K2JQGSANtcITAABkAAtgHbgCRACGEbQDyQbQmMJMA8D9sgCZDE/QRgEAIbhAEkAEk8i80LIrC4QmCeh0E8gA0gCZAE2AZsA5KwJQHYXCawBGBzmSTbvCDCNgAIADAWmMskAba5nyTANmAbkAQYYyTZlgRI4t9Bkm0uk2SMQWCwECAukySc2Kg1S/qO9946derwG37erc6oqUyIDCkJCwxCXGFANgDiMsuyLAAEtpHCRhIAsgEbYQCDARAYhA3iMstSgCRkIRsETgTCCWDbIqJFbcOh+sX0LR88e+eXq2mPSQ11hStskAEQz0MIYRsAMM9mnosQGCQJsA2yLck8mwAwzyYuswFLgACwDUgyz2SbF8w2IAmDeBbb3E8IcYUxgHk+hG0h24AknkVgnkkAGMA2IIn72QaMhQDANiAJQAAYSbYBSYAQAoPAAJIAY54fYyHbgHgmSYAxVxhjAIEBhDDGPIsAMIBt7ifJmCsERhJgG7ANSOIySQCYF8y2JAO2sRBgLAmwLQkAMJIA24Btnh/bgCSMJMA2YFsI8Sy2AUm2JdnmXyLJNiCJyyTZBiQBAAIwlgTYFuIyY4RtQBLmmQxgmSsMYBCAQTw/kgCwjQCEeC6SANvcT5JtSQACwAAYAIF5NmMMSLINSOIK8UJIAmxzP0mAbV4wSYBtSTwP24AkXjTGgCwAgXnhjIUQAObZBIAR4jJjIQQgifvZ5n62AUncTxJgm+dHEmAbUGsp8VwkAbZ5TpIA29xPEgaBucKY50cIMIB5AEmAbZ6XQQAIzAtjAMTzJ2QZ80AG8UCSeB62AQwCkATY5jnZBiTxnIS4nzGAQVwhyTaXCXE/Y/4lkrjCGHM/SRhjIWPuZ1sI8UDGgJAk2zyAbUk8J9uAJEk8iwGb52EQVwgZ80AG8RzMs4lnsS1JCLCMkQQAtnmhJHE/2zwnIWNjIS4TMuYBjIV4XubZBGCbyyQBgCSeiwFsA8aSeB5CXGYMAAgMYMAWCCxxmW1JkmxjAwZJXCaJZzIIwAYZA7Yl8TwM4pkE5pkkAWAQgDEGScbYRpLEZbYBwLYknodtAQLEFTYSl0nifgZsHsC2JACQhDEGCcCWsLlMEgYwBgAhADC2zQNI4jLbkiTZ5nlI4n62AduSJNm2LYkXwLYkLpMEGARgG4MtMAj4/r8dPuzbx6OpoydaIsjAJewALCSDATCAscAG8UwCQIAQAiEwYBvACJMYbEACwAgAJJAkSUJCGMCADSkyjU2igOJ2cbruxvYDH7zxareEMGAoQREIGyTuJwBsc5kQlxnzALYlcZltSYAkwDbPyTYgicsE5vkQmPvZgEESAEiybVsSVwhZ3M+Yy2xLEjLmCoO4QhLmWYwxiAeSZBsAbEvifkKAMZdJ4jLbvBDGWBIvlG1JQlxmjLlCEsK2bUk8JyEEANjmMtuSJNnmCvMchJAx9xMCjHkgIYsHEhjAGGMMSOIy25IAcT+Jy2xjAAQgCQMYc5ltSTwPSbZ5XgLzXIQQtgHbgCSeH0mAbZ6HbUk8gG1JPA9Jtnl+hBC2eR5CxjyQucxIXCYwz0ESl9nmRSDJNs9LYIxlIZ7NIK6wLYkHkGSb52RbEpdJ4n62AUmAbZ4fSdzPNveTBNgGbEviAWxL4oHMs0gCjDEA4oEkAba5nyReMNsAIISwzfOQxHOyzfMjCbDN84Faa5IASYBtQBJgm/tJ4n62uZ8kAANgAMsYYwABCAGyAARgGcAAkgDbgG1AEmAbkARIAowBWVxmjAAwgCzAGEAAkrifbZ6LeTYBSAKMASHuZ5v7SQJswCAADNjmfpIASVxhEIBt7icJsA1gACEAAVgGhADbPD+SAAyAMUYIIQAMYBuwDMjiWcS/yDb3k8RzkgSAQdhcZkACZADb3E8SYBnACNkGEM9im/sJ8SwCkAQYA0Lczzb3kwTY5n5CiCtscz8hwDaAACQBtnlOtgFJgCTAtpBtwBiQBNgGJAGSeE7GgCzANmAMSAIkAcaALMAYQABCgG0AG0ACDNiSAAFgGzAAkgBJPD+2AduAJIMADGAMgCSekyQADGBxhcAGDIAEyDZgA+YySYAkwDZgG5C4TIBtQBIgiWczyDZgm/tJAiRhbIMkAIvLLIR5FmNAFmAZsI3AAJK4n21JQsbGGEm2JQGSuJ9tnpNtQBLPxViWhRAgAWBbgAQYZNummWw06Qnn/FbfsrrjKarH6bKZmlMlLBACEgyAAYExyIDAAiNhQACgEFfYYANgEsAWgMUDKABJQiiwhDAgsGSczcqks5XDbnuLV4+vfaf5dVsEABJF5jJJgCQuM8gAlgGMLASAAGwDthGALGNAEiAJsA3YlgQG2QYkAZIA2zw/kgyyAdsGSYAkwLZtSYAkAPNM4grbxrIkGQMYQJIxAhACMIBtAAFIMgaEuMw2BgFIAjCAbQABSAJsA5IA29xPCLANIABJtiUBtnkuBpAEGAMYQBJgzHMxgCQAAdgGbAOSAEnGGEAWYBkDAJKMEYAswBhAAELGsgAMgHgW24AxgBDYAJIASTwXA7YBEIAQYBsw5n6SeE6SMJZ5LgaDeBYhwBiwDUgCJNnmASQBtnlOtgFJgCTANmAbkARIsg0ghADbgG1AEiCJ52Sb+0kCjAEsQDZgGYQNSAIsAWABCLAN2OZ+krifbUAS97PN/STx/NgGJPGcJHE/2zw/krifbQRGiMuMAUmAbe4niQewzWWSANvcTxJgG7ANIAAhDIDAAJIAY8A2IAmQxP1scz9JPJBBPItt7ieJ+9nmfpJ4TrYB29xPEiAJsA1IAmzzTCgz+XeQBNgGMIgXxgAIQBIPYJsXTBLGmCsMgBAy5jIhwJj7SQKMMYCxLMRzMIBlIS4TAox5TrYl8ULZBiQBkmwDAALzQJIA29xPFsIYEAIQgG3AtiRJtnleBiFkzGVCgDEAGMtCCBnzAtiWJGTM8xAy5gWxkQSAeR4GIQQAxhgwCHGFbUk8L4O4Qggw5n5CxrYlCQEIzBWWMUKAMYBBPJMBEM/NIISMbQsBiCuEuMwYAGzzAJJ4HpK4whjzgknCPJN4INtcYQPmmSRxmWxLgAFbkiTbPIAkwBhzhW0hAPFMBvFAtiVJAsAgnsWAAQzCCMyLwgCI50sCxGW2uZ9tSTwPWVwhAGMeyCCuEAKMAduAJO4nZMzzsM1lkiTZ5jJJtnkA2zwPIQBxhSTABhkLQBYC2zJkOtPNGO2NfMJP7P/4r6n1Xd2qjJEYJIGdyIAxWMYCZJ5FPCdJPJsNYGNsYQCDEIABIwBJCAWEHHJIAouWhEhyPPR8Pn3K2/mjXn1eCyEjCQIkCwySJAEYY+4nCbCNQUjiMtu2JfG8JGxeKElcZhsbSWDARgIASdiAARuJ5yEEIGxzmSTbPIsBEFcIAQjMMwnMcxC2uZ8QYMxlkrjMNuaZxDMJzBWSbHOZEIAxNpYkiQewzfMyiCuMZQGIfy1jIS6ThHkmY2wsBCCEEIBtQAgw5n5CgDEghMAAxsayAMQLJ66QMQbxTAbxQLYlITDGgBDPl8A8ByMJMOYBhADE87LNA9gGJAGAJMA2ANiWBEjifra5wiBedEIAAgMYA9gGQIAkCcA2/wJJtnketiXxIpNkmxeZJNvcTxL3MwaEuJ9trhAA5lkk8QC2eeHMcxCAEMI2ANiWBAgBCMA2/xJJgG2ekyTANveTBNjm3wVlpiTANi+YbUASIAkwxkgCbHM/SYBt7icJsA3YBiQBkgDbkmzzfAkhDGAbsIwRQmAABCAJsM39JAG2AduAECAJMAZscz8hQBJgDGCexRghBNiAJQGSANuAbUASL5gk7mcMyOJ+xoAQgABscz9J3M82YBuQxLMYQBKAAGxzP0mAbQADCCFsc4WQBVgGEABGyBiQANkGbANIGAFYEmCehwEkAcYANiAJMM8mCTAWwgC2AQRGEmDMczGAJJ6TMSDE/WwDxgghnpMxRggBYJ5NABhJAAKwDdjmOUkCMAACkAQYC9kW4jJjwDYgCZAEYBCXGQCBQbYB2zyQJMCWBJjnZhuQBEjifrYBDCAJMOYygQGwDUgCJPEcjAVgc4VkjEEAkgDbACDJNoABhACLy8yzSIAwiMtsA7YBSYAkwDaAAYS4QhgDxoAQgDGWBEgCbAO2AUmAEPcz5jnZBiQBkmxzmSTbPIBtHkjIAhBClgEhDIAMMshGsg3CNs50M1MTAukX/3b65J/I2++qZSH1bqMkwCkMJLaQQcIAFlggyRiDJGHLGCQAgW3ABkQaYyEJIwO2EoMEVgmFXHCRInCoVbykph/zEvmlb6lXvl7YiAiEJAtAwgZJAiSMsZCxEAJjjEEAkgDbtiUBkmxzmSTANs8kCcA295PE/WwD2JKwAXOZBEgCsAHbCBtAEiDEFcI2l0myDWCeTQCSMAjANiAEIDDGQgjANvcTAowBhBCX2QYwzyaeiyRjjBAGMAYQgCSek22ek20EgBHiWQQgCTDGSAJsAxhAEmAM2AYkAZIADGAbMAYkAZIAY0AWYBuBASQBljFCiCtsAxhAEoAAbAO2JRkA2YAkAAS2AYwBSYAkwDbPyTZCiPvZBiRxP9sIWYAkwJj7CfEsArANSAJsA5IA29xPEs/JNveTxP1sAxhAEmAM2AYkAbYBSTyLASQBCMA2YJv7SQIEgG3ACCwJkATY5jJJPIBtwDYgCZAE2JbEZba5nyTANveTBNgGbAOSAEmAbUASYJv7SeIKAxhzmRCXGQshbAO2AUmAJIyxEAKwzf0kYYwRGEAIYwwgAEnczzaAASQBCMA2IAmwzfMjifvZ5n6SANvcTxJgG7ANSAIkcT/bPD+SANsIZSb/DpIA2zyQkAUYc4UAMIBtQBKXSeIFM8Y8kwGMJQEABkAAkmwDxkKAJIwxxlgSlwkBljHPSwgwBmxLEjLmMtuAuEwCJAG2AWwkXihJAAYw5jlJwjyQMS+EQQAIDGBbCAFIAmzzPIwxQpIAY57FAJKMeQAhAAHYBmxL4jLbAiTuZ1sSDyAEGAO2JQkAS9g8D0kYwNi2EIB4QYQAYwCDEOJ5GAMA5jmIZzIIIWMuEzLGPJOQxGW2bUvihZKEMRayjMEgJNkGAAzimQTmeQnM82Fbkngm8xxsc5kkSZhnErYxgBACAAPmfgYwliQJc4VlQOYycT/bXCEk8TxsAwDmmcQDSeKZbCSwDWAQV0jiMtu2hYQQxgAG8RwM4oEk2cYAxpIk2cYgJNm2LYkXwLYkLrMtCQBsA4AkrjAIIQABGAOywIAlGQRg28a27WbS4rKIWDW+5JeHb/0V9pdmo6PiycJgLDvAGIHAAAgBFmAjwACyuUwCYwwCsAEDAksYG9uAZOECkopUqqIjGx583Q18wpv6PV+mKIEsshBCkjAgAeI5SeKBjDEPIMk2l0nigWzAYFuSJNsAYBCIyyRsnh/znCTZgAHzTEKSbQxCyJjnyxhLksRltgEhjGUuk8QD2LYtSRLmmYRtLpNkGwCEjLlMyJgHkGQbg3jRSbLNAxmEkLFtSdxPiCuEbdtCiGczgLEkHkDImMtsSwIkAZhnMbYtBEjiCmGbKwTmCiFjLhMyxhgDkrjCRkLIAox5HpJsGwvxLObZxHMSmCsMAhACjLlMkm0M4lkkAbYBSdzPNgBIAgDbXCbJNpdJss0DmWcSD2RbEg8gyTZXGAQghDDGPItBPJPAYBtJPJMQgABs8wCSbAO2AUk8J0mAbZ6TJJ6TbV4EtiUBkgBjQBYCwBhzmZAxAGAAY0ncTxL3s83zkARgrjDmCiHE/WwDGIQQgHgutnnBhBC2uZ8knh/bPCdJ3M82D2BbEiCJZ0KtNUmAJMA295ME2OZ+kgDb3E8S97PN/YQA2wACkATYBmwDkgBJvGC2AcyzCUAIsA0gnsU2IAkQAmwDCEASgAGMeX4kAba5nyTANmAbJAxIApAA29xPEpcZYxAYAJDEFQawDRgDkgBJXGYsCzAGJAG2uZ8QYAxIAmwDtgFJgCTuZxuwzf2EAEkAArANYJ7FGJAESOJ+tnlOtgFJ3M82IAmQxP1scz9J3M82YBuQBEgCbAO2uZ8knpMkAIOwDWAASQACY4yQZVkWYJv7SQKMuZ8kwBiQBdgGEIAkwDaAQUgCbPM8JGGexZj7SQJsC9kGEM+fDUgCLAECwDb3EwDmMklgG7ANSAKEeABjDCAEIABjAPNsAhDifpYBWVwhMIBtAAFIMhbiOdkGbAMCJLCNJEASz2QjgW0Ag0AIcZltAANIAoy5nyTANoCRZMz9JGFsA5aFJNnmMkm2bQOSACGEbcA2l0kCbEvifrYBSTyLQUjifsYgATZgIYNkwM40kLYtWwQCQUgR/MPd7Yt/c/jZ3+No2bGtUlpkOku6CLBDPJMRAhknRhgZjDDGQiBsg0ACC4wBS7JJSBtbZNhFVldUQhOafOJMvt/r8ZGvUU/NaMkwEaJGgiRAYC6TxHOSxP1sCyEA29xPkm1AEgAGAdiAbYMkSbYB24AAkISEzf0syeYKCbDN/SSBbUDYgCTAGMAAkgBjnpNtQBIgCbANyAKMAQQgifvZNhYCJGEQgG3uJ8kYI4QwxghxmTHPjyTANmAbIQTYBiQBkgBjDALAYCQBxoBtQBIgxP2MeS7mWYwl2QYkAZIA29xPEoB5FmMAAwgBCMCY+wlxP2MAAyAwxoAknpMkjAEsCbDNczEIIWPMswkAAcgCDGAeQBJgGxBC2AZsA5IASYCxkG1AEpfZlsT9bHM/SbYlYYwB2wghAAMYA5J4TpKMASEusw1gAElgC5AAsA3YBiTxnIQAMIAE2AZsA5K4n21AEmAbkARIwiAA29xPEs/LIADbPCfb3E8SIAkwBoQwCMA2z8U8k7ANSAIkcT/bgCTANveTBGCuMAYk8UDGGBBCABjAGJDEZba5TBJgG8AAkgBj7icJsA1I4gFsc5kknh/bgG1AEiAJwCCULRGAJMA295PE82Ob5yHJNvcTAowxyCBJgG1eMEm2+RcJWYAxD2SMJfFABnGFEMIYEOKBzDMJwDbPSZJtALAtQAIkAdhcZp6DEIAAANs8kDEGhBCAEGAZkAUY8/xIwjyTAGxzmTFGEpdJAmwDtiXxr2IABALzvCTZthEgAATmgSTZ5gGMhZCwuUxg/mW2AUmSbNuWJMk2z8sgrpAEGGOezViWhXhhBAaDeEEk8QLY5jIhwDLmCiEuM8YAloUk2eaBbAAJkGSbywQGbCQAEJdJgAGbB5CEsY24QggwBjCIK2xLEjLmgQxCEs9kAyCEAYy5TAgw5jlJsm1bEpfZBhBCEjZXSOIK8yzGPIBtSUKABbZtSVwmCfNMwjYPIGTMA9iWxAPYliTJNpfZBhBCPIAk2zwP25IkARjAIBkwyAIAY8AGbGMMwiAhBQBpI0k86Z782t9a/9DvTQcHRVulzIozSNEkIRwYENjYJE7LYK6wDQgQAIEkCQTYCIMtnHYmTqGCQjlKjZtvae/zanr/V6w37ggAp2mWcMhcJonLbEuSZNu2JEm2uUwSl9nmeUgCANuAJAAbMGAQz2TzQBJX2EhI4tls85wkAZjnYswVBnGFbUlCxsZCXCYJ8yzGGMQDSbLN8xKYZzKIK4SMuUySbQzigSTZti1JkjEGsC3EZcaSeABJPIBtHsggrpCEwVjmgQTmCiFjLrPNZZIAQMiY5yEEIGzblgQIcYWwzQslZIwxBiRJsm0QAEKIB7LN85DFAxgDCEnGGAAjAeL5ElfYNsYAkgBJAAZAALZ5HpJs25YESAJs8wC2hbjMGCEECBljEAghjDEASLJtLAshAMwzSbLNv0SI+xnzAtiWxHMSAhCAbS6TZJsXQJJtAJBkG7AtiQeQxP1s80IJGQO2AUmAEGAMSOJ+tnkgAWAASbZ5HkKAMQ8gCbDN/SRxP9uAbSGEkDFgWxKXSQJs86KRZBuwDQCSeA4oW0oASIBt7ieJBzAWAgBjWQjbPD+SANvcTxLYFiAB2AZsA5K4n21ACJDEAxgjhADAGJAF2AYQgCTANvcT4n6WASGexQDGgCTuZ5v7SQJsA7YBSYAk7mcbsA0IAZIABGAbsA1IAmwDQoAQgAAsA0KAbe4nCbAtCcAAiAeyDdgGJAGSANvcTxL3sw3YBiQBkrifbS4TMgZscz9JPIsBJAGWAQyAELINYJ5NBgEANiAJsCSwDdgGhABJgDHPIjDPSxJgG7ANSAIkAbYB24AkY0AWYCyJ+9kGJPH82AYkAZK4nzEgxP1scz9JgDH3kwXYBowBSYAkwBgkG7ANIPEsNiAJ21wmAZK4n7nMgBFCGMA2gAAkAbYB2wAStgRIEmAbsA1IAiRxhbEMCAG2AQwgCTAGbAOSeH5sA5J4NoMk8SwGsA1YBjCAJEASYBuwDUgCJAEYxBW2uZ8kwDZgm/tJ4n62JSEwtrmfJEASYFsSYBuQZBuwDQghJAEYAIGNMJIBANvGCAxgWxIAAiEEUzI1l6AWbN16Lr/795c/8qfT7fdFyxmLqhJRURJp2eA0NmkaajYCDMYAJgSBAgVIhMGAU7IkNTGNTVMTo+j86Ifne75mvPtL1Zu31JJhcohSCCmEbdtcJonLbEuSZNu2JCFjrhBCgG2eH0kAGADxLDZgGwnAFgCWsC0JbAOSAEnczzb3kwTmCotnEc9iG7AtZBkjCcAACEASgHkWYwziOQjMMwnMczPPJJ7JAIhnsQ1IAiQBtnlOthFCmGcSz2QQCCEMgLAN2OZ+kgBJAAawDSAASYBtQAhAALYB2wACkAVIMpYE2OZ+kgDb3E8SBkAAxrIA24AxIAmQBNgGbAOSeBYDSAIsA0IAYJsrBCALwDyLMYB4NhuQBFgCZJ7FMiAE2AZsA5IASQAGQAC2AduSbAOSeE6SANs8J9tCxoAkQAiwDSAAIcA2gHguAsA2gMSLRhKAAYwBBIABJAG2uZ8kAPMsloVsA5IA24BtQBJgG5AESOJ+trmfJMA2IIn72eZ+kjDGCCHbkgDbgG1AEiAEGAtZBoS4n21eMNvcTxL3sw1IAiQBtrmfJO5nG7ANSOJ+tgFJgCTANmAbkMT9bHM/SdzPNs9JEoBByGkusxDY5n6SeE62uZ8kwDbPjyTANs8mABnz3AyAAGwDkrhMyJgrDOKBJAEYwJj7SQJsc4WQZYxBCAHGPCchwDIgBNjmfpIAsA1gDAjxvAziCiHAmOfLIK6QZYwAJHE/Y8wVkgDbPIvAXCEJsM2/hiTbAAYBSAKMMVcIAZYxL5ABJAGWZe4nYx5AyJjnIS6TANs8JyEAYZsXShKX2bbNZZJ4HsZCXGYsBACSbPNAAoNBvHBCPIsAbHM/SZgHMgYwgLEQgLhCCDAGsAFLAoF5JvFMBtuSJAG2AfFM5jkIGfNAAvNMBjCWxAsgCbCNkAUY8yzmmYQk2xjEFZJs25bEZbaFAAQSNi+IQTwvSVxmGwBsS+IySZhnErYxCCEuM+Z5SLLNFQJjWxLPQ5JtAJAEALZ5ACEENgLAgBC2AcwzCcAYIwECQFzW7ExCCKeVSGJM/uCJq+/7i/WfPDnuvq+2FpQoswgBOMl0SxJnpjEkWGDJhChyFKmIkEIIkBtqjVw3D80zX3O93/Rl9TYv2b38zbFdVUXICZlIChFCMmDzLJJs8wLYlgQAkmzbliRkzP0k8Uy2AUkA2IBtgySBARswSOIy25IASdzPNjaSJACwzRUG8UxCCLDNA9gWEjI2liTJNlcYxPOyLQkAbEviMtuSAMC2EIC4QsiYyyTZNsYAkrhMyNi2JACwLcRlkowBQJJtHkgIAbZ5IIN4DuaZxDMJzAMJGXOFQTyLEOIK2zyAJNtcIYQA21wmBGCMjQFAkpAxL5xBCCEA27wQBkA8L9sSIAECBNjmMiEEYJsHsC0JkMRzsm2byyTxPCTZ5jLbkoQAY4yxJF4ogcEGIR5Akg2YF4ltSYAkAPNs4rnY5nkZBCAJsM0LYBuQxAslifvZBiQBtm1LAiRxP9u8YEKAMSAJsA0AkmxzmZAxBvG8bEvi+ZEE2OZ+kgDbPIBthBDPQxJgm8tsS+I52eYySfzLUKYlANsgMPeTZFsS97PN/SQBtrmfJMA2IAkAAzYgnsmAbUASIATYBowBSYAQYBuwjBFCABgEIAnAAJa5nyyEMUYSYBvAAJIAY8A2IAmQBBgDAsAGQAjxALYB2yAJsBFYFiAJsCwEALa5nyTANvcTAmwDCEASz8E2krjMNs+PJMA2l0myzf2EANuAZYwkQBJgm/tJAmxzP0k8J9uAbQAByAIkAcaADGCBQQCSAIwxCMwDCBAgwDZXCFk8iwBs8/xI4n62AdvcTxIgCbDNswjMFZIAYwDzTEIWYBtAAJIA24BtQBIgxLMIwJj7yQIwAAIwBmwDQjwnSYAxYBsQAksCLAGykWxzP0mAbUA2YAmwDUgCJAG2uZ8kwLaQbcCY+0kCJAG2JXGZMSALsA0gAAyAAIQA2wiEkG3ANoAAZAGSAGSQbcA2IAkwxkgCJAG2uUwSAAYBtgHbgCRAEuYKYwADSMIgAMsA5pmEkG1Akm3AtiQhwDaAeC6SANtcITCAJIwxAhACANsABpAEGAO2JYEkbEuyAWMbDC2VCbiU6ArAMvmr26ZfevzwG3+zuvVsPTzsGpFruzgRJZGjJjKBAITCrrhEQ5MxaqYR4ei8vcXDHsyrPKq8yWPKo87oeA8m07ZClEJIAskYg4TNAwkhMMYAgMAAtrlMEoDAGMsCJBkjACEADNgCJABswDaAJDAAtgFJXGZbEiAJDALbYCMBkgDbgG0hY0ASIAmwDUgCbBvLEjI2liTJNoB5NvEstgGEkG0AIWQbkMT9bAOSAEkAxlgSYBuwDQAIIQADGAsZI4QAWQDCGCEEALa5QggBtgFJgG3ANoAAhDBCgDGAeBbbgBAgyZgHEhghAPEstrmfJNtcJgmwDWAASRjLgG1ACIEBEIAk21wmCbDN/SQBtgHbgCTuZ5v7SQIkAbYB24AkQBL3s839JAG2eX4k8ZxsY4wBSTwnSYBtwDZCFkIIYwwgnoskwDbPyTYgCZDEFba5TAJkA7YBJO5nG5AESOIKYyyEwCCei23ANveTBEgCbAO2AUmAJMA295ME2AZsA5IASTwn24AkwDb3k8T9bAO2AUk8J0mAbUASYJv7SQIwgG0AAUjifrYB24AkQBJgWxKX2eYySVxmm+dkG5AESAJsA5K4n23uJwmwDdjmfpIASYBtHkhgEMpMLpPE82Ob50cSYJvnRxL3sw1gEFfYBiQBkjDGPJCQZYxBvCCSeH5sA5IADGAM2BaSBFjGPC9JgAEsCwCMeRZJxhgDGAtAiCuEAAtsXgBJmGcSGGMMApAE2Ob5EBiwkUDC5jJJPCfbgI2EkDHmmcQLIgQY8ywC87yMhbjMthACkIRtLjMGCUCSbS6TxHMyxlwhictsc4VBCHGZMQZxhW1JPA/bAEKIF0CSbS6TBGCeTWAAY8wzCUkYY8C2JC6ThDHmfpJsc5kQz8ky5oGEjLlMCLCMsS0eQOIKCZsHkMQVNpfZRuIy25K4TMjYtiRJXGEAY56HJNs8gCTAtpAx9xMy5gGEAIRtHsggrhACEABgGxsJADAA4lkkYQBjHkCSbdtCAOKZDEISBjDGPJN4ICEA8UzGmPtJwmCMjSVJss0DCCEeyDYgiedh27YQgBAy5jJJABgExhgA22mBEAJhyZJA4IbuXfrX/3r1N3e0W8/m3bvtrrPeb6xWGo7cJhwhoRAoIgpx7KS3uzyxHWeO+aHX10ddHy99U33ENXFmAcaQtrEAyyAIESIEAgTYSDwX21xmWxKX2ZbEZbYl8ZyEEFfY5jJJXGabZ7EBJB7AtiQeQBIGbAQI80xCALZtS+I5CSFs87wM4oFsCwlZBgAhY8wziedlWxIA2JbEZZJs8wCSbBsLAYBtIQBxhW1JXCZkjEE8ixDCtm1JgJBlIe5n27YkrjAIIS4zti2J52UQQjyLuMIYEAJsAwAGcYUkLrPNAwgBGGMA8UzmmcQVkrjCAMa2EUKAJNsAgEEIGXOFQTyLEMI2DyDEswjbxoAQIGRsWxICwAAIWYAxVwjMFbYl8QCSbPO8DELImMsk2eYySbZ5DgID2AZJEoANgCSb52SwLQkJG8BG4nkIAZYBWVwhbHOZbUASLwJJgG3uJwmwzQNI4gFsA5IA2zyQEOJ+tgHbQgghY8BYCEAIcT/btiUBCAyAAYwl8QCSbAO2JQGSuMw295ME2OZ5SAJs8wJI4n62uZ8kwDbPjySeL4NQa00SIIn72QYkAbYB24AkQBIGAdgGJAG2uZ8k7mcbwDyLMSAJkARgLGMASYBt7ieEMJaFsA0ghLifbUAIgUFgEBjANveTBCCMhQDb3E8S2AiQAWwDxoAkQAiwDYABSYAl8Uy2uZ8kwDb3kwRgEMZCtrlMCAHYBmwDILAknpMkwAaQADAAArANYAAE5gpJgDFgGxAYJAFCgDGAELIN2AYkARgA8Sy2AUmAJMA2YBuQxHOSBIBBXGab+0kCbAO2ASFAEpcZywIsY4wBSdzPNveTBEgCbAO2AUk8J0kA5rnY5n6SuJ9tAAFI4n62eS4GkAQgAAzCGPMsQoAxl0kCbAPYPJOMAUk8J0k8F5v7GQDbgCSuMAhAElcYY56HJNuAbUASIAmwzRUCAwgBxtxPEmCb+wkBthEIIQziCtsABnGZsIWMAQQgCWMbsMCWBIDAtoW4zDJGEiAJsA3YBiRxmbEQRhKAADCAMYAAZAG2ActCQgjb3E8Sz2IAhLEQz8O2DVgIkARYBmRZyAAIANtgWxIgySbtNGkybUswq0QRkDA0nz/00ehzB376ufHimtEaJyRkNhexXf2o68qNO3F8Q4sAxGVODxPNSEQQIgRgIwySLAmQxGW2JWEABGAbsI0kAGzAkrjMWBYgyRiBEQIQgG2eSRKAbcC2eCYDIIn72QYkAZLAWIABLIF5JgmwbVsSIMkYAwghbAO2AUlcYRDPYhsQAiQZc5ksY64QAAIjCbBtWxLPSRJgG7ANSOL5sQ1I4jlJAmwDthGyAEmAMYABJAGIZ7HN/YR4FgHYBjCAJAAB2AYwgCQA8Sy2AUmAbQDzbAKQBNjmfpIADGAbkAQYA5hnE4AkAAPYBowBSYAkwDYgBCAA2zwnIcAyz2KEMAACMAZsA5IADIAAJGEsA7IA2wACkATYBmwDkgBJgG3uJwmwzf0k2QYkAbYlAba5nxCADRgDSDwn8QASYJv7iWczALYBIUASYBmQxf2MAduAJEASYJv7SQJscz9JgG0uk8RltnkASTyAbUASYJv7ScI8kwBsAxhACGGMMQYkAZK4n22ek23uJ4kXTBL3s839JAG2uZ8kHsC2JMA2YBuQBEjiOdkGJAG2uZ8kwLYkHsgACACDUGspAUjYXCGJ+9nmOUni+bHN/SRxP9u8EAJzhRCAAGzzAJIA21wmCbDN/STxfBnAmGcxCEASYJvnIQGyDWAAy0I8kAGQQQJzmRBgzLNJAgDbPA9JXGGMeS4GcZkxSDyAAEAC2wASBhnAAMaAEA8kMALb5jJJXCYJ80wCsM3zMghAkm2eD4ExxpJ4FoOQBNjmOdmWJMk2VxjEFUKAMYBBCBljEA9kWxIPIAnAGGMAxLPYliTEZcYYxDOZZxJCgLGQbcQVkmxzhcA8kG1JQoBlzBVCAOIK21wmCXOFMfcTGLABgyQhYwziBZGNhGSbBzKI5yWJ52WMuZ9tSVwmCTDGPJNBPJAQYAzYliQJ80zCNg8gBOYKCQMY8wLYlsRlkmxzmZAxDyAEIGzbFgIAY0lcJgthGXOFEPczBjCIKyRxmW0uk8QVxhghBAC2uUxg7mcA25IAxBVCgEHCIDBgAwIEgJXYJo2NJOwQwohmbIwMNiCEDUIgCCEhLBwSWBI2KE1aBkAgWeJZZAxgSdxPErYBIQTY5jKDbC4zSJJkm/sJIa4wBmQBxrwAtrlMEgAIzHOQZJv7CQHGACAJAxjzAJIwz2JsWxKXSbLNZZJs80AGIQkDGGOeSUjiAWxzmSTbXCaJy2zbFgIQz2QQkmxzmW1JkmzbliQEIGxzhXkm8UwGAQgBxjwPSbZ5ACFjDOKBhIwxCEAI8bxs8wBCxrYlAUKAMQbxXIQAYy4zFhIy5n6SAAxgzItMCEBgAGNACAAQtgGMEAIw5gFkWeZ5CVmAMQYBSAJs85wkAbZ5ACFj7icJsM1lQsY8LyMBGLCRuMy2JEAAGABJgG3uJ57NgEE8k0EAkgDbGAABYBAPJMm2bUk8J0nczzb3k8Rzss1zksT9bPMAQsY8P0LG3M9YiMsk2eYBJNkGbEsCMAghY8C2JF4EkgDb3E+Sbe4nicts85wkAbZ5AWxLAiTZ5jJJPCdjQBaiAiDANi86g3hBJPEAkmwDQoAxl0kCbAMYAAEYA5IA21xmm38TYyFJgG3AGCPJNi+QuJ8xIMT9bHM/IcDcz1whMCDxnCQBtnleAvMsQoAFIAwyYCMB4rmI52BANmAAg3gAA5j7SQIkcT9jQAiQZJvLJAG2Ec8iictsAxhAAstYCACEAMu8YJIA2wAGkARY5lkMgLhCyDKAELINSAIkAcYABgEIGfNARgiDACxjEM9FEoAAZAEIQBJgm/sJIWwDtgFJAALAABgA8Sy2eRYDYAAEgARgCwyAJAAQMsZYBoR4IBuJyyRxmW0A8Sy2AUk8J2NAFiAEGAOAbUk8iwEwz2QQgBDPSRJXCAzCNmAbkAQgQNgIMJJt/iWSeB6SbAMYAAEYA0LcTxIgxLOYF0YAkgAMAgMgMJhnkWTMM5krDBIYDAKBAWNJxkIYACEBCABsgYUBCwwOsAgBCCzZ2DIYAxiBbbCTZ5LSpBBISBIgCYUkIVEEWMgYBIABScYCkG1AEs8kMIABJNkGwNxPANiWZJvnRwAGCRlzmW1AEpdJss39BIDAgIQtieciAMwVxkKAEGAMALYlARgAI8RlkgBJtgHbkmxLAmxzmW1JAAZhGxCyLYn7CRkjACFjxANJwjybAYQwkgDbkgDbgCSMsSQMAsAgZAHGAAYQAhAA5lkk2ZbE/WwjhIxlGQsBxgDGsixjrhDGQrxgkgCMJB5AFmAbYRuQBCAADGAbQBhLMsY8m8AIGUsCbAO2JfEAtgFJxpJ4FgFgnsk8i7EsQAiwzBVCyFgIsA0gMAgAg3g+BOaBJAG2AYxlIWPEczPGXCGezQAgAIxkm+ciAdjcT2DABpB4FgMIAcaI5yZsY4QAIcCYy2wDkvhXsg1I4n62AUk8J0mAbQBjzBXiuRjzAEK2AUm2eQBJ3E8SIIR4LrYlcT/bgCRAEmBbEg8gCbAN2AYk2ZYESLLNC2AbkMT9bHM/27wgBnE/lGkwl9mWxHOSxHOyzfMjCbDN8yUwV0gCjDHPZhCAJMA2L5gkwDb3kwTY5jkJcT/LGMA2IIkXQBJgm+fLGCOEeB4CAzaSENg8myTANs9LAJjnJTBgGxBCXCYALAEYAAFgAwLAXGGQwLxAkmxzmSTANveTZJsrBOYKSba5TJJtLhPiMmMMQohnM8iYF8y2JCEAgbnCmOckBCBs8wCSuJ9tnpNtSULGXGEQDyTJNgAIAZYBWVxmzAtlWxIvgBBgzGW2AUmSbGMQDyRkjA1YEggBGMs8gGyDQZIAMM8myTYASLLNZbYl8QCSAMyzCdsYwFiSEICwjUFcYVsSl8lCGAO2JXGZJIwxYFsSl0nCGPNcDOIK25Ik2eZ5SMIYcz9ZxgDimcyzCUASxljIMuY5GIQk2xjEFUJcIa6wDQhxhbDN/WwL8SwCAxgDCAAjBCAk2QYASdzPAAgDIDCIy2zbGAAbAyAAAYCxEJeZKywAIQQSAsk8B/EAtm1L4gohxP1sc5kk2xgwCGyQhBDifra5QggZZC4zYJ6DJNtcYSNJso2NJInLbPMAQgDCNs9JCDDmASRhAGOehyQus81lQsb8KwkZ8wCSuMy2bSEhy1xhEM9Lkm3uJ4SwzRUGELLMZUIA4grbtiUBkrifbWOMEFcIIQBh21gWIIkrxBW2eQEkYQBj7ifE/YxtI4QAIWMewFgIEOIKYZsHkIQBjLnMNs9DEiCJ52Kexdg2IMQDCUm2ecGEeF4C80zigWzzQEYSgABsc5ltIcSzCBnzryEJsM39BNiWuJ+4QoAxlwkZ8zyEAGOeH0m2uZ8kwDbPSRL3s83zIwmwzWWSbPMiMBYSMgaMhXgWg3gOBgFIwhjzPCTZBmwDkgBJgG3uJwmwDQC2AUk8D0k8J9tcZlsSL4BtQBIgyTb3kwRgEFVgAGzzr2Gb+0niX2Sem3kO4kUhiX+JbUASz0kIYVuSbduSAEmAbZ6TJMA2YBuQhAGEeB5CgG0AhEGAwDwnSYBtwDYgCSMJgUHY5n4GwDyTsQCDxLMZAPFAEjaAASMBSADmMgOSANu8YLa5nxDCtiTbPIAk20IIAPNMBgHmCgOWBBhzPyHANiAJQACYZ5EE2OZZBGAbsA1I4l8iCUAI2QaMMZIASTwvAWAQgG3ANiAJkATYBmwDknhOkgBjDIDAALYBSYBtAPFsBrCMMQDiAQQIAWALjMCSABCADSAAjJAxl0myzWW2AUASz0UAGCFjQAiDADBCloWMucy2JAzigWxLAjAABkAAkgAMgAEQgBDGGGMZI4nLJNkGbAOSAAyAARDPYgwIGQtxmbEQVwhZCCGEbcA2IInLhIwxCAyAQDwHAdgW4lmMMcK2EPcz5nkYSwIwAAZhI4ENCJBAAAbJIDDmshAAwjaXiWcySAbxfJhnMUiAbRD3k3gOQgiDeCbzLLYFxlxm/iUGIUAAmGeTMAhAkgEbSdxPALYlgXkAIa4wkgDbPCchwJjLbEsCMIBtSbYBSbYl8SzGWBJgDGAAScZCgG0A8WwGgUHYBiTZlsQVAmMsBBgjnpckQJJtrhDPYhsQMhYyRhgL8QCSeBaDuEKI52QsicuEeADLgBDPYp5NAJK4n5AxAsAACAAjicuEAAyAuEII82wCc4VtQJJtIUAIMJZkG5AE2OaFEAAGwAhZNhbCGANCtrnMNiAJkGSMATAA4jkYYyEAYxkQ4jkJIZ6XbQABSAIwgBBgDNgGJAGSbCSDbPPCSYDAEgYZhAEwgCSekyRjIcA295ME2OZ+kmzzAkjiBZNkm+fHtiTANveTxP1sA7YBhDEGkMSzmGcxBmQBQlwhMIBtQBIgiX8924Ak7mcbkMT9bAOSAEmAbUlcJon72QZsc5ltSbZ5/qgIzBWSeAFs85wkYQDEC2FbEv9xbPP82OYBJHGZMYBBCAGSbEviOUnifrZ5vgxCyBiQZJsHMAaMJfEC2AYASbYlGWMQGADxfEkCMM9iAASAJUBcJgEGbHE/yQBg85xs8ywGYZsXwgCSbPMAtgEhY8yzSOKZZAAk7mcuMwgQtnkexgAGAWCeg3kWSdzPNs+XwFxhm/tJ4gFsc5kQYBkQAmzzAJK4zDbPjyTbPIAQ4gpJtiXxnGxLEjJGABiEEIBBIDAAGIMkyTYYxAOJZzEGhLifJNuAJACwLYnLjAEMIGTMZcaSAGPuZyzJtiTAtpBtBAIjCbAtCYFBAEI8m0FcZlsSgBAyFkI8kwGEjCUZ25aEwCAADGAZIwkAhIy5n21JXCEwVwgZS+J+tnkWg7jCGHOFJC6TxAMYCwGIK2TZlsT9bHM/25KMAcRlNkI8iwBjwAaQBAZhIRAYicvEswmQeW62uUKABABIGADxQJIAIQDxXGxLAoElGWxL4jJZAMI2z8UgbHOZuJ8tsDEAAgO2JWwAgwABILBtSYAxBgFghHgWYRuDkIR5FttcZlsSIAkDCNkGANtCXCEwtiVxmSTbGMBYSJJtAGEbsC3E/WxzmRACYyzE/STZti0JsM0DCcyzSOJ+xkIYxAtkEM9BCBkbCwG2JfEAxgghnosQMuZ+tgEAgwAwkowBzHMxxgDGQlxhEM9kHkgSACAwGMtcZsxltgFJXCaJy2zzAJK4QgBCXCGEuEySbWOEEIAAhLjMGAAk2cYgACGMZUAIY8wDSMI8L9uAJABhGwAwCCEuEwIAIYyEDZhnEbZ5IAkbEAAChA0YwACAMc/JtpAxz48kwLZtQBIA2OYBJPEvkcS/km0AwAgZYx5Ikm2exQBCxohnsc39hLifbe4niReZJF4oSYBtXjDbXGYbkATYti2JB7ANAJjAXCEJkCSJF0qSJACBABCIKyRJAgDbvGCSAAQCgXgm81wkSeIy27YBQJIknockQJIkrhD/MQSAkCSJ52QMGPMsAiEJkCTJNg8gCRACMPczIIlnEYhnEeJFYQO2bSPx/Ni2bTDGYK4wts3zEBICANs8F4MxBmzb5gqBeA4CAQawsQWAbcDYmOclAMyzCAkBAAKBkMRltm1zmSRJXCZLEpfZts1lQpIQkmwDGMxzE1fYti2JF4Eknot5LpK4zLZtIQwgxBUCEBJCCAEIY66wbXM/WbIAQEISVxjMA9kGJHE/STw/xoCxsSTuZ9s295PE/YwRgJAkAJDEFeLZxP3EswgAgTDmCvFMBgMIAUKIZxJCQjyAkBDPQxLPYgDbtrlCSOIy27a5QgghEBgA8y8SEgKEuJ8Qz49tLhMgIQmEsITE/YwQkgEDINkYGyEhBAaDATCAQFhYWCAsAAOY+xkBMuKZDOaFEQ9gJJ6TEFeYBxISL5htDAYDYABkY8AGBMLcT5Jt7mfbGGNbCJAkBCAA25IkAYBtwDb3E0LI4n7GPJABJHGFeCZhDAC2JUkCEMY8F4MREgIQGNtCgCQAkGTbNpfZtg1gHkiSJK4wxgDmgYS4QiCeyUgCJCEAIdu2AdtCQjyLeUEkSeIy27a5zLZtwDaX2bbNA9g25jJjYwwgJAQgMJhnEgDimQQGMOb5kcRzsm0bsI1ACAEIAIFAICRxmZAQIEnI2JjnZBtAYDCY5yAeSBJgbBlAPIskSYAkIS6zbQwYCwlxhcEAmAeSJMQDSBIgnknigcyz2LbNczLmASRJ4vmxzfOQxH8qc4WQsTGXCWGEuJ+QECDEFQLxTAaDQNi2zfOQJInLJPH8SOJ+tm3zIpAkiedhG5DEZZIA2zyAbdsAoEyDDQJAEs/JNpfZlgQgMFcIIQCMMSAJsA1gEM+HwFwhiReZbR5AEmAbsC2JB5AE2Ob5kcT9bPMvsS0JAIQQgG3AWIh/iSTbPIAkjDGAQQgBxtxPEg9krjAGDALxbObZJGFzmXkeEjbPTQJj25IAQMgYg7hCCLCMuUKSbQAQMuYFEJdJtgEAG0Di+ZEE2AaMhXgASRhjQBIA2OZ5SOJ52AZsA5IkcYUBjDHPJCRxP9uAbUASIMm2bUlCxjwPSVxhAGMeQBJgG7AtCQAwiAeShAGMeQDbkngAGXOZEAIQtrlMFgIB2AYwCCFjLpME2OY52ZbEA9gGAElcJsk2DyBkzANI4gpzhTEgBNhGXCEJ80zCNgAI8SzCNgZxhSQMYIwBEIAk27YBhBDPQ4jLjLlMkm0eQAgwFjLmRWQQkmxjAEnGXGZbEg9gW5IkwICRuMI2AGAQkgAbMDYIQFwhiQcyCIO4wiDANpdJsg0AkgDAtsAASAJs87wE5lkkAba5TJJtDELImMskYZ7FmAewLUlg7mcjcZltSeJ+EmDbthDPIq4QMuYySbZtS+IBbAsBiCuEAMAY80zimYwkhG2D+BdIss0DGcSLzrYkrjCAsSRJGMCYyyTZti1JyJjnIYnLbPMAkrjMNs9DljGAACTxnGxzmSTbPIBtAJDE85BkG4O4wliIy4QABAawjRBCPJN5FmPbQgDigSTZBgAE5kUhicts8/wIIWwDGGNJPCchwBiQBNjGIK6QBAC2eQEk2eYBJNkGMELGAOI5CFmAMZdJsg0ASBgwgISNARDPRZJtXgBJtrlMkm0eQJJt/uNIAmzzAggBxgAG8VyEuJ8xL4CQMWBbEv8SSTyAbQCQZJv72QYkAZK4n23uJ4nnZJt/NcIGwDwHg3kg2zyLeTYBYJ6LECBJiGcxQkKYZzPPYts2/yaSAEmSAElcJkkSANi2zQtg2zaXSZIkSRKXSQKEhACMbcA25gpJkiRJ4jLbtrnMNoDBCAlhAAwGASAQz4/BABiMuEL8SyQkJK6wsQXiMonnJGEMSAIkSQKEAMwzCYQQ97PNZULcTxKX2dhgMFfYBmzbBswzSZIEABISDyQESJIEIDDPxTb3kyTEFQaDwWAwgCRAkiSexQAYWVwhns08X7YBSVwmCSGJ52UA2xjbtnkekrifsW0ukyQJQBgDtm2DjQHbXCYkMAYDmGcTzySeDwMIIRAPJEkSl0nifrZtcz/b3E8SVwhJxoBt2zyQATCY50MgMM9izLMIBIDACAGYZxOAEA9gm/sJAZIk8UACYcwDSOJ+krjCYISEeAEkSeIBbPOcjG1zP0k8D4EE5gFsm+dgLjMGbGMAY8DYYC4z2LZtY7CxAUASBsAAGAADICEk8QC2AdvGAEYSz48krhCAsSQAASAQVwhxP9sgwCAJ8XwZkJB4FnGFEPeThHgW24Ak29zPmPsJ8bzEFUI8XwbAYK6QJIn72ZYESJLEA0iSxANIksRltgHb3E9IEiAE2EYgnsU2IAmwzPNjmwewbRuwzQtijIWE+JfYlgRIkgRIAgDbtrlMEoAAhBBCQoAQAEgCEM8mAMvGPD+SuExICAFI4oGMkJCQEJfZtg0Atm0DtnlBDAbAXGEM2LYNAJIkcZmQJJ5F2LYN2OZ5SJLE/WxLksRlkngAYx5AEgLxLEKAJB7IBnOFLYSEBCCeRRIgiftJksT9bHM/25IkcT/b/JvYts2/kiQEAgEghIS4wmCeSSAkSeIBJEmShAAASYAkSVxm2zaX2bYN2OYBJEniMkmS+M8kiWcRAEKZBnM/STwn24BtSTwvgblCCEAAtrlMyBiwLYQQsox5XpIA27xgkmwDgCTANveTBNjmOUmyzQMJzAsixP2MuZ8QYMyzGAABIDD/AgNIAhAYY+4nABnzgkkCbHM/8WwGwLYkLhMA5jIbQALEZRLPZpsrDOKZhADAmCsE5gpJPIBtLpOEMea52Ejcz4AtQAIkcZltXgBJmCssCwGAbe5nWxIASAJscz9JtrlMkm2el0EIGfMAkgBjzPNhEAhAyDYPIAmwDWAQz2QQkgDbgLGQJNs8D0lcZhswYAuQuJ8k29gAEgACc5kkjDH3k2TbtiQhAIExFjLmX8O2JEm2uUwIQNgGANuShIy5wgBCCATmmcQVtjGIB5KEucIYwADGkrhMEgYwxiAk2eYBJAG2AduSJNnmMtuSJPEAtrlMiGcRtm1LkmQbACQBgG0uk2SbKwzigSTZ5gEkcZltXjgJGwBsA4AkgbmfAIR4LrZ5JoEBg7hCEpfZlsRltnkggwAk8Zxs8wC2JUnCAMY8kEEIGdsGQBJXCBnzgkjYPBcjhACMAcC2JB7ANpdJ4jIhY56HbUlCAALzLMbYSDwPSbZ5AElcZpsHkGQbG0kSANi2zWWSuEzIGMAAiBedJNvGQjyAbS6TBEjCGNuWxAMIGWMQCMyzCAHGXCaJy2zzXAyAEAIQtrlMCEDYxiCEEIBt7ieEuMI2AGAkIWwDGABxhSQus41BPJNBSLJtDAjxL5Fk27YQQghhm8uMMYAkhBAGQDyQbcA2IInnRxJg2xgQ4n5CxjyAkLGxECDEFcI2BgGSAGzzHAwChMAgAAHY5jlJwiAA2xhjSTwnSbZtS+JFIMk2/0q2JfECSAIwAMI2gEEIIYwxgCTb3E8SYJvnJAmwzQPYBiTxQkniMtu8AJK4n21AEvezzf0kcT/b3E8Sl9kGgAAkEM9kbHOFeRZJgCRJPJB5NoF4LsbczxgwFpIkSRIvAtu2ucw2LxrbtrmfJC4TkoR5FkmSuEIgnoNAAAgE4pkMRkggJIQBbNvmMkmSEIjnTwAIAASAJUniRSchAUjczzYPIBD3s7F5HjaAbdvYtgEAgQCEJEnCPF+2eRbzbAIJEJfZ3E8gAATimWwDtm1zmW3bAIB5FiGek23bgG1eANs8gCRJkgDAtm0EgJDE8yUQkrjCYBDPYpv7SZLEAwlASAghxAMIcZkkQBLPjyRAIAAEAiRJtrmfQDwP8UC2AUkAAoEBhHhOkiTxAEJCQkJcJgmwDWAwzyKJZzFXGNsGAMQzCWNjALANGNvmMkmSMM/F2BiwzbMIYx5IvChs25bEc7LNAwkAYRtAXCEJQAKDeU6SeE6SAEk8J0k8gLFtc5kkiQcQSAIBSADi2QwgS8gYDAaDASQADFgISWD+ZQLxorAN2Oa5GMAYMOYBxBU2NsYYCwnx/Jnnx5gHsM39JEkCJPEAkhDPyzaXGSMABDKXyYC4TJIk7mdbkiTuZ5vLJEnifsYCJAE295PEAwgBGIyxMZfZts1lkiRJksQDSAIAIduYZ5HEcxGAkG3bACAJASAAzDMZDAbzTOL5EhLiCmMbwDyLMeKZBGDM8xLPzTyTucLY2LZtwDbPImQJYa6wDQgJAZIASZK4wmCEAElcJgkBIABJkgAhnsVgnsm8ILYxtm1zmSQh7ieEAYyNAWMM5gpJCECI52IABADmmQSSJAkAYTCXycLigWzb5oHMMwnANs/JNiCJ5yGJ+0kCJAGSuEySJB5AkiRAkiQus43AYISEuMy2bcA2gEA8mwAQAOYK25IkAYjnJUkSDyBJEiBJEvezbZvLbNvmOUniMtu2bdvm+ZHEv4ltngnZ5nnY5vmRBNjmWQTmgSQBxpjnYgwIcZkkwDb3k2SbF5kkwDb3kwTY5gWTBNjmfpJ4LgbAICxjrpAE2OZZDIAQMgZsS+IySTyLeT6EMeZ+AnOZJNs8kI0kCbDN/SRxhW0ewEYSAOZ52EhcJgmwzbPYABIgyTYPJDBXSAJsc4UBEJIwYBDiMmPMs0myzQNIAmxzmW1AEs9kkMCAQSAwD2SbZxFCkgDbgG1JAGBbEg8gZAxgLAshMM9LiGcRtrlMyNhYiMtsSxLifpYxtiVJwgDGXCEwGIQkHsA2z0OSbR5Akm0eQDaSBeYKSYAx5nlJ4grzTMI2AEiyzQNIso1BSLJtW5Ik21wmZMxlkmxzhQGMJQGAkDGXSQJs8/xI4grzTMI2L4AQzyJsc4VBSAJs85xsA4AkSZgrLGOukAQYyzIGMIgrhIy5TBIPYJsHkGSb5yHJNs/DtiQewLYkgXkm20IIQJJtAJAEALa5nwDJNldI2ADGWBKXSeIy24AQwjaXCXGZZSHbgBDCNi+AkDGX2eYyIQBxhW1JAIBBPJAk21wmZIxBCBkby+JZxBW2JfECSOIy2xiEJNu2JXGZJNtcJmSMQYhnMs9kW5IkDNiAQYDAACDJtm1JPJNBXCbJNg8gyTbmmYSxLABxhSQewDaXSeIy24BtnpMkLpPEZbZ5AEm2ucxYiMtsSwKEuJ8xVwgMBiHJNoAR4jLLPA9JmGcx5gqDkGSb50cIYZvnIYnLbAMYIWNjSQjMFUIIwDbPSQhhm+ckxBXCNoAxlgQIAcbcTwgw5gGMMZIASbYBAIEBMMaAEOKBJBljAAzimQxCyJj7CZBs85xsBAhAEvezzXOSxP1s868nifvZ5gEk2eYySVxmm3+JEMI2YFsSz0mSbR5AyBiDACRxhQEQtrmfJJ6TbR5Akm2eh21JvGgkAbYBSTwn29xPEvezzQtE2Fxh2zYPYNsYgxES4gGEhIQk8VyMkCQukyQJEMLY5gEkAZIk2eZ+kiTxPCQBkiTxAkiSxGWSJPE8JPFA5vkQAOa5SJLEZcbGgDEGIwmQJAkMBvNMBvNABvMA5gEkAUgAgMQLYQPiASQACYnnYbDNA0hCAsRzsA3Yts1lQpJ4XgaQJAQgDMYAgHkOApDE85AkCZAkiWcTYC4TAOaFEOJ52AZsA7Zt2+YKIQlAAMa2jXkggwEwzyYAScaAEPeTBCCezQCSuEIYcz9ZQojnYgwgJPGcJPEAtrmfQIAEgJBASGCwkCQeQJIkHkg8kwAkGXM/SZKMAQRgDCCukARIMuYBJHGZsbEkQEjINuYFkSQJkMSzCAABCAEIQBIPJBAIhDFg2zbiWSRJ4jLbtrlMEoB5DuI5GECWLABzhQFzPwNgnock24Cxbe4nyTaX2eaBhG3uZ8wzmcuMuZ8QWEIgAeZZDDbmMiMBkoS5zBiwbZvnJARgnsUY8XxJ4n6SJPEAkiQBkrjMmBdE2LbNZZIASQgAkAXIAgAhY2MuExICJPE8JAGSeE5CmAeSxLMYAHOFAQTCALa5zBgMyICEhLmfAZBk2wbA2LYN2JaEuEISV4hnEeIyISGEMc9FALZ5EUjiCvNsQhL3s415JiPEFQLxTAYDYIQkCWGexZgrDOa52EYACMQzGUAI80CSJPEAkngRGANCAEZIiBdAkiTEc5EkiWcxQkKAEAbzHMyzGcyzCEkCJPFARkgIEBIChIQQgCQAA2AAWUKYK4wFAmxsAJvnw8b8SyQBmCuEhCRJ4gEkSeIySZJ4oWzbBmxzP9s8gG3btm1zmSSeRTyLJO5n2zZgm8ts2waMZQkBQgBg2xgBCPEAtnkBJPGcJEkCJPEAtm3bts1lkiQBknjRSOIy29xPkiSeG8pMLpPE/WzzQEYS9zPmASQBtrlCYB5IyJj72ZbEA0gCbPM8JPGcbPOvIQmwDdiWxANIAmzz/AgBxtxPEvezDdjmMiEAcYUk7meb58sgHkjC5gpJPIvN/cwLZSOJB5AA29xPkm0AG0BCwuYySdgGwFiIF0oSYBuwLUnImMsk8ZwM2LxQkrjMNpdJss0DGAvxPIyFeAAhY64wgLEkXihjIQTGtiQeQMgYg7hCEmAbwCAQmOdgEC+cEPezDAhxhXkmYZvLJNnmBZCEDQBItrlMCEBcYdu2JEkYwJjnIcRlxrYl8QDGQjyAJC6zzWW2JUniMtu2hQDEMxnEFZIA24BtSUJcZswLJQkAbNuWJMk2L4AQgLjCtm0hxHMzCCEAYZvLJGGexZhnEpjLJHGZbR5AEpfZxjyTkAQYY2xL4jJJtm1LAgAMgMCAAYMkLpOxuEKSbR7AtiSBeSZJXGYbjAUgnoOQxf2MuUIIGQsBGIxlAJAEALZ5AWxLAgDbkngASbaNASFAkm0AEDLGIIS4zJjnJISwzQPYliRkzANIwjyLMS+IAYwlIckAxra5TBIAYIMAhCTbtiXxvMxlRuIyIS4z5jJjWTwX8XxJ4lkMYAzYRmCeRZIk2zwPSbZ5IIMQMuYKIQswxjyTeCaDeCAhLjO2LUnImAcSQoBt20KIZzOI5yAwV0iyDQCSbPNcjJAxgHguQgjbXCbJNpdJsm1bEkIIsA0IITCAMeaZhCTbxrJ4LuJFYhDPZBCAEOIK27YlAUIYYwDxbDYgCTD3E5jnIon72eYySbZ5ASTZti0JkMRzss39JHE/21xmWxL3sy0JkGSb50cSz8k2AEiyDdiWxAOZZxNCxtxPEmCb+0nifrZ5fiTx/NjmRSAJsM1lkrifbe4nCbDN/STxnGxzhcAAYZvnIQkBIADEczO2bQO2AUmSJGEA27a5zJgHkMRzsm2bF8w2z8m2bS6TJInLbNsGbPM8JPFvYDD/ImMEIEkSz8tgMBgAA2CukCQJJAEC8XxJPIAkSVxm2zaADQCWLPH8SAKQkATYPJDEFZZtLpMkCRDCYJ6XJMCYZzMA5llsXjS2eU6SJHGZECBJEkISlwkBQkIYWcY8J0mAJEkISVxm27axbSEewDaXSZJkDBjb5nmJZxIISVxmbJsHsG0bAISEuEIgAMwzmecgAEm2AWxsbGwukyQJ21wm2QYwmAeyDUjifrYxxsaAMQ9gDAC2eSBjm8skSQIA24Bt25K4n22ek7FtBCBJEs/FXGEMGBvznGzzALa5n23A2DaXSZIEAJhnsc39hIQASTyLucI2DySMjXkAAQiQuJ95AEncTwgAEOL5k2QbAAEIIUAIhLBknk1gjG0MGHOZbcA2V4jnJQBxmRDPRTybeGEMBrDNC2AbsM0DCdvcTxL3EwIk8SwGwFxhjEAI8SwCgXgm82wC8yy2bQO2Ec8kJEniMtu2eRZhzBU2AgFIAkC2uZ+xMWAuk7CxBSAkBAghEAKDAWMewBgwNuYBbNvmBTA25goDIDCIB7LN82ObBxBCXCEJgXg28yxCQgDCtm0AkIRAIABJGNtCQjyLeRZJiGczgJAQz2KexTb3sw0Ato25TIj7GQPGxhgMgJGEkMQD2AYkAZhnEgACg0AISeJ+tgEhY+5nbGzbNg9kMEJCkiQBiGcTGAyAeRZJPIsQEsIAtm1zhY3NFRJIAnGFJEk8P7a5zLYxl9m2DdgGJPGvJEkSIInnZBuwLUkSDyQQgDEPIAmQxP0kcT/bthGIZzHm30SSJEAS/xJJACBJEpfZtg3Yts0LJol/iW2el1C2RDxfkgDMMwkMYAzYBiTxryHJNoAAMC8KSdzPNs9JEpfZBmxzmSRAEmCb52RbEi+EkAXYBhCAJO5nG8AgHkgSYJsXjW1JPA9JPD+2eS4SNmDAFpdJ4jIJsM39JHGFzWXm2SRhGwDbkrhMEoABjDHGkrhMyBiDeCBJgG2ei40EAnOZJNtcJonnYZtnEpjLJGGuMOYBhDDGXGYsxBUCkIQBjHlRGIQk2zyAbUmSuMI8BwFgjHketgGEkCTbGMQVkgBjzDMZxBWSsA2AbYHAEg8gCTBgc5ltIQAhicts25bEFQbxTAYwliRkjAGMuUySJNsYxBWSANu8YELGXCZkjDEgBJKwDQIjMJfJQgDGPIBtLhMCEAjMCyeJK4yxEFcI2zyAJMA2YFuSEGDMc5KEAYx5EUiyzQOZZxLPwSAkAQZsDEISNoABDAaJK4TAxlgAQsjYNgBI4oFsJB7IBgkhELYxCEAIYQzI4goBYIy5TMgYACQBgG0M4oFsS+IySba5zLYkSbYBAIOQxGW2bQsBiCuEjAFAyJgrBOYK25K4wjyTuMK2JB5AEgDYti0EICTZtg2AJCRhA+Y52JbEZcZCPIsNIPEAQsYYsEEIkAQYY55JXCFkzGW2JXGZbUkIWVwhbGMAYwRGElcYxAsiybZtSVwmZMxlQgDCNuaZhBCAsA0AtiXxAELGAAZACBlzPyHAmMsk2TaWJYRA2MYghIy5TJJtAEBgnsk8kwAwxjyAEIB4XrYlcZltSYAQVwjbXCFkAcY8D9uSuMwYA0gSMrYtiQeQZJvLJNnmfkKAMc+PEGDMcxL3E1iAMc+PEGBsWxL3sy2JF0oSz8k295PEc7LN87ANSAIk8bwMYMwDCBnzAELGPIsBEFdIsg3YlsT9bEsCJHE/29xPEmCbF40k7mcbsC2JF0oSz8k2z48knotBBCAki8ts2+Z5CQCBeF62bXOZJEmSJPEAkiTxLEaWJB5AkiRJkvjXkwRI4nlIAiRJ4jJJPCdJQpIAhBAvCgEgEM/Ltm0ukyQJxGWSuJ9tLrNtmxdKkiQeQCAJEADmMpt/kWQeQJKEDWBjSwIkJHGFQAAIwDb3EwIwV0iSeF4CAZIAzANI4n42D2Sb+wkEIACb+wkJYTCAsTFgbAwYc5mQEAawjblCkiRAEs9LALZ5TpK4n7Flnh8hIUlcZts2lwkBtgFj2zyQAWzbBmwDAAbAxhaXSeL5sQHbtkHGiGexDQC2AdsIQEiIyyRxP2NjLpPEZUJcIRDPS0gIg3kWWYAAEAIEYAADCAMIJB5IIABJPIAQIEkI8yySJPFAAsBgrpAEYK6QBACYF0hIksTzZZ6TDYBtLpMkyTZg2zbPyTaXCcnimcyzCABzPyPAYC4TMtg8ixAPJADEM9kABjAAxgbAXGEAgcEAtgHAGPPcDICQxHMSkoR5JvFAkgBJkgBJgDFXGEAI8yySjI0BQAjAPJvBPJBt7ickieckyTZg2zZgm/tJ4jIhLpO4zIAxV9jY3E8S9xPCBgSAQAAGbNvmWYR5bkKIB5KEkCQJQOJ+kgDMsxkAYQxgnoOwbRsAJElCICRxmSTbtgHbGABjG8AAiCuEAAQgSRIgybZtY2PAmMuMjTG2hQAE4oEkAYAQYAxghBBXSOJ+krifJISQJC4z5gURAGDM/WwDtjG2AQyAwQCYZzMIhJAQBvMskrifEFcYY4wQz8m2JCEhQBLimQTiBRKI+4nnIi4zgAGMjW3b5oGMEA8gCZAkiftJkiSJF0ASz8sYA0KSeE6SANuAba4wGGNjrjCAbduAMVcYjCyMkBCXGRtzmSQewDaX2eaFksQD2LbNZbZt8yKQxPNj2zYPYNs2DyBJEs/LYB4AOQ1gjAFjQBIgCbDNC2YsxPMjCWPMZZIwxrxgkrifbe4niRfMNveTZJsXQBJgm+dHkm0uk2SbBzKIBxLiWcSzGcCYK2wkQBLPYgPmRSXJNv8JJGEDAJJtrrCRAEASYBskARhjnpeQMZcJAcgg29xPEjaXGQBjIS4TAhCAbZ4fcYUAYwCDeCYDGAsh/mUGcYUkHsC2bUlCxsZCkmzbliTJtm1JXCYEWMZgEC+QeQ7iORiEJIwxYJsHkCSBMc8mAJBs8yKQZJsHsC0JACTZxiBeFELGXCYEGAO2JXGZkDEAYABJxlwmyxiMJAnbBiEBAjDG3E8IQNjmeUiyzQsgCTDGPJPAYBAPZCzEFQJzhSQAgwBs25YkZIwBjCWBwLYBQAhAvCC2JfEAshBXWJYBzP0kbGwAgQGQAAAjMJYEMsYAxgIkQJJtABAYbHOZJJ5JAsuyMIhnEs9kAGMAkGSbB5BkmwcygLEkHkASgDHmMtuSeAAhADDmeUiyjUE8k0FcIcm2bUncTwgwBgAhY9uSuMy2JB7AtiQhY56DQQCADRgk8TwMAnGZDQLMZeIFETIGACEAMOYBJNnmCoF5LkII28ZCXGEQkmwDtgFJQohnMgjANg8gy9hYCEA8kBDPw5gHMs9BPJNBSOIy24AQwjYAYJ5JXCFkzGWSbHOZJAxgzLOYK4wl8bwM4grbknjBhABjXgSSbHOZJNs8gJAxBvEiEUKAbR7AtiRAiGcRz2IABAbZIGPbgBDiWYQAYy6TZJvLJNnmMkm2edFIAmxzP0mAbR5Akm1eMEkABjDGGEsCEJgrhLjMmPvZBiTxQAZAvHCSANv860nifrZ50UgCbEviMts8P5J4TrYRYS4TL5xtYwxGSIjLhABJkrjMtm3ANiDEFQbAYJ7NXCFJEi8C27Z5wSRJksRltm3zAJJ4TpIk2eZ+trmfkBCAsW2bKwQCMOa5GQQCkHge5gEkJBCIZ5IkHsA2gI2Njc1lAgE2NpdJkgRI4gEkSZIkieciISHZBmzbRgIkSQIDIJ6HJB5ISAKEeABJSIAkAIkrbGyQMQbzvGzb5jKBAIN5IGPbAOZZjAFAkiRAEs9LAJIkAba5zDYghDHGCAG2AUmAbS6zDWCeyQDGtjEABjA2xmCEhAAhAHOFkBBCCANgMA8kCQAh8VwkQBIPIEkSDyRJss3zI0mSbQDxIjIGMJjnYhvAAEK8QBYgiSsEAoG4QjyTwTyTQSAk8Zwk8cKZZzOAsW2ek20MICQJQDyTAGxzhTHGGBvzAglzhSRJgCSekySeyWDAsswz2TwnA+aZzBUSYARgASCMucIIwEiAJJ4fSQCyAAwYGyOeTTwXSTyQucI2gHkW27YBQBLPyTYCgxECEADiuUgCJHGFeF6SuEwSl0mSxBUCIQRgHkiSbe5nm8uMeW6yDQYjDIDNc7GNDZjLJC4TAgkJ8QBCgBAPYIxAXGHbNmBbIABkJEnigcQVQlwmhBDCPBdjnot5JoEQQgBCCACDuUIIwDybwQgBCISQJC4zNuZZBGCbBxLPZp7Ftm3AmPvZ5n62ucJgbNvmfkIAIEmSJEkA4lkkcZkkIZ6XQDyQJElcZts2l0kCJAEIYx5IIIQQV0iSxGW2uZ9t2wAGACRJ4jLbPDeDATD3EwDCSAhAkhAgBCAQDyQJkAQI8QC2ucy2bR7Atm3btnmRSeJ+kiRxmW3bPBcBICQBkoQQiOdlbBtAGHM/28YIQJIkACFJEi+AbdtcJonnJEkSLwJJkngASZJ4AEn8G6HM5IUQGMA2IIQQMuYFsy2J5yQEGPMsBnGFJJ6TbZ4fSTwn29xPEpfZ5oWSxAPY5rkYBCAJY8xltoUQQgACsM0LJgDMswmBuUICsHkWCbDNAxiwJQHYBkkAILANIHGZJMCAzfMhMJcJ8Uw2gG0kcZkksBEgMGADQgACY8zzZRAIzBUC80ySsA2AbUlcYRDPwSCeg0EIAcaAbUlcJmQMGANCkngA2zyAbUlcJonLbPNABvFCGGMkCQHG/IsMQojLjG1LEjLGIK4QMjYW4gEkAYBtLpNkm8sk2bYtSRJX2Fwh2QYADEKSbS4TAixjHsi2JEm2uUySbQBAYK4QAhC2eQBZCIRt20JcZixJCAyYZxLimYwEGGOuEAIQtrlMkm3bkrhMkm3bkiTZ5jJJXGab52Gb5yFJEpfZ5jJJgG1eMCFjbK6QhIxtS5LEA9gGAEmY+xmEAGzA2IAl8Uy2BSCEwGBbkng2S9g8gGxLXCYEIGxzmW1JkrjMWIABAQjbPIAk27YlcZkk27Yl8Txsc5kkLpPEA9jmMmMhIQDxQLZtS5LEZba5zLYkSba5TBKX2bYtiSuEEGAbADCIK4SMeSCDuELI2LYkSbZ5IIO4wjbPQxLPxQAIIWPbkngBJGEAY64wCEm2sZEAIYRt7icEGPMAQgDCNgDYlsQDCSFjIe5nG8BcIWSZy4SMAcxzE5K4wgDGgG1AkiTbPJAQ4n62bUsSAowB25J4ACFj25IAIcDYNoAQ4gEk2eZfSRIPYJvLJHGZbQADICTZBgBJXGGeSRhjAFmIZzHGGAOSeE5C3M8YwBhLAoS4QmDA5tkEIARgmysMQgjxLLZ5AEnGmOfLtiReMEmAbduSAEmAbWMhQBLPyTZgG5AESAJs80BCFvcz5l9LYK6QxGW2bUviAWwDgCRAEmCb+0kCbHM/SYBtQBLPyTb3k8T9bAOSuJ9tnh9JgG3uJ4QI21wmSZIkSTyLeQ4CMAYwGAzGtm3uJ8m2bdu2uUIgJCEAIUkAAvHvIUkSD2Cb+0mSJEkSL4BtnosBhIQAhJAkQBKAeV62bfO8JCQeSCBASFxmnpskSVxmG1sSV0iAbe4nCcDmAcQzSeIBJCQBSFxhY7AxkgBJkgAsAGwMBkAAgAGEhLjMtm1j2wgAA2Bj22DzLBIASOJ+xrYBQEgISYjLbNtGAAjEFZIASZIQkgAhIZ6HJEmSuJ9tHsA2z0W8cEKSeC4CASCuEJLEFQJAIIwBIYwxxtg2ABgDQoCQEA9gm/vZ5n62AUk8i839bAMYjCQhMAIQAgCBJC6zbVsSYJsHkMRzEgIQzyYeyDaXGQPGkgAEknle5nkJBMI2z8M2DyCJyyTxnCQBgCRJvABC3M82LwoBCAGY+0lg/iXiWYwBxP0MAAbx3CQE5jlJXCYbACEBAgQ2gDEGsCXxALYBMAACAYhnsW2bB7BtDNgGJNnGXCGJ50cSBoPBYCRJAmQBlhGYZzOAEGDMA9jmMtuSuMw295Nk2zaAATBX2DYGACFACEAgHkgIwDxfQoCQECDxPGTbNg9gbAwYA0K2uZ9t21wmifsJcYUQwgBIGAyAkYR4JgMIycJgAGMEIEkSIInnYgAhDOZ5CQFCgBCAwRgbc5mxMWCbKwTiudiWJIlnMc9FEmCMEAIk2bYNIIQAjBBXCAQgCcBcIUmSEPezbZsHsG2bB7BtG7DNA0hCCPH8CGGexTbPxWAAjDEPZJ6LJElCQgBgDMiSBQhxhUAg7icQiGczl0mSBCAAY56HbduAbcyzSJIkSRIgicsk8UJJ4jkJ8e8gSYgrDAYAbNvmMkmIF0SSEPezzf0k8QC2+S8kiedHEv8ylJlcITD/KkKAMfeTZBuwLYkHEphnMwhAEmCb/yEEBsBIAhCAMebZDAKQBNjmMtuSAATmCkmAbV4wITAAGABJgG3AtiSukLABbACJywTm+ZAE2AZsSxKXSYANGIN4IElgI7AMiMuMAVkWYEAWwjIGwACIZxKYZzMA4nlJso15JiEJAxhzPxuEQBJgG7AtiRdOYJ6XbUlcJmQM2AYkSbLNA9iWxGW2JUmyzWVCAMYyl0myzQNIsm1bEs/LIF4QIWMAkGSby2xL4nnYliTJNg8kYQOAEGAZ80wGIQQgbNsGkASSbNuWJInnYZsHkGSby4QAY8C2EFcIQAgwgG1LkoR5DsI2l0myzWW2JfEC2JYEAJIA2zwnSQBg27YkXgAhY9uSuEySbQCQxBUGMMYAEs9iBOZ5CAEI21wmBCBsA4Ak27a5TCCwxDMZBALbliTJNpcJzDOJZ7J5FkmWhQDb3E8SNhLPybZtSbwAkmwDtgFJkgDANs+PJAwCY8wVBvGC2JYEAELGXGEQV0gCANs8gG1JkrjMNgYwliTJNgYhiSsMYMxlQsY8B4MAQMiYF8gYgyQkbADzbOIK20IA4vkwCCFjDOKBhIx5ICMJMOaFM4gHEuIyYy4TMjYWEjLGIJ7JAMZCPBfxvGxzmSRACGEbg3ggIWNeKCEAMOYySVxmm8tsS+KFkmSb52FbCPEvExgAAyCeySAAIYRtnh8hBAYw5gEkGWMADAIQAmwDiBdCCABjDIgrJAG2jYV4AEm2ecEkcT/b3E8S97PN/SQBtnnRSAJsc5ltSYAkwDb3kwTYBoQAYx5ACAHY5jlJ4n62AduS+HeQBNjmfpK4n21eMEmAbS6TZBuQBNjmfpK4n20usy0JkAQEIEkSBrBtm8uEhIQASZJ4AEmIB5LE/SQBkiRJkoQBMBjM82XbNs9DkiQus22bB7BtmxfAtm0AkCSJy2zbtm2byyRJEkIACMCYK8xzEA8kSRIgicuEJAGSuEySJC6zsQ3Y5gqBBADiuUkCJEkCkABJADZXSJIAATY2z0OAzXMwgACEBCAAzDOJ5yXAXCGeSQAIBIBAAAgEEggBkoXBXCFJkm2eRTyTMOYBJMTzYZvLjG3zvAxg2zYPIAkQErKNsQ1I4jJJAGDbNmBs27YkLpPEFQZjjLnCNmDbNgDYBgDbxrYBQEgIASAkAYBt21xmjLnCNmDbNmCbB7BtWxJgG7Btm8sEkkAgAIEBbGwDmCtscz8BgM3zsM1ltgHbtgHAPIBAXCHE82eMJK4QD2TMc7JtG7DNZZIkcZlt24Btnodt2zyAbUASl0kCJPFA4grbvCAGsI0Bg3kmgQAh7mcbwFxhmwcS/wJJ3M9gAMxzMmDuZ/NMksQDiPuJZzMGY140kgBJXGGezTyTQEjiBRFX2Da2zRXiCtsABrANAMaSACEEBgPY5gWzzWVCkrifbQAB2OYKgXgWY0mSAMC2jW3bgDEPIAQCAQIhQFxmC/GchIQABAAICXGZbcDYGDDmMtu2AUAS4grbxpjnS0gIgzE2xgBCQgiEEM/FGGNkAcYAwjZXCGPuJwQICXGZsTGX2eZZDAbAAAhZQhgMYCxJEpfZts1lkhDPQSAkcT9JkgBJPIBt21wmCQCMJUniOUlCPF+2bdu2DWCuMDa2bcxlsmQBmCts2+YySUJcIRAAAgAkARjAtjEvlG3btm1zhUCAkADMcxHiOdmWJEmSJB5AkiT+TSRJ4gEkAZIk8TwkSQIk8UDimQSAeSaBeA4C8UC2bfOC2eYySZJ4AEmSeAEkSeI5SeJ52LbNfyjbPIsB5DSXGXOZbUmAkDEGIWTM/YQQtgFAEmCby2xLAiQBGMAYwCAeSAgw5j+HbS6TBEgCbHM/24AknocQYMxltiUBkmxzmSTANs9JCLCMuUIIYRuwzWWSuEyAAGFzhQTY5n6SeCAbMM8kCcAGDNgGSZJs8yw2gISEDRgDQpIwV1gAAsA2gEFIwhgDQjwXgXmBBOYKY+4nCfN8CMA2YFuSJNtcJmTMA9gW4jJjSZJs25YkZAwYCwEIjG1JkmxjEA8kxGXGPA9jIUmYK4wBjDEgictsSwIASba5wiCuEOJZhG0eyDyLZSEusy2JK2wkXgQSmGcSINuAbUkAIAQgbPNCSQKMMc9LYMAgJAG2AdtCPBdxhW1JkmwDgJAxl9mWxL+SbUmSAMA2DyAJAGzbliSJB7DNi0yIy4wBQDyAhUDYti2JKwwCgbEtSZJtXigBgGQbgxAy5gFsS0LCti1JYMA8kwCEAGOQeAABYABjIQRgm8sk2eYBJGEAY9tcJokHkMRltrlCCHE/29zPNiBJkm3bACCJy2xLEkIAGIxlnodtSZJs8wBCXGbMFQLzvCTZxiCukGQb80zimQTmCkm2MQhJ2BgDGEkS5vkQtrlMCEDYBgDbQlwmZBkAbEuSZJsHsC0EIK6wLUkIAIx5IIN4DgYhybaxLC4zloTAXGGbyyRxmRCXGWMAY0m8ALIQz8WYB5Bk2zYgCZDEZbYxCEnGmOciyTaXSbIN2AYkAZIADAIAbPM8JNnmhROY58MAQpZ5fiQBtrmfEOKBbPNAQhZgDACSbGMAxHORwAKMbUsChABjDOIFkWQbgwAkAbYBQJJt7ieJ+9m2LQlAYJ7FWAiQBNjmOUkCbPOchBDPZowBBCAE2OYyIcuYfxXbkgBJPD+2eX4k8Zxscz9JgG1eMEk8P7Z5oWwDkgAEBgibKyRJAiRxmTFXGNvcTxLCNs+PbZ4vg0EAkiQBQlwmSRLPIq6QJIkHkCSJB5AkicskAZIk8ZxsA7YBSYAkQBJgm+clEFfY5gEkAZJ4HkJCXGEADAbAPJAkQCAAMAASlxkbQDyTANs8i8RzMiAhAUiSANs8kIQEYAO2MUJcIQNgAMwDiWcSz8vYGEA8k8FgMFcYWwYQQkIAgHkWywgA8UCSuEySkJBtzAMJcT9JgG1ACAMIAUIAgAEkAbYBBCBJEgLxvISEuEwIwDwXY0AS95MESJIEIJ5JPJvBXGGb52RszDOJy2xLAgTiMpvLJEkAEkhIPJB5APEsEiBJEoAAIwECbGyeSTwX8yySJAECDAYJxHMy5jJjY8S/yLZtwDYASJIESOIy27a5TJIkLpPEv8Q2L4AkHkhI4gURCAAJALCxwRgEYBtAPJt4Fkm8YJIk8dwEAgGSeCbblgCweR7GPBcDxvyrSOIBbHOFeRbbgG1jwBjAPJvBYDAYSbwAknhOkgBjnockIQCwzWW2JUniCmMbg3km8SyyhDAYwFhIEgYD2BaSxANIEgIASTyAMQgJAAHGPJAAEADiCmMukyQJQACAECAkBCAA2zwnSTyAbQBjmysEIEkSgHgg28aAbUDI2NgYADCSJAGSeAAhHkgYcz9JPItACCGeSTyTkCTE/WwDkiQBknggAdjGALaNbdsGbEsCJPGvJ4nLjCUhEAgE4jkIAPEskiQBCMAYg7lCEs+XwQAYAPMcBCBJiMuEAIQxgEAAkiRxPxsEApDEA8jifpIkAYBt24BtIcTzZZsXTBJXGMC2bduYF0SSJJ6HkBCAATC2jXnBjDHPIglAAJIk8QCSJAGSeE62eQEkSQIk8SKQxHOSxL+PbUASIEkIAJQtEYAkwDbPyzyTACTZ5gEkAbZ5XkIWYBtAAJIA2wAG8UCSeE62uZ8kwDZgWxIgicts86KRxGW2eQEkAbZ5fiTZ5n62JQGSMFcYc4UBEM9LErZ5bpIA29xPEmCb5yQJsC3JNs+XjSTJNpcJDNhIACAJAIN4ANvcTxKAAYy5nxBgGfNMBiFkDACSAGPMCyIJMMYIAQjbPC+DuEKSba4wiOclBFjG2JYkZMxlQsYAIMT9jAEMQsgYg3ggIe5nGfOCSLLNZZJsYxBCAAZAGPMAQsa2AQSAuUII8SwCAwYhyTaXSeIy21whYWMjIWFzhY0kMM9Bkm1swCBJYJ5JEsYYsC2JB7KRhABjIWMAg7jCWAgAJNnmAWxL4jLbkngAScYA5grbkrhMEpfZti2JB5BkmxdAEvezzf1sS5IEYIwxCCFjLpNkm8sk2cYgBAYM4pkM4grbkgDAtiQeQJJtHkCSbWwkLhMCI3GZbS4zFpJkGwAk2eaBhCzuZ4xBPBchhDEgBGCeSdgGAAQGg3hBhABjIQQA2OZ+kgDbgG1AEg9gW5Ik27YlcZkkjLEQ4grbPIAk2zyQeSYhiSsMBgEY25YkxGXGGMSzGWNJ3E8SgAGMeQAhYx7IIBCYZxFCAIBtnoeQMQbxQJJs25bEAwgZ80AGIck2D2BbEpfZ5jJJXGZbEg8gCQMY25YEAJJs8wJI4goDGPO8BOYKSba5TJJtXgS2hQDAWBIgifvZBmwDkgBJPCfbtiUBkgAMYMzzkIR5DsI2l0myDQAYxLNI4lnMczCWAUk8J9s8kEEIIQDMMwkAY2wbkAQgMFdIsg1gJHGZMS+YEIAAbPP8SAJs84IYwFgSIAljzGWSbHOZJNtcIWQBxgCAEMIgMAjANpfZlsRzkgQYYwBJtnketiUBkrifbQCQZJsHkGSbfw1J3M82LzJJgG2eH0mAbQAIYx5AkiQeQEgSD2Cb+0mSxBUCkCSJZzEvnLFtY9s8kMFgXjjbgG2ehyRJ3E8SLwIhAAFgMAACEMJgrrAN2LZtmwcSAEKSJABhbJvLJEniWSQus22bF4Ft2zyAJJ6TJElcIQEGJECAjY0EIEnimcRzMM/BYATiOQgEBrBtGwEY81wMYNs2L4h5IElcZtu2bdsIQJIkQBJXCECSJO4nhEBgACEMIAQIYWQBQgDmuRljjLFtLpMkiecini9Jtrmfba4wD2Qbc4WQkG3M8xICMJj7SQghZJvnZJtnsQEkABvAxhbIGMDGtnkAg0GADQgQSBgAgwFscz/bSNxPiAcQ4gEkSQIkcZlt24grbAsBkiQBQsaAbWOMbUmAJElcZpvLbAO2ucw2z48kSTwP27Z5IPFM5pmEJB7ABkAAIO4nJARgjI0lcYUBbPNMkgRI4nkYbPNMRuJ+knhOkrifJJ5FAAgA8cKIK4SMeS4CkCTEswhJPIt4JoORBWAADIB5QWzzAJK4n5BtY8A2QhIvgCSeH2NjwDbPl8DY5gGEhADAGLBtm+chJMTzsA3YNuaBDAbAPJBt21wmCQEgbNvmMklcJsm2bS4TAoQASZIABGCby2wDtnkASTyAbe4nCUA8mxHiMkncz7ZtLpMkCbDNAxnAGLBtG8A8i21JAAKQJIkrDIB5LrYBBAIQ4t9KEs/LYJ6Lba4wGADzLLYlSQIQACBJEpcZG/NcxLOZ52Xbtm1jwJgrBIAAMABGCLANYCQBkngWYYxAPJAkSTyQQFwhJIkHkCSJF0pIEiDEswgEIIkHsC1JElcIxLOZZzLPxTYvhLnCtiRJkiRxmW1eKNsAYNs2YJsXQJIkALBtmxeBbdu2bXOZJEm8UJIA24BtY2UmDyAJsM0VQhZgzPMjifvZ5jJJgG0uE+J5CduAbSEAQACSAGMAA0jifrZ5TrYlAZJsA7Yl8QCSANuAbUmSbAOAJO5nm/tJ4lmMMcZYEvezLYkHkGSbyyQBtgHbkngASYBtHsC2BEjCBjDGSBICjHl+JAG2uZ8kAJtnkQDbADaSAAGyzQsgiefHNmBbkiSMMZcZYyRxmW1JvFC2JQlxP2Oek21JgDFGkiTbACDJNpcJAYgrbPO8DELIGPMchBBgzLMYBGCMkSSJ52Sb+0niAWzzvMyzSLKNeBZJGNsAAjAW4oHMM4krhIx5HpJs25YkMM8kybZtSQLAPIttJPEAtoUECCTMFcY8J9tcJkmIZxGYZxK2MQhJtrlMkm3bXCaJB5CEeSZhjAFsSwIASYBtnpNtSbwAtiXxIpDEFQZzhWWel8DYlsQDCHGZMQ8gZMxltiVJ4jLbPJCEDQAYhBBggQ0AQsYYxBWSbPM8hIy5TMgYg5Bkm8uEuMxYCAHYxiAAIcQVtjGIB5IEALYxiOdlWxJCCLDNA9iWJMm2bUm8IALzQJK4zDYA2JYkybZtSTwPIWMeyCCEeBZh21gWgLhCkm2uMIgrbEviMmMhHkDI2LYQIAlAALZ5HpJsc5ltSZIAwLZtSQAgZIxBSMIAxsZCPJABjCVJsg3YBiTxAJK4zDb/ImMsSciYKwTmCiFj2wAgiQcyCCEEYJsHsC2JB5BkmwcQMsYgAEmAbf6DCBlzPyHAGIO4wrYkQBJgm8skcYV5JmGbBxDiMmMeQJJtY4wkwFgIEAKMuZ8QYMxzkgTY5jLbCCGekyTANg8gCbCNEAJs2wYkcZkkwLZtSVxmWxJCCGPM/SQBtvmXSAJsGwsBknggY8zzsC2JF0ASANjmOUnifrZ5ASTZ5vmRBNjmP5ok7mebBzDGACHE8xKI5yaEJPEvsQ1IAoS4zDLi2cwVQoCQECDE87BtmxfMNmAbACTxgkkCbPOvYQwY85wkAZIkISTZ5vmRxItAEgiwAWxjhDDPJBCSJPEvMM8kEIgHkgAkkG2ek23bvAgkARhASAgQAmwDtgHbxrZ5AYQwAOaBbBsDtiVxmZAkwJgHkAQI8QC2AQxGSIhnMcaAsTFgjAAQCEmSAAABAEKS+NewzXMxmAeyzf0kScIAQkJcJsT9jI15FnOFMc+Pba6wAQGSJNs8i4QkJAkAAbZ5XhII82wCAUjiAYQwzyQQAAJA2OYyIWPuZ8z9hABJkgAE5oGEeABJknihJEnifpK4n23uZ5vLJEniedg25goBGNvmfpK4n20ukyQJcYUkHkhI4vkwzyIkCSNAIBAWz2SuMIAQAvNcbAPGPA9jWdxPEiAEYJ4/g3kgISEMYBsAbPMC2AZsc4V5IWwDkmzb5jJJPJC5wjaX2eYBbHOZbQDxQLZt83wJjG2uEFcIcZkQIIn72eZ+xoAxYBtzhSSEEIB5ISRJ4n62JUnifrZ5HkIA5grbXGFk2bbNZUKSACHANs9DEoB4viRJ4jLbxtxPCGOMwQCYZzEGJPEAQkKY58s2YJv7SUJcIYn7SUIAiBdEkiReAEmAJEk8gCSuEJIQQkI8i7Bt2zbPSRKAeD4MANi2DRgjEABg2zZgGxCSxGVCGMxzMJgrJPGC2QYwtrlMEiAJsM39JEniWcyzSAJs85wk2QZsc4V5UUiSxGW2bfOchHgggwEQCECSJC6zjTAGbNvmOdkGAEmSeE62uUySJC6zbZvLJAGSAEmSeB6SuJ8kSTyAJEk8gCRJkiTxIrNt2xgAELJtjLlCEs+Pba4QGMBYCACEELZ5ICHLmMskAbYBIcAYwACI5yIEWAaEANtcZhuQxGW2JfGvZ1sSIIn72eZfxSCuEDLmASTZ5jkIDACSANs8HwLAGMQVQoBlzBUSNldI4jnZAAhAPJtt7idkzPNlEIAkwDb3EwKMeU5CAMI2z5dBPF+2hQCEEMIYY5v7SeL5sS2Jy4SMMQhJXGaby4QAhG2uMIAxlwkhnkUSYBswFpJkm8sk2ebfxLYkIWMAwDyTEDIGAAyAADCAkLExAAgJGQMIBAaDkGSbBzKXGYkXQIjLjDGIKyTZ5gqDeCaDkIR5JmGbBzIIIWMeQIjLjAHAtiQhYx5AEg9kjLmfkDEPIAmwDdiWJMk2DyCJB7Btm8sk8QCSbHOZJNtcJgQYAxjEA0nCGPMsBnGFJNtcJsm2bUlCAMI2l0nYPJAQgIwFGGMAAZIx9xOAAGMeyCCusC0JADCAEAIw5oHMFZK4nzEviAGMuUwSQgiwbSyEwLxwtiXxIpBkm8uEjG1zmSQewDaXSeIBJNnmMtuSeEEM4oFsCwEISbZ5LuaBjIUAhJAxl8myzP2EAMuAEPezzYtMkm0M4gpJtjFXGAOShIwxzySuMBYCAEkYwJgHMggEgAFsS+J5GcQVQsa2JfE8JGGexZjnYVsSVwhZgDGXSeIBbNuWxAPYlsQD2JYkybZtSYAk7meb+0kCbPNABnGFbUlcZlsSDyBkzAMZhJAxYBuQxAsgyTYPZBCAEMbYWBIPJIR4TrZ5IIMAJAG2ucy2JEASYBuQxP1s85wkAba5zDaXSQIAScaYKyQBtrmfJMA2YBuQxPMjCcAAxgghDAKwzQPYBgBJgCTbPD+SeADbXCbJNi+YJMA295ME2OYySbZ5TpIA2zyAJNu8YJK4n23AtiSejbARzySJf5F5JmMMYACMJEk8izHmuQjEFbJk8bzMC2GbK4xt25J4TpIkSQIkSeJ52OY52QYkSeIFEBLCYDAYAANgbGOukCTJNveTJAkMgBBgsCRJPIAkCWEQAkAgAATmASTxLDYPYK6wsXkggRASso25QpIkBAJAAEI8kMFcIUkSDyQQtnleApCEwdi2zXMyRgAIAPNcbNvmAWzbBmxzmTGAeCBJPIsAJHGZsTGXCQEYzPMSAgBJkiTZBmzb5jJJkgDAtm0ukyQJAGzblgQgJPEAQkLGXGEeSEjImPsJcZkQAsAACCFAEgBgMCDAYADb5oEM5gpjDAJASAIk8YKY5yAASTyLucLYGMBcYQzYti2EAYQQCECI5yKeg5DEv0QSL4Bt7ieJyyQhJBnzvMzzkiQJQDwXIQDzvGxzhXk2AUgyDyRxP4srzP2EAXGFeBYhnskYQIjnJIR4XrYBY2NeAElCXGEADGDMv0QSz0mSJC6zDdjmfpKEAEASD2BbEiAJAUjiMtvczzbPSRLiCkkIQJJt2zxfwjb3sw0YGwO2eQAh7ickxAPI4lmMsRCAeCbxvCRJAgDbtnkA27a5TBLPSRJXCGNjrjDGGMDYGABsY66QxLMYwNgYAwjJwgC2eUHEFUIARgiDEQIQzyYABOKZDEZICJAEAJKEuMJgANs8J0k8gG3ANvezzWW2AUm8EOKBbNvGPIttHkASD2SMAcAYsG0MGPMAtm1zmSRJXCYESJLEFQYQEgIQgBDPxbxAAgEghIR4ANs8DyHMcxDPJBAARpIkQBKX2bYN2Mb8q9i2zWWSJPEs5tkMgHgmgZAkCZDEc5LEZbZt27YN2Ob5sS0JkCSJy2zb5gEkcZkknpNtHkCSJC6TJIn72eYBJEnihZIESJIEIJSZkgDbvFC2JfG8DAJAYF4QSdzPNoBBPJvAABgAAUgCMAjbvFC2JQGSANs8J9uSeAEkcT/bvABCgDEvlCTbgG1AEpdJAjCAAcxlQsY8DyEA8UzGmPtJ4pkMgGxzP0nczzbPlwFbCHGZeCbzfNiWJAQgANs8J0kAYJvLJGEAYwzigSTZ5gWwLYnnIck2/0qSMM9ijAEQz2YAy0KSANuAbUk8D9uAJEASBjAGjDGSJGEAY9uAJEASBjDmMiFjDGAsScjYthACEDLmgQyAACTZxiCEEIBt20IA4grbXCZJkm0uEwLAIK4QtgFAkm2ehyTMFcY8F/NcjCUJcZkxD2QQ/wKBuUISBjDmhZJkmxeBJNtcITAPZFuSEGDMc5KEeSaDQNjGIJ6XkDEGEEIgMFcYA7YlScJcYQBjAMuyJPEsAjBgYxDPwSAk2eYySRiMMYB4INuSuJ8QAgMYc5kk27YlCRnz/AghbGMQgBBXiAeyzf1sA5Ik8Txs8wCSuMw2D2BbEs+PJMA2AEiyzQNIso1BXGEsxAsiMBjEAwkBGMtcJmSMeQ5CCEA8kwEQAAYw5goDGEuSZJvLbEuSZJt/E2NZPIuQhHkWY9uSAACDEDK2jRACJNnGIJ6XkDEGAQghAMA2VwhZgLFtIQDxQJIwz2LMZZJsc4XA/GsZCyGEAGNAiGcxgDEGcYWxEA8gyTbPyzyLsSSek21AEgAIWcY8F0m2uZ8QAgMY8zwk2eY5SeJ+tvmXCAGWAVmAMSDEc7IMCAG2uZ9tQBKX2QYk8TwkAbZ5ANuSAEm2uUwSz8k2gAAwVwhZxjwXSbYB25J4HpIA29xPEmCby2wDkvg3kcT9bAOAbUk8J0m8YLa5nyQAgwheMNu2ucw295MkCZAEIJ7JPIskSbxwApAkCSEkJMTzZSTxLAIhSRKX2eZFYJvLJEniedjmOUmSxBXGNiCEkMT9hISEJEmyDdjmMts8LxsDYAAhALBtmysE4pnMswkEGAyAQPxr2LYNGDC2eQDb2Da2eQBJAAJxhSRJPA/bPIsBbGMQz2aukARI4nlIAiRJ4nmJ5yaukAQAtm1zhQEwmAcSEgIAY2MhnodtnpNtHshcIQQISQIwgG3MczAABiMkZAwYG0sCjAHAmPsJAUJcZmwMALa5wgAYYy4zRjwXCQAsiedmAGGbB5DEZZK4TBKAeCaDMTbmBZDEcxEIQAjAGBvzQMY2lwlJAiRhAIwQ4lkkSeI5SeIy27YB29xPEiDJNvcTksRltm0jnkVIiAcyz2SusA0gnpuQxAOJ52AAzP2MABDPYozFA4n7GQDbBvM8JIGQeA62zfMjiWcRD2TMA0jiWQTi+RMABsAAGAxGkhDPxTyQMSBJEvezzQsliRfKtiSeRQBCCAxgG3OFJJ6LAIQkYQDbtgFjHkASAkA8kwAwtgHMMwkEgHkmA2AeyLYkSQACsM3zsG2b5yFJSJIkQAgAhLjCPBdJPIsAjAFJQoAkQEgS5tkMBjAWQjyTeD7MMxkhrjCYKyRxP2MAgZDEAxlJ/EskSeIy2xgAA2AwGAzmgWQBQkKAEJdJkiSJ5yRJEoB4FiEewLZtHkASAgPYxhjbBmxL4lnEswgJ8QCSuJ9t27wAto0xGCEAgRAS4nkI8SwG82wGgxGSxAPYBmxzmW1eKCFJgCQus82/krGQJACwbRuwzWWSAEmSeMEk8QC2AUmAJEm8AJIk8SKwzf0kSeIBbNvmAWzzAqFMSwC2eU62JfE8JHE/2zw/kgDb/EskAbZ50QgZcz9JtgHbkgBAEmCb52RbEpdJsg0AtiVxmSSeH9uAbSEAASCEMMa8aCQBtgGMMSAkCTAGbAOSAEmAba4wAOIKSTwnGzAGIQQY85wk2eaBDBgBEgAGsA0gCRAy5gqBeSaBeeGEjDGI5yUJAGzzPGxL4jJJ3M8295PE/WxL4gpjDGAQgCTbmGcRMkY8i20hBCDJNgDYlsQLYFsSl8lCIGzbliRkjEFcYVuSEJcZc4XA2JbEA9jmMkkAIAQYA7Yl8TxkWQYA25J4EUgCjAEhjDH3k8T9bPP8CBkDAOZZjIUk2bYsxBUGIck2lwkZ25YEALYl8QBCxrxQkrjMNg8gyTaX2ZbEZZK4zDYA2JYkBCBs8wCSMM9izGVCxhiEEGAZg0E8kBBgWRZgzAMZBAgMABI2D2RbAAIQgMA8k8BgWwAgSbLNZeKZzDMJzDPZliTJNg8gyTYASLKNQUiyzfOQZBsAhIy5TIjLjDGIF8YAiAcSQgC2eU6SANu8UJJ4ANvcTxIPYCwLMOYy25KEeBbxLMayANvGgBACIQsw5jJJtgEA80xCyJgHEphnMogrhIx5ASTZti1Jkm0usy2J5yGJy2xzmRCXGXM/IcCYB7AtSZJtDEKSbS4TMrYtBADGkrhMCEA8kG0uk4QBjG0LAYgrJNnmfkII2zw/knhOtnkASVxmm+dHEmCbyyTZxjyTuMJYSAgwBiTZ5n6SANtcYRAPZFsSl9mWxAPY5gEkAZIADGAMCHGFsM1lkmzzALYl8QCSbHOZbSGEEMIYA2AQgCQA80wC8yzGgBBgGSMJsM2/hhBgzAtgWxIgCbDNswgAc4VtSYAkwDZgG5DEC2BbEveTBNjmBZME2Ob5kcTzY5vnYVsSIIn72QYkAba5nySeL4MIXjBJgCTuJ0kSLzJJkrjMtm3btrlMkiQewLZtXhCDMQaMbQO2uUwSIEkSz0kSAEgCJEmyDdi2DdjmRWNsbBvAYAAMxrZtLpMkCZDEC2AMCPEiMs9knh8DAgEgi+chSRLPIoSEABAIQEICQDwnISEhzLOZ50tISEjIGEA8FyFJXGab52TbNmCbF5EBjLmfJABxhW3A2BiBsMxzEgKEhGwDtm1LAiRJ4gohifvZBjAIwDYghLGNQTyLEOYKY57FAJK4n23b3M8YADAABiOJ5yQkZIyxbVsSz0mSJC6zbZvnZZ5NIJ6XbduAba4QkgAhLjM2FuIBjAHbCMCY5ySJ+0kCEJIAIdsYY9s8D0mSuJ8knpMknpMkLrPNZbYlYZ5NPAeDeC6SjHkWgRASAjDPIsRlQghjAGMbsM1lAkkgSTYPIJ5FBgNgMBjMs4nLxGUSIC6zAQwYAEniAYyFAMwVxtzPWIj7SZLEZbZ5Hsbcz5grzHMwAOIK28YA4grbxjyLeSBJkngA2zwn27YB2zyLeSaBwGCuMAYQgCQhAIExxgDGGABjzHMSAoRkIRDPYluSJAABAELcz7ZtAHOFbWMukwRIQggJYTAAIIkHsC1JEiDJNgAY27YN2OYyIUAIQCCel5AQl9nmMttCCCHMsxgDkoyNjQHbtgFjxLPY5rkIBCDJ2JjLJPFcxLPYts1lkiTxAti2DdjmMkmSuMy2bZ4f2wDCGMAAxlxmbBsD2JbEc5IkCUA8kG0eQBIGA2BsIxCI52VszBUC8UCSeB6SeE62JUkCJCEABIABbBvzQAJAAAgAgXj+jCReRALxTAZj2zYPYJsXTEgIAGzzL7Ft2zbPybZtXgBJPD+SuEySJACQBAC2bfM8bNvmfpL4j4GcRgC2eQDbkgBJgG1eNMZCACAJsM0LJgmwDdiWxAtnjAFJvACSeE62uZ8kwDZgG5DEfzRJXGaby4yFeAFkAcaAsRACEAKMeSBjWUiSbZ6XARAvhCTbXGEABCAJMGDzryTJNg9kEA8kyTaXSQJsA4BtQJIk29zPNiBJkm0ewLYkSba5TBKX2eZ5CBkDxhghBMayEADYFhKyzGW2JfEAkjDPJGxzhUE8HwZAAJJs8yKQZBuDeCDbQgDiedmWJMk2BvG8bEsCAEm2ucIgrpAE2AaEAMSzGAsZY14QSRjAmAcygDEPIAkAbEviMtuSJNm2LUkS5lmMucIgEBgM4nlJss1lkrjMNgBIAmxLsg3Y5jIhIctcJsk2l0myzRUGIQkAbHOZEGAMYABjSZJsYxBCAMK2bUk8gCRsALCEbVuSJNvYgMCIZzISAGBzhSQuk2xzhQ0ILPEAkmxzhSQD2AYQQsYYBCCEsczzsC2JKwwCgcEgEBgM4nlJsm0bQMgCEC+cJB7Atm0ukyTJNs9JEmAbkMQDGcuALMCYyyTZ5gpzhSTAMkYSYBuDuEKIKwRg27YkBOY5GMQVtrlMEs9DEgDY5jIhYx5IYJ5FEmAbwDyLMSCJF84gEBgMQpJt20IA4gohAGEbg3gO5lmMJSEwzyKJ+9kGAEm2eR6SbBsLAUII2zyAJNs8kBACbNsGJAGAJMA297MNSOKFMpbF8zCWxGWSuMIAxjyAJNsAYFsS/1pCFvcz5n5CXCFsc5kk2zyQQVwhZMyzCAyAAYwlAZIA2zwvIQswBgCELMAYQAjxojCAMQDYFkK8ELYlAZIA24BtSVwmCbDNZbYl8QC2AUlcZhuQxPMjiedkm3+JJMA2IAmwDdgGJAGSbPM8JHE/24BtSYAk2zyQwABhnkmSJACwzfNj27axbS6TJInLbNvG2OYBhHgWIYkXQBLPSZIkSZK4zBiQxH8O27Z5HpIkcT9JPIAkSTyLuMI2YNs2xjaXSZKEQABCPIsQAmQJAZhnEpIAhBBgG8BgrjC2bWzMZZIkcZlt21xmG8Bgnh8jnkWIB5AkiQcSkgAhSZK4zNg2AEiSZJvLJPEAtgFJXCYJkARIkgTY5jlJAmzznGwDtm0bG2MwgBAgBBhjjIW4nxBgDBjblsRzMc9BXCFJiBdASAhAAJJ4AEmSeBaBARAAQhL3M0YAkiRxmW3bkgBj7idJEpfZNgZscz9JgBCAeSAhLrPMczIGEM8iieciACFAEpcZGyMQVwhhAAxgG7AtCbDN8yUQzySEhIQADGAM2OZ+knihJPGcJAEIzBXGPA/bPBfxbAbAGBtzmTFXmOclSRKAhHm+bB5IvDACAIn72eYyg3gWA4AkAPEsQoAQIIvnYgDbxjwPIR5ICAnxAJIkcZkkHsgYG3OZJK4wtm1zmSSehyTuZ1sSz5dA2MY8mwAwz2QwgG1JkgDEi0ISgHggSTxfwjbGmOckiWcRxpgHMpYkiWcxkhAIBAAIAUJCPIAxD2QAwNgYAwjJAhCAbUASVxgMYIwAhBAYzLMJISFACMD8i2xLAiRJ4n62ASEMBsBIAhAISdzPtm0A8yySJAGSJPEAtm3zohECEEKSuMwYsG0bsM0DGQwASAIkSQIkAYAkrhCSAEmSeL4MAkAgnj8jCUAAQoAsWVxmbIyxLQRIkoQBMFcI8bwMgHkmg0A8m3kuxjyAbcDYNg9gDEiSBEgyts1lkgBJkgDANs+PJECSJC6TJAmQxGWSJAGSJPEvkSSJF4Ft27Zt868hCQBs2+YFsw3YBgDbtgHMZSgzuUwSYJvnJAmwDdiWxANIAmwDtiUBGAQgCbDNZUKAMWAbkMRzkmQbwCAkAbYBwBgQ4oWSBNjmfpJsc5kkwDaX2ZbE/WxzmSQeQBLPyTZgWxIvmDFGCPF8CFnGmGcTgJAxBiEEIADbPD9CxjwPSYBtwLYkXihJGGPuJwQYcz8hnouwzfOwLYkHkARgjHkBJPEAtrlMkm0ewLYkXhQGEEIAxlxmWwgBIDAYxBW2hRDPYlsSVxjEFULGXCEwV0iyjUEIGXOZEJcZ8wCSeBYDYCwDCCHbtiXxvAxgLIkHkMRltnmhhIwxCEmAMSCEAYy5TAgw5n5CAMI2LwoDWBbiX8sgrpBkG4MQ4jJj25J4AEm2eR6SANuAJMA2z8UAxpIQGNuSuMw2gBDiASTZxiBeIPNM4gURAgOAeR42krhCxlwmMGAjCcxzsC2Jy2QQSLZ5AElcZhvAPDeBkAUY2xYCEM9ByOKBDAJhmwcQAhC2eQDbkrhMEpfZ5gEkcZltXjBJgG3uJ4nnZJvLJGEAYwzieRkLAULcz5gXQBKX2eZ5CBnzgkni+bHNA0iybVsSDyDJNpfJQgDGxrIQGGNJAGBbiMuMhQBJgDHPlzGWxAMIARgEAgMYAxhjSVxmWxIPJDAYAAFI4jLbGMQVtiXxryEEGPMAkrjMNmAbkMSLyDybuMJYFoAQMuYKg7hCEuZZjLmfJO5nm+chZGwsCyGEuMI29xMCjAFAkjEGwCCEjAHbgBCAEEIAtnkWAyCukGTbWBb3sywEIGRhEIAxBgEgMA8kCYMAbHM/SdzPNs9JEvezzfOQZJvnRxJgm8skAbZ5HrYBSTwnSYBtQBL3s82/RBL3s83zIwmwDdiWxGWSANvczzYgiQewDUgCgLDNi0wSIInnRxIghHg+jLExYBsAbHOZJEmSeBbxXGxjhHhOkiRxP0k8D9s8J0mSAEk8P7a5TJIkXjDbAGDbNg9gGyMECAkhJPEsxhgwNjY25jJjAAEgEFcICWEwV0iSBAjxQkniOUmSxLMIDIDBPB8C8RwEwjZgbJsHkMTzY8z9JEnifpJ4ANtcJon7SeIySYAkSVxm2zaXSZLEczGAEJcJAUJCGAAhxGVCAAYwNuZZDMKYy4wxVwhJQgCYK4SMAQwGwABCvFDGGABjG0AAQkIYDIB5FttcJkkSgHk2AUgCAGPb3E8IIcQDGcA25jkYDIB5FklcZts297PNZUJCPIAkSbwAkiTxLAbAXGHMFeYKY0ASAEgCJNnmX0kSAjA2lsQD2AZsAwiMbcA2z0OSJJ5FCAlxmbFtHsC2ba4QSDyTAUASV0hcIQFIPIsNCMwz2QZscz/xbJJ4JgM2D2TM/Yx5FoEAEM9kMAAgScgyz2KeRRLPYv5FkjDPJF4I29xPEv8mxlxhnkWSJC6zjXn+zAPZtg3Y5oEMRojnIhD/MmMbI0kSLzpjzHMxgBD3k8T9hHgAISEM5oGMAduAbduAMYAAMAjEFcY8gCSeixGSBGAAY55FyBLCCPEAtrmfsTEGI8RzkiSJ+9nmBZAkSZIknpd5FmNj7ifEZULcz7Yxl0niMmMMRgiQJInnYdvYtm3AGBACMADm+RCIZ7GNAWwbA8Y8gLExYAxgJEniWQSAAWwDQjyQsQ1gAMSziWcygG3bPIv495MkifvZlgRIksQLIAmwzXOybZsHkMS/RBKXSZLEv4Yknh9JgCRJPIBt21xm2zb3kwTYBgBlSwQgifvZ5n6SANvcTxLPYgBjrhBCmGcSgG3AthDi+RICLGNeRLYBSVwmCbDNc7ItiQeQBNjm+bEtiQeQBNjm30eI+xkDtiXxAkiyzWVCAAKwDWAAy0I8D0m2uUwIMOb5kcQDmSuMuZ8QzyIADGAMSAJsA7YBSTyLQUiyzWWSANvcTxIPYBsAJPEAtgFAkm0eQBKX2eYBJHGFucI2VwhJtm0LIQAhAINA2OYyIWPbgCSexQDGQlxmWUgSgEFgnsUYsC3EswhJtm1LksRltgEAAxhL4gEkYWwjrhAyBjAAQhLGWMiY5yTJtm1JPIAsy1wmictsY55JSMLYRjyTQUjiMts8gG1JXCYJgzFGPIskHsA2z8sAkox5IIMQ4jJj25Ik8QC2bUuSZJvLJAHGGCEEYJvnYSwEAMZCPC+DeF5CPIsAbAsBxlxhEJJs8wCSbAOADAKJy2xjI4nLJNtcJhuJyyxhc4WNxHMwCAAk2eYySbYBwFiIy4wxgCQewLYkIWMeQBKX2cY8k7hCkm2uMAghY14ASba5TJJt7icJsG2byyQBgCQewDYASLLN87AtiSvMM4krJNnmMtuSEBgMQpJtDEKSba4wiAeyLUkIQGCMhRAviG0eQBKAQQC2bUviASTZti2Jy2xLAoQQtjGAkLGxJCFjLhMy5gojCTAGMMaShIxtS+IBbEtCyMIgAARgG8AYS5Jkm+dHCDDmfkI8kLHMZULGAGBbEpfZFgIQQjyLuMI2z8O2JJ6TJMA2lwkZc5mQMZfZlsQDyLLMAxgLcT8hwBiDeC6SANu2AUmAbUk8iwEQzySEeE62eQEk2eYK80wCEOJ+xhiEkDEG8XwZC3GZEAAgbPNABkAACCHANi+YJMA2l0myzfOQZJvnJAmwzf0kAbZ5EdiWBEji+bHNA0iyzWWSANuAJACwDUgCbHM/SdzPNpfZlgRI4n62eR62JQGSbAMYABGAQIh/ByEAIQQgAMRzMQYACUlICJAQAGCei23bXCZJEpfZ5jLb/EtsA4AkSTwPSZK4TBIgSRIgiQewbdu2bS6TJInnJAQgnk08LyGMLFlCQjwnSbwAxsY8J9tcZpvnS0jiuRgAAxgDCCHEcxCIZxKIF4m4QhJXGMyzCGEwV9jm+bHN/WxzP0mSeL4E5pnEcxCAbQAw5oHEMwlAkjHPSUgIABCWjY2FAAyAABAAAvEsxoAxArANSOJ+tgHbtgFjwDaXSZKEARAAQhICASAQzyLE/Wzb5jLbgCSexWAAzAPZ5n6ShLhMkhAAIJ7FmMsk8QCSJGGuEMJgnpdtnpcBhHggg0E8izEG8Vxs8wCSeAFsAxjbPJDBYDBCACAEIJ5JCPEAQkIY2zxf4pkECEDifpJsA9gYBIjnYvNcbJ5FEiBxP/FstkG2AcC2JEASz2TbmBfONveTJIkXwBiwbRuwLQkBIABjSQCAeTbzr2UbAGzzAJIASdzPNs9iEBiMbZ7FXGFbkiSexQAIwLYQAGAQCCEEBjAGbHOZMQJjDCD+RbZtA7YBxLNIsm0bACRxmSTbgG2eRWAAhBDPYmwLAQgAgXhexgDGGCMEAJIkAZIADIB4ICEhQAiwLSSEwQCAJElcIRDPQSAAxAMJCQGSuJ8kY2PAGPFMBoORJAkAbNu2zQtihLjMMg8gSRIgCYMRAoQQGMyzCNm2zRUCASBsG9u2zXOSJInLJHGZECAkhMEAmAcyBhCI5yAQkgBJCADxTOYKYwCQBQgBAMK2bS6TJInLhABJkrhCAJIkcYUBJAGIF8K2bZ4f2zw/tiVJ4nlIAgBJPIBt2zwPSZIASbwIbNsGbHM/27YBwDbPQxIvmG1eBJIASdxPEiAJAOQ02DyTJMA2/wYC88IYBCDuJ2yeL0m2AduSAEm2eU62JQGSANs8D9uSAElcYYy5nyTANveTBNjmBbAtCZBkGwAk2eYySTwn24AshDH3EzIGhCxjbEsCEEIYY0ASYJtnMYAx9xNCCBlzmRDPIgDb3E8Sz8k2VwhZgDH3k2QbAIQABGAbsA1IAiTZ5nlI4lmMMZdJAmwDtiVxmSTbvACSuJ9t7ieJy2xzmRBgG/FAxkJcJgljzP2EAIRtAIMAJGGMAdtCXCEASTw/xpjnJck2l0myzQtgW5KQMZcJAQjbACAJc4WxEABYxlxhWxIA2JYkyTZXGMBYkiTbPJBBCPEswrZtSUIAAgMY8wCSANsABpBkzAMIAcYABiHJNgYhZIxBSMI8izFXGMQVkgDbvGCSeADbXGZbCEBIso1BCBnbliTJNpdJwmAsc4VBXCEE2EZcIYkHsI1BPJAkwDYvhM0VEpfZliQAkLDNswnMc7KRAAAJm+dlEJJsAxjLsgDEC2JbEpdJss3zkIQBjDEIQBJgm8sk2eYBbEviMtuSeAFsS+IySbZ5HrYl8QLYliRkbFsSz0OSbduSeE6SAAzG2JjLJPFAQgiwzQsgybZtSbxgtgFJPIBtSTwPSRjAGIO4QhYC8RzMMwnbthFCgJAxl0myzWW2JQFC3M8yIAsw5oUTsgBjrjCSAMsYIe5njEFIsm0shMBcYVsSIAljzGVCAMI2z0OSbZ6HJB7ANs+PEAIDGGMQkmzznCQBtgEAg3gWSYBtLhMy5gGEAMAYg3gukjAIAPMsxjyQkMUDGQRgjAEQQgjbgG1JPIvAPIskAPMsxjwnIQQGMOYKgxAy5jLbkgBJgG0ewLYkLrMtiX8T25J4TpIA27zIbEvifrYlAbYBSQAgCbANAJJ4HrYB25K4TBJgG5DEc7LN/SQBGMAYCMA8N0kAIIkHkCSJF8QAGAwGc4UkSQACCwuDATAPJEkS95MESOIy29xPkiRAEi+AJEmAJF4EkiTxAkiSBEgCJHGZbe5nm+dlnoMAEAhAkjGXGWOusA1gAMQDSUIAQjwvASAkIRAIhLExgHlu5vkzCMQD2QYwmH+RJC6zbZsHMoAxL4BtLrPN8yNJEi+UbQCDATCIK4QwGCFAkiQA8UwG8yySAATmmcQVQgDi+TPPQTwHIck297PN/SRJQkjiMiGMbcwzCYQxDySukMUVQkgSl0nieUjiMmNjSQDm+TAA5gpjQAjzQLYxV0iSxPMjxBUG8xyEEAAghIx5IAEgjLnMNgAgJPECGNvmeRgDtm0DAEIIc4UQACAAYwDzHAyAATDPzbwwNoDNc5IEALZt80ACBAIA25K4QuJZbJ4f8WySxDPZ5pkkxP2EuEwWlwkBkrifbcA2YJvLbEviuYhnM89FEoDASOJ+tgHbgG2eH0mSAEm2eU62uZ9t7ieJ5yUAYwABIB5IEpdJsg3Yxjw3AQjxfJkHss39bNsGbAOSeAFs2+Z52OZ+kiRxP9sIxAMJIQCMsTGXGRsjrpAkBEhCCAGSuJ9tAIMBAMuIZxKAJElcZts2z8U8kwEwz2YADOaZzBW2ASEAI0kSIIkrDIABMLYBDIB5JnGFbUmAJEnczzbPw7ZtAJAkBGAQCCEEgHkOAnGFJASAeCYhiQcytoWEuMLY5lmEbcC2bR7AGINAPJMBbNsGMAgAgTC2zLMIBIB4Fkk8kBHi+TIABnOFJCHEsxkMBhACJEkChHgWIySJy2wDxoBtnh9JkrjMtm3btgFAkiRAEpdJksQDSAIkSeJ52LbN/STxnGxzP9s8P7Z5ASQBkiTxryUQAEKZyQsgCbDNv4pBPDchhLnCGBAA5tkkcT/bvGCSANuAbUlcJonnZJv7SeJ+tnnBJAG2AduSuEwSYJsXzLYkSTwX82ziCttcZiwEABjEFUIAArDN/YQAY14wSTwnY8wDSbINAJIA29xPEmCMeV5CAAIwxlxhWxKAELIN2EYISbINIDCAbUmSANv8S2xLkgTY5jnZliTJNs9ihBDPYowBEIAk2wCAwNgWAhBXSLLNAwnMFbKMjSXxAkgCMMZcJsk2ABgLSbLNA0iyzRUGcYVtSZJsc5ltSTyAkDHPw7YkSbZ5AEm2eQEk2eYyIS4zBgDbQgDigWxL4jJJgG3AthACkGQbADAISRiMZQCQhQCMuUJgHsi2JACQBGAQgG0eyADGkiTZ5nkZhBCAwADGPA/bkiTZxjyTEDLGIB7ItiSeh21JAvMcJGyeyUbiAWxzmRBXCEAStkFgGzBIAgDbkrhMXCZhAwbbQgDiCiGexRgbCwGSEFfY5nnYliQJ80ziCtsAIMQDGPMAkrjMNi+AJNu2JfEAtrlMEi+AbUmSuMy2bUmSbPM8JNm2LYnnYZvLJEniCgMY8wCSbHM/SYBtHsC2JC6TZJvLJNm2LYnLbPMCSOJ52JbEA9iWJMk2BgEIAQgMArDNA0iyzQslBCCMAVkAgAAA21xmW5KQMfcTAoy5wkjiCmMMIISMuUJgMAhAEmCbBzIAAsAgACHAmMskcZltLpNkm+chybYxRhIgBCCusM0VBiFkzANIss1lkjDPYsz9hLifMQ9kEM9iG5DEc5IE2AaEAGPbgCQuk8SzGMCYBxKY58MgACHuZxlzhRDGGAEghABjQBZgGwFgEAAC80CSuJ9tXgBJtm1LAiQBtnl+JAG2+ZdIAmzzPGxL4l9DEmCbfw1J3M82L5gk7mcbCNtcJkkSz0OSJB5AkiRAkiRAkiSuEIAkSTyLARDPSSAQL5ht21wmSRIgiedkm+dhzL+Gbds8P7Z5ASRJAiRxmSSexTybeCZxhW3Atm3AGMBIEuIFMZhnEogrJEnieZlnM4Bt21xmmxfCYIQk8QCSJAHGGEBIEvezDWAASYAkIcA2V5grJPE8JPE8bNuWxAsmCbDN/YQkcYVAGAPGxlxmm2cxAGBsbJv7SeIBhCQJCRlzmTFgmxfAmPvZBmzbFgIASTyQAWzbtgwYGwsBtgHbtoW4zDaXGfOcbNuWxGWSeE6SAEk8gCRJxggE4grbGGNj7meb52Sb58eY+0kCAMSzGGMADIB5FkkYwNg2YFsSl0nCYJ5FEs9irpAEGAPGtrmfECCEQACI5yIEYIR4HkKAEIB5LrZ5TrYlcZkkHsDmmWyEAJDEAwnE82dzP9uAbcA2zyLxLDYIAGHAgDFXmOfDPC9JkngexpjnQwAIxBW2bQMYAIN4PoQkAEDYxlxhzP1sG3OZJEASD2Cb52RbEleIKyRxmSTbgG3b3E8S9zPmCvFs4oWQBEiSxANI4nlI4n6SeBHYBmwDtrmfba4wAAKDeTbxvCRxP9uAsTGXSeKBzHMzACBJEiAJY1uI5yQJASAwmOdiLAlAPJN4IEmSuMy2MQIBIJ6DwQC2eU62JQGSJHE/24CQJECIK8wD2TYGjLnMtm3ANvezzRXm2QzmmQTigYQkYTDGtvnXkCQJkCSJBxKIB5IkxPMygJAQBvNM5jkIBIB4viQJAYhnMs8iSRKX2eYFk8RlkngASTwPSVwmCZAkiRdKEveTJAmQxAPYtg0AknjBJEniMtu2bdvmMkmSeKFs2+YySVwmCcA8AMpMnklgHkAS97PN/SQBtrmfJNs8gCTANoBBPJAEiOdhGxACjLnMtiRAEmCbZxEYwLYkAIG5QghAPIttQBJgmxdMEmCbf4kk7meb+0kCbPP8CAGWMVfYFkIAQgACYwxIAmxzPyEAcYVtHsC2JEmAbf4ltiVxmSSeH9uAbUlCAAKwzf2EjLnCIIQQgG0ewLYkHkASz8k2L5gkwDb/EkkYY0ASl9nmediWJMm2bUk8kMA8kCTbXCZkzGW2AUmAJNs8gJAxz8sghACEbR7ANoAQQmCel20eQBKX2ZYkyTYPIMk2LzJJXGabKwzimQxgzGWSEBjbkrhMCEDYtg0AkgABkm3bkoSMMYjnYBCSANsABjCWxGWSuJ9t7ifJtm0hnkVIss1ltiVJwgDGXCZkzGW2JUnC2AaMJfEAQlxmjAGMJUmyjUE8L9uSJHGZbR7AtgABEjLmgcyzGEsCAAFgXgAbiSskbGwABAgsnkmSwUYCm2cTQjyQbV4AIa4QgG3bkngASbZ5XkIIsM1lkmzzPGwLAYhnMwDiCklcZpv7SQJs8wCSeADbXGEQDyTJNlcYxHMQsgAA8bxsc5kk2zyAJACwbVsSANiWxAtlW5Ik2/zrCQEIAAMYc5kk21xhAGMAkMRlkmxzPyHAGIN4ICFjAMAghACMZQCQhHkOxtgYIQRI4grzTMIYEAJsGwNCPBeBeT4E5oEkcZltYyGuMAhJGMAYkATY5gqDeDZjLInLbEsCACEAYwwgACGEMQawLQkAhIx5HpJs80BCFgYBGPM8JNnmCoF54WwLcZmQMYAQMrYtCZCEARCYZxOAbS4Tsox54STx/NjmXyKJ+9nmRWEQz0US97PN87ANSAKEEC+EbZ4fSYBt7ieJ+9nmOUkCbHM/SYBtIABJksDcT5Iknh9JPA/b3E+SJADM/WRhMPcT97MN5nlIkgRI4gUQkgRI4grzTOY5GMy/mSQeQJIk7mcbACQhnpdt28bGGMwVQpK4TAgQEkIgjI15foS4wgC2eU6SeE62bQOAJElcZts2YJsHMs+XEOb5MBhAiGcxAAZAICRxP9sAIEkSl9m2DQCSJPEAkiTxAkiSxGW2bfMs4rlI4jLbtm3blgTYBiQBkiQBkjDPIkmSbZ5FSOL5kcQDCSEM5gohIUAW95MEALZtc5kQICQJQEiSxPMQ4jLbkrhMEveTZJv7SZLEZbZt8wLYBmzbRgBCQjyAJADzLEJCXGbMA9gGzAMYYwziCkk8DyEhrhBXSAIADIB4FttcZowwRlwhicskcYUwBjCYK4xtS+K5CGMAAwjxLAYw5gojxLMIQBIvmCTuZwBxhbmfhLifMcg2mCsknosEiMtsHkgCEMI8i8RlBjCAeDbxfNm2zfMSz8U2YNs2YFsSIIkXxAC2ucw2DySuEAIAzHMx5jIhBAIBYCTxALZ5HraNuUwSIAmQJAlA2AaMMc9mAMwLYZsHkMQDSLIN2Ob5kQRIkgRIAmxL4gURkiTxAJKEEIgrjDFXSOJZDAKQhABs2wZs87wMYBswNsbYFhICEBhjAIHBALYRCAQCQABCGNuAbS4z5gWQJcRzkiTE82UkSeJ+trmfkG3bGEAIQDw3gRCShHkmAwjZNjYGbNsGjAHEcxAABrAN2LYNGEviediWJIlnMQACACRJ4jLbtgHbPIuRJIkHkCSJy2wDxsYIY+5njBHiASwb84IZC0kCJCEQQkIYzPOyzXOybZvLJEnihbINYGxzmSSEJEkA4l8mAEmSJAGSANuAMVcY2zwPSfy7SeIFEEIoMwGBeTZJgG3uJ4nLbPNCSQKMAVncz5hnEZgrJPEsBjDmMkm2uZ8kwDYvGiHAMiDEi8A2l0niOdnm+ZEE2OZ+krifbcC2EIB4XpJs8zwkYZ5JABgAMOYySYBtnh9JgG3AtiQAkATYBmxL4gEkAbZ5vgxCCEAAtgHbkoQQAAYDGCOukATY5jJjjCQeQBLPyTZgW5Ik7mcbkMT9bHM/24Ak7icJsM1zsi2JF0AIAWCMeX5sS+IySbYBwLYkACFk27YkrjCAsSRJGMA2gJCEMQZsA4AQgHggSVxm27YkLrPNZZJ4AElcZpsXgSTbXCbJNpfZFkIAkmxjAGMukyTJNpdJwhjzLAZxhW1JvACSuMw2l0kCbAMYxBWSbPMCSLLNFQawLCRkzGW2JXGZJNtcYZ5NAJIwxoBtSQAgyzJXGMBYEpcJ8SwCAxjzPIQABGCb+xkLCRnbliQJAxjzQAYhiQewDQDimQy2JQGAQbYAiSskbJ5JAOKZDGDMCyVkjEFcIQkDGPP8SOJ+tm1LAoQQtrlCYDCAsSRJtrlMCEDYBjBClnkekgCMZUAIsM3zkGSby4yFeAFsS+Iy25KEuMyY5yHJtm1JkmzzQtnmMkmSbNuWJIkHsG1bEiAJsM0LIGRsWxIAIDBXCPEAxjyAkLFtSVxhEJJs25aEkAXYNkYIAZhnEpJsG8viWcQDCRlzmZAxz48kwLYQYCwJsM0D2JYESAJsc5mQMfcTQtg2FgKEELZ5ACGeRTwfBjC2LYkHMojnJWSMQQAIDIABjCXxAJIwzyQeyLZtIYQQzyIA2wCAQTyTQQAIDGBbEiAEGPMAxrIAwFgIQDwHIQTY5kUjCcAAxhjLQjyAJO5nmxeZJNtcZpvLJAGSuJ9t/iWSANtcJgljDNiWBEjifrZ5HpJscz9J3M82L5Qk2/wLCNuAQZIkQBIvgG3Atm0ukySJF0TczyAASRLm+ROIZ7HNCyaJB5AkSRIPJDCYF8S2bS6zzYtAEv9KQoAkIYQknpMkLrNtmyvM82Ub87yEJPECSAIkSeIBJAGShLjCPItt2zyQABCIB5IEIADMczAPJCQJEAJsA7Z5oSRxP9u2AQSAeSDbtrnMtm1eKEmAJEk8gJAQgMEAQkJcZts2YAzY5n6SuJ9tAGOby2xjMMbGkrhCGCMQz2YwAEKI+xnb5gFsA0I8J0k8P7Z5fiRJ4vmRZBuwbVsSICRkGzA25jJJXCaJZxHPZDCShHgm2eaZJEk8kyReFEKSbcDYNpdJkgRIAiQBQjyAMWBsG7DN/STxQojnImSMMTYGjLmfJJ5FYADbmOdmnoskXgjxbOL5MQ9k8yKSeA5GgAEwVxjAGLBtm8skcT9ZQhjMAwkBiH+BwDybABAYIUk8gCSeRTwXIUCSJO5nzBUGgwGEuMLYxgC2JUkCZNnm+bHNAwmMMYC4wjZg2zZgm/vZliSJy2wDtm1zP0k8P7Z5EdjmfsbGAAaQZNs2D2SMuUIgHkgSAhACACGEEAaQBGCeRUgIEJLE/WwDQsbGXCYkxBXGGIMBjCVJkiSJ5yHEc5IkCQBs83wZ20I8kAGEMBgA83wYDIB5INsAAgFI4jJJCABxhSRJ3M8YQDyTATBXCPGcbHOZsW2ekyQA80wC8UwCISQJg8EAQkIYwDbPSQiQJAkQMgaMuZ+QEM9iXhS2bfNAAgEgMLZt2+YFkCSJB5AkSZIk7mdbkiRAEg9knkWSJB5AkiReMNsISYAknsU8kG0usw3Y5oWSJInnxzYPIEkSl9m2DQDKTP4dJAG2uZ8QADYAQpYBIa4wxgAG8UBCgDHPIjAPJIn72eb5kQQYA0KAbZ4fSYBtnpMk7mcbkMT9bPOvJwQgANsABiEJsM1ltgFJvCAGcYUkwDbPjyTANs9Jkm0eQAhAALYl2eYKAyAeSJJtHsC2JB5ACDDmOUkCMMaAMUYSLzJJPJBBALZ5Tra5TJIkwDZgWxKX2ZYkhABsYxCSMLYRQjyAsW0uEwIQDyTJNg8gZMwLIAkwxlwhBBgDtiVxmZCxbS6TxGWSbAOAJNtcZlsSDyCJy2wDgCTbXCaJF8A2L4jAPC9J3M9YyBhzhRCAsM0VNpIkjDHPjyQewDaXCQHGAMYYkCTJNs/LPJN4PgziCkm2uUzI2LYkIQAw5jJJGGPuZywEAJJ4TraFjAHbkrjMtpAQwhiQxGW2MYgXRMiYy4SMuUwStnk22ZZ4AEm2DbIBJK6QsLGRJGyegwHAgEESAEgCANuYZxLPwSCukGSbyyTZBgAhYwwghACMuUySbQADIK6QhHkmYdu2EIAQAhC2eSAhCzAGJAG2ucy2JB7IGHM/SVxmWxIASLLNFQYhZMy/gyTbtiXxH84AxoAkBMZYFoCQxGW2bUviMkm2eSCDeD7MMwlJGMCY52IABCAEGNsWAhAviG1JgCQA82wCwADGXGZbEiAJwDyTsczzMJYFSAKMMQhJtgEMgHgukgAMYGwsBAghMIAxl0mybRshxP0k2eYyIWNeECMJMOZFIwnAAMZcYRBCxlxmWxIPIAQYc5ltQBKXCRnzr2QbkMRlkgAMYMzzI4nnZJvLbEviASTZ5gEk2eaBhBDmmQRgm/tJAmxzPyHAmAcQMuZ+QoAxD2CbyyTxgknifrZ5ANuSeJEQQgiEsTHmCttcJkkSDyAJQDybQLxgAoHBGACDeQ4G80wCASCEJPECSJLEZbZt80AG868lSRIvAkmSeABJkngASZJ4HkIA4lkkSQIkAbZ5ANu2jW0jACFJPBcjSxYPIEkSD2Cb+wkJ8VwMgAAQCCEewDbPwzZgmwcQEuL5kQQISQIkSeIy27a5TJIkXghhbMz9JPEAknhOkrifEAbAYACEEOaZzAPZxlwhBEgS4jlJ4n6SEAgA8Uzi+RAviCRJxjyLsM39JHE/SdzPNgBIksTzMgAghME8k7HNZba5nyRJPICQJP4NBIDEFULcz2CMjQHbPF/i2QwgBAghnsW2be5nmyuEEIAAEIAQgHkWSYAkY64wAObZxLNI4gEkSeJ5CCGexTZgm2cxz8EIAZj7icts80zGPCcD2DyAwIDN/SRxPwNgmytsAAQ29zOXGQDznCTxQMKY52QbsG0bMOZ+trnCAEI8F4N5PgzmuRkAYWyMMQYwkiTxLOa5GUkIQJJtHkggXghJGElcITC2hQDEc5EkCQBs2+YySdxPEv8S27YBQBIgSRIPIIn7SZIEAMbGPCchY2PANveTZNs2YFuSJACwbYzBCAlxhQGEAACDQEiSxGW2bQOAkBBXGCFjYx7ANvezzXMRzySuMAaEhABJPJBAAAgM5oFsY56bAGxzmbExL5yRhcEAGATiWWwDkjC2uUwSIIn7SZLE8zLPlyRAkiQus22bBxKAJEkAAmNbSAiQxAMZY2PA2DYPIAnxgghxP0mSAMA2IAmQJInnJZ5JXGHbNs/DNs/DtiRJ3M+2JJ5FCGGeiyQuk8QDCQQACAlxP2NJiBdCEg8gCZAkiRdAkiQus839JEniMtu2uUwSApCkTIMRmCtsA5J4ASTxnGxzPyGeH8sYQMiY50cIQAAYwJjnJIlnMYAxl9kGJHGZJMA2L5gkwDb3k8TzY5t/PSHEA9nmfkIA4llsc4VBAAgMgAEQV0jifrYB25KEjAFAEmCb+9mWxANIwhhzP0k8kLnCMuZ5SbLNZbYBSYAk2xjEA0niAWxzmSTANs9JEmAbsC2J5yEJsM1zsi2JKwTmOQjMFUKAMYBBXCHEZcZcYRAPJAQAxhiEJB7ANpdJss1lQjyLeA7mmYRtLhMy5jLbQgDigSQBtnl+JAG2uZ8kHsA2l0nifra5n21JkjCAMQYhyTYPIAmwDUjifrZ5FoG5QsgYG4kHMoCxJC6TxGW2AUDIGIMQ4jJjnodtSTyAEGBZiPvZxiCuEDLmCoF5JvNMQhJgDAhhAGMM4gWRBBhjnpcswBiBAGRAgDE2kiTbvAgkYXOFhA2YZ5JkmxdAkm2DeA4Cg42EwGAjIQQgAMC2MQaQxAsgZGxbEpfZFgIQQsaYZxIPZFsIQDwHg3g+DOL5ELKMhRC2uUySbQCwLYkXgSQewDZXGIQk21wmictsc5ltLpMEAJJs8zwk2eYySbYBwLYkQBL3s81lkngA21xmmweQJMm2bUk8D9tcJgkAJNm2DUjiBRACjHketrlMEiCEwADGGGNAEpfZlsRltiXxvATmWYQAYy4zFgIkAbYBIcDYtiQE5rkIAcZcJsm2MSAEIDDPRQgw5jIhYy6TZNs2QojnJMk2DySEANu2JXGZbSEA8VwkcT/bAAZAPC9JtrnCIF4gAxhL4l9DiGcRgG3AtiQukwTYBoQwlgFAkjHmCkmAbS6TZJsXSpJt7ieJ+xljAAwCQGAASba5nySexTyTsM39JAEYwBgAbEsCJNnmASRxP9s8P5IA27xQtiUBkgDbQNiAMJIkAZIk8Zwk8SISCATiOZgrjHkASUIAgEA8B4O5QpIkwDYPICQESAJs8yKQJIl/N0mSeABJkrhCPJN5PgTiCtsAAgEgnk0ACASAQADGPIAkwJjnx7ZthG0ukyQJQDwf5jkIIUk8gCRJgCSeh23A2DYASJKEsc39JPGvYZv72eaFkgRIkoQBMBghIQABIJ7JYIyNAcwVxoBt2whAkiSeRVgGEEI8gG3uZ8wVBsD8iyQBQsYYY9tCgCQhXihJkngR2OYFs21bEvezjUEI2QZs2+Zfy2AAjME2lwkJcYW4QhKX2QYwGACDeCAhnockACEJEOJ+xlxmm/sJCQGYK4QkcT9jxHMzAEYWgHkutnkhBCDEA4jLBAIQgLhC4tkESOI5SeIFk8Sz2NjiMgmQxHOSBEgCAGQABEJgnpcQl9m2AQAh7icEYB5IkrExYMwDCAkBgG3A2JgHsG3MZZIABCAkhAFs2wYASUIAAvFAtiVJ4gWQxHOSBGAwGECSJADxXGzzALa5n23bgG0AsG2byyQBkrifJEmAJF4w2zwP21whnosQD2AbsM39bNsGbAOSJAGSJPEAkiRxhXkutnkuAkAgAAQA2AZs8wCSuEySJJ7FPAeBAADbmBdCEoCRhHhBJHGZkBAgSUiSJB5IIIQAIR7ANiAJY5vLJAGSuJ9t2wDmWSTZ5n7GgG3bXCZJEs9DSAgDGBvbtg3YliQJQNi2DQACgUAAIIy5nyRJXGbbNs9DkiReAEmAJEk8kAEwGMA25gWxLUkSDyBJEvezzQtiANvGXGGusM0LIgBjzLNI4gqBuMI2LxpJgCRJvFCSJPGcJPHcUKbBXCYJsM3zkMT9bPOvIQQYY4wl8QCSuMIYcz8hwJjnJAmwzRVGEmAM2BZCvBC2JfEAkrifbZ6TJMA2YFsSl9mWxPOQxHMyxrxwkngW82wC8xwE5grLmBdEEmAbsC0EAAhAEvezzb+PJNu8UJIADAJjzANIAmzznCQBtnketgFJkgDbPD+SANsABkAAkrifsSxjLjPGCCGezSCukMRzMVcYA4AQwjaAQTybQTw3gXkmgXkOBvG8JNnmMkmAbe4niedkG7AtSRKX2eYBJNnmMkm2ucxYiMuEeBZhG/NMQhL3s839JNnmeRkEYMCWJAkDGAOAJNs8LwMgAEm2AUCSbR7AWEjImAeQBBgL2ea5mGcSQgDCtm0AISQJMOYKI8RlxjyAbUk8gCQAsM0DGYQQYFnINs9JEs/JIABsA4AkbC6zBAgM4jnYBgBsJC6TxGW2sZFAEoBtAMBG4goLDCCukGTbtiQeQJJtLpOEAYwxCCFj25K4TJJtXnQG8bwkYQBjHkCIBzDmMtuSeAFsS5LEZbZ5AEk8gG0usy2Jy2xL4gFs8zwk8a9kWxIgCbANSOI52QYA25J4oSTZtg1I4jnZliRkzGWSMIAxDyDJNoAxlsTzMgghAHGFbR7AtiQAEDLGIK6QZJvLJNm2LQmQsAFsA0IIQAhhGxACjLmfEFeIZzEWAmxzhUEI8SzCtm1JAAIDCBkDgG1JPJBBCBlzmSTbAGBbEiAEGAOAbUnczzYgCZDEczHPYswD2JYESLIN2EYIAUiyuUKyDdgGJAFCgDGAMZbEcxJCYABjQBJgm+ckCbANCAHGGMRzkQTYBmxL4n6SuMw2L5gkwDYA2AYkcT/bknjhhBD3s82/RBLPj21eMEmAbV40kgDbQPAAtgFJvAhsAxjbvCjMFcYYjJAQVxgAg3kmgRCSxAtinosQgMFcIUkSIIn72bZtmxfAtm2ehyQewLZt2wAgSRLPywDGtnkA27Z5AYyNMc8mEBhjrjDPxbZtnocQL5gkSTwP28ZcZts2D2DbNveTBAAYjJAQAgEgAGMEYAzYts3zsG2bB5DEA0gCJEniRSMkxAtiACFJgBBgDBgDGElCCEk8L4Ew5lkEICQEYJ5NPB/m2Qxg2zZgGwFIkgQAGACQBAhhAMSzGQwG80CSuJ9t7idJkm0eQBJXGNtcIRAAAiPEFeKFkwQAQkJcIa4QDyCeRZJtwNg2z0NIyJgHkMT9bMsCjAHANs9DSBKX2bbNZUKyuMw2/0qSeKGMAdu2AdsIAIF4LrZ5/gwGg7lC4gUzzyaJ+9nmMts8N/NANgAG8wC2zfMhAUjiuYhnEeI5SQIQgCQhHkASQohnMYAQIEkS9zNGPJtAPJN5Lra5n22ek20usw1gJPEAtnkexogHss3zkMTzkARIksRltgHbtnkA27xgtm3zALa5nySEkCQeQBL3kwRIAiRJ4n7GkhCAMZcJCXE/21xmzP0kCSEQAAKDATAPJEkSIInLhABZQhgMYFsSIInLJHGZDWAbEAJkyQIwCMTzYTAA5lmEeCADCPFABpDEFQbA2OYy29xPEgJACPEAtiVJAiTxAEJCgCRedOK5SJIESAIA24BtQAiQJO4n8YIJyQKEbNvmMiEhAIN4LpIk8YIIBIC4QogXwLZt24BtnockSbwAtgFJ3M8295MkiefL/MeybZvLJPH82LbNZZJ4AQwAQrbBNg8kiRfMNmAbEAIQ/wZCxjyLARDPQWCeL2NZgCTAmCsM4lkkcT/bPIBtQBIvlCTbvAgkAbZ5vgwCQAjZBmxLAiQBtrmfEGAMyEI8kDHPlzGWBEiyzf2EAGMuk8QDGcCYy4SMeU62EUKSbNsGAEk8kEEIAQjbACAEWMZcYVsSDyDJNg8gyTaXSeIBbHOZJC6zzWWSbAOAJMA2gEE8L0lcYQBjDGDMZUIA4gUSmCtsS5IEYK4wti1Jkm0MAoF5INuSJNkGAAziCiEAYZsHkGQbAIQQVxgL8QC2AduSeADbkiTZ5gUxzySEAIRtAMAghABjnpNtSVwmCQMYc5mxkCTbPA8hAGEb80ziCttCiGexLYnLJNm2LYR4FtuSeAAhAHGFbQCwLcRlQgjLGMwziSuEeBbxvGxzmSTbtiXxvMwziSskcZlt2+Iyicsk2eYySdhcIWGby2wkSQA2D2CeSZJtHkjCBgDxTOY5CAy2JQkZg7EAxANJwjyTsG0sBAAIWVwhbPM8JHGZbR5AEpfZ5gqDkMRltm1LAoQQGMCYBzLPYszzkMQLIAkAbNuWxANIss1ltrlMEpfZ5nlI4kVmWxLPQxIPYBuQBNjmMtuSuEySbS6TZNu2JEASYBsAJAGAbV4ASbYxiOdlWwhAPJAkDGCMQTyLJO5n27YkhCzuZ2xbEiAEGPM8bCOEACGehzEghMAAtgHEA0myzQMZxDMZxPOyLQQgnosQwjYACBnzAJJs80AGIWTMA9iWxItGiCuEbR7ANkKIB5DE/WxzhUEAQtzPNpcZSwIAIWPuJwnAAMZcZhuQxGWSANtcZlsSIMSzCMA2/xLbkngekgDbPIAk21xmWxIvGkmAbf4lkgDbPIAk2zwnSTwn2zwnSbxgtoGwAUniedi2zQshrhASQlwhSZIkHkCSJO4nyRiwbYwBJAnxQOa52LZtG/NAkiQBiCskSeL5kQRIAmzzPCRJkiTJNveTJEkSz0MSD2DbtrExgJEkhBACJAGSeEEE4tnMMwnE82EwgBAA2OZ+khDGPF/m2YQkhCTuJwmQJATY5nkYAxhJQgiEbQCDeSYD2LYtiechCQAkSbLNi8Y297PN8yWexbZtHsgAGFk8J2MAA9jmeRnAtm1JPItAGAOSAIwQAhBCAEIYDOIKSQCAeF6SeADbPIt4JiMLg3letrmfbUk8i3kW27a5TEgIwFxhDNi2jQAQiOfLNs8ijAHbtoW4TBIghMEAmGcRAoS4zNiY52QbsM1ltgEhLhPiMkk8kLnCmMskcT9jrhAPJARg/lUk2eYy2wBGSIj7CQGYF8bmRWTzfNkANveTxP0kieckIfEAkngAYwEgLjPPIgkM5gpzhW3bXCGeRZIkLrNtmweQJAnAALa5TBICQADG3E8S5rkZzLMJYwCBQCAkIa6wbRsAJHGFAWxzP0m2AWMMYFuSECCJ5ySJF0AIIUkSANi2zWWSJAGSuEwS/xq2uZ8krjCAbf5NbNsGMADCtm0ewDbPybZtwDYCASBs2+b5kQRgEAgEApDEAxnMA9kGhABJCIRlrjCYZxLPn8EAtnku4tnEFZIkcZltwNiYyyRJ4lnMsxgDgG3bgG0us23b2BhjW0gIAGxzP0mSAMC2bS4zNuYKgwEwkiQBgG1AiBdCIADEMwnEFUJCgJBt24AxL4jB2OYy2zwP2zyLQDyTeS6SJPH82OZFY1uSJECSbdu2bXOZJEmSJPE8JHE/SZK4zLZtnodt24BtSZL4d7Btm+eGMhOQsHkWSdzPNveTBNjmWQyAACQBxphnMwBCCPFAtgGMsSRAyJgXziCezSAASYBtnpMknh/bvGCSbPM8JAG2uZ8kLrPNfyhJAAawDSAASRhjjGUhLrMthHgWSbZ5AYQAyxgAAyAk2eYBJAG2eRaBeSDbQgBCCEAAtgHbkoQAy5grbEvieUiyzQPYlgQAkgDb3E+SbS6zLYnLbEuShDHmfpJs8wCSbAMA5pnEi07ImAeQBNjm+RECjHkWg7hCEoAxxiCelyTbXCbJtm1JkmzzvATmgWzzAJJ4QQwghHgWY64wiAeSZBuDuMK2JC6TZJsXQBIGMMY8k3gmAwgZA4AxAAgBiCtsS0JgbAtJ4jJj25K4zLYQgJDEA9jGIB5IyBiDEDLmMiFjDOKBJNnmMklcZhsDGEsS4nkYYxDPS2CeDwFgnj9JADYPYLAtCQAkcYUNGGxL4jJJtrGRBOY5SdjYSELG2EhcIck8k2zzQEIAAgMY868hyVgIsM1lQgDCNoABEFcIGXOZJNtcZlsIQAC2AUk8gCQMYMwDSLJtWwgB2JbECyDJNi+AJB7Atm1AEiDJNpfZliSJB7DNc5IE2OYy25J4AEm2uUySbS6TxGW2uZ8kwLZtSZJsc5ltSTyQQTwvWZZ5oWxL4gUQMuaBDAKBATDGkiRsjAEhQIhnEbYxAEIIYRsAhGwbS+J52JYkybaxEP8S24AkHkDImMtsS+J+tgFJPF8GQAgZYwAEIAQgbGMABGAbIQRgJAHGACDJNmBbCCFkzP0k8VzMswkA8yzGAAZAvEAG8XxJAmzzggkBxhgEIAmwzfOwLYnnJInnxzbPw7YkQBJgmxdAEg9gjAGMhQBJgG2ehyQewDYgCbANSOJfYpvLJGyAsA3YSOJFI0kSlxkb80AGwABCACALwBhzPyEhQAgAjLmfJEmSEM9kMAgAIQlAPJAkSfzrSeIBbAO2bXOZJEm8ALYB27a5TBKXSeIy25grbNvmeUiSxAtnAAwgxAMYc5kkSYAkLrNtGwBkyeIKA9g2RgC2Adu2eb4EgEBI4jIhQJIQAvFAkgAEQkgS97PN87AN2LYN2AZs8wLYBmzb5jLbtiUBmGcTCMwDSbIN2LYNGCMASZJ4ASQhACFACIF4PgwGg3kmgbjCtm0EIEkSlxkDxrZ5fiQBkmxzP9sA5rmZF842z0NIiCsEgEAYAxiMJCGekxBCiMskcZkk29xPSAiDeTYBCHGZwTZgzP2EeAAhQJIQL5QxANjmfsa8IEKIKwwGwCAAQBIgyZgrDIB5IYQAAPHcBAIQAjCAbZ5JkgBJPCfxfAgkAUg8F4n72QYA2zyQDdjmMoMAkA1gcz9J4jmIy2xsrhAAMgDifkJcYZ7JYK6QJInLbAO2bQOAJCFjnot5JvMczBXGkrifJK4QL4gkAIG5QggAMADmmcQVkmwDtjFXSOI5SeI5SQIwz0USIIn72eYy2zwP27Z5HrZ5HrYlAQhAiBeBJMC2JEmAJNu2AYSQJAzmCkkIAAEAkiRxmW3b3E8SD2DbNpcJARjA2BgDCMniMmMuswUICQFCAAYDYAAEAkA8m7ENCHGZJElcZpvLbANCXCYJISSEwbwgtm0DxlxmG7AN2LbNA0iShEAICXE/YyEE4jkYACFJCJAkBAhJ4jnZBgAhQBbmmQTC2JgHEv8iISEMBgAkSeIy28YAIInnSzyLJEk8L/OCSJIkCZDEv4kkSYAkXgBJkrifbR5ASBIgxPMjifvZ5jLbtgHAtm2eh23bvGA2l6HM5DJJPD+2uZ8kwDbPjxBgDGAAIYQxBkAIAcaAEGDM8yNkDCBk8UDiWWzzAJIA29xPEmCb+0niOdkGANuSuJ9tQBIgCbDNC2VbEiCJ+9kGbAMIIe4nyTb3k4S5wjIgCzDmfkKAMc8iMICxLISQMSDJNmBbEgBgEEKAMc+XMRZCCAGIZzLPYswVBkAAQgACsM39JAG2eX4k2eYBbEviMttcJkkSYJvnZBsAJPEAQjyLeF62eQBjIS4TMgYASba5TAgw5lkM4gohAAHY5lkMYCxJCDDm+ZHEZbYBY4wkSbZtS5Jkm+clMFdIsm1bkiTbtiVJsm1bEg9gWxIA2JbEZUKAsRBgzAMIGXOFQTyTQTyQJNsAYFsSIIQxNpYkyTaXCRnzAMZCQsYYxAsnZMwV5pnEAxkL8TyEjDEISbZtCwGAZSFJ3M82z2KeSbwgQsa2JUmyjUEIAQgMYGybyyRJss1lkmxjI3GZADCX2Uji2QwCS9g8J9uAJCTZgAEbCQBsSwLE/WyDQZIkLrPNAwjM8yNhYxDPZBCAEMYyz8O2JADAIJ5FEsaYy4RsAwghY2MhLrMtCSEE2OYySbYBQMi2MZdJ4gEk2cYgJNnmeUiyzWW2uUwSz0kS97PNZZK4zDbPQ5JtHsC2JO4nCbDNv54kwDYASLLNA9iWxAPYlsSLTAhAYJ5JXGGbB5BkmwewDQCSJNnGPJN4ICFj2wAgCYHBIIQAwBiDeA5CCLBtWwhAPC/bACCJ5yQJwADGtiVJsg3YBiTxvAziRSdkzP2EuELY5n5CgDEvgCTbPICxLADxXIQAY144g3ggIWPbkgBJGGMAsC0JkMRzsg0IIZ7JAMbcTwgwxiAASdzPNpdJss2/lSTANveTBNjmX8lYCJDEc7LNc5IE2OZ+kgDb3E8SYJt/AQFISOIFkMQLJkkIkMQVBvNM4pkEgHleQkIYzBVCQrYxAAaBeBbbmCsk8bzEv8w8F9v8a0iSxHOSxAslBEiShHhu5rmJf4EQkgQIARjbGMA2l0niWcRzEwgAISQECAGY52AADMYYMDY2NsZgXnSSJAGSAEmSJAGAJJ6TJO4nSRKX2bbNZZIASZJ4LgJjmwewzXMSAoSEbGOusA1gMA9k2zZgG8A8kCRJXGZsLIR5JoEAJPH8SAKEJAG2AUmAbcDYNpdJkoQBAEm2eU6SANvcT5Ik7meb+9nmWYQQYIy5QpIkYwCDuZ9tIy4T9zMGbNsGjAFjrhDPTUgCJPEAxjyAJK4wtgFASAgQ4n7GXCFJ4vmxzbOYK2xzmTFgzPMlrhASAjDPxTbPw5grzLOJ58c8gLjM5rnYADbPYnOFzWW2eSFsni+JKyTuZ5vLJPEABkmAQIDNFeYK24BtYx5ASIjLbAO2uZ8QAvMcxDOZBzLmOUkCMM/FtiSEEJcJAQgAY9s2zyIAY0mSeABJgCQEIAlAGAO2bfOC2eYBbNsGAEk8D0m2bfMCSJLEA0iSxANIksRzsg0AtgHbPCfbPD+SJHGZbdsAQogrDOKFkMT9bAMA4llsA4grhIS4whgDQjyLEUIAxggEgLBtm8skCXE/ScbGPIBtwDbPSRIASAIwCAQgCbDN85AkiSsMIAQgnoskSVxm2zZgLInnIp7NYF4Q27YB25IkcZltjLExD2QwD2Tb2LZtHsC2Mc/JGJDEFQYQEgIk8TyMjXkW83wIBOKZxAthW5IkHkCSJF4ASbwg4gohSTyAJEk8D9u2bWNeEEmS+HewbZvnQ5LkNLLNCyeJ+9kGbEvihRICjLmfEM9FYIy5nySMMQYBSAJsC3GZMc/JtiQAkMRzss39JAGYZzHmX08SYJv7SbLNAwgBxjw/QsZcYRBC3M8y5gpJPC/zHIRtXighYy6ThHkm8Sy2AcwzCSHAMuY5GMQVtrlMkpAxlwnxLAKwDdiWBACSbPMCSLJtWxIASAIA27wIJAHGgCwEYJsHsC2JB5BkG4N4XkKAMWBbEs9ihBAIwBjzfBiEJC6zzQsgZGwsxANIss0VBnGFJACwzQsgZMwDSLLNZbYBhBDPIgAMBnGFJNs8gCxjY0k8kEEIGQMA5jmIB7ItSQhA2OaBBOYKSba5zLYkHsggrrAticvEZZJtDEKSbdtcJgQgXhSSeCDzLMa2JXGZbSEA8bxsCwlZ5gFsS+KBbCQuk22JyyRh8wLYlmQJm8ts8wCSAAG2AUCSZJv7SQJs8wJIsm1bEpIAwMYYjCWBwDw/QoAxAGAQDyQJA9g2liSJy2xzhQGMJUmyzWVCxhiEJC6zjUE8kJAxVxjE8zIW4nlIsg0AkmxjEM9kEFdI4jLbPA9Jtm0DkgBJXGYbACTZ5gEkcZltLpPEZbZtS5LEZbYBQBIPYBsAEJjnJcm2bS6TJMm2bUmSuMw2ANiWhJDFFcI2l0niMtsAIAkAbAO2ASEuM5YkyTYAyEIgbAMYAHGFbUmAEM8iANs8gCSuMIAxANiWJMm2bUAS97MtCZAE2OZ+kgDbPA9jIQAQMuZ+QgDiWWxzhcBcYVsSIIS4wjZXCAyAQQghbPOcbAOSeABjWQDimQTmWYQAYwDAAMaS+NcyCCHLmOclCbANCHGFsA3IQjyTAGxzP0nczzb/VpJ4QYwxAEiyzf0kAbb515DE/WzznCTxnGzzPGwDknj+CMAGsG2bB7BtmxfMGMAY2+YySZIQzyaeg0A8k3gukgAEgHjhbPMAtnkgA2CeSSAQz4cAEAiEJElcJonLbNsGAElCXCaJKwQgiSsMBoN5FiEM5gpjwNg2gHkmgcAAQiBjYx7ABsDYPIskQEiSJB5ASAgQIBAA4gUxNkYACATmuYnnIgkw5lkE4vmyDQC2Adu2ucy2bS6zDUgCJEniMtvcT5IkhCQus22bBzKYK2zzPGwDtrnMNoB4LpIkAYgrJAGSJAEIxLOZZ5EkiSvEs9jmOdm2DQDGAGAM2OZ+kgAhAPNAtnlOtm1zhZDEc5LEAwjxQAYDIABJkmzzAELGAAKQJIlnMYAQz0s8i7FtIcwVxgAGIyQEIABJtgFj25K4n23b3M82EiAkHkiAEM/JGAAkSZJ4JgEIYTDPlzGAMOYy24CxEFeYZxHCYJ6LMWCb52KDuMJGEpdJPF8S9zMIJPEA4oWykXjBJElcZgDM8yEkAASAJfG8BALxTAYQAhAA4pkMIARgrpDE/Yy5nxAgC8BcYcxlQggMYAxgbAtxhQAQkiQBgG0MgLFtGwAk8bzEFUI8i3guto1tc5kxl0kCJPH8SOKFss39JAG2eS7mgYR4FvFcJHGZJJ6TJMA2l0mSxLMYBIB4INs8J9u8YEKAbUkIAAFghIR4TpIwmGcSCACQxAsmJARIAmwDkiQBkiQBknihhIQwmGcRsm2MsS0EIP4FRpIkQBIGA2CemxECEADihbDN/YwxACAkhBDieQkEIAkQ4jJJPCdJkngeto0BYyGEkBAG8xwE4tnMs5kXhSRAkiQeQJIkHkCSJEkIBOKFEc9iWxLigSRxmSRJPCdJkngetgFJknihJEkCANu2bQOSAEmShABJkgBAmQZzmW1J3M82IAmQxP1s86IQQjwn2zw/krjMNvczFgIkAbYBIcAYwBjzAJIASZhnEoBt7icEGANCAOLZjDEASAIA2zyAkDEPIMRlxoCxLIQQzyIwgDEPYFsSz0MIAAMgwJj7icsMwgjMc5IE2OYyIWMM4gohY64QmOdgEFdIss0VBvFMBvF8CMwVkgBjzAPZ5jJJ3M82IIkXQJJtHsC2JEm2uUySbZ6HJMAY8y8wiOdlWxLPyyAAhBDGGBACAGOeh21JPA9Jtm1LAgAhY9tCXCGei5BtY0lCgDH3EzK2DUgCJHGZbQxCyJjLbAsBCCFjDEKSbduShLjM2LYkSRjAmOdhWwhAXGFbCPEskmxjEM9kEM/BICRxP9sABrAsxAPYFgIQz8FG4jIhYy6zLYnnIck2l0myjUFcIWQMAJIwzyRs25bEFeaZxBWSMMaAbSEAMAYASTyAbYEk2wYBEiDJNpdJss3zEM9knoNtARI2zyKJyyRs7meeybYkSQBgm2cSGIMAgblMyLaxJEmYZxK2uUySba4wCCEA8RwMYIxBPJAk21xmWxIAYBBCxrYlAQBCFsaYy4yFAIQk27YlCRlzhQGMJfEAkjCAMQZxhbGQJMwzCdtcJsm2MeZZJPH8SLItCbDNZZK4zDYASLJtWxIPYFsSIAmwDQAIzANJwjyTsM1lkrjMNs/DtiQeQJJtXgDbknh+hABjjDEgScg2gLhCkm0eyDyTeA5GEsIY8yySbHM/SYBtjCSEbV4o25J4ANuSAEmAbQADICTZBjDGkgAhrhBX2OYySbZtCyGexVgIEAKMeSAhCwAQtrnMtiSeh21AElcYAPEskrifMSAEYADbiCsk8fzYBgBJtnlOQggMYGxbEiCJ+9nGIAAh7mcMCCFscz9JgG3uJwmwzf0kAbZ5FoG5QghAALZ5ICEE2OZ+krifbQCQZJv7SQJs8wC2AUlcJgmwzb9EEmCb50cSYJvnQACSJAGSbNvmhROI5yKJy2zbBjD/WrYB27ZtY56DQFwhSxYgxPMyz5/BPJNAAIgHMuaFkmQMGNvmAYwBYwwCQCCMjbmfkCRJXCYJkCQJADCYZxKIZzKYywzGRlxmwLZtwDZgG5AkSZIxYLDNZcaYZzLPIiSEABCSbAMYjJCQkCwAc4UkSYAknkU8k3m+JAGSJAGSJAGSJPEAkiTZBmzbBmxLAmzzAJIQknhe5vmSJIlnMUJCXGbbNmDMczEABsAACADxLEJcZts2YBuwzWWSJAGSbHM/SZKMASHuZ2wM2OYyYwSAwWCeRcg2BvHcDIAQMgZs25aEkCRkGwMI2eYKc4UxBvFMApDE82MMYADbgDFXCEmYK4S4zNg2L5ixkBBXGNs8LyHE/WwDtnkA27a5nyReOAEICRljXhBJ3M/YmMskSQIQz2LMC2YjnkWAeWFsA7Z5LjbPj0A8mwGJ58c2ANg8k7ifMYCQ+LcygBCAeG7iWYwxxra5TBLiCtuAbWOeRdgGAAyAEAIQQsZcZhtAYIx5ASQBiGeRxf1sYwDbCADxQLYBIQDxQJIk8Zwk8Zxs85xsA5Jscz/bPC8DYADAtm3ANs+PbS6TBEiSxGW2AduAbduAbUmAJElcZhvzQLZtc5kkSVxhHsgYAGzbBmxzmW3AtjFXGAwACEkCMBjAtm3ANs+XADDPZDBCQlxmG7DNc7LNCyaEERIChHgu5rnYBiQBmCtsY55JIB5IkhACQDyLbe4nSZIkSYAkSYCQEADYts2LQgAIxAskrrDNswhACMAgEIAkni/xTOIKyzyLEeJfy0hCAJIwAAbzvGzbBjBXSAIABIB5LrZ5AWzbts1ltnketm3bts2/mxBCmSkJsA3YlsRltiVxmSQAAxhzP0kABjAGbEvieUgCbPNC2QYk8TwkAbYBIcAYwCBeEEmAbcC2JCHuZxnzopAE2OZ+trlMiAewLMQDCAGWMc8mMM8iCbDN/YQABIABjAHb4n4CxAPYBiTxQAID2BbigcSzGAsJ8SzCNpfZFgIQQoAxxliSJNsAIAnzQMaAbUk8D0kAYJvLJAG2uZ8k2zyAbUm8UELGGIQkjDGAQQgZc5mQMQ8gBCBsAwAG8byEjG1LEgIQAMYYg3gg25K4zLYkSba5TJJtLhMy5grzLMaSANuAJEm2AUCIZxG2MYgHkoQBjDEIBOaZzDMJIS4z5nkZxDMJzBVCxhjEFbYl8QIIAQjMsxjzQkkCbAOY5yAk2cYghMCAwbZ4AInnIck2z8tG4nnIsswDGcQVtiUJGduWxANIAowxD2RbEpdJsm0bkMBcYUk2Ei+YbUlcJsk2NhKXSbLNAwgMtiUhyTaI+0m2sUEAAklgLARgnskAgDHPIh5IlmWeh21JQgACwBhzP0mAbWMMIIkHEDLmCoN4DgYwliQJ8yy2jblMkiTbPJBBCBlzmRCAsM39hADbxgAgSZJtAEBgrhAytg0gZAEIBOYK25Ik8QC2uZ8kwLZtSTwP20IA4gpJtnkBJNnGIISMbUviASRxmW3bkrjMtiTuJ4n72eY52QYk8QCSbGMQV9gWAhBX2JbECyDLMpdJwjyLMeaZhJAx95ME2AaEAGMAAyAk2eZFIwmwbYwRQghxmTEG8YLYlsQDCBnbBoQQgCTAtrEQ/0qSbHOZJAxgzGW2JQGSAMyzCQDzTAIDGPP8CCGel23uJwmwzf0kcT/b3E8SYAzIAowBQIgrBGCb52EshMA8k5AFGNsWQggBCMA2gAEQL5wk2zw/kgDbPA/bkgBJgG3uZxuQxP1sS+IFkATY5jlJAoLnJIn7SQIkSeKBDOb5MBhJgCRJvHACgZAEALYBSYAkSbwQ4pkEgLhCEi+AJJ6LeSFs2+Z52LaNuMIYAIyNhXgWg3kmA9i2DWCEhHghxDMJxLOYZ7KxzQtg2zaAuUKI+xkbc4XBCPGcbAO2bQPGCACBABCSANs8iwEwmOdim8skSeL5kcRzkmSb5yQJkCSJ+0niOQlxhQFkYQBZgBAgZBtzhSRJXGaMeCYBIBDPIskYEMI8kDFgbJsHkMT9JAG2eQBJgJBtzAMZG0viMkncTxLPRdjmBbONQQBCkgAhAEAACIQx95MkiSsEIEkS5pkMIAshxGWSuEwSgHgmI4tnEc9FEi8yISHEZeaZxLPY4pkEIGwAkCQJkGSb52JjA9g8F4MQ4n62uZ9tAANgJPFCSeI5SbLNsxgAMABIgGyBeGEk8ZwkAZJ4EUk8B4HAYMA2gHguQjxfBsA8F9tcZozAAAgA89zMs4lnMoAQ9xPiWcwVQoAxAvEsQtzPtiQAgXgO4kUhxPNlJAGSEIAkAAMAQrK4zDaX2eYBJPG8xBWSEEKSACEAgcEAtiXxXAQgCQAQGGNAkjFg2zZgm+dHEpdJksTzkCSJF8w2gHgWScbG3E8Sl0lCPJNAAJa5QhhzhQGEEAAgBEjiuQghBOIKY2PAtiTuJ0mIB5DE8xACjAFjBAJA2LbNA9jmfrZtc5kkBCBJCBAS4n5CtrmfbdtcJkmSJElcZts2YFuSJEkAApAkCZDECycAy7wozBW2Mf9GQhIPJBDPYoxAABhJACAJAGxjAMyzmWcyQggAgcA8kBAGMAYwtnlOtnkASbxQkgBJPIAkSbxgtnkA27Z5ASRJwgDKTEmAbZ4fSYBtnsUgrpAEYABj7ifJNg8gCcA8X8Y8J0m2AduSAEnczzYgxLOIZ7HN/SQBtvmXSLLNZZJs84LZBiTxnGxLAiTZ5oUS4n7GgCSuMMa8EAYBGASAJNtcZlsSDyAwzyRkzAsgxP2MAduSeABJgDHmCkm2AUAIsI0QAox5wSQBgG0eQBL3sw3YliTJtm1JknhOtrmfJMyzGGMAIWMAAQgZY4wlSeJ5medDALYBzDOJ52KMkSRkbFuSkLFtSQiMbUlcJgQYA5hnEg8kyTbPQ4j7GXM/SbZtS+IKg7hCkm0uk2WZ52UQkjDG3E8SYBuwLUnImOchiQewjXkmcYWQMQYhictsYxBCxlwmicts2xZCAEI8J8sYbAAJEBiwAYMkLpME2OZ+AvNMAnM/AxgLAQhJtm0LIZ6LkLFtSZJsA4AkzDOJK2zzAhnEFTaABAjMM9mWBAAGgSTbXGZbEs/DtiQkbGMhSdiAuZ8kGzBgEEIAGAmwDQBCPIAxBiHJtm0hnkU8HwJzhSTbXCGEANtcZlsSD2QQVwgBCNtcJmRsWxIPZBDPSxLmgSwLAZhnMbYtSYjLjLnMWIgXQJJtALAtSQhA2OaFksQVBjAGAATmgYxlAYgHksTzsA0AtiUJGfMikGSbF0wS97PNAwgZ80AG8bwk2eZ+QoAxl0nCAMY8F3OFkDGAuEISl9nmMklcZhswFuJ+kmxzmSTbXCbJNi8CSbZ5IIG5wrYkLrMtCQFgHkgIQAC2AYwxDyCJF05gnoPAPBdJgG2eHyEeSGCeSWAA24grJAEYwJj7SeI52QYkAbZ5TpK4n23AtiSekyQus80LJgQY87yEEOYKYy6zjRACEJgHMhYCJPGcbHM/SYBtnpMkwDZgWxLPybYk7mcbkARIAmzzfBDcT5IkHkCSJB7Atm0EIEkSACAQVwgJ2eZ+kiRxmTFXCGNjLpOEeBZJtgHb/IuEZV4oSQghSbxgkrjMmMsk8QCSJAGSJAGSEIAkQBL3EwIk8QCSJAEAAvF8GACDeSaDuUJICCEEiGeTxGWSAEmSAHE/CQmQxAMICXGFQCAQV0gCJEniAYQkAZIASYAQBoN4FkmSAElcZts2D2AbsG2bF0ASYBuQxLMYAPPczDMJY+5nGbBsGzAGEJJ4TsbGAOKZDOaBhIS4zNgYsM39hIQwxhghwBgjiQewDWCuEBLiCgFIkgRIAiRxmW3bPIt5JoEAJNkGANuAbQQgSZJtAINBCAFCGAyAQQhhAAzmBTHmX2IbMDYGjHkWg3g280zmmQTiCtsAYMzzEggMYDDPZAAMBsA2z0UCBIAACQmQAHGZMWDMZba5n5AQgAAk8ZwkAYgrjI25nyQeQJIknpN4/mwDtgHbPCfbgG2ek22eL4kHMkhcITD3E89LAJa5QghxP2NjrjDPIgmQJMQDSAIQz2QkcZkk27Z5FmHbNmCMeBZJiCtsA8bGGEAIkMQD2OYBLPMs4tkMgDHGYIS4TMi2bS6TJIn72ZbEAxgjAAQgSRLPj22ehyQhALDN/YyNeU62eQFs8/xIAiRJ4gEkcT/btnmRCQFCQlxhAAzmCkk8i0AAQhgAgwFsIxDPZJ7F2BgwBgDbtgHbPBfzQEI8gG3uZ1sSIIkXTJIk7mdbkiQeQJIkQBL3kwRgMM8iSQhAXCEkBAjxAti2zWWSAElCXGbbNoB5IEmSeCCDeSaDeSaBQAAIAPEczPNhMC8627Z5wWwDgLFtwDaXCSGEhDDPIkkSAhCSxGW2bQMYAIFASJIESBICJAkJCXGZbcyLTpIkXgBJgCRJkiQBknihJEniCgNgAGUazGWSbHM/SYBtHsC2JEASxph/iSTbXCaJZzGAMfeTxP1s85wk8Szm2QTGmOdkWxLPRWCei21JXCYJ80zCNg8gCbDN/SRxP2PMA0kCjDEPJAQgAAyAQRgDkjDG3E/ImAcQAowB25K4TJJt7icJ24CNJAQgANvcTxLmCsuYK4SMuUwS97PNC2EASYBlzPOyzWWSJNnmRSbJNpdJAjCAMSCEeCaDAGzzAtiWxAsgBBhzPyHuZxmQBQDGXGZbEpdJss3zMogHMhYCMABCEgZjmRdAkm3bXCZJyBiDkMT9jDFX2AYQQkLGPIAQD2DMZUKAZVnG3E8SYJvnYhAPJMk2z8sgnskAiOciBADGvAC2JQEABiEAjMA8gCTbPIBtSVwhYQMANhJXSNgAYFsSDyDJNlcYhCQus83zkGSby4QABGCb5ySJy2zblsRlsg1IPIuNxPOSsHketgUAEgBIso2NxGWSbNuWhBACbAMYAPECCSHANgbxHAwgZJkHEEIAtm1L4jlJsi0JsG0sBACSbPNAQshYCLDNA9iWxGVCAOIK21whZGEQzyRsc4WQBRhzhXkmIck2DyAEIGzzAJJs8zwkGWMA25Ik2QYASVxhMJYBQJJtLrMtiQeQZBuDeCAhYy6zLYkHsC0JkMT9bHOZJC6zbRuQBEiyzf0kcT/bGIQk2xiEJNvGQkLGXCaJ52EbwFxhLAmQBNi2LSTJ2BgQAoSMjQEhnkXI4lkEYJvLJNm2LYl/JUlcZtsYEOJ+QgBgzGXGQgjM8yWEsM0VQhZgzBUG8XwYhJBlDCBkbBuQBEiyzWWSeADbPD9CgDEPJDDPZADEFZIADGDMA0iyzf0kcT/bXGEQgCTuZ5vnYgDE82EAY0mAJACDsA0AtgFJ/EuEEAAGYRuwLYnnIQmwzf0k2eZ+tiUBkmwDtiUBkmwDkmzznGwDkrifJMA2z4EQz2ZbEi+UJK4wAAbzTAZzhZCQkJBtni+B+PcSGACDeS7GXGZsG8AICWEwxrYB21xhnsU295MkieckiSsMICSJ5yEkiSsM5vkzzyaeRQghiQcSiGexzf0kcT/b5gphXhiBQGAADAaQBQjxPGzb5gGMbfNABrBtm/vZ5jJJgG3uJ0kSz8O2be4niechxBUGYxsB2OZ+kiQJSeJ+trlMkiSuMJjnQyCeL0lcJgmQJIkHEJLEFQIQEsJghLhCIADMFUJcZts2YJvLjLmfJJ5FPBchSTyAEMYY80xCEg8kEM8mhBDPh0A8k8EghHgA24Bt21wmJAQI8QBCQgDmmQTCmOdmnk22wbbB2FwmIYnnJAmQxP1s80wGbNsGbHOFucI2l0mSxP0k8cIJAPN8iOdLEs/JNvcTD2AjCQAkHkCAxP0k8ZzEZRIgLrN5wYR4UZgHss39hLifEOJZLHM/SbYB27a5nySehySei7hCiOdLAIAkAPHcxDMJzPNhEIAkrhDGAGAsxPMykngA25K4n23bAAYD2OYy25J4XgKDAWxLksQDCAEIQAiBAYyNAcwVtnlOtnl+JPH8SAIkAZJ4QYQQVwjANiAEGEviORkb8wDGgDHPQxLCGBASAiQhACEhnot4JnGFECDEZZK4TBJCkiQus22byyRJ4jJJPIAQxtjYGGObB7CNATBCQhhZPBfzbAaBQCAAxDMJBAIBIIQADIAxxghJAiQBkviXSOJZBOIK27YBDADYNkYAkiRxhUBcYds2YJsXRCAAxPMhnkkAgJAQBmPbGPNMwjLPRTyLbUAS97Ntm8uMbXOZJAQGQDyLJO5n2zYvgG3ANs/JNmCb+9nmMtu8ALZt83yJy1CmwTwnSYBtXjAhwJgHMoh/BYF5Fkm2uUwSgHkWy4AsAPFM5grbAAKQZBvAGEvieRnE8xIyxiCusC2JB5AEALa5TBL3sw3YliQJAyAA21wmBBjzLAYhxHOyjHlekgDbgG1JXCYJYwzYlsSzGAQgCWPM/SRhrjDmCgMghIx5AEm2eSCDeCAhwJjnZFsSDyDJNpdJAmzzopHE8zAWAowxV9iWxGWSuMy2bUk8gJAx5pmEJMwVljFXSOIBbPMAkgAM4tkMYGxbkhBgG7AsJMk2l0nCXGEZY1sSDyBkzAsghMAAxjwXgxAyti1JyBgAhIy5TBJgjBECLGOukARgni/LmCsk2eZ5CBnzQAZxhW1JvCA2kiTbPA9xmYQNmGeSZJsHsC0uk3getiVxmW1JPIAk2zwPIWOeh21JQsYYhCQAg7AN2JbEC2BbksCADRjEZRKXSbKNjcQDSOIy27Ylicsk21wmMNiWxHOQAGGbB5BkmwcyCEASYBsAbEuShHkOwjaXSeIy27Yl8QCSuMIAxjyQwFwhiSvMMwnbXCZkzAsmhLjCNgYQsswVBiEEIADAtm0uk8QDCBljEIAkwDaXSeIy27wIJNnmCiELMLYticuEjHkASVxhAGPbQjyLuMJYSJJt24AkXjBJXGabyyTZ5gURmOclyTYGAUgCbHM/IQAB2DYW4jLbkgAhwJgHMgghY64wiOcihLDNi0ASBmGbF4XAABgA8UwGIWTMFQbxXIR4IGGbF0CIK8SzmWcxxiAeSJJtLpNkm/tJAmzzAJK4zDZXGAABSLLNAwkhwDbPxQCI5yKJ52KexZj7CSGMMc8iZMwD2EYI8aKRZJsXQAhhm8uEELa5TJJtXgiDeCDbgCQusw1IAiTZ5kVgWxIgiediEAFIksQLJUkSAvEcxDMJAAEI8QBCXCYEALZtA5gHss2/xNjYGMAAGMyzCAGSAIQkQJIkLrNtGwFI4lmEJGMA8UC2bdvmAWzzvMwVkgDMMxkAAUgCAAzGtm3EsxnMMxkAgxESQiAeSBIgSRIGwGAA2zyLeCYDYDDPZAAMRkgIQCAAY8C2be4nCUA8kwAQiOcmAElcJgmQJAmQBEjiBZDEA0jiedi2bdu2bQwGwAC2bQO2eQDbgCSehxBXiGcSAALzfNkGbNvmeRkAA9jGABgA81wkAYhnExhAEiBJEiAECHGZbdtcJkkS4tkM5jmI52AAzAtkns38CwSAwDyQJEASD2DMC2UbsM39JAkAJK6QeH4s8Sw2lxkAg23APJts7ieJyyTxgtnmMtvcT8g25pkEANjmCiHEA4kHss39bPMcxAMYAANgm+diA9i8EBLPS9jmfrLAPA9JgCSexQBC3E8Sz0U8i2XuJ4krzANJ4jkZY2TJwjyTeRbbPC+BuEIWBgCMAWMAg3lu4nnJAgDMs0jiAYy5zBjzLxOAJJ6TJB7AmAcSCECSbWOMbSEh7mcbwCAQgCSeH1mAbQCQBEiSxGW2Adu2Ads8gCTuZ9s2z8VcYduYyyQBAOL5MJjnIsT9JGEwV0iSxBUGkMWzGACDuUJICMBcYZvnZWzbBmwjHkgSz8O2bQAjxP2EhAAEYCwJASCEhHhBBCBJElcYDAYDGCMQAOaZBOKZzBVCkhCSeADbvAC2bQO2eSADSAIQgCReMNuAsTFXGMwVkiTxALZ5FoF4JoMBMBjAtm3AWBIASAIkCQGSJHGZbdtcJgnxLLZ5ASQhbPMs4rlI4jJJPA9j2zwP29xPEiCJ5ySJ5yEJkMQLYAwo0xKAbZ6HbUmAJJ7FAMaAJJ7FPIsx9xPifsYAxlgSIGTMCyDEs4jnZgAMwpgHkGSb+0kCbAO2JXGZJAADGPP82JbECyWJ+9nmuRgEgJBlDAAYxLMJIdsYQBJgzP2EAMSz2OZ+kgDbAAYwlsQDGAsJAcbcT8gYAyAASbZ5ANuSeABJAMaYyyRhAASAMeb5kcRltnkASTwP21wmCTDGXCEJMMYAQsYIWYAx97MtiRdAkm0eQMiYB5AEYIx5AWwLAYgrJNnmMiFjDOIKIcCY+0niCvNMArAN2JYEIIRsYxCSbNuWxAMJzBVCxjyAbUlcYZ5JvCCSMM8kbGMQQjwX8UzGmPtJ4jLbPIAk2wAgZMxlkmzblsQVBiEJsA1gI4kHkGxzmSRswIANIAECAzZgEM8kQOIKCRswGAtJ2DwHg5Bk27YkLpOEAYx5ANuSuEySbQxCCPEstjGIZzKI52SQwGBbEi+UwDyTJC6zzWWSuMw2lwkZYwBjISEE2DyTbUk8L4MQAhCAsRBgm+chicts8wJI4jLbACAJAxgDGGNJXGZbkiQMYIxBXCHEsxjLXGabyyQBQtzPGAAwiGczAAIQQtjmMts8gCQusy0JgblCkm3uJ8QVwjYASAIA27YlAYBtSYAQYMwDGcRzEEKAbS4zFhIy5jJJtjGI5yXJNg9gWxIASOIBbNsGJAGSbNuWBADGGEASD2BbEiAJsA0AshAAArANAELG3E/IWBJg21gIEAKMuUzImBfEAMa8AJIASTwn27Yl8UAGAQhxP2OehyTMMwnb3E8IY5kHkGSbB7AtCZDEs5hnEphnMpZ5AEm2eQBjWQghwBiDeCAhY+4nhLDN/YQQmGcx5jLbgAAEIK6QZIx5IEk8J9uAbSHECySEANv8SyTxgtnmediWxP0kAba5nyTANi+AJNuAsRCAMZbEZZJsA7YlAZJ4fmzzggkhguchicts8/wYG/OiEwACISQECGEwgBAviHgm8QKJZ7FtG7DNCyAJkCSJBzKYKyRJ4jJJgCQuk8QDSJIEGHOZJC4TAgBj2wDGGMBgJAkhrhCyzXMRiGcTz5/EAxgbSwIkSeIyIQCBAAEIScaAsTH3kwQAtm1L4vkx5lnMMxkMgMHYts1lkiRxmW3Atm0ewLZtLrPNczEAIAmDwQBCgCTuJyTEZZK4n23bXCZJEiCJBxKSeH6EAEkAYNs2YCzEFeYK29zPMveTJInnJIkrzAtiG8AYcz/bAOKFEZK4zNg2YMwDiX+BABC2ucI8k0A8B/NM5oFscz9JkgAEIMT9JNkGJAFCQojnwwawucw2z8sGzLOJZxIgAeJ+EhIAGLBBAEgSAGAwkoR4AEmSAAQgifvZ5jJJkngg8cIJ8Sw2IACwkbhMEiCJ5ySJ50sCkHgWcZkAWTyAMQDiMts8J2MAAwgBiCuEuEwS97PN82MbsM39JPF8CcQVxrwQBjA2xtjmAYSEAMTzYQAhIZ6HMYB5JiNJEiCJF41trjAABgNgEM9kni9JAOKZDObZhG3uJ0mIB7CNAYwlAZJ4TpIkcT/bkgBJkgBJtm0DtnkekgBJXCaJ+wkBiAeyzXMRiBfI2BYCEM8knkWIK8QDGQsJcZlt2wAgJAkQ4l9PEgBIkgQgnkk8k3i+bCOeRRLimQyAAWzbBmxLAoQkAZJ4IQwCASAwGNu2Ads8JyEA80zmCiGuMLaFAASAeDaDATAPJEkSIEk8iwFAEoABbNvmX2Js2zaXSZLEs5grJEniMtvGXCaEeCaDeSaDsW2bB7DNFQYDGNvmRSZJiCvEswhxhZAESJJkG7DN82Ob52TbNs8fykwuk8T9bAO2AUk8J0mAMSDE/YwBIZ6Tba4Qsowxzyaeg8AAtiVJAowxL4gQwhjzfBiEJMA2z0kSgAGMMcaSAEm2uZ8k7meb+0nifra5nyTANoABEM/BIABAEmAbAGwLIQBJ3M9YljH/GpIA29xPEgDGAOaZbEviMkkAtgEbsCReIGMhIWMM4gohYx5Akm2ek21AEpdJ4jLbXGZbEi+AJIxljCSuMIAxzyKEbNvmMkmSeADbXCYJsA3YliTJNs8iMIBt7icJEDLmhZJkm8skcZltLhMyxiCeg0E8L0m2AUCSbduShIx5ACFjDOIKGwkhY2wkSbZtS5Jk27YkAEBgrrAtJISwjHlesowRgCTANs+PJNsYhCTbXGZbEpfJQhgLIWxzhY0kAAyAbUkCAzZgCZANCJAAg22BJMAgnpNthAAkcZltrjCIF4VtSbwAkrjMNgAIAQjMMwnbtoUEBjBgISTJNpdJsm1bkiTAgM1l4jmY5yDJNgYhZMz9hBC2ucy2JJ6HEICwzf2EjIUQtm1zmSSeh20uk8RlkrjMNi+cwDwHAxhL4n5C3M+YKwxgLEkIAIwxiOdljAGEhCzzvMwziReREGDMZZJsc5kk21wmybZtSULGGMBYEg9gW5IkzLMYc5mxEALzQMZCkmzzPCTZ5gFsS+IFkGSby2xLkmSby2zzAJK4nyTbkgDbPA/bQgBCCAFgAGMuMxYCJPGcbHOZMQaQhJAFGPOvIQmwzfOQhQAQz2IbACTZ5n6SANtcJgmDARDGPCdJ3M82z0tgnoOQBRhzmW1JvGBCPJCwDWAAhBDiWWwby0I8m0EAkgDbPJMxABL/DrYlAZIwxlwhMFdIsg3YBiQBkrifMSAEYAAEYJsHsC2Jy2wjhPiX2JbEA0jiMtsAIGTM/SQBtnnBJHE/24BtSTwPIUTY5t/AYJ6bwbwwxhgwNjY2tm0bACQJcZkknsUAtm1zmW3bXCEAIcQVkiRxhXgWSZJ4XgIBIADbgG1JkvgXmReRkCRJQpIwGMC2bcC2bcCY5yELwGCeg40BsLlMEv8iA9jGtrEtCZAkifuJ+9m2eQGEAGPA2DZXCEncT5Jt7idJEiAJsM0D2AZs20bY5gFs2+ZZBOY5CGPuJ0nINveTxLMYAPN8SQJsA7ZtAxjE8yckcYV5LpIk2eY52QYwGGOel0EIAYAQgJCEEQIJbAMgDCAEABgMIAshBACSAbAAENg8i20usw0AGMC2bSEAAWCeD/N8SeJ+trnMGEAAtgHbtgFjnsUIcZkknkkAEhIACLC5zGCekwSY5ybuZwNgkAAEAoMBSVxmbJsHMLbNc7ItiQewzf0k8XyJZxPPl/nXk7jC5n62wTwPSTwnSTwnSTwX8Uzm2czzsg3Y5vmxzXOSJInLbNvmMkncTxL3sw0Ycz9JiOfDPJsx5gFs2+YBbGOel23bXCaEeCaDeT6EJB5IPJBt7mdbEiAJABCYZxLGgG3bPIsAjLnCYIS4TIgHsA3YxrwQtnlOkmzb5nlI4n62ucy2JEmAJJ6HJEk8X+IK24CxMWDMAxnANuY5mOdiG/NsBoEQwrwgkiTxPCQBkiRxhTHmeUgCAGOeRTwX2wACASBeGAFIksSzGACwbRvAIABJkgBJPIBt21wmSYgHEoCQEPcz5jkJIZ7FtjEPIEkSAOLZjMEIAQhAkiQus20bgxECEJIASVxhnkWSEPezzQtiMBjMMwnE8yWJ+0kSAiRJ4gEkSQIA2zwP2/xrSOIy27Z5ASQBkiRJ4gpxGWqtSQIkcT/bvGCSAAxgzP0kAba5nyTbvMgkYYx5HrYBSdzPNiCJBxAy5vkSQoBtAIOQBNjmAWwDkrhMEvezDUji+bHN/YR4Hsa8CGwDkgBJtgFACLANWBaSZBvACCyukMRzMc9iAcgGzHOTBGDABgCDeCBJtrlMyJgXgSTANveTBGCMMcYIIUm2ucw2l0niBZDEA9jmeQgZ8zwk8QC2uUwSYJsXTMjYNgAIIZ5Fkm1eKNuSJNnmgQyAeBbbkoQABAYw5oEM4plsEIB4DgYhxGXGYJAE5gpL2DwXAyAk2eYBhADLGNuSJNm2LcQV4lkkcZlt21wmScgYg0BgHsi2EIB4IEm2eR62xWUSV9iAQSCJywzYABIAAmMjCQzYIAQgCcBcYcwVBiHJNgYwlsRltrlMEpfZlsQLYhCSeADbPICQMVcYxAMJDNhIAsAA2JYkCRswYCNxmW1JPA9JXGEAYx5AEgDY5jJJtnkASRjAmBfAtiSeh21JPA/bkrhMEs/DNpcZC3GZJMxzELa5TMgYADAISbZ5ACFjXgRCvFDG3E8IABAAYJvLJNm2LYkHEDLmCvNM4vkwiGcyzyQk2TYWEjLmMttcJokHkGQbACTZti2J5yHJtm1JPA/bkgBAkm2ehyQewDYA2JbECyBkzLMYYwCQxPMSmGexDUjieUjiBbDN85AEALaNhXgBhLhCAJhnMeZ+QtzPmAeQZJv7CSGusG0sxLMYY0mAJMA2DyDJNpfZlgRI4vkygDHPSQhhm+dlEM+fEbbE/YQQxhhAkm2ekxCAAGxzPyHuZ8wLYFsSIIkrjDEgiedkmxdKCDDmASQBtnkggQFsSwIQsrifZcwDSeJ+tvnXkwRgEMHzIwkBIBBCCMTzYTAviG2eHyGeRTyTwDyLJEkAYBuQBEiSBEgCbAPGXGYbc4UkSTyLeQ7iBZEE2OYFsG2b5yUQCMQVxsYIhDFg2zYASJLEC2Wb50eIyyQBEggAIQkAbNvmCnGZjcEACADx/BnAxkYAkiQASQACIQkQwmCukCSJy2zb5l8iBAgJAbYBY2MEIAmQJInnJIkHsA3Ytg0AQkK2MVdIkgRI4gFs85wkSeIBJCEAScbcT4grzLNI4oWSBBjz/AgJcYUAEAgAYQzYtg3YRgACcYUNtnkg8SzGGBAAQgIhAYhnEggAAQgBiOcmMIAkHsCYy4xt8wC2uZ8Ql8lCAEIIQBL3M0Y8L0k8BwEg82zifhIPIJ7FXGGQABBgMOZFI8QLImxjbEsCEFcYA7YBDCDECyYJQAAgEObZJJ7F5vmSeD5km+dhmwcyzyKJ52GbB5AEIJ6LJEASAEiyzf0kAYAk2zwn29xPEs+PJC4T4jJJXGbMFeJZhABJAIAAAEkA4lmEhHgBJCGegwAQiH+ZeSBJACDJNmBsjDEW4gpxhRAgiWcxAAawDRgb80DGtpAQIInLbNsGAEncTxKXSbJtm8skAZK4TJJtwLZt7ifJtm3AtiRJPIAknh/b3E8S4pkEIAlxhW0AQAAI27Z5LkaSJB7ANvezbRuwDQC2eU6SJHGZbduAbe4nxAPYBoyNMbZ5QcSzCcQzGcC2bcA2VxgMgHkWIQwgJAsQ4gWQBEiSBEjihbIMCEniCoMBMEJcJoRAAAghIQCwbRvACEBcIQkhAMwVtiXxQogrJCGeSTyQJEmSJAGSeC7iedkGJEniMtu2MRghQAiwjblCkiQuk8QVQpIQ97MNYB5ISBIvGkkAYNs2D2DbNs8NZSaXSQJsc4WQZcxlkrifbZ7FIJ5JYADbgCTANiCJZxFCmGcSz2YAY56TbUlcJonLbHOZbUk8i0EAQsaAsSyEEM9L2AZsS+KFksT9bPOCCXE/Y14ASbYB25Ik2eYy25J4HkLGPIsQss3zkATY5n6SAGMABIjnYXM/85yEkG0AEDLmMlmWAUASBjDmeUjifsaALAAw5oEMgHgukjDPYszzsM1lkiTZxgAIQJJtXighAIEBjLlMiMuMAQCDeCYDGEuSZJsHEDLmBbAtSZJtLhMCLGMwiBeFwIDNA0lcYRCSMLYBBCAE5pnEs4hnMoAxlwkZc5kQYAwYC/E8bHOZJCHAGMAGcZkQ4pmEbV4QgbEtSZJtrjAIJGweQBI2tnkmgQFAEhhsBELGiOdiW5IkwDYgxHMyFgKMuUySbQzigWxL4gFsS+IyIQABGGOeySAeSBLmMvMA5jIbECBZwrYtiQcwFuIy21wmictsS+KBDOIKIR7A2LYkSbZ5AWxLkmSbyyTZtg0AkrhMkm3bACBJkm0eQAhA2OZ5SLJtW5IkzLMYA4Ak2zyAJNvGQlwmBCAwGMtcZlsSDyDEcxEYwJjLhACEba4QGAxCEg9kAGMMYCyJKwxCkm1jWUIIxBW2uUzImBfCAAhJtvnXsA1IksQD2OYy25J4HrYlcZkk27YlAZIA2zwP25IASYBtABAy5gFsS+JFZlsSz8O2JO4nCbDN/SQBtnkBbEsCANuAJB5ACLAMyDIWAoy5QmCuEDLGWBbifraFEEKAMc9iAISQMQbxwgkZYxAPJMk29xNCXGEbwACIZzIIQBLGGIN4fiTMFZJtHsA2IAmQBNjmMkkA5pmEba4QQoBt7ieJ+9nm+ZEE2OZ+krifbS6zLQkQQtgGMMaAJF40tiXxPCTZ5n6SuJ9t7icJsA3YlsT9bAOSuEwSYBsIQALx3IwxL5ht2whAkiQMYJvnYZvLJAnxLOI5CMTzkgRIksT9JHGZJECSJACBETIGjDEA5pkE4tnMs9jmMiEEIIkXyrZtnpdAPJPBXCFJEvezzWWSuEwS97PN8yOEwQAY24Bt27Zt8y8QCBubZzIANs9BkiSexdgGMBhjAINBCCEkYZ5NSOKFMADimQwGwDyLEA9kAAzGGDA25n7GXCYJsA0YG3OZbcC2bcwVtgFASAgwxjyQEAZjzBVGkhCXGRtLAmxzPyEhQAgB2LbNsxgEAEgChABASAjAPB9CEojLJJlnExJCAgMYhBDmhTDYPDdhDGAwxjwvAxgDtnkeQpgXQAgAgbDNZbYBQJIkQBIGQDybwUgSAiPxLBI2DyCegwEQzyQEYF4QIQRgzPMSCACBeTYhifvZ5oHEFZIAxHMzz2KbZxFgJPMCSAA2l9nmfuaBzP2MAds8J9vcTwjAGHOFeRZJ3M8297PNv8Q2L5gQD2QAzDMZAIMBbHM/27xQtrnMNiBk2xjzHAQGsA3YNuYyIQDzbOLZzBXGCAABSBLifrYBwJj7yeIyIZ5FPIsQYAxgrpDE8yOJZzEPZFsS95PE82Ob52GbB5AkiRdMkm3bgG1AEs/Dtm3uJ4nnZYwxmGcR4jIhHkhcISSJy2xzP0mAJEmAJNu2eZFJkgQAtgHbgG1AEiCJy4R4XgLxbOZZjAGEEPezDSAABOKZDOZZjIUkYTBXSJLEZbaNAWPM87LNFQYDYK4QEuIyY8C2MVcYAPMskngO5gqJ+9k2NuYy24Bt27wg5tkMgPmPYhuQJAmQxBXiWYy5zDYPYNu2sW0ukyQJkITBABjbtgHb/CtJ4n62AUmAJEk8G3IaQNjmhRCY52CMJfFvJcT9jLlCAJh/LSEEBsAYA8aAJAAQAhAA5lmMAcC2JEAS97PN/SRxP9s8P7YlAQgMgEFcIck2L4AkwDb/IoN4INuSeKEkYYwBSQA2YAAkQLa5nyTANoBBvCBCxjyQQUgCbPP8SOJ+tgEMIIQAjAEhwJgHMogrbEvigQziORgAASAwD2QbkARIwjyLMQYhyTYGcYVtSUIAwjbPw7YkSbYxiCtsA0IIIWMuk4QBjDEIIQAwxiCeySCEjLlMEmAbsC1AAjBgIwkhwFjINvcTGMBIAhDYPJMkLrPNZULGtoUAhJCxbe4niWcxgGUhIQAMYBAgwFjImPvZ5jJJvMgkAWCbK8RzMM9Bkm0MQsgYAxhLEjLmMkk8kAGMuUwW4pkEgLnCmMsk2eYBhIwxCEm2eQAhY64wgLEkLhOAEM9kc5l5AWzAIJ6DQRIAYBDPZBCSbGMQz8EIAcYA4oEk2bbNZZJ4kdmWxAPYlsRlkrjCPJOwjUG8QEIWBoGwzfOwLQkAjIW4wiCeySCeD4N4JoN4DgYwlsQDCAEI2zyAJK4wz2KMQUiyzQPYFgIQkmzzQEKI52QbAwhZ5gEk8QC2+VeSxGW2AUCSbduSuJ9tQBIvMtuSeF4GQACSbAOAJJ6HbS6TZJsXQJJtALAtiRdMEs/JNi+AJC6zzf0kYRDPYpsHsC0JAGxLEjK2DQghAEmAba4wiGcSsgBj25IASYBtrjCAJGMewLYkLrMthBACjAEhwBhjWYjnJGTM/STxgtnmCoN4JoN4LpIA2xjEs9iWxGWSuJ9tLpNkm+dHEmCb5ySJ+9nmCiEE2AaMhXgRCAHGvGgkcT/b3E8SYJsXQBJgm2cjbAOYB5IkSYjLJGGeRUgIEDI2BjBCQojnIUlcZts2VxjMczNCiCskSeJ52LZtbBuDATBXGAPGgCRASAgwxmAQCGNjISFAElcYAPNAkgDAGPNchLifbQDzTAKQJMk295MkiftJ4jlJ4nnYto14Ftu2JQGSJAGAbdu2bXOFeaHE8yPuZ0AgBOIKIUnGgG3bgG3EcxNCPC/z3ARgDGBsA0IISVwhnkUSIEkSVwghAMBgHkhICCGJ50tcYRuDAGwDiGeRBCAQthGAJAAwti2J+xnbBmxzhQAQQgACA9jGAJgrjHkesowxz5cBc5kNEgACIR5ARgbASAAIYV4gScZcZox4voyNeV4CYTAPIIS4wgDGPCdjLhMSwmBeEHOFASQkAIkHkCQJABDPYmwshAGEAMRzE89mAMwzGWME4rlIAhDPZgAhYy6zDWAAIe5nLAkAhHg285wk8QAC8VwknpsQL5gQz2KeD/HCSeIFkySJy2zb5gFs2+Z5iecmnpt4DkaSJJ6TJJ4vYRuwbQwAkgBJknguwjYPJK6wDRgbY4wBjCQewDYPJBAAArAtJIQBjAFjnpNtrjDPn7hCiCsMYJsHkMRzksTzY9s2YJsHkMRlkmzz/EgCJEniASRJ4jLbgG3Atm0uE5KEACQBkgBJAAYwxjwX25IASZK4zLZtwLYkSYAk/pUk8bwEYJvnSzwHgRASwgjZNjYGMMaAkBAgJAQAkiQBiCskCSEQgCQeSCAABAKQJInLbAO2AdsA4rkJBIAQAiRJ4n7GkgBAEgDYts0DmMsEAkBcISQJg7lCkhDPIp6LbV4w2zyAJC6TxGWSJPECSOIyIR5ACJAkiRdEIJ7JYK6QxLMISfwr2bbNZZIkSQJscz8hSXIabJ6TwACSANsABgEIAcaAbSEAIWTMZZK4n22uMADiCiHuZwzYlsRlkrifbV44g3ghJHE/29xPCDDmOUniedgGAEk8P7YB25J4HpJsA7YlAZK4n23uJ4n72QYwiOclyTYvAmMhABACLGOuEABIgG3AIJAA2QYwCCFjAEBgnpdtSVwmiedkG7AtSZJtrhCYZzKIK2wLAQhJgG2eRWCukGSby4QAy5grhIy5TAgB2OYFERgMYFlIyNi2JJ6HJB7Atm1JvAgk2eaBDOKZDEKI58c2YCxJErYBsM2zCYwQ4jJJGGPAtngmSwJJtrnCIB5Ikm0usy0EIJ7JAMY8gBDPIq4Q4lnEMxnbgLEQV4hnM4CQMc8iJNnGICRhAGMukwAZsLnMIJ6DbUlcYZ6DkGSbF8C2kCSeRQC2eX4kcYV5IGOexTyTkGQbAGxLkoQBjAFAkm0uk8Rltm0kxGW2JQDARhKYZ5KEeS7GACBkzGW2hQBJgDGXSbJtW5Ik21xmWxIASLLNZZJs25bEv40Qsi0EAIgHsg0ACFnczxgAbEuSZJvnIcm2bS6TxANIss0DSLJtLAsAjAFAEs/LICRxmW0M4gWxLYlnMcaSuMxYiAewLQmQxHMxz0HY5gWQxPOwbVuSJNsAYFsSL5RtHkASIIn72eYySbZ5oSRhAGNeAElcZhsAbEviASTZBmwDkgBJgG2ehyTbPA9JtnkASZhnE89iG4MAJPF8GcCY52UQz2QkAcY8D0m2uUJgnkUSz2IAYy6TZBsDIJ4/IwlAALZ5oSTZ5n6SANvcTwhAABjAmMuEjLmfJACDsM0VAvOCSLIN2JbEA0gCbHM/SYBt7ifJNs+XwDyLJNsAAvNMQohnMYAxBgFI4jnZ5n6SeMFsA7Yl8fzYlsQzEYB5NkmSMABg2zaAAYSEEIgrhABJQsa8EAaQBCAkcYVAPIttXihJiCskSQIQz0sSl0niBRGIK2zb5gWwzQtiHkgSIEmSJC6TZBuwzb+GkBCAuUIS97PNZZK4zLZtAJAkiSuMbQBAIDDPJiHxAOIK8SwCMOZZDGDbNg8gCZAkiWcxDyQJsM39hCRxmbFtAAMYI56XJMyz2OZZBAJzhRAPJADbPCfbtrnCAMbGQoBlALDNC2Wb50eSJEASD2CbZxEA4jmYZxIIBOI5CAAbwMbmgWQAyzbPIp7FABjEFQawMQDG2DbPybYQV5hnE8/FMs9inkkgAMQzmRdOCBAy5n6ShHh+hBAIEPezbRvMA9gGjHkAY2PE82XbNmDMcxH/OuK5CHGFuEISz0W8cDYA4oHEc5MEgMDI/Ets85wkAZIwDySJ+9kGANuSAEnczzZgm/tJ4jlJksRltm0DGECIf5FBAAjEFbZ5foQAIa4Qz5dtHkASlwlxPyEeQBIgCQEgANtcJiQJg3kg24BtnpMxDyBkmxeRAIyNuUwS97MN2LYN2OYy2zwP25IkAZJs2+YBbNvmfpJ4EUjiOUni+RIIALDN/WzbBmzzALa5n23bgG3+JZK4n20ukySJ+9nmMtu2Adu8EOIKY2Oel3iBxLOJB7Jtm8sk8UBGEs/JGEAgnsW2EAIBIBAISVxhnoskSVxm2zbPyTYviME8B4F4FmNJPIsxRgCSuExIEveTJIn72eZ+trlMkiReBLYB29zPtm0A80C2ucI8m3k2g0AAiOdgXkS2bfMAkrifbdsAYJvngDIN5l9kAAQgCbANYBBCxjyAEPcz5n5CgGXMswgZA8ZCvFCSANtcIQDM85LEZbZ5HrYlAQgA86IT4lkEYJvnJMk2AEgCbPOcJNnmgQziCkkABjDmgYQQz8M2z0XIMsYAiOdLkm2ehySMMc/BNpK4n21JgCTbXCYJsA0IAQjANs+XwLwoJHGFMQYwiOclictsc5kk7meb+0mybVsSD2AbkMT9bHOZJEm2bUviBZBkmweQBAC2bUtCYJ5JYJ6XLMQVlgEhDGDMZQLABvFAtoW4zFgSD2BbEi+AkDHPw7YkLhMy5goDWBYCANsAIEnIGAAQmOfDIK4QMrYtSZJtzDOJZzKIK4SMAQCDuEIIMOZ+NmBAEg9kEELGtrlMEi+IQTyTQTwHgblCkm0MQgiwjHkgIQBhGwNYFuIySba5TMiY52Ujicsk22CQJNtgkCTbXCaJ52UwlrnMtiSuMIgrZFnmediWxGWSbHOZbUmSbHOZJNs8D0m2AcC2JF4ASQAGARhjhBBX2MYgJPEAtjGAsSQusy1Jkm1eAEm2bUvieUiybSwkZMwDCAEIDGBsLMQVAvNAkmzbRggBGIQk27YlcZkk24BtQJIk27xwQojnZJvLbEviMkk8gG2ekyTANi+UJNtcZpvLJHE/SdzPNg8giedhmwewLYkHsC2J52FbEv8SSYBt7ieJ+9nmMkm2eV4GAQhhLAOSuJ9tABACAGOelxDiuRjAmBdOCAG2uZ8k7mcbEELY5jkJAcYAIAQgbBvLQggBlgEhwDYPIMk2z48kwDb3EwIQz2KbB5DEA9jmMkm2AUCSbV40krifbe4nCbDNA9jmMkk8gCTb/PtIAowxkgDbvGCSANv8qxE2IBAPIEkSl9m2bWzM8xKAMfeTJAkw5jJJiGcTGMC2MWAMYIQASZJ4ERkhLpPE87AN2LbNc7INYIQkAZJ4HrZtc5kkSbwAxra5zDbPRSCeRZJt7ickBGCegwCEJPEs5oWQxLMYQEhICAMY2+YySZJs83wZQEiIy2zbSAIkSQIkcZlt/iWSJPEAkiRhnkWSJF44A8iSBWBeENs8FwMgAECSbUASIEkSL5QkwDaX2eYKg7lCSBIgiedhm/sJSUIghCTxnIQAzHMTzybxQJIknkk8gDH3sy0JACTxnCRxP0ncz7YkLpMESOIyY2MhnpMkLpMESMIAtm0DxgBGkhAgyZj72eZ+koQAwNg2lxkDtm0DtnlOQjyTAUmAJEncT8iYB7DNZZIkAYhnEkJcZmwbY5vLZEkCEJhnMs9krrDNswjbXGYM2OZ+kgAhYwyYB7IB2fxLJAGSADCY52UAY8AYwABCgBACAxjzLAawzWW2JfEC2JbEc5LE/WwDtgHbtrlMEiCJKwSAwTwfQojnJMT9jAHbPCfbtrlMEiCJK8QVkiRxP2PuZyzE8zLPZGTZNgYwDySJ+wkBQoAQz0kSz8O2JECSJJ4v80C2MZIkAZK4TBIvmCRJPA9JkngekiQBkrjMtm1eKEm8YLYB29xPkiRAkm0us839JAGAJECSJB5AkiReNLYlSeIBhBDPJl4gY5sHsA0Y2wYwz8E8k3hBJPGcJHGZJJ4v80CSJCEQz2RsAxhACAEgEC+Ebe4nSRIvlDEPIEkS97PN82Ob+9nmASRJ4gEk8aKRJInLbPOcJAGS+PeRJIkrzAth2zYvgCRJknhBBAJQaykBAnM/SYBtLjMGhHgRSMJcYcwVQoj72QYA24AQACAAQJJtnh9JgG0AgxBCABhjnkVgnsW2JECSbZ4fSbZ5wSQBtgEh7mcMYBDPSxLPwzZgWxIgCWOMQTwXSRhjAIP4VzPPJB5Ikm1eOIOQZJsHkATY5jnZlsRlQjyLwADGPIAkjDH3k2SbB5Bk27YkLhPiAYx5ANuSJGGMAduSJNkGACHEFbZ5LgJzhW2eRQjxnIwxkoSMAUASD2AbACTZ5gGEuJ9lzANJwhgDGIQQlxlzmRCAwBjAXCbJNgAIGXOZbS6TxGWSuMw2AEgCjDEPZFsIAUjCPIsxDyDJNgZxhSTbACBkzP2MMZKEAARgjHleQlxmzAMJzPOShAGDAGPbgCTuJwnzLMa2JfE8JHGZbQziBZHE/WwDGIQQgLDNA0jiMtu2ASTxTBIgAGPM/STZti0uk3gAYyGusJEk2eY5CMwDCBlzmW0ukyQEIGwDGGMhLjOWxANI4jLbPD+SeH5s868lhDAA4grbvABCxgDGmMskAYBtSTyAJNu8ALYlcYVBIGRhEAjbGAQgBBgDGACBwFwhictsA4AQABjzPISMucxYCBBCXGGb5yHJNveTBNjmMtuSJNnmBZDEA9i2LYnLJNkGAEk8gG0AsC2JF4EkLrPNA9jmASRJAmxzP9tcJokHkGSbyyTZ5gEkcZltXgSSbNuWxGVCPA9jLpNk21gWgBAyNsYIAcaSACGuEFfY5oEE5lmEEBjAmBdEyAKMeV4Cc4VtIQDxTAYBSOI52QYASTyAbQCQBAC2AUk8J9s8gCTbPCdJgG3bkvhXksQLZZt/iSTANv82BgFIss1lkgDbvAC2JQGSANvcTxJgm+dHEs9EgAEwz0NIEiAkBEiSxANIksT9JGGeD3OFMSBJEiAJMAYADAawLQkBCGEwDyTEFQbAYAAM5pnMA0nifpIQkgDAtm3AtiRJPC8hBGAQiOdDPJN4NgFgAMwVtgHbPJAAEIAQD2QAWbIAzAPZts39bAOAJElcZmyMACQBgCTbPD+SJAEAAgAk8aKxzRUCASAwgG3MFUKSMM8mJNkGbNvmMmMusw1gnkkgjLlMEpdJAjAABiMJsM2zCACDEZLEAwhJ4nkI8TyEhACEJADAYDAYzBWSbHM/SZJ4ASRJAhDPZq4w5grzbALMA0jifpJ4AEmAJEk8k7lMEleYK2wDtoUAISGuMJjnIoQBEABCkm0AgwGEAEmAEAAgEM9LiCvEcxMA4vkTAAIEGGPuZ9s8i3g2c4UkSbwAxra5nySei3n+xHORxAsmiecgLpNkm8vMc7MNGMDYgMA8k22eyVxmm8uMJfF8iWcx5grxQJIASdxPEs9JEv8akrifbe5n2zaAeUFscz/bXGYsJAQI8QC2eR62eQBJkrjMNoABZHGFeTYDIJ5JIIR4QcwziReFsSTEM5lnMi+IJF4w2wBgmxdAEs9Dkm3bPCfbPIAkSTyAJElcZts2z8k2D2CbF8C2bR5AEpfZNuYySTyAbS6zbRuwzQNIksQDSJLE/WwDkmzbxtjmCgEgEM9iGxAyNgaMASEhABDCABgMgHlekoQQiGczz2QAY+5n2zaAQSCeP3OFbcAYsG2MAYSEAGOeH9s8P7Z5Edi2DdiWJInnRxKXSZIESAIASZJ4fmzzIrBtm8skSeKFkiQJgQCEhAAE4gohSQACAGzzIpPEi8A2l9nmuaHM5HkIcYWwzQNIss39JHE/29xPCDDmOQlxP2MeQMgYYywJkIQxxiCelxBgzLMYAPFcJNnmAYSM+TcR4gpjGRDiWcSzGcRzMAjbXGZbCCGEADBXGHM/IQCDMOYFsy0JACQBtnlOkgDANi+AEGDM8yOJ+9nmBZMEGGOeyQDGkiQBtgEhAAHYBmwDQoh/gcA8k8BcIWSMQVwhZAwAkgDbgCQus81lQoBljG1JPICQsW1JkmzzAJIA24AkwBjzQLYlSQIwAAZhDNiWBACSuMI8izEGMBYCEABCyDYPIIkHsG1bEg8gCTDGPJAk27a5TBJXGIQQz0XY5jJJGAwCMOaBDEISl9nmASQBmGcx5n6SMM8kMM9B2OYBhAAEBmOZy2xLAgAhwDIGg3g+DOIFkcQD2OYyIQRgm+chyTYviI0kMM8kiedhmweSsHke4jLJNjYCBAjMM9mWJInLbAOAbUk8gG1JXCbL2FgSz0MSl9nmMklcZhuQZBsAJHE/2zyAJNs8gG1JXCbEZZYxkgDbxkI8gG1JCAyAARAAxlgSlwkZ25aEwNiWJAQgbNuWxAMZBEKWsRDCtm1JPJBBCHGZMQYBCHGFsI1BXGFbEs9JCDAGMIAkrhC2AUCSbZ4fSYBtYwwgSZJt25K4zLYkSba5nyTANpfZlsRzkgTYBiQBtrlMEpfZts1lkiTZ5gWwLYkHsC1Jkm1jIS4zFuIy25K4TJJtnodtSVwmyTaXSbLN/SQBtnketoUASYAxAEiyzfOwLYkHEDLmgQziCkm2bUsCJPEsBjBGyMIYI56bQTyTwFwhZIxBPJOxLMTzEAIQgG0ewLYkQBL3s40BEAAgCcAAxoAkwDaAARCAJMC2sRD/EkmAbV4wSYBtXjRCCNvcTxJgm/sJcT9jDAKQBNjmBTEIQJJtwLYkXjBJgG3uJwmwDQC2AUlcJgnAIAKQJInnywgJYTCAbV4UAiFJEi+IQFwhCQEgANuAbWMAAUiSxAMJxDMZjBCXCUkCEFdI4gGMuZ8kAJDE8zC2bds2D2ReCNvGiOdijBGSBEgCMADGmCsE4gpJAIB4LpIkAZK4TBIgSRIvlG2eHyEhrhAIQAiD+VeRxBUGsI0BjCXxLOKFMLbNZZIQgCQeyDyLkCRAkjGAACRJQkhCIACMJO5njACEuMIAkgBJkgAh2xjEFZJ4XgLxTAawbRuwLYnnZQAMYJvnIgCEMWBszP1sAxhAEi+AbV4IAxjb5nlI4oHMMwkEgLDN8zLGmBdCEv8qAkA8m3kutgHMMxkAIcRlkrhMiCvMc7Ftmwcwts1lkiQBkngA2zyLuEIS97PNc7IN2OZ+AkAGwOYBDLa5nySeTQLE/cQVEoDEswlAAiTx/EgCAIRt7meb+wlxP2PuZ5sXgSReKNu2uUwSIEkIEOIyIR5IPC9JXCEeyNiY5yEEYB5IEuaZDIC4QpIQz2IQQojny7YxYMwV5gUStgFjwLYxl0lCXCEL80wG84LYts1lkiRxPyH+JbZ5HpIkAZJs2+YySZJ4HpIASTyAJO5nW5IkHkCSJB5AkiTuZxsQso2xjXkWSbZtA7YlcT9JkgBJtm0DtrmfbUk8J0lcJiRJCJDE82NbCMBghIQASQAgSRIPICQJQNi2DdgGJPEsBvNs4pkEAkAACISQJAwGwEhCCAEYAANgACFAEs9LPJBtwDbPj5AkAPNvJsTzkCSJF5kkSTyAbds8D0mIZzPPh0A8k8E8k3khJCEQkgDEFbYB29xPEgBI4kUgSRIgSRIgSRLPhjKT5yHE/YwBjLEknsUghAAEYJv7CQEIjDH3E+J+xjyQADAviBBgzAsmBBhzPyGuEMaYZxKYB5IE2OZZBOYFMgghwDIGg7hCEmCb5ySJB7ANYBCAJADzLJYxVwgBxtxPEpfZ5gEkAbYl2eY5SQJscz8hYwziCiEA8UzGGAMgJPEisM0D2AYQQlwmCcA8m8AYAxjEA0nCXGHMczEIIWOehyTbPIAkwBhzhRACY4xBCBljEM/BIK6QBAC2bUuSxHOyzfMjhLANYBBXGGMASVwmZMzzsC2Jy2xL4nlI4gFs8zwkYYwBjAEsictsA5IASba5wiCel7GQkDEG8YJI4gFs25YkBBgDGIQk27YlcZkk21xhEA9kWxKXyUIgbGMQDyQJYyxkzP2EjLnMthDPRbwgkmxzmSTbXCbJNmCMkSTJtm0uEwIQkrABAzZXSFwmCbDNc5KEeSZhm8sk2eYBxGWSDZgXQBJgG8AYc5kkAJCEAYy5zDYPIIkHkGSbyyRxmW1AEmCbF0qSbS4zFuIKg5AEALa5wiAkAYBtHsgAxkIA4gpJGMCYy4SMAQyAkGQbACQBgG3uJwQY80AC87xkGRtLQmAwiOdgEM9kEEIAwjbmgSRxP2PbkrjMtiSekyTAtrEQz0OSbQCQZNu2JEASYJvLbHOZJACQxAPY5oWyLQmQBNjmfpIA21wmicts85xsA5J4TrYBSYAknpNtXgSSbPOcJAG2eV4GcYUQBrDMCyAEIADANpfZlsRzkgRgEM9krjAWQgAYYy4TMsYgAEmAbQBjLInnJIR4INsAIMk2z48QwjaXCRljEAACc4UQYAwIAcYYxItCkm3bkgBJgG0uk2Sb5yHJNmBbEs9LYF50shBXGPOCCXE/Yx7ANiCJyyRxP9vcTxJgG7AticskAbZ5XgIDhG0AIwQgJCEQz2Qwxjwv8xwE4jmYZxOSEAACcYVt2wBGCPEskiQhHkiSJACwbZvLJAkBiGcyGAwGwAghEJKEJPGCSRICEM8iSRJXCACBwADGtnketm3z/EgCEC+QeW4G80C2Adu2eQBJ3M+2bV4wIQDzTALxbAJAIF4I29zPNs+PECBJEmDMAxlAliwEgEAACAyAwTwHgwGEjAFj2wAgSZJtwLZtnotAAAjAmGcRQgiMsTFgGwFIksRltvk3EM8mns1cYZsHMLbNC2YbsM39JPGcJPEAkiRhABlZgACwDdjmOUniMmPbPCdjIa4wCEBIEs9JEg9gGxDCvBC2eQBj24gHss39hHgAY9uAbZ5FPJNAPIsQ9zPmfkIIwLYx97PN/SQBkox5AEmAEM9DiMuEACTznGyeH9s8kwEwYMzzsM2zSNzP5oUQ4jIhHkAS9xNCAJJ4Hrb517Btm8sk8QC2ucw297NtzPMygBDPxQCyuJ+xZS6TBCAQAEIIwADGXGYsBACYZxLPZgDMs0gS4jJJiGcyxjwXgQGEuEI8m8A8B2FszPMyQrYB27xw5nlJAiQBkrhMEs/DNvezbRuwzfOwDdi2zWWSJAGSeKEk8ZwkSeIy28YIxAPZts2LRhLPw7ZtwDaX2bbNC2cAzBXGXGEwD2TbGGMbwACAJEmAJC6TBCAQgDHieQkhAAyAwQDGAonnZcz9JCGezTxftiVJ4lnEs5lnMRZCCAlhnj+BABDPS5IkSZK4n21AEg8giftJ4jJJ3M82l0kCJEmSBACSMC8qg0EAlnkWIYkHkCSJB5AkictsA5IASZJ4fiTxnGzz/EjiWcxlqLUmCRACLGOuEAKMMQDieQkBiGczgDH3EwIsY64QQtgGbEsCACEAAdjmCiGEeSBjAIO4QggBYIwB20JcIf5FkrifMeZFIQljzHOSBNjmOUkCbPMvMggE5jkYxBWSANs8P5IA2zwnSYBt7icJY8wLJglzhWXM85LE/WwDtiUJGXOZbUlcJgmwDWAQz2QABCDJNg9kEEIAAvMsxphnElcIGXM/Y4wkLpPEA9jmeQgZYxBX2JYEAJJs80JJ4jLbXCYJwCBsA7YlITC2JfFABjDmMkk8gJAxBjAWAhCSbPMiEOIBjHmhJNnGPJO4wjaAkAUAxpIkYQBj25IkYZ5JYIwB20JCCIRtnpdBPJMxRghJsm1bEpdJwgDGPIBtLpMkCfNMAvNMBoGwbRtACAkZ8wLYlsRlkgDb3E8Sl9nGIB7ItiQhwELGAOYygcG2JElcZpsHkIQxCAxg25JAYNtcJkkSANhgwMaShIy5TBLmWWwbS+IySVxmDAgBtgHbgCQusy2JB7AticskcZltXgBJtm1LQmBsC3GZsSReEIMAhHh+jHlBBOYKIWPbACCJKwwCkGRbEoB5FmPbkrhMCEBgAGPbQgDiCiFj20JClrnCICRhAGMM4pnMM4nnYBDPwSCEjAEAIQTY5jJJtrlMkm0uk8Rltm1LAiQBtm1L4jLbknhOkgDbPA9JXGbbtiRAEs/JNpdJss0LYp5JSLLNAxkEIAmwDQCSeADbACDJNmAbkMTzIwmwbSyEwBjLAhDPZJ5JXCHJNg9kEM8iCbDN/YS4QmAAYy6TZJvnIWRsG0kAYCMJkADbxhhJAEIIwADG3E8SYJvnIYkrDGDMAwlZgDGX2ZYECPEsArDNCyYJsM0LJQmwzWWSANs8gG1JgCTbgCQus82LziAASQDmWYx5IIF5NoF5XpIA24AkwDYvgG1AEpdJ4n62eQ4EzyIAzLMJBIBAAAhJkhDPJq6wDSAQz0EgMAAGA2CukAQICfF8GQCBQFwhC4N4INsYAIMBjHnBbAOAJEkA5pkMYJv7GdvmeZlnEwAC8UziXyRJEs9LAEKSAElcIQBJknhOkvg3E0KSeCEEAoEBbNsGbPMCCGEAIe5nm+fLXGFszGW2eS4CQCCeTRhzP0lcJmSMeRYhwDbPwzYvgBBCiPvZBgBjnpNt24BtHsA2z0U8m3g2AUiSxGXGxogrbHM/IYwsHkgIGfOcbNvmuZhnE5eJ5ySJBzJCXCGEeC4CMJbE/WxjEADmuRnMM4krJPEAQkIABsAAQjw/kgDEv8A8L9uI5yLE85AECCGusI15NvHcjBCAef4E5oEkgXgekng2AQgAcT8ByLwA4gEMWAhAPJt5LpJ4XuZFYRuwzQsmiRdKCEAAQjyAbds8kHk2g3kmAQgBkrifbWOexQDGgBBXGADzQJKMeRZxhSTbxhhjAPNM5lmEACEA81xsGwO2Ec8kbHM/IUBICABscz9JCACBeTbxQkjiAWzzn0ASDyCJf4ltLrMN2LbNs4grhDAIAIEAEM+XbZ6HJJ6TbdtcJonLJHE/IQADCBkbc5mQJB5AEiAESJIEIGzb5gEkAQjEs5lnMhjAmCsMgMEAxoAkbGPbFoB5NiFJgCQhrhCIF8S2bdu2AdtcIRAPJEmIKwzGNs8inkk8L0mSeMEkSZLEZbZtA7Zt85wkSeIy29zPNpfZ5rkIxDOJB5IkCUC8IJIk8SzmOZhnkcRlkngBbNu2bZv7SQJs8zwkSeLZUGbyAkjCPJBlzLMJzLNI4n62uZ8kjDH3EzLmAYR4IGGb5yUwAAaQZMxlQoAxgAEQz2JbEg9gGxBCSAJsA5IA21xmjBECEM9LEsaY5yQJwCCel23AtiRJgG1eMEmAbe4nifvZBgBJtgHbkiTxfBmEbZ6TJMA2YFsSL5xBABgEIIn72QYwgCRjHsggXhBjIR7AtiReAEmAMeYKIQCBMeZ+kmzzAJK4zDYAYBBX2JYkZIxBvHCSbGOeg3hekgBjzAMJGWMQQgjANgawLAQAtiVJwhgDGMQVQsY8P7YBSQBgWwhAIDBXSLLNZZJsAwAGIck2BkA8NwMYS+IyIcCY+0nCGPP8CBnzAggZYxBCxhjEA0kCbPMsBiHJtm1JXCbEZcZcJguwzHOyLQmBMRYSAhBX2OZ5SOIy21wmCYMxNpbEA0jiCvNMwjYPIMk2DyDJNpcJgc2zSbKNAVsSSOIKG2NAYEASCNtcYQAhyzyAJMyzCcA2/w62JXGZJNs8DyFjY1mSbBtL4oUzz0E8L0m2bQOSAEm2uUySbZ6XQQCSuJ9tAJBkmwcyCEkYjGX+TSTZtg0AkoSMMQhJtm1zmSSeiwEQzyKEsM39JHE/29xPEmCbyyTZ5gWQZNu2JEAS97PNv0QSYBsAJNnmCoGxDUjieRkAIWTMAwgBCNs8P5IA27wAtiVJAgDbvGiEAGMMAhACjHleBvF8CFmAMVcYAPHCCMyLThIPYJv7SQJsA7Yl8SITAox5TpIA27wAkmwDtiUBkmzzAJJs8zxsS+IBJNnmXyKJZzHPJp7NAMbcTxJgm/tJwhhjAMQLIck295PE/WzzALYlAZJs8wCSANuAJMA2z0SAeABJkgBJmGcTCAxg2zaAeZGYZ5EkyZj7SZKEQDybkSQJAGzbBjAPZJsrzAMZG/MAkgBJkngg8XxJkgQICQGShCRJ4rmIK2zb5oEEBoPBPBdJPD+SJPGCSeL5sc1lkviXSJLECyAJkCQJEMJgjI0BjCSuEIAQL4BtzBVCQgDG2DaXSZLEZUKAJElcJoQREuIy27Z5IPMcxHMQCMyzCUlcZhvAYK4wti2EMcYY2+YySZJ4AEmSMEI8kBDiASRJwgCYZ5EkCRACZAEYjBAvhHggIUnGPIuQJEkSIAmwDdgGjBEvEiNJyBgwNgZsc5mQEFeIK4R4FgEgAMQDSZIESDLmMts8P0LcTwjAXCFJEs/FAEI8J0kIxLOZZzMviCzMcxOAJJ6HbZ6TMZfZ5n6SeBYBIJ6LJJsrbPNcDABCIAAkQADmBTKY52EbAIyFeFGYfy3bgG3ANpfZlsSzCIQQgAEQxlxmm/tJksQDCAnxPIwB21xmDEiSBEgCJAFCGEmIZxHiX2IsBAgJAQjAGEBcIUmIB5AkiQeQhHgW24Ak7mcMIADbgCQus839jHkW8xzMi04SIIkXTBL/Etvcz7ZtLpMkiedkWxIgSQiQJAmQJInLbNs2NgaMucy2MWCMeBHZBmzb5n6SANs8gG3bPA9JiAcSQmAwD2TbNpcJIYSEuMy2bQCDQDyTASQJcYXBCAkhAISQEPeTJIkHkCSJ+9nmMmNeMEmAJECSJC6zbZsHMphnEi8i27YB29zPNmAbAGzbBmxL4jJJXGab52FbEgBI4l9izPMwNuYyIQCBeD4MgHkmIyTE82ObF0ASIEkSIInnRxIPZDCSJAGAbBtjrpBkm2cxCEASYBsAbEviRSMJY8zzIwmwzRUGQACSbAO2hRDPhzGWJAQYA7YBSTwnSYBtwLYkAJAE2AYkcT/bAAZAPF9CCGMMgEH8ewnMA0niAWzzryQEGAtZBoQA2wAG8bwkARjAGGMMCAGSAIRtDOIFETLmMiEAY5kXShJgm/sJcZkxgEEAknggY8z9JGGuMAYwiBdElrGxJF4ASbZ5ACFjrjDPJIQAY56TEAJjjEE8B/NM4pnMMwkhYy6TxGW2AUCSbR5ACDDmOdmWxGXGQkLGGMTzsi2EeC62uUwSVxjEFZIwxoAkrjDPYmxbkhCAsM1ltiUBgJAxl0nCPJPAAMa8ALYlCRnzAJK4zDaX2ZYkBNjmCiFkzGWSbNuWJAQgANs8J9uSJAHGGNuShABjwLYQgLhCkm1eAEmAbcC2JAAQGGwLCSGQQYBtrjBgJECSbS4TGIxlAYgHsi2JF8QgJGEAYwziCtuSuMy2JEm2bUuSZJsXQBLPYhAABjAGMEKWucy2JEmAbcC2JAAQMuYyIWPbkrjMtiQusy1JyJgXxCAkYZ5J2OYyIWMeyCCuMBbiCoOQxGW2uUJgrjAW4jIhY56HbUmSbNuWhMBgEFfYlsRltiVxhblCEmDMZZJ4AWzzAkiyzWWSuMw2L4BtSbwIbEviMkkYwBgAJAGAbcA2IAnAXGEsiRdAkm3uJwmwDQC2AUASl9mWxGWSbPMAkmxzmSSuMIAxlwnxAMZcYRBXCAGAMVcYBCCEsM39hBC2jWUhhBBX2OYyIWMAkGSb+0kCbPOchABjLpNkmweQZIx5LrYl8ZyEEMaYKyQBGMCYKwQGsC2Jf4ltSYAk7mcbsC2J+9mWBEjifrZtS+I5SeJ+tgEMAgAkAba5nyQAAxgDAAIDYBBXCCFsc5mQMc+PJMA2DyDJNg8gictscz9JgG1AEmAbCBshACHJNmAbAIx5AEmSAElcJkmSJEm8EOIK27a5TJIkHsg8kwFsA4AQICSEuEISgJAEIBAPZBvA2OZ5SAKEJPG8zLMYG9u2DQCSJPEsBkAAkjCAsW0ewLZtLpMkiRfEPIskSTyAbcC2bcA2L4Bt27xQQkIAxtjYtm0eSCAAxPOyDRjb5lnMFUJCAIBAPJMAEJK4zDaX2eb5ElcYc4V4FmOuMAAG80wGwGAAjLFtDADY5jIhIWNAEiBJEs9Jkm3uJyRkjHkWY8QzCSFJPJC4QgjA2LaNwTwXY8QVsngg80wCkGSb+wkJ8SKQhQGEAMwD2bbN/WzzgtlGXCGJ52WMMRhjQAhzhTEA2JYECAnxLAJAIBAAAiHEZbZt8wCSAGMeQBLPyTbPl3kWSZjnIJ5JABjbgG3E82GeP/NcbAO2uZ8kMM8mLhOX2VwhACMewDb3E8+XwAA2LxrbPBeDMAZscz/bPD+S+JfYNgYwiGcRAoSEAEmAsW3ANmDbNmAsCZCEeD4MgHkuxjwn28YABgEgns0YC3E/2wDmudjmMts8gCQhLrONMeYyYyEAgZDECyYECHGZJJ6HEOKBJPH82OY52QZs2+YySYAkLrPNZZK4n23uZ5v7SeIFsw3YNgaMuUwIkMS/xJjnZNs2l0ni+ZEkCZAEALYB24Bt24BtSdxPEiCJ5yIQz2KMABAISQhAEgYDGCMQCASAwGAADOIKIcQVQggA8dyMbQwGsC1JEiCJB7BtG4N5LrZ5AEkABrBtm/tJAgBJXCaEADAvjBDiMkmAJElCCEmSeE6SeAEkAZIkAZJ4fiTxIjC2zYtACJAkxBUCkCTECyWJ58e2bcC2JEnczzYvIqHMlMRltgHANgBI4jJJ3M82/2bGWBIgifvZBjCI588gAEnczzb3k2Sb52SMkQQAkgDb3E8SYBuQBNjmOdmWxAMJzBWyEAACY4wBjAFJ3M+2JC6TZBswBoS4wiAeSBLmmQRgmwewLQmQZNu2JJ6HEGAbIYlnMcYYxAsiCTDGPJAQYMzzZRDPZBBCgLGQMVcIDGCb+0kCJHGFucJYiOclANs8P0Lcz5jnZFsSL4AkzDOJZzLG3E8SxhiwDSCEeABJgG3AtiRJtrlMyJgXwDYASBLiWQRgm/sJAcY8JyHAmPsJGQOAkDEGEDJGvBC2hQDEFbZ5LkJIkm0uk8T9bAsZAxjAWAhAXGGbyyQBgBCAAGzzLAJzhSTbPJDAXCHJNpdJss0D2JbEZUI8X8I2DyCJB7DNAxnEFULGXCYEWMZcIWTMi0ySbduSAAAbhMAgAEmADZjLbAuQuJ9tSQLzTAKDbUmSbAOAJNs8kAGMJXGFARDPxTaXSeJ5SOJ52OZ+krjCIADbAAZAXGEsxGW2JfEikGSb52UAY56HJJ6HkDFXGIQk27YRQtzPtiQusy0JkMRzsm2bBxACEJJ4ANs8P0Lcz9i2JB5AEuZZjHnBJAG2eQEk2eYySVxmGwAk2bbNZZJ4AEk8gG2el0E8B4N4vmwDQlxmjMBI4nlI4nnYBiQBtnkBbEsCJAG2eQBJtnkWIWTbtiRAEmCbyyRhAGPbkgBJAOa5GANCgDEACBljEM8khADbxrIAxAsiyTZgWxKXCSFs8/wIIWwDGMTzkgQYY144IQSAMQYABOaBJNnmX0MSYJt/DUnczzYA2JYESAJscz9JgG0AgwCEjDEIQJJtLpPE/WxzP0k8J9uAbUASIMk2z0mSbZ6TJO5nGwjuZxuwbZvLJAGSJPEikMT9JEniMtu2AQwgxAsiAEmSeC7ieQkBgCTb3E+SJEBIEiBJEpdJ4l9i29jYtiRAEpdJwgAYDIABMMaAsTHPQxIgSZJtwDZGCBDiCiMEIBAYY54fSYAkLrPNZbYBQBJXiGcSz8UYQACSAEASz0MI8SxCPF9CSAjAGNsGMFdIQjyb+RcYAIMR4lkM5gWRJAkQ4lmEJCFAEpcJ8UKY52aeTUgCEA8kxAsmBGAeSBLPSRIPIAQgEM+HwQAYISGei0AgnouQMeYKY54fSZJ4HsbGgBAPIATY5vkRQlxhbAwY8/zYBgAEAvPczAMJIRAISZgHkgRI4jJj24BtLhMS4lkEAgEgbHM/IUk8XwIQAjAABhACEM+XJJ6TJEAS97PNc5BtwDYvkCXxTDKAucwA4jLZGPEsAmxL4n6SeBZzhZAxgEEY2+YySTw/kngA27yIxAMZAxjAGPNM5lkkIYSEMIBt21wmCZCEuEIS9zMGEC+EbQBjW4gHsA0ghABJkngu4oWQxAMYGwO2eQBJPCchIR7ICNnmfpIABIBAAIAx97NtmxdAEveTxAPY5jnZBiTxAJIASVxhMJgHksQV4gohIQxgm+dlrjBGAJK4zNg2l0niMtsYDAaDwbwgkrhMEiCJ52HbNmCby4yNAWNAEs+PbQQCkMQDmAeQwQjEM5krjAHAtm0A8yxCxsY8gG3Atm3ANpdJAiQJIQBJkngAISEA80xCiAeQJIkrDIDBCAEISTyQADDPJoQAwLZtwLYkSTyAJEk8gCSeH0mSeABJkngASZIAwDZGkhAgiReBZduAbcyz2OaBzL+NbZ6HbUmSeGFQZgoMgG1AEg8gCbDNAxgL8ZwkYZ5JAMaYF0QS97PN/SQBtnkWgXn+hJBtwLYkQJJtHkASYJv7SQIwiCtsc5ltQBIPIIn72QZsC/Es4grbkngBJAG2AdtCCEAIwCCMuZ8QYMz9JNkGJAG2eQDbkgBAEs9insWY50cSVxhjnh8hBGCby4S4zJgHMohnMwBCEmCMuUKSbS6zLQkAJNnmCvNM4gpZiGcSgG3uJwkDGGMQz0vImMsk2bYtCYGxLUmIZxGAbUAIQNjmAWwDkgBJtm1LkgTY5vkSmCsk2eYFkIR5IMuYZzIIIWMeQBIPZJ5JYGwDCEDIGIN44YSMMYBljCSexSCQsLlMyJjLJHGZbZ6HbUk8D0nczzb3k2TbtiRJXGaby4SMbUvieRnE8xICEBhjQAiwjLEtiRdAElcYwNi2EIC4QhLmmYRtnockHsC2bUk8gG1JPJABLAsBgAQIsG2by4S4zLLMs0mSbNuWJInnYZtnMQgMgLjCtiRJAGCby2xL4gFsS5Jkm/tJAmwDgCTbPA9jIR7AtpCQZZ6HkDEPIMk2l0kCjIUA21xmWxIPYFsSl9nmMklCAMI2VwgMBiFkzPMyiAeSZJt/iRCAeBbbGIQQzyJsYxBX2JbE8xAyxiCusC2J+0kCbAOAJJ6HbS6TZJsHkGSbBxAy5jlJMhbiCoMAbNuWJAkDGHOZbSEewFgSABhjELK4zFgSIInnxxgQAmwDgG1JgCTuZ5t/FQFgnkUSYNu2JEASYJsHEjIYBAjxbAYwxjyTuMK2JEAIMOYy25KEjHmhJBljnkWSbS6ThHkuxjyAJK4wgLFtIUASgABs8/wIIa6wzWW2JQGSANs8gCTb3E8Sz8k2l0myzYtGEvezzf0kAbYBYyFAyBgwFuL5MpaFAEASz49tnpNtSfxLJNnmfpK4n20gZBkwxoAkQJIkAPFAtm0bY54Pc4UxAAjxbyWJBxIISVxm2zaAsQ3Y5n62uZ8kSbwg4rnYBiQBkiQhXhBjY2MAwGAkAZIk8QCSJPEAQoCQEFeI5yYQD2Sby2wDkrjMtm1JgCRJ3M8Y8UziCtu2uUySJK4wgBCAkMQVBgNgbPOcbGOezSAASZIABOJZhLhMEiCJyyQBkiTZBmzb5lkMgEEACMQzCQCQhAFsYwDMFcbGGAwghJBkG5AEYAAhAIEAEM9N2AaMbXOFeBZjnpOQJB5AkiTMs9gGbNvmfpIABAbAYK4QksQV4nlJ4jkZAwjM8xICMM/FNveTBAhxhXkg8QACkGTM85DE/YQAQBIgSRL/EkkYQBL3M+ZZxBW2uZ8xgJEkBEjiuYhnM8/FmOdkm+ciLAMIY4RtDIB5FmMAsM39JPEAtnketrmfJO5nDNjmmQSAeRaJ+wksAPOiksT9jI0BhBCXCQG2AUASl0niAWzzL5HE82MbAwCSEA8kJMRltgHAWBL3k4R5FmNAiMskCfEAkiRxmW2ehzECQACIZxKyeL4MICTECyCJZxEPZMxzEZhnE89Lkm3uZwwAxrIAIa4QV0iSxItMEs9JEiAJQABCAAawbcz9hHgW8WwCsI0AJEkCJHGZJEmAEPcTAjDPIsRzMgYwGACDeSDbPD+SAEmSeABJvBACQEjifpJ4AElCPIsBEJeZBxIIIQQgJCQESMJgrpAkCZCEsS0EIACEJB5AEoABbNsGbEviWcQzCQTigSTxXIwQz0OSJC6zbZsrxLNIkgRI4nnYtg3Y5kVjWxIASOJ52LbNi87YBowBjBAgSYgrhCQAgbHNi8C2bdu2JQGSJPEAkiRxP9uSeCDzbEJOG/OcJNkGEJjnYBDPlxD3M+Y5SeI52QYkAbZ5foR4FgHY5vmxLQlAYADbkrhMEmCbfytJ3M82YFsI8XxJAmwDtiVxmSTANvcTAox5fiRhjHlOtiXxAkgCbANCgDHPxQAIQJJtLhMCbCOemwEQDyQEGPP8SOIy27zIJNnmfsZCPCchwJj7CQEI21wmZMyzGADxTAbxwkkCjDFXSOJ+tnlOtgEhhJAxl0niMttcYRAvhG1AkiTbXCbEczLmfrYl8QCSeCBjLGQZ80wGsCzEZULGtiVJsm2byyRJ4goDGNvmMklCPIvA5grJNpdJss0DGcTzksT9jDFXSOIy2zyAJABjbFsSl9kW4gGMhRCAJNu8AEIABgEY2+YyIQDxQEI8gLFtSTyAEPcz5vmRxAPYxiCEjG1L4jIhAGGby2zAgCRJAGCby2xLEjIGbCPJBiGEjHkASbZ5HsYYhJAQlxljEJIA25IA27YlSbJtWxLPS2CukGSbB5Bk2zaXSZKEAYwBAIO4wjaXSUII8Zxscz9JgG2ehyTbPIBtLhMCEA8kBCAwgDEGMJbEAxmEJNu2JXGFQVwhiQcyzyRsc4WQBdgGEAghwDaXSbJtLMRltrlMElcYhCTbPCdJtiUBtnlOkgDbvAgkYQBjLrMtCRACAAQGcYVtHkCSMQYwlgUghIwxCCFjwDYgBCCeRRJXGGPuJwQY8wC2JQGSANsAIAkAbPNCSQIwCMA2VwjMswgBCMA2BnE/g3ghDCAJYRvAAIjnwyAkARhjnock24BtQBIvmBDCNpdJAmzzLAZAPC9JgG0AAyCeiyTANvcTQtgGbEsCJNnm+ZEE2OYBJHGZbV4EQsYYBCAJsM1zMQACkMRzsg0AtiXxrycJsM39JAG2eU6SeE62gTBI4gEk2eYK80BCCECIBxAS4oEMxtg2LwJJgCRJ/IsEgBASwmAkAZKEuJ9tHkCSJF4ASZIASQBg2zYvgBAgJISQJAQAknhOtnkhxAtkACEhLrNtG7AN2OYySZIASTyQwQCYK4R4ACHbPC9zhSRJAMLYNgBIksTzEOJ5SOIy27Z5Tra5TJIk2zyAEJdJkgQIYTDPyzbPIiQBCACBEAIAY9uAMYCRJYtnERgA8/yJKyTxQAJASOIKA9gGMJhnM0JCAEKSJECSJMA2zyIQAOKZDMbYNmCbyyRJAmwDAAYQ4lkM5pmMbS4zBiQBtrmfJB5IGHM/IcwzCQTmOUiAJNuAsTGAeSDbtnlOxhgAA2AA24Cxba4wAOIK24AxlwkJcT9jLrPN87DNczHPQQAIIQABCGEwz2aeRRJXiOcliRdMCJAFYJ5FiPtJ4gWTxHMwAAbAAFgGEOIBbPM8bAMA5tkM5oEk8SKTJMQLIAnzXGxzmZAQgLDN8zIvOtvGACCJ5yGJBzKAMYDBABjEMwljwLZtnkUAGECSbZ7FYADbPC/xLzAPJInnIYnnIgDbkiTxnCTxALZ5fmzb5gFsA7YxgG0EICQJQDw3g8BgAElC3M82BrANGBsDxkIIWQCAAQBjYy6TJIlnEc9kMM+XJJ4f2wAgSRKX2bbNc7LN82UkIQAhnosQEgJAtm3zALa5zJhnMUJCvBACsI0BMJjnYpsXwDaXGWMwAAYBSAJsAxgAAyAASZJ4wYS4zNg2DyQQz2YAQBIgifvZtm3bNg8gSRL3s81zkiQJkCQJAGwbA8aY5yIJABCAkBCXCfEsBgMISQIk8QC2bfM8JPEAkngBJEniX4YyExAgcT/bgG1JPIuQxf2MuULI4lkExpjLbEsCJPH82Ob5MRaShLnCMiAEYIy5wiCukGSbfwdJgG3ANiAJkARgAGMAA0gy5n6SANu8cAJzhSTAGPO8hLifMS+YJNs8gBCAQRhzPyEAMAaEjAHbkoSMMYgrJNnmMttcJonLJHGFucIy5gpJtgFAkm1eKEkYY8BYSJJtYyFJGMAYgxDiWQzCmOdHEgYw5gFsS+IBhADEs9gGbEsSAowBIQABALZ5AEmYZxK2AQCDEDK2LUnImMskARhjAJBkmxdAyBiDeF6SANvcTwgw5jkZC3GFwNiWJMk2DyAJ80zCNi+UwDyTJMAYgwGMJXGZbR5AEpcJAQjMMwkAYwxgEIAk2zyAbUncTwgwtg0ghCTZti2Jy2xLAgBJGGMAg3ggWQiEMQbAAELGAOIKIQBxhW0AkMQD2AYAIQAw5grzTOI5GIQQgLBtWxLPQ5JtnoOxAITAgEFIsm1bkiTbXCbJtm0AgQEkcZmQsW1JvFC2JUmybVuSJACwzWWSbHOZEAKwjUE8k8BgEFfYBgBJPIAkDGAMIAAhnsUAxrYBIcQVkmwDgCTbPBdjDCBkAYgrJNm2LYnnYVsSVxjAWJKQMfeTxP1sc5mQsW1JPIsxloSQxRXCNgBgEELGPJDAvEBCCLANALYBQBIgCbBtLAvxfNmWBEgCbHOFQQBCGMs8D0m2bUviCvNM4pmELO5nzPOQxBXmmYRt20KAJMCYyyTZ5n6SANs8D0m2AduAJEm2bQOSAIQQYJv7SQJsYxCAJGNZ3M+Yy2xL4gFsA0IIQIj7GfM8JNm2jRACMAACkGSbF4FtQBKXCXE/YwCwLYR4FklcZpvnJMT9bAPGQghAEs9insWYF8q2JEAS97PNCyDJNgBIsg3YBoQAAPFcJAG2ucIAiAeSZJsXzLYknockwDb3k8Rzsg1IAmxzP0mAba4QGCBsA+b5s81lQkKI5yXEcxFCkgBJvAhs2+YBhLhCPJPBYABjwLZtBCBJkm3Atm0ukyQJAGzb5jJJkiRJ4l/LYK6wDdi2Ddi2zf0kcZkkHsg8FyEuk8QDCcRzEIjnIsk2YNs2z2bLAALxTAJhDGCMAYwkwBhAAJIk2QZs2+Z+tnkg82zmWWzzAJJ4IQQGwGCEANuAEIABbGMQAALxTAKQJInLbNvmWYQxz0kSz0UgMADm+TOYBzLmASRhnsUYwGAkCRkDQjw/xjyAJC6zbYyxzf2EEFdI4l9DEg8gSRLmgSRxP0mY5yCeRRL3s80LYoS4QjwXIQAwBjDPJgDEMwlJAOIFEeIBjHkg80C2AduSuEwSgHggSZIAIa4wGIxtrhAA4gohHsi8QOLZzLMYA8Y8J9sA5gpjnodt7ieJ+9k2AkBCvGCSAElcJokHsI0BEFfY5gWzzfMwBjDPJAAhxAsiSYjLbAO2eU6SAEm8iAwgBGCusC0JkMQV5tmMMeKZBGCb50cS97ONMDYGEM9iLIkXwhhjAMyzGPNCGEAWzyIAxLPIEsJgrpAkxAPY5gUQQjwXSZJ4LuaZDCBLCANgMM+XJNvGAEKI+0kSQjyLEM/DNmDMsxhAEleYZ5HECyZJEvezzXOyDUgCbAMYzItCiAeQJAmQxGWSJAGShAAhIR5IPBdJXCYJY2xsjAAkYSRJ4gEkcT9JkgBJkgBJQgjEMxnANoAAJAGIZ5EkiSsM5nkJAUJCAGDMAwlJkrjMtm0ukyQJkMTzkCSJ58c297PNAxgbI57Ftm3Atm3Atm2uMIBt24BtLrNtm8skSeIySYAkSZK4TBL/VpJ4LuYy1FpKPIskwDbPSZJtLpOEQVxhm8uEjLmfJNvcTxJgm+fHtiReKEmAbf4ltgFJgCTANs9JEg9gmxedQbwoJHE/2zyQMZYkyTaXSQJscz9JAAbAIABjHkASYBuwLYkHEAIsY66QhDEGbAsBiGcSmCskAbYBDIB4IYSMeQGEAATmmYRtLpMEYABjDAKQZJvLhIwxiCskAba5nyQusw3YBiQBCADzQLYlcZmxkBBgGSMEGHM/SZgrjAEhAIF5FmOeh20hhJBljG1JPIAkwDZgWxIvMklcZtu2JEmAbe4nxLMIjDGAQTwvIS4z5oEM4gpJtrlMkm3bkngBhACMZS4TMsYAxjyAJCFjrhCY52VbEpfZliTJtrEQlxkL8UAGcYVtHkCSJNtcITDPh0FcYRtAyEJgLAsJGWMQz0sSYBshi/vZ5n7GAEKIyyTZ5oEMQpJtHsgAxpK4TJJtDGAQAAghY14AIWMusy0EIF44SbZtS5Jk27YknpcQMpYFGPMAkmxzmRDPImzzPGxL4nkIAYgrbHM/IcAYgxAy5n6SANtcYRDPZox5HpJ4HpJs83wZACEJwDyTeBbbGMQDyTLmWcQzGYSQsW1JQgAGgcA8k8A8izHPSQhh27YkLrMtCZAE2LYtictsS5IE2OYBJAG2uUyIBzDmMkm2eUEMQsiYF0AS5pnEA9nGIJ6DAYQQAAKwzf0k8Zxs8zxsS+L5kcRzss0DCVmAMQYBSAJscz8hwJjLhIy5n5CxJO5nzLOYB7ItCSEEYABj7ieJ+9nmASQZYwCELMCYBxIA5lmEjHlOQgjbPIAQDyQA29xPEmAbsC2JyyQBtnkRSLIN2JbEfzTbkrjCAAgAIQTY5nlIss3zIwmwLQmwDUiyDUgCbPMCESCDzXMTAAKQZJvnxzb3MwZs2wZs8wLYts0DSAIkSUIghIQwmBdEkiT+9STxnCRxmW3bPIBt2zyQACRJAhAISVxm2zbPSyAAIQwgCbDNCyCJ52KMAWPbPA9JPBeBwDybATAYwBgBSJIkxHMSEuIBJEkCJPEAxjw/QkJcYZ7FNs9FIAAEIARIAiQZAwhAkiReMEmAJMA2gBGSBADGtrmfbVmYZzLPJhCAJJ5FPB8GY4x5INvGCGPAWBaX2eZ+knhOtgHbXCZJEiCJy2zb5gFs81wEAhDiCoHAALJkAZgrJEniAYy5zBjAAJgrbPMiMhgAg3g2I4vnIYnnYq6wzbMYwDZgWxJgGwBsc4Wxzf2EuMy2Mc/DNvcTksT9bPOcjBEIDABYFuIKAxgDxtxPEs+XeRZjLhPiMkncTxLPSRLPYp7FNvcT4jLJxgDGWIjnyzyLba4QQoAknpMkQBIvGkk8FwPY5grzLMY8kHgWSZIASba5n23bXCGem8E8kBCAeL5sWzbmCoN4voyNEYhnsS1JEs+XEAIw/zKBABBCgBD3M+YyY4wQYAwAxpgXRBLimQwGwPyLJNkGbHM/29xPkhBXiCss8wJI4n62bfMsAjDmMtvcz7ZtwDbPYgBjnkVcIUkSgACMeZFJksRzkmTbNpdJ4kUjSYgrzHMTiGcymCskIZ6DkMQV5rkIAYAkQBKAeT4E4gWRBGCeySCemxDCALaNAWMAc4UkIZ6HJMSLThIgSRIASJLEZbZt8zwk8QC2uUySJB5AkiQeQJIkHkASgEAISQIk2baNASQBCCEAkCSJy2zbBmzzQkniRSOJK8RlKNNg7ieJZzEIAGPM/SQBtnkexhhJPIBtSQACA2AAxLMZxBWSbHOFQVwhCbANYBCSbPMikMRltnl+JNkGbEsCEBjANiCEeCBJmGcSgG3ANiAJkMRzsg1gEM9LEoABjHku5lmMJQGAEGAMgEGSbNuWBCAwgG1JvAgkAba5TAgw5jJJtnlRGMQVQoAxIAQYA7YlSbLNZUJcZswLIIn72QZsS+IBJNkGbAOSJNkGANuSuMy2EAIDIIQAY0AIgTHmASRhjLmfEGAbcYUk2xjE82WMkSSJ+9kGbEvi+RJCtgFjjCRJtnkAIcAy5pkM4gohHsCYyyRxmW3MsxhL4jIhY14oSbZtS+IBhAAMAoF5FmMewLYkHkCSbds8gCQewLYkLrPN85AkxGXGvAgk2eaBDGAsiSsMYMwDCAGIK2xzmSRJtrlMEmAbwCCEjDGAMZdJEjLmMklcZtu2JC6TZNu2EAKwzWWSJGEAYzCI+wkhbGMQkmxjnkk8kBCAAADbtiXxIrMtSRIPYBsDGHOZJC6zLQkhC2OZyyTZ5gFsS+Iy25J4HpIwz0HY5gEk8SzGmMtsc5kkIWMewDaXSeJFZiwLQDyTQTwHIYvnZIx5JiFk2xgAJHGFQTyLEMI2BvFMBnGFkLFtIYQQwjbPjyTANpfZlsQD2JbEFULItiTuZ5v7CSFsc5kk2wDGWJIk2zwP21wmifsJAcaAEGDMcxICjHkekmzzPCTZ5jJJtrlMkm0eQJJtnpfAXGFbEkIIc4UxVwhZXCEwz2LM8xJCgG0AEDI2FgIkcT/bPCchnkU8i20eQAgw5rkIIQDzTMI2YFsSgAEQAEKI+9k2FgIk2QYwiOdLEmCb+0kCbAOSANuAbUk8J0mAbZ4fSbZ5AEm2AQxCCGGb+0kCbHOZJNs8JyFjHkASYJsXjSReANuSANs8gCSuMIgAJCFeGPFs4gWxjZEESJLE/WwDGCEhHkBICMBcYRuwbRsBSJLEAwnANveTJEkSAiGJ52EbsG2b52SbyyQBkoR4IAFI4gqB+bcTz0WSJB7IYB7IGACMJQFCQjwHAba5zDaAeRbbXCYkBAgBgG3bPD/GxtzPNveTJInnZTAA5pkE4tnEFZIA2wAGc4UxYNs2YAxghIR4fmxjjLmfJECSJO5n27Yk7ifEFQLAPJtAAMaAsW2eRbxAQhJGCAEgJPGchBDPnwAQQlxm2zaAASQBQlxmmwcQ4jnZBowBzDMJxPOyDQDGgLEkQJIkHkCSJJ6TJNtcZpsrhCSei3gukrifbQCQJIkHEg8kiReBEOaZBOKZzHMR4jJJxjyAEM9JCAAQD2SMeC6SeBEI8XyZB7LNZbZ5TsY8X+K5SAIQGABxhRDigSTxLOK52Ob5sc1zss1ltgFjnkUY85xs80ACgwGMucw2YJsHkMQD2OZZxLOJZ7Ftm+ciJCGei7EkQEgSIMQLZZvLbPMC2OZ5GcSzGQADGPMsQojnImzb5grxTMK2MVeYK4wxAAJAAJIQDyRJEpdJQgCIB7IN2LYNYAAh25jnYDAA5lmMhYS4n21JknhOkngASZIAQBLimQwGwAhJ4jIh7mfbNmCby2wDtm0DtrmfbUlcZpsHkMQLYq6wzRUGAxgDCADxHIxlYwTimQxGCEAI8ZyMASFeANu2uUIgEAhj2zwPIcA25rmZ52aukAQACAQgSYjnJMRltgHbxjwPSZIAQBL/Ekk8J0mAbe4nSRL3sw0Atm0DtnkWA2Ak8QLYlsQDSDIGbNvmASTxH0eSJO5nm2dDmckLIInnYp7FmOdlEIAkwDbPl0EIcT9jnpNtSQAgyTYvgLEQDyAJsM39JNnmMtuAJF4wSYBtnpMkrjDGGADxgkgCbPP8SLLNZZJsA4AQYMxzMcYIIS6ThDGAeX5sS+J+tiVxmSTbgJAxYFsSl0kCbPOC2ZbE85BkmysMYFmIyyRxP9uAbUlcYRBCgGWMbUmAMUaSEIDAXGEZ87yEjHketiXxvAxgLAQgJHE/21xhAIQkwBhzhSTMMwnbvAC2JfEAQtzPmPtJAjDGgG1AkiQAsM0D2JYkyTYGcYVtIS4zliRkzPOQBNgGbEviBZDEA9jmMkmAbQBjDEgSMgYAIWOehxCAsM0LYCwLQFwhictsA4Ak2zwP20JClgGEEOaZxLMYY56XJNsYxBWSMBhjy0I8gG1JkmzzAELGGMQVkmzblsQVBvEcDOIKSYBtAPNMQpJtDGDM/SRxPyFj25IkcZkxRgiDeBZjHkASl9lGCAG2eR62uUwSAEiyzXOShDHmCoN4NmMMIIQAIcCYF0qSbduSJNnmMtuSAEDImBeNJMA2DySEANs8D0m2uUySbR7ANg8gictsc5kkSbZtSxJCALYxiAeyLQQAxpK4TMiYBxJCgG0AwCCeyTyTeC5CgLGxEPcTMpYE2OYySbYBwLYQgBDiCgHY5jkJIWxjEFfIMgYQgCSMsW1JXGYsxGWSuMwYEAIwgDGXCXGZMSCEsG2MkQQgMADGGCHE/WxLAiTxgtm2LYnLbEviCmMMSOIyIQDxTAYwxiCEeBZhm/sJIWzzQAYhZMz9JHE/27xgkgAMwjaXScIYYwCEJNuAbUk8gBBgjEE8kBDPw5grBAbAGEviXyKJ58c2z48k2zyAJMA2LwqDeBZJ3M8295PEc7LNCyeEANvcTxLPj23uJ4nnZJvng7AB2+ZFYGzMZZK4nyQEgHj+BCCEwSAABOIKIUlcZtu2JECSJNuAbdtcJiSEAQBjwDbPYhCAkCTbgG3bPIAkXhAjiQeQBAAYAPMcjLFtLpMkiechicskcT9JtnkWgXg2ISQECAkBkiSBEWBeAEk8gAQgIck2lxkDgCRAkiQukySJB5AkifvZBmxzmSRJxghAiCuMbV4w2wBGkhACgQEkcZmQJACBwDyLkCSeRQBCtjEPZNu2JJ7FPIuxMWCMeDYDIBAAAiEEAJjnQ9gGbNvmORkjbHOFkMQDCQSAeCYhCZDEA9jmMkkIAAEYc4W5Qoj7SeJZDAbAvHC2bQO2eSDzfAkJAUI8i3lu5tnMswlAEs/JWBaXCfFA5oEkAQhAiAcwxgCYZzIABsAAmGeRJAmQZAwgAEAS5nlJ4jlJ4gqDAYQAzHOxDdjmfpJ4LuL5EEKAEM+PMc9ing8BIDAABiPEA9gGMAghAPNAknh+JPG8BObZDCAECHGZEIB5JoN5JoF4XpJ4AGNJ3M+2MQ9gbIzBCHE/25gHksQLYq6QxP2EuJ8kQJIkQBLPjySekyTAmGcRV0jiMknGgDH3EwIwmCskCXGZJASAeDZxhRDPYh5Ilm2eRUjiMkncTxICQACALF4wSUIIQAiBATDGQlwhMABGyDZgG3OFJB5AiOfHmOdHliRAkpCQECAkxP1s8/zY5nlI4n6SMM8krrBtGzBGPDdzhTGXGWMQiGcSz2LbGAMIAZL4l0iSxPOwjLlCEmDM/YQwz2Lbtm0eyDyLEIB5PowQgBASEgKEAECSJP4dJHGZJNvcT5IkLpMEAIhnkcRzEbZt80AGkAQgAMwLIyRxmW3bAOaFsM2LTJIknhvKTF4ASYBt7icEGHM/SYBt7icEIADbACAJA7ZBXCGJ52QbAGxL4jJJtgHbkgCEEMYYYywEIK6QBNjmXyKJ58c295MEYIwBQAgw5jnZBiQBkmzzLAYBSOIy21wmyTbPQxLPYgDbAOIKIWSb52VbEi+AJNuAARAgYXOZJNtcJgQYA7YlSbLNc7INSAIAIQCBMQYwxpIASdzPNpcZY4QkAZYxDyRkDACSbPMiMpaFJNm2LQkAJNnmMkm2eR5CAAKwzfMjifvZRggBxphnMoCxJC6zDUgCJAG2hTAIxDMZY0ASBjAGAEkABvFMxpjnIWRsW4grxHMziCskAbZ5Tra5TBKXCQGI52IsBGAAY64wiAeyLUnI2LYkIWMuEwIQtm1zPyGEEIAAjIW4n20eQBKX2eaBDOIKIQABYBC2AQxCkm0ewFhIEpfZxjyTkGSbB5CEAYxtCwEIIWMeyCBeECEAAdhGyOIyYx7IIB7INpdJEjLmfpK4n20AI2QMIISMuUwSD2AbkMT9bPM8JPFC2eYyIWMAkGVsjABk8SxCEg9knklgAGPuJ4SwzRXmmcRzMAghY9tcJkmSbR5AiCsEYJsHkGSbyyTZ5jJJtnkBJNnmhZJkG4NACAG2eUEMYCyJy4SMeQBZCAQGg3gWY64wQoAxAmMsCZAE2OYySVxhAGMuk2UMIIQsYwAMQojLjAEhwJgHMghACDAGANtCAEII8VxsAwhAiPsZA0LczzaXSeIKAxhzmSTbvGCSeE62bUvigQxgLAQgnpckDGBsWxL3EwKMuUIIAbb5l0jifra5TJJtnh9J3M8Y8yxCxjwP25IAIcCYK4QswBgDIADMMwkhyxhAyBiDuEKSbV40kgDb3E8S97PNCyaJ52Sb52QbkARIAmzznIQAY54fIcCY5yQJsM39JHE/29xPEvezzYuEACQk8QCSJPG8BOJfIJ6XbQCEABAIwJgHkCQJkGTbNmCbyyQBkoQABIAQAiQBCMQD2bYNAJL4tzLmWcQDSeJ52AZsG3OZkBCX2eZ+tnmhjHkA27YBY5vnYts297PNZZK4TJJtwDa2ABBIAiTZBjCYZzOSANvcT5IkQBJgG8A8mxASAoR4HpIkAUJCPIt5FiEhQAghyTYviAFs8yxCCLANSAIkSeJZBOY5CECI52HbNsY2z5d5NgEIcZkkXjAhnot5NvNsQhKXGRtzPyEM5lkkGXOZMZfZts39hCQBCMQVkiRxmW3bACAJEBLiAWwDgG0hrhCAJK4QD2RbEs8iAGOuMFfY5lkEgAAQiCuEuJ9tLrPN8yWEhADMs4lnEs8mhIy5wgCYF0KI5yQJAxhjAGPEFZJ4FoMQAiRxP9s8i7hCElcIYwBjG7DN/STx/EjiMkk8X+KZDCAEIDAABsAAkngBJPGcbPOCSUI8k3nhjHm+zBVCPJBBIJ6XJK4QGGPM82XbGDDmWYwQD2Cb58c2DyCJ50eSJC6zbds2lxkLIQAMgHkgSZIAwDYCQNjGAMZcZts2YAxgXhhxhSQuE+L5sc3zEEI8m8AAGEAWV5hnEs8iJAQgMJgrJCEABAAIcZkxz8s8N4N5voy5QrwQkiTxL5HEZZIkAQhj7ickxGW2bQO2EQhAkm3bPJDBAJgXxDbGtm1eMNu8KAyAwQjxnCRJAiRhMM8kAIQQAgEgEM8kjI0BY8wVxgDCtm3AtiQAgUAAkiRxmW3bvMgkSQIA27Z5ANtcYSRJ4jJjY14A27a5QiCeD4N5JoEAEIAknh/bvAhs2+Z5SJIEIOQ0ss0DSeJ+trmfJMA295ME2OZ+krifbcC2JC4TAhAABjDmfpIA27yIBOYKIQDxLLa5zLYkQBLPj21AEvezDdiWJMk2DyCJB7ANALYl8ZxsCyGEAMuYF4Uk7mcbwADGgCSek8Dcz0biASRxmW2ehwBAAmxzPyHAmOdHEgDY5gGEAARgG8AAloV4LkLINgYhBBhzPyFjDOKBbEuSZNs2l0kCjDGSEBjbkngASQAG8VxsAwgh2xjEFZJsc5ltLpMkyTaXSeIK80zCNgZAAJJs2wYk8XwJzBVCAAIDGPMAQoAxz2IAIQTCNs/DtiQAkITBWOYySTyAbS6zLYkXQBL3s839hIy5zFhIkm3bACCJBxIY20IAAoG5whgjCZBkm8sk2eYBbEviASRhnklgAGPbkiQBxhhJXGEwCGPAtiQeQJJtHkDImAeQBGAAjGWehyTbmGcSkgDANg8giRfANgYwlgQAQgBgbFsIQEiyzWWSeBZjjHkm8UwGIck2z0kSz8k2l0myzWWSeADbXCEwV0iyzQMIGQMYY0lCxtxPCHGFbUAIYRuDuEKI52HMZUIAwraxEA9gLMQDmSskAZYxkgDbXCbJNs9Dkm0uk8TzsM3zYxuQxGVCXGYZEAIwgDGX2eYyIQAwliTJNs9JCIF5JoHBWOYKI2QshLANIJ6DQQCSMFcYc5mQMQ9kEELGGAQgZCyJ52Sb+wkhrrDNFQYBSAJsc4UQ4n62uZ8kwDb3E+IKgXkmYZvLJHGFeRZj7ieJ52Sb+0kCbPMAQgDCNpfZlsTzsC0JEMIYI66QhAEQV9gGjIUA25IASdzPNs9Dkm1eAGNZAEKSbduSAEm2ucIAkgAExpjnJTBX2JbEAwnMc5HE/WzzgkniOdnmRSOJ+9nmMkm2eX4kAbZ5TpIA24BtSTyAEGDMZZJscz9JPCfb/FtJAmwDAdg8iyRJgG0uk8RlkrhCXCGJF41trhCI52Awz0E8m5AkJIQBjG0DgBACEOJ+xgBGkiRAEi8CY56TJMA295MkiQewDdi2LYnnIQkBIBCYf5EkSTwPY2Mus21zhUA8JwlA4jnZ5n6SJPEiEJLEA0iSxLOIZxECEA9kbIyxzbMYAIMRQgAIBAIBCNnGIB7ItiTANveTBABCkgDMFbYB27xQtrnCGAPGtrmfJB5AEs+XeRbbgLExABhzP9u2eV7mOQgAYcxltnkggzE25goBGHM/SZJ4TpIwgDHm+ZLEv43BPIttIZ6HMYABhDAAYMxlQpK4wjyLbf5VzBXGAOIKSdxPiOdlAIwknpMxDyCJ5ySJ5yQECGEwzyLEv48Qz0kIwACYZxHiBRPiX2Kbf4kk/rXMA0kChLhMiMsk8UKIZ7HNswiEMfeThHhBJHGZkG1jLhPi+TLPRZIkHkASIIl/iW2eH9tcZoxAPJt5JgMYc4V4FiHAtiSei3g28UwC80BCPIswBoyNMYCQEIBAIJ7FWBLPYgAhrhDPJCTxPCRxmRDiWSRxhXj+zL+FeTbzLLZ5XuIKSTwPSQAgieciHkiSJECSbWMMRkgIkMSzCASAQGAQlnlOQlwmiX8l2zyQAYSMjQHbgCQAsA1gMEJCXGEADIDBCAEIIUmSAEkAIInLhHguAoN5INu2uUwS/3qSeABJPD+2JUniASRJ4kVjm8skCSEQz2Kb58c2z0OSJB5AEg8giecPOW3M/SRxP9s8P5IAY8wLIzAAYBuQBCAAzDMZwLIQlwkBCNvcT8gYYywJACRhjLmfJACDAGzzIpAE2JbEZbZ5fiQBGMQVtnlOQsZcJsk2l0myzQNIss1lkmzzAJK4n20AAyAA24AkQBK2bSQuE5hnkgTY5jlJss0VBnGFJJ4fY8wLIoQAbHOZEGAM2JbECyUEIJ6DMQZs8wCS+HeQxPNjmxeNsRAPYFuSJNsAIAQY84LZlgQACIxtSVxmW5Ik2zyAbS6TJAkDGAPGGCEhyzwPIWMuk2SbKwxgLIkHkMRltgFAkm1eOIF5JgMYc5kknpcBJAHGAAZxhSQus22byyRJsm1bEpfZliTJNpdJsm1bEgDIQhhzP2MhSQAGYZtnMc9iLAmBwSCEjLlMkm2ehxCAsI1BPJMBjCUJARjLACAJAGzzAJJsc4XAPJCQMQYhyTYG8UBCXGbM85BkmweQZJsXTBIvmG1eKCFj25IQmOfDAMaSAEAIwFjmMkmYZzHmCoN4JiELY5kHEOIyYwxCEgDYNpYFIK4QAjAIBIBBPIttXgSSeADbPIBtSdzPtiTbgCSEEM/FAMa2JfEAQsbGQjwPSba5QmCeg0EAQoAxgDGWxAMZBEIIgwBsc5kQgLANABiEJNvGQoAQwjYvCiEE2DYWAoQQtm1L4nnYlgRIAmzblsTzMojnJQkDGAOSANu8AJJscz9JAAYw5n5CgDEG8SxCgDH3E+KBxDMZhG0usy2J5yQJAGxL4vmxzfOwzQNI4gUQ4jJjQAgw5vmRBNjm+ZEE2OZ+QgACsM3zkAQAtrlMCAHY5gFsSwIkcT/b3E8SYJv7SQJscz9JgG1AEs+PbcBYiMskYQCEbZ4fSdzPNpfZlgRIAmxzP0nczzbPSRJgGwiDxL+FAWxzmbFtwNg2gJEkCZAE2AYwGACDeSZjDGCusA3Ytg0YAwhJgCRJGACDeV62Adu2edHY5l9kEC+MeCaBASRJss39JEnifpIASTwPYx5AiOdlc4XNZeaFkSTJNoDBAJgXxBgQksRltm0DxgAGwNgGMJgHkgRIksRlQpJ4IIF4buJ5SQIQzyJJEs9JEv9KkhDPQUjifsaAbSHuZ2xbEmDMAwnEM4krhIR4ICEJAyAABIAAjAHAmAeQxBUCkAQIcZkx5jkYDCAESLIN2LbNc7LNCyGuEBICAGPbXCYkCQCMjbmfbe4nifsJ8XyJK4x5AWwDtrmfJECSMZfZBjAPZGybBxLPYmybF8IAQoAk2zyLeCbzXGxzP2NJPIt4JvFcbPOC2eZ+QoAQDyAkCUA8ixD3s83zIwlA/JtJ4n62AdvcTwjAPJORxP1scz9jwDbPxTwX25grhBCYZzIAAgPYNuaBzAtjrjDmWQyAeF62eU62Adu2Adu8YJJs84IYAPMcBOKBhAAhABCyjbnCtm0A82zmgYR4FoG4wpj7SQIAxLMJzDMJIe4nSRL3M+YKg3lBbHM/Y64wz8FgAAwgCfMsxoBtnockHsg8m8EICXE/24jnYK6wbZvnZJsXxGCeg3k2gbhCCEAgEAhjrjDPJJ7FNveTxPOQxAPY5vmRJAmQxPOQhAAk8aKRxPMSV0jihROIKyRxmSTuZ5sXSpIkQBL/GpL4dxACJEnCGAOYBxLiMkk8D9u8AJJ4HrZt89xQprlM4rnY5kVgGxDiWcSzCBnzPIxlIZ7FGCOEEDIGbAOSAATmgYQA2wACEEIYY66wLYkXShL/Gra5nySek23+JZJsAwgh27wAkgDMFcaYZxPPn4TNZZIA2zxfBgECGwSSANvcTxLmCsuY52CeSVxhW5IQYAzYlsQDSMIAxlwmCbDN/SQBxhjb3E8SIGSMQQCSANu2JUniAWxzmSTANv96toW4QgBCxraFEM9iW5IkALDNZZIwxjwnSbZ5oWwLcZkxIInnJMk2lwkZ25YkyTaXCQEI2zyAbS6TBAAYhCTANveTxBUGMAYAjDEgSYjLjHketiVJss0V5pmEJMwzCcBYyBjzopBkm8uEjDGIK4QA24hnMgghAAHYBjDGgJAkYy4TMsYghADEFba5TJJtLpNlmctsC3GZZQxCSJJtLpME2OY52ZbEFQYhZIxBPJAQYBlzhSTMFZYxQgBgbJvLJPEAkjDPJJ7JPJO4wjbPjyTbkgDbAGAbACRJso0BjCVJ4jLbtrlMEs/LPIuxJAAQAgBjnsUAiGcyiOdLCDDmuRghY2NJkjCAMQAIGXOZJNu2uUySJNu2JfGvZJsHkMRlkrjMNpdJss0DSOIy2wCAQTyTeSbxTAYhyTYGgZDF/YwBAIN4IEm2eV4C80wG8S8wiCtsS0JgMAACwADGkngggwCEELYBzAMZS+J5GAtxhUE8FyGEbR5AEg9gGwBsS0JgbEviOUkCbAMYY0mAEA8kAMA2BiGEAIwBWYAx/xJJ3M82AEiyzf0kAba5zLYkQBJgm3+JJMA2ACCEAGNAiPvZNpaFEAIABADYxiAASYBt7icJsM39JAG2eU6SeE62uUySbe4nifvZ5jlJAowxz2JbEiCJ+9nmRSMEGPOchBC2eQBJtnlOkrifbe4nCbAN2AYkAZIA20DYPC/bPCdJkngASZIASUKAEIAQAgCMbSEAIQkAbGMQgCRJgBBgDBjzPIQkcYXBXCEEYGQBGAxg27YkQJIkHkASl0niP4PBXGFsm8skSbLNFcY2YNs2L4hAGAPGxggEBnOFJCQACZvnJEkSz0tcZkCY58s8BwEgACGei5HEsxgMYAzY5grz3MzzZ14QIQAD2LYNSOI52eZZzLPYts0D2LbNc7INGAsBgBBGyBhzhZAQgEE8i20eSDyQJEm2uZ8kSQgEIITBvBC2uZ8kQJIxDyCJZxG2eX4k8QBCvBDCmCsMIMSzmGcSCEASD2AMGNsGjBHPJAAEYCyEwQCAJJ6LeBZJtnkWIcQVAvH8meciBAhxPyFACMAgnkk8iyRAEiAJEDLGAMY8kHkWYwDzwtnmfkKALIQQz0U8m3ggIcSzmWexzf0kYZ7NAIAxz49twDYPIInLJPG8DIAw5nlI4gEkAZIAAGEMGAO2jblCPIttzBVCQjyAJJ6LQFxhm/sJAYAQV4h/LUlcJokXmSSehyT+JZJ4LgYQ4gohJMQVBhAChAAAg0A8kwEwgBAPYFsSICSEeS62jTEABnOFkJCQEICwDdjmfkIIBCAkiSvMsxlASAjxLMbG3E+IyyRJ4jLbmCtk8XwJQBIPYJsHkCQJEOJ+kjCAEM+PMc8iXiABGPNAAnGFbdsAIIkXgW1eANv8i4QkXgjzQggBGAwGwDybAIR4kUmSxIvGtiQAkAQAtgFJknheBrCNMeYFsw3Yts0D2LbNFQLxQJIkIZ7Ftm3AtiT+w6DWUgKQsLlCEs+Pbe4nCbDN/YQwCMAy5gohAAHYBjAIACGEMeYy25K4n21JXCYJsM39hIy5TMg2gHgW25IASba5zLYkLpNkmxdAkm1eKEk8J9tcYZ5NXCHJNgBgEM9kEFcIGXOFwDwXY1mAkGUuk4TNFRLPYnM/C8wLZpAAyTaAQQjxXIRt/v0MQhL3s82LRsiYF0ASYJvnJAmwzWW2AUk8L4GxLQkAMICQZcwziWcyzySel21JAIDAPC/bkrhMiPsZAxhAkjEA2BbiMmNJkmzzPCRhAGMuk2TbtiSehxCXGfNABvFMAvNMBiFkzBUG8bwk2eaBzDOJ5yUEIJ6XbduSJAGAbV4AIWMAkIR5XsbcTxIGMOYyIQBhGwMYS5IE2OaFMICxEFcIAPNM4grbkoQQtnm+DCBkzBUCEDLmMkmAbe4nBGAQCMyzGBtjAElcJonLbAtxhQAwgDEPYFsSl9mWJAkAbAOSANtcZluSkLFtSTyAJNs8gCSuMIAxD2QQDyRkzGW2hQCEJNs8D9uSEEIYY9sAIAQghIxtS+IySbZtS+IFsC2Jy2xLksRltnkBbEuSZJt/JduShBCAbS6zLSTJmMuEjDGAsSQhYy4T4jJjnocQgLDNA0jCALaNJQEABvG8hADAmMtsI4S4nxAPYIxBPJNBXCHEZcbczzYgCcAYS+IySbZtA0JcIYQAhG0MApDE/WzblsTzkGSb52UQQgjANi8CSQBg21gIkARgAGMusw1IAgBJvGC2eX4kAbZtA5K4TBIvmG3uJ8k2DyCJ58c29xPiWQSAAYwBQJJt7icJsM39JHE/27Yl8QIYC3GZJNvcTxL3s839JAG2McaSeKFsS+J52JYEIDDPlyTANmBbEg8giefHNveTBNjm+ZEEBJjLbP4tBICQBCCeTTybeA4CQAAYQEgIkMQDSAIkSeIKAQhJMuZ+xghj29xPEpfZBmzbBmxzmW2ek23bAGAbsG2b5yFJEs9LIABJQgACkCTJNoDBPJuRJAQAGAwghAEwGCEhQIgrBAiBhM39zDOZ5yIkkCSel8EGsMX9zPOyDdi2zWVCQkKSeAAhIZ6TJK4Qz2SuEJIEALZt87yEkDHPybZtXgBJkrhMkiRAkiRAkiTuJwkDIAAhIUDIGAMYI57F2BjxQLYB24BtABCSxPNjm2cxz0UIEOJ5CcAYsG2b+0nCALYxz8U2zyIAIQAw5n5CQgDmORgMQgiQxBXiWYxtcz9JACAL8yxCAGDbNoB5QWzznGxzPyFJPIAxDyQAY64QiOcmAEmAEJcZc5kxz49t7mfMv0QIEOJ5CUmI5yVkmcuMAQwgBCD+nSTxorEN2OZFI4nLhDAA5nkZ8wCSeC4G8wIZQIj7GRsDgCTEFbYB21xhMADmWYyNAWMus20bsA0gbGOeL0m2AdtcZpvLJHE/SZK4zDaX2ZbE/SRJ4jLbgG3bPIBtADDmAWwDCGPuZwwgjHkexgjEA0kCAGMAkMQD2OZ+Qlwmi2cRL4RtQAgQAmTxXMzzJYlnMYCxeSbzbLbB3E+SEA9gjHgm8XxJsm2b52RbEgIAhIQABGDMAxmMECBJEpfZtg3Y5n5CPC8DGAOSAEmSAMwLIkkSDyBJEveTJAmQJIkXmW3uJ0kSz8k2z0mIZxHPJBDPYpt/DUm8ALYxtm0DtnkBJHGFeDYhCZDEZZJ4HpIASYAkSQAgCZAkxItAEv8S27xQknhuKDP5d5BkmwcQAoy5QgCYF0QIMOYFk2Sby4SMuZ+xECDJNi+cQTwv25J4wWxL4jlJAmzznCQBtgEMQsiYF0rIGAAwAAJAYK4QAowBDEIIQMYYsAEkSdzPNoBBIGHzgtiAkMUzmcuEzBUG8UwGQACSuJ9t7ieJ58c2z48kwDZgWxKXSeIy2zyAbUm8AJJs8wJIss1lkngA2zwv8yyWhXhOxkKAJNu2JfEAtiVJAgDbXCbJtm1JXGEAIQRgjAEQgCTbXGEQL4gkAAMYA7YlcT9jjCRJXGYbg3ggSbYxiOclBCAAwLZtSULGGMQVkrjCGAMYhJAxD2SeSUiyzQsgCbDN/SRxmW3bkhAY25IkcYXBWAYQQrZtSxIy5oEM4nlJAmzzLAYw5jJJPICQsW0hACEEGAO2JUniMts8gCTMMxnLgDFGkhCAwFxhGXOFJAxgDAAYxPOShAGMASEEgLEMCAG2bUviMtuSJNnmASTxPGzbFgIQz0vI2LYkSQBgm8uEAIxlLhPiMmOuMAhJtgEAg7hCyJgHsC1Jkm0M4pnMMwlJtnkggcEAxpJ4AEm2+XeQxGW2+dcSmOdDYK6QZNu2JJ6XEAJsc5kkHsAYEAJs25bEsxhjSTyAEIC4wjYGIWRsGyEECBkDGAAhZIwBEIAk2zyAJNsYwJjLhHgmIwGAbUk8FwMgnklgnpck2wBgWxLPSRKAAYx5AWwLAZIABGCby2xL4oUSMsYYA5IQQgAGMOb5kQTYti0JkMT9bPM8JNnmRWBbEiCEAADbgCTuZ5sHEphnkQTYti2J5yQJsM39JHE/27xwxhiQxItAkm2ehySMMf8SSba5nyTbvACSANtcJsk295ME2OZ+knhOtgFJXGab50aAeKFs2wYASZJ4ANuAbWOuEIhnM5jnYts2z2IwmCskSRIChIRsAxjAGDA2to15NgEI8QCSJAEAAkAAkiQBgCRAEpdJ4jlJ4jJJXCaJB7Btm+clAGPuJ0kSDyAkZJsrzAMJSQIQz2QwCACBwADYABLPZp5FANj8Swxgg22eyYCxbQQgJMS/gyRJAGBsm+chCZAkicts8zxscz9JPCdJvGCSeB62eR62uZ+xEM9DiMtsA5IAQBJXiGcx5jJJtgFJAOLZBGAMAJa5nyQeQEiIF0QgnsU29xNCPIttwNg295NkG0AAQkI8iwAQV9jmCgPIQgAIxLOJBzIGMIAkIQSAeCDbXCZJEoB4buIK2zyLARDPhwEwz2aMucwYMAYwQkI8XwIQ4kVjzLOIf5EkAPFMQggQ4lnEcxPPJp7FNmAMYDBCgCSexfwbSOJFIYx5foQAzL/MPBchrhCAbUkIIQQGwABCgCQuk8SziCuEeE6SeBYBCHE/28ZcJonnJAmQJInLbPP8SOL5sc39JPH8SAIkCfEAknhOknjBJAnxAhjzvASAAABjnouxDWCeTWCMMUJCgBCAwRjzLAaMACSBJfEAxgDCmOckAHE/SbZt87zMMxlJgCRJ3M+2JEmAJACQxHMRiAeSJAkAbPP8SJIESLJtGwAkSeIy27YBYwDxbOY5GMwLIYkHsA1IkgQAtm0DtnmhbNs2RmAwAOaFs20bwDxfkrhMEv8OQpIkAYgHkoRASOIy24CxbcA2z49tY+4nSRIA2LYN2AZs8wC2uZ8kSdxPEs9DEgBI4l/JNveTJAkAZNs295NkmwewDUgCJAG2eU62AUkAAvPcDAJAYJ4PAyD+BebZxPOSBNjmfkIIzLMJ2zwPSdzPNveTZJvLJAG2eR62JQGSANs8J2MhSYBt7idkjHkm8fwJWTwnC0A2YJ5NEhgE2OY52ZYkyTYvMtuSeAAh7mcZwABCiAeyDQghbPOcbAOAJC6TZJvLJAG2JdnmOdmWBACSANuAbUkAIMk2D2BbEpdJ4jLbPICxkJCxbSEExlgSz0OSbduSAMC2JEm2ucIgJPEAtgHAWIgrzHMxBhBCvACyEIhnM4grjDG2uUySJNsYxAsiyTZXGMQVQgDCNgAIGfNABkA8ixCAAIwxxkKSbPNC2ZbEZZIwD2QZc4UkwDb3k2Qbg3gOBjCWxBUGIWQMALYlcZksBOKZzDMJzLMYYxAPZCzEZbYlAYAkwDb3EzLmAYSMeSCDkGQbAIQAYwCDEAIQgG2ei0E8k0E8FyHAGAAkAYBtHkCSbZ6HbUlcJsk2AEiyzQMIGduWJARgLPMAkmzzALKMjSVxmSwEYGxbEg9kEM9kEFdIss0DGYQkzLMYA4AkrjDPYszzkGTbtiRJPIBt2wAgiQeQBAC2eR62JUniAWzzAJK4zDaXSeJZDOJZbPMAtiVxmZAxl0myzf0kcT/bPICQsTEGkMQDCBnzTAJjEM9kEAhZgDGXGcsCEFdI4gFs8y8ywkiAeQ5CxgDm2YSQMQBIss3zMgghYy6TZJsHMghAEmCb5ySEsM1lkmwDAAbxorAtCRBC2MYAiGexDUjiBZBkWxJgm+dhWxIvAiFj7icJsM3zMojnIgmwzf0k8Zxs25YESOJ+trlMkm3uJwmwzXOSxP1sA7aFEM+HwDwX25J4fmxL4gWTxLMYYy6TBNjmeUiyzf0k8QC2JQG2ucy2JEASYBsIzPMliRdAkiQus20b8WzmuRlASEgI8SySuMzY2Jj72bYNAJIkAYgrJAEISTwvgXg280C2uZ8kLpPE8yPJmCvE85IkCZDEA4krhDAYIZ6LAYwBY2MEIEkSl9m2DWAQz8NgLhOAeDbxQEISAEgCAEmAEAZzhcQDSBKXSeJFJJ7NYF5EtrmfJEASDyBJEpfZti2JyyTxnGxzP0mAJO5nmwewzXMSAox5FgMgnpck2wDiudgGMBiEEGCMAWwDxrYBYwBzhTGXGfOcbPNABoN4IGPEs5lnkcRlQgAGwAgJIRCAJNsABgNgnk3YBjAYAPNAxsaAMYB5DgaQxWWSAMDYNs/JNveThAEwmGcyL4gkQAjAGBvznIwBDEIIkMRzEkK8KIQQVwgBGMAYsM39JPEsAhCyjXkmIWSMAYwB29xPEs+XeSGEeE62Ads8i/gXCEmAJJ7FPIttnh9JAAIQAjAAxhgDCPGcJPEsBkAAxpjnYJ6LbZ6TbQAwBgDbxhhACIMAEA9kzPMSgCTEsxhzP9s8J0k8gCSeH9u2uZ8kwDYPIIkHsA1gnsU2D2Abc4UkSVxmG7DNZcYYDGCbF4EkBCDEA8jCCPEsBiwLEAgBCACDACQhACFjYy6TxHOwJBAPIAmQhMQz2YCNzRUS4gpZsngAWTyAbUmSuMw2gAGEeADbXGEAWTwnSTyAEOKBbEtCAAghIR5AkiSekyQMBsAACAQgSRIgCbDNZZIk8ZwkcZkkLpPEZba5nyTuJ4nnJAnxwklCAIhnEghAEs9JEs+PJF4w2zwPSTyLEOJ5CAFCQjyAJCHEFZK4n20uk8RlkgBJPA9JPD/GPD+2AcA2YFsSL4AkHsA2z0kSINu2AduSAElcZpvLbEsCJAG2eQDbCCGei8A8k0E8ixCAAGxzP9uSeB6SANvcTwhAALa5nySexQDG3E/IGDAWAiRxmW0ukwTY5n6SuMIgANuAbUmSANvcTxLPYgBj7ieEsA1gHshYEiCEMMY8kCTAGBDifra5nySezSDbvCBCCGMbQABCCMA2L5QkwBgQ4n7GmAeSxP1s868niQewzQNI4n62AduSAEAS97MN2JbEZZJsc5ltSVxmLCTJNs9Dkm0AkATY5n6SbPM8hHgWYZsrDIDAGEsSMgYAYyFeAEm2uUwIQGCuMOa5GADxbAZxhRDPyZj7CRnbliTJNg9kEFdIsg0AxkJcJmTMAxmEJNsAgHkmcYVtSVwmyTZXmGcSCMwDSbLNAwgZ80AGMOYyISHLPA9JtjEIBOaZDOIKIWMeQBLGGLANAJK4TBJgLGSMuUKWsbEkSRjbiGcyiCuEuJ9tSQjbXCYEIABjzAMJAQjbXGEQzyQwz0uSbR5ICAG2bXOZJJ6XQVwhxAMYc5kQgEEAxjyAkDEAYBDPwSCEjDEISbZtS+IySba5wiCEjI2FuEwIQNjmMkm2bUsSMuYKg0BgrhAyti0JgXkRSQJsc5kk2zwP25IASYBtLpNk27YkAJCEeSZhGwAQQoBtHsC2JC6zLYkHkGTbtiQeQJJt25IQQhhjjDEgiRfESIAAhG2eh5AxgAEQQgYwIO4nAbZtS5IE2AYEBmMhQNxPMmDzLAZxhZAxBjCWBAghbAO2AUmAkDFgWxIA2JYECHE/Yy6TxGW2eSCDeF5CxsZCgBDCNpdJss39hABjrhBCgG2ekyTAtm1JgCTANg8gyTbPQxKX2eYySbZ5fiQBtrmfJMxzEIBt7icJsM1zkgTY5t9KEmCMuUISYJv7CRnzPIQQgG3uZ1sSIAmwzQsmhLjCNg9gG5DEc7INSOIBJPGC2eYy25J4DgQPYBuwzWWSJAGSeMEkCQFCQlwhAEmSAIRt2wDmgSRJAgBJgCQeSLyIJAGAMYBAPJPBGAO2MQ9kmxeReRZJvGDGGATimQwGwDyQkBBCCIMBMADi30fcz7ZtnovBPJvBABjbgG3bXGbbNpdJksSzmOdgAGPbPC/xHMSzSOIy27YB2zyAbcA2/xJJgCRJPA9JXCbJNmDbtiSei5HEAwhJ4gWTxAOJZxIPZMwVBhDCAJK4TBIACPGiE5jnYts2gAGEuMzYNgIAJPEs5pkEApBkzP1s81wEgJAESAIAIQCQZMxzEc/BAEJcZmxbEpdJwjyTeSYBCEni+bHN/SQBCECI58sAtrmfJB7IXGEbsM1zss2ziOdLEgYjxAOZfx0D2BYCAEk8i3gWSTwXASCeiyQhXgBJPC/zvCTxLOaFkARI4lkMIMSzGGMhAEAAgCSel3gWSVwmCUAgrpAFYDBXSAIQD2QMSMI8i21jAPNMBsAIARhJgCRJXGab+0niBbAtiedkmxdKkm0AsM2zmGczD2QbsM3zIwRI4grxXGzzQAbAPJAQl9m2uUIg8Uzi2YwQ9zMW4n6yADCAbZ6bJMC2bQDbgC3zTBKABGDzQOIKSQgAYQxgMADmeRkDtgHbgDHPIgAE4lls8wC2jTGAkBCX2bYNGANCGAyAQTyLJJ4vgcEAkngBJPE8bNsGbEsCJEnifrZ5Tra5zLZtLpMkiedlnk38i2zb5vmRxANIksQDSJLE8zIviCRjnovBABjbPIAknodt21wmCQEIAZgHss0D2AYASZIASZJ40dgGJEkCJPHcUKbBXGYbkMRlkgDb3E8SYJv7SbLNZUI8i3gW2zwnIQAB2OY5SeJZDGAMSMJcYQxIAmzznIQABGAbsC2E+DeQxLMYhG3+JZIADMI2gAEkGfMAQlxmDGAQgCTMMwnAtiQus82/RBJgm+fHtiQhwJgrjBDCMuaBbHOZJACQxP1s85xsS+J5SLLNFQJzhSTbvFCSeH5sS7LN8yPJNg9gW5IkwDbPScgYgxAy5gWQxPOwDQCSAMyzCQxgzGW2JQkBGGMEIAljDNiWJGRsW5Ik7meb+wkZc4VBSLLNAwhxmTEPIAkwxmAQQgDimYwxz8m2JEm2MQghAHGFbduSJNnmgQTGtiSuMAghYwzigSTZ5jLbkgDAWEjImOdhm8skCQGIZzKAMQZxhZAxDyDJNg8gyTaX2eYySQBgG0AI8QJIAmwjhDDGPIsBEIAkDAaBsM1lkmxjEEKAMc9JCDAGhACEbZ6HJNsYhCQAsG1bkiTbGMQVkmwDAALzHAxCkm0usy0EIJ7JPJN4voSMhQBjDOI5GISQMc/DtiQusy2JyyTZ5jIhAGMMICQBGGMeQMjYthCXGUviMkm2bQtxmbEkhBD3s22byyTxnCQBtm1LAiRxP9s8J0mAbZ6HbUlcYRBCxrYlAZIwxlxmWxLPS8jifsYYhCTbtiXxnIQAYy6zLQkAjEECQJJtMAACJGyMZQGI5yUExlg8k40ECAADGMQVNpLAvEC2JSEwDyTJNmAsxGVCCNs8L4O4wjYghHggSbZ5QQwCEELYBgAM4rkIAcY8gCSuMIAxlwkZc5kk21wmyTbPQ5JtwDYgiQeQZJv7SQJs8wJI4gFscz8hwBiQhEEAtnl+bAOSuJ8kwDYvgG1JPD+SbAO2hRBCAOJZbAMYxPNlWxIgyTbPj21JgCTANgZACCFsc5ltQBIPIAmwzfMjCbDNc5LE/WzzfBACSZIASYBt/q2MAcQVxjwPIV4ASZJ4TsZcYQAM5nnZNgYwz5cxl0mSxGW2bfM8JEni+TKSJPEAkiTxvMRzsY25QpIk7icEIJ7JPBdJPD+SJHGZbds8P5IAwLZtIcwzCQSAQABCCEASz8k2L4jBYDCSAEmSeADbPIt5FtvcTxKXSeJfYlsSL5htXjBJPIAk7idkzBXmCtu2eQFsA5gXSBgDgG1J3M+YZzEA5pmMbQziRWEbcYUknkU8ixAC8RzMswnEM5lnE5K4QlwhBMjiAWxzP9vcT5IkDAAYAxhAiBfKtm3Es8jCAJjnYptnMQ9gMOK5SOI5SbLNA0gCJPGcbAPG3M8YwAgJ8SwC87yEeE5CXGYMGPOCiGexzXMxzyKJ+9nmRSMEYJ5FEiAkxAMIAULczzZgzHMy5jnZ5lmEEFcYQEiIKwwgBGAwD2Sb52Sby2xzP2OelwEwGAAQAjCAMWDM/SQBgCRjwJj/KpJ4HpJsA7a5zDKAeDYhicsk8Twk8SwGwABCPCdJiAeSJAmQZBuwjREAkrifjTFgBAgZG3OZJCHuZwwgxP0kHsjGGAMYQAAIANnimQyAba4wkiRxP9tcJgRIEkI8FyEhzANJEgKEhLifbUmAkCQeQAjxTAKQhAAQGMC2ba4QCACwbRuwzRUC8SyWuZ9t7meb58c2L5htSfyrGMxzMBgAkCQJg3gukrjMtm0AsG2bF0CSJC6zDdjmMttcJiTJNmAbADAviLFtLpMkicts8wCSeABJkgBJPBeBABCAJEmAJEmAJJ4f27YBQJIkHsC2bZ6HJJ4PlJmSANtcZlsSIInnZJvnIYkrDMI295MEYK4w5gEkAba5nyTbPIAQ9zMGhHgWAdjmMtuAEOKFkGSbF5kQzyIwCMA2YFsSz0MS9zPGABgAcYUkwDaXCSFs80AG8cJJAmwDGMQVkngA2zyQASQBljHPS5JtrjCIF52xECDJNmBbEg8gyTYvgCTANi+YJO5nm/tJss2LTJJtHkAIMAZsCyFeCEmAMeYKSQBgG4N4INsAQggAMICxJJ6HkDGXCSGusA3YFgIAY0m8AELGPIAQgLjCNgAIAcbcTxbiCssYDOKZzDOJ50NgMIjnYABjSULGPA9jIV4A20IA4oFsS+IBhLifAcxlQgDCNpcJ8SzCNgYhZAwAQsa2JfFA5pnEFUIA4llsI4RsC/EswjYGkGTMZUJcZmxbkiTbXCaJy2zblsQVBiEE2EY8kG0hAPFcJAG2bUsCACFjDOIKSVxm27YkrjAIIWPbCIwkAJBkmwcyiOcihMAAxhiEJNsAIARgLPMAtiVxmW1JAGBbEgJzhSQMYIxBPJNBXCFkjEG8IJJsGwtxmW1JvGC2uZ8knockXijbgCTANpdJss0D2JbEA0iyzWWSbNuWJMm2bUmSAIwxRggwBhAPJGTMC2eeSVwhyTaAARAgMM9Dkm1jIZ7JIEm2uZ8AMJcZY0kCwFxmIwkM2EhcYRBXSLLNAxgLAUIIAGOMQUjCPAdhGwCEAIRtHkCSMQawLQkhyxhAABhAEgawjQBsS0IIYYy5zLYknodtSQBgWxIvlG1JPA9JtrmfJB7AtiSeH9vcTxJg21gWQoj7WQaEuJ9tHsC2JJ6TJMA295ME2OZ52JYESLLN8xACjAEhwJjLbEsCJAG2eQFsSwIkAba5nyTANveTxP1scz9JPCfbgG1AEs/DNiCJF0ASYJtnIrifJEmAJF4o27Zt2wZsc4V4IWwDxrZ5AEkAQpJtwLZtrhCI5yCeiyRJgCTAGGObyyRxhZAkyTbPjyRJXGbbNi8a24BtLpMkiSsMICQJQCAAIUk8J2MAAUjiMmPbPA9JkgBJPJAAEIgHss0LYZ4v2wAGI0kIIYkXQJIkrjC2AdvczzaXCUkCJPFCSZLEv4YkQBIvgCRJPA/btrlCIJ5JGHM/SVxmbJsHEOIKcYVtnodtrjDGAAawDNjmMiEhQIhnEQgM5oGMAWNJ3M/YGDDmgYwxgHlu4vkzAOZZhACMsW2exQC2uZ8kWUIA5gohIQAhCTDmedjG2OaBjCzuZ8wD2LbN/SQBCDDPl0DY5goDYJ5FCJBlzAMZSVwmiX8l2zyQwFwhBGCem3kWSfyrGMAYsM2zmGeRxHOyzf2EAMwVxjyAbZ7FGGOEeABJPIt4buK5iWcSgLEkAPEsQtzPNv8SSQACQDybATDPIgRgnkUSgHgg2zwv8yy2+deQxL+eJJ6HJC6TBEjiBbDN/YwxAOa52OZ+QgDmudg25jIhBCCEucJYiGexxP3EA9kGhGwD2BjAIMSzSIB4DgYDYNsAGARIPJMQGAxgWxIgSRIghMEAGAyAucI24tkEIIlnEYAkHsA2BrDNFcaYKwzmCttcJkkIkARgMICQECDJNs/FIK6wzf0kSeJ52OZ+knhOkgBAEs9JEg9gmxdKCPGvJQkAJPGvIUkSIInLbHM/SQAC8UwGwGCEhABJPIAkLhPiMtuAbf61zL+Wbds8gG1AEv8KyGljLpNkm/tJAmzzopEE2OZ+QoAxgDEGJHGZJNtcJmTM8xIYACMJsIx5bgLAPC9JXGab5yGJ52GbBxACjLmfJMA2LzJJgG0uk8T9bPOcJAG2AYyxJP4lQsZcJgmwzfMjCXOFMS8aIWMAIWSb50sAGIwxQojnIck2D2BbkiTb/JtIAgDbPIBtSVxmWxIgyTZgWxL3sw1IkgTYBmwDkgBJAMaYBxKYK4SMeR5CxrYBhBAPYCwEYIwlSeIy21wmiWcxxlxmm8uEEIAk2xjAmMuEuMyyEAAIAYAxgBCyjUFIsm1bkhDPw5jnywAISRjAGIO4QpYxlxlLEjLmMkm2bQsBgLEkSRgMYAxYFuIFkGSby4QADDLC5gohwBjAIISMMYhnMohnMs9iLIkHkIV4JgEYywKMuUyI+xlzP0m2Mc8krhAyxiCelyTbPICQMQ9kEM9LyNi2JABAyAKMeR5CxhiEJC6zzWW2uUySkDHmmcQDSbLNZULGPIAsyzyAbUlCxgAgyTYGIck2DyBkzPMjBBgDgCTbXCbL2FiSJAxgzAMIAQjbGMQzGYQk21wmZMxltiUJGduWxL+PJJ6TbZ6HbUmSbPOvJ2QsBBhzmW1JkmwDGAAhZGwbEEJcIWSMeSYBCAHGGACQBCAA27Yl8QC2uUwSVxiEEALAAMY8gG0k8QA2kiQMYGxbEi8CWcYA4kUkhLBtWxICY4yRxItACGGbBzIIIWMeyCCusC2EeC6SbPOCSeJ+trlMkm2ehyTb3E8S97PNCyIwGAQgCbDNi0ASD2Cb+0myLYnLbAOSbPMAtiUBkmxzmRAGQBhjEELGPA9JAGAbsC2JB5AE2OZ+kgDb3E8S97PNi8y2JO5nWxIgyTbPjyTANs9EIJ7FtiReMEk8gCSel0AgEM9kMMaAJECSJNsABmOMuUISIEkSBsA8m3k+jJAkHkggrrAN2LbNZZIkcT/bvCAC8S+SxGXGtnlOtgFJCATGmMskSeJ5CAkBQgAgCQAkcZlt21xmzItOAIgHEhLiWcSzSDLmCvNAkiTxLEaWECCEMQYwQgAgyTaXGWNsS+IySbxgkrifJJ6HbcA2l9nmfrYB24Bt7meb+0lC/IuMeRYhCQNgMLYxxsZcISQZcz8hACEJADDPJB7INs+PZQCwzWVCXCaEEeIK8UDGQlwmicuMMQDmmcSzSAIQiOcgJPFAAgEgEEJcZoxBXCHEFcIYwABCgCTbgBDPxTwXIZ6XACTZ5goDYC4TCPF8CRlzmW3ANpcJCXE/Y8A2YAxgEM8kAGNZXGFeRMbcTwjAIB7INs+PECDEsxghIQDxLJK4n20AwDwH8VyEeE6SeCDxbOKBbPOCGXOZMQYwBmzzPIy5n21JAAIBAEI8JyEAA2CeRRJCCPEsthGAEM9ijAEMgACEeABJgBAgicskYWxjnkUS95Mkicts8/zY5l9i2zaX2eY52eb5kSRJEuI5CCEAEBLifrZ5ACEAQAgBmOcgAECWEM8iXjhJkgBJXGYMYIwBYx5ASIjLbAPi2WwbANsIBICEeSYDAJIASZK4whhzmTEvlDEGA2AASQAGEJIECAnxAEI8FwEIARjAtjFgzAMIIYS4TBICkCSJ+9mWJIkHkMQLZZvnxzYvgCRJPIAkhCQhAPGCSOJ+kiRxP9u8YJK4zDaX2ZYEICQBkrjMNoB5NvFMAmMMYJ6LbR5AEiCJ/0ySJAGSeABJgCReAElcJkkSAMhpYx5AEg9gm+ckifvZ5n6SMMZcIWQBxjwnSbZ5ASTZ5nkIAca8CIQQgG3uZxuQxP0kcT/b3E8Sz8k295PE87DNZbYBSbwgQggwxgAIAHOFJAADGGMQgCTuZ5vnx7Yk/kVCyDaAARBCAAaBeC62uZ8k7meb+9mWJATYBoy5TAgBSAJsA7Yl8QCSANs8P5J4Tra5nyTANpfZBiRxmW1JvFCSbHOZEMI2YJvLJHGZJC6zzWVCxhjEM5lnEkLGAGAsCwFIss0DSLLNZZIA29xPEmCb+9mWxAMI8SzG2JgHEEIAkmxzhXkmcYWxEM9FABgM4gWRZBuDeCYDIABJtjGAZSEuEwIQgG3AtiQhYy4T4n7GgG1JPIAkzBUW2FwmxGXGXCYJG4NAwjyTsA0AGMQVkmxjEM/LthDiWSQBtgEM4gpJtjEISbZtS+J5SLKNASwLSbJtWxIPYFuSJMyzGGMQQgDiednmOQkZCyGusG1bEpcJGfMAQsY8D2MhIWPbCCFAkm0uk2TbNiCEeCaDeA4GMJbEcxJCXGEbg5Bk27YkLhMyxiCeD4O4QhIPYBsDCCEAYy6ThAGMeR6SbHOZkDEASLLNC2VbEg9gW5Ik29xPEmDbNpdJ4gWwLYnLbEuSxBUGYZsrhBBgm+chyTaAuULIGEAI2TaWxAMIGWMQkmxzPyHAmAcSmGczVxgjhHgWgXlBBAbbSOLZJNnmCgMgAEm2uUzI2EZcJgDbgCSuMIAxl0nifkII2zyQQUjCPJPAPJOwzf0kARjAtjFCCJBkmwcyCCFjLhMCELZ5HrYl8ZwkcT/bPA9JtgHbkngASdzPNpfZlsQDSLLN/SQBtrmfJJ6Tbe4nifvZ5n6SANtcZlsSIIn72eYyIWOMsRCAEELYBjDPJp7NIJ6XJO5nm8tsSwIk2eYBJAG2eR62JfGcJAG2ecEkcT/bPA9JtoEAJEnifrZ5AEmSeAGEuEwSBsBgAAzieUmyzf0kSRICJEmyDWAwQkIIxHMQCAQCEMIAxrYBYx7Atm0uM7bNv5UkLrNtm8tsA7Zt8wCSJHGZbdsA5pnMMxkhnsUACASAeCEkcZlt24BtwDaXCQlhMLZtAxjbAAZACHGFeBbbvGhs2xbigcSzGPM8JAGSJAGSeBHYts1lknhOkiQBkiRxP0lcJonnJAmQxAOJ52WbB7DNswghxPOSZQzYti0LEBKyzQNIwrwgkngA27YlAUJCgBACcYUxz0kIEBKyDRjb5gGMjXkA27YBDAYwts1zss0DGNsGjLmfkG3A2FiIy4QAxPMhJHGFeCbxLLa5nyTMcxDPJsC8IAJAAJJ4TpJ4TpIASdzPGMC8EJJ4XsIYwABCgCTbXGYsxAtgm2cRz2aeTbxIBCDEc5Jkm+dkG8AAQoAk7mcb80BCgCTuJ4n7CQFCQjyAJO5nzP0k8UDm+ZJkm3+Jbe4nieclhHi+xLPYBmwbA7Z5AEmAJF4wSTwnSZL4l0jiASTxPCTZBmxzmW0A89zMA9m2zWWSACEh7mcsBAhxmZBt7ieJKwRgWxKXCSEQDyRJiCsMIMT9hHggAwC2uZ8kQFxmC8RzsC1JElcIQBLPYowBAZjnRwgBCPEAkoS4TJIkrjCAEAbxTObZzAshJARI4n62AdvGgLEkxLMZBICQxGW2AdtcZpsXwLZtLpPEA9jmMkmSeB62eR62JfECSOJfZF442zyQuUIS4pnMFcYIAPFCCAkBGACQhHgmg8E8i23uZ5v7SZLEC2CbF4EkLrNtmxfANpfZBmwDgDJTEmAbsC2J5yTJNveTBNjmfpJs8zwk8Zxs868hZAwgZPG8BAYw5l9PEvezzQsmictsc5kQwjbPybYknodtQAghBBhzP0nczzbPjyTAGJDF/Yx5XgZAAELGgG1AEs9JCDAWMuZ+knh+bAOSANsABnGFLMAYQDwXSYBtXjSSeH5s85wk8QC2AUCSbduSJHGZbS6TZJsHkARgAGP+NWQhni9jAMAAiGexLUkSz8m2JNu8IAZAPJNBAAhZxlxmLMTzkGQb80xCyBgDGPMAknhOxhhJAGBbEs/DNgBIEgKMucJYFpLEFeaZhG0uEwIQz2SMhSxjnpck2xiEeCbznGwknskgJGyehxCAsM3zEOIyYwxgDACSJHGZbduSJNnmedjmMiEAIQmwzf1sS5Jk27YkSbZtS+J5CBlzmSTAGHOFJNtcJolnMYjnYhuwDUjiMtsAQhaAkGSbB7AtCYF5XpJs8wBCAAIDGHOZkDGX2ZYkiSvMM4krbPNcDIB4IEm2bQOAJC6TZJvnywAIIWNjIQCQZNu2JK4wCCFjnock2zwPSQBgm8sk2eZFZlsSl0mybVuSJNuAbUASlwkhMIjnZgBjDOIKSba5wgDGQjwXcYVtSZIAwLZtSYAkwDaXSbINAJIAjDEGEEIAxhiEJNsYxBXGGEASIISwDcYgAQLzHCTZBgBJgG2el43AAAZAkiQMYIwBjCXxPISMuZ8QYIwQ4n7GgBD3MwZkAca8cAZxhSTbGAQgifvZ5gFsA5K4TBL3sw3YBiQBkmzznCTxPGwDtiUBCMwDSeIBbPP8SOL5Ms9NALZ5TpIA21wmCWOMQQDGQgAC8y8wxpIAIZ5FPIttXjBJtrmfbUmAJNu8AJJ4TrZ5EdgGJPFsBM/DNvezDdiWxAtmm/tJkgQAGNu8ULZtcz/bXCZJkjFXGATimYxtAIN4IEk8gCQuk8QDSJLEA0iSxAtlm2cRz5ckQJIkALBtmwcymOdgnott21wmSRLPy2CeTQAIQBKAAYx5ANu2uUySJACQhPgXGfO8xHMR4gWTJIn72QZs869k2zbPwzb3s81zss1lkmwDtm3zAMY8i0A8iySel8EAmGcSDyQJEOIBJPGCSeJ+tm1zmSRJgCQAY2wbsA1gnsVYCAEI8ZyEuEJcIQQACMQVkgBJkiRJAoR4kUkCEAhJkgAE5tnMcxD/MgFI4jmYK2wuMwAG89xsgwAMALYN2OZZxPNnnkUW/1a2uZ8xz0kS/xq2+beybcy/ijHmCvNchACMJO5nm+dHiGcRz2YAIV40krifbdtcYZ5FEgBI4gEkcT/bxjyAMZcZc5ltALANSOIBhLifbcDYNmBbEv8SSbxgkiTxnCTZ5nnY5nlIAjDPxZhnMc8iifvZBox5TsY8kABs8y+xLQlAABhAFs9LPJCQECDEFeaZzDNJgAAQz8G2JJAkwDb3kyTEZQYMYJ7NNgIhJAkQMuZ+xsYY20IAAvFs5l8kxGVC3M+2bS6ThAAQGAxgG0A8B/NAkgBJkgBJknihbHM/SfxLJAGShCRJ4n62eR62ucw2D2CbF0IgjAEA8UxCiOdk2xhAXCHEFeZZJEkSQgBCGIwxgMFgMIAxV5jnJYkHsA3Y5oWSxL+GJB5AkiRAkiRAkiQAkG1jzBW2JQG2uUwSIInnZJvnR5JtABACjHlRGMBYEiBkzAMJzBWyEM8knott7ieJ+9kGbEvi300SYJv7SbLNAwnM8xICjHkWgXkutiUBkjDPJADbAAYhBCBscz8hwJgHsM2zCCEeQBJgmxdMCEAAxoAsLjMGAAyAAISMeSCBeSDbkniRSQJsc5ltQJIk27xQkngA2zwPSQAGMOZ+krifbe4nyTaXCRljEAACwDwHAyCeiySeH9s8J0m2uUzImAewLYnLbEtCAEIAxhiDuEKI+1nGYJ5NPBdJAGCbyyTZ5jJJtrlMkm3bACBJEpfZ5gEk2QYAIWMuk2Qbg3ggIZ5F2OYKg7jCRphnkXggG4nLbEuSZBuDeCaDeF5CxhiEEA9gzANIss3zsC1JyJgXQBIA2OaFsi2Jy2wLAYhnMgghwJj7SbLNZZJ4ANvcTxJg2zYASOJ+thFCPA9Jto2FAEmAbZ6HbUmSAMBYiMtsc4VBSLLN8xKYZ5EE2DbGAEIIDIC4QpJtwDYgSQhA2OYBZBkbc5kkSbYBjLEkBMZYSIhnEbZtc5kk7ieJy2xL4n62uUwSl9nmMkm2bUsCAEm2eR62JfEAkmzblsS/RBJgGxDiCoEBjHkeQsa2AUASVxjE8yUJsM0DCBlzhXkmIQQgbHM/Ie5nzAMZSQjbBoEkbABAsm1bEs/DtiQhAGEbwAYhXhAhY8A2IInnJIQAMMYYSYBlQIjnxzaAAIQA21xmWxIgCcAAxrxgkoyFAMA2z0kSD2CbF0oSYJsHkATY5jlJAmxzP0nczzaX2eYySdxPEmCb52IQAEKI52SbKwTm30jIAowBwLYQQoj7GXM/STwn2zwP25J4AEk8gG1eMEk8J9vcTxJgm/tJAmwDAWAA27YlcZkk/k1s8ywC8UCSeF4CkAQIYQBjzBWSJGEADAYBIBBXGPN8Gcxzsc2LTJIkHkCSJJ6TECCJBxACEIjnJp6DATAYISFAEleY508ACIRtwLZtwBghicts2+b5sc3zIwkAjI0BzHMwAAJhzBXmgYwB27Z5IIPBYCTxnCRxmSQus22bB5AkCZAkCbAN2LbN8yOJB7DNC2IAxL9MGCMAIWPA2DaAucKYy2xzhXkWSZIwtnkA2zwPSbZ5FiEJkAQACGPAtiRASIj7CQGY5yYw/2ri+ZJkm/tJ4lnMA0myzfNjGzC2DdjmedjmCnOFwRhsnkkgLpN4wYR4Lgawzf2EAAxCCEAY8zwk8fzYBjCAEIAAEIgXnRCAAYwBY56LAYR4LuJZJPHvYZ6XJK4wz0sS97MNAMZcYTBXSOIBbEvifrZ5oWQhAGPMM5krjHkgYwxgEAACEOL5ERIChHggY8wV4vmSxIvANg8gicsk2QYA25Ik8Zwk2bbNZZJ4fmzzIhLPTTyLJAQgCQBsG3OFAYxtc5kkSVwmiWcxxlxmGzDmMmPEsxnMczCYZ5EEYAABYBsJQOIySTyAbcAYwBjz3CwQz2Sby2wDxjwPSVwmhAAwAOZfQWAwV0iSBEjigQQgJIkXTIjLbPM8bPOvYds2YNs2z8O2bZ4fSTyAJEmAJC6zbZsXytg2gHkm83wYSVwmictsA4BtAJAkicts2wYwCEBIEiAJ8RzECyeJ+0mSBEjiOdnmASRJ4jLbtgHbvACSuEwSz0kSz4Yyk+chYQPYlgRI4gqDAGzzL5EE2OZ+kni+DGDM8yOEsA1gEELGPIAQ9zPmfpK4n20AsC2Jf4ltSZIA29xPkm0uEzIGAEmAMeYKIS4zBhBCgDHm+TAIIcCY52IQkmxzmbEQD2AbkARIss2LTBLPyTaAeSYhZAwAkgDbXGaMkcQDSLKNQVwhZMwLJYn72eY5SQJs86KxLUmSbV4ASdzPNiAJsA3YlsRlkgBjzBVCAMI2VxhjQJKQMcYYkMQVBvFAkgDb3E8Sz49twLYkLpNkGwBsA4AknockDGDbWJIk2zyQQQgZ25bEA0jiORkLcT/bvACSbAOAbUmSANs8P5JsA8YYSVwmxP2MAdtCQsYAYJC4QlwmYQBjXhCDkIQBjHkesowBxBWSeB62ucy2JCFjHsggJGEAYy6ThDHmOQkZ8wLYBgAhxLMIAbYBIQTiCts8gBCAsM0VAvNAtiXxQgkBCNvcTxJgm8sk2eY5CSEeyDbPSRJgGzDGSJJkm/tJAmzblsQDCBlzmZCxbUncT8hYiCsEBjAGAAzimQxgLIlnMUIIhG0eyCAk8TxsA4Ak29xPkm1JgG0us81lkiQBtgHbkiTZ5gEkcZltLpNkm8tsS5JkG4MQ4lmEbZ6TEOKZDGDMCyBkbBshBAhxmTEghLCNQQgZ8wC2JfH8CPFABoGwzQslMNiWxLPYIMBYCEA8BxtJYABsAwghQMgYsA1IEgIQtnkAIR5IALZ5HpIADICwDQCSbPO8BIABbEviOUkCbAOAbUk8P5IA2/zrSQJsA7YBSYAk7meb5yHJNi+UbUkAAgNgEM9FEmCb+wkhANvczzaXSQIkYYwB20IIQBL3s839JHE/29xPEvezzXOSBNjmXyIJsM0D2JYESAJs8wCSbHM/SYBtngNhm8skcZkkkCRAEs9FXCFJEg8gSRL3E+IFs80LJiSEAIQAzDMJwBiwbZsXmSRJgCQuk8Rlkngeknh+bHM/Y56TEFeIK2xjAMwzmWeRJIkrBIBAPIsQACAA24Bt2xhj7mebB7DN/SQhAMS/kRAy5vmxjZEECAGAEAZAXCHEA0iSxGW2bfPvJonLJAGAJMA2L4AknsUAiOdimwcyAAZzhW2uMICQJAAQAoQQ/7Fsc5ltLrPNZZK4n23bPIswRiCei5AQIGQMALa5nySeH2Mus839JEnifpK4zLZtHkhI4jlJAiQBQtxPiGcRz0FI4pkMgCRASGAALJ7FPIBtnkU8f+ZZbPMC2OYy2wAGEAIk8TyMMc/NPIsQIMQDCEniORlzP0n8S4wBzLMJQJIQz0XYBmzb5nkI8SzimcTzkgQgXkSSEFdIAoS4nyReMEk8JyEA8yyShBCIZzMIQBJCCMAAxoAx9xPiBRPiCvNC2JbEA0jiAWzznGwDtrnMtiQeyACYB5LEZUKAsRACQDwv28ZcIZ6bwVwhiftJQlwhBAjx/AghrpAESJIESLIN2OZ+kiTxfJkrbPNM5jKDMWDAFs8krhCXCRkDNsY8i4RtAGNzmRAgBGCezRgDmCts2waMEQAC8ULYBhCIB7LNFeY5GAxgm3+JbZ6Tbds8gCRJvAgk8e9mWxLPj23ANvcTQgCSMBhj2zyAJB7I2OYBJPFABsBghAAhIR5AElcIjG0uk8Rlkngetm3zPGzb5gFs2+YBJAGAJEASz8O2bcA2L5QkQJnJ85BkmweQxPNjG7AtCUDIAmwjACFj7ieJ+9nmfpK4n22uELKMeUEM4oFkIYy5nySuMAgAY8xlkrifbZ4fIcCY52RbEi+AEPcz5gWTBNgGMAghnpMxz8m2JF4EtiUBQoAxDyDJNgBI4rmYBzLmRSAJAxhzmZAxVxiEJMA297MticskAbYBSTw/trmfJNu2JXGZJMA295NkmwewLUkSYFsSANhGCAG2AduSuEwIMOYKAyCeyQCSjG0LcZmQMQKQZJvnIQmwzXMRmCsk2eYFsM1lknhOxhhJkgDbPD+SMFdYxjyQJNs8DyHAmOckyTaXSbLNCyDJNgBgEJJsc5kk21wmyTYG8RzMswhZ5jJJtrlMiAcw5oEM4gpJPA/bXGEQz2QQkmwDgCQAsM0V5pmEJGMMYFuSJIwxYFuSJIwxxliSJNsYhCTbXCaJy2xjEFcYC0myzWVCPA9j21wmBCCukIQBjG1LEjLGPIuxJC6zLYnLZFnmMkk8gG2ehyQMYMzzMohnkWRbEmCbB5DEA9jmeUjiMtsYxHMQQoBtQAhhmwcQMrYticuMZQkBgDGAEDLGICRhnknY5gEk2eYBJHGZbUASYNu2JC6zLYnnIWTMZZK4zBiQxbMIwLZtSVwmZMwVBiFkzBUGgSQAbHOZkDEPIInLbPO8DAIQAox5kdmWJGTMFQbxLEKAMQ9gWxJXGAQYxBWSbJ5JxjyQjcQDyFg8kJAx5pnEMxnEi0RgMIjnJYQAbPMAxrK4zFgSz0OSbR5Akm3bgCQewLYkLpPE/WwDgCTbXCbJNg8gicts8/xI4n62eaEkcZltwLYkwLYkQAiBMcYgni9JGMCYy2xL4nkJDIB5NvG8JPEAtgFAkm3uJwmwzXOSBNgGbEsCJNkGbAOSeE6SbPOvJAmwzf0kASGeybZtALDN/SRJAmzzgtkGMM9mAGP+zYwx9xPiuQghrjAYAPNMAvFsAgMgni9JkngASZK4wmCei20uE5LEFQZzhWVASBIPIAkBIDDPwTyTQFwhSRKX2bYtCZAkiftJ4jLbtrlCGAPGtgFj21xmmxeFMOb5kcQDCQBhzP2MAdu2Ec/Ftm1JgCRJPCfbPA9JXCbJNpfZ5gWTBEjieUjiuZhnkQQICWEwQkIA4gohIUDImMuMuZ8QIARI4gEkSeIKIYkrDIB5QSQBkngASTwPIZ6TJB5AkiTMMwkM4pmEJNtcYTAYAPO8JEmyzQsgiQcw5gojSYjnJAmQZMxltgFASIjnJARIss0V5rkI8Szm2cTzJYnnJIQQ4vkSgBAAIJ7JALZ5FvHcBIB4viTxbyCMuZ8xz8s8NwNgAFmAEJcJGXM/YwBjjLnCNoC5QhL3s81lthHPYhsw5lnMA0niMiEA81xsA5K4n21eFOY5iGexzQsgxPNjLItnEQDiWWzb5jJJvAgkcT9JtrmfJEAIwGAA2wDmCmOehyTbXGbMZcYAxliIBzLPxVgSD2CbF8C2MVcIBADYxjyQbWMuk4QAJGGMucIAGMwzCcQLIoQECCEAJPFAlgQgnknC5n4ChLhMQggBmGcR4gpxhSQAkAQAtgFjYwAjhACEuMy2bcCYyyQhrrCNeRYhLpPE/SRxP9u2AduAJEmAJElcJgmQJInnxzYPIEkS97PNA9i2DQCSJPECSAIkSeJ+tnkASVwmCYMBMMYAApAkicts2wZsIxBX2OZ+krifJCFeKNu2Ads8P7b5V5IESOJfYpv7SZLEA0jiMkk8D0k8B5SZXGZbEvezLQmQxP1s8yIQMub5EQIQgG2ekyTANs+PEM9L2AYwCCGekzEvGkmAbe4nCcAAthHPJDAYYyGEJMA2VxgEIIlnMcZcJgnzQMbcTwhAPIttHsC2JF40tgEhxBW2JfE8JAG2eSEMAgQ2FpLEAxkAYYzBIBCYB5IE2OY5SbINAJJ4ANu8ULYBQJIkwDbPSRJgmxdMEvezDRgL8SwGQEiyzWVCxphnsSzEZUJcZgwghGxjEA8khMAYA4CQMc9Dkm0uk2SbF0CSbS6TxLMYY9uSuEwSL5RtXijbkrhMkm2ehyQus80D2BYCEA8kyTYPYFsSAEjCAMZcJgQgANsABhBCIGxjEJJsA4AQgLDNCyDJNgBIso1BXGFbkiTbXCbJNuaZxBW2JQGAJMAYY1sSACAwD2RbkhCAsM0DCAGAsW1JAIBBAAgAg0EgMLaFAIQxBpAkCQMYA4AQABhjAGNJXGZbEpcJGXOZJK4wxkKAMQZAXCEJsM1ltoUAhJAxl0niAWxjAGNJ3E8SYJvLbEviRSMJgwBsc5ltLpOEwFwhZAxgAASAMZYECAHGXCbJNgDYlsQDSLLNA0jiAWzzPGxL4jJJtjEAApAEYCwDsgBjnodtISHLXGYsC0BcIQRGYEDGPIAk2xiEEAKwzQsgZMwDGGMASVxhEEJcZgxgAMTzIYR4TrZ5HuIyyQYMYCPxAJKwAYNtSQLAPDchY+4nhLDN/SQBtnkg80wCEOIKYRuwDUjiAYSMecGEuJ8xz0tgrpAEALa5nyTANveTxP1s80JJss0DSAJscz9JtrmfJNv8SyTZ5gqDeA5CCLAN2JbE82NbEiAJsM0DGAvx/NiWxAMIAcb8a0gCbPNvJQmwzf0k2eYySdzPNveTBBgDAQC2JXE/27xgtm0DtgFAkiTuZyxJEg8gJAQAxoAkSTwvgQCEMJhnElcY8wBCAOKZxDMZDICxbRsDALb5l0jiMmMAASAkyRIChBDPIkkSgHg+xBWSMM9izLMISfxLJNnmedjmMkmSeCDxLJIAhBAPZP4FBnGZMUI8F2MMYGQBCEAI8RwMgHggSbZ5fmzzPGxzP9tcJon7SZLE85AkiRedsc2ziGeRBEgy5jJjwFgIQEjiMtsYAIMRAjDGtrlCAMYIQAgQ4gEkSbLNA0ji+ZHEC2DMZbb5VxKSxPNjm/tJ4gEkSeJ+kgAhDAYwBmxzP0k8iwEwzyIJQAACQAhAPB/ieUkChACEbS6zzf1sc4WRBEiyDQC2AdsAYMwLYgDb3E8SV5grbAOAkCTuZxvAPBfbPBeDMOZZDIAR4n5CvHACEAKEAMSzGPP8SOIFEOIKAyAAxLNI4jkJAQhAEs+PMWCb58c2z8k2z48knh/bPJCRhBACMIAx9zPmWQTiednmediWxAPY5nnYts39JNnmgQQCkMQVAoNBPIttHkASYCzEZULGgM0VBsT9LCTE/WwLIR5IEs9JEkIIwDyQEA8ghJDF8yMEIJ5NCPE8JHE/Gwy2Mc9kwDaADRhsANtIACAJ22AADIAxGDCWxGVCAOZZJPF8iecgAMRzMeYBbAsBCEk8gCRJXGGeyVwhiWcR/062ucw2z8m2JO4nCbAN2LYN2OYBbHM/SVwmiQeQhJEkCUDYtg0AkoR4AEncz7Zt7ieJ52EbMMZcIYnLJHGZJF4IgZAkiedh2zYPIEkSANi2zWWSeE6SJPFC2eZFZAC11pDEc7MtCZDE/WzzALYlAZJs85wk2eaBDAKQBNjm+ZEEYABjnpMkwDbPSQiwjHkm80ziWWwDkngekgDbPCch7mcZ80wG8VyEjAHbkoQAY+4nyTaAQQBCgG3EAwkZA0LGgLGQJNuAbUCIy4y5TBIgyTZgG5DEc5IEYBAABgHYBmxLAgDbkrjCPItlIR5ACDDmfkKAMfcTAixjJPEAtnkASYBtnh/bkniR2ZbEA0iyzfOQxBUGMMYYA5IQmCsk2eYBbEsCAAxCCGGMwQDGkiRhAGPAGBASQjyTMcYgXhSSuMw2l0kCMM9iGXOFJNtcZlsSl0myzWWSbPMAkgDANpcZC0myzfOQZJsXSsjYtiQeQJJtHsggrhAy5oWShAGMeR6SbPMik2QbACTZ5jLbknihhIx5HpIAwDaX2ZYkCQBs25YEAELGPA8hwBiwLQkAZBkDCEm2AUDImCsMYCyJF0qSbV4AIWMAkGSbBzJCAOKZxBW2uUySba4wiP8ABiHJtm1ACCFkzGWSeB62eSCDQGCukGUMWAYwgCQukwRgjHkA25J4fiQBtm1L4kVjG5DECyCJB7DNZbYlSbJtLAtASLINYHOZQRLPZJCQAQxgEJJs8wCSuMw2l0kyxgAYwFiSJNuAbUASz2KuEDLmWcQzCQDzLJJsA4AQgLDNZbbFZZLAPCcDIK6QBNgGsLnMIAkAbEtCABhAElcYwJjLJNk2FgKEeF7CNg9kEFfYFkIIIYwxAAYBSAIwgDEGQACSuMI8izH3k8SLxjZgG5AEAJJsA7YlcT9JtnkR2JYESOJ+trmfJNs8J9uSACFjAIF5LrYlAULG3E8SYJvnJYS4n20ewLYkQIhnEYBtXmSSbPOcJNnm+bEtCZAE2Ob5kcT9bHM/SQAGEYAAkCRJkiRAEs9DEgBIAiQBgG2eh21JkrjMtjH/SkKSeAFs2+YKgcAAtm0DxghAkiRAkiRAkiReANu2uUI8k8AAGIwkLpMEABhjACOEeV62AdvGPA9j21xmzGXGACAEAJIASUI8D9uAbV4U4pnEA0nifpJ4vowxYJsrBOI5CMQzGcyziQeyzf0kSeJ5SJLEZZIASTyAJJ6HbduAbcA2z0MSz8VcIQsQQgBCkgBJtnnBjDEABnOFsSSuEIAkQAiDATAAxhiDMOYKgwGMeQFsA4Ak/iWSuJ9tXgDbtnkAYy6zLcRlkgBJPCdJPD+2eV4CAUgy5gGEhLhMyBhjMOY52eZZhDGAsc39JHE/21wmSRLPS0iyzQNI4jkJ8QBCXCGeTTxfkviXSDIGMFdI4gUT4gGMEVcYC3E/Y56TbZ6HsSRAEs9JEuJ52eb5Es+XJJ7FPF+2uZ8Q95MkiQcQQghxPyFAFs8irjDmeYlnEkJCXGFeCEkABhDifrZ5fiTxnGzznGzb5gFsYxAI2zwn21xmzANI4jJJ3E/I2BiwLZ6DwADY5pkMBjCAEPezbRuwzQNIAjCAbcCYy2zzAhjznIwBjDFXGMC2bR7IGAMYSVwmyVxm2xYASIhnEgAC8UAGwDwHCQCDucI2D2QwgG1ACANgMM/NPJAQ4lkkIQAEgAEwgJAQVwgEgEAAkrifsTH/oSTxALZt2wZs8/xIkiSJy2zzL7EN2LbN/SRhAGMMgHlekgBJCMQVkni+BCDEAwgJYQDbPIt4EUkCJEnifrYlcT9JkmzznGwDtnkBJEniRWAMAGqtSQIkAbZ5TpIA2zyAJNv8SyQBtgHbkgBAEmCb+0myzWWSANtcJsk2gEFIAmxzmW1JgCTANs+PJNs8gCTANveTBNgGbEviASQBtgEMIAlAALa5wgAIACMJMAYwiOclBBhjAMQD2ZbEAwghjDHPZJ5JAMZC3M9YiOchCcAgjDGSANs8XwKDQTw3AyCEAGNeMCEAAdjmBZME2Ob5sS2JyyTZ5kVjG5AkifvZ5n6SbHOFARDPIsk2D2QQCMxzM0IIyxjbkngggXkm80zimQxgDABCXGYsBCCusC0JACQBgG0uk2Qbg3gmgwAkAbZtS+IBbEvieUiyzWW2uUwSz8O2JEkAYJvLbEviMtuSeAAhAIExBmxLkoQx5lkM4oFsCwGIK4QAyxjbkni+DICQxPOwzRUC80CSbHOZJMwzCYwx95OEeRZj/pWEAMuYKyTZBgAhAGGbBzIIIcCyEICxjXhekmxzhQGMuUySEICwDQAYhCQus21bEg9gW5KQMQbxTALzwgkZ2+YySQBgW5Ik2xiEJC6zbVuSJNsYhCTbXCbEZcbcTwhhGwAkYZ4vY57FWJbFZcaSJNkGAAxCkm3bXCaJB5DEZbZ5HrZ5AEmSbPNABjAWErLMZbYlcZmQMZdJss3zMgiQMPczYCNxmW1JPICQMS+AJNtcJsk2gDFGCAGSbAO2uZ8QlxkLcT/LgCwAIWRsG5DEczGIKyTZBgDbEiABEoC5n3kmGfO8DOL5MIgrhIwxAOLZDAIQ4n7GGMTzEgIQtrmfJMA29xMCjHkA25J4ICGL+xnzryEJsA3YBiQBkgDb/EskAba5TJJtLrMtiedhWxIvnHkm8UJIAjCAMfeTBNjmhRIyBgDbkgBJ3M82l9mWxAsgyTZgWxIgCbANSLLNv4kkLrPN/STxnGwDwQsmSRIPYNs2YFsSl0mSBACSeAEkAZIk8YJJ4jnZ5grxLJIkAZL4l0iyzf0kSeKFksS/hiRJAAIBCEnigQSAeG4CASAQz2LbNmAbAISEAIyQJB5AkhAgxAMIAZIk8XwZzLNIksQDSJLEFQKQhAAQAALAABghIR5AEv8SSZJ4HpIkcZltLrMN2OYy21xmm/tJ4jlJAiTxIrBtGzAGAEmSbAPGxgAGISQkieckiRfOPJNBAMa8EMJYCEAAxsaAbR7ANs/LCMkCMIBtnh/bgG2ekyTbAGCb+9nmOdnmOUniMkk8gG0uExLigQwG8Uzi2YyQECCJBxJCPJABEA9km2cRLwohSTwnSQACQDybeP4MIMT9bAO2eU62uZ8QAGAQCEnGPJAAJHE/2zyLeG7m+RPPn3luBhDCABgAYZsrxHMTtrnCPC/b3E8SLzLbPCdj7mcsCRACEM9mXhjzbAYQ4n7GmOdim8tsGwPGPIBtDABI4vmRJInnx7YkSVxhHshYiMskbBvznGxzmW3bXCaEAPFCSbJtnkkSz0mSJJ4fYyEhLhMCJPFCCRkDgDEPIARgAEk8L2Gby2xL4pkEApAAzHMyAOYBJCGBkDCY52AeyBgDIAAhIcyzCcQzmWeRhHgWY8QLJwQgrrAN2OZ5GQSAQCAAYwCD+S9mW5IkQJJt21xhANvcTxLPj5AkIZ5FPJN4gQzmedkGMA9kGzCWJAmQxAtgG7BtmwewbRuwzf1sA7Ztc5ltSfxr2LYN2OZFhTKTyyQBtrmfJO5nG7AticskAbZ5wYQAY+4nifvZ5n6SANs8kEEACMwDSQJs85wkYZ5JPIttwLYkACELMAZsS5IE2Ob5kQTYBjAIIcCYyyQBtrlMCDAGhHgW8QKZK4x5foSMMQghhDHmCiHAmOdHEv8S2zwn25J4HkJcITDGGMQzGcQDSeJ+xoAswJj7SbLNA0gCANvczzYgiedhWxKXSeIFsM0LYFsSz8NYiAcyxoAkIQAw5gEkYa4w5n6SbHOZJNuYBzIGhBAYxLMYCwGALGOuEM8iyTYvgBCXGduWxANIsm1bEpfZliSJ+9kGbAOSeH5sSwIAIZ5F2DYW4kUgZMzzsC1JyBhACNnGAAhAEsZYyDLGtiRJtm1zmSRJmGcSgG1JtnlOQgDCNg8gCWPM/SQBxpgrhIwxzyQk2bYtiQeQZJsHkIR5JoG5whiwLUmSbV4ASZjnYsxlknheBjAGAGNZAOIK20IA4vkwCEm2eQDbCCEAgXkg20IA4gpJtnlRCCHANpdJss2/n3kgSQjbtgEhhJAxBvG8hIy5zLYkLpNkm8uEjHnBbAOSEAAGMJYFIJ7JSELY5grzLMaSkLANgAAQMuaZJAwAlmRzP3M/G0lcJtkGAEmAbQCDeCAhYx5Akm1eACFjjGUhrjAPJGSZF8q2JC6TZJsrJGzuJ4RsAwgAAwbxQELGACDJNlcYxDMZxAMJGXOFADAABkAAgBBgzAMJzLNIAmxzmSQus20bkMQLIYQwlgHMFbYlAYBtSTwnSYBtnh9JvGhscz9JgG1eBEIIwDYG8WwGQACSeBbzbAIDAMa2JQGSANs8D9uAJO4nyTbPSQgwxhhL4vmxLYn72ZbECyAJsM39JAG2eU62AUk8P5IA2zwHAgBxP0m8YJIASZJ4ANu2uUwSV4hnMhhAiAeQxPNlAFlcJiQkiechSRIPZF442wDmmQxGEs/Jtm3ANs9LPJvBALYBxHMQiBfCmGcRVwgBiAeSZMwVBsAACEASVxjMczD/KrZ5FvFAtjHPZACMMYB4FmPb3E8SL4AQgJBkm/tJksRltnkASTwnSTwnSfxLJPH82OYKIYkrjG3AGMAAQpK4nzHmWSQBiOciiWcRGCGekxBXmOdLSAgQ4jlJss3zJYQAhDGX2eYyIUm2AUncTxIPZJ4PIQkhxHMSAjBX2AYwtrmfJF4wIQzm2YwkHsgAQjwXIYR4QSRxhfgXCXE/STxf5rkJQJIxABjz/EgCEC+MeEGMAcA2z0U8m3k28XwZAwhAEgAIGfO8BAawzfMjiSuMbUAIkCQkifvZ5lnMFbYlAZJ4TpKEuEI8mwAQgCRASAgDGAO2uZ8kIV4oY2OexVwhBAjxXMRzERLiASTxAMaSuJ9tXggD2AaMjblMCAAwiMuExGXGPCcBIARgMM9FNhISz0XCxgawkQAJwDaAATDPIgRgMFdI4jlJ4n5CXGYsBAgBQjyAsZAQL5gk21xmWxKXieckLhNXSEIIDGDMZcZCPJMlcYV4NvFcjIUAhBAGsG2MACRJ4jIhIZ7FSOIFsM39JEkCJHE/STyQARDPJBCAJO4nCQAk8R/HNs+PJF4Q8SzGPIsAhADA2JgXzjyQJB5AEg8gBEiSxAPY5jLbtnkgA0gCJHE/SZIASba5zLYkQJIkSZL415DEA9i2zWWSeMEkAbLNZba5nyTANs+PJO5nm+ckifvZBoS4zJjnJIkHsM39hLjMmOchifvZ5rkYhCTuZxuwLYkHMogXwrYkQBJgm/tJwhjzQEIWzyKexRiQxXOyjAEQQhhjrhBCGMCYBxACjPnPYZvnJWRxhRACjHlOtiVxmSTANiCEuMI2gEE8k8C8ILYl8QCSuMw2DyAJsM39JHE/29xPkm0ewLYkLpNkm8tsS+IBhIyNhSTZxiCukMRltrlMCEDY5jJJtnkeQsZcYQAEIGSMQTyTeTYBSOIy21wmZGxbkhCAwADGgDFGEg9gW5Ik27YlcZkkwDbPSZJtLpNkm8sk2cYghABjwLYQgJDEZbYxCEm2bUviCgMYC3GZZSEAsC2Jy4SMMYgrJGEAYx7ANpdJkgQYY66QBNgGbEuSZBuDEOIyYx5AljGAEAKMeS4G8bwk2eYyIQBhmysE5oGEAGPuJ8k2YBuQJIkHMoAxBnGFJC6zzf2EAGNACGHbGIOQxWWWZSGexbYkSZhnElfY5gEkARgEYBuDuELIGAAkAYBtLrMtSRJXmGcx5jIhYx5AyJjLbEviASTZ5nkJzHMRAoy5TAhAYJ5NPIttDOJfJAmwbRuQBEiybVsSlwkZ2xYCEFdIwgDGgBACGzDPYhBX2EiSbLABY0m8YAIkbB5IgLifbdtCXGYsiSvMMwlJtnkASTwP21wmZMxlQsZcYRDPZBAPJGQM2AYkAZK4n23bkgBJYCPuJwMYc5ltSYAknpNtnock27YlAZIADGCMMQgQEiAAAxjznIQQD2SbF0wSz8k2DyBkzBUC8y+SZFsS97PNc5IE2Ob5kQTY5nkJIZ7FPJOwzf0kAZhnMeY5SQJsc4VBPIsQYMwLIAmwzf0k2eZ+QsYYY4QQz0MIQDyLbcA2l0niASQBtrmfJMA295PEc7LNv0QSYJv7SQICm/84kgAMBoNAXGEb81xsc5ltnpcwBmzb5jJJkgDANoC4QhIAIADMc5HE/WzbRjwXSVwmBEjihRKSxLOYF4nBPJN5JgMgns1gANuYZxJCAOIK27a5TJIknodt27xQkiTxQlk2RjwvSQAgBAhJAjDPwTyLsW0uE5LEZbZ5ANuAbe4nicts8wCS+NeQBEjiMklcJsk2YNu2JECSJECSMYABbPMAkgDANs8iELZ5TrZtA4AkSYAkLjM2xgCALO5nzP2MeS4CEDLGAJhnMlcIAUKAbQAD2JbEA9jmASRJ4gFs8yxGCBDiuYjnIsT9hBBC3M82gAGMeU7G3M829xMCMM9krhDifrZ5kUnigcyzCPEsBhDiuZgrhIR4fiTZ5gpzhTHPYq6wzbOI5yIJkMTzJZ7FNs+XeTYjxItAiAewjXgm8wKZZzIviCSek20AMOaBzPNlGwCMJfECGEviOUkSQjw3gfjXEbZ5TrZtc5kkxLNIkgRI4jkJAZhnEQIQAOI52IhnEpcJG8AGxBVGGPNcbADzbBIPYEACgXkAScaAMWDMFeIKIcwDSeL5EoAQgMEAxpIQQpIwz2aeRQjAYP4VbDAYQAACEC+QAUkgrjAYIQwgiedlAAEghMUV4rkICQGYB5KEeCBJvGBCQpgrjAEMgJHEZUKSuJ9tHkASz8O2bZ6HbS6zzb/IPH8G8UzimcQziecixAMZAIN5JoGQJInLbAO2bQO2bXM/STwPIUAIY5vLhBDPzTwvSfwrSeIy27xQkviXIWciAba5nyTANs+PJMA2IIn72eZ+kgAMYAxgEA9kWxKXSeI5GWOelyTbACCJBzLG3E8SYJvnIjC2AUmAJNtcJon72eZ+QgDimYwxIAQYA8ZCQsYYxANJAmwDGISQMQ8gZMwLJQQgANs8D0m2uZ8k27wIJAG2AduAJJ6TbUkAIInnZJvnRxJgjHkmgXlekmwDtgFJ3M+2JECSbZ6HJO5nm/tJ4n62eU6SANvcTxJgG8AAiBeRJNs8DyHAmOfHWIgHkGSbBzKSAGPbkrjCIK4QMuYyIWMM4pkMAoHBIISMeQDbkngBJHGZbV4ASbYxiAeSxGW2AUAIsIx5XrYl8TyEjHkA25K4TBIGMOYyIWMMQpJt2wBCiMskYYy5nxBgDNiWxBXmOYgrbAvxLEIIMOZ+kjCAMZcJAQjAGIN5JiHJNg9gWwhAPJBtSVwmyTaXSbLN87DNZZIAIcAYgwCEMJYBIcAYAxhLEjLGAEIIhG0uk8SzGGNAEvezzRVCCMA8k7jCNg8gybZtSQAgBCAwz2JsWxLPSwgBtnkggxACELYBQBIPZDCIZxLPhwGMEVcIAbZtA0KIF0SSbS4zFpJkmweQhAGMAQCDkMRlxoAMYARIBjCAARtJYMBG4pkM4jJJtg3imWxLQggBtrElIdnmfpIA2zwP2wAgCRBC2OYyIS4zBiQBtgFJAAawDSAeSMjYtiQhY9uSELIAYy6zLQmQBGAAY+4niWexAQNCCLDN85DEA9gGAAxCyJj7SQIwgLFBAALzTJIAbAOAJNsYxHMRAoy5nyTuZxuQxP1sAxgEgEE8k8A8iyTANmAbkARI4jnZBmxLAgBJgG0AsA1I4jJJgG2eH0mAbe4nBCCeg0Fgnkk8i20AQGCMZSGelyTANoBBPBfbknjRCQADAEIA4lls8y+RxP1sA5IA29xPEv8S29xPEmCb+0kCAsQLIInnIYl/LYNBAJIkcT/bvCDmWSQBgCTbPF8GEAIQkjDPYts2V5jnJQlAPJN5NoMBjAEAA2Awz2aEAGOuMADm+RCAMfcTErKNeV6SJAFCPIAkACGJ+9mWxAsgSRLPQxIvmCQuk8RlkrjCPIskSVxmbJsHMs8ihAAk8ZwkAZK4nyRAEgDY5n6SJHE/21wmiedHkiReBEJCXGbMA9jmCiGJ+0myDRjb5n5CGAwgxPMytgHb3E8SgHgmYcwV4nkJGWOezSBeOCEE4oURgCQAsA0AtrlMkhAgCQMY2+Z+kni+xLMZzBW2JfG8BCAECAEAAgAkAYhnkWTM/Yx5HpIwL5xtAPMsxtzPNmAMWEYAiGcSgBCAMOaBxLMI8ZwkAZJ4Lua52OZ+kgBJtnnRmRdCFg9gLAQAiGcSL4Rtnpd54WxzmW0eQIhnEQDiuQjx/EjiWQwgiysM4oUxxvybCAGYZ5HE82Oby2zzAJK4nyRJ3M82zyaem7jC5oEk2wA2RgBI4jLxPMzzMM+PbS6TBACSeCABIK4wxmBeOCFASAiDAYwBSTwXgwCEJPHCCQRgm2cSCITFZZK4TBL3s80zGZAkASAAY56XuEJcYZ7NXCYBIHGF+BcISbwoxDOJKyQJ8e8gCZAkicskAYAkSYAkSbwg4vkTiOcmMM9izPMygBACkCSJF0QACMQVtgHbXGbMA9i2DQCSAElCmGcTiCts8/xIksR/Akn8C1CmkQEh7meb5yQJsM39JAG2uUJgnkUSYBvAIK6QBNgGMMaSAEk8J9uAbUmAJC6zzQtiEIAk2zwn25L4lwgBCMA2gEEIAcbcT4grjDHihZOEMeb5kWQbg7hCyBiDeD4E5gohYy6zLUkS97PN/STZ5jJJPIBtXgBJgG3uJwmwjRACbHM/IWMM4gUR4jJjLrMtSRKX2eYySVxmm+chyTYASAIA21wmicts8wJIAmwDxkI8kAGMuUwSVxiEEIAAANtcYRBXSMI8B2GbyyTZti2JB5CEeRZjnocQzyJsYxDPZADLQpJs80AGEEIACMA2l0myzWWSbPM8bAOSAElcZptnMQBCkm0eQJJtLhMytg0ghLjMWEgSD2CbKwzigSTZ5gGEAGNeMElcYZ5JYIyFLGMeSMgYAGxL4nnYliQEWMY8B4GxLYkHEDLGIB5ICLCMuUKWsbEkSbZ5HpIA24BtAJDE85BkGwMIIRC2hQCEbQxCyJj7CfEAloUA2zyAJB7ANpfZlsQDCSHbkgDbPIAk28ZCAIBBPJCQsW1JkrjMNgBIwgDGXGZbkpAxBgFI4n62uZ8Q9zPmgQTmClmIZxK2eQAhYwCQBNgGbEvigQxCkm3bkviXSAJsAwBCCLDNZQLzfNgWl0kSRtiAbUlI2DyTxBUGzDPZlgQIAcY8gCTbgG1AEiBkLITAYIwRQgACsA1IAmwDGAAhZMxlkmzz/EgCbPOCCSEeyDb3EwKMuUwSl9m2LYkHkGQbAIyFuMy2JO4nCbDNCyUJY8xzMQhACDDmOUniWcyzGHOZJNvGQlwmZMz9hABjXmSSAMA2IAmwzf0kcT/bXCbJNveTBNjmRWEQgCTANi+YJMC2bUmAJMA2AAghANu8AJJsA7Yl8cIJzBWSANtcJonLbHOZbUk8J0nczzb3kwTY5n6SuJ9t7icJsA1I4n62gQBAAAbzQLZt8yIykni+BCBJEgAICQFC/EtsA7a5TEgSz8O2MQDYBmwbcz9Jtm1zmZAQBjA2BjDPh3g2g3kmgQAQkgCEJElcJiTEFQIDyJIFAMa2ucw2gAAQkgAhAGNsDNjmCvMsxoBt25J4wWzz/NjmMtu8iMy/QAhxhbHNZUJCXGYM2LYtiRfMNveTBACSbPOcbPOcbPN8CUk8kLHNCyCJBzIPZJsrDOKZxHMTzyLJNveTxBUCA2CuEOIBZMniWYRtAPEsxsZCXCaJy2RhACEAA2AABCAJEEJIwgC2bWOuMOZ52OaBBCBkGwBs80IJ8YLZBgDbgG0AAwgZc5kxgHkm8RzEM5nnIIx5oYQASTwnSYAknsU8F9s8J9uAMc9inpt5NgEIGfMAkgDEv4Ekni8BIJ6LJJ6LuEIWD2CbF8w2z8s8f0IS97PNsxjAmMuMMf8yA9gGAGNeOPNs4lls2+aBDIB5viRxP0mAbcA2YNs2lwkhhDBX2DbmAYyNuUwSz2SBAMA8F4MkxHORZDAARtiAbQDAlsQzGTAgIQGAbZ6TkBAvnJHFAwkAgXhBjI0BYyFAEvezzf0kSeJ5SJLEA4kXRiCexTb3k2QbsDEAxlxmGwsMgAHbvBDiCiEMBrAx5n6SJAGIZxKIK2zb5oUTDyRk2xgwFgIQiOclJInLbAO2bXOZJP5NbPMC2OaFMMa8AEKSuEI8kCSeH2NeZJK4n22ekyRJmBfENg9gm/8GKDMRgBBgm38rIQAB2OY5CQEIAAMYcz9JAOZZjLnCIJ5Fkm3+lSTZ5gEkYYwxgLEQgHi+hABj7icJsM39JNkGJAG2eQAhwJgHMBbiOUkCbAMYxAtiW5KQMf9KkrifbcA2IInnJInnZCwEYIx5TkIAYMxltrlMEg8kMC+IJACwzQNI4n62AduSJNnmASTZ5gEk2QYAIcBYyDIGg7jCNg8ghAAk2cYghLifMYBBCAEIALDNZZJsc5kk2zwPSba5TAjAAICxsRCAEAIQgG3uJ8k2YIyRJIkrjDGAARCAkDGXSbLNC2VbEpfZlsTzkIS5whiwLQCQAADzLJYxkngWgxDiWYRt25J4ACEAYZvLbEsS4grxXGxzmSTbACAEWAaEMM8kbPMCCBnzALYlCXGZMQBgEJJsc4UBjIUAxBWSbHOZLIQxz48kzLMY8wCSbNsGAElCxrYlCRlzmbEsACEJ80zCNgAgZPFAwjaXSbLNA9iWxP0kAbZ5AEm2uZ8kwDaXSbLNZZJsY55JPC8hYx5Akm0eyCCeg8A8kxDifrZtCwGIF5UBEELGPICQMQ9gWxIvCoN4JgMgAElcYZ6DsM0DSAIwxrYlSbINGASAkLFthBAgBCAwYBDCNg9gWxJCFmDM82WMJQFCgDGXCQGI52Wb5yWEANvczzYgCUBgns0ghBCAbQwCEAIsA0KAbduSAEmAbR5IYJ6DQTyQbXGZxGW2JQGSAMyzCQAD2EY8LyGEbQAQQmCMeU5CAMIY8yySuJ9tHsgghBAA5pnEFbZ5ASQBtgFAEvezzf0kcT/btiVxmW1JgCTANmCby4QAxHOxLQmQZBuwLQmQBNjmfpIA29xPEmCb5yQJsM0DSOIy2zwXgwBsSwIk2QZsSwIkAbYB25J4EUjifra5nyTANveTxP1scz9J3M82z4HgBZMkiQeQBACSeAAhIV4AISEeSCD+BQIBSMJgrrDN/SRJksRzEQ8kieckCUAISQKEjAGMbQCQhAAQLwrbAGDbNmDbmBdMyLZtrhCSeCABSEI8kxECMJIAxANJ4gEkcT9J/Ets2+Z+kgDbPIuRBWAADOaZhCQuM+Yy2zwn21wmJAkQ4gpjmwewDdi2zQsgCbDN/SRJss39JEkCEIAQgHkmAyCeLyEuE7LNczGAEAbxTOIK2zw/xjw/tnl+jLnMGAEgEM9FCJAECPFcxBXGxjwP24Bt24Axl0mSBACIB7INAJK4QjybeE4C8wDGxtzPmPsJ8YJJAoQwACCJyyRxhUBcYZsXwjwH87xsA7a5n5Ax5lls85yEeABjxHMxRlwhCUAAQgAGwFwhJAlAYJ7JAEK8EAbAAJhnMQaMeV4GASAeyBjxQMY8D9v8xxHiuYjnIokHsC2J+9nmfpIAQIgXmTH3k8T9hLifMYAxFuL5MQZscz9JPIsBMM8ixHMRAOIKYx5IPBdJAAbAPJBtASAEYISEACGuMJYNiOclCcAgnj+DeQ7igYwRL4zBCAEIIQBzhW3bPJABbBtjACHuJ4TAYF4UkiTxLEaIBxIYzLNIAgBxP4kHElcYG3M/STwnISEA8yzGmGcTz8UYQDyTeL4kAQjAmCsEYMy/RBJgm38lSbYB27xgQoAkAPFAkrjMNmCbfz1JkngBbNsGbPM8hADEFZK4zDZgm38HSQBgm38TSbwAkgA5jXgW29xPEmCb+0nifra5nxBgDEgCbHM/SZgrjHlBBOZZJNkGhGwjnsW2JECSbS6TxPNjm/tJAgDbAEIIYwzY5jIhBCAJc4VlIZ6HbZ6LQTyLbSFAEmAZY1sSVxhjSYAkzBXGPIAkAAPYBhAPJGTM85DE/WzzryGJ+9nmWQTmeUkCMAhjjG1AEg9gDAhxP0nGGNtcJokXQBL3s81zsi0JkGQbsC2JBxAyxiCEeC7CNs9DCLCMuUISxhgDIIQAhG0ewLYkALAtiRfOICRhMAhjwLYkABAy5jIhLjPmeUjiAWxzhUH8CwziORiEJNtcZluSJACwzWWSAGPMM9lIPA/bPIAkIWPMM4kHkmSbF8C2JEk8D9tcZlsSl9mWJAQgANsABnGFbUlcZlsSz8O2JC6TZBuDuEIWAoF5FmMeQBJgm2cxiAcSMuYyIS6zDSAk2eYBbEviMiFjABAy5n62AUlcYRCSMM8kMM8kbAOAbUmSbHOZJNs8J0nczzaXSeJ52LYtiechZIxBSLLNZULGvMgk2QYASVxhnklcYZvLhIxtc5kkLpOEeRZj2wBCFoB4JvNM4jkYhCQus22bB5AEAEIAAvNM4oFsYxAPZFsSDyBkzPOQhAGMbUsSMsYghLjMmAcQMuZ+QgjbGISQMQBgEM8ihLBtWxIvgJAxVxiEkDFXCMwVtiXxghjEAwkBgDEgYRACbHM/SYBtXgBJGMCYywTmfjaSJNs8LyEEYABjLhMyti0JEOJ+xsZCXCYLASAADGAMCHGFsA0IAZYxkgDANs+XEMJcYQwAQgjANg9gWxIgifvZ5n6SuJ9t/jWEEA9kmxdMEmCb5ySJ+9nmMiFj7icJsM1zkmQbMBYChLhC2AYABAawLYnLJAG2ucw2l0kCJPGcbHM/STwn24Aknh/bPCdJgG3uJwkI80w2z5cknh9JvOgEgLjCGACMbdsGMA9kG8DYliTEZba5n22eL/NC2OYKAyAeSIjLhDDPIsQLJ4SEAMyzSOKBzBW2uZ8QV5hnkSSJ+9kGEMYIxHMx5n6SJPEikySJB5AkiRfEPIuQECAEYBAA5rlIkgQIYWwDtgHbmGcR4jLbvFCSuEwS97MN2OZ+tgFjAGMbg3g2g7nCGPH8CSEukwQgAMQzCYRtwLYxz8lYCCMkxANIksQV4tnE8xKyzXOyDRjb5gpJEgDmWcSzmWeRJIkrBCAEYABjAIMQAiRxmSReGEnimQSA+JcYc5kxYJv7SbLNZbYxD2Sbf4ltwDZgG/FMAvNAtgHbQjyAbS4TksRzksT9bAOY50+8ELa5TEgSIGSMeSaBABDPIon72eZ+QjwnSTyQMAZs83wJAPEstrmfEP9xbPMiMs9izP0kSeIBJAGS+NeQxBXiCts8i3g280zmmczzJYkrhBAvmG3bgDHiXyCwATBgAIx5AGNJkngASQDimQTGmPsZc4XBXCEEYDAYDIABEBiMEM9JSAjAAJJsA8a2eSBjLMQVAvNMBsBIksQDSJLEFQLxfBlzPyEQ5pnEFZJ4HpIkcT/biOckIRCABNiWBCAk8SzmORgMYAxIwmCeSSAAIdvGgDHPl3g289zEFba5nyRJPIvBAMYA4pnE8zLm30xcIYTBAIAkXjAhIQwGACRxmSQMIIkXgbEkXjBJkmwDtgEM5tnMswgBgCRAkiQAIyQJkMR/Mtu2eWFQZkri+bHN/SRxP9vcTxLPl3kWY0AIYRvAPJt4LsZCXGEQQghjzHOxLQmQBNgGhAAEYBuwLUmSba4wCCGEbcA2IAkQAowBDAKBuUIS97PN/YQA24grJNnmMiHAmOckyzKXCRljEJIAY8yzCcxzMRaSZJvnIYn72eY52ZYkCbDNv54k2zyAJNu8CGxL4jIhYy6zLYkXQJJtHkASYJv72ZbEczLGSAIAYyGexQAIIQDxXIwxz4fAvEAGMOZ+QoCQZZ6HEIBBAMYYhJAxlwkBxoBtISFjxLMZhLhCAMI2l0nCALYBhCQus81zMcZcJkkIMOY5SbLNA0jCPIsxD2AsxAsiMM9kEFdI4jLbgDFGEs9DyJgXmSTuZ5v72QYQQpJs25bEZZK4zDYGIck2D2BbkpAxlwkBCNtcYRCSANuAbUlcJokrDGDMZZJs8wBCAMI2BnGFJJ6HbS4zlgUgrrAtiSsM4oGEjDGAsSQuk8RltrlMEpfZ5gFsS+J+krifbS6zLUmSbduSeABJtm1L4jLbgCRAEpfZti1Jkm0uEzLGIF4QSZhnMeYFEbIwlrnMWEjImMuEjHkASbZ50QkhwDbPQ8LmCoHBthAPYCyJB7AtSYgrBGCby4SMjWUBCCFjHkCWMYAAhBAYAIMAELZ5TkKAMVcYxBWSbNsWAhBCxgCAARDPlyQusw0AkmzzvIQQYAwIARjAmBdMCGHbWAgQ4gqBeRZjGwlACIEBjHkggcEAxkI8i3ggSbYBwLYQgAAk8SwGMMYgACGeRQC2AcC2JC6TZBuDeCYjCUAAtrlMyBiwDUjifkIAArDN/SQBtgFJAMYYkIQBjHkAIQSAAYy5nxBgzAMIGXM/SYBtnock29xPEs/JNs/LWBbieUjifrZ5fiQBtrnMtiRAkm0ukwTY5vmRxP1s80LZlgRIss1zI/iPZZ5JIJ7JYADMCyGEwQDGGNsIAPFAQgBgmxeNJMA2gMEIyQIwz4dAPJMAMC8SgwAQCGOekxBXiCssc5mQbQziWYQk8SxGiMuEAEAIACQBkngBJHGZJC6TxHOybZvnIYnnIck2l9kGANvcT5IkALBtmweQBAgJAUJcJgmQJIn72QYA2wBgmweQJIn72QYAhCRASBIgxGW2eRYBYF4gA9i2DdgGACFJXGbbNgAICfECGDAvjDHGABhAiBeVAAyAucKYBxLGiAcyBoxt8zwk8SwGY2wbAGzzAJIAwDYGEOJ+tjG2eSHEcxPPIgkQ4n6SuJ8kYwCwDdjmfpJ44YQkHsg8L0lcYa4QMub5MeaBxLPY5gWTxLOIZ5FkmwcQ4vkSL4Rt7ifE/WwDxjwPY1nczzaX2eY52eYBbAO2Ads8P5J4fmxzP0k8P5IASTwP21xhjGVxP2P+RQbzTOL5EEJcJsRlkrifEM+PbcC2bS4T4lnEi8JGCBDPJAkAhLhMyJj72QYwxjyQAIQAQMjYGDCWJIkrzHMTz2QQxghAEs9FIBAIAHGFJACQZGyMsS0kBCAQgCRJPIAknodtSTwv82zmORjA2DaXSeKBDCCEATAYAIMw5gojwGAAzBVCPJABEMbcTwgAhLifbUmSAEnGxrwg5tnEM4kHsg3Ytg3YFpKEeWGMMYB5ICEhnh9JPA9jLrONAIQkcT9jHshgnkkAQkJcYWzzgknifrYlcZkkrjCYB7LN/WwbCwGSJPECSJLEZbZt8wCSJAGSuMw2z0mSJACwbZsXmSRJgCQus83zgTKNjHkgSYBt7ieJ+9nmRSPEi0LYBjCAZSEAgwAk8QC2AcC2JB5AEs/JNs+XQQgBljEABnGFkDHPybYkLpME2AZsCwEIIZ6LAGxzP0lcYZ7FGIO4QhKX2QYAYyFJGMCYF4EkwDb3kwTY5n6SANuAbUm8AJJ4TrYB21wmieckCbAN2AYk8bwM4gWxLYkHsC2JF8C2JACQBGCMMYhnMsaAJAQGwAAISYBt7ifJNvezDUiSBAC2eU5CgLGxEA8gyxiMJMm2bUmSMMYYAPFMBiEJg7HMFebZBCDJNgYQIEDGXGZbEpcJ8SzCNs/DthBXCEASxpjLjDGSuMy2JEm2AUAIAIMQtm0LcZmxJC6TZJvLJHGFeSZhmweQZJvLJNnmRSDJNg8giSvMcxC2eQBJtgFAEmAbIYtnEba5TMjYtiRJtm1L4gFsS+IyIcCYf4kQYAxgEJJsYxCSbGMQkgDbkrjMtiTANuZZhBAI2zwXI2SZy4S4zJjLbEvieUjiMtu2AUncz7YkQBJgG5AE2AYASbZ5AEm2eSCBuUISANjmCoN4ICEuM7aNEAIk2cYgnsk8ByEJAGzbliRkjEFIss0DCBljEJJs80AG8bxkWeYySTyAbV4oIWMuE+IyY9tCAOI5GISQMZdJ4jLbxoAQz8m2EM8iACEE5pmEbQCQZJsrhBBgm8uEuMyY5yFkDADGQkIIwDbPQ5Jt7ieJf4ltAJBlbEAW4jJJAAYw5gqDAIR4FgHYxgCIK4QAYwxCkm0uk2Sb5yQEAAjbGMTzsi0JkAQYA7IA24hnE5h/kRBgjEEAQtzPmMuEjAHbAiSeH0mAbe4nCbDNZbYlAZIA21xmWxKAwDyTMZbEA0iyzQMZBCCJ52SbB5Bkm/tJ4n62AcA2IInnx7YkQBJgG5AE2OY5SeJ+tnl+JHE/21xmWxIvGkmAbf4FhAAD2LbNv4Yknodt2wCAeA7C2BhAIADEsxgbC3GFeF62Adu2JfGCGQOIKyRJksQVAkAghCQBCNvGgLEQgJDE/Wzz/Bgjns1gXlTCGEAAkiRxmW3Atm0hrhDGPCfbtrlMkiT+TSRxmSRJkvjXsM1zsg1IAiQBxlxhAGPbgG2eH9uSAEmSeE6SAMAYAGxLAhCSuJ8QgHkWIQQgJAlAIF4QSQACkMTzI4n7GRsDQlwhACEwgCQw5oEEgHhBjDHPl5BtnkWAjAFj24BtAPNMAmGbB5DECyEAIUCIB5AE2OZ5CduAeA62ucw2L5gxANjmfpIASba5zDYASJLEc5LE/WzzfJlnE88iiReRAIQAzHOxzf1sSwIAIa4Qkrifbf4lQjyAbZ6TEA9gzAshAMSzCAFCAOJZJPGCSeI5SQIk8SISgBD3k8RzksQLYQAhIcSziWcRAiQBQggMYMzzsM39JGEAzHOxbcwV5lkk8SwGEAIk8SzGGHOFMVeYB5LEFUISVxhjDAYwRjyTuEIIQDwH8Sy2eQAh7mcMGAPGAMIYgwEwCADxQLYlcYV5DsY2VxjMFZIASYgrbGMAYy6TxP1s2wZsSwIAxAMZ80IYY0AgBEiSxBXi2QwgJIR4JvFsAgEICQEIAAHYlsT9JPGCCSEwgLEx95PECyBJiGcxDySJ5yUQCADxfIhnEleIy2ww/0q2eX5s8ywGsI0x5nnYlsRlkgDECyJJEvezzQsgSRIgSRL3s839bPOvYjBXCEniASRJ4gEkSQIk8TwkSeIFkCSJy2zbtm2bZ0OZBnOZbUmAJNu8AJK4n21eMEmAbe4nCTDGXCEEGPOCSeJ+tnnRSMIgAGMMgAAwDyRkzAMZAAFIss2zGADxXGxLAiTZxiCEjHkhhJBtLjMW4vkyCEAIMAaMhSTZ5gWQBNjmASTZBmxL4nlI4n62uZ8knpNtwLYkALAtictsS5Jkm8tsA0KAJGPuZxuQJGRsWxIvlCTAGAPYBoQQgBBgWQhzhTHPQwgwBmxL4gqBeSAhBGAbACQBgG1AEmCbKwTmCkkAxhiDEJjnIAkwxlwhyTYPZBDPZBBXCAHG3E/IGAAwiGczAOI5GIQQlxlzmRD3swwIcZltAEBgbEuSZBsAJPEAtm1LEjK2zWWSJNnmMkkYY0ASYJvnJIn72eYy24AkSTwP27xw5pnEFZJs8wCSANuAEIAAjDFXSLKNQTwv25IAwLYkSZhnElfYxiCusM1lQgBCkm0MQsiYyyTZ5gEk2eYySVxmG4MQ4lnEMxnAGMAAiBdOkm2ehyTbACDJNpfZlgRIAmwDkrifbR5AEpfZ5jIhAGEbABBCgG0uE+IKAdjmRWZbEg8gCQBs2xYCEA9kW4jnIq4QMuYyIWMewLYkLrMtCRBCAIBt7ieJ+9k2lsWziCsk2QYADEISl9nmBZBkm8uEjDHPJK6wzWWSACGEba4QmGeRxHOybVsIQAgZA4AkwDbPybYkHkCSbV4wIa4QV9jmBRCYZxKXCSNAANg2liUJMOYFk8QD2OZFI4R4JgMYY55JSLLN/SQBGMCY5yUwxkKAJAyAeCbzLMYYBCDEswjAGPMcDIB4LpIA29xPEmAbsC2Jy4QQtvnXE+IKYZv7SQIwAAKwzb+JJNuAbUk8D0mAbe4niSsM4pmMZUAWwjb3k2SbfxNJ3M82IAmwzf1sA5J4JgKQJAmQBAC2Adu2bXOZbV4wIUk8gCReEANgMM8kEM8iiedhm+dHEpdJ4rmIZzLPZIQkcYUBjDFXCAnxALa5n5AkAHOFJEmAJC6zDSAAY8C2MVcYwNg2gLEN2LaNsc3zJTCYBxLiMkmAEJfZts0DSJLE/WxzP9sAIIl/K0k8gG3AtiTANmDbNs9JCIEAJAlhjDEIQJIkLrNtm8uEJGEAIUmAJO4nCwCEAMQVQjwnIQwGwAC2uUxIEs9iAAyAACRxmW0usw1IAiRhnosxL4AkAAziCgGWxP1sI56LJEkAgEAAQrYxAAYhhJAEIIwxgDGAAWTxXMS/SBLmgSRxPwMYAHM/82ySuEwSgHgO5kUhCZAkiReBJO5nm+dkmwcytnle4tnMv4sAEMY8gBDPyZjLbHOFAYQABCCJfyVjnpcBjHl+bGMAQBIgifvZ5n6SAEnczzYvGttcZpsrxL+TbZ6TbQCDeV6SAMRzMeY52eaFMhYCJHE/24Btnov5N7NtDNiWJAlAALa5TBIvgLEQIAsQQjwXSTyQeA5GEi+UJGNjwFgSIAmwDdi2zf0k2QZs2wZsS+I52bbNczEPZJvLbHOZJCRxmY0NYJ6LEMLYGDDmfraNuUwS9zMGJHE/2zwnY2MAA2CeSTyTeDaDeCbxHAzGtjGXSRIChLjCPJN5Dua5iWcSz2SeLyEhBID4F0kChIQAjCQeQJIknockSQCAeDbzopMkicskSeIFkMT9JAFCPIAkXgjxLxKyzXOybZvLJEmSJAkAbNvmhZIkiechBCjTyJh/kW1JAALzfEnifrZ5IQyAEAIsY66QBNjmOUkCbHM/SYBtnh9J3M829xMCjLnCAIgrhABjnh8hYwziWSQBtnnBbANCiCuMhbifbSHAWBIgyTaXScI8kDHPQxJgG7AtCZDE/WwDtiXxPCRxP9uAJJ6TbV4UBkA8HwYwFkIAQghjzPMlCbANYADEFZIwz2LMZbKMAcQDSQIwxlwmCXOFMc9JCLCMsS0EIISMeR62JQGAJIwxYFsSL4BtSZJsc5kQD2DMZbYBhJAk27xwBnGFkDGAELINGGOEAIQQz2IQCNs8gBAAGHOZJIwxz48kALDN87DNZZIkYQBjLhMCLAOyEA9kG5DEA9i2LUmSbS6TZJsHkGSbB7ANIIR4EUgCAGMhLrNtW5KQMQYhyTYGIcm2bUm8AEJcZsxlQsa2hRDPIsk2AGAQkmxzmSTbPIBtSZK4zDaXSeIy2zyQAYwlcZltSTwPSQAGAdi2LYnnIcm2bS6TJIkHsM1lkmzzAkjCAMY8gBCAuMI2ACAwV9gWQgCSbHOZbUAIIWTMZZIwgDHPyyAk2eYBhIwxCCFjDAIQ4gphmwcyCATmmQzigWxLAiQBGMAYwAhZBjAA4oGMhXgASbZtS5Jkm+dirhBCPJOwzWW2JfFABgFI4lnMswnANv8RJHE/2zwnIcCYKwTmCtuAJEBgnpt4FhnzfBljSVxhEELGXCFkAQDCNi+IARDPTcgCjDEIQAiBAYwRsgBj24AQ4gUyCEAIYRvAAIhnkQTY5nkIGRtkAEmAZQwgyTaX2ZbE85CEAYx5AEnGGAAhxP2MMYAQArCNQTwXSTwn29xPEmAbACTZ5vmRBNjmfpJs8zwkARjAGJAE2OZ+krifbS4TMgZsS+J5SAJscz/bkrhMEs/JNiAJsA3YlsRlQoiQwAC2bdu2zXOSBEjiCvNcbNsGbHOZbe4nSRIPIAtAAAgE5rlIksS/kiQhXghxhZAQgEAAgBBXCMRzEJKMAcQD2QYkcYXBYDDPIgkw5n5CtgHAWIjLhHhe5pnEFUKSAMC2bcA2IAmQxAtmm/80QgjE8xLifsYYDIB5ICFJ3M82gAAkAZhnMgAG8yxCxlxhAMzzJQQgrhDiCvEczBXGPIAxD2AM2AYADIDBALYBQJIk7mdbEs+XDRgDgDGXCXGZJC6zbZsHsG0bcYWQbQyAASQBQlwhhBCIZxKAMWBsmwcw5lnMFULczzbPwTyAEIB5DgYwxjybEOIK88LZ5n62eQEk2eaFksRzksSLyACyeE5Cxlxmm+dkzItGCJAESOIFk8T9bPOiMeZ+xjw/knheAsA8L9v860nifpIkcT/biOcixL/ENoAAJAGSuEIIAbK4nySexQDG3E8IIQQgnkUSz0s8N4N4PowkxBW2uZ9tni8LEOI5CQlxmW3MC2FbEvezzQMYc4UAJHGZJIwQVxhASIjLjI15fox5ANsAYAwAknhOQohnkcQDSOKBxHMzkrifJEAIhAFs2+aBDBgAjI2NjQEMIMSzCAyAwQCYZzOI50MACIQQl9nmCoNAAAgMBsA8m0EgAElCAOZZhGRxmbExBgNgrjA25jJJiAeybRsAhACMzHMwV9jmMtuAbS4z5jJJAAJxhW3bgG3MMxkA80zmCmOeRTwf5tkMRhKXSeI52ZYkiQeQJInnYRuwzWW2eSCBeGHMczHmfra5TBLPj23bkgBJkngRSAIkSQIAOW3M8yPJNiDJNi+YbUn8S4xlIYR4FgHY5n6SuJ9tnodtSYAkwDb/Ekncz7YQl1nGXCHEswgA82wCsA0YCwkZcz9JtnkWAyAASbZ5ACFj29xPEiBkbCwECCGexRhzhSQus80DSAJs80LZBiRJ4n62uZ8kwDb3kwTY5vmRZNu2JC4TAixjrpCEAYx5FiOEQDyLMeaZDEISgDHGAMaShABjDIB4JoN4XpIAjDEGASAAzPMSAowB25K4wjyLsRCXGQMIISHAmMtsA5IkYYwB20KIZ7EtSRLGAMYAxoAknpMk24BtQJKEzQMJGWMAY0lCxjyAkDEPZBDPZIwBIR7AWJIkzDMJ27Yl8TxsS5KEAYx5ACEAY4wAJPE8bHOZJC6zzfOQZNu2JB5AEgDY5gFsS+J52JYkyTYPIMSzCNs8gCzEMwnMsxjb5jJJXGEAY0lCxhjAWIjLjIUQz0XI2LYkSbZtS+J52JYEAJIAwDYPZJ4PIcm2sZAk2wAgCfNM4grbPIBtLpPECyXJtm1JPA9Jtm1LkgQAtnkgg7hCkm0eyADGkiTZ5jJJtrlMiMuMeQAhY9sAIInnIck2DyAEIDDPJGxjJCEwzyQwz8WYF0RgnskAQgjANs8iJNnGPJOQZJsXQJJtDGAMAEIAAiGLK4RtY1kA4gohYy6TxGW2MYjnYBAPZBsQQgghANsAIAmwzQsmiedhm/tJAmxzmSQMYGwbIcRlAsCAQVxhWxIAyDIGEAhZ3M+Y5yRkLMQV4grbXCYEIGwDgG1JgCTANgBgEIAQ9zPmAYSMeSDzTOJZhBC2AWMhACEE2OaBDAIQMuYBhABjDOIK24AkwDZCCEAAGEDIGLAtCRAyti2JF0qSba4QmGeRBNjmRSbJNpdJAmzzIpME2AYkAbZ5LgIDIDDPy7YkLpPEA9gGbAOSAEmAbZ6TJO5nm/tJAjCIsBHieUiyzWW2JUniOUkCAEncz7ZtHsA2YIxBPJN4IEm8UJK4zDbPSZIkLrNtmxdKiCvEcxDPJJ7F2BjxQLIwgBD3sy1JEpcZG/P8CBljnpcxgLENGPNA5oWTxAPYtg3Y5jJJkgBJkvgPIsk2l9nmCoF4DgYw5goBIBDGPJABMBiEEJcZA8bGQphnE4AxgJHE8xJXGAPGtgHMFbaNAdtcIRBXSOL5EeI5CQEIQEgSIInnYh7I2LYkrhBgLjPmBZMESOKZJPFMRpYxxthYCDDGPIsQBjA2BjCAMYABhABj7mfMswgAYZvnz7YlcYV4buLZBID415IkCZDE/WxzP0ncTxL3s81zMgZsS+JZzBVCAOb5EuJZBIB4NvMsxjyQAIy5zBgwBox5TsY8i3kutgHbPCfbPD+2uZ8Qz0mIF8CY5yEJAQC2eU6SAEnczzbPyTb3M8YAxjwPSdzPNoC5wrYk7ieLF8BYCBACEM9im8uMAUkAYMz9bGMeyDYAGCOegwEQz80gAATihZMkxGW2jXkexsaAsRDi2YwkSTw/toUQgBAAGBsDmOciZMz9JCGexTbPIp6DATAPJEkIEOI5SQJsA7Z5AWwDmGcyz594NvFMkhAgEA8gnkUSlwkhns0gnkWI5yIkGXOFeS7GCEASz48kAEA8k0A8k8EAgBAPIAQgXjghQJIQz5fACNnGXCFJEgDIAjCAbUASl0kSAiQJYQCMMQYjCRACMEI8gG3bPCfbkrhMSBLPj22ek23bPCfbkgBJgG3Atm3+JZJ4oSRJwjyTkYQAEJIkAZJs2wZs8yKzbZt/iTEAKFsihBC2AUmAbR5Akm0ukwQYY54v25IASbZ5XgLzvCTxnGzzL5Fkm/vZlsSLRghxhW2ekySuMMY8kJEEWMZcIQmwDdiWxANIAjDGGMCyEP8RJAG2eQDbknhOkgDbPA9J3M82/3rGQlwmBCAwzySemwGMhSxjnpcQgABs80BGEmAZY1sIQAgBiAeyzXOyDUjigQziCiFjHkCSbQwgZMyziAeSBBhjHkgIsA0gMA9kWYgrBMa2JB5Akm1sJEkYsHkmSQBgG4N4PgziCkm2Mc8knpeQMS+AkDFXSNg8gG0hrpBBPICQMZdJso1BSAJscz9JtrnMtiRJtrnMtiRJtnketiVJss0LJck2D2BbkiTbXCYJYyxkzLMYhCSMsRDCNgBIso0BjHkAIQTGWBICY1sIQDyQbUk8gJAxL5Qk2zwPSbZ5IIMQ4rkI2xjEcxAYDOIFsc1lkiTZ5jJJtnkBbEvigQTmuUgCbAOAbQCQhJAFABgEYIxBXGFbElcYBIAQsm2byyRJsm1biOciXiCBeSYjybIswJgrjCTAMiAEYIyFEM+HAYy5wjwXYyEAAQJjEELGPIBtSZJscz8hwJgHMohnMogHsi2JF0DI2LYkBOYKIWMMQsjYWAgQAiwDQoBtLrMtictsS+I5SQKMAQwgifvZBoQQtrlMkm2ekwDJtrEQDyCBBRhzP0k8J9u2JQGSAAxgzPMSQtzPNs9Dkm2elwEQgCSeh23uJwQgAAxgjEEAQtzPmMuEeABj25IAACHLWAgwxhhL4n7GQoAkjDEPZBCAkG0A8VxsS+J5SLLN/SRxP9tcZhuQxL+ebUk8J0mAbZ6TJO5nm/tJsg3YlgRI4jnZ5vmRBNgGbEvi+bEtCZDEC2YbCGPA2DaX2bbN/SRJss1zMS+IJF4wSZh/A0mSAEk8gG0eQBKXSZLEZbZt80AGA2AeyLZtHsgAGMwVQpK4TIgrxANJ4vkxBoyNhQBJknhOknjBJHGZbduAbds8J0mAJEnczzb3k8R/HNtCXCbEFeZfJITAPIskSTwPSQgAAUjieUgSQiAAYy6zDdi2zf0kARghIQBAAICQMZfZ5gpzhZAxYGyMeCAhrjAPJITBAEKY52Zsc4V5/owAAWAuE1eIK2wDCEBICEA8k7hCkm2el3j+xHMRMsZcIZDE/WzzAEYGwDyTMeY5iBfONpfZ5jLbkngA2zyAJB7ANs9JEv8SSTyAEA9kACEAIYR4vox5LgJjzAshXghJPCdJPBcBSOI5SQIkAQDi+RCAEIB5FklCAMI29zPmRWBbEiCJF0wS95PE8yOJF8I8ixACA9jmOdkGMMYA4kUhxHOSBEgS4gpzhRBXGADzTOK5CBnzohBXGAPG3E9IgLnCGABsA7YBwLYkXjghJAQgbNvmfpJs80IYIQAjiQcSsrjCPAfzXGzzAJK4TBJXiCuEhHghzLMYC4EwmGeSwICQbfNMkkAAmH+ReA7i2QxGCEAIcZlt7idJEvezLQRgAGMAAyAASdzPmBeRATDPTTybwTyLJNu2AQxCCEAACEnczzbmmQwgBEiSBCAwgDGAACRJkiQJkGTbNs/JNi+AJC6TJAmQxGWSeABJkrjMtm3uJ4nLJPH82LbNA9jmASTZBmzzgkniXyIJkCSJ5ySJ52Gby2zzbKi1JokXTJJtHkASYJsrBAYwFuIBJAG2uUwSANgGMIgHkgTY5oWSBNjmhZJkm/vZlsT9bAshnottSQAgxP2MMQhAyJhnEUKYK4x5TsZCkmzzPCTZ5jJjIUm2eR62JUkCbHOZbUm8UJIA2zyAJMA2LxrbkngetiUBxkKAEGDMCyYJMAaEMMbcT5JtLhMCELa5nyTANgbxHAziCkmYKyxjHkiSbS4TMuYBJGFsA8ZCCEAIwCCMAduSuEzIGIN4INuSJGGeyQAIYwDAPJO4QpJtLpNkm8sk2eYyIQCDQADGmCuMhSTZ5gGEAIRtHkAIQGCeSTyTAYx5XgYwliQw97ORuEzI2AYMCAEIIWMeyCCukGSbB7Aticsk2eZFYFsSD2CbyyTxAJJ4ANtcJon7GQtxP9tcJmTMv5JtACHEA9iWJAQgrrDNZZK4wjyLMc9DEsaY+wkZ84IYhCQusw0ACFmAMQYhictsGwtxhUE8L2MhLrMtCYF5XpJs8wCSMM8kbGMQgCRjWYAxz0kIMMYgnskAxpK4TJJtLrMtiRdKiMuMMYgHkmQbACTZ5gojCTDmOQlxP2OuEEIABjAGJAEYjGUuEzLmMmMhnsUILJ6XbS6TxHMSMhZCAIBtLhMyNgaEeH5sS+IK8yzGkgAhAEDYBjDPJhBCAAYwBgDbACBJyJgHEAIQmGcSxoAQz2KeSdjmAYSMuUISALa5wkYSlwkQYJtnEpj7CSFs85wkAbYBDEIIMOYKIQTY5nkJWYBtAHGFbUk8J0mAMSDE82UAY+4nhLEMSAJsAxjECyIJsM3zZQDE8yEwz2QAxHORZBuwLYnnIjDPIokrDAKwzf0k2ebfRBLPyTbPjyTANs/DtiReAElcZpsHkGSb+0kCbAOAJNs8P5K4n22eieB+kngekmzzLEISz0mIK4xtLpMkiedkmwcSgCReMEmSAEnczzYgiQeQJIkHsM0DSOJfYlsSIEkSYMxlQgiMLGPAtm0Ag3kWISEMYGxbCLDN85BkG7BtWwiwzf0kSQIASdxPkiRAEpdJksRltm3btg3YBiTxPCRxmSQeQBKXSeIySYAkBEISl0niMiEM5gUxts3zMg8kyTaAwVxhG7BtG7BtzBVGSIjLjG1zhXkO4gEEgAAhYy6zzRXmWYQAISFeMCHbGGPbXCYJkMQV4rkI8UACQEgChABJtnlu5lnEsxkAsC0E2OYyYwBzhTH3kyQJQGCemwGMMYABMA9kAdjcz0YSICQZA2CeRQgBkngWA2CeRRL3sy2JyyQBkrjMtm3uJ4n72QZs8/zYBmzzojGWxQMJQBLPxTxfknjBJPFcxAthDGAAIe5nm+dinkWI58sAQjxf4jmY5yUECPFAAsDYBmwjAMwVtrmfJO5nm38D8XwIzLMYcz9JgCSexQCyMEI8J0kA4llscz9JPIBtSVwhMAAGAwCShHi+zLOJ58M8iyRJAIjnYIO4QkJCXCaJy4wBY2PuJwRgnosxICTEc5IkCZBkmyvEFcYA5pnMAxkbc5mQLB7IALZ5ANsYjG3bGNs8F/N8iPtZkiTuZ5DEM5nLJHGFhG0bwDwPc4V5FiEhDOaBhADEs5lnMs9LEoAQ4jIhHkASLxpjHsCY5yWeD/FcJAEA4gUymGcR4jLbtgGMJEkAAvEstm0DtgFAEs9JkhDi+RBXSAIkSbIN2LbN85DEv4YkLpPECyVJEiCJF8w2l0niAWxL4gWTxGWS+JehzOQySTw/trmfJMAYI4S4wjZXGAQgifvZ5gWTxP1s869kLAshBBjzXAziBbHNZZIA25K4QsgCbCOeySCusA1I4vkyiOcgMFdIwgDGXGZbEgAgMFdIAmxzP0lcZpsHkMRltgHAtiTuJ8k2YFuSJNtcJgmwDdiWJIn72eZ+kjCAMQ8gyTaAARAPJMk2BvFAkgDMswnANlcYAPECGYQQgLAN2AYkCfFCyDYAAgPYFiBAkjDGgG0hBCAJc4VlzBWSMMY8P7YlScIAxhhAkjEPIGTMcxIyBmxL4gEkYWwjHsi2EAKQZNs2AAgJWQYA25J4HkKAZUAIY8yz2AZAIGFjkCQwz0MAGNuSAECWZS6TZBsAhIx5AEm2AduAJEm2AUCSbdtcJkkSl9nmeUiybVsSD2BbEpdJ4gFsc5kkAGPMAwgZ80AGcYUk2zyAJC6zzRUGIQQgbHOZJIwxIIn72UbIAjDGAOI5GIQkjDGAQQhxmbFtHkAIQFwhyTbPQwhAXGEbg5BkG4N4ICFjAGMMAJKEjG1zmSRJXGbbtiReACEAgQGMASGEMQYQAhC2jYWEjHkASbZ5QQxCyJjnJISwDQC2JUniMtsYBEIIwDyLMQZxhSQMBoGwzf0k8Zxsc5mQsW1JPJCNJMm2sQyABAAYSQjbPJB5JiEJAxhzmSTbtiUBgG1JQsa2JUkCbAO2uUyIZxHPZADEczPPJABJxrIAYx7AtiSel0E8k0EAQoAxL5RtSbwAkrC5nwEQAOaZJGwADIB44WQhEBjAGIN4JoF5YQyAEDIGAEm2uZ8QYAwIAQjANveTBGCeSWCexZgHEpgrJAG2uUwIYRuDuMJYFkKIy4y5whhLAiTZBmxL4oEM4oGEjDEIQBIGQFxhmxdAyBiwLYkXTBIvgG0eQBJgmxdKEmCbF8A2IInLJAG2eU6SuJ9tHkASYJvnIQmwDWAQASAkcT9j/rUEAkA8NyPEc5IEAJJ4oWzb5jJJkrjMNlcYAPNM4pmEkBCXGdvmMkmSeABJACDJtm0A82zG2DbiBbHNA4lnEwAGASAwgG3A2LYkQJIkIf4ltrmfJEncTxIASOIBbAOAJMA2z48kXgBJGMA25lkkAZIAhDEGsM0VRgjxLxBXSJIEIADb3E8SVxgMQghAAJIASQDmgWxjA5grzP3MFeIKicvEsxjzLAJAvDDiCmPbkgAMYIx5JoO5QpIkY8C2bcAYMBbCAMYARkiIZzEPJAQICRlzPyHAmMtsA7a5n22eRTw3ifuJ+5kHkCSusG0DGAwgCRAIGWOeRRIAICTxnCQBkrjMNvezzYtMEpdJ4jJJ3M82/xq2eRbzLEJCXCYJkMTzJZ7NPIskQBIviHhetnm+xPNnnosxYJvLbEsChIQwzyaeixD3s839hABZPF9GEvezzYtOPDcBYJ5NPBdJ3E8S97PN/SQJcYUxFuJZzLNI4gURL4gQgHkO4pnEi06SbZ7FBgRgQMgAGAOYZzKSAAQCQDybQSBeGIExxlxh2zZgm/sZG3OZkBBXiOcihHguQlwmCZAkiQcQAgBJAMI2gDHmgQwG83wZAzaX2TYA4n62kXguNjZXSIBAPJNtwLZtLpMkiSuMMYBBIIQQGAyAkcRlkngu5lmMJXE/SQAC8UwG86IyCACBeCBJQjyAbQCDATBCCAxgG4MAEAhjAIMBhLjMNmCb+0lCAAgMBgCEAMyzGWMA84LYtg0YA4AknpMkSdzPNs/FAJgrbNsGbNvm+ZHECyBJkiQAsM1ltnkASZJ4oWzbBmzb5l8kADmNbHOFJJ6TbZ6TEIB4FtvcTwiwjEEAQoBt7icJY8y/hiTANs+PEIB4NgMYY4wlcZkkwDZgG5AESLLNAwgBxjwXgbnCNpdJ4nlIss1lkngWAxhjjAFJgCTbPIAknpNt/jUk2eaFkgTY5kVkAAQgiQewDRhzmRD3EwKMAduSJAHGmBfEthACkIQx5n5CAOIK2zyLARBXCAFgkDH3s5FAwsYGSQBItnkA25J4ACEAARgDQlxhAGMM4gpJtjGAZVmIF84YIwQgAGOMEOK52BbiMsuyEC+EbUk8J9uAJC4T4lkE5jID5l9gm8skgcC2JQGAkDGXSeIy21wmyTaXSeIy2zwPSbZ5AElcZpvLJNnmeUjiMtu2JfEAkmxzmW1JvAgkYYx5wSTxQOZZjHkeQoBlQMi2JC6zjQEsC3GZEPezLGSMwSAkYTDGXGYsiQcyiAcSMuYySbYBQBLmWYx5AEmYZzKWeSADGEviMklcZpvnJTDPlxBgzGW2JXGZJNu8cOaZhCQus81lQsY8gJAxlwkZ8wCSMM9ijJAFGCNkAca2JfGchLhC2AaEEABgmwewLYnLbEsSAOYBzDOJF0TINoB40cmyzAtnnkk8B4GxLUmIy4xtSwIkYYx5QYQQgDHmfrYRQgACg0E8kG0hxHOxjSReGEnYPJAwwoB5XgZxhSTbtoUQDyQEGHM/SdzPNmAbkMRltiUBkgDbPIAkzLMY88IZxANJsm1bEgAghADbXGZbCCHE/YwBwLYkAIEBbAtJMsYgns0gnouQMVcIWVxhEM9izBUC81xsS+I5SbLNA0iyzfMjifvZBmxLAoSMeX4k2eYySYBtnodtQBJgWxIPIMk2/8EIwOaFEBICAAzmXyAQz2QAzHMzAAZjbBsAJHE/SQDimcQLIcTzEggAIQmQJIkXnQCEeCAhJIkHkARIksT9JNnm+RIIAPFAtgHbtvk3sW2b+0myzf0kSeI5SQIASZK4zLZtHsC2Mfcz5vkRAoS4wtgGAATiCkk8iwFsG/OcjIUAISEeSDyTuMI29xOSBGCeSVwmxP1sW+IBBIBAxjwP24AxgHkOBvNMBsBgEFdIsg0YG2OMeSBjzP0kAUKAMeIKIcAYsM0LZgxgrhASAoS4QgCSeABJgG1eGCFJ4vkzGMxzMJfZ5n5CPIBtHkAS/xJJ/OvZ5l/DNvezzbOI5088kzHG2OZ+kjDPh3gW2zwX8UIYcz8hnkUI8QIIIR5IEvcTEuJ+xkKAJJ6LeDbx3MRzkcT9jLmfJO4nieckCZDE/WzzXAxgDNjmMttcZpt/iRDPSYjnJAnxvGzzXMzzYRAIQJJtwJjnZZ7NAIAk7meb58c8mwBxhUAIAGwDxsY8gDFg25jnIUkSAiGEEAIQiOcgEADiCtu2uUySEIDAGHM/IZ5FXGEbsG0bACRxP2OekxAgSQhAXCFJiCsEIAlAIABJAkCSJJ5JkrifbSSeRYAwgA3mCklcITAYwBiQhHg280zmmYQk/iWSeB62MYBtxPMlCQAkcYUBMICxbcA2IMm2bQDzQLYBxHORJAmQxBUGsA0gjAGEbWMMBgFIksT9jIW4TAiBMEY8k0A8m5EEIIS4TBLPSRIgiQewLUkSl9m2zQsgCZCEeEFs8y+xDUjiMkk8J9uSAEASDyCJF0CSJJ6TJABAyGlj7icJsM39JAG2AQxCCEAAGMCY+0nCGAOSuJ9t7icEGPOcJHE/29xPiGcRD2SbF0ASYJv7SbLNAxnEFZJ4Tra5nyTMMwnAGPO8JGEAYx5IYK4QQtgGbEviBZDE/Wzz/NiWJMk2DyCJ58c295PE87AN2AYk8TxsA5IASYBt7ifJGAPYBhBCkgDb3E8SxphnMYjnYADEs8iyDCAAzAPZlsTzJYQwxoBtQBL3sy2EeBbbknggYwxIEgIsA0JcZhsAMAACkGQbADCAMYAQkmTbtiQuk4QBjAFjQEiSbcAYEOIKgXkOBjDmMkk8kMBgEFdI4jLbAIBBSLKNQVwhZMwD2UhcZluIK8TzZVsSl0nifrYB25K4TBL3s839JNnmASTZ5jJJtnketiVxmW1Jkmzzr2UQV0jCGAshHsg2L4AQlxlLAgDbPIBtAJDEZZJ4ANtcYQAEIMk2BiGJKwxgzAMIGWMQDyTJNpdJsg0ACCHANs9DEleYZxKYZxIYwJgXQJJtXgBJGMAYADAAApCEAYy5wiCukGTbNgAIcZkxIIQQMsYgnklgnpckYwyAeSBjQBJXGAQgZCyEQQDGXGZbElcYhJAxBgEIAcY8gCTbvMiEeABjHsg8i7EknpdBCHGZMQ8gBCBs8zyEjHkASVxmmysMQpJt7icJsG0bkMT9JHGZbQCwLUmSbS6TxGW2bUviMkm2eR5CxtxPCEAAtvmXCQDblsRlkjCAMS+cEQIs85wkAbYBDIB4LkII2wDGWBKXSeIy29xPEmCb52WMJfECCCFsc4VBPJCQMc+XQTx/RpIxIGRsWxIgCWPMFUIWzyIA29xPEvezzQsihADbAAYBSLIN2JbE82NbEiDJNi8CSYBtwLYknpMk27wAkrjMNveTxHOyzf0kAba5nyQAgwiDJF5EAkAgng8hCfMvEwgh/vWMuZ9twNg2/xJJtrmfEIAAEIh/gXlBJPFABrCNuUKSJMwzGQBzhSQuk8TzY5sXwLZtSbwIbPOikQRIkgRI4l9JiAcQ4rmY508ACElcZsxlxgBgjAEwGMDYGLAN2OYyIUk8i3k28wAGY4MMGACwDdgGAIEQIIR4JvFAtgHbthHGXGbMswgAAQjxLAIAJGGuEAKEMFdIAoS4QkjiWYSQEFeIB7LNZbKEAMxzE88khLifbZ6TMQAGsAFjEM9DkiRJ3M82L5htXjS2+ZdI4gWwzb+SEIB5LsY8F/ECCYQxLwLbvBDmRSTEi85cIYl/G/NsBvEstrmfJECIF0wSz2IADIAAEAACQCAeSBIvmBAgxP1s85xscz9JAAbAPIsx97MN2OYBhDDPxTbPSYgrxDOJZ7FtGzBI4kViwBjx3AQCQFxhzP0k8SwGkMVzso3BGPMAtgFjY8BYEg9gzGWSJHE/Y14ASYAknh/bXGZbEleYZ5Fkm8tsS0IAQpgrjLnCYF44G7DBPJN4Jkm2bQO2EYAQL5iQJK4wgG3b/IuMLFkARkgIELJtDNjmRSBJCEBIAiRJQjyQEIBBIAAEIMQVxhjAXCFJElcIIR5IXCHJNpcZY4S4wgAYDIBBPIsxDyCJF0BICPNM5oGMbQO2uUwSIEkSl9kGbHM/29xPkiQAsG2byyRJ4gEkAZJ4wSRJ4n62eU6S+LdDmcnzY1sSIAmwDRgLAQjMCyEEGANCgDHPSwjxnGzzgkkCMIAxxlgSz0MSz8k2z0kIQDwX2zwnIZ6XAGwDgG1JPA9JgG0AA0gCjLmfJF4w2zw/tiXxAJK4n23uJwmwDUjifrYl2eY5SbINAJK4n23AtiQukwTYBmxLkgTYBmxLAgBJgG2ekxCAsI1BCBnzALYlAQDmmcQzGcTzksRltnkgg/hXMIhnMgACkIS5wpgXkQEQz80gJNnmCoOQZJsHkGQbgxACEM9knsXYthAAGAshAEkYwBiDkATY5n5Cxlxmm8skcZltAYAkMM9ByBgAJAGAbS6zLYnLhIy5TMiYB5BkGwAk2eYBbEviAWxL4gEkcZltAJBkmwewLYnLbEuSZJvnIQmDscwDCAHGPCdJtgFAkm3bkiQBtiUZY66wLUmSbQxgLInLhIx5ANuShIyNhXhBDEKSbV4A25K4zLYkHkASANi2LQkAbEvigYwkhG0M4gpJtm0DQogHkmTbtiSeHyHAGAAwCEnGmGeRhHkmAWCMucxYliTbAELImOchZMwLYFtIyDIAGAvxvIQswBiDkGQbg7hCEgYw5jLbkpDAGAADIACBeSZJtrlMkm3bkiTZ5gohBGAAYy4T4jJjnock27YlCRljEELGtgFACJAEGPNABnGFJMwzCdu8IAZxhSTbvACSbBsDQjwXgXkg25IAIQQGMOYK80wCEAIQgG3bkiTZtg1I4lmMJIRtAIMAAEnczzaXCRnblsT9hABjnpMQwjaAEbLM/YS4nzEPYFsSACCEuJ9tALAtCZAE2AYAIQAw5jJJtrmfJADzLMZcYQDEFZIA2zw/kgAMYIwBEM/NAMaSeE6SANu8ALYlAULGGMQVQoAxYBuQxHOSBNjmXyIJsM1ltiUBkmzzgkkCMMbcTxJgm+ckCbDNc5IE2OZ+kmwDtiUBkgDbQNgAtnkA2zxfxjaAeV62bXOFQDyTeSZjm8tsA5gXTpIkXhADSAKEhGRhACGehyRJPJBAvHCSJCEs8ywGwNgGbNsGbHOZJCFeKEmIZzMvIklcJol/H0k8gG3uJ4kXQBIgSRIPIInnIq6QxGVCknguwjZXGGOei3huQkgIQLxwkrjM2DbiAcwLIgAh7mfM/YQAAPNM5rmJK4SEeAAhIa4wGEDINmDbNuIKSTyQEUJgnoN5FmNAiOckJAQgnkk8HwYDGNvmmcRltrmfAIHEM1lgXiDb3E8IwDyTkMT9JPGcJHE/29xPEvezzf0k8YJJ4n62AduSuEwS97PNAwkhxPNhMMb869lGXCHEcxIyxgDGgG0eyNjm+bHN/STx/NjmOdkGjHl+bHM/24AxgHkOwjbPSQjAALZ5fiTxLAZzhSQAQAAYDGCMAWwjnslcIYnLhLhMCBDiuYhnEQIQz2IbMOZ+QgAgBACSeC7imQRgLIR4JgEgnsU2z2IADIAECABsALAtCZDEFQKwLYnnIp7NGPOCGQOI52IMSOKBDOaZxDMJDAYw5nnYtg0AkiQBCNu2AduSuJ9tAHOFbS4T4n62bQOY5yYwGACDeCBJPJBAPJsAjAFJkgBJiGczQgACQCCeg3g2I2TbNs+XeDbzLMZCPC/xXCTZtg1gnpdtnpMQgHkOBrDNCyEkcYVAAJIk8QC2bXOZJElcIZ5JIIQkSeIy29zPNpfZ5nnYNuYBbHM/YwABCAnxPGxzP0mSeMEk8TwkSQIkcZltnpNtHsA2gHheknjBbNvm+ZFkG7DN84EykxdKEmAbwACIF8S2JO4nxP2Mucw2IIkXjSTb3E8SYBvAIJ6DARDPlyTbvFCSMMaAbUlcJgmwDWAAxLPYlsQDCBkDgCTANoBBCBlzmSQAg7DN/SRxP9uAbUmSANs8J9uSJHE/24BtSZJ4wWwDtiXxPCRxP9s8J0mAbV4wSYBtQBJgGzAWkgTY5oGMsSQeQJJtLhMCjLmfJMwDWcYACCHbGMQVkmxjEJK4zDaXSbLNFQYwlsRlQsYAIATYRlwhyTYvMtuShADLmBdOkm0MQsiYBxACLGMwCCFjrjAIBOaBhADLGAyAeC62JfEA4n4ChI1BWGCMhSTZ5jLbkgBAkm2ehyQAsM3zkGTbtiReKEmAbe4nyTaXSeIy27YlcZltSZK4zDaX2ZbEFQbxQJIwgDGX2ZbEA0iyzQNIwhjznISMMYjnwwDGXCZJkm3bACBJyNg2l0niBZBkG4O4QmCek0E8L9uSeH6EAGPbXCZJyJjLhIx5wSQBtrmfkLEkwLZtSVxmGyHEZZIA21whMFfYFgIQQgDCtm1JXCbJNgZxhSTbPC+DeF6SeB62bUsS4jJjLpPEZbZtI4kHsJGEAIRtbACJyyQBGMAYg3ggSZhnErYxAEIIYZvLJNm2LYkXQJJtHkCIZxHPZADbiGczCCFjDIAAJHGZbZ6HJNs8gG1JXGEQkmzzAELGtiVJss1lQsZcIYQADGCMQTyLJMA2z0OSbZ6HEM8iMM8mAAxgzAMJIe5njHkuxrIAhBACMAaEANs8J2Mh/rXMcxAvCkmAbe4nCbDNAxkEIAmwDUgCMIAxl0myDWAQz2IbkMTzY1sSL5yQxf2MuZ9tQBL3k8QLZpv7SQJs8yKwzWWSAEk8J9uAJMA295ME2AZsS+IBJHGZbV4YAkC8QOIKIV4QIUkSIMm2bQBAPIuQJECSJO5nbJsXzDYviHgW25jnyzYA2OZ+QkIYwNg2VxgAgwFs8y+xLQlAIAAhY8zzIQBjnov4F0nieUjiMkk8P5J40UgCAEm8ULZt8zxs2+YySVwmiRdAiPtJ4jJJAAKwzf0k8VzEczAABvNM5pkMIIQAEJJsA2DuZ5v72QZs2wYbSwAIScY8J0kAQpJtwLZtXgDbtgHbkrhCCPGcbNvmfpJs85xs2wYABALzQJJ4IHOFbQzmWYR4TpJ4LhKAeDaDzbOJ+xkDtm1zmSRJXGGezTyLbZ4f2zw/kiTxbyKJF0AS97PN/WwDGEAIQACSuJ9t7icJkMS/RMiY50dIiH+ReSFscz9JPBeBeCbxbAYw5vmRxPNlns0AQgACEOL5kcQLYZ4vIUASV5hnM1fYBoy5zBjxLLZ5IGGb+0nifpIQAALzLLa5zDYviHk283wJAIEAm2cRzyQhAZIknoO5Qoj7GXOZMQZAIADEAxkDCAwgBGAwV0gChDDPJJ7FGPNsBgEICWGuMJYFIACEMS+YbUk8kAAQQgCAQTyLEIARAmxLAiQhns08k3gmYds2z8vI4grxghjzLOaBjLmfEA8gxAOZ52IbYwwAxjwPIQAD2LYtxAshAIQkLjPmfsbGCECSJCEhDOYFEeIyIZ4v8QKJB7ItBCAABAKQJAmQJInnJInLJHGFeA7iuUhCPJBtYx7I/BtIksQDSJIESOLfTRLPj23uJ0kSl9kGMLaVmYAEiPvZ5gqBuUKIKwyAABCAbe5nWxIASLLNC2VbCPFcJNnmeQgZA8ZCgJAxBgEYY4R4FvFsBgFIwhhjjCVxmRBgG7AsxP2EjAHbAEKIBxBCYIwxiBeFJO5nG7AtSZJtXgBJXGabB5DE/WzzL5EE2OZ+kgDb3E8S97MN2JbE87AtiQeQZBsAJHE/2zw/kgBjzANJAjDPJgDb3E8SxhgDIJ7JIB5ICDDmfkLGAGBbEi+AEMIYc4WQMQbxgkiyzfNlEIAk21wmicts8wCSbPNCSQJsA8ZCkmzzPGxzmZAQ4pmMsWUhIQRgGwCEjLlMEjYAIGEMYF5ktiUJGfMCSLJtW5Ik21wmybZtSZJ4TrYl2eb5kWSby2xL4gEkcZltHsA2gBDiCoN4Xra5TJIk2zyAbUmSMLYRV8hCWMY8kG1JkjCAsW1JPIBtSVwmZGybyyRJsg3YBiRJ4goDGAOAwDyTEJcZYxDPS5JtLpPEZbYxiOdgEJJs8wCSbHOZJABjDACSuMJgLPNAAvNcJAG2bUtCYJ6DQSAwz0uSbWOMJF4wYyEAMBbieUgCANtcYQAhY2NJvAACAzYSl0mybRDPJgmwDQhxP2OekxDCNlcIAAMYCwkZc5kQgLHMZULGACAEIGxzmSQus83zEDK2LYkrDEISANgGJHE/21whhLifbR5AiCvEs9gGMMaSeB62JQGSuJ9twLYkLpME2AYwCCGuELa5TMiYK4QswJgrDAKQBNjmASTZ5gGEjDEIBMY2IAmwLQkQ4gphGwCEjLnCICTZ5nlI4gFs2wYk8TyEELYBDIC4wrYkHkDImOchxAOJZ7ENAAjMMwlZxoAQArDNA0iybVsSz0OSMeZ5SeI52eZZjLEkQBL3s80LJgmwzf0kAba5nyTANgDYlsRzksT9bAOSuJ9t/pUk2eY5EDaAzfNnnsWY+xnzPGzblgRIkmQbsM1zkiSJy4S4TAgBAJK4nySuMBhjwBiDAQBZCCFASAgQAhBCAIABACEAASAkAYAQBnOFEA9gzAMI8SwGA2CMAcRzkSSJy2zb5gWQBNjmfpIk8Txscz9JkngASZJ4fmzz7yCJ50cSz8k2z8k2ICQJAGzb5oHMi0pcIQlAAAhj2zyAsTEPIAQgJBkDtm1LAiTxQAIQAjAAAhCyjTHmMts8J0mAJB5AkiQAYZsXgSTb/KuY5yWJB5DEczLmCgNgAAQgZIx5/gSYKwxGFveTxHMyBjCAEA8gicskGQNCACAJkMS/xDYgieckyTaX2QZscz9JvFBCPJB5LrZ5wWzzXAyAeRZJ3M+2EFeI5yIEYBAAIInnRxIgiQcwRjyQuZ8B80JJ4l8iiefHNpfZloRAPJN4FmMAAyAwzyJJSBLihTGSAATiCiEhnockABCSxP1s85xsY56XJEk8D0lcIQBjADAGjME8X5JtHkBgmxdOSOK5iOdgMIBtDMZYCEAgng9zhTHigWzzghnz/NjmBRFXCPEAkiRxP2MEwjbPyRhhzHMy5gUwlgRIQjwH8RwMAgEAQgBCCIEAANvGPA/bXGaby2xzmbEsAJAFSJLEZZJ4LuZZjCXxQAZxhSRJvACSJPFA4gUREgIk2eYBjLnMtm0AEOJ+li3zfBlJXCZkDADGPIBt24BtQBIPYNs2YBvzLzIGEIhnEeIFsG2bfwdJkgBJtvm3kiSJ+0ni+bEtieeAWmuSAEnczzYvmBBgDAgBxrwIbEsCJAG2uZ8QYMwDSAIA2wAG8bxkGSOem5EEGAMABiFkDCAwzyIJc4UxLxohYwxCCDAGjIUAwLYkSba5zDYgiftJAmzz/EjiMttcJsk2ANiWxGWSbHM/SbYB21wmiReBJJ4f2zwn25J4HrYlcZltSVwmifvZ5jlJAjCI58MYYxAvkMA8B4N4JgMIGQOI52IjAUjiMtsAQsg2BiGJK4wxABhjJAGAJACwzQPYlsQLJck2L5Qk2zyAJO5nm+dkW5IkwDb3sy3EZUIIYwDzTEISVxjbiCskAQZsrhCYK4R4FmGby2xzmSQuE+IyY9uSJHGFMQZsS+IySbZ5AElcZhsAJAGAbR5AEmCb52RbkiTANvezLYkHsC2JB7DNZZJ4oWxL4gGEjLlMCEBcYZvLbEvieUjCGGOMJUkyxgC2JXGZJNs8D0m2ucJGkmQbG4QksCyL+xlzmSQus21bEg9gW5IkjDHPIjAviCQus21bEiAJwGCMEc8iZMxltiUBkgDbGMTzYRCSbNuWJMkY8yy2JUmyzQPYlsQVBiHJNgYhictsYxBXSOIy28ZCPIsBEC+IARuQxDMZAAEIIQADGHM/SYBtDAIBYADbkiTZti3EswhJxhhACEBgMMYAAgFgANuSAECSbQwCgXlekmzzQEKI+9nmMiFjXgDbkgBACPEsto1lAQgMYCyJBxKY5yUJ8yzGGAQCg0EACAyAQfyLhBC2ucy2JB7AthCAEOIyYy6TZBsAELIwCMCYB5Bkm8uEEIBtXjSSeBbzLMbGsgCEkDEA2AYASTwPSba5nxBgzGWSbHM/SYAxBrAtCUBgnskgXhiDeF7GQjwnIcCYy4SMecFsA5J4TpJ4fmwDtiVxmSTANpfZ5jJJPCdJ3M82z48k7mebF0ASz0bw/EiSxAsinkk8N3GFbdvcTxIgiQeQxAOJK2zbBmzzQAIQ4gGEjAHbxjyQMDYGMBhJQsZcYZ6XMc9ihADMFZIkcT8hYwABIBDPZIwB25IA24Bt2wBg2zb/Ekk8J0m2ucw2YJvLbAO2bQO2eQBJXCaJ52HbNi8aSVwmCZAkifvZlsQD2OZfIonLjHkA21xmzGXGPICxbS4TQgCIZxKAEJcJGXOZbS6TJAmQsM39bHOFMeb5EZIECEkCEJK4zDZgm8uMAduAbZ6HJEm2Adu2eQBJkrifJF4wSdzPthDPIoS4nzFXiCuEuEI8NwEAkrjC5n5CiOcmbHOZbQBAAIAkLjPGCPEsBsBgELZ5fiRhXhSSeE6SeMFsA7Z5TrZ5IAFI4goBSOJfZAAhnh9J3M82z0kSgAAQz2YA29xPEv8iGxAPIMAIAPHcxHOxzf1scz9j7idJiAeQJIlnMc8mAMQDSeKBxBW2eV7ieRnzPIwxgG3ANpcZS+KBBAAIIQDMs5krhADMCyHEcxDPwzbmOdkWCJDEczEviBAGsM0DSOI5GWOuMEY8k3gWWRjANmAbAGwLcYVBPDcBSJLEs5jny5jLbPNcDGDbNmDMcxLiMllCgBCXCQGShHgASQDiWWwDmCtk8UAGsA1gnj/xHIwkLpPEZZK4TJKxMWCMQDyQJB5IYDBCPIBt7mfMA9jmfsa2AUASVwgA80wCQCAAIWNjwFiSJEASDyCJ+0niWcyzGQxgWxLPxQC2eRYDYDAIACFJEpdJkoQAEICQEJcJAUI8kME8F2NJkrjMNs9ibPPCmRfENg8gSRIgif8gkiTx/NjmCgMoM/k3EEIA5tkEYJvnJAmwzbMIzBWSuJ9t/iWSeBZjjLnCWBIgyTbPQwiwjHlBJAG2AYwkY+4nyTb3EzLm+TKI58MgrrAticsk8Zxs8/xIss1ltiXxryQJsM1zsg0AkrhMkm0eQBL3s839JNkGANuSeADbkrhMEs/DNg8giedkm/vZlsRzMQhAEuYKy5gHEgKMAdtCCECSbR5Akm1eAEmAbe4nybZtSUKAsZAxl9kGJPE8JNnmBbMNSJJkGwAkAYBtLpNkm+dhWxKXSeJZjDEG8UCSbGMAy0I8kEE8B4G5QggB2AYASYBtAAMYCyGeRQgwBoyFuEwIMOYy24AkHkASYIx5IEm2ucy2JEmAbUm2uZ8k27YlSQJscz/bkrhMkm2eh20AISSEAGzzAJJsc5kk27aFEM8mMFcIAQjbPIBtSTyQwDyQbUk8D9uSAACDuMK2uEwCxP0kLrPNFQYhiQewzfMyiAeSxAtgG4N4DgYBCHGZsRDCNgbxfAghwLZtSQBgGyEEYBDPZBBCxrxQkmzzQAYBCHGFMAZkAcY8L4NAyOJ+xrxgtiXZ5n6SJGEAY0AIMLYtCZAEYJ7F2DYASOIyY1lClrlMyBiDeG5GCAEYc5ltLpMECPEsAsA8izHPjxD3M+aBDGCMEOJ+tiXxAEIAwjaAAYSMuUJIAmwDQsa8YEK2hRAAYMwLYJsHkARIAjAYy4AkwDb3kwTYBoyFeABJgG0uk4R5FmNACGGbBzAWAgBJtrnCIJ6LJJ7FIGxzPyGEbQBjLInLJNkGbEviMkmAbZ4fIcCYB5DEA9gGbEsCEJhnEUIYYwBJtnkAIWPuJwQY8/wIAcZcIQDMs9gGJPFCSeJ+tnnBJHE/21xmWxIvAkm2uZ8k7meb58e2JJ5FBCBJEi+AJEmSeCDzgkjihZKEeRHZts39JPEAxjyAEPeTxHMSAhBCXCEkSeIFEcY8gG0AYxswFhLCYIyNAQwCQDyTeCbxLJIASZK4zDYvgG0usw3Yti0JkCSJF0ASL5QknpNtLrMN2LbNCybJNmDbtiQAkMRzksTzsA3Yts2/xLYkABDiWQQgxAMISeK5iAcSErLNA0iyzQMICQEIxPOyzRXmuQgBknjBJPEAkngASZJ4oSTZ5jnZti2JyyQBmBeRMfczBjDPYpvLhBDPZox5HkK8KIxtrhAIQAiQBNjmfpK4wjyQJNsAYJsrDCCJF4EkAJAEAJIASTwn21xhnsk8F0ncT5IxlxkDmOdmnk08F9s8gJAkQBLPj23uZ8xzMgYMIGyeReI52eb5Es8mns08iyReMCEEBjAGMIAQDyCEAIQAzL+KECAEYAAMIIvnR5IQz2IkcT/bPIsAEM9FiPsZAxhAiOdg/iW2QTyAba4wL4x4NiPEAxhzPyHuJ0uI58eYyyRxmSQeSDyTuMKyMQ9gbMxlQkKYZzLPJBBCiCuEAEk8X8aY52EMGBtzmW0AY1sIQEjiMtu2uZ8QAkAgEM9NSAIk8e8mxAtlmxdEXCEJELJtDNiWxBXiuQhhMAAG8WwGA2CEhAAh28aAbS6TBEiSxPOQxHMSksT9bPM8JAGShHhe5grbXGYbAIx5IIGQxAsiJHGZEOaBJEkCEM/Ftm1eANu2uUwSl0niASRJAiRxmSRJvACSAEn8SyRJ4n62AWMAo8zkRSAJsA0YCwEIzPMliRfEGHM/SdzPNgBIwhhjEFdIAmzz/AgZA4AkjDH3kwTY5gohhAEQxpgrJGGMAWMhnodtSdxPCDDmAYSMAUASgHkWY54fSdzPNmBbEv9Kkrifbe4niefHNmBbEi8CSTyAbZ6HJMA295ME2JZkm+dhG5AkCbANSAJsA7YlcZkknsUYYxDPZBCSuMw2l0kCjDEABgEgMFdIss0DSMIYcz9JgG2elwEQkjDPJGwDgCSek22ekyQewLZtSbzIJNnmASQBtrlCyOIBjHkg8xzEczCIK4QAhG0M4nkJcZkxAMgy5jIhhGWMbSEAIYkHsM1ltiXxAELGXCYJsA3YlsRlQogrbPP8SAJscz/bkiTZ5gEk2eZ5GcQVtiUBgCSuMIAxANgGAElcZltIEoB4INsYwFgSl0nCPJOwbVsSz8O2EIAQMrbNs0kCECDZ5jKBeT4k2eYyIWMuE+IyYwxCyJgXSsg2gLhCCEDYxiAQsrifsW1JkrjCPIsxl0myzWWSMIAxAAgZYxCSuMw2lwkZ25bE8zIIQMhYiPtZBmQBxhjEFUJcZoxBSLJtWxJX2EiSbAO2AUmAbUASkgwGQBjzgggMBvEstrmfEICQZBvzTOIKIWNjIUAIAQC2eaEkcZltzHMQz8EAkgDEMxnAGACEAIRtLpNkmysM4grbkrjMNpdJAgDbQgghxBW2eSAhCwAsA4AQgHkmYYx5YYQsnpMxz8O2JJ6TJMA2VwgMBgFIAjDPJADANoAxlgRIAmzzAJJscz9JAAZhm/sJIWwDGMBYCPFcJHE/2zw/QghjDGBbEiCJ+9nmOUnifrZ5AWxL4oEEgAEk8Txsc4UQwhjzPCQBtgFJtvmX2EYI8fxI4n62uZ8kwDYvlCSeh23uJwmwzQMZABEYwDybJEm8EMY2gPlXMwAG80LYBoQQzyQeyLZt7ifEFUIS5tmEJJ6LwTyTEQIASZhnMoAxgBESAgBJPIuxzXMSMua5iGcRksRltm3zAkjiBZAEALZtcz9J/JtIAiRJ4jlJ4gWwzfOQxHOSxGWSeE6SJAGSJPEvkSSJBzDmCoOxjXj+DCAkCUBcIYQAJNnmASQBiOcliftJkgQgnk08k0G8iCTxALYBwDYvlCQeQBIvgBCAeCBZvCDimcQziedimyuMkBAG80wCASCeRQgQQgCYBxLiMmMuk8T9bPOchABJPD+SEA8kieckiedkm+dkm/tJ4n6SuJ9t7mebBzJXCPFCCADxXIR4TpJ4fmxzP0k8JyGeD3OFxLPYBnGZxL+eLO5nDBjzXAwgxLMIAPGisM0DmRfIPJAkHsCY52QMSLLNv8g8f+bZxLOZB5JkG8AGxDOZF0ogni/bXGEAxAtibAwYAwhj7ieJy4S4QrwQtnkA2zyLuEIIwGCegzBGPJt4PgwCkARI4gphG7DNA0jiAYwBBIB4kRgA80zi2cy/wCAABAIAZMniAWxzP0k8X0IIQDx/BgCEuEyI52HbNmCb5yUAxPNlbCwECAlJ4gWTJIkrDAbAYADbvGC2bfNCSZIkicskcZkkLhPCXGEbAGzzvAzm2QTigWwDgG1JPIAkLrMNYDAIwBjAXGGb5yGJF0ASl9nmMtuAbV4wSTw/kgBArTWJywRI4n62uZ8kwDYvGkmAbR5IYAAMgAAQmGexDUjifkIIwDb3sy2Jy4SMuUySbQADIP4FBgFIAmxzhQEQzyIEGHM/IWMAgwAkcT/bgG1JkmzzAJIA27xoJNnmMkm2eQEkAbYBSYBt/pUkAbYBQBJgG7AtSZJtnockLrPNZZK4zDaXSQJsA7Yl8QJI4n62+ZfYlgTYlgRIss1lkgBjzBWSbHOZEIAAbHM/SdzPNmBbkiTbACAJsM0LJsk2AEiyzfOwLUkSD2Cb5yHJNs9DEpfZ5nlI4gUxmCuMjSUJGdsWQgCSuMJgLHOZEGDM/YSMeQBJGAAB2MY8ByHJNpcJGXOZJB7Atm0eQAhAvCCSeB62eQBJtnmhbEsCAEkAYJvLJNnmAWxL4gEk2cYghIx5AEm2bUuSZJvLJHGFwVjmMkm2+VcSAgPmOdhIIAkA27YFSAIkbMA8B9tCAOKZDAIhi/sZ2xbiWYQk25hnEkLGXCEwV9iWhMBgEJJsYxCSbPNABiHJGANIAjCWAVkAgLDN87AtCYGxzQNIkoR5JoEBjDEIQBKAsS0EIBDPZABjDOIKAzYgSQCY+9kgY0ASL4BtSULGXGZbElcYhCTbAAZAGMsCEELGXGZbkiTANmBbEgJzhSTbXCbJNpfZ5jJJACBkzGVCXGbMZZJs8wJI4jLbGISQZcyzSLLN8xKYB7INSAIk2eZ+knh+jAEhwDZXCCHANpdJ4gFs88IZwBghxAsgCcA8izH3kwTYxiAASQAGMOYBJNkGbEvieUjifra5QsgCjAFjIZ6TJAAwBoQA21wmyTb3EwKMAdtCCEAS97PNCyDJNsZYEgBIAmxzP0mAbZ4fSdzPNvcT4lnEs9jmMtuSACHEA9nmAWxL4l9DEmAbkMT9bAO2JfGcJNnmfpIA29xPEs9ijDGI4H4SEoDNCyKJKwQghMFcIQnxvGzbBjAPJCSEAWzzPGwDxjyAbduSAEmSjLmfbQDzLMa2AUCSJC6zjQFsA7Ztc5ltni/xTAYDCAGIF0QSYBuwbZt/iW2eh23uZxuwbZsXgSRJ3M82z0OSJO5nG5AESOIBJAG2Adu2uUySJACwzXOyzQtgmxeNJF40knhBzHMQ/2oCMOZfYts2L4Bt21wmiefHNveTJIkXgW0ewDYvnHkWY+5nDADGPA9jzLOJZxEy5gEkYZ7JPBdj7icJEDLm+bHN8zDmfsYAIEkSgPgXSbLN/SRJ4n6SeE6SeF5GEi8iAwhxP0k8gDHPyZgHkMQLJon72eZ+kngWGyPuJ54PCUDifuLZbHM/IZ6LeA7iCiFACBDiX2Kb52EsBAjxQpgrbAOI50NcIYQBbHOFeb6MEQACQLwgQsY8FwEIARjAmOdkALABEOL5MBgAMAYwgBCXSeIyIUCIy4x5HrIAISEewDZgmxfKtiQuk8RltgHAthCAeL4kSeIK80C2eS4CA9gGANuSeCCBABAA4lkkAZL49zD/AnGFEAYwts2zCGNAiAeQxAtiMM8kEM8mnoNAXGGby2xzmSRAkiT+ReaZDEaI+9m2DdjmBbMticuEEAgAEAKEeE6SeABJ3M82gABs8/xI4kVh/lVsA5hnMi+EJK4Qz0sSl9m2zYtAEiCJB7DNi8wYQABqLSUDIEASYJsXQBKAMQYwiCuEjLlMEmAbsA1I4lkMQggw5j+cQQgZ8wCSANs8izFGCHGZbUASIAQgMFcYAxhAEpcZ86KxLQmQxHOyDdiWxAtgWxLPQ5JtLpME2AYkAYBtLrMtiechyTaX2ZbECyXJNmAbkMRlkgDb3E8SYJv7SbLNZbYlAbYlAZJsA4Ak21wmCbAN2JbEi8y2JJ6HJK4wxgACEOJ+tgEhwBjAIF4ggxAy5j+IbUk8gCSeh20AkGSby2wDkgBJgG2ei8BgnklcIWRsm8sk8TxsS5LEczLGGAtJAmwDGMQzGcCyEA8ghDDGXCHJNpdJss1ltoUQz2JbEgBIAgDbvFCSANuAbUmSbPNAAmNbkiTANvezLUkI8Sy2eeEMQhIA2OaBBOaBhHgWYZvLbEuSZJvLJNnmeUgCDLKxzWWSkDE2EiAJsM0VkgCwDQiQbGMAYyEhBMK2bUmAEOIK2wDm2cQVQsZcITBXSLJtGyHEc5KEAYy5zLYkBOb5ksSzGMCYyyRhAGPbXCaJBzKIF0SSbZ6HEAAY8zyEjLG5n0ESl9kWz2SQxPMQMuZZDICQZNtYCCELMOa5mCuEjAHE87LNZZJ4XgZxhSTbPIBtIYSQMc9Jkm1eANuSuEySbR7ANpdJAoQQxphnE5grJNnmRSDJNpdJwgDGXGZbEiDEFcI295NkWxKAAYwxxpJ4voQQ97ONQQAIDIARQjw3YZv7SeJ+tgHAtiSekyTANv8SIcAYg5BkG8AgrhDiCmEbADCIKyQBtnkeQoAxDyAEIACMsW0hxPOSxP1sc5kk21wmyTb3EwIsA0LczzYgZIwAhADbgG0hLpMEIABjQIj72eZ+krifbV4wSdzPNiAJsM39JAG2AduSeE6SbAO2JfF8iRAANi+IJEnczzYGwGAQgJCQMeZfZhD/BpK4QjyQJC6TBAAIACHE8xKIZxHifsY8kEBgnj+DAYR4TrZ5fiTxQkniMklcZpvLbAO2eU6SbPOC2eYy25K4TBL3k2QbsG2b58c295MESAIkAbZ5AEm8AJJsA7ZtS+IySdxPEiDJNi+YJEk8D9u2MVfYBmxzmSRJgCSeRbxIxDMZISEeQIgrzItCkiQeQJIkLrPNZbYB24BtnpNtLrPNA0jiX2KbBzA2RlwhZIx5FmPANg8giedHCBDiWcQVtnkAIR7IABgAAUiyzQNI4jkJ8ZwkcZltAGOb50cSz8M2l9nmX2Kb50eIF5ltHkCSkCQeSCAAxLPY5n6SAEk8fwIDYMA8kGVeOAMCQABCvBDmuQhxP2PANpcZC/GcJHE/IUBIiCsEgHgW2wCAkcRzkoR4FmPEA9lGXCGJB5CEeCAhIQxgDADGQlwmxAOJZzEA5tnEc7O5n0Ag8/wJAUKAEA9gm2cxiBdCiPvZ5jnZ5lkMRkiIKwyAwQDGQjwXIWQMGAO2bfMAtm1zmSQhQJJt24BtSdzPNs9iMM9kANu2eU62JSGusG3MZZIk8fzY5goD2OZ5meciiSsEAkBIAoSEuEK8cEIYAAMgns1gAMyzCHGFASTxbyWJKwTimQRgWwhAAAhJPIt5JgNgMIBt29xPEg8krrBtDBgDGAyAEQIwQjyQeL5sS+J+knjRGPP8CAFCQryIxAsiiX8lSTwn2zwn29zPNs9DSEitNUncTxJgm/tJAmwDtiXxLAYBCBljAMRzsQ0IcYV4NiMJQDxftrmfJO5nG7AtSRL3s83zkAQAxoAQgAGMAYwxIAQYSwKEjLlMCDDmWQyAeBbbkngASbZ5HpK4n22ekyTANmCbyyTxAJJs8zwkcT/b3M82IAmQxHOyzXOyzQNI4jJJtgFJgG3bkngBJPGcbPOcJNnmMkm2eQDbkiQBtrmfJC6zbVsSD2BbEi8ySTxf5gUxBgAMQhLmOQgAsM1lkmzzPGxL4jnZBiTxPCRxP9vcz7YkXjiBsS0EIJ7JIK6QZBsDIJ7NIK6QZNu2JABAYB7ItiSekzFGiCsEIMm2bSEhhDHPxSCukGQbAAQghG0MQpJtnklgwDYgSZJtLpNkGwAQmGcSGMAYI0nImMskcZltHkCSbS4TMuYy25Ik2bYtictsS5IEALZtSxLiMmOuMIhnEpjnYBAviCSusA2AeCZzPwsMIABJNhLPZvNMMiDLAowBDICQZJvnIck2BvG8JPE8bPMAkjDPJGxzmSTbGMTzsi1JCEDYBoS4nzHPwzaXSQIQGACDuELImCsMQhIGgwCMMYgHsi2eySCJywQGbCSek21ACEBcYVsSL5zAYBBCAMI2D2BbkhCXGXOFQVxhWxIvnEE8B4OQZJsHsC2JF0oSl9nmOUkCbGPA5pkkASAwz5dBAEKAMQ8gicts25bE8xAy5jLbkgBACACMbUsCJAG2eR6SMM+feDYDGPOCCQHGCFmAMZdJss1lkmzzryeJ52SbBxACjHkAIcAY80zigWxLAiRxP2MMgAEQAAYBCAHG3E8I8UwGMOYySbZ5AEm2AUASBjAGEJhnEkK2ASEAAWAAYy4TwhgjnkUIgQGMEUI8P7a5nySek23uJ4nnZJv/CELGwbNJEv8S21wmhACEjHkWAxjzQMLYGPFs5l8kiRdMEs9JSBKX2bYN2OaBDIBACAkBQkJcJgQAxphnEwgEIMRlxlxmWxIgxGWSuJ8kXgSSJPE8JPEAkmxzmW3uJ4nnYds2LxpJPA9JgCRJtrnMtm1AEvezbRuwzQPY5gWQZJv72QZsc5ltSTwPSVxmm8ts8yKwbZv72eaBzHMTiOcgEMZcYSQJAYgrjHkeQoAQz8k2YJvLJEkCJEkCJEniX2Kb50cSDyAECHGZLCEM4gpJtnkAIZ6TJO5nm+fHNmAMYISEACHAGDDmAYR4foSEAMyzSOLZzP2EzLNJSAIkcT9JgCQeQEgSgJAlBAgBGEAIQGCelyQewJjLbPOcbAO2eb7M82eeLyEA8wDmfpJ4AHGZQOJ+QuIKcz/xbOZ+5tnEsxhzP0mAkBAviHg28S+SxLOIBzIW4n6SJAGAbQDzTOYFkSSJy2zzXAxgG8BcYSyJ+wnxnIQADGAAjHk2AbZ5fiReCGPANgBgns1cIUkIQGCeRRL3s81lxojnZgBjnkVcIcQLZdsYsC2J+9nmfpIQz0EC8UASzyYQlwkQgHgggXkuQhKAwDyLEC+AJNu2eU7GkrhMkm3bgDEC8YLYBoxtA7YRgDGAwQDGPJB4LpKEeCDx3MwVtrmfbUk8D0k8gCRJPIvAYDAYDCBJElcY28aAMc9JFs+PbZ4vA2AASVwhnkkAQlwmxPMyV9iWJIn72eZ+tnkAWUJCgBAPJK4w5jkZA8bGPIt5NgNgHsg2/3EkSeIBJPFCiCuEbAPKTC6TZJvnIQmwzXMS4n7G3E/INmDMAwkhnocQYBnzwglxP2PuJwQYA5IA2zw/QgDiWWwDGMQVQsaYZxJXSOJZDGCby4wBSdxPEmAbACQBtrmfJO5nm+ckCbDNc5IEALa5zLYkLpME2AYkAba5n21AEiAJsC3JNiCJy2zzIrAtiQeQZJsXQBLPwzYvMkk8gG2ek21AkiTbXCbJNpdJss39bAOSuEySbR5Akm0eyCAeyLYQ4lkkcT/b3E+SbR7AtiSehyQus83zkATY5jnZ5jJJXGZbEiAJsM0DGYQQYIxBAJIA2zw/QlxmzAtgWxL3M8ZIEuIyY9uSeF4GIQRgLHOZwIBBPJsQwsZG4pkENs8mAQJs80IJIZ6LbS4TMuZ5SLLN8xIYDOIKIWPbXCYJACTZ5grzHMQLJwkDGHOZbUk8gHhuFiBxPwM22JYESAIMgGzAgA0CJAAQYGwbACRxmRCAsM3zEOIBjHkeQsY8gCTMsxhzmSQMBoG4wrZtSVxhEAhZGGMuE7LMZZJs25bEAwkMBrCMEUIghADbGMQVQgACAxjzPATmmWxL4gEkAYBtsA0gBCCeDxswzySJ+wkBxhjEA9kGJHE/CRDmCmPbgBBCCEBcYZvLJNnmhZJkGwMYSxICjAHbkoTA5rlJ2FwhYXOFwDyTbUkCg21JIAnbAEIWVxhjACEJwBjzopEE2OZ5CcwDCRlzhQGMJXGZJAzGGCEEGPNAAoNBCCEA27YlAUIIzLMYYxBX2JYECCGel23uJ4nnZSxjhBC2eRYDIK6wLQkQ4n7GGMSzGWNJPC8DIIQQtnkekowxzyYwAMZYEg9gWxL3sy0JAIS4nzEgifvZ5n5C3M8YwBgjhAAM4lmEAARgm/tJMhbiBbPN8yMJsM3zkMRltrmfJJ4vAxgDAUhIsg3Yts39JGEASYjnIJ6XJEASIMQDCAFIkhDPQWAA27Z5ANu2eV7imcTzIQBAElcYzAskAEASIAQACECSJC4z5n5CQoCQJB7Atm3+c9gGbNuWxGWSeB6SJPEis82LzDb3k8S/km0us81lkiTx/EjiAWwDtm1zP0ncTxIgyTYvgCTuJ8k2YNs2D2DbGMBcYWwM2OZ+tnkRGNsGbEviBbMN2OZfQxIPYBuwDUjiMtu2Ec8kAATmgSRxhbHNczHPJgAhAPMskgAhnot5INtcZhvxbOIKCfP8mGezzfMjgbhMEs9inoskxDOZZ5EECBnzQtnmfpIwDyQEYJ5JXCHJNleYZzHm+ZHE8yPEi0gCwOZ+AsRzMs/JBsAA5tnMsxgDGGMAI4nnJMTzY8wDGAvxfJlnE/9q4jmYF0YAQogrhAAhnpNtnkX8iySBACTb3E8SD2BzhTEYACTxghnz/NjmfrYBSTyAEeaBJAkBsrjCPC9JiAeShHgW20KIZzE2Boy5zNgAgMHGBsDmAcT9DJK4QsLmMnGFbQMABvFM4llsY57NYIQAhCQeQBLimcQVkngWI0kSVxjbQlwhACHbtgFjAIEAEAgAsG0bwAghnoskDAbAPJCQJAxgDGCeyQCY50sSYJvnIgAE4tkM5rlI4grxTAJA2DYGMICQbR7AGANIEgIwkiRxmW3bgG0MYNs2gAEAY8A25grbPA/bvOgM5jkYjDEgBAhJwmCeSSCeLyFeANs8gCSehyRJAGDbNmCbF4FtAIG4DNnmMtuAbUlcJgmwzRVCiGcxgDEgCTDGAELGPD+SAMwzCQBjDNiWxAsgxP2MuZ8QYBshBBjz/AgBljHPSxKAAYx5fiQBGMAYwAAIQJJtnock27wAkgDb3E8Sz49tnh9JtrlMEmAbkATYBmwDkgBJ3M82IAmwDdiWJMk2IAmwzWWSbPMAkmzzAJIA24BtSZIA2zwn24Aknh9JtnkASYBtALANSJJkm8sk2eZ5SOIBbHOZJMA2L4AxRhJXmGcSV9iWxGWSuJ9tXjSSeE62Ads8gCRJgG1eMEm2bXOZJElcZhuwjRCSxGW2uUwIQFxh27YkLhMyxgDGkiQZYwBZlrmfJMA2D2QQV0iybZv7SQIk2eYySYBt7ifJtm1JAICNJC6TsAHzTEI8i7BtmweQJMk2VwjM8yEwzyQwz8UYIwlACGEwCIRtDGBZFoCQxGW2uUzImBdAEmAsxGXGQsaYB5Jk27Z4AInLJHGZbS4TMuZ+4n6SbWyukAABAAKMucIgrhACELa5zLYkAMA8kxAy5gFsSwKEAGMM4gohnkXY5gWwLUmSbduSuMIAxkIIjLEkHkASD2QwxgBCCACMeeEkmWcSV9jmBZBkm8sE5l8gCRswz2QDBiQJGfNCSbKNQTyTQUiybSxLCPFMAjCWxf2M+ZcIAcZcJssyANgIQGBjhBCAQYDAPIBtSVwmyTYAYAMgBAKDQQCSAAxgzHMxiBdCElcYwJgXjRACAxhjLAtxPyEAcYVt24AkXgRCgDEG8WzGGCEEYCQBlgEh7meb+0kCbPOcJAG2AcC2EIC4QpJtXjgDSDLmgQyAAIQABADY5nkJDGBbEoDAvCC2JfGCGAQgCbDNZZJsAxiEEAID2EY8FyFjnkVgnpckwDbPjyTANgBIsg3YlgRIAmzzPCQBtrmfJMA295OEQQC2gbB5IElcJgnzHMy/wFxhLInnIXE/c4XBABiMJAAQ4jlJQjyTeP7MAxkb81wE5lkkcYV4JgEIcT/btnkggXggISHuJ0kSl0myzQNI4gWTxL+GJNv8x5EE2OYy24AkQBLPSZJtLrPN85DEc7LNZbYBwLZtnodtALDNc5IESOI5SbLN/STxQkniXyKEAIR4FiHEcxLigYQkHkgI8W8iiReBJNvcTxIPIAmQhHkOAhDiAYwBSVwmZIwBjCVxhQEwCCHuZxuQxP1sI66QZMzzY8xzE5dJss1ltgHbPIsEIPFczBXGAOKFMc9kANtcJiQEIIQk8ZyEANsA5oGMucwYc4UQzyKem3g2AwjxPIR4HpK4n3kAm2cyD2QAIQAJ8TzEZeIK8UIIAPEstgHbPA9jSQDi+ZIFYJ5NAIgXwjbPxTyLMWCMMQZscz9JvGBCPIt5FknczzZX2LwANgA2NpdJ4llsY/H82eYyYyRAPIt5ASSemwCEAAxg25jnZMwV4gohXijbmCskSeJZBIAQEgCIBxIChBAAWJLEFbYB21xmW5IEgDAYc5kQAhDi+ZHEFQKQJMRltrmfJJ6LAYy5nyRJPIAQVxgEAkAI8QDGiAeSJAmQJInLbNvmMkkAIIRAAIgHMgaEACFJ/CvZts3zsA0YG3OZJEASlwlhAGPbXCaEQACSAAABIBAA4pnMCyHEZZIASUKSeAEkcZkkAEAAQpgXxDZXCADxLJIAQAhzhbEQAEjCALZtc5kkSTw/tnl+bHM/24Bt27xgknjhxAOgTIMRmGeRxP1sYxCAkDEPIAQgANvcTwjxQLZ5foQA2wgAIYR5JoEBjLlMEmCb+wkBxoAQYAwAtiUBkgBjDGBbEiDJNs9DEmCbKwyAuEIIMOYKg3gmIcuYF0ASYJvnJInLbPMAkrifbe4nifvZ5n6SuJ9t7mdbEs9DEvezzYtGEpfZ5jLbkgBAEmCbF8A2IAkAbEviMkm2eQDbkngASQBgm8skcT/bgG1JkrifbZ6TJNtcJon72QZsSxIyBgBJGMA2gJBkm8sk2eZFIwmwbVuSJNu8ALYlcZkk/iW2AduAJEASYJt/kUFIwhgDtiVJwhgDtgFJ3M+2EIB4XpJs8wCSMMY8iwEsxDPZlsQVEjaXSbJtm8skcZkk2zyAbSEAIQQYA8ayAMQVkmzblsRltiXxAJK4whgLIWxzmSTbGMBYEpcJAQjbXGEQQoBlzBVCxlwmCcAYc5mQMQAIAcaAEICwbVuSkDHPw7YkLhOY+5lnEpIAsA02EpcZC4nLJIMwCLDNZUJcZswD2JbEAxgL8TyEjLlCyMIYA4jnJck2l0mybZsHkMQLZwAEBkBI4nkZwBiDuEKWMeJZJNnmMtuSAACDuEKSbR5AtiUuk2QbG0ASIPEAtm0DQggBCAEAtnmhJHGFeSaBAYx5XgYBCCFsc5mQMQYQssxlQsYYAPFAkoyFANs8B/FM5nkIGfMAtgFAEs/DWIgXShKX2TYW4jJJtrnMtiTuJwnAAMZcZlsSIAmwzRVCiPvZ5gGEjDGIF0ISYJsXSpJtXhAhCzAGJGGMeX4kAbZ5TpIA2zwvAWAASRjAmOchZMxlkgDbvACSANvcTxL3s80LJQQgbHM/STyLMcYgXhSSANtcJgQYY4wlAQgMIMk2YFsSz0mSbcC2JB5AEmCb52FbEs9Jkm2ehyTuZ5v7SeJ+toGQATDGxjxf4gpjwLZtnkU8k7hCCMBcZl4UAkAI8SwCA9jmOUniBROSBEjigQxgm/vZBjDPZJ6DQAAIAPNAQkIAwrZtAGMM2OYy29xPEi+UbS6zzX8Q27YlcZkkXgSSeB62eQDbgG3bkrhMEveTxGW2bXM/SZJ4HpK4nyReKNv869m2zYtOAJhnEsYIxDMJQJJtLrPNC2YbsM3zsG2byyRJ4jlJ4j+abe5nmyvMM5lnE/8im+dLEg9k/gUGsM0LJYnLJNnmeRjzLOKZzLMJSbwozAskMELczzbPIgDEcxOY52CezTyLEAbz3AyYBzIA5lkk8ZyEjHhhBAC2AduYZ5L4FxnAGLDN/STxnISEeAAhAPFM4nnZBgDbkgBJvGCSAECI58v8C8QzCdsAxlgSD2AsiefHNveTxP3EZTb3E5dJABLPQ5IQIAsEYMBgrpB4AWzzXAzi2cSzGUAIQDybeSYBGAvxLAZAPC8hHsA2z2QBIEkSl9nGPF+SABAviHkmY5vnYZv7CdnmMtuSuEySbWMeSABCXCH+tYQADGDbNs9DkiSehyRJXGbbGLAticskSeKFE1fYts1lkiTxfIlnEs9NCGGusI0AhLhMEvcz5n62bQMYDOYKYx5AEs+PJO5nG8A8kDGAkYRASOIBjAEEICSEwTyLEFcISTyQMTYGjHkWc4VtAJDE/WwbA7a5TBKAeCbxvCRxmSTbtrlMkiTbvMgkcZkxz4TcbJnLjIUASdzPNs/DtiRAEmAbkATYBjCIKyQBtnnBhACEbQABYJ7JIJ6bEOJ+xtxPCGPM/YQQtgHbkngRSAIwgDHGspCQMVcIDGBbEi+YJJ6HbS6TBNgGbEviMkmAbUAS97MNSOI52QYkAbZ5TpIA29xPEvezzf0kAbYB25J4AEmAbZ6TJNtcJgmwzXOSZJvLJNnmMkm2uUySbR5Akm0AkMRzsi3JNs9JEvezzb+eJMwVljEPJIn72QZsc5kknodtSbwIJHGZbS6TZJsXShJgm+ckCbDN/STZ5lmMsSQuEzLGIJ4Pcz9zhcSzGIQk2zwPWQgE5pkEBjDGIEBgrjCI52WbyyRJAmwDtrlMEg8gBBgDGIQQlxnzQAJjWxIASAKMMVcIAQgAsM0VBrAsxGWSbAOAJMwVxkLGPIsBEM8iyzJXGMBYCEAIARjLPAeBuUwSNmCeD9uShIx5AEm2AcyziWcRQlxhmwcQMuaBDEKSMQawLUkSBjC2LQQgJHGZbQxgLEmSbZ6TEPcz5n62AUk8gBCAeCbzTAYALPNAAnOFJNu8IAYBCCFs25bEA9iWxGWSbHOZwGBbEgCIyySusAEAybaxkJAxBiGEMJa5wgDYlsRltiWBJADMMwkMYMwD2BaSBCAAwDZXmGcSgBAC81yMMQhAEvezbYwBJEmAMMZcYQBjIQBxhSTbXGZbEpfZlsTzMMYAkrjCIABJgG0usy0JkATYBmwLIZ6DEAJscz9JPIsBjHkeQlxmDBgLAQjMs0gCjAEhwDbPyyCukGQbACRxhXm+jHkekrjMNgBIAjDPJowxgCQMYGxbEg8gCbDNswiMsRD3sy0JwACI5yKJZzHPJADbAAbxLLYlAULG/IuELMCY+wkBxvxLjIV40diWxHOSxHOyzf0kAbZ5TpIA2/zrSQIwiDAICQFCvBBCCAAk8UIZ2+YFkCSJBxII21xhMIBt2whASAiDATAvkHk+zBWSuEwSDyAkieclEABCCDDmfkKSAElcJol/JUk8gCQAkMR/HEn8m0jiRSDJNi+UJJ4fSba5n20eQBIvlCSehyQAsM0LJYkHkCSJ5yIwzyJJEi+AJECSJO5nWxL/JpJ4Trb5DySeSUgyBhAPZMxzMM+XzGWSuJ8xgHk2YcwVAgyAuULiWYxAPJttXiiJZxIvnDFXGIwQ5grbvFDGgG2uMICxEABI4rmI5yAk8a9hzHMxzyIk7idxP/FcxANI4gGMhXi+zHORxAMYC/GchAAMYJvLjBHPYszzY8xltiXxLALxTAYQ4oUwz008X8Y8D2MhnkUIcYUBZPH8SOJ+trnM5nnZBgADEs/L5n7GPCchLjMA5tnMCyCezQDGgG0AYYx4FklcIa4QAhAAAjBGPJN5INvcT4j7GTAA5oGEjLmfJEAS4rlIsm0MYISEACEeQIjnJInLJPE8hAAhIZ7FvEgMYGyby4R4TkKAJCHEFUK8UJIQAAKDAWxzP9vczxiDwWCMAcTzss1zso15JgNgMFfY5gojxHOybZv7SRIChHgASVwhEABCEvezzbMIBOI5CABxhSQuMwZsc5ltnpcQQjw38UJIksRlQoAkSYgrhDCYKyRJAiQBgCSuEBgMxpgXQBIPIIkXTBLPw7ZtnhvKlojnIonnyyBs85wkcT/b/Esk2eYBhIz5lwgZ8/xI4lkMYMz9hIx5AEk8J2MMAMYgCQHGvGBCxjyAJB7ANpdJss2LTBL3sw1I4jnZ5n6SANsAEiCbZ5FsA4Ak7mcbkATY5n6SbPMAkrifbUASz8k2YFsSl0myDUgCbHOZJB7ANi+AJJ6Tbe4nifvZBmxLkmQbACTxALYBwLYkSYBt7ifJNpdJss2/iSQAsG1bEgBIss1lkmwDgCTbXCaJB7DNZbYl8UJJAgDbXCaJ52EbQAjZ5nkYC0myDWCeSWCMxf0kQGCeSRKX2baNEAKEjAFAEgYMQsbcTwACA4BtEC+IJMA29zMWksQVxhgQ4lkExjbiOQiMbUkAIAljDGAQVwgBxtzPNiAJkGSby2xLkgQYY4QABAYwxgCIZzOIK2wLIZ5Fkm0MYCxJEjZgnkkAmOcmYfNMQgiwzfMQMsYgng8hBNjmCiEE2OYyIQBhmwcQAhC2AQCDeD4MQhLPwzbmmYSQsW1JXCbJtm0hAPEsQggMYIx5JvG8JNnGICQBgG0uE+JZhG0uk4QBjLnMtiReOEkA2OZ+AoQNBoHAPCeBsQHzTOKZDJIAAZJtLhPiMmOelxDifra5zFgWgJBkmyuELMAYEOIKcYVtHsC2JC4TMrYtScgY2wBIEjIGACFjHsCALYQQAhC2AYyxJECI+xlzmSTbvABCAMK2bUmAJADzLJYBIQADGNsGJAGSbGMQkmxzhRDCGHM/IZ6TMc8iMICQMc+PEAIDGGMQgBCAeBbbtoUQgCTbPC+DeA5CljEGASAwGMTzkmSby4SMuZ+QMSCEAGzzLALzQJIADGDMZZJs8yKwLQmQhHkm8VxsA7YlAbYlAZJs8zwkARjANoAAJNnmuQghnpNtLrMNSOJ+kgDbvACSuJ9tnodtSYAk2wAQ5jlIksTzY8xlkiTxPIwBxANIEg8gSZJt7ickZMz9hIR4FvEsxkKSAMC2bZ6XQDyQMQ8giedlAIMNCPMvEjLmWYQkzLPY5n62eU62eX4kSeLfRBLPj23+JZIAQJJtwLZt/vVsc5ltLrNtm+fHNgDY5jJJXCaJfyVJgG2eH9uAbduSeB6SbPP8SJLE87BtmxfANveTJInnR5Jtnh/bgG3bPA9JkngetnnBbHOFASTxgkkCEM9kzP2EAcwVNg9gm8uEAEnGPDeBAQQIxLMIAARgnk08m7ifJPEiEs8ixAsmifvJAjDPRYgXzLYknpd4Flk8L/GCSDLmMmMQD2RzhYTEc5IEQlwmEJdJAoSEMJjnJUmIfy3xXIR4FvFsBjDmX8MYwACYZ5HEZZKMeb7Ev0gSD2CbF04AiGcR4gpxhSSei8QLIUAgrjCSeBYDBkDmBbB5LsaYfyXbgDGX2eZZzL+KJNu2AWPuZwwgcYUx5n7GQkJcZhtbCBACEICQEA8kAATiWWwDxpjnYIQAxPNlzPMlEABCEiCJKwRgm2cxGACDeQ4G80ziCkkYAGNbiOckJARgEM8knkkgnoskYwxgWwjxgkjiMiFjAAFIEhJCAEKSEM9iW4jnx5jLjLlMCEBIwgC2bfNAAvEstrnMtm2eH0mAJK4wz2LMZbZ5AElcJonLbAMYDAbzwtnmeZkXxDbPw7ZtwLZtXmSSuEwSl9nmmVBmAraFEC+IEFcI2zw/QoAxL5gk2zyLkGWMMUYIcZkQgABs8wCSbHOZbUmAJNu8CCQBtgGJywTYBmxLAgAhwJjnRxLGNoAAhBC2+ZdIsg3YBiQBtiXx/EgCbHM/SbYB24AkSTwn2wA2EpfZliSJ52Sb+0myzQsgifvZ5n6SANuAbUn8K9kGJAGSuMw2L4BtSbwIJNnmBZDEA9jmediWJMk2z49tQJIkHsA2L4AknpNtwLYkSdzPNs9Jkm2eh21JkgDb/EtsSxICELZ5IIOQxBUGMLYtictsg8DimSwJJAE2YC6TBBhjbEsSMsYgkLABAIOQZJsrLGQuE+IyYwAQAhBX2MZG4jJJgDEgBBhjrhACELZtSxIy5nkIcZmxbUmSMBgEwjYA2JbEA9iWJIkHsA0AshCAsW1JAIBBSLLNZULcz5jnJGSMzRWSJMCAzWWSsHkgyTYPIGSMQQgZA4AQgLDN85CEAYwBAIN4FkmAba4wCCFjABAyxgAIQBIGMOYBJHGZbR5AyJjLJNnmMts8gCQeQJJtLhMCEBjAmOdHkm1JPBcDGPOchBC2eSYJAGMeQAAg2eYKG0kSV9ggAGGbBxAytgELkHgesi3xQAYhAJBsc5kkLrPNZZJscz/bgCRJtrlCyOIKcYVtAJBk27YkSbYB25IABOYKIWNeEIN4JoO4QhYCQAC2eUEEBoMQMuYyIWPbQgDihRDiWcSzGcCYy4QQgG1jIZ6XARDPZgCEEIAAbHOZbSEAIcm2bUkAIAsBIADb3E8IQAC2eQDbkgBJgG2uEJhnkQTY5jJjIUDIGBAy5jIhY+4nxGXGgG1JvACSjDH/MoN4INuSAEk8J9s8P5K4n20eQJJt/iWSAAxgzL+GJMA2YFsSYBsAJPGvIYnnZJvngwAAScY2gG0eyGCeSbyIjG1zmcQVkmxzP0lCxoAxgLHNFQJxhSQh7mdbkiRAEpfZBmxzmW2ehyRJPAeBeABJXCYEICRJ4jLbtrnCAEIABgNgHkiSJC6zbZv7SQIkSeIySbZ5ANu8ALYB24AkXgiJ+0niX2KbB5DEv5IkXihJXGaby2zzPGzzr2SbyyRxmSTb3E+SJO4niQewzfOwLYnnIUmSJEASz8M2z8M2L5Qk7meb5yHJNs/DtiQeQBIvmLEQ5rmJ50+8AOZ+BvHCCHGFMcY8k81lthHPwQiEABCAMS+IxWU2L4h5DsI2VxhAiPvZ5lmEMc9iHkgS97PNi8hcYcxltgEMIAQgnslgnklI4gUTDyABSFxmwOaZzGW2AcBYCIF5/gQgJIR5YczzZZvnRwhAAAgA8Sy2eU6SuJ8Q95PE/WzzQtmWxDOZK8Sz2OZ+khCYF8YAxjyLAIR4DhbiWWwDgM0VNiCezQhAPBdJ3E8AiOcmQMIG8ywC2wBgcz+b52JbEs/DtiSuMC+EbUASYBuwLQmQJMQDCAGIZxECAIRtAPMikiSJBxBCAIAkHkCSsTEviHkWy5aNeS4G88LZBjDGCECSJACBABCIB7INGBsDtgFJto0BYx5AEuJfJInnR0gSz49tzBW2MYAxVxjbQgACgUAYA7Z5TrYBwBiwjXkWSZIAwLYxlwlxmZAkSYAkXgBJXCaJF4EkQAjAYJ5FiPtJ4jLLgJAkHkCSJO4niRdAEgBI4gEk8fxIksSLwLZt7idJtsE2L5wQgABsc5kk29xPyBiDeCBJGABhm38TSba5nyTbPD+2AUm8AJJ4fmxzP0kYY56HsRDPYgAhhDEA2BZCSLLN/WxL4jJJtrmfJNu2JfHvJsk2LwJJgG3AtiQusy1JEmCbF8y2JEmAbZ6TbUmSbHOZJMA2L5gkwDZgWxKX2ZYkybZtLpPE85DEZba5zLYkXgS2JUmybVsSD2BbkiQewDYvlCTbgG1AkiQus80D2JbEZZJ4HrYBwLYk7mdbEiCJB7AN2AYk8TyEAMSzmWexLGSb5yRkjEE8kwEbSQgBCMwVljHPZBAPJMk2xhiQxAMIGXOZEJcZ2xYCEA8kYzCWJAQgHsg2lwkBCNu2hQCEJNuAMUaSEMIYY1uSJAzGMpdJss0VBvFAkgDANpfZliQEGHOZMUaSkDGXSbKNeSYhyRgD2EggYdsWAEgSmGcx97O5QpJkmwcSmCuEAIRtDAKQBGAwxohnkWVsLEnImCsE5rmZZxNXCAEI2wAgyTY2gMS/RAhA2LYtiQewLQmBsS0JEPeTuMw2l9kGJPEAkgAMYAwACFmAMQZxhZAxVxgEIMQVwjZX2JKQbHOZbEs8kwQI21xmW5IkwDb3EwBItm1L4oWwASRJtnnBJAG2MYgXTpJtXgSSeADbGMQVkngA2zyAEIDAPJsAbNuWBEgCbPNABnGFJGPMM5nnJiTZ5gojCTAGhBCYZzHGIABJgG1eBJJs87wE5pnMM4nnYJ5JPF9CAAKwjUFIss1zkgTY5gGEEIBtLrMtiRdMiPsZ87wEBrAtCcAgnosk2zxfBvEcDAIQAox5ACGEbR5AEmCbF0DIGIMAJHE/29xPCGGMeV6SuJ9t/jUkcT/b3E8SYJsXnZAFBAbECyUEIGxjXhBjAPEcBOaZjCRJPIsRAhBXSOIy2wDmCts8gG2eRUiSJAmQJAmQJEmSJP61zLMYG3M/IdvGgG2uEM9iG0AAtnkASbZtA7Z5ANuAJF4wSZJ4fiTxALZ5AEncTxIvgCTuJ4n7SZLEZbZt8wCSuJ8kLpPEfwJJPCdJvGC2Adu2edHYlsQLYFsSz0MSL5gkQBIgSRL3s83zsM0D2LbNZbYB27YlAZIkAZJs8zwkAZK4nySei3hBhHgeQoAsxP0EgMCYF8YAQjyLAIQAIcA295NkzAOJZzHmeZj7medPPF/G3E8SIARgAMzzZ55FEs9inkUSz8m2JB5ACBDiBTPmMmMMYBsMiCtk/nUkcT9JQjyQeCEk8SzmgYyFAElCPIAQz8VcYYwA8wACEBL3s81zMgYAYwDzQJJ4gcQLYBuQxAthnk0AQogrhLifbZ5F3M9IPCdJgAAJG8CAAcwVtgHAtm3uJwlA4n62AWxsHsjG5n62JXE/29xPEg9gzAPY5l8iSRIPIIkXRNi2DdjmBTNGAIhnEi+QAISEMIBtY8A2BrBtDABCQtzPNgIBIDDPZJ4/8W9gWxJCSAjzTEYSV4hnEUI8k3hexsZcIRBXCCEADADYts3zsG0bMOYySVwmicuEuEIgrhDiXyLEZZIAIcQzCQAhyTbPQwhAYJ7FtjEPZABj24CxbQCDERLiBbBtGzAGEC+QeSaDeWEMIAlxhW3bPA9JvFCSeE6SuMy2bS6TxPOBMpPLJHGZbS6TBGCMAUAIQFxhmxdAEleYK2wjAEm2AQxCiCsEYJvnZFsSL5gkDICwzYtGkm1eACHANgKwDUjiBRACLGNeEEm2eRFIsg1Iss39JNnmMtuSAElcZpvnRxLPyTYvGkk8gG1eBJIA29xPEi8C21wmCbDN/STZ5gWQxPNjm+dkm8skAbYlAZJs25bEC2BbEpdJ4n62uZ9tSZJs8wCSANuAbUk8gG1JXGZbEg8gCbDNA9iWBEjiMts8D0lcZpvLJHGZbduSJNnmBZAE2AZsSxIyxgCIZ5FlmSsM4oGEjLlMCEAAgG0uEzLmASQBxpgrhIx5IPMsxpJAYC4TAixjnpeQMQDYlsQDCBnbFhJCWMY8BwMYSxJCABiMZS6TZJvnYVuSJAwGgbANAAgMBiHJNmAMCAkMtiUBgCTbNhJXCBljIwkMtiUJDNhIPIAQADbYlsRlQsa8ULYlcYVBCAEIDGDMczHPJDDGkpAEgG0eQAaBZJsHMohnMgCSADDmASTZ5goJGwAkYQMGQICweSBJtm1L4gGEjLGReCCDkGQbAyBeAAnAXGZeGCGEba4wCEm2bUviASTZ5gFsS+KBbMAgCRAYANuAJO4nyTYPIMk2LwJJXGbbtiQuk2Sby4S4zJjnJAmwDUgCMM9izAMIGfOcJAG2uUyWZa4wiCtsc5kkIZ6HMfcT4n7GXGEQkmxzPyHEC2cbgwAQGECWsbEkQBKAAYwxCEASgAFs8yzimQwCQGCeRciYBzIIQBJgG8AgHkgSYJsrhBDPyRhzhRBgzP0kARjAmAcQAgBjLpNkm/sJIa6wDdgGEEIABgEIAcYYAPEcDIAAhBC2eS4G8cIIDIABEELGPIAxIMRzEjLmASTZ5gEkcZlt7icJsM39JHE/2zwnSTyLAYyBsM0D2OY5GfMs4llsAxgMIIR4bgbAYAAMYFtICPEcjG2eRVwhybZtnockSZhnMpIQLwrbPA9jnsVIAgBJgG0AIwQgrhACEM9FkiT+lSTZBgDbkrhMkm3Atm3ANmCbF0wSz0OSJO5nGwAkSeLfxLZtHkASl0ni30cSIIn/IJK4TBIPIInnx7ZtSQAgiedh27YkLpPEC2ab+9mWxL+SJNs8gCTuZ5vnRxKX2eZ+xgBgm3+RMcY8N4MQ4lkMYAxgACGehzEvCgEIGWNeEEk8L4F54WzzfJnnIolnMYCxEAbAPBdJtrnMNv8iASAwDyQJEMJgAGwQl0niOUkyL5C4zAbM8zCAbQBjLARIksTzsM0DCcxzEeJ+tnlOxjwnSTyLbQxgI/FCCDACkATiASTxTAbAXCHxHITE/SRxhXguxgIkGSEAsA0GbHOFeDZJEs9mMM/JNoCNzWUSQggA8SxCXCbJNmCeTRLPyTYPJJnLbMAAGAOSeADbPIAkQIjnJInnJIR5Fkm2bQPG3M8yz48kXgTGxjwPSZJ4IGMsxBVCSAiQxP2MucwYQCCeyWCeSTyLbWPAthCAwQC2eaGEuEwIA2CMASEeSLwohIS4QggJYQDbxoAxz0U8kBCAeOGEeF7mOYhnEw8kxAMYIxDPYpsrzDOZ5yUECCGeSSCEEAgAgRDiWQwGwDwfQogHEBLCPJMREuIKYwwAxjyLsc0DGdtCPD+2bQO2+VeSxIsEZSaXSbLNCyUJgwBsAxiEEIB4Fts8F4N4XkLcz5j7SQJsA7Yl8QIIAcaAJMA2L5htSVxmWwgw5jJJgBDPImzznIQAYx5ACAFgAGMAkATY5jJJtrmfJNtcJsk2lxkLSeJ+tnnBJHGZbQCQZJsXyrYkXgBJtnlOkmwDtiVJss0DSLLNZZJs8wJIAmxzP0mAbUm2eU6SbPMAtiUBgCTANiCJ52EbsC0JkGSbB7AtiQeQZBuwLQmQBNgGJAG2AcA2IAkAJNnmMkmAbS6zDUjiBZBkGwAkAba5nyTbXCbJNpdJsg3YBiRxhcA8kCTbvACSbGMQkgDbPD+2uUxIEoCwbVsSANgWAhAAQgjAAICxbUmSuMw2lwnxLAJjG3GFJAzGmMssCyEwtiXxPGwDgCQusy2JyyTZti1JyJjLhACEbQCwDSAwgBCAeCaDkATY5jLbgCRJtgFAEsY2QhIPZDCWuUySbdvimQySJNmAATBIEgC2eV7imQyAAVuSEAA2z0HImMsk2cYgJNm2jRACJNm2LQQgACHbkgBjrjAIIWNsJO4n7ifZti2EEBhJALa5TMiYy4QABGCQARtsS+IySVxhY1viMknY3M88kyTbXGEQkmzzTAJjIwkMthFCgCTbXCaJB7DNFUIGGwkwz8G2JAAQAsAgBAYw5jKDbACJ5yHJNgBgI/E8BAbbgBBCkm3bkngBhBDPxTbPQ5JtHkhgnosQ4grbXCaJy2xzhXkm8RwMYCwJkGSb+9kWQggBxhiEkDHPQwhAXGGb+wkBAMI2DyRk8ZyMeaGEAGP+JZJscz8hBAYwBjAAQpJtHsg8k3ggIR7AmMuEuMyY+0nifrZ5XgLzQgghbGMQQsbGQoAkjDHPxQAIQAgw5gqDuEKIy4y5TAgwBhCyAGPuJ8TzY8xzEgKMbUsChIwxCADzfIjnSwhA2AYk2QZsSwIASTw/trmfJMA295PE/WwDCEAWz0QAEpJscz9JkngASZIAYx5IAAjEv0A8i23bXCGeSbwgkgBJkiRJ4oHECyLE82MbMBbiMiEeSDyTeD6MsTGXGQMYAIMBbGOeL9uSuEwS95NkGzC2LcS/gyTbgG1eANuSeE6SuEySbcA2BrAN2AYASTwPSbZ5FvNcbNvmhZLEA9jmfpK4zLZtwDYvGkmAJB7ANpfZBmxzmSRJgCRAkm1eAEmAJMA2L5gkQBLPQxL/SpJs8wCSAEmAbZ6Tbe4niedLYF4IISFeANuAJB7AGMAAmOdmHsg2z5d5DgLzQMY8J9tcJkkSz49t7ifJNg8gxLOIZ7HNFeYKY+5nm+ckCZDE/SQBiH+ZeS4GwDyQAds8B0niOYlnkwSIBxDPRYgHMBYChLifECCJ+xnzAEKYF5XNcxEAEpgXzIC4QgAGsAHbYMA8J5tnkXgWm+diACEw4goB5grzTEKAJEAS/wJxhc2zSFwmyTbPQcYA4llswFwmns02l9mWBAiQsHlO4tmEACGekyTuZ9sYMOZ5SOJ+tm0DtiXxnCTxXMTzss0DmeciiSuEMfezzf1sA4hnM1cYS+K5GNsA5gpJPIAxgJHEcxHPzTwX21xmm8uMuZ8kISFAkiTuZ1sS4tkM4lmMjQHbXGbbmOclnptAPJOxjcE8B4N5INtcZhvASOL5MhgAAyAAY0CIK8wDCWEwxsYYzDMJBIDAYABjBOJZjI0BAIN4XpZ5IIF4IEmSEFdIAgBjAPFMwtiY50s8N2Gby2xzmST+YwkMBkAACGUaAPMikATY5gWTBNgGbEvieRnEFZK4n23uJwmwzYtCCPEs5lmMeQGMZSGEjPmXSLIN2JYEYIwl8bwM4gpJgG3uJ4nLbHOZJMA2YFsSl0niBbPN8xJCgDEGMMY8kCTAtiRAkm0uk8RltnkRSOIy27wAtiUhMA8kyTYPIIn72QZsA5IASVxmm+chifvZ5vmRZJsHsM1lkgDAtiQeQJJtHkASz8M2DyCJF8A2l0niAWxzmSSeh20uk8T9bPOcJNkGbAOSAMC2JJ6HkDGXCRkDgBCAeEFs25YEABjEFbYlSbLNFcYYkCQEIGxjEFcIAcbcT4hnERjbCAABYDDPQQgZ25bEZZIwgDEG8bwkAba5nyTuZ4x5JoN4gQziCkmAbZ6TJC6zzWVCAAJjzLMYxAPZFkI8i4SNbQAhxANIsm1bkpAxNhKXSbLNcxJCXGGb5yTEFcI2lwkBCNs8kCQDGAABAvNMAhsAkLAB2wCSwDyTJC6zDQC2JUmyzWUSNs/BRuI5CSzJBsxzkmQDBtuSeCCDuEISBjAGACRsXgBJtnkASVxh80ASYBswiPsZhBAPYGwbECAJzP1srpAAJGyekyQus80DCBnzAJJs80AGgRACbPMikMTzsM39hBC2ucy2JC6TZNu2JK4wCCEEYJsHEhhjjCSeRcgCjHkASYBtwLYQgBAy5oGELMCYyyRxhQGMEUIABrBtLIkHsA1I4jkJGfMAkmzblsRzEuIKYdsYEAIQmOcixLMIwDb3kwTY5jkJAQjAGBACbPP8CCFs8/wIAcY8kEEAQoAxL5gQz8mY+0kCbPP8CHGFwDyTsM0DCcxzkQTY5oWyLQkQ4lnEc7HNFQbxXCQBtnl+JPGcbHM/STw/tnkmAgPm+ZEkiReBbds8P7Z5IINBPJN44SQJ8S8yz0E8kxDiMiFJACAJEEJcIcT9hDCAMQ9gGwAkcYWQxGVCXGbbNuIKSbwAtnl+JAGAJMA2L4AkSdzPNoC5QkgIEOIBJAGAJF4A27wAkngetgHbtnkAY9uSACHEs0iyzQNI4kVgm38HSQBg2zaXSeJ52OZ+kvhPZpsXzDbPjyRJPCdJgCQAA2AQD2Sbf5G4wjbmgYx5EUjifkJCmOdLCAAQiGcSzySezQCY50sIwDyLJMwzGcS/hXkmAwjxXMRzE8+XJC6zzQMJzDMZwDbigWzzbAIkLjP3M8+XMGAMYJtnsiSexbwQkhDPQTwHg3hu4tkEgHgW8wASgMRlRhKAxHOxzf0kARIgrrABbJ5F4oFsJEASz0XifrZ5TrZ5FvGcLInnZMxzsg0ANs8k8SwSYBuwjc2ziBdEAIgHsEECQCDABmxjc4XE8yOJ5ySJ5ySEAIR4ANs8JyEewDbPSyCel23Atm3AGJAEAEJcZsxlkngWIcRlknguAhBCPJBtwDZgzHOybRvAIB7INs/FvCCSuEySJJ6TEPcz5gEk2eYFMYCQECBJCPECiRdEEs9FIP5l4tkMAoFAIJ6LJElcYZ5JIJ6LEM9FIJ4/8UC2bXOFQDybeTYDALYxAEYSL5xAPIskLpPE82Ob52UAISFJACCJ/1yotQTAknhOkgDb3E8SYJv7SbIN2JYESMIYc4VBAAjMFUIAArDNCyXJNi+IQQBCxjyLADBXCBkDCCHbPJDAAAhZgDEPYFsSL5gkwDbPSRL3s839JNnmASQBtrmfJACDsM39JHE/29zPNpdJ4n5CxoBtLpPE85DE/WzznCTZ5jJJgG3uJwmwzXOSZJsHEEIAGABhG7AtSZJtXihJvGC2AUmAbe4nyTb3kwTYBmwDkngetiVxmSQus81lkrjMNg8gictsc5kk2/wnkATY5jlJAgDbPA9Jtm0LAYgrbAsBiCsk2eYySYBtIS4z5vmRZJvLJGGexdi2EIB4IEkYYyHLmCskAcYYIQAwti1JyJjLhLjMGIO4QhJgWwjAAAiEbS6TxAPY5jJJmGcStrlMyJjLjIW4TMiYyyQBxkK2AduSJNnmeUjiCmPMv8ggSRhjAzbiCoEBgyQusy1JyJjnIDDPSQiBAYx5AElcZhsAJGEAY4QQz2IDBvFM5rlJ4n62eaEk2QYADOIKSbZ5XjaSJBswAAgA8xxsSxKY50OSbZ6XEOJ+trnMtiQAwEbigWwkXijbgABJYLAtiSsMIGSZy8Rlkm0AwOYKSWDANgCShLjMGABsS5IAAbYBQMiYF50BjCVJ4jLb3E+I+xkjZPGcjDGIBxIy5gGEuMyYy4QABAYwxiAkcYUBjLlMyJgHsM2zCFkA4rlIAmzz/AgBxjyQQQBCCNs8D0kYwDYCsC2J52FbEkIW9zPmOQkhnskAxjwvgwCEAABhmwcSQgDmCsuyAMCYBxACjLmfEFeIK2xzmW0hhBBgzHMRGEASD2AbEAIQmGcSgG3AtiQukwTYxkgCjAEhwBiwDUgChBC2uZ8kwDb3E0I8kG3uJ4nnZJvnYhBCxoAkwDbPj21JgCSek23+FQgAAdjmRWEkcZkkQBIgiSvMcxBXCCFeOEmSuMy2MWCbB5DEZUKYZzEGbNsGMJhnMeYKY5v7SZKEeSaDeCBJgCQuk8QVEs+XeDbxgtjmfpIk8YKIF4VtnpMxYAxgrpDE85DECybJNv8e4tkM5pnMFUKAbf4TSAIkcT/bgCRAEi+AJC6TBAC2eU62ucw2D2CbF8o2D2DbNv8RJPE8hLhMEpcJ8QC2AWPuJ8k2L4gBhHhOkngWgXkWYy4z5lkMIAQghBCYF4l5bsKYB5DEZUIIAHGFMf9aAhAy5jLbGGOexbzoJPEvMphnkcSzGcAANs8izP0MgG3uJ4n7SZJ4ICEA8SxC/IvEA5jnYpvnYJt/iSSJK2xzP0kAgMDm+ZEkLpPEFeZZJMQVtgHb/Isknpd5Xra5nwCBeU4ChLjC5jkZAAEgns08NyGekyTuZ57JSIAQlxljAMxltrnM5gpJgBCAeW4G87yEuEwIsM0VAvFsBsAAmOfDPJsAhAAMxjaXGSMQz2SMAcwVsrjCPF/GQkJcZpsHMsbGPCdJXCEAhCQeSCAeSAiBwTwvSQDiWSQBgCTbtrlMEg9kHkhICPNMBsA8BwMY88IZALDNFea5yOIyY8DYmCsE4vkzD2QbQDybeRZJkjBX2Ob5EpgrjHkASVwmiWcRxsYIAIF4DuaZzAtknskAxlwmiSsEYMwLIAQghIy5zLZt7idJEpfZ5gWTJInLbNvmAWzb5n6SlJncz7YkQBL3s83zI2TM8xDiWQTmCmPuJwQgANvcTxJgm8tsCyEeSBKAAYx5Xgbx/BnEcxOYZ5HEA9jmuQghjDH3k8QLZpt/iSTbPIAk7meb+0nifrYB24AknsUgrpBlmQeQZJvLJHE/2zwnSYAx5oEk2eYySYBtXjAhwBgQMhYCjPnXkGSbyyTxnGwDkngA2zyAbUmAJMA2D2BbkiTbXCYJsC2JB7DN/WwDgCReBLYl8QJIsm2b5yGJB5AE2AZsS5KEMQaEEADGmOdinkk8L0lcZpvLJAHGmCuEAIRt25J4AElcYZ5J2OZ+xhghAHGFJMA29xPiAYx5ACEAYZvLhIwBQIhnEbYBQAgwBmxL4kUmicts2xZCPBdjIS4TAhC2MQghYy6TxAPY5jJJXGYbg3ggSbZ5ABuJK8QzGTCI5yVkzGWSbHOZEICwzRUGIWRsWxKXCRlzP0lgWzybuZ/AIADMcxMYBEi2uUwSALbBBiGei8C2QRKX2ZYEIAHY2EgCcz9JANjmedmAQZIkrrAB8/xJAmxzmW0ukwQAss1lkiRsAECyzfOwLS6TwBgAictsI4nLDEJcJtnmMkm2eSAhA5hnkQAwBgAMAgmbBxAyti2JBzAW4jLbkgBAyBiDeBYhrjDGiCuEELYxCEDItiTAmMsk2cY8i7EkQBJg27YQQggwxjyTeA4G8XwYAPF8SQIA29xPCDDmCoN4PoQsnpMx95OEMeZ+QgjbPJAQAmzzQAbxbAbx3IQswJjLbHOZEEIIMAaEAGPANiAJEELYxiCEjDHPJgCEEGAbwCAADAKQBNjmgYQswNi2JC6TZNu2JJ6TJMA2VxhJgGUMYFsSIIlnMc+XMQ9kEELGPIAk21xhJAEIwDb3E+J+xjw/QoAxL5gk29zPtiSeH0m2ucy2JF4ASUAACEmAJF5kxjwnSZIAYwABIP51jCRJgCQEIIkHMs9FkiQEgHgmcYUkHkBICPNMRggAhHgA2zwvg3km8xwMgAEwmOdLkiRJPIBt7idJEi+YMS+AEIC4QgjxQJJ40UgCACEhHsA2z49t2zyQwTybAIR4XuJZJEniMtu2ucw2/xq2eR62AduAJO5nWxJgm+ckiefHtm3uZ5vLJEniOUniOUmSxANIss0LYJv7SeKFEwDmgYy5zNiYZxEvhCQeQIgrhG0uMwaMeb7EswlACDAGbPNA4pkE4gURAhC2eQAhQIgXQjyLbe5nzL+VJADA2Ob5MoAQgPg3k8T9bHM/STxf4rmZZ5HE82MbwDyLMZcZCwGIywwIBMIAIBAIAPH8SEg8kMTzJZ7FNs/JABgA2wA2D2CQxItCMs9kng/zbJJ4Tra5n3kmg3gWIwEgnpN4vmSekxD3E9hcYR5IEs8inh9zhQQAyALxTLYBwBiQZJsHEOJ+kmwDgDGAsG2bBzIAQogrxDMJzBVCPCdjAPEsQjwXgQAQCABhDGCezTbmMkmSuMIACACBeCBJPBfzfMkSAjAAIEkI8UzimQzmmQyAATAYACOJ50sgACEMYBvA2EYAkiTxLAYBCEkCJHGFABCIZxPPwTyTARAYYx5IAAghHkgIAYh/gbhCkm1jwDYgiRfOPJsBbPN8iWcSL4wAjAHAtm3AtiQuk8TzMs9kHsi2ba4QiGcyz2aeRZIk2zyAJNu2eR62Adu2JQGAJJ6LwAByGmGbfxVzhTEgifsJAcZcIWQZYxAARhJgGZDF/Sxjnpck21wmCYMAbPOchHgW8Sy2ucI8BwEIGfMAkgDbAAZxhbGQEGAbQACSAGPMFZK4n23uJ8k2IMk2/3qSANvcz7YknpMQYMxlkrjMNpdJAmzz/EiyzYtAEmCby2wjhCTZ5jIhAPFcbPMsAvOikwTY5n6SANu8aCTZ5jLbkngekgDb3E8SYJvnYRuQJInLbPMAkmxzmSTANveTBNjmXyLJNs9DCMAgEM9kAGMewLYkHkCIZxG2eR5CAOJZbAO2hQDEFULGACBkzGWSuMw2L4AkALDNFQZxhW1JkrifbcC2EM+XeCBJAGCbK8xzEJJs25aEwNiWJMk2D2QQkrjMtm0hACFkDAC2JQkBCMAY8y8wiAeSZJvLbAMIIS4Tl0mYZxIAYNu2JCFjnh8hwJgHEDK2jRACZCEQl9kAkgEbIWRzP4MkLrPNA0jCBswzSeJ+xjJgEJJtHshG4gobCQCwkZCwuUySbe4nCbANAOIyyTbPSYBkGxswIIlnk8RltnkA2+IyCRDPImMeQBIPYJtnMsYAEiAk2eYySbYBDBhJYJ6DBAjAAMYYhCQewDbPZJDAPAdJtgEMApBkm+dkG5CEwDwXIR5IYABjLjOWBQgBCIRtnocsY2NJgCSMMQaBEAJs84IYxPMlhAAwxhjEcxCYZxECjLmfEGDMZZIwxjwvYywJEAKMucIgrpDEFQYwBoS4nzHPQxJgG7AtiX+JJO5njHluBvEcDOKZDELIMgZAyOIKYZv7SeIFs80VBvGvIgQYA7Yl8UIIDIABJAEIwDbPw7YkQBJgm/sJAcZcYYQQVxgDtiVxmRACAxhjnsVYEiAJsM2/hm1JXCaJB7ANIGQhArAN2LbNA9jmASQhEIAkHsC2bZ6LATDGAOKZxL/INpdJkmSbBxKYZ7FtjME8k0AY8ywCASCMjbnCCBljbNvmhTBCPA8hAMA8F9s8gCTbXGZbkiSeL/McDOb5si2J+xnbxhgbYx7INi+YJACQZBuwzRXm+ZLEc5IkxBXi2cS/wPyHkySJ50eSbQCwLYnLJPFvJUkSDyCJ5ySJF0oSL5Qk21xmm/tJAoz5NzP/LgIAhHgu5oWQxAthnsW2JF4AY54f29xPEveTxPMjxAtgmxeZkDGX2eZZxHOxzXMy5lnMs0iyDQC2uZ95HgJAPF+SuJ9tXjAh7icECPEcBALAPIvEA9k8gG2eReIBbHM/IZ7FIPFAEi+cBEjihbC5n3h+bADJAIh/HXGZuEzcz5jLjHkASdzPAAgAAQbE/YR4AIMkEPezxQOZF8I2BhsQzyaJZxGAJO5nm8ts8yxGEi+AMc/DGPPcDALxQEKIZxMYAHOFLADMCyEwgLEx9xPiCgNgjHkuRhKXCfGchHgASYAxgHkOxhjAPIskrhC2bQO2eSDzLxOAbcA2gHkWY+4niefLALZt8yziCklcIZ5NAMaYZzKIZzKIF5EkBIB4JvEskiTxAJJ4IHGFJJ4f27YBzAsiBGAwzyKJF5FAGCMQV0gChIQADAIBIIz5l0jiOUnifrZtS+IySYBtALDNFQYByGljLrMtiQewLQmQBNjmWQziBTKIZzEWAiRhnpcx97Mticsk2QZsSwIkcT/bPCchYy4TAowBIYRtnpOQbQDxQEII2wAG8UBCXGEQxrwAknhOtgHbkiQBtnlOtiUBtoUQDyQJsA3YBiQBkmwDxhghxPNlWxLPjyTANvezzWWSAEm2AUCSbS4TQhhjHkgIMOZfz7YkSbxgtrmfJMA2z48kLrPNA9iWxGWSANuAbUmSANvcTxIvgG0ukwTY5gWTBNgGbEviASTZBgBJPCfbXGYbkAQghDDGPD+SAMA2z0OIy4wBwLYkLrMtJISwjHkO5pnEMxnAWIjLjCXxAJJs8wC2JfE8bEviMtuSeABJtnkRSAJs81wMQggAjLnMtiQhYx7IIISMuUySbQDAIIQAY56TJNs8gG1AEiDJtm0ukyRkzAMJzBW2hQDAWFwm8Twk2cYgAISQbYwxIEkSBjDmMklcZpvLJNnmASSBMUgANmCeTQAgAbZ5HpJsc5kk21whyeYKYXOFJNu2JXGZuEzC5jKDAMk2ANiWBEgCbGNzhcQVNpIkbK6QbNuWxAPYlsQDSDJgcz8ZBBKAMcYgLrONJEAIjABxmW0eQAhAYJ6LMZdJsgFzPwkQgMEYG0viASTZBgAMAEaSxGW2ucy2JF44gwCEuEJcYcz9hAAMYGwbIcRlQhjLXCbEZcYAIGSMQTyTQQgZc4XAXCHJNpdJYAHGtgFJgBCAsM2/kiTbXCaJy2zzALYRQvxLJNkGMIhnkYQBjAEhYwCQBGCeg7DNAwgZc5ltSQAgCQBs8zxsS+I5SQJs8wDGQjwvIQRgnknYBoQAY56HEA8knsU2z0kSz8k2L5htSdzPWBaAACQBGMCYF0DImPsJAQAC8yzGPJCQZcxlkjDGPD+SANvcTxKX2eYySYBtwDYgCZDE/WzzvEQYJEkCJAGAJEmAJJ4f24jnJYkrxLPYxjybeA4CcYVt25IASZJsA7Z5EUgy5grz3AzigSQZIxDPJJ7NPJMAhHgWgQAQtrnMNi8ySTwPSQAgCQAkcZkQl0niBZMECAHGvGC2uUySJO5n2zYPIInnJAmQZJvnJCSJK8xzMMYAYJvLJHGFQFwhiefHmH892zyAbR7AtiRAkiReAEn8S2zzIrDN82MbsM2LQkgCJAG2AQyAeBZjnh9J/Ets8wBCAOK5CAkBAOKZDMKYF8o2LxpJPIBtwDb3k8S/nm3ANs8ijLnMNvcT4rmYZ5FkmysMQojnRxLPxQCSAEnG3E8IACTxAEKSeCCBAJlnEZfZ5n5CAAbAAEKAEM8inj8BSOJ+tnk2IfFANi+ExAPYlgRI4oFsEAAC8Txsc5kBCUDi+bHNcxIg8fwYkHjBbPM8DNjcT1whAANgHkBImPsJxAshns08F0kAmPtJAvE8jHkA25IAAPEstnkA24Btnot4DgKQxLOYZzLPTTyTEAIkSQIQmCuMeU7GQgiMEOYKY54f29zPBvEskgAhrjAPJMRzkiSJy2zb5jnZ5gFscz8hQBLPQ4j72RYCEA9kG/F8iOdgMAAG8VyEuEySbWPANg9kMEJCgCQukwQAkgBAEuIK2xgAkMQDmedm/kXGXCEQxjxfAvGvJYn72cYY81wEIMTzZYyFMM8kjLlCPJvBXCFJyJhnMS+MeSBJXGabfz8jp5FtHkgSYJvnx7YkLpPEc7LN/YSMeSCBATAIQBJgm8tsS+IySbZ5TpK4n22eh7EshBD3s42QxAMZY+4nCfNAxjyLwFwhiSuMMcZYEs9DEmAbkATY5gURmBdCkm1eAEmAbS6zLYn72ZYEALYlcZkk2wBgWxIPIMk2DyDJNs9DEoABjLmfEGDMCyYJAyCusM1zkgRgAMSz2OZ+kngA27Yl8SKTBNjm+ZEE2OZ+krjMNg8gCbAN2JbEZba5TBLPw7YkXhCBuUIIAdgGjDGSAATmgWwDkrhMEgYwxiCEEMaYK2xL4jIhY9tCQghj7ifEZcaAMUYI8Sy2eR6SJNm2LYnLbPMAkiTZti1Jkm1eAEm2uUwSVxjE87LN85CEMQZsSwIAIWMuk4R5DgKwzfMjBCBs80AG8UCSMIAxABgLSQIwxrYlCRnzQAYwlsRlsizzPISMAUDIGAMYSwIQQrZtS+IyIWMewBgDSOIySba5TLbBIAlJPJttLhOYZxMA5plsS0LCgAGBARsJCZsHkmQDgEGAbYnnRxJgmwewzWWSAAESANjmBbCNJAAEBtuSuEzImMuEjLlMkm3bQgghwJgHEOJZhG2uMM8kEEKAbR5Akm3uJwAZYwBjhBCXCXE/Y64QsgBjnodtSUIA4pkMYMwVBgEIAYhnsc1lkmzzvAzimYwkhG0MAiGL+xnblsQLZyMBkgDbPJCRBBhzhRDifrZ5kUmyzWW2uUwSDyCJB7DN/YQAY56XEAIwzyYAzHOxjHkukmxzhUEAkjDGPA/bkgBJgG0eQMgYsC0JACQBtm1LAoQQGMAYAIQAwBiDuMJYFuLZhBD3s20sBAgBiGczgDEvlCTbAAYB2JbEAwkhwDbPywBCCAAB2OYKIQsw5n6SMMY8JyHAMuaBJHE/2zw/kgDbgG1AEi8SAmHzQJK4TJIkLrPNZbYlcZkknockLpOEeCBJGMC2MQ8krpBk2zZgWxIPIInnYZsHMohnEs8knpsBhAAEAvNM5pkEAEjCPB8CQEjieQjxPCRJ4vkyV9i2zfOwDdi2zXOSxGWSJAGSeABJ3E8SAEiyDdi2DdjmfpJ4TpJscz9JPD9CPCchHkCIBzLPZJ5JIP49bPOcjG1zP0lcZts2DyBJEvezzQtlGwBs8/zY5j+QATCAJEAIsA1gJEnifpIA21xhnskAGACDucI29xMyxjybeTbxLEKAEPcT4t/NNg8giX8V8UzmXyAwz2SeRZIxDySeP/FMxjbPIp7FGMAghIS4QmCuEOK5GAADYJ4vY+4nxLOI5yIJEAIwgDFgG8A8i23+BbLNc7F5IJvnZRsEABISV9iAbZ7NALZBNs8i8SwSz2ID2AA2zyLxQkniCpvnJJ6bJO4nAMRlNmCby8xzkAQgnk0ACMQVxmCuMM/NPAfzvCTxLDbPZCHEFUKAJEk8L/H8SVwmCWMMYJ6DAYwBzAtnWwjAPJt5FiFJAObZzHMTGIwQzySukCTxPCQhcYV5Fkm8YLa5nxDi+bIticskcZltHsA2DyCJKwTiBTIvkHgOAgMYA4BtwLYkxHMwDyTEZbZ5fmxzmTGAkQQI8QCSMBgAg3huAgEgACFACPEczHMRwmBeECEAIYkHkMRzEVdIss1ltgHMFUIA5jkIwJjnyyAeSBIGEOJ5CQxgmxfMtm3uJ4kXgSTuJ0kSACgzeQBJ3M82D2AbkMRlkrifbR5AEmCbyyRxP9s8P5IA2wBgWxIgiQewzfNjG5DEA0gCbANCPCdjAIMAEBgAAyAABAaQZBvAIJ5NYAAM4oEkAbYBSYBtLpNkm2cRmOdiWwghZMxzsi0JkMRltvlXkgTY5vmRxPOwzQNI4rmYK4wBBIC5QpJtHsC2JCHuZwxIAmwDtiUJAZYBIe5nm+ciMA8kyTYGcYUk21xmWxKXSeIy21xmWxIASAJsA5K4zDaX2ZbEZZIA2zwn2zyAJJ6HJNu8ALaFAMQVQsYYxBWSbHOZJNsABkAIARjEMxmEZYxtSQAgBBgDGIQQzyIAYyHuZxvACCEQtvkPJYnLbPM8bEuSZJvLJHGFMeZ+knhOxrIAYx5IYK6QhLnCMuYKSVxm2zZCCJBkm/sZY4QABALzHAxCkm0M4pkM4gohY9uSeKEkcZltDEISVxjAmGcxxpJ4XgZxhW2eTRLPweYKiftJ4n62AWxAEhJX2IB5DgKDbQkhHsA8B0nYgAEQAOaZBOaZJGEDBtuSeF42EveTBNi2LUkSYBuwLUkSNmAAYwySEJgHEgIQtrlCCAG2MYgXxLYkLrMtCRACjHnBBAYhwJgHErIAAGGMAYSMMQhJYIx5bkKAZUAWYNsYIQRgJPFAwjb3EwKMuUzIGACEjDEIIZ5F2OYySba5nxACAzb3k2TzTAJzP4NtIQDxQJJ4ANtcZluSJMA295Nk21gIACTZBmxL4n62JQGSANsAIAnzTMI2AAgZcz9JgG0MQsiYBxIABsA8m3gWIR7AGBBCXGGb5yFkzGW2hXgWIYR4FtsAgEE8k5AFGAMIQBb3M+ZfQwgw5gqBwSCEELZ5ACFjACGLK4RtXighYwzi2QziBZHE/WxzhUEIGXM/SYBtLrMtCZBkmxdAkm2ek21JPCdJ3M82z0TY5jJJknjBJEkCEJJ4HrZtA7Zt8/xI4gWTJAmQxPOwDdi2DQCSJAGSJPEAkngu4nkZ2wYwz4cBANtCQtzPNoAR4grzfIjnZVsSl0kSQlwhJARIQjwXSUKAJB7ANi+AJO4niechiechicts2+Yy2zyAJJ6XQBhzhcG8ILYlAQjECyKE+bcRkoR5IEm2ucy2JC6TBAC2Adu2JXGZJJ6HbcC2bUmAJEm8CCTxPCQBknggIYn7GQPGPIt5FknGPIAkAPECiWcTVwjxLzEW4oEEgPiPIkkSz8M2z8M2V5hnM8/BvCBCACDEAwgJcYV5LkLczzaXCQGSbB5ICDDmXyIEYADb3E8S97PN/SRxP9u8iMRzsc39JPGvYgPiASSeiwQg8S8Rl9kACEDiOZkHkHghbJ6LDZhnss1lAgE2L5htwDaX2UYCxHMykngWYwxgEM+HeEFs84IJ8UKJZ5LEAxkEgAAwz2ausI25zICxbQCEQDwvIUAIASCezSBeVOYKYwSAeCDbkgBAiCsEiGexkbjM4n7mCvFMBjDmMts8myXxALZtcz9JXCZk2zYPIAmQBACSeH6MeRYjCXGFEM9LAMZcZts2gMEAmGcTz2Zs87zEC2NsC3GZJC4T4jnZBiQBAMK2bQCDeG7imcQDSeJZzDOZ5yaezQAIwNg2YNs2lxljAAzi2cTzZds2YAwgnoN4LpK4TBLPw7YxYCzEAxlJXCaJy2xzP0k8gCTb3E+SJEASl0niX4AykweQxP1s8/xIwhhzhcC8EJJs8yxCCLANYBDPIsk295ME2OYBbEsCJAG2uZ8kwDb3kwQYY64QAox5fmwDkrifsRAgZIwxlsQDCPEsAmMMSOJ+trmfJC6zDSBkcT/LmCuEEM/FNpdJAmzz/EjiOdnmBZMEALa5TBKX2eYBJNnmMkm2eUEE5jkYY0ASACAwVwgBCMA2YFsIQEgCMIAxIInLbPMAtiUBgBDPIgDbgG1JXCaJy2zzPCTxnGzzL5EEALa5zDYgiftJss0DSOIy29xPkjHGtiQAwCCEeBZhmysMQpJtABACEJhnErYxiAeSZBuDkIR5JmGby4QAY+4niSuMMSCJB7DNZZJs8wJI4nnY5gWQZJvnYVuSJNtcJsvYWJIkjDHPjyTbtiUJGWMQz2QQQgAGYVnINvcTApBtrpBkmxdAkm0uk2Qbg3ggSbZ5ANuSAEmAbcAYEJIEYJ7FGJCEeRZjAGMsicskcZltAJBkm2eyDUhCkm0uE5fZlrhMkm3uJ57NPJvAkngAGzAPJIRswGAbACRxmSQuMwACABswz8lGAgDbACBJEjZgsC0JCZsXwLYkAIEBZAzGkgBJgG3uJ2QsiWcxgDEGIcm2bUlcYZ5JSLLNZZJsYxCSbNvmMkmSuMJcYVkIsM0LYFsIQDyLADDY5jJJPJMkANsABkBcIWQMABgEIMSzCMA2DyAJAxjznIQAY2MhQBJgm/sJAcbYSIAkABswYAMgrhDPZBsESNxPgAABtnkekgDANi+AJC6zzf0kAbZ5ACFjHsgghBCAbV4ExrIQQgCAsG0sC/FAQoAx95PE/WxzPyGEba4wzySeRRIGAdjmeQkhAAMYc4WQxbMIwDbPjyTuZ9u2JF4AY1kAgHg2IYQBEMYYQJJt/vUkAba5nyTANlcYxHMRAhCAbV4oSQBgm/tJss0DSOI52eYy25KA4AWTxHMRkjAABgNgJPGcbNvmMttcZgxgrhAS4jJjY8C2JC6TxPMjiX8t8xwE4pkEIARgnpvBGAPGAEISL4h4JoF44WxzhXn+xAshiX8lSVwmicts2+YBbPOcbPMAkmxzP9uAbS6zzRVCkhDimQwGEJLEZZIwzyYQz8UY8S8QgBCAAWwDAOKZxPMlicts828iifvZ5gFsc5ltnpMkQIjnRxL3sy3EcxFCPIuwzRUGIWSbBxLPJoy5wgjJAoRs87zE82deIIPBPC9J/GtI4gEk8ULZ5jLbXGGeSQCYZzLPZp6bATD/ImMAAYhnERIgCZDE8yWeRRLPjySeH9uAbUASIMRzEVcI8QIYcz9J3E8SgAAk8UwCwFwmiQeSsLnM/EtsABDPh3ggY5B4TrZ5ISRAPJttHkASDyTxb2AAzL+deW4GEOKBDAKQxAPY5jnZ5gpxhRBXCECSJC4zBowBY+4nSQJxhSQus80zmReBMYB5IWxzmW0EIMSzmGczsnjhzBXiOdkACBAChIQAJHGZzRU2gLnMEs9FEg9knpckXmTGXGYbAIwBY140kgAhxPMSQjw3gXhBJHGZEFeIKyRxmW0eSLww5jkYDID5VzHmfpK4TBLiuQgZGyOeg8E8k8FcYVsSz48kSZL4VxHPJAAhrjCY52XbNgBIksT9bPM8bHM/SZJ4AWzzTFQhY56TbQCQZJv7CfEsAvNMRhKX2QYk2eYBbAshAAzCmPsJ2bYsZFsSYJvnIck2ANjmOdmWxAtgW5IxRsgYwADGGACBeTYhC4MAEJjnQzwHIQsw5l/FIGQhrjDGPC9JtgFAEv8S29xPEveTxAtlmweQxPMjCbAtictkcZmQMYB4JnOFJJ6LeS6SjI2FAMAYkMRltrmfMQYhxAMYAxhJ3E8SIAmwzf1sS+IySYBtSbZ5fiQBkmxzmW1JPIBtSTyAJK4QQrZ5ANs8J9uAJEDIGGOZyyTxLAYQ4n62JSFsc4XAPJMAAMuAMQAgnkkYY54/8UzGmMskARiEMeYK25JsS5Jk27YkSbZ5HrYBSYAk29xPEgAYSwJscz9JXCEwtoWMASEAgQEQVwhZ5gGEANuIBzIWAoy5TAgwxgAGbATmCts8DyEus20MSLINAJaFJHE/29xPkm0hxBW2AUm2MYhnEgACAwjZBjCAEGAsBACSAMA2z2KMhSTZts0D2OYKyTY2EpfJNtiWBBiwkSRh25YkALB5IAkABLZtS0IGIWFL4n62JdkGkMRlNmCemyRsQJJtgyQus839JAGyDdhIAoNtSVwmCZBk27YkEFgIkMTzI8RltrlMCHGFbUASgAGEEM9mANsAgHgWSTyAbR7ICHE/25IAjBAgxGXGQoBtQBICGxCXSTyLuZ9BQsZcZhsBCCEAIWMMAhDiMts8F2GbZxHPJmwLcZltwLYkwBgDSDIYsLlMgMQzyYAxloQxSBKY+0nmMhshJGGby4Rs80ACkGSbyyTZ5jJJPA9JgG2ekyTbgCSek21JXGZbEiCJ50v8G9jmASQZ2wYwkhAYAAHIsi2J+9kGJHGZbR7ANiAEIJ6LMYB5LkKIZxGyzXMxkowxAOIKSQCAwLwoJAG2eU62AUkAYJsrBAbxvIQQmOdDPC9J/CvZBiTZBiQBtiXxAJJ4JsJGXCYk8ZxsS+K5CIQQAoMBMFcISQIk2QYA20IARhaAeSZxhSSMbcC2be4nCQAkAZIAwDbPwzYvmDGXGQPGPBfzLEI8JyHEcxMYDOa5Gcy/jgEwD2Sby2xzmW3+c0jiMkm2uZ8kSVwmSRLPQxIgJMSzmGeRBCCeg0AAQlxmjAGEACFeANtcZgxgJPEAkmzzAkjiOdkGbPMAknhOkiTxnCQBkngekrifbV4Q8S8SMsYAtnkAIZ4vARjzAkjiASTxXMwDSeJZBCBkG/McBIABANuAbcA2l0niMkn8G5grjHkekjAAwhgw5lnEswjxLAIQAgAEAEjiAYx5AWwDmBeFMea52OaFEP924oUQ4jnZBjAvCvMcxGU2LyKbF4mReE62eb5swBjMA4jnzzb3E5fZADYACGxzP0k8JyGeL/OCGAvxnIR4LgJxhW3uJ0kSDyQkAYBtnou5wrYQ4nnINpgXTiBxhbmfhXh+JHGFeC6SJAGSJPGikWQbsM1zEeaZbBsDBiEAEIC5zDYABgzimcQDGAAsCRACMM/LtiT+9Wzb5lmEJACBeL4k8e8gSRIASJLE82Mb89wEQggAhHgBbPN8iecmnj/zLxISAjAAwtg2l0kCAAziCiEus4x4Xra5n5Ak2wBgm+diEM/LNg9knskgnkkAGMS/h20eQBLPS1yGMi1s/q0MIAlAAMaYF0TINuK5SLLNCyAJsM1lkgDbgG1JvGhsSwIwAOKBbHM/SYAk2xgAAUgCbAO2JUnifrYBIe5njLEsxGW2JUmyzQMIAcYYxDMJzL9IEmCb50cSYJv7SeIBbAOAJNtcJsk2L5Qk27wAshDPQQC2uZ8QVwjANgYhxLMI2zyAJMA297PNZUIIQBL3s81zksRltnkA24Ak7ieJ+9nm+ZFkm8sk2QYASYBtwLYkHkCSbZ6HEGAZ87wkYYy5zDYgSZJtABDifpYxGMTzYRAPZCwkicts8zyEeABjnock2zyAbUk8D9uSuEwSYJv7SeIy21wmCWPM/SRhAGPbkiRxP9uAsRAA2JYkCWPMcxIy5goDGEsSAixjnpckwDbPj21JPIBtSZIwxjw/tiUJGXOZJC6zzWVCxgBgWxIPIIn7GQNCgG3uJ2QMYADEFZJs85yEAGMusy2JK2wkHkASNmCeSZJtHshGAgCBARsJBOb5EQKMuUySbZ6TAAkbMM9BEjZg7mcjSbLNA0iyjY0knskA2AYkSTLGPBdJtgFAkm3uJ4TAAMa2JQGSANtcJgkDGGMQkgDANlcYhCQeyDyTsM1zEgKMuULIAmwDCCFjHkCSbS6TzRUSAELGwhiDQQBCkm0uk4QBm+cmBBjbliQEGAOSbGMQQohnsc2LQsLmCoNAEs9mm8sk2QYAJAFgm8tsS+J5GQABIDDGQoAk7mfbtiSekyTANs9Dkm3uJ8QVwjbPjxAAIGzz/EgCbNuWxAtgjJEE2JbEFQYBSAJsc5mQMfcTAhCAba4wCCFj7ifEFeKBbNuWxLMYhBDPIgDbPJCRBBjzPCQBGARgm/tJ4vmxzf0kAbZ5HrYlAZJ4fmxzPyHbQogrLGOeSWAeSBJgm/tJ4n62AduSeABJPCfbXCbJNhAC8xxs85xs8wC2eSHMcxDPIskYgcE8iyReAEmSeE62AUmAJJ6HJEk8J9uSuEJcIUkSL4BtwNiY5yGJF0IgAIQQ95ME2OYy21whEADCtm0AI4n/UJJ4ANvczzb3s80LYJv7SeJ+xraNAQwCQDw38UwCMAYwtgHEcxCAJF4A27a5nzHPjySeh23uJ4nnIYkHkCSJ+9nm+ZHE82Ob+0myzfMyVwhJ4jlJ4jIhSYAkLrPN8xKyuMII8UDmudgW4vmRhHj+zBVCACBkzAsgifvZBmzzr2Uwz828IEK8UMY8P8YA5tnEv5kknot4ICEhnsW8iGwDtvnXEOJ+xgDmCtuSeH6EuELYBrABgQAJQAKQuJ8kQBLPYgPYvGC2uZ8Qz8MgiedL4vmSeBYbEGAjcT9JPIABiedhjHlextzPWBLPIp7NPJN4PsS/i0E8X0IA4nkZxLNJ4llscz9zhS0AcZmMucy2JJ7NAJgrjJAkrjDPYgwAxkJcZswDSOIFEc9BPJMAMM9J3E/imcwD2eaFEIAkIV4wSbZtc5kkSTyAbdsAIMSzCMSzGUk8i0A8k7ENYP5Fkmzb5gFsA8YYSVwmyTYvlDFXGMzzYQAhQBIASAIAY8xzkcRlQgDiX2aeTTyTeBbbAALz/JlnMw8kCcAISeIBbPOcjLnMmOdHEgJAIDDPZgDbxjyAJF4wSTw/tnketiUBsm0bsC2J+0myDdiWxHMy5jJZCCFjQJJt7idkDEgCbAOAbUASIMk2AEgCbAO2JQGAJMA2LxpJtrnMNpdJ4vmRZBuwLYl/ByEeSNjmBbMticskAba5zDYgicsk8YLZ5l8iictsc5kkwDYvMtuAJACQBNgGbHOZJC4TAoy5nyTANvcTAox5TkJcZgxIsg3YliQJsM3zMAaEhIwBQJJt/vUkAbZ5Hra5TBKX2ZYkyTYASAJs85wkAbZ5FoGxLUnImAewLYnLJAHGmOcgMFdIss0DyEIAxlwmxGXGPICxkCTbPIAkrjDPJGxjEFdIwlxhzLMIzBWSuMw2z0MSYBuwLYkHsC1JEsYYAyCEjDEAApCEucIYsC2J58sYI4QADOKZDOIKIcCY+0myzWWSANs8J0m2AUASBjC2LQkAJHGFwVjmAYSMMQhJGGOeiwGMAUCSJC6zzWVCAOKZzDMJ27YBBAaQxPMQGDAIgQEbMIjLJCTZgHmBJNm2LUlgwEbiASTZxgAIQBIGc4WxsSRACPFMNmDuJ2EDgCQADAJs2xaXSYAk7mebB5IEgG3b4jKJB5BkG4MQMrYtiRfEAIgrJNkWQjyQbR5AEpfZxiAeSBLmWYz5lwgBtgEEkmwwCDDPTTyLAMCYB7AtCZDEs9iAAfNMQojLjLnCAIhnEeIyy4AQYJsHkARgnkk8mwGMuZ8Q2BK2JMA2l0niAWwDtgEh7mcMSAIASQDGmOchyTbPjyTANgDYlgRI4jnZxiCukMRltrmfEGDMAwnMs0iyzb/IICTZBmwDkgAhAAHY5rkYhBBgzHMSMuZ5CAGWAVmAMfcT4vmxDAgBtrmfEIAAMMaAbUncTxJg21gIkMTzY5vnIjBX2JYEYBDPJGRxP2OekxBgDACSbPOvIYn72eZ+krifbUAS97PN/SQBgblCEs+PJC6TJAQAQlwhAGMAsC2JyyQZA4Bt21xmmwewzQtgmxfANpfZ5nnYBmzb5jJJvAC2uUwSIAkBCAnxAJJ4HrZtAwACcYUxBvEskrifsW1JACCJK8QVkgDbvAC2eQEkSZLE87DNv4MkSYAkSTwPSYAkSTyLeYEE4pkM5oGMAcA2LxohLjPmXyJJEs/Dtm3ANi+UJC6zLYnnRxIPIIkrxBWSMIAkwJgHMAZs80DmgSRxP0m2AcAYwCAAY14ASTyAbR5AEs9FPBdJPJBAPJMBEEIA5kVkm/vZRjyTABCALGPMswgBgDEPYJvnSwBCgBDPjySexfyLbHM/SQAC80wGsM0DmWcyzyKJF0pIFv8i829mDADmOYhnM8+feTbbPD/iMpv7SeJZBIB4JvEcDAjABoMRL4htnoswLwIBBsA8gIwQCEAAQghZPIt5vmwDCEAS4gUSL4Rtnot4JgEAtnlOxrwg5jJh8wKY+wkEgHkWiedDAgSIZzHmMiGeRTyQMS+cADBXGPO8DAZzPwGI52KbfyVJAObZhCTuZ1sSL5gkXgjzTMK2bcA2z0sgHkiSkCQAkGSb5yUQz0EAmOdDIJ6LEAaDeDaDuUJIyBiwDQC2eRbxQEIAAvGikMQDGHOZMWAbsI15LkK8CGzb5goD2LYtCRBCYDAvnJAQBoO5wjYPIInnZJvLbPMAtnkASfzroEyDuZ8k2zwPSdzPGGMMCHE/25IAIQRgGzAW4jLbkngBJAG2AduSAEAS97PNfxzbknhBDEIIcYVt7ifJNg8kMFcI8VwEYJvnJInnZBuwLYnLJAG2uZ8kwDbPSZJtHsC2JEmAbcC2JEnczzbPybYkSbZ5ASQBtnkhDOJ52ZYEIADMFUKAMYABEIAk2wAgCbDNA0gCbPNCSbINAJIAwDaXSbIN2AYk8QC2uZ8kwDb3k8RzkmSbyyTZ5gEk2eZ5SLJtWxIPYFsSD2BbEpdJss0LIGTM8zKI52AQkmxjEJJsc5mQMQ9gWxIPIAQgbPMCSOIy21wmyTbPw7YQACAAIYQxBoN4QYQAhG3bXCZJkm3bkiTZ5gFkIRAYwJgXyrYknosBEM+HASwLAYAkwDaAeSYhZMwVBnGFEIDAPIsxL4BtIUmAZcwVQgBgzPOQZBswxkgCgY1lACSBwTYASOIKG4kXmcA8kyTbXCZkzGWSbGMAIctcYSQBCAwCsM1lkmzblgRI4n62Mc8kEEKAbQCwLUkSD2Cby8RlFgJhmyvMM4krhIwxCCFjDOIKSZhnE4Bt7icJsG1bEpdJss0D2JbEZZK4zDYGQAAIDAYwlsQVBiEEIGyDMQASl0nC5grJNpdJss1zMIgXQMjYWBaAACQBtrlMkm3bkhBCAAZAALZtSwIkARgMAjDmCoEBMMZCgCQAGWSbF0CSbcC2AIkrjDEgiQcyCCEEYJvnIcm2bUmAJO5nm/tJwiAADMI2LzqDeCBJgG3AtiRACIF5JmGMAYSMeQDbkgAEBgAkARhjDAJAYAAM4lkkGWOelyTuZxuDEEIAtnl+JAG2uUwSD2Cb52FbEiAJsM39JAG2edHYlsT9hIwxiGcyiBfGGEvieUgCbHM/24AkHkAS97PNc5IE2OZ+krifbSAAiSsk2QZs8wCSeCADYDDPxTZgzAMZAGNbEpdJ4jlJ4gEk8a8hiReZJO5nmwcw5jLbPIu5QogHEs8iCfMcxPMhXkSS+FeSZBuwzWW2JfGcJPEvkcQDSOIy27b5lxgDGElCPD+2AYwQ4vky5l9iG7DNA0hCPAchhHnhJAGSANu8yGzb5n6SbPM8bPP82Ob5EeJ+tnlOtnkekhDPIokXRDwHAwhxPyFjXgBjwJjnIp6DAADbPIBtnh9JknheBgNgHkhIElcY2zyL+BdJ4lnMswljLrPNZUKSuJ9twDaXSZIEIAAMYMxzMhbiMkk8P0I8F/Ns4rkIAZK4nzFgG0AACMxzEADiuQlAEiAEAOKZzAtiMOZfyyAAJPECGHM/YyGel3ggSfwrCABzmW0QLyKby2zznCTxnIQQzyT+VWxzmbEknpNtni8BIAAhxLMIcT9jxP1knk0SD2RzP9uSuJ+NDYDE82dAyNiYBxIPJAnAPJNA/NsY89zEc5IkifvZBgwCQCAuE1fY5lmMMWDMZZK4n20usw1I4l9izBUC87xs2+YBjHkWAxjbBmzbBmwDGAyAeTaDucKY5ySJK8xzMQYQgCQhrhAPZFuI5yEJwGCeSQDG/GvY5gWQJAmQxANI4vmxbZvLJPEAkrhMEg9gDCBsc5kxBhAS4nkYcz8hAIMBbNvmASRJ4l9im38FlGnJAMY8m21JgCTuZ5srjLEkXgBJgG3AtiTAtiRAkm0eQJJtnockwDb3k8RltrlMEvezzf0k2QYk2eZ+kmzzojAA4rkIAcbcTxJgm/tJAjCAMc9LCAG2uZ8kwDb3kwTY5jlJAmxzP0mAbS6zDUjiMkm2eQBJ3M82z48k7mcbsC2JB5DE/YwxgG1AkhCAsI1BXGFbEs8iZHE/yxjbgCTuJ4n72QZsSwIASTwn24BtSVwmhLjCGHOFJMA297Mticsk2bbN8yOJF41tSTyAbe4niechCbBtWxIPYBsAJPEAkngA2zwP2zwPSULGACAEGHOFARDPZBDPZIwBSbwIJHGZbS6TZNu2JEkAYJsrDELIGIMQMgYASQBgG/NMQpJtLrMtCQAQGAwCQAjZti1JCEAAxpgHkmSb52FbkiTbXCZkbBshBEiyDRhjJEkCbEsCbGMAxAMZYyQBgCTMFZYxL5BBXCEJsM39JAG2JQG2MQhJtnkA25Ik2QawDZIE5pmMhXgekrjCAMZcJsm2bUlIYMyz2JYkybZtSTwnIQTmfrZ4JiMJsM1zksRlxrIAYwwCJEDYBgDbkrhMEsZYCAEAtjEISbZ5ANuSeAAhY64wiOdgEEIIwLZtSTwP25J40QgBxlwmyTYviAAwAAYwlsQVkmzuZ7CReCAbMCCJy2xzmQSIZzGIZxKyuEJcYdtYiAcSQoBtLpNkm/sJAca2JXE/24AkQAgw5gEkcZltDELIGMCAkQTmX0GSbcC2JF4oSTwn2wCAEOJ+tnkBbEviBTEA4gohwBgQAoxtS0JgjIV4ERgLAUII28ZCAICxLAQIIZ7FNlcIIcA295ME2DYW4jkJAcbcTxIGQNjmRSOJ+9nmOUniAWzznGxL4n62JfEsRpIxYFsSgMAAtiUBQhhjBIDA/IskcT/bXGZbEiDJNi8Mwf2MeQBJvAC2jSUBkoQQL4QkLpMEAMY8gCTb/GvY5oWSZJvLbEviMkm2uZ8kSbxw5gpjAIN5UQnE82f+U0mSBACSbAO2bfNCSeIySTwPSbxgQlwmiWcRGAAhxPNlnoN5Ftu2+fexzRXi2cwLYlsSl0myzYtAEg8gSRKX2bYtiQewzQPYts1zss1lkrhMEs/JNi+AbZ6HbV4AY56XABDPQTyQEMKY5ySJf4kknh9JPF8GEAIQz2SeTQgZA4BtrhCSACEAA2Cem3i+JNnmASTxAMY8DyFAEiAJEOIBJAGAEA8gJAkQ4n6S+DcQ/2a2uZ94FnGZeG4S/yJJPBfzLLZ5fiTxohD/IiHEMwkMmMskcT/bPIAQGPNcjCXxnGzzorHNFeJZJPH8SMI8izH3k8SzmH8VSUIYAPMstrnCRgJASICEbZ4PcT/xLOJZzLOJK4wBzHMwz8H8CwQCQGBeGPMsknheQogHMAgBiBdEEs9DEiBJEmCbfxXzTAZAvCCSuEyIBxCSBSCuEAIQiGcSgCQAAwgBgBDPIq6QxGXGGAwGwABCmGcztgFjni/z3MSzCHGZJJ6LeCYBIBAA4nnZ5t/BNmDbtm0A81wkAZIQgCTbgDH3E5IESOJZBAJAPBdJ/EskcZkkLrPNvwBlWjJgAwbxnCRxP9s8P5J4fmzzLALzLLYlAZIA2zw/kgDb3E8SYJv7SeL5sQ3YlgQAkgDbgG1JPA9JAAYwBgBjjCQAEAKMMQhAEmCb+0kCMIAxz48kwDb3kwTY5n6SbPMAkgDbgCSeH9vcTxJgmxdAkm3uJ4nLbPMCSLLNA0jifrZ5FoG5Qggw5n6SbHOZEPczBmxL4gEkcT/b3E8SYJvnIjAPJMk2L5RtQBKXSbIN2JbEA9gGJAGAJMA2AEgCANs8gCTbtnkWIcQLZVuSJMA2YBuQxP0kAbYBIYRtwLYkSbZ5ANuSeCCBsS1JEoBBALYBQJJtLhMyxiCexRgjCQAkAYBtnock2zyAJMA2z0mSbdtCAEIS5vkwCMuY5yUEAMY8D0mAbUAIAdjmMiFjAJAEALZtSwIA25Ik2eYySbZ5HpIA29xPyBgAJAGAbS6ThDEGhABj7mdbEg8gBCBsc5kknpcBjAEAgbnCNpdJ4gobMIjLJEm2jYWQBIBt7ieEjAU2z4eQsW0AkMTzIwnAPIsxl0nCPJsAbHOZJC6zzWWSbAMABgAkGQshbPP8CBlLAmzzPCTZ5jLbXCYJgbENSAJsS+J5CBnblsQVBiHJNpcJGQMABiEJsM0DCCFs8wC2JUmyzWWSuMy2bUlCxjwnSdzPNmCb5yVkAYgHEjLmMiFjABACMJYBSYBtHsggEJgrJNnmgYQQYJvnYgAEAgNgEICQMfcTAoy5TMgYwACIK4S4QjwX27Yl8ZwkAbZ5fiTxnGzzQEIWYAwAkmxjEJJscz9J3M82BpAEIIwxVwghAMA2D2QQgBDPIp7FNmAbkAQIAcYABvG8JHE/2zwnSdzPNs9JEoB5PsSzGQRgm8tsA5J4oSRxmW0ukwTY5t/MIJ6LJNvcTwgw5n6SeE62uZ8kwDb3kwTY5nlIss1zsi0peA4CAEn8RxOSBAC2eQEk8R/NNs+Pbe5nm+chhACEJAGShHgW8a8iSYh/Dds8gCT+TSTxnGzbBmzzPGzznGzb5n6SeL7Ms0jCvEDiOQjEsxkEgLhCEgDY5oWyzWVCiGeRZJvLbPNC2bYN2AYASQAgiQewbRuwzb9Ekm2ekxCXSeL5sS2JF0oSDySelyReMEmY5yYAzBWSjAEMxhjzTEISIATY5kVgmweQxPMjifsZ8zwsI/5l5lkk8ZwkcZkkBAIw5lmEJB7ANlcYAIN4JgFI4n62uZ8k/lXEcxOAJF4I8a8jAEk8J/NsBsA8FwFgrpB4NmMQIC4z5n5CAOaFkMR/EvNs5pkM4l8mrhDCXGFbEi+YJJ6TEM9ijDHPIoQQ4jlJAgAEgLHN/YS4nyTuZ5vLbEvieUgCjIV4IAGYF4EBACEA8Vwk8QDGmH+BEJLF/WzzgogrhHgAIVlcIQAhAPOCGAsJcZltLrPNCybJNmDbNi+UJEk8gG1AEs+XucK2EALAvDACYYwAMAAGA2AAQJIkrjDPJq6wzAsnEM8kAMS/yLYxLzrxTMKYy2zzLAIDSOIySZIASZIkcZkknodt/lWEJEmIK4y5zDYCQDyQbUk8i3hBbHOZJP4lkvhXQJkpCbDN/SRxP9uAJMA2AEiyzXOSxP1sA5K4n22eH0k8J9vcTxLPyTYgifvZ5jlJAmwDtiUBgCTANi+YJB7IAMY8F4F5FkmAbe4nhLANCAEI2zyAJJ4f2zw/knhOtnlOkgDb3E+SbS6TBNgGANuAJB5AEmCbF0wSYJvnRxL3s839JGGeSTx/xhiDeBZJgG0AkMTzYxuwLYR4FknczzZgG0AIcZltSZJs2wYk8fxIss0LJck2DyCJy2xzmW1JXGEQz0uSbduSuEwSl9nmASQBtgFJ3M8295Nkm8sk2QYASdzPNveTxP2MMQ9kW5KQMfcTAox5oSTZ5kUmyTaX2ZbEZULGGIQkrjDGgCQewLZtIUmAZczzkgTYBiRxmW0eQBJgLMuY50cSl9nmeUiyzfOQhMFY5jJJ3M+2EAZhDEjiMtvGQpJs25Ykicts8wCSbHOZJAwG8SzGPC+DeD4kbC6TBIBtrhACwEiAbQyAAGQhAGMusy2J5yWEANuAEMI2D2QQDySJB7DN8xDiOVkW4n62uUIIAba5TBIGMOYySVxmGwAwCEm2uUySbS6ThAGMAQCDeCaBeSDbkngAWQjAGIN4JiELMOYy24AQAhACjAFAkm3bkhBCPIt5FmOexQDGgCQAwDyTuEISBjDmMkm2AQCDAIQAY0AIAWCMMYgrbEtCYGxLAiQBtrlMEpfZ5n5CgLGxkCQMYMz9hBC2bUtCyDLmeQgBCMA2L4BtSYAk7mfbtiRAkm0eQBJgGwBsSwKEAGPbkgAhwJjnRxJgm/tJAmxzPyEAAdjmOQkBCAADGPOCSQJscz9JPJCxjBECjDHGkni+DAKQBNjmgYQs7mfM/SRxP9tcJgmwDUjiMtu2JQGSbPMAkgDb3E+SbUAIAdjmMiFjnh8hhG3uJ4R4INvcTwgBALZ5TpJ4Tra5nyQewDbPH8G/iW1J/AexzQtmmxeBbds8D0lcJokXkXkmAwCyuMzYGMA8L0k8kEE8k7DNZbZ5IPMstnkASZL4l9i2zQtgm+ckCQAkAbZ5HpK4TJIknh9JkrjMtm1edOY5GAxgzPOwzb+K+JcJDADYlsQLIAkAbAO2+ZfY5jLbPIBtwLZtSVwmBGAAY+4nyTYPIIn7SeJfQ5JtHkASLzrzLEIYSVwmifvZ5lnEs9jmfpJ4AEk8gG0uk8RlkrifbUlcJmSMeVHY5goBIDD/MnOFJP5NbPM8JPEAkiQBCMwzmeclxBXmX0US/yLz/IkXRuJ+4lnEAwkAzLOI5yKJ+9nmRSOJ+9nmedjmgcRzEeJ5CPGisY14/sQziWcSzyYAxAshSYgrDGDMczHGACCEwDyTeSBjQAgQ4lnMFbZ5wYx5LuZ5CSEAwDaXGSMeyLYkni/zbAbAALYB27wIbPO8BAIQAmwjHkgI8RyMMS+IeCDbtnlOknh+JHGZbcC2bZ6HbZ5FXCGJKwTiX008B/F8CQHGPA9j27zozHMQz2QASYAkSTyALJ4f27YBDOLZDOaFs81ltrmfJC6zzQslyTYAGPOcjCXxQAIQAjAIxLOZB5LEFeJ52bbNv5JtwLZt2zwHlGkJwDb3k8TzY5v7SQJs8/xIAmwDkgDb3E8Sz8k295PEc7LN/STxnGzzL5Fkm8sk8Txs8zyEjDHPQTwfAgMgZPFAwhhzhW1JvACSeADbXCYJgwBs84JJAmzz/EjifrZ5TpIA2zw/kmxzmSQus83zkMQD2Oa5CCHbPJDAvCgkcT/bgCTANveTZBsAJGGuMAYwz2IMSOL5kQTY5vmRxAPY5jJJtgHbgCRJgG2ehxBgbFsSlwkZ8wCSbPMCSOIFsM0D2JYkyTYASOJ+tnnBbAtxmWUhHsC2kCSeRdgGbAOSJNkGAEk8gG0eQBKX2QYA2wAgSRIGMOZ5SOI52QaMhSQBgG0uk2SbB5AE2OZ+kmxzmSSel3kgYyFj7icJAGzzAJJsc5kkDGDMZUIA4grbGIQQgABsAxjEA0myzQtgWxJXmOcgrpCEAYwxiCsk8QC2sZG4TJJtHkgIGcviCoEBjBFCgG0eQJJt25KEeABjLpNk2zYghJBkm8skcZkxIAsw5jJJtnl+hADLGEk8J9vcT8hYCGGb+wkhMIAxlwlxmTGXScIAxjwPSbZtI4S4n21AEpcJIWwDGGNJCFmAsW0ukyQEIDCAMS+YJAADGGOeSQgZY4wBSZIwgDEGcYWQMVcYBCAJsM0VQhb3M+YKg3gg25J4EQgZYxCAJMA2DyQwL4gk29xPEvezDQCSbPOcJAG2uZ8kwDb/EkmAbZ6HJNs8i8A8F9uSAEk8FwMY8wLYlgRI4n62ucIAiGcRAhAPZJv7SQJscz9JgG0Ag3gWSbYBDELINgKQBNgGbEviMkkABjDm+ZEE2AYA25IASbZ5TrYlAZJ4fmxzP0mAbe4niQewDWAQAALzwkkCMAgAsM1zkgTY5vmRxP1scz/bgCQAkBT8a0jiBZDEv55tXjDb/JvY5n6SJNnmBbPN82OMMTbmCgEgEM8iCfNMBoF4NoMBbNuWxIvGNg8knpcknh9JkrifbR7ANs9DEg9gm8tsc5ltnpNtnpfAYK6wzfMyz2KbK8x/FEk8i8A8m7hCiAewbZv/OJIASfxLjHlOkox5AEm2eR62eaFs8/zY5t/EGDDGPJBtAPFcJAGSeAFs8yKwzXMRgBD3s83zMOa5mOdmJPGvYjDPZp6DeSbxbAawzQNIMuaBxItKPDcDYAAhYy6zzXOyzfNjzP0k8SwGsM1zMAAGANtcZlsS/z6SAACBeW7muQgBQgDiXySJ+9kGjPlXEYjnwzw3c4Uxz0u8ILa5TAiQxP0kAUI8kDHmWcQVkrifMYBBPAchiedLPJO4QogrxLMYI56LEM9i/lVs8yzimQQGIwQgJPG8DIAx5nnYtg1grrDNc5IESOJZDOa52JbEv4Zt21wmiRdOPIttHsg8F9u8AMa8AMb8iwwgiedlnsk8B/HCGMQD2RYCEELGiOclicskcZkxDyCJF8A297PNc7LN82Obfz3bPBfzohLPIol/iSReNLZtA7aVaQnANi8aSYBtQBL3s839JHE/2zw/kgDbPD+SANs8J0nczzYgifvZ5jLbgCRAkm3uJwmwzQtmWwhAPJAQzyKeyRhzP0m2ucIgnsW2JO5nWxICc4Uk7meb+wkBCMA295PEc7LNZZJsA7YBSdxPEg9gm383STyLQQC2eR62JXGZbUm8UJJsc5kkwDb3k8TzsM1lkmxzhUEIcZkxL4Ak27YlcZkkXijbXCbJNs9DEpfZ5jJJtnl+JNkGbEuSBNgGbPOcJPHvI4kHsM0D2JYkyTYvMiEAcYVtLpNkG4O4QhKX2QYASbZ5oSTZBgBJtm1zmSRJtrlMEmAbwCAk2eYBJNnmMtuSeADbkiRxP9uSbPMsAoN5JiHEFeIKYyHAtm1JkjDGgG1JPIAk2xgEAnOFbUmSbHOZJAxgzPOwDQghnpdtSTwPSVxhAGOelyQAbPMcJAHYti0JEELY5n6SuJ9tQBL3sw0AtoUABEIWxthYEg8gZMxlkmxzPyHLsgBj/iVCCACwzWVCxoAQVwgMYMwDCAEIDMYy9xMCjHkASbZtS5Jk27YkSbZ5AEm2uUwSD2CbKwxCCEDYBmwDkhAABkAI8Zxsc4WQxf2MjYWEuMyY5yVkAcZcYQBjSYAQV4gHss1lkmxzmW1JgCTANvcTQhhjnkWSba4wiGcSmBedkDGXCSGei23bkrhMEg9gmxfKtiQuk8QD2AYkAYBt7ifJNg9gWxJXGAABAEKAMSAJsA1gEM/FNpdJAoS4Qtg2lgVIAhAYYwwCEAIQgG1eKEm2eX6EAGMuMxYCAEm2uZ8k21wmCcA8k7BtLARIAmwDgG1JPD+2AUk8J0mAMSCLZxGAbZ5FYJ7NGAOSeCCBeb4kYYx5AEk8D9vcTxL3s839JAG2eT4InockLrPNv4Yk/rtJ4jJJgG3AtiReANtcJkkS9zNGAIgXxgBCXCbJNpfZBjBCQoAkHkASIIR4bgaBeD7Es5kXxDYPYNs2z8M2D2CbF4Ft29xPEvczRgC2eRYhifvZBmxL4jJJkiTxnCTxr2Sb+9nmMts8gDGAeV6SbAOAbV4EtrmfbS6zzf0kcZltHkASz49tSfy72eZ+kngASTyAbZ6TJC6TxGWS+HcSgBCA+RfZ5oEEAEjiAWxzP0mAbZ6LuELIGABs85xsA7b5tzJGPJNAPIsQz8U8kwGMeUHMFbZ5vgQgxPMjBGCeTbwojHlRSLwQ5t/MGDDm+TKAECCJ58s8k0E8izH/GrJ4XgbxXIQAxAshhHgW24AQz0MSD2AjiedgrhDPJDAPZJtnMZhnMs9im3+RAYx5IPEcDOJFYp4v25J4XuZZhBAA5lkkAZK4QlwhSYjnRxLPl3gWY54fSba5zDYvgCRJPCdJtrnMNlcYzAPZ5n6SeBZzhSRjYwyAeDaDeT7EswgJAZJ4wYR4IANgAAzmBTLPy7YknocQD2CMsQ0AtnkA27wgBhDiASRJAiTxb2MwzyQQxjyAEOaBjBGAbe4nJMQDSOIKgQEwgLFtwDYvmCReZJIAQJIyLQHY5nnYlsRzksRzss0LIMk2z8m2JF4oSYBt7ieJF8w2IAmwzQsmCbAN2JbEv0QIAWCeTQC2AQxCEmAbsC0JwCD+RZIADIAAbPP8SOJ+xkK2eU62JXGZbS6TxAtgm8skcT9JAGCb52FbEiDJNpcJAcY8JyGEbcBYiAcQAoy5n21JXCaJ52QbsC2JF0rIGGMMCAkhjHlOkrifbZ6TJMA2LzLbgCReAEm2eQBJtm1L4gEk2eZ52OYFkMTzkMT9bHM/SYBt7icJsA3YlsRlkngetgFAkm3bkiTZ5gGEjLlMyNi2JEm2eQBJtgHbgCRJtrlMkm0usy1Jkm0usy1Jkm0eQMiY52QbkMSLQJJtLpPEZbZ5TsYYSZK4zDYvgBBgDNjmMiEAgcA8k8C8IEKAZQAD2JYkyTaXCRnbliSEAGzblsRlkngetgFAEgDY5pkkDJhnkgSAQYBt20IA4rkIGQshrjAGZAHGPD9CgLGxLEASYAwAtiVJsm1bSBKAsM1ltrlMEpdJ4gFsc4WQxQtgLAmwbVuSJNtcIWQZCyGusM0DGQQCY1sSz0OSbduSAEkAGGQbEAKMuUyWMYAQMuYBJNm2LQmQhEEAtrlMEgYwxjwHgZAFGHOZkLFtSYAkwLZtHkASAoNBPIsQYMwLJon72eYBbEviMklcZttYiAewLQkhZBtACPH82LYtiQeQZJv72QYk8QCSbNuWBEgCbPM8bEvifpK4nzEGsC0JkGSbK8yziWcRMgYAIe5nzHOSBBhjns0gnskgnosQ9zPmfkIAArBtLAvxLJJscz9JgG2uELKMeSBjzGWSeF4GAUgCMIAxz0kSYJt/PduSAEASYJv7CSFsc5mQMWBbEs/JtiRAkm0eSGCuEAJsI56XJMA2IAmwzXOSxHOyzQNIAmwHz48kAJBk2zbPyTbPw7ZtnpNtnh/bXCaJ5yRJEv9xJPECSOJ+trmfJB7AmOcinoN4LpK4QmAAwBiDERLieQnEi8oI8QLYBmxzmSQuk8QLIIkHsA0AkngekrjMNs/FYJ5FCMA8NwEI8QC2bQO2+ZfY5jkZcz9JgBBCiCsEgED8h7DN/SRJkgRIAmzz/EiyzQNIsg0AtrmfJNs8gCReKEkAIIn/CLZ5AWxzP9s8D2OehzEgCTDmASQBkgBJvGC2EVdI4jlJ4gUQEgIkAbb5l0jihRKSBAjxopGEQDxfQkLcTwjxLzOAbe4nCRDiWQyAeRbb/HuZf5F5FkmIfwWBeFHY5rkIAPEstrmfbS6zzfNlEC86Y57FIIR4HsYABhAS4jLbvCACAPFM4gUw5lmEJMQziSsk8YLZ5goDGAOIZxPPZowxQjwnSTwXAyBs8wJI4gEkCQHGPIBt7meby2xzPyHbPD+2ucL829i2zfNjm+chiechyTbPlwFscz/bgLExlwnxAELGPBeBeA5CEleYZxFCCAkBCNu2+dcTQgBCiGcSzyQwDyRkzP2EuEyIy2zb5gohASCeg0A8kCQhHsC2bQCQxAsgifvZ5vkyAOZZjLlMEs9DEgDYBjAYISHMsxkM4pnEi8K2bV4o27YB27YBZVoCsM39JAG2eU6SuJ9t/iNIAmzzL5EE2Ob5kcQLZpv7SQJs8zxsS+IySba5nyTANv96tiUBxrIQQoBlzItEYK6QZJvLhABj7ifJNi+AJMA2z8m2JB7AtiQAkATY5n6SbPMAtiUJAcY8J1kIY+4nCcAYc4XAPC9JgLEQANjm+bEthAAk2QYAWZa5TIgrBGCbyyQBtgFJPD+2AcA2IIkHkATY5n62JXGZJNvcT5JtwLYkSbZ5HpIA24BtSZK4zDYvlCTbPA9JgG3uJwmwzf0kAbYB21wmCQAk8QC2AUCSbR7AtiSuMICxJEm2MQghYy6TZJvLJNnmMiFjnosBEC+IJNu2hXgWIQQgbPMAkmzzAJJs8wC2JfEAkngA21wmyTYvgCTAtiTANpfZliQEGAMYBAJzhSTbtiVJwhgLGQO2EUKAJK4wxtxPlmVeMCHuZ2xbEiCJZzEYMNhgkMQVEjYPIGRsWxJXCFmAMQBIAgDbgBAC83wI2wDmgYwl8UAG8bxs8wCSAEnczzb3k8RzMgaEuJ9trhCYKyRxhXkmYRtjDEgS4jJjAMAgnslGAgAMQoAENgJkAGMM4jkYxAMJcZkx95PE/WzbloSQBRhzmbEsIcSzGHOZkLFtSYAkwDbPQ8jYGCOJZzEISVxm27Yk7icJgwBs8wC2JfG8DIAAbANCiOciBCAA2/xHkwTYBgDbkiTZBmwDkgBJGGOuMICxJJ7FGEsChDAIAAHYxiAABOZ5CQHGAGBbEv8SSYAxIMQVBkA8kG2eH0lcYQCEbS4TMsYgACHAmMuMsSQAQBKAeRZjXhAhBNgGbAOSuEySbe4nictscz/bkgBJgG0AgxAy5gWQxP1s87wMQsgYwCCEAGMuk2QbsC2JyyRxP9s8J0mAbZ6HbUk8E8G/j23bPCdJPIAkrhDPRRKXSeIBbHOZJP5zSOIySZIAQJJt24BtSQAgiQcwNuYyIS4TwmCukCQJACQBgBACQCCEEIAQL5gkIS6TZJsXQBL/erYlcZkk7mebB5DEZZK4nySuEADiuRkM4vkwxpgrhBD/BpJ4FiFJkm0Ag0E8N/HczItCEiCJ5ySJ52RbEgBIAiRxP9uSuJ9t/uPYBmzz7yOJB7DNv0QS97PNczLmuRhACJBkm+clnoNAAAgAAxjzghnzXMRzkWQbAGzz7yOJ5yGJ5yTEZUI8X+ZfJp7NAEKAJJ4fIWPMs0jihTAvIts8P5K4n22uMIgXlXk2AQgBQkJcZsxzMQAGMOZFYMwV4oUxL4z4FwghLjNGAIhnM5cZwADYYAESAAKDEc9FkpAQAgMYc5kxV5h/gUE8kBBgmecl/hXEFZIASZK4n23uJ8k2DyT+VYwRzyIEyJLFczLmAWzzAJIk8R/BNpfZ5vkSz2Sei5AQz0U8X0IYwLZt7ifEA9gGjHkW83wIzDOZZzLPZB5IkiQus22b52SMeCBjIZ6TkBAgJAEgSeIK8UzigYR4IPO8bNsGbEsCAEkAYJsHkMTzEoAxDyDEi0ASVwjAWAhAPC/b3M82/xJJPA9JkgBJtm0DgDITkLB5LpK4zDYvGklcZpvnJAkDIJ7FNveTZBuwLYnLJPGcbPP8SAJscz9JPD+2eU6SANuAbUASIAkAbPOcbAshhAAExpgXTJJtnouQBRhzmW1ACAFIsg1IAmzzAEI8i7DN8yOJy2xL4jLbgG1JACAJsA3YBiQBkgDbPCdJgG3uJ4kHsM1lQoAx9xMyxiCuEOIyYwCQBNjmfpJ4HrZ5IYwkAGGbyyTZ5jJJgG0EBpDE/WxzP0m2eU6SANtcJsk2DyDJNpdJss0LJYnnZJv7SeIy21wmicts8zxsS5Jkm8sk8ZxsS7LN82NbEg8gCbDN/STZ5gWQZJvnYVsIQEjiMttcJonLbAOAJMBYCMAAxjyAJNsAIMm2bS6TJARYxlwhiQewDdgGJPEAtrlMEgDYlsQDSOIy21xmW5IkwDb3kwTY5n6SbHOZJAxgzGWSbPMCSMIYcz9JgDHmCiFjrjDPJJ4PgcEAkowBAIF5JiHLIIyxeCCBwbYkSVxmG7ANSJLEZbZ5ICFkLARgANsAAgFgAAxCyNg2QgiQZNu2JCFjXjSSMMYAIAQgbPMAkgDANpdJwmAQzyRsAwACg0EIcZkxVwghYyEAAxhzmcA8k8A8myRsBMg2z0kIsA0grhAyxgDGkgBJ3M8295NkLATYNpYFSAKMASHAmAcSmCsk8TxsYxBCCMA29xNC2OY5SeJ+tnkekmwbYwBJACDJNg8gZMz9hADLGMA2IAmQxAPY5n6SuJ9t7icJsM39JAG2bXOZJO5nWxKXSQJsc5mQMc/FAAgE5lkkGcvifsY8kJDF/YwBAPMcxLNI4oEMArDNFQbxgtgGJPEAkgDbXGZbiMsk8QDGPCcBYO4nhADbAAYhhLDNAwnMFbYl8QCSANu8UJIA2wCAwDyLJAyAeCBjQBbPIgDb3E+IZxGAbV40kgDANs/JtiRAEmCb50DYBmyusG2bB7DN8yOJ52GbyyTxvATiWWxzmW3ANpdJ4kUgSRL/VrZ50djmeUhCPJN4FiHuZ8z9JBkjACEMBsAgHkiSEAAI2eYy27Z5IPFswjbPwzZgm8sk8QJI4kVg2zYPJB7ImOdLPJMBjDGIK4S4zBjzorPN8zDmfpIwgG2exTwHg/i3sc1zksT9JNnmASTxnCTxr2Sb52SbB5DEi0wSL4BtXgS2ucw2z0mI58c2YMwLZZvnYoz5l0ji+RKY52aukARIAmzzL7EN2Ob5sc2/hiReMEm8EOKFM+YKIyTE/Yy5nyQhrhDGQoAkIZ7FIJ5JiMsEIABhnoskQBLPSRIvhAAQz2QwgG2ekxAgiSvEFZL4NzDGPIBt/kXm+TAAAvNM5pnEv4sEAhD/IkkAgDDmhROAEM9iXiDzLJKEuJ9tXhTiORjE87LNA9jmfpK4TIgHkARI4oUQCAxgG5DEFQaD+Q8hiechCUA8iySehyQeQEgWz0mIZxGSeCADGAMISQCAeD6EEM9FPJBtY14A24AkXjDbgLExwhiBQDwXgXge5jkIAAFIksSzGEkAIInnZNs2YNs295MkiRdAiOciEJh/NfGik8TzsA3Y5gWTxAMJZSYvgCTANs+PJC6zzfMjyTb3kwQYYyQBtgHbkngekgDbgCSeh20eQBJgmxeZbUmAJMA2l9mWBEiyzWW2AUk8J0m2AUDImMtsCyEASQDmWYy5nyTuZ4y5Qggw5vmRxHOyDdiWxL+SJO5nG7AtiRdKEs/JWMg295OEucIYsC3EZZaFuEwIMOZ+kgDbgCTANveTBNjmfpJs2xZCPIsQYMzzI4nnZJvnZFsSz8O2JF4ASYBt7ieJy2xzmSQewDYvMtuSAEm2AduSeB6SuJ9tSTwP2zwn25J4HpIA24BtSQBgWxIvgCQus83zkGQbACTZ5gWQxGW2AUAIQADGmAeyLYnLhBDGmCskAbZ5fmxL4jLbkngA25J4AEm2eR6SANuAbUmSANs8XwJzhSTbPIBtSZJsc5kkHsA2D2BbkiTbXCZkjEFcYVsSAEiyzRUCc4WQsW1JgCTANgZxhSQMYMz9JNmWBNjmhRLiMmMAkGSby4SMbXOZJATmCkmAMca2JB5Akm0uk8RltrlMyDKAuULImBdAkm2el0FIsg0Akmwby+J+krhC2AaEAGNACPG8bNuWBEgCbMCSANu2hRBCtiVxhTDGvHCSAMxzELa5nxBgGZAFGHOZJAxgzP0kAbZ5ACEAgXm+jLlMEg9gm8tsA5J4wSTZ5jJJto2FAMC2JISQbZ6TJJ6HbS6TZJv7SeJ+tgHAtiReNJIA2zyQEOJ+to1lAQghY+4nCbDNA0jigQxgzGWSMIAxBiFkzP0kAbZ5HrYBSQAC88LZlgRIAmzzgkkCbHOZJGzzfAjxQALAGPOcJAG2eQFsA5K4TBJgm/tJsi0JAGzzAJK4n23uJwmDADDPYsz9JHGFQTwX21wmicts80LZBiTx/EgCgOBFJonnYZsHkMT9bEvigQzmuUgCJEniRWYbsG2b50cSl9m2zfMjiedHEgDYBgDbAMI2l9nmMtvczxgAbAtxmRAvMiFeBJL4d7Btm/tJ4nlI4jlJ4gUxVwjxLxLG3M+Y50cS/xqSbPMsBvNMAoFAPBdJvGhs85xsA7Z5TrZ5fiTxQtnmRWYbsA3YlsRltrlMkiSehySeH0lcJgkAJPEAtnkASYAkAPHvIYkXQJIkXgjzQtjmfkIA5jmYB7LNc7IN2JbEA9iWxANIss2/kiTuZ5t/iW1eAGOel3k2cYUxz8M295PEZUI8kHm+bPMs4oWQxAsmxPMjBCAQgCQuMwYQgBBgDBgDtnkAY0m8AMYA5gohnot4LpJ4wSQBkrjCGPMs5j+IeQBJiCuEuEIAGACDEQIkSeIFMc9kEABCCIHAPDfx3ATigYy5zBjx/AnEs9jmedgGJHE/2zwX8byEbAO2uUzINv/RbPNvZZsrzHMRMjYGjCXx/BhzmW2el8EAthHPJABjXgS2AUmAJCEeSDwX27xw4gUSgHk2STyQeSYBYADMs0iSxGWSeH5sA5K4TBLPjyQus82LyACY5yaezdgGEC+EbV4ASTyAJEmAJEnczzZgGwDkNALAIB7INiCJy2zzAJIA29xPEmCbB5DE87DNi0YSYJt/iSTANi8aSbZ5AEmAbZ6TbUASL5y5wlgSlwlxhcA8i2XMCyIJ80wCsM39JGGusIx5XpK4zDbPj21JgCSek22ek21JknhOtgFJGMuAEGCb5yQEGAO2JXGZbSEAIYQwxjyQJO5nm/tJ4jLbPC+DuEISgAGMAduSJNnmRWBbEpdJss3zkGSbB5AE2OYFk8T9bAO2uUwSD2BbEs/JNiCJ5yHJNpdJ4gFsc5kk27wAtiXxQtmWJGTMczLGSOIySba5TJJtnodtSTyAJC6zzfOwLUmI+xnz/EjC2EZI4nnY5gEk2eYBbEviAWxLksT9bHM/Sba5TBJgm+ckyTbPQ5Jt25KEjDGIB5LEZbYBQBJgG7AtJGSMACRxP2PMCyeJy2wDgCzLXCYJANs8FyFjIQQA2BayDMgCjLlCYDAISbYxCCFj25K4TBKAMbYtiQeQZBsAjIX4l0gCbNuWBCAAzPMS4jJj25K4TJJtAJBkmweQZJvnIcQDGANCCAxgzAslAQKDuJ9t25IQsgBjnpdBXCHJNveTBNjGXCHJWAgw5n5CgGVAFlcIjLEQzyIA27YBQBJCCGOMeSYBSAJs80LZliTJNgDYliSJy2zzrycJsM2LwLYkQBJgmxfAtiRAEi+Ybf41JHE/2zyLMZbEcxICjLmfJMA2D2QQgCTANmAbACTxPCRxP9tcJsk2YFsSDyAJsM0LJsRlxjyAJAADYBAAYBkDCBljEM9FEmDbtiSeH0m2eR6SANsAYFsSIInnZJv7SQJsc4VBAJIwzyQA2zwPSba5nyTuZ5v7SeIy2zwnSbYB25K4TAgR5pnMC2MbsG2bfw3b/GvYtm2b52Gb+0niXyKJB5DEc5LEv5skSQDC2FgSl0niWQzimQTmudi2DQCY5yKJKwTm2cwzGSGek20eQJIkLpPEi8C2bUk8L/Ns4oEkSeJ5GYwknocsAPOC2Ob5sc39JEniCvFM4jkYjCTANs+PJACQxHOSxL+VbV5kkrhMEpdJAiTxAJIA2zwnSbb5d7PNC2abK4QknpMQ95NkzIvANg9knkk8F9uI52CeP/EfwjYvGkm2eR6S+JdI4l8iiX8n8Vwk8XyJ5yZeIPGvIJ5FiAcwBiTZ5oHEC2eb50eSJF4oIe5nG/OC2OYy25K4nyT+zQSAeDbzAOZ+kkAAiOfLIJ7FNg8kMFfYlgQAkngW8SxCXGGeTSCem0EI8fxI4oEMgAGMeQEkcZltHkgAtiUBgCTANv9WQjyAbWNeANv8SyRJ4gUw5oHMc5HEA0jiASTxvAzmBRLPn7hCCPNCSOJFZpvLJPGC2bbNC2AMABghIe5njAAQCMwVxkIIzAsiicsk8QCSbHM/SVwmiQewzb+ebWOuMFcY8wC2AcA2YFsSl0nihbLN87ANAJIAISEAo0xLALYBSTw/trnMtiRAEi+YbQCDEDIGEEKAbZ5FYADbgCReMNuSAEm2uUwS97PN/STxnGxzP0mAbcC2JEmAbZ6HbUmAJB7IGPMAtiUBkjBXGHOFEMIY84IJGWMQCMwDCQG2Ec9knklI4n62uZ8k7meb+0kCbHM/SYBtnh9JAAZAAJhnMeb5kYQx5rkYhBD3MwZsc5kkLpPEc7LNc5IE2AZsS5LEsxjAGIMAJNnmCoF5IEmAbe4niQewzfMjCbDNC2VbkiTANvezDUgCJNnmMtuSJPEAtnkRSAJscz/bkgDANgBI4jnZBiRJ4jLbtiXxAJK4zDaXSbINAJIA29xPkm3bQohnsS2EACTxQAYwti3EswhJGAzimcRzMM9BAIBtnock21wmyTb3sw1I4gEk8fzY5jlJss1ltiXxPCTZBgDbkiRhAGOel8BcIQmwzf2EjI2FhADEA9nmRSDJNpdJss0zCcxlkrjMthAARmAhAAxgjJGEuMI2BiFkbFuSJNu2JfEAQsY8gBCXGWMAxLNIsg0AkmxzmSTbvAgkYQBjDOKBJHGZbS6TZNu2JB5AEgYw5jkJIWzzPISMbXOZJB5IYK6QZJsrhBDGGAMgAEm2jTGAJEASYJvLhIyNZQGSEBjA2LYkQBLPYgBjAJBkG4MAJAG2AduSuEwIMOY5SeI52eYBJNnmASTZ5gEk2bYtSZJtHkASYBuwLUkSVxjAGPNM4grbkiTZ5jlJAmxzmSTANiDJNs9LyAKMuZ8knsUAxjwPSbZ5IQyAeC6SMM8mnoMBjDEIQJJtnockwDb3k8T9bNuWxAslyTYPIMk29xMyxhgLAQghBIABjLlMkm0eQMgYYwxIAiQBtnkASTyAbduSAEm2eaEkAbYBAIF5FkmAbZ6TEPezjAEwAOK5SAJs8wCSuJ9t/tUI/iW2eQBJ/CsZYwDM85LFZZIk8fxIkgRI4jLb/MeRxAsliedLPBdJXGGeD4N5IEmSeABJxgACwAC2jXm+zDOJZzP/c0jieRkMQojnYp7FNg9gmxdAEg8gxHMRCABhm+cki+dHEs+PbV4A2zyAJB5AEi8y21xmWxL/GpIk8fzY5nlI4jJJkiQBkiRxP9u8IAbzwogrJGEABAIQ4jkJYZ7NPJP5l4nnYJ7JPF+2Adv8SyQBtnkBbPMisA3Y5gWzzbOI52Kby4Qk8fwIAQAG829h/iXmhRGI52KeyTwXY14EQjwXgXgm8RzMs9gGACGekyQhnpfA/BtIss39JPEsBjDmWcSz2OZ+QrzIbEviWQwgC0AAiCuEeMGMeS4G8cKI50M8F9uSACGeRTyQJJ6LeQ4CEMJgnottY8A2IAmwLYkHsG0bsM1ltnkg80BCgCTAtiT+Jba5zLYkSVxm2xjA/CsISdzP5grbvBAG80wCgQEwV9jmhbLNCyaJyyTxnCTxPCTxALYl8QJIMgaMAWNjwJgrxAPZ5jLbAGAMIJ6XJB7ANs9JEpfZBmzb5jJJvHDmeUniASQhnklgAAyAeF62bQO2+VeSJInnA2VaAsAgbPOcJHE/29xPEvezzQthEA8kiedkm/tJAmxzP0mAbZ4fSTw/tiXZ5n6SeE62uZ8k7meb+0myzWWSANs8F4NAYK4QMgYABOYKIZ5F2OYySVxmmxdKyJgHEDLmMkkYy4AQz49t7icJsM39JPGcbHM/STwn24AQYAzYBiQBkmwDgCQAsM1lQoBlIdsABvGCSOJ+tnlOkgDb3E8SYJtnEZgHkgRgEBhjDEKSbR5AEvezDdjmMklcZlsSDyCJB7DNA0gCbAO2AUASl0myzfOQxPOwbZvLJEmyzWWSANvczzaXSeIBJPEAtm1LkgTY5n6SuMw2AEiyzRUCc4UQYMzzI8k2D2QQz4d5DkIIsCzLNuIKSdzPNoABJBnzr2RbkiTbgG1AkiTANveTxPOwzQPY5gEk8QCSbPMAkgBjzPMSMgYAIQBxhW0AsC1JyJjLJPEAtm1zmSQus81lkgDAtiQkbGwkCRvbkiTxAMaAEIB5/gRgmxeBbSEAIWTMAwjxLMI2VwjMs0gCbPMAQgiMMZdJss0VQgiwbVuSJACwzWWSbHOZJNu2uUwSVwhZgDEPJIQA27YBSYAkLrMNAMaYZ5HEc5IEYABjzDMJSVxmG7ANSOJ5mWcSgBBgzANIss3zMogrjIUAIcCYyyRhnsWYyyTZ5oWSxBUGMOYFkGSb+0myDWAQD2RbElcIWcZCPJCwjUEAknh+bHOZJNs8D9uAEOLZjLEknh8hrpBtXjiBwViIB5AEYIwxAEIIMOZ+kgDbPD+SuJ9tLpME2OYySYBtnh9JgG3uJ8RlxlwmCbDNi0CSbWMh7mcbkMSzGAABIDCAJNs8J0mAbf41JAG2eaGEAIRtrhBCGGPuJwQgANuAbUncz7YknodtSTwnSdzPNs+BAIPBiGexzfMjiedlrrDN8yWeP/OikMQLJokXQBL/ZQSAATCAMeYKIa4QD2Sb52SbB5DEcxIy5gGEeF4G8x9GPJBtni/xvGzzAggBgBDPIl5EknghzPMlJIkXwJjLhGzzopHEA9jmBbDNA0jieUjiMkm8yGzznGzz72Obf4lt7mfMs5jnwzyLbV448WwCQBgbG/MsQogrzPMhnpdt/iWSeE6SAEn8a0jifrZ5Tra5nyT+NYSMeU7GPIBtXgDbvOjMv4ExD2BsbGxszPOQxPNjGzDmfkI8i3k28RzMCycEYADE82Gei22ek7EkQBLPyTZXGMQLJ0kSIIn7SeL5MoAQgHhuBjDmMts8D9s8L/F8mGeRxAthANuY50MAiGczLzrbAOZFZMxltgHMFUKSuEySba4wCCEeSLxwtnlOtiVJAgDb3E+IBzLPy5jnZRD/MhsDAEIAAsAAGADxbAbzwkmSxPNj2zb/EkmSeCAjBADG/GvYtg3YBoR4AYR4ACHMFba5zLZtXjSSuJ9tnh9JAGCbBzAGMM9mMIAQL5Rt7ifJtm0ewDb3k8TzJa4QwmAqiOchybYkwDYPIInLbCOEEBhAEpfZlsRzEZgHsox5XrYBSVxmm8sk8Txs8wJI4l8iiRfCIGxL4kUnMADiWSRxmTEgxL9EEiCJy2wDljHPIsk2l0niCgFgrrDNC2YbkMT9bPNcxANJss39JPEis839jAFAiOckicts85xscz9JtgHbkgDbXCGeL9s8i0E8kwCEAMSz2OYySbYBSTyAJJ6TJACQBAC2eR6SbHOZJNuSuJ8k2wAgCQBsc5lt7ieJ+0nifpJs8wCSAMC2JP4lkmxLAmwDkrjMtm0AgblClrFtSZJs25aEwACIZxGyLck2gEE8k3huBrANIIS4QmCuEDLGIGzz/NhGXGFbEpdJ4jLbXCaJ52Sb+0niBbDN85BkG5DE87AtCbDNZZJs8wBCiGczz8s2QhZgzGWSuMwYsC0JACTxgkmyzWVCljEAIEACsMCSANs8gBBXCGMhQBIPYBuQxANIss1lQsa2JXGFwRgjnk3YRiCEjCVxmW1JvACSbGMQkoQQz8s2l0kCELZ5IGMM2OYySTwnIdtcJsQD2OYy25Ik2eYKgblCCDCWxAMIYQDMswnbiGcSDySJ5yEEAMZcJsQVwrYkwDYPYJvLJEkyBiTZ5nkZYwAhC0DYlmQbwCAk2bYtiedkGxAChBC2bUuSBAC2bQOyEM8mhLifJNuAJNuSuJ8xQghjGwCMhXggg5Bkm+dkm/tJ4gqBETLmMmOeixEylsT9DIAQ4gWyASRxmTDGYIwBWYCxEAJjDCAAwDYgCbDN/WwDknjRSAJs25YE2JbEZUKAZdvcz1gSD2BbEiAJAGwDgCReMEm2uZ8QgHghJPECSAJs85xsS+IBJPGcJHGZbSEA8VyMMQhAEs+PJJ6TJJ6TJNvcTxKX2eZ+khAYAAEEL4Ak27Z5TrZ5LkYSDyCJ52WemwFs2+YFsM0LZpvnYZsXzDbPj22eh7FtwDYviEBcIcQVAvFM4l8kxGWSeH5sc4V5INs8XwbxH8b8m0niMkm2eQDbPIAkAPMstnkASbYBY9uAba4QgDFgbJsHEohnMQYwCCEeSDyTeC62eR6SuEwSz0kSl9nmMtvcT5JtHkAS95Nkm+clnsU2L5gQ/xJJ3M82z48knocx95OFAIQAzItKXCEkxAMJSdxPiOdLPJtBCHE/Yy4TEuIKcYUkwDYvGts8J0k8J0m8YJL4zyGJZzHPJJ6Xbf5DSAAIkIUBAGOel/lXE4AQgHk+hDEPJAAMIIsXgSReBJJ4AElCPICQEJcZ8/xIQjyTMcY8F9v8awjxAMY8DyEA8UC2eUHMCyLJNv8SSTwX8Sy2ucIgrhCyDWAAIZ6TJF4QA0gCbPNA5tnEAxlzmSSei3kmg3kW21whXiTmOQhACDAW4jJJPIAQAhDiCnGZ+VeRhDCAbWPAGBACMMYA4vmSxAsmiReBJNu2AdtcIZ5JGAPGPA9JPIBt/iWSuEwSDySeSTyQbduSeJHZ5jJJgCRJGAwG80zigSTxQOLZjDHPw5gXgSRJkgBJvCgEQghQZvIAkgDbgG1JvACSANv860kCbPNvJQmwDQC2uZ8kXgBJgG2ekyTANs/DNkKIB5DE/WxzPyHAMuYKSTwn24AQYMx/HEm2uUyIK4RtAIN4IEm2uUySbR7ANiAJQGBeEEmAbZ4fSVxmmxeBEGAZ80CSANv8iwyAACRhnknYBjAAQsiYfyVJgG3AtiRJgG3uJwmwzf1sS+JFI8k2YFsSl0kCMMY8gCSeh20uk2QbACTZ5vmxLQmQZJsHkGSbyyQBtrmfJC6zjUE8kLGQJMAYAyCEbHOZJAxg21gSlwkBCMA2YCzEZZIwxkLGAOaZBIABEJJsYxBXSLLN85AEALa5TJJtnock21wmicts8zxsS+IBJHGZbQCwzQNI4gEk8ZxsAxiEkDEAYBBCAOIK27xQkmzzAJJsA7YBSQjMFULGXGGeg3gmgcEgJPE8bAOSANsAIAkwlgUYYwBjSZIwgLFtQAhxhW1JkgAM4lls8wJIss3zI4n72eYySRjAmMskYTDGiGeRxGW2eQDbkgAAg7jCtiSeh5CxbSGeRUjiCvNMwjYG8UCSMIAxz0MSV5hnMsaWZQEISbZ5ANuSeADbkgBAkm3uJwmwzWW2JQGSANs8gJAxz0kSYNu2JK4wCCFjHkDIGANI4jJjrhBCgG0uk2Sb5ySEwAC2EQAG8UCSbPMAkmwDtiUBCCGMMfcTAox5HkLGGAQgCQyAeDaDANvcTxJgm8uEjHmR2ZYESOJ+tnkRSOJ52OYFEZgXkRBgbFsSl0niMtvcTxJgm+ckBFgGhADbPCdJgG2ekyTANi+YJO5nDMhCALa5wiCEAARgG7AtiechZCyJF8w2z48k7mcbkATY5gEkhQ1gzPOQBEiSxAtlzAPYBgBJkngggbhCEuKBJPGC2eYFkMRlknjR2LbNCyBJEiAJY8yLSLxIzDMZzL/ACHGZJF4A2zwv80wCQDyLbS6TZJsHsM0DCEniASTxr2GbF8qYZxGYB5LE8yUQzySeD/McBIBACBkDgDHPyTbPjyReAEm8ALYl8QC2eX5sA7YlcZltXgTGAAawzf1s8yKQxGXGXGabf4kkLrPN87DNA5lnMs9NAAjANoB5DuKBJGEAIR7AmGcRgBDPSYh/DUk8J0m2eaEkcT/bPA/bXGabZxGAMc/LPB/mOYgXTghzhTGX2RbifpJ4foQAWdzPmOdLCPFvJcQVBjDmMtuIZxFCAIAx/xLbPA9jSdzPNi+EeG7i2QSAeCbzIjGAbZ4fIQADGPM8jBEA4llscz9JvFDGXCEeSJYxL5htHkCSbQCwLYnLJHGZJC6TxItMkiSeLwFY5jLbXGYsC0AYIxDPZp6LbUk8F/Fs4pkERgjAPC9J3E8SgBDCABjbPIAQz8OY5yb+9YyFeE5CPD+2eaEk8QJI4oUTz2RsAxghXjBJXCGeyQjZtg3Y5oWybQxgnj/xwkmSxGWSAIQkLrONeTaDwWAwCMA2YNs24vmSBCAk8SwGEOJfwzYvAtsAYLtKAEJcZpvnZBuQBNjmfra5nxAA2AYk8QLIAox5AEncT5JtwDYgiftJsi2J+0kCbHOZJF5kknghzLMIcZltSTw/tiUhACEAgbEtyTZXCCHAGAMgnoMxlsT9bEsChBAvOmOeh5Axl0niOdkWAoQAY+5nm+ckiRdACEA8X5K4n20AIwQgAMwDSQJsS5LEZbYBzLMZIQDx3AzCGPMcBMa2EAIQMgYkcZkk2xgEYJsHkMRltrlMEmBbEi+YJB7AtiRAEpfZ5jJJXGEAhBCAAYxtA0I8i8A8kG1JtgHbkngASba5wlwhhEEAkrjMtiRJtgHbPIBlIUm2ASEM4vmSxGW2eQBJAAIwxgBCxrIQQoBljBCAwCCEuEwSBmGMARCAJC4TAox5Tra5zLYk24AkXijbPIAkQJJtQBIvmCQewFgWgJAE2JaEAGxL4lnEFbaFJAGWhQDbPIAkDIC5wlgSgBDCABgEYFuI+xljjDFXSEI8mwGEMAgAAdgGJNkGAIQkwDYPYBsAhAAERhKXScJcIQnAAIAkBGAbQGCeiySuEJhnMoAk24AkLpPE8zLGXCaEeDbxTEYSl9kGANs8XwKwLYkHsC1JiCuEEPcTAjCAkDGAeSYhxP1sc5kswFgSD2SusIyQhXgutrmfJNuSANuSuJ8kAEBghIxt85xsSwIwgCSexTyTQQjZ5jJJgCQAgTEWwjybQQAIIQBhjAEwiAeyLQnASLJtWxLCGANgJPEsAgMgANvcTxJgG8AgEEI8i5AFIGxjEEIIwLZtSQgM4oFswNxPkm1eEBuEAIQQz2aEjLlMkm1Akm0ewDYgCbBtmxfANs+PJABjG7ANSOIyYwxCCAHY5n62eS4CEOJ+tnnBJHGFuEIWD2QAIcTzZZvnYhBXCBkLcYXAGPP8SOIK8XwJ8SwGcYVtnh9J3M+2JB7ANveTxHOSZFsSEDw/knh+JPGcJPEAkiQBkiTxnIR4ANu2AdsABvNcbNvmfpJ4ASRxmSTuJ4kXkXk2cYUsDOIKSbwAkrifMQJASOKBzHMQzyQAIUCIBxACEIjnIgkAbAOAbS4z5vmxzb9IXCHE8yUeyDaAQPxrCfFA5pnEsxmMEPezzQOZZxKIZ7EMAAgA80wGMMY8kBAAIABAkm3A2JgHkMRlkmzzQkmybZv7SeJ+tiXxPGxL4jIhHsg8fwLAAIAQ9zPGGEviASTZBjAYIa4QiGczGCEewDbPjyQA8SIRV9jmfpJ4ICEEyAIwL4QkAGHMA4kHMsY8iyTuZxuwzb9EEs9JEv8OQlwmxGWSeAGEeNFIAoy5nxAvGiEhLjPmuYhnM88iiX8D8xzEM4lnEQIABAAI8UDmhRDiuRjEv454NvF8mCts8/xI4vmxDWCMecGMeUHEsxhzmTGX2eZ+QjwXcYWxEPezbRuwLYn72eaFMM/FNoB5IYR4HrYlAQghrjBX2BYChHgWAWAADCAkxP0kYZ7JPAcDYADMcxPPRRJgG7BtDGCemwBkAQjAmOdiJHGFxAPYNleYB5DEAwmEAIF4APNAApDEZZJ40UiSxP1s2+YFMAZsA5IAISHMFcY8J0k8i0E8L0m8IOJ5Web5MQYwGECIF8q2EAAI8UACgXgukgAAARjzwgkAgXhRSAIASbxQkiQBkgBATiNs8wCSANvcTxL3s839JGEAhG2eH0kAxpgXQBL3sw1gEC+IJO5nm/tJ4jnZ5n6SANs8J0mAbe4nBBgDgJBlzBWSuJ9tnpMknpNtwLYkIcAYgwAk2eYKg3hBJPGcbAO2hbhCvIgkcT/b3E8IsI14INuSJAG2uZ8kwDb3EwIsY56XJJ7FGGMQQjyLsM1lkrjMNg9gWxIPIAljDEgCbPOcbAMIIR7IPJMQQgC2ucy2JMA2IEkSl9nmeUjiAWzblgQAkmxzmW1AEiAJAGzzPIQABGAbwDyLEALxXGwDGARgWwghyTYPYFtICIHAXGHMC2AbkCTJNgYBIIQwzyQeyDYASMIYAxjEFZJs87zMMwkhAAHY5vkSmCskAbYBIcCY+0myzQPY5jJJkrifbUASl9nmRSCJ52IQz2Kby2xLEgIsCwG2uUwSgAEAY56XwFxhW5IkwDZgW0jIMlcIIWNZ3M+Yy2QhELYBY4wkIS4z5gWQZJsXgSTbtoUQQoAxBiFkzBUGcYWxLEASwrZtSVxmm8sk8UBCCMA8izGXSbLNA0iybZvLJCFk8ZyMMYgrJNnmBZDEZba5TJJtAMAgACGEbQCQxBUGMMYAxgAgSQgB2MYACEDIGAAwiCuEuEI8i20MQpJt2wAgCZBkm+dHEuZZjHlBDOI5CAzmmYSQsW1JgBD3M+YyIWMAwCAABAaQZJsrDAIQAowBDCAJMOYFMYhnEULYBgBJgG3ANpdJAoQQV9gGACFjYyEuk2SbB5CEAQMIm2eykQAAG4nLJNkGAIG5n5AFAAiMsRDCGANIss0DSOIBbHM/SbYBSbZ5wSQBtnkASRjAmPtJAjDPJGwDGIQQ4tkMgLDN/SQBtgEhBIABEFfYxiCeiyTANpcJGXOZMUaIKwQgBBhjEIAkLjMWAmzznCRxP9s8F4F5bgLzn4kAbPNvIzDPZJ7JPF/G3E8Sz8OYy4QAxHORxH8c27Z5QcQDGQvx/EiSxItACPNsAhCyDWAwiH8DIe5nzGW2uUySJB5ISMJgMADiuUjifsa2JfGiEy8KYwDxHIRtnpNtnh8hrhCYF5EQIEkS9zMGMADGNmDbtiQukySJ+9nmX2KbB5DE/WzzQojnJl4g8Sy2uZ8QgLhCkmWekySeiwEwmBdCEvcTAjAABkAAiAeyzbMYAIN5Fkm2eV4GMAYwL4RtABDiRSDJNs+PJF4w27wIJPE8jHkWAwC2eRYhxL+DbV4wIQDx/AlAiPtJAoR4LuZZJAnxAJJ4TkJCmGeRxLOIZzMA5rmZZzEGjHkg8UDGAIB5DgJAPF+2ucw2L4gBjAEhAHOFbUn8i8SziecmHsg2V4hnEs/BGGOeSSCeTTyTwDybeOEkcT9JtnkBbPMAQlwmiX+RARDGAGAMSOKBzHMR4rmYK2xL4kUjieckJAQgMM8mAEnczzZgm2cxz2SeizEgZNs2YCOJBzCAAQCDhAQgYfMsNjZgm/uZBzDPZhBCXGGusA0AtrnMNs+PJNtcZlsS/wYCEOIFMc9mANtcYZ7JIF4gg3km82ziCkm8AMaSuExIiOcinkk8B4N5viTxvAwGEMI8H0YSl0mSxHOSxPOQxP0k8YJJqgjMs0gCbPP82AYkcT9j7icEWMYYA5J4vowkHshIss39hADEs9jm+ZHE/WwDkviXSOJZzLMZBIDAALYl2ZbE87DNc7LN/STxLOJ5GXOFsA0I8QCSbAOAbR5AEs8inskY85xs80DGWBKAATDPS8gYkIX4VxC2eaFscz9jIQRgjHkutnkekgCEEAAYA7IQmGcxFuIySTwnIWOEEADYRlwhiftJsm1bkm0hALAtictsSwIA29xPEiDJNveTZFsSANgGEM9krrAtCcAgnsVYkhBgG4EBJAG2uZ8QlxkLAbYB25JsA0KIKyxjAMQVtiXxAJJsSwJsA5JsYxCAbQDzwkniOUmyzWWSbAMIQIh/iSTuJ4nLjHkWg5CEATAIzANJAoyFANtcJgnAIJ6XbR5AkiTbPA9J3M8yxrYknsVYxjwfAjDGXCHJNgaBATCSAMA2DyQAYwAjBEiyLMQVBjBGALKMuUwSYBmDeRZJ3M+2JC6TZNu2JB7AtiRJtgFAEoCwjUE8kG2EJJ7FSOIy24AkQMhYCPEcBCBkm2cxkjC2JdnmMkk8gCQewBgDCAkBxlxhEJIASbZ5AEm2bXM/IS4TQmAQAOK5iWcyV9jmMkk8kAEwCEnGtjFCxhjEFcYYSba5nxACwDwX29xPEgDY5jkZ8wC2JXE/2whAkm3bkrifkLGQJNs8J8sYhJCxMc8iAEm2MYgrJNlGAAgMBjCWBBgDmCtsS5LEFcYYwEgCbHOZJAADYABJPIuxDGCEeBaBASTxTLaRZNsgwAawkbjCBgQG25KQeE62JfGcjDEIAIMAMM9Lkm1JgG3uJ4nnx7YkHsA2D2AsifvZts39JAGAMSAEGANCAOIKIdvcT8hYFuIKY0AIMAYADAIQ4nlI4gWTZJtnEUI8i8A8F8sA5pkMApAE2AYk8SwCEOKFkmTbNiDJNg8gyTb3k8QD2OZ52EiAbAf/gQQCQLxABgNgnsU24rkJxL+fJF4oIR5IPC/bgG3+JZL4F4kHkiQJkIS5wjb3k8TzYxsAEC+EbV4I8dwE4gohDOKZBAaDuEISz0mSbR5AkiSeH9u2hXgW80CSbPOCiH+ZuUISDySeSTwv2zwnSbYBwBgwFuIyY8C2JF4ASbb5VzLmRWReIPO8bAPGAAYhBCBeEEmIZxHiuQiEkG2eH0m8cAZA/DtJ4nmJF0QS/yrmudjmASTxbyLE8yOJ50v825kXwjbmeUkS4goBSAIwAOb5sg0YA4jnS5IQDyCJ+wkBknhOQjyLAIR4FvEskrifbQAwBgDb/EskCXGFABDPRYjnZJvnZMxlxvzbmOciSYgrzLOZK4wxL4x5IWxzP0k8L/FAxrzohBCXCfG8xLOZZzHmfpIAIV448S+yzf2EuMI8kDEGwACSAEkAgLDNZcZCAEJIEs/DNiDABrB5FpvLbAPimcSzmctssEA8kw2AwQAYzANJksRlkmwDAOb5EA9kmxdMiOdhbAzY5lnM8yGeSTwXIQDzHMSzGWMeQBL/esbGgDECsM0DSOJ5yOIyIZ6HJF4ASbxgtiXxryGJyyTxHAwoM3kASYBt7ieJ52SbBzAWAoQQtnkekmzz/EgCbPOcJGGusIwBbEsCJNnmASRxP9s8gCQAMBbigYwxBiHEswjANgDYBiTxQkkCbHM/STw/tgFjIUkAxhhjDEji+bENSOJ5CQwG8YJIss1lQgACsM39JAEYwBiDACQBGARgmweQxBXGmOdHCEAAtrnCIABJgG0Ag3gOBoHA2JYkifsZA7IAYwDzbAKQxBUGMOYBJHGZbR5AEvezzRXmOYgXicC8ELYlSbINGGOEeBYhyTYPIAljzAsmiysEYIxBPAeDuELImCsE5gohnkVcYRsAJGEwCIRtALANAJIkcT/bCCEus41BPJAknh9jjBBgGXOFkDHPQ4j72UY8k0EIGXOZbUmSbPM8JPE8bPM8bEuSZNu2JCFjnock2zyAEJcZ8wJIwjwvy7IAYx5Akm2el0EAQpaFANtcZiyLZxFXSLJtLMQDGcQDSbLNZbYl8QCSbAOAJACwzWWSjDHPIgmwzf0kYZ5JGGMADEKIBzDmMtuAJF4wSTyAbQCQZJsHkGSbKwziuRkA8UwGQLyIJGEAYy4TMub5EQKMeQDbQpKMeQFsCyGEuMIYA4jnJQkAbHM/SYBt24AkQJJt7icJsM1zEjLGGEviMtuSAATm2QyAeBZJxhhAiCvEs5lnMeZ52OYySVwmZMxzMcaSACHAGIMAJNkGjAEhnh8hAGEbACRsAGwkcT/Jtm0BEoCNBEgCbBtjhBCAwNzPIJ5NYIyFAEnczzYviJAFAAjb3E8S97NtWxIgCcAYSwJsA7YlcZkkwDZCCMAAxjyQwDyTkAUYAwBCFlcI24BtSTwnIa4QgG3uJ4n72eYFEULczzb3kwTYBjCSjLmfJMA2l0kCMMZCxtxPEs/JNmBbEiAJAGwDknhOtrmfJO5nmwewCdv8m9jmCoN5JoN4XrYlcZkQL5yQhHk2A9jmfrYB27Z5AWzbBmwDgBDPYgBjAAEgnoORJAmQxAsgiRdAEs/JmAcQ4gGEACFJvACSJPEsBgMIYZ6XJEncz5gXkUAAiOcgAGMAY5sHMoCQEPcz5nlIQgAIQIjnxxjAIIQwz595XsY8LwMYc5kxLzqBABDPn3ggSZJ4FiNJEs+PbUkAIAkQEuJZxPOSxAsgCfEvE89im+cink28MALzQJL4FxnMv5d5UYlnMoAxlxlzmW0hACOEwTyLJP49hCTuZ5v7SeL5EeJfRQCI5yLJNi+IeS6SuJ8xz2Kei22exTwv25K4n23uJ4kXTAjAPIskwDbPIq4wRgAYwDaAMeZ52AYk8VzEi0gSD2BbEs9inpt4DgJxhRD/EmOuMFcYC/FczLOJZ7ENIABJPD+2AcSzmecmHsg2L5QkQBL/EiEhY8AY8VwkYZ6beG7mCmNeOPEsQlwmictsc5llIR5AiCvMA1nmMtuAbYwQIEmIy4y5zBjAIAAEiCskAAEgnkkg8QIICQFCAnOZwSAeSIjnZTCIF8g8m0FcIYnnJIkHMOY5SeKBDIB5JvFAxgBGEs8inoN5NnOFJEBICHOFMf9O5kUijHnBbGMAIZ6Xeb5sA7b5N5HEMwmQUGZymSTuZ5v7SbINAJIA2zwvgwAkcT/bgG1JgBCAsM0LJsk2/0qSuJ9t/vUk8Zxs85xsc5kkLpPE/WwDkrjMNg8gCbDNCyBkzP2EjDHGkgAhY56HEM9FXGGbB5AEYJ5NPBfbXCEAzBWSuMw2z0OSbQDAIJ6bEUIYcz8hLjPmMiHANg8khABjnh9J3M82YFsSAAgBloVsAxjAWBKXSbINAJJ4AWwDQoAxAAgBCNtcZluSJACwzWVCCMA2l0myDRgDQoAkwLZtIS6zLMQDSLLNZZIwgLFtSZK4whgDmGcSQsYAQsg2z2IAhCSek20Ag0BgrpDEFcaY52RbEpcJcT/LQra5n20uk8RlkrifMeYKIQCDMAYwiGcxxkjiMlmWAQCDeL6MASEhY8wziRdOEg9gm+chyTYvlG1JkmxjEM/LtiQuk2UMIK4QAixjHkgSl9nm+RECjHkA2wghQMiYyyTZti2Jy2wDQgghY9uSEEKAbQCwLYkHkGSbyyTZ5gFsS5LEZbZtS5LEA9jmeQhxmTEGcYVtSZIwGATCGPNC2JbEZZJsc4UQAmxzmW1JACAJ80zCNgYhCQBs25bEA9jmMkkAgAEQVwgBAMI2lwkBiCts2wYkcT9Jtm1LkmTbNiCJZzEIQAiDeBZjHkCSbQwCEAKMuUwIMAZsSwIkAbYBQJJtzLMJjLEkHsggnpckLrPNFUIIsM1lQjyLADDPJmwDgG1AEpcJAQACAxjzvAziORiEEJcZ85yEAATGmOcgAMxzkbB5AEm2ucJIMuYKAyCEEAAGMOaBhBBgm8skcZltnpOQsRDCGPOCSAKMASHANveTBNgGJAG2AUCSbcC2JC4T4oGEbWMhrjCI5yVkzBUGcYUk29xPkm1Akm0MApBkG7AtifsJIWzzPIyFeE6SMMYYy0JcJgQY85wkcT/bXGZbEiCJ52QbkMRzss3zkLABAkBI4jLbPIAk27woxAthDNgGMJJ4ICPEZZJsc5ltAJDEv414bub5Ey86SfxLbAO2bfMvMQaMhbhMEiAECGEwLypxhW3AtjHPyZgHMs+HEUIAQlxmm+chyTZXGATm2QSAADDPy5jnJMSziGcSiAcy5l8ixGVC3M/YWBIASLLNv8QYAIx5IAPY5jLbknhBzHMwVwhhbAO2bXOZMfezzf0kGfOcjDHPTTyLMc/FAAgAASD+BQLAPB/iudjmuZgrhHgA2wAgCQAkAZjnz7wQQtxPyBgDYISEeC4CEOIyY56HMc/JmCsMgMFgJPEsBiNkmxfKNs/JNveTxP1s8y8Sz5cknpMknh/bgBAgxLOI50sIEAIwz0US97PNv8gAtrnMNs/JNmCbfytjHsi8ELYB21xmWxLPSRLPSRIvCnGFJF4IAQgBmGcTz8E8kCQeyDyLbUCSJO5nmwcSmGcR4gFsC3GZJB5ACDAGbPP8SOIKcYUQL4jAPC/bPBfzXIy5QgCYZxOAJO4nCUA8N/FAQlxhrhBCPJPAGPP8CCEQmOciJAAD5oEkkMQD2JbEZZJs8zyMeSCDwWAAzHOxzQsmBGAwgG3bXCaJ5yTEv5JtAJAEIBDPZDAABhDCPBdJkrifsSSuEJgrbPMAtrnMNoC4wjZgG2HbmGcxkrhMEpfZxmAAIS6ThAEwAMaYB5AkiedhmweQxL+TAWyEADmNbHOFJMA2z48knh/b3E+Sbf4lkmwDGIQQgABsA7aFEIAk/iW2eRaBAYSMAQziBZGEMeZ+kgDbPCfbkrhMEi+YbZ6TJMA2z8m2JC6TZJsHMogrhAAE5tkE5lksY56bARBXSAKMMS+cJNs8D2MhQBKX2QZsAwghLpNkGwBkIYwB25KEAMsY25IkYYwBDEIIsAwIARhjzDOJF0SSbS6TBNjmXyIJsM0LJokrzBXGgG0hxHMQQrYxiAcSQmCMeaFsS+IyIcAYsC2JKwziCiHuZ8zzY1uSJMyzGAOAJK4wVxgDGIQk27wAtiXxAJIwxhgAIQkwxjyQbUlcJgnAAMbcT4j7GQMYhCQus41BXCFkDABCxlxhEJIAjDEGgcBgAAQGMAYkAYBthBAgCcAgbPOchABj7ieJy2zblsRltiUBgG2EEJdJAmzblsQVBjDmMklCAOIK21wmZMxlkmzzLAKQhbEMGGMkcZkkrjDPJGwDgCTbtiUJGWMQVwgBCNu8AJJsYxBXGMsCEM8iBBhzP0mAba4wiBfEtiQeSMgyFkLY5nlIsm0bkMQDSOJ+trlMkm1jIe4nifvZ5gGEjG1LAiQBtnkASbZ5ICOEuMKYB5BkmweQZNu2JB5IYK6QZJsHEhgA82xCkm2uELIAYwAQMuYyWcYIwLYkQBJgGwAk2eYyIcA24oFsSxIyxiAk2eZ+QlwhrrANALaFAMQDCXGFMBYCbHOZJB7ANlcIzBWSbHM/IQABYJ6LMS+ALGPEswgZ2wYkAYAk7mebB5CEAWwbC3GZsSRACBkD4jJj7ieEsG1bEgAghADb3E8IMOb5kcT9bHM/STwn24AQgABs8zwkcYV5LsY8kEEAkmzznCTZBmwDkngexkK8KAziCklcZpsHMpIAy5jnZhCAJMA2VxgAcYUk25IA29xPEmCb+0kCbPMAkmwDtiXxAEKIAGyeL9u2eV7m2QyAAABJtgHbtnlOQtzPNlcIAIF4ICFASIgXwjwfBgCMAQwCEAIASTyQATDPTQCAJC6TxGVCvFCSeH4kSQIA27YlcZkk2wDmmQzi+RDPZp6DeRZJCAABYJ6DeS62bXM/SbZ5LsY2xjZgm+chBCAk2QYwGMSzSOIKgQEkcYV4buJfZJvLJCEASbZ5LuL5MP9qBoN5JnGFEIC5whjAPJMAEM8mAMRzEy+IEM/JGMA8ixCXGfNA4llsAwDmmcyziQcy5nlI4n7GXCaEef4EgPgX2eYBjHlBxPNhnsk8ixAAGAOAbZ7FAJgXQgjxQEI8kHheQgCAeC7GvBBCiPvZxjwvY56LeC5CAOZZJPEs5rkIcT9JPF/iXyTEczGY5yAAIQQGMOa5CMQVQgDiuZkXwhiwzf0k8Zwk8ZwkcT9J/GvY5vmRxAMYY55JvCCSeBYDIF4g80CSeE6SAElCAOYKSTyAEM+PbUlcJoR4/gwgiRfKtiTuZ8xzss1lxkJcYSRxmSSexTyQMS+AMQIBCHGZJF448yy2JfFA4pnEFcY8gDHPw1gSz0NIEpdJ4gEk8QDG3E/IGEAAGAyAQQLAgBAPZABJtm0DmOdD/IcRL5wknh9jBOI5CEDINs/DNi+Abe5nzGW2uUwSz0MSBgPYBjDPTTyTeRZJCAABCPFA5pnMs0jiMkm8aGzbBmxzmSQeSFyGbNvmfpIA2zwnSdzPNoAAMAhZAGDM85DE/WzzojMIIcuY5yWJ+9nmOdkW4goBSMJcYcz9hABjDIAQ4lkEYJv7SQJs8yKQxGW2Jdnm+ZFkmxdAEmAMYAAhwJj7CQHG3E+SbUDImAcSGMC2JP4dJNnmMtuAJACQZJv7CQGWMVdIss1lxkIAAsBcIQljDEgCbAMYSYAxDyBkzAsgBCAwgDFgLAshCcAgbPP8SOL5sQ1gEELGGMQDGQtJss1lkngg80wCAyAA21wmBBhjrrAsxAMIGWMQQoAxVwgh2zyAJMxzELZ5ACEewBhACNnGGANCAOIKSdzPWAiwDQCSMM9izAPYlsRlkjDPJDDG3E+SbR5AiMuMeQBJgDHmgYR4voyxsRBXCECSbS6TBBgLAYBtAIOQZBsAJHE/YyHAtm1JkmxzmSTbXCbJNpdJss0DGcQzGcQDSeIy2xgAAUjiMtsYhCSMsRDCNpdJ4jLbPA9JXGabyyTZBgBJtjGI52AQkrjMNgAIGXOZsZAQgAAA2xjEFZJs8wBCxrYRQgDmmcTzJYSwzfOQZJsHkMQD2OYySbZtS+IKAxhL4gUxAALAIIS4zJgXwFgW4llkGRtzmSQeQBKX2eZ5SLJtLMQDSAIwxjyAbUmAJMA2lwkZ8wC2hQCEJNs8gCTbtiUBQghjzHOxzWWSELIAYy6TZIy5QghAALYxgDECwAAIIZ6TJNu8ULYl8ZwkcT/bXCYEIADAGPPCGIQk2zw/kgDbPIAk2xgEIAQYc5kxBpDECyAJ8yzGPA9JtrmfJMC2bUmAJJ4f24AkwDb3kwQYC9kGJHE/27xwQhZXiGcyz2LMC2VbEs9ijAEhwBgQQjyQEALAAMYYAAEghHgW8yzGPA8hYwBAYJ4vSYBt7ieJ+9nmfpJs80JJ4n62EcG/lSwhxLMY87zEA0niRScAY8y/hzEAYJ6DeSaBABAABsA8NwEgXhS2ucw2l0niBZBkmxeNkBAPZDDPJK6QZBsAjIWEeBbzQJJ4fiTxQkmyDdi2zf1sA7Yl8UAC8yzGgLFtjG0AI8QVAvOCGANC3E/ImBfEPJO5QggQQjyLMebfSLwgtoW4TBIgxGW2AQwAGGOeyQCI5yYAYyGuEIAQgHn+zHMTz03Y5jLbPItAIJ7NYIQAIcCYZxEPJMQDCcyzGPM8bPMAxohnM88iiQcS/zriuRhjjLnMGDDmWcQDCfE8hIx5foR4QcSzCAGIZ5HEs5jnZgBjni8BSOL5EkL8e4jnyzbPyzwHY1uIy4QAY8RzsQ0AtnkASdxPiCvEcxDPZp6Lbe4niReZbS6zzRXiX2AAxLOZf5ExBvFsxpgHsM0LJYnnJGSb5yUAhJAQL4gxFuJ+tgFjLrMtiQewDUjCPJv5l4nnZl4gAQjxAELczzbmRWKeRRIvhDEGMM9k/gUCsC2J5yGJB7ANAMZCCAzmCiEhQIjnYa4wl9lGPJNAPC/bPD+SeE62eZEJ8S8x5nmZZzPPJBDPQUjifpIkAYAkABASAoSEuExICMAAxsaAMYBBIADEs5nnIJ5JSEIAQhgMYMyzGElcJiTEi0YSl0myzb8aykweQBLPj23uJ4nnYgBjDAKQBGAAYx5Akm3AtiReRAbxXCTZ5gUxiOfDIJ6bEMJcYcz9JAG2uZ8QYMwLZVsSIIn72eYBJHGZbcC2JEASgLnCMiAEYJ7FmPsJAQjMFcaAbUmSANs8P5J4ANtcJonnYZsXwlgW4jJJXGab5yFkzBUGcYUkLrPNZUIAArDN/STZBhCyANsIwDYgiSsMQghAYABjrjAIIcQVxpgrJGEQAGCbBxBCGGOukIR5JmEbYwxI4nkI8ZyMAQwCQAjZxiAk2QaMhQAhBGAbg7hCEmCMuUISD2CbKwTmCiFjDOIKIcAy5grbkiRhAGMeQAiwjLlCkm0ukwTYFuIyY+4nybZtLpMEAJIwz2LMswgh27YlSeIKAxhzmSSeH9tCxtxPCDDm+RECEICxLGPuJ2TMA9iWJAnAIADbPIAkLrMNABjEFZJsA4Ak21wmZAwAQsYYY0CSJNs8gCTbACAJAxhzhRACbHM/SYBtLpNkm/tJsi0JwDyTQSBs8wCSbHOZJC6zDQAYxBW2JUmyzWWSbPMCSDLGABiEJNsYhBCAADDGvAgk2bYtSRLPwzaXSbLNAxnEFULGtiXxAEIAAgMYYxCSbNsGJPGcbEtCYK4QMuZ5SAIA24Ak7mebF4XAXCHJNpdJss0DGcQLJIRscz9JtgEMgLjCtiRJto0BIR5ACGGbB7AtCZDEZcayAGMMYCwEIK6wDUjifrZ5AElcZhshxPOQxP1sc4VBAEKAMfcTQjybMeZ+kgDb3E8SYJsHsC2Jy4R4AMuYZ7EtCYEBMAiwjSRAEmAbEEJcYZsHMghAEmCb+0nCIADb3E8S97PN/STxnGxzP0mAbQBjLAkAMAhAiPtZBmRxP2PuJwmwzWWSbHM/IWMMgBCyDSCeg0EAkgDbgBBgjEG8KISMuUJgnkUIYYwBEEKAbZ6TJMA2L5QkLrPN/SQBxoAsRNjmMiFJ/DuJF8IYsM39jAHMMwkAEJLEsxgAEEJcIck29xMCMM9kEA8kiSsEICTEsxgA8dzECyLE8yOJyyTxPCRJ4n62eU62AduY508AxjwvgXkukrifJF4UAkA8L9tcZpvLJPFA4lkkcZltHsCYF4FtXihJtrnCPBdJgDGAQTyTABDGAGCbK8SzmecgMIBtLjPmWQzmOQgAgblCCLDN8xLPQTyLbQBjzANIAoQwGABjmwcSz008kG2exTybeCAhnpNtSVwh/m2EeB6SbPMAtnl+hHgW8y8TgG1eCPMvMJjnz1xhzAshnpcknosBMC+EEM9JCBDi+ZHEAxnEv474l5lnE/8ycYUQBrDN87CNeL4kARgAAwjxAMYIAPNAQjyAJB7ANvezzb+JJMQDSeK5iOdLEi+IkcS/lSReFOaBJPH8CEnCPF+ShGxzP0nczxjAALa5zDYgJAQgnoNBPIttnocQAhBCPAcDGAOSuJ9tXjAhnsU8X5J4UZhnMoAsDCAEAJJ4oSTZtg0Y8ywC83wYIQBxmXhBzDOJZzMvkAAQmOfP/BsIcZkQlwkh/p1sS+IyScbcT4jnJAQACECI5yGEeBEZC3GZkCTEsxnMM5nnSxIPYJsXwDb/MpSZPIAknh/bvFCSbPNAQhZgjDGWxAsgBFjGXCEJsM39hADEFbZ5ACHAmPsJAYhnsc0DSLINYBBCxlwmiSuMMS+YJJ4f29xPEvezzXOSZJvLbAOSAEmYZxKAbe4nBBhzhQAwVwgBxjw/knhOtnl+hBAABgHYBmxL4jJJ3M8Y80CSANuAbUlcYQAEIAnzTOKZjDH3kwRgELZ5fiRhnsXYtiQuEwIsyzLmfrYlcZkkAIOwDdiWxPNlrhCyzPMQ4lmMZR7ANpdJEuJZBGCb5yRkzP0kAbZtCwEIBOYKSQDmCmMuEwIQgG0Ag5BkmwcQMuYKg7jCNiCJBxJCmAcyBmxL4gEkAba5nyTMMwnbtoUAxBWSMIAxgBCyzWWSbHOZJNtcYRBXSAJs85yEAGOMsSQhAPFMBjC2LQQgrhACjLmfJNtcITAvOiFj25J4HrYlSQIA2zyAJAxgzGWSbNuWJAQYAxiEJACwjUFI4jLb3E8SYJv7CSGuMAaEANsYSQBgLIS4wjYASLLN/YQQGMCY52FbEiCJ52SbyyTZxgCSAIRtnpdBSOIy2zyAJNsAIMm2bUmAJMA2DyDJNgBIss0DSOIy29xPEs+PbduSeABJXGabF0oSl9nmOUkCbPMAkmzzAJIAwDYvgCTbAGBbkiQMYBvxQtiWxItCYGxLAiQBGAwCQAC2bQOSeC4Cc4WQMZcJGQOAbUmSbPMCSLINAJJs2wYkcZkkwDaXSbLN/YS4QmCexZgrzDOJF4Uk24BtSQAgifvZxiCEjHkAIQBhm+ckBBhzPyHA2LYQQggwBiQBGMAYkATY5jlJAjDPJDCAMSAJsM3zELINIAAh7mfM/SQBtjGSAGPuJ4SwzQNIAmzzALKMAWNJgCTMFcZcIWQBxoAQYBsB2EYI8YJJMsZcIYRBAMbcTxJgm/tJss3zY1sSz0mSbZ6HJACDCP4ltnkASTw/trnMtm0A82xCEoBAPH8C8yKyzQNI4jkJ8S+xLcRlQsY8F/McDCDEC2abyyTxIpBkG7Btm+cins08B/EcDOY5iOdizL+WAIwR/zIjC/GiMDbmBTHPQTyTeC6SeCBxhTEGcYUQl8nifsa2hbhMEgAgHsg2z5cAhIwBwJgXRDyTeCBJAOJFIcT9bNsGAGMuE0K8MOb5EEKAJJ4f21wmxAtinj8D2OaFM89FiAcSAOLZDCAECHE/STyLATDPl22uEAgAAWCegwGMMYAxgHn+xAMJSeJfYsyzmGcTgBCAeWEEgHgWSTyL+Y9hni9j/g3Ms4nnyzYvGiEAASAABCAkxGW2ucw2gBHiAWwLAZL472Cbf4kkSVxmm8ts868kiQewzfMSD2Sby2xzmW0AI4l/iW3+JZKEeJFJAiRJ4vkxFuJ+QgAgCbAtiX8NSQDiedmWxAsnnsk8m/kXSeJ+kgBJiBdEEg9gDACSEM9kXhgjhPgPY14428aAMQ8knkk8f+KZBOLZDOKBbNvmfkJCxoAxz2IADAbzTOaZzDMZSVwmSYgXyjYGwDw38RwM4gpJtgHbPA9JtnkASbb5FyDbxpgrJAG2uZ8knpNtXjSSANvcTwgw5n6SAGMMYFsSIAnAPJMwBoQA2zwnSTyAbZ6HJMA2YCwkZIx5JvFMAvNsBkAIAcY8P5IA29xPEmAbkATY5n6SANs8P5Jsc5kkwDb3kwTY5rkYxBWSANuAbSEA8UCSbPMsBkBcIQmDeBbb3E8SD2SexZhnEZjnwyAASdzPGHOFLMtcJgQgANvcTwhA2AYQGACDuELImMuEAGMMgLhCkm0eSGCel21JkjBXGHM/21wmSQgwBmQhAGMusy2JBxKYKyTxALYxiCtsS5Jk27YkLpOEucKykG0Ag7hCyJjLhIwxCAAhZJsHsC2JK8xzEIAxRhJXGMQLIon72QZsS5KEMeZ+tiUJAQjbPIBtSZJs8yxCyDYA2BYSssxlkgBjDAZAAJK4zDaXCQGWAVkAYMxzMQBCEpfZ5oEE5grbkiTZxiCexRgjBCBeOEm2ucy2JEmY5yBsA4BtSUIAAvMchG0M4oEk8QC2MQDigYQQz2QAYwAQMuYySbZtS5Jkm/sJIWxzmSQusw0AGAQgCYMMgADbtiVxmQwSwjYPIGQMGGMkCSEA2zwnSYBtnpMkwLZtAJAkyTYASLLNZZK4zDaXSeIKAxhzhcA8B4OQxAPY5jJJXGbbNiAJACQBtm1zmSRAEmDbNpdJ4jJJtm1LAiTxQAYB2OYySbYBwLYkQAgwBgDbPIAknpdBCAEIALDNZZJscz9JgG0eQMiYyyRxmW3bkrjCIAAE5rnYlsRlkrjMNveTxHOyzWVCiGexbVsSIIl/iW0us40Q4jnZlgQAtiVxmSTbPIAk2zyAEFcIwLZtSQACAwgZ8y8yiCuEuJ9lQBbPIp7FNs8iMM9LCEA8i20eyCCegxACbPMAkjDPYhlzhZCxEMI2z0vIMsYgnpcQYBtAAEI8kEEAxtxPEmCMASTZ5vkRAowBSTwn2zwP25IASYBtALAtCZAE2Ob5kQTYBgIjxL+VJF5EBvMCmX+BedHZ5l8iBBgDxsaIKyRhnoNAPJOQBACS+HeTxPOQZJsXQBJXiGcSQlxhXnS2eSCBeCaBeS6SeEHE82ckSeK5CECIBzLPZF4QSTwn21xhnouQMeaZBAJAIABAEuYK21wmJIn7SeK5iGcR4gEkcYV4NmPMZbYl8VzMv8AAtiXxvATmWYR4HkLG3M+YKwyAASRxP9u8IOIKIcA2gAEwVwjxohPPYhvxTOK52JbEA9gGMM9kbPMvEs9N/OuIBzLmMts8J9vcTwjAPIsQYMxzMuYyISFAiPvZ5rkYYx7ANs8iAMTzZ/5FkoS4wjw38UDGvACSeBbxQMa8qAxI2AYw5jnY5jJjSYAQ/3qSeMEkcT9J/EcxLwpJvFCSeB62ucw2IInnS1whiftJAgDEM4lnsc2LQmCeyTwX25K4QjyQbS4zlgQgHkgSBpAFAEKY52IM2OYy29zPNv8SY/4jSBLieUjifpJsGwO2JUnifra5zLYxYAwgnk08k7nCWAgAhHggIYkrBCAkxPMSz5+4QhLm30g8N/NAtgHANuKZBOaBhAAM4nkJGQOIZxL/AvEcxBVCACDEFeYK25J44cQLJwkAJPEAkiQBkvjXQZkJIIQA27xgknh+bPMAkngA2wAGIQQYcz9JgG3AtiReAEmAbUASYBvAIIQABGAbwCBeVAYBSAJsAxjEA0myzf0k2QZsSwIk2eZ+krifbZ6TJNtcJsk2L4AkHsA2l0niWQxgG7AsxPMQMgZsA5J4ACGeRTyLMeaBJAG2eb6MJIRtDOKBbEuSZBuD+JcZSYBlDICQBWAQxoBtSTwvg7hCEoB5NmGby2xL4jJJtgFJgG0eQMgYAISMeR5CCMyzGHOFQQCSbAOAJNtcJgljzP1sS+Iy25J4AEmAbQCDkATY5gEkAbZ5ANsAIEmSMQawLYkHsC3EZZaFhIx5TsYYSZJ4TrZ5URgAIck2z8O2JF4EQgDimYwx95MEGGOuEDLmMkmAbe4niQewjUFIwgDGGAABSLKNQTyQkDEASLJtWxIPYBuQBEiyjUE8mwEQkmxjAEmAMWBbEpcJGfNABiFkzAPYlsQVQgiwjUFIsg1ghCzzPGxLQmCukGSb5yFkDAC2JQkBxpIA21whhAwyz2JsAAsBWBII24BtQJIQArDNAwgZ25YkiQewzXOSBNjmeUiyzXOSBNjmecgyNpbEFQYhyTb/SpJ4ANsAYFsSl0myzQtgWxL/WgYBIDD/IkkAYBsDIIQQxpjnIokHsM2LwLYkQAgAELZ5ANsIIR5ACDDmfpIA29xPElcYY4QshG3uJwQY8zyEEM9im/tJAowxz59BvKgEBpBkmwcwloUQAhCAbe4nhLBtLMRlQlxmGZAFGHOFwDyLEIAAbNuWxHOSBNjmfpK4n20uEzLGIABJgG0usy2J+wkhbNuWBAjxLOJ52eYBJGGMeS4GQAAIzL9Ikm3uJ4nnxxiQxfMStrmfJMA295Nkm38lSYBtIGwDmOdLEi8CSTyAbZ6XeCbxgkgCACEuM8b8y8zzZ4SEAMDYGMAAQggEgHhhzBW2AdsAYJv72QZsS+IFs20bAGxzP9u8AJJ4ANv8i4wxz0mI+0kCbHM/IQzm+TCAbds8L2ObBxLGgBCAeRbbknggAxhzmZAQz0kSz8U8BwEgAEmSuJ9txDOJ52Wby2xzP0m2ucw2z0nImGcxmGcTz2YQgDEPJF4YgXkg24gHss39JPGisc39JPE8jDGAbcQD2eZ+xhgMIMRzEhLiXyJJEs9ihLhCAEI8J0nczzb3k8S/ivkPYJ4P868iicsk8QC2AUmAJGMus82zCEDImCvEs5lnETLm+TFGPBfbvGCSAEk8P8bcT+JZJHE/Yy4z5jJjAHOFEC8Kgy3EM5nLJAGSAAyAwSAeyJj72eZFIIkXzDbPSRLPw5gHkAUI8S8yz2SeSbwgkmxzP0k8D0ncTxIvgG2eiwGEJGFeFLZ5FoEAEADmednmBZPE8zLPlyQuE+IyIQBxhRAG8yySeFEIDOJfYABjnpMxD2QA27Zt80ACI8S/RBLmCmMhABAChBAAAvFM4jkYQMi2bcAYgXj+zDOZ5yUJACTxopHECyGukGTbmGcxgCSuEM8knpdtAIMREsI8kCSekxDmORjMMxmMbcA2/w7GGMQLYZsHsG3bNpdJ4l+AsiUCkATY5n6SANs8P5J4TrYB25J4ACGeRTxftrmfJIwxl9mWBEjiOdnmCgMghBC2ucIghCxjHkiIKwTmWSxjnoMBEA9kWxL3sy2JB5AE2AYkAbZ5kdkGJPEikARgANtcIR5IEvczxjwvIe5nGfPvJAQYA7YBSbxQQoAxYCwkyTYG8UCSMMY8J0lcZts2QgiQhDEWMuY52ZYEAJIA2zw/QoAxgHkm8cJJ4grzHMQVtnkAIcCY5yTJNmAbkMQLIIkHsM0DSAJsAxjEA9mWxGVCxjxfBkAAkgDbXGZbkiSek23AtiRJAGCby4QABAYw5gEk2eZ5SLLNA0jifsZCtrmfLGNjSTyAbUlCxlwmCbDN/STZBgAh7mcMYBBCAGDMZULGPIAk7mcbsC2Jy2wDkgBJgG0usw1IkoS5wpj7ScIYA8ZCgBBgbJvLhAAEIAmwzf1sA5J4ASTZxgDGkrjMthCAEDJXmMsk2bYNCCGEjG0jhAAM4jkYBCAENmAQAgMGIQkDBgHGPJBBSAIA21wmybZtSYAkwDYgCbBtWxIvlCTbtgFJgCTbACBkbJvLJAkZc5mQMQYhyTYGIck2l0myzfOQxGW2ERhAEmAbsA1I4jJJtrlMEpfZ5gFsc5kknodthBAgBADGtiVJAmxzPyFjDAKQBNjmCiEE2LYtSZJt7ieJy2xL4jnZ5gFsS+KFkmQbAIQAwBgDIIQQxhhAkm3uJwmwzf0kYYy5TIjLjDHGkgDbkngAIWPuJwmwzQsgBGCMEc+XJC6zbVsSlwlxmTEPJISMZfGcjHkekrjMNoAxlsQDGUmAZcwDSeI52eZ+kgDbXCYJY4wxlgRI4n62eU5CxjwXAWCeL2NZAAIQMhYCEIBtY1kIIcAYAGwjhADbgCReAEmAbe4nifvZ5jkJcYW4wjbPj21JPA9JPD/GgCxE8CKTxL+NeCbxL5LEZUJcJol/kQAwAEaSJAABGAvxAEI8i0E8k8A8i5AQDyBJEiCJB5DEv0QSLzJJgG2ehyReMCEA8UCSuMwYEOKFE5hnMs8iiQeQxAtlDAgBkvhXMc/NPIskAPFsBhDiMttcJgRIwgBCPIt5XpK4TJIknpMQlwkJAQDigYx5QcyzCcQVtnkuAhDieUgCJPE8JCFedEI8gBCAeSYhCfECCcA2YJv72eZfRTwvYx5Akm2ehyTbvGBCPJB5FmOexSBeOEk8kHgm8bxsY/5VbPOCSQIk8Szi+RPPZGwDxjw/QojnJQnA/IuMeX6EuJ95TkIIEOJ+QjxfBsDcT5grDEIIAIN4NvMvEuI/giTuJwmQxLOYfxUhnkW8SAzihbDNi8Y2z0kSz0kIkMSzmCts2wZsGwPGQrwg5lkkAbYl8TwkYV44STyAMc/DtiSeiwEQAALAXGFbEgBI4vkSz2LMswhJXCbJNg9gWYjLhADMC2EMICTxAtjmfpJs2waMEQgAsG0MYAAhXjS2eQBjAIMR4grxTOZZJPH8SOIFsG0MGPMiEDLmeRkMYNuY52FszP2EeE5CCACBkIQAJAlxmSRJPCfbtnmR2eZ5medLEpdJ4kVnHgA5zWWWASHuZxuQxP1s8wJIss1ltgFJXCbJNs9DEvezzfOQZJv7SeL5sc2/RBKX2eaBDAJACAG2AQzimQyAACQBtvmXSOJ+trmfJO5nm+chCbAN2JbE/WxLkgTY5n6SANsABiEEIADANpcJAcYAIMk2gEFIAowxz2IbkMTzkAQAtrlMCLCMuUIIYYx5IGMhACHEsxjAGIN4INuAJCFjAAFgAAwCQGAeSBJgGxACjLmfJNu8ULYlCRljEM9kEFdIsm0bIcT9bEuSBGCuMOYyIcAYsA0AkiTZ5nkIIQDbGMBYEpdJss1lkmxzmSQus41BPJAQgMAY85yEEBjEs9jmfrYBSTwPSba5TBJgm/tJAgDbXCYJwCCMMRgEgJBlzGWSuJ9twLYkSYBtQAhxhW2exSAAY4wkHkAIQAC2AUkAYJsHkMQD2LYtSQjAGBtLkmQbg5DE/YyFbPMsBnGFsZAkwDbPSRJXGMCYyyQBxhjANiCJ52IABCAJYwwAkmxzmSxjY0mSbPMCSLJtW4hnESAwNhIAYBBCXGaMQUiyzfMQ4gGMAUCSbS6TxBUGMOYySbZ5AEkYwJjnJInnZJvLJNkGANuAJEASl9nmMkm2ucy2EOL5si2J5yFkzGWSbAOAJNtcJgnzTAKDeCDbvAC2JXGZJC6zzfOQZJvLJNnmgYQsjDECkGSby4yFACEAQADGQtzPNpfZlsQLJokHsC2J+9nmRSMJY4wBJBnzryGJ+9nmuQgh21wmZMxltgFJAALzXCQBtnleAnOFJNs8gG1JgCTbPD+SbAO2hRCAEGAMCCGusM0D2JbEi0YIMOaBBOZ5SeIy27xohABjAJAE2AZsS+JFYYwBSdxPCDDmMkm2eR5Cxjw/kjDGPCdJgG1eKNuSeB5CxtxPEmCb+0myzQNIAmxzP0kA5n4Ez2Iw/2a2JUkCJEniMkm2Adv8K9nmhTIGEFcI8Zxs8wC2eSDzbOZZhHgWAxjzAJIAQJIQgLnCNv8+tgFJgCQeQBL/IvFM4grbAAbzXGwL8VzMA0kCbPOcJHGZbZ6XeDYjxAPYxtgGMM9BAEIIDOZZJAEYY64wQpIAxDOZB5LE8xJXSAIk8YIZCwHGPJBBXCHJNpcJAUIA5jkIhDFXmOclCTDmuRgMgAGEuEwSl0myzQthnskAxjyLeIEEgHhBJAG2eU6SbPMCSOJ5GQABYIQADIBBSAKEeFGIZxPPS4gHMpgXxJh/ByH+40jiWcRzMM8kAEmAbe4nhHmBBIB4viTx/EjifsY8XzaAAYR4FvNs4nmI50fiBTMIQAKQeL7Ms0jiXyKJ+0kCJPGcJHE/2wACEOI52QZs8zyM+VcxiOdlGwAkcT/bgG3+JZJ4ANuSeL4EgAAkcZkQz8vIss1zss2/kiTMc7HNCycwAAZAGEvi+ZEkiX8tY5v7GUvifpIASUJcZpt/iZAQ97PNZbZ5TrZ5AWwDgBAgJMQDiRfCNi+AEFcYzBWSeCDzfNnm+ZEkiedinpdt24BtnovBCPEAQgDiuQkE4llsS0IAQtzPGMAAgCSuEBhAiBdKEs9inkWSbds8kDEWAgDEc5Fkm381lJlcJonnxzb3kwTY5jnZlgRIss39JNnmOdmWBEiyzXOyzWWS+JcIAcZcITDPlyTANmBbEvezDUjigQzi+RCYKyTZBoSMMcaAJEASYJvnJIn72eY52ZYESAJs8wJI4jnZ5n6SbPM8hABjjGUhIZ5FALYB25J4UQjMFZIAzHMTgG3ANpdJAgBJtrlMkm1ACLBtLInnYowl8QDGQlxhEJJsc5kkHsA2DyDJNg9gWxJXGMQVtiXxAJJs8wCSbGMQV0iyzQMZhBBgDNiWxAMZY0AIQAgZA0KAsbGQJMA2z8m2JEkABgCMAduAJEkYY0ASl9nmMiHAmH8fSVxmmxdAEvezDWAQL4gkLrNtW5Ik7meb+0niMtvGQpJsc4XAYBBCAAIwBmQBgDGXSeIBbHOZbSEhYwBxhZAxBoHAXCEEIADANgbxTAYhBBgDtiVxmSTANvezLYnLJHGZba4wCEkY24BlIUCSbUmAbS6ThAGMuZ8kwDaXScI8k7DN8yMAjG0kCRlzhXkmIQQgLrPNFQJzPyEE2OYKG4kHkGSb+wkhbNuWxBUGQDyLJNtcJokHsM3zkGSb5yHJNmAMCAkZYxCSbPM8JNkGAATGtiReOIN4DkIIsM1lkgDbvGCSbHOZJNs8gG1JgCTbgG1JgBBXCNsAIMk2L4AkLrPN85Bk27YkLrMtCZBkmweQxP1sA7YlAZJ4ANtcIWRhjBHPxTYgCZDEZbYB24AkQBJgGwBsS5Jkm8uEjLmfJMA295ME2OY5SQJs2wYkAQghwLaxEPezzWWSeB6SMMY8FwMgACHuZ8xlkmwDtiVxP9uAJACQhDHmgQziCkm2bUviBZME2OZ+kmwDkrjMNlcYhJAxz8m2EOK5CPGcjHlOkgDbvABCthHPZhCAJO5nm8uEEM9iDAhxP9uAbUmAkDEPJDDPZBBCiOfLNpfZlgRIss1zEZj7Edj8K0niMknczzZgWxKXSbLN85DEZbYB2zyAJK4wGCFeFAbASOJfIonLJAGSAGOexSCelyTMs9jmMmMA8W8mifvZBmzzAJIk8aKRZJvnIcSzCAyAQADGPCfbvGC2uUyIK8QVxjwX81wkcZkk2zwPYwAB2OZ+kgDEc7EtBEjiMiHbPD+2ucw2z0kSz48Qz48k2zyAJNs8gCTbXGYMYJ5NPBchIQwgJAQAQsZcZswV5oEkcT/bkrifMQ8giRedeCbzfEnifra5TBL/ZuI/nG2ehyQMgHiRiOfLNs+PJGOel3m+bHM/WTwn2zw/tgHbPCdJ3E8IMAaMMc8ixPMSL4x4DuYFMQAgnpNtnsU8J3E/8wDmOdjczzwP81xsAxgA8a9im/tJ4gWTBAhhMM9FEi+UEA8giefHNi8a27zIbPMAtrmfbcA2ACAQz8s2ANjmedjmBZDECyDJNmCbF0wSIIkXxAAISTw/kvjXsM1ltiUBkhCAbV448UCSeABJACDECyWJ5yIkYR5ICAMYG3OFeDZzhW0uk8RzkgRIkoQBMM9BYK6wDUgCAElcJiSJF0CSbS6zzWWSJHE/Y0k8gG0h/qMZGwO2JfFA4oUw5kUgifsJ8QBCkrhCAMb8SyRxmW2el3kAlJm8UJK4n23uJwmwDdiWxL9Ekm2eh21JgCTbPIAQYMzzIwTYRlwhyTYPIAQgANvcT5JtnsUAiAeShAEQAMaYZxGYF0KSbcC2JEmAbUASYJvnZFsSDyAJsM1zkgTY5n6SuJ9tLrMNSAIQQoAx5goh7mfMCyKEuMw2z0kSYBsAhABjrhBCtnkekmzzPGxL4nlIAowxgG3uJ4nLhLifMS8aSVxhjLmfJMwVljFXCHGFsA3YliQJsM39hIx5HkIAArDN/SRhnsWYy4QAy5jnJQkwxjyTMUYIAYAkHsA2AAhxP2OELARgG4O4wjaAEBIyti1JCDDmOUmyzYtAEmCb+0myzWWSbNuWxGW2JfE8JHE/2zw/tiVJwjyTsM1lkgAM4grbAAYhyTYviAEQL4SQsW1JQsa8IAYhBBjzfAmMbUlcZlsSz0PImCsM4gpJAAYB2OY5CSEeyDaXCRljEIAkwDYACBnbliTJNi+cQQgBCNu2BUg8gCTANpcJDLYBSfxrSLLNi8A2IAmQBAC2uUySbduSuEySbQDAIB5IyJjnIYnLbHM/SYBtDOIK24AkAIF5XpIAwLZtSZK4n23AtiQeQJJtXijbkrhCCAG2eaFsS+IBbEuSBNgGJNnmBbANSAIASYBtnh9JgG0eSGAwiCtsA5IA25Ik8QC2AduSAEASYBsAbEviXyKJ+9nmMkmAbV4ASYBtXihJtgEAIQRgjIUQGMAYg3gWIe5njEE8F0m2eS5CFmAMAELGgG1AEs9JEmAbACTxALYBQJJt/iWSANuAbUCIZxGAJMyzGQABAMZcJsk2l9mWxPMyCCEEgHkWYx7AWAiQBNgGhABjLhMy5n5CxoAQ4grbgCTbvGCSbEsCbPOvQACAJP4dJPGC2bYN2JbEZZIkcZkkXjiDuUISV4hnEldIsg0YG/OCCdnmgQRCSIgrBOaZDAYQ4jIhIV4o2wAgiReNJP4jSJIESAJsA5grhLhCvKjMC2Eb82ziORhjnock2zwP24BtnkUAQgAgJARI4jJJPC+B+NcxDySJZxFCCEAIwAAYxPMhACFj/q2MeSDxojKAEMY2L5x4NgEgANsA4rkIAcY8gDHPSZJt/j0EIMk2z8M2/0tIQgBCAOZ5CQkBiOcm/lVs80KYZxPPRYgXmTHmhTHPIol/kXluEiCeP/FsknhOQkK8UJL4l9gGJPFCSbLNZbYl8a9kmxfOALYBSYAkIcQVQtzPNs/JNpfZBmwDtrmfECCJ50cS97PNFQbAPIskHkASAEiyzfOwbZvLbEsCAEk8gG1AEs+Pbdu2ecEkCQEIDGAMSOIySYBtnpNtSYAk7icJACTZ5t/Etm1eAEk8P0I8F/N8CXGFeCbxHMzzEuIBbPO8DOK5GcwDSeIK8Vxs8/zYlsRlkrjMNveThHiRmOcgEM/LNpfZ5n6SeCABGPNcxHMz/yJjAHOFMZcZc5ltLrMtCQEIcT9j7ieJ5yEJACRJ4jJJPBuyzWW2eX4kcT/bvMhscz9JXCbJNveTZJsHEkIYAIEBjDEIQBL3sw0IAQjANoB5JvFAQtzPmAcQAowBSQCAeRZj7ifJNoCQxbMIwDYvmCTuZ5vnR5JtLpME2OZ+krifbe4nCcAgbPMAtiUBkmxzmSQA8yzGPIAk29xPkm0ukwRgjDGIB5IEGGMwiOciictsA7YlSbLNi0gI2QYwCEASxpj7CQEI2wAGQFwhiSuMsRAAGPMvMogXRIj7GWOMJQkhrjAW4nnYBoQQxpgHksRltm1LksQVxhjAIISMAduAJEkYY+4nCbDN/SRxP9uAsRCX2QYkYQDEFUK2jSVJwlxhDNiWhMBcIYkHsM0LIAmwzb9EEmBbEs/JNs9DyBiDuMK2JC6TZJsXgW1JQlxmbFuSkLFtSZK4zDbmmcQzGUDIMoAQss0DSOIy21xmW5KQMS+IQTyTwFwhBCBsc4XAXCHJNgZACCEADAKwzQMZBCAJsG1biMuMJfE8JGEAYx7IIJ7JRkLC5jJJtgFAkgGb+0myzWUSIMC2bUmSuMJcYSwJsM1lkmzb5jJJPIAkLrPNZZJsA4BtQBKXSQJsc5mQMQ9kAGOEEIDAXCGJy4wBWYAxz0MS5pmMsbEkQBJgm/tJAmzbRghxP0nGmGeRxP1sSwJsA4BtSYAknpNtYyFeANsIIV4oSYBtHkASANjmBZME2LYtCZAE2OZ5SLLNA0iyzQslyTYPYBuQBEiybVsSIIn72bYtifvZ5jJJXCaJ+9m2LQmQxPNjm+chyRgDIGQBxtxPCDBGyOIyY8AgnoMk29xPEsYYAISMeU6SAAziCtvcTxL3s839JHE/2zwvgXkWYyH+DQziORgEgMAAkmxzP0kA5pmEbcA2AEjiWYQsAIMw5goDIP5VhIwxxpK4TBJgmxdKEpfZ5pkIm38DSTwnSTwnSVwmicsk2eYBbEvigQzmmQzimcQLI54PIcTzJSRJ4n7GxlxmGwAQz2YwV9jmCoMAjHkW8SySJPGCiGcSiCsk8SKTxGWSuEI8L0lcZpsXQkjifrYlcZkk27wg5nnJ4grzXGzz/EjiX2IbwAAIAIF5JvFs5gpjBIBAXCGJKwwgBCAQz2LM82UQ/wpCCANgAGMh7meb52WusG2bB7DN8yOEeRZJgCT+TSTx/BgDQlwmCUA8H+JZZCGel23uJ0kS/w6SeFEIY56HbZ6HJF44c4UxD2ReRELGGAADSOIFsw1gACGei3huQhYPJF4IIQABIP6dbPNcxLOZ52IDYACBMC+IzYvMNv9pbAOSAEncTwjAPBch7icESBLifrb51zIvOklCPBcD2OY52eZ+kngRCNnmfrZt8wBCACCJ+0nieUjiv4ptXmS2eU6SJAGSuEwSLzJJXCaJ5ySJBzIvCmPMM5lnMs+HQQDGgG1sAJDE82UAzBXGQjyAJF4wSQBgmweQxL/IXGHbthCXCXE/SVxhMM9LCIHBPJsAhDBX2OaFMA8kiQcyzyQAxDMJxBWSEC+EsTFgDCAkAZIk8aKxzXNDThvzryTJNveTxHOyDdiWxGWSANsAxlgSIAmwzf2EAAwCQGCexTIgBGAAY+4nxHOyjAEwCEASxpjnx7YknkXIAox5wSQBtgEhAIGxjHkOAnOFEALAAAjANg8giedkW5JtLpME2OYySYBtXjDbkiQBtnnBJHE/29xPyJgrDIAAJAG2AUDINmAsScjYtiRAkm2eH0mAbV4wIQSAucIyIIQxBoQABAYwxiCel5AxD2AbIcTzMAaEeABJtjEISZgrLGNsCwEIIcAy5gpJgDEgi8uMAcA2AEiSBNjmfpIwxgAGIWQMIIRs8wIIIWwDtiVJss3zEhgAAyCEAIRtHkCI+xlzP0mYKywDQoBt7ifJNpfZliSJB7BtWxKXSeJ+tiXZ5jlJss1lkngA27a5TBJXGMQDSeJ52OYy25KEAMuYK2RZ5jJJtrnCIISMbQtJwiCMuUwIQNjmMkmAbcA2QggQAhC2bUuSZIwBhADEczDGQoAxlwkZ25bEZUJcZgwAknhe5pmEbV4o25IkcYUBjAFAkm3AGCNJACDZxkbiediWJInnZQMGGwlJXGGeSdjmMklcZpsHkMTzsM0LJWQMABhAEoB4JgMYYxCSAIyxbUmAJO5nm8skAbZ5TkIAxhhACBlzmSSexRhzmSQus80LJgmwzWWSbHOFkAUYA4Ak27wAQsZcJonnYZt/iSTAtm1JkmxzP0nczzb3kwTYBgBJPIBtwDYgictsS5Jkm8sk2bYtiQeQZJv7SQJscz9J3M82L5gknpNt7ieJ+9nmMkm2eSCDuMK2JEAIMOZ+krifbR7IRgIkcT/b3E8IMOZZBOZ5CSGMASHANveTBNjm+ZHE/WzzvAwCkARgnknYBmxLAhCYZxECjHkAIS4z5l/DNiCJ5yQEGANCCNvcTxL3sw1gjCXxLAZAPF+SANu8ALYlAZJ4FgME4grbtgFAEi+UbUn8SyQBkiRxmRCXCfF8iWczAOZfYDDPJJ6DeDbxTAbAPJAk7mebZzGI5yJJEv8igXkgSZhnEwDmmYxtwLYxL4AkHsC2bV4EkgBAEi8CSTyQuELImCuMEJcJ8Zxsc4UAjAHANmBbkiTuZ5sHEOKFM/8ygQGMMS8qAwgBQjwnIQxGiCsEBkAIAQgAgbnCGMD8CwTCmMtsc4V4/swzmSuMucIAkngAIZ5FPIsQz8tgAFkABkA8k7DNi0Jgns08m7hCEvezLYkXwDbPQxIPYJvLbPOvZZ5FEs/DNpfZ5lkEgHhuwpgrDEKIBzIvkHi+hHgW8dzMCyeEeQ4CQNjmuZh/mXheQvwrSQKEeBYJECBh85xsc5kNYPN82GCel3gg2/zHMeYy2wACQDybeCbxTAbAXCGJF8A2Lwrx/Ilnsc3zEi+cbUkAQogrzBW2hfgXiRdOEi8a24Bt/jVs8wLY5gFsS+IBJAGSANuAbcA2z8k2//lsS+KBBAYw5lnEcxAvjASIF0w8kCTM8ycwGMy/kXlu4pnE82cAQBIgSUgSzyIAIR7AGIG4wrYx95PE87Btm+dlnslgMAAG8XwJCQFCXCbEAwhxmW3bvACSeABJPH/Itm2ehyTbXGZbEs9JEs/JNi8CIWMMApDEc7INYBAPJAQgANtcJmTM/SRhAIQxRghhmwcQMsYgAEm2eQEk8Zxs85wkARjAGJAE2OZ+kgDb3E+SbV4oSbYBQBL3s83zI4n72eZ+kgDb3E8SYJvnR5JtHkASgDHGIK4QMuZZBOaZDIC4QsgYsA1IAiQBtnleAnOFJJ7FAMZCCMAYkAUYA5K4zDZXGMQVtrlMEg9gWwhAXCEJ80wCAGxjACHLAALzIpKFMOZ+krifMeaBbAshAEk8FwMY8ywCc4UQgLDNZZJsc5kkwDZgWxKX2eYySUKAMYABJAGWhWwDGIQkwBgQwthGAAghzDMJwDYghABscz/bgCSeh21JXCYJsA1I4jLbPIAk27Yl8UJJwmAs86IwiCuEeBZhm8skYYy5nxCAsG1biCsEIAnzHATGWMiY+0kCjIUA27Yl8QCSAGPMFUJcZiwEIK6wjTEGJEnCAMa8IEIIwADGGIQQzyJs8wCSeB62eQEk2cYGkABJtm0DkgBJXGabBxAYsJF4HkLG3E8SYBsAJAGAbZ6HJC6zzb+NwGAQVwgZ25bEAwgZ8zwk2eY5CWEs8wIIGfO8DEISYBuwLQmQBNjmfpIAYwwgyxjxbAYhyRjzLEIAwjbPQxIPYJvnRxJgm+dHEmAbkMRzsm1bEveTBNjmAWxL4gEkAbYB25L4t5IE2OZ+krifbR5Akm3uJ4n72bYticskcYUBjDGAsSQeQIgrxLPY5n4CwDwHSba5nySek22uMADiCkk8J9u2JQGSANuAbUk8gCSel0EAmGcTAOZZjHkekgDANpdJss39hBC2AQCDACQBtjGIF5EQ9zMGhBAPZJtnMQACEOI5GfOcJAG2eR6SbPP8CCECkMTzsC2JyyTxryRJEs+PMYD4F4jnJhDPxViIyyRhnslgnslIEuJ+xgDiCtu8AJK4zJgXRAAYxAsiieckyTZg2zaXSeIBJNnmRSaJB5DEv0QSz0OSbS6zzQMY8wCSjAGMbQAjSRKAeBZJCEmAJMA2YJsXxLwgxkKIBzI25gFsAxjbiOciiQewLQRI4gqBeW7mCiFjDIB5JvMCiWczzyaeg3lBhLjMNs8iXnSS+DcQz8H8KxgAc4UxzyIQV9jmASQBtnlOtvnXkMT9bPMfRIjnZa4w5kVmzHMRL4x4ICEewDbPyzyTucIYMOZZzBVCCACD+NcxAOaFkMS/mQRI4n6SAInnYpv7CZCweR7GXCGel21eMNu8YEK8yGxzmTGX2eYBjIV4fiTxvATmuRgDgDHPywBCGNuAbf5FBsAYSwIQkrifbcwDGSNeENv860niX0OSbZ6Hbe4niedk2zZgG7DNA0iSxGWSeABJkvi3ss0LJsm2bcA2VwhACAEI2eYBjHleEs+PzRXGvFCSuEIgrpDE8yOJ5yGJF8yYyyxzhbjCmOchCXGFbduAbZ6TbUmIZzMIBIAAhHgWAQhJ4kVjbMyzmOfDYABjrhDPTTyQJJ6TJO5nWxL3s22bZ0OZCUjiMtvcTxJgm/9wAnOFJMA2VwjMczOIZxEyBoyFAEmAbQCDAIQAY/41JPEAtrlMEvezDWAQkgDb3E8Sz8M2l0nifrZ5HpK4n20eQBJgG5AE2OZfIon72eZ+kmxzmSSek23+JZIwxjwPIWPuJ8k2l0myzQNIAgDbPA9jIUm2AUASYIy5QhKAeTZhm+chZGwbkARIss0DCBlzmRD3s4y5Qggw5jnZFuJZxLMJWQAGARjzQkmyDWAQzyKEADCWASGelzEWQmAAYy6zLUkSgDEGbAOSeABJgG3uJwRYBmRxmTGXCXE/Y+4nBCAwz00AtgFAkm2eh21JXCYJsA1IAmzzgtmWxPOQxGW2uUwIQNgGbAOSeABJmGcSGGNACDAGbEviMiEAYRuDeC7GGEmSjDEABiEEYBAI21wmCbDN8yMJsC3JNvcTAiwDQgBgjBECjHkgIQTY5nkIAQjbgBD3M8YghIy5TMiY5yHJtm1AEiDJNs9DkgEbsJGQZMAGBOb5sQEDkgCwLYQQQgCAbZ6TJMA2z0OSbS6zDUgCJPE8bNsWkmTMCyDJNpfZ5jJJgBDCtm1JkngA21whZAG2jSVxmW1ACIHAGAtxhXkmcYVtQBIPIIn72eaBjCQAQNjmAWwDknjBbEvifpIA21wmiedhm/tJ4n62AUmAbe4nCbDNc5IE2AYASbZ5ANuSuMw2IAmwLQmQZBuQxGW2uZ8kwDb3k8Rzss1zsg1I4gWQZJvnJAljDAgBxjyAbSEA8bwkYQMAkm0usy2J5ySJ+9nmAYS4zDLmuUiyzQNIss0DSOIy29xPEgYB2OZ+QgjbPBeBeSFsSwIkYR7IMgYQAowBhCzAmCuEEJfZ5gEk8UAGAIwBIe5nzGW2AUlcJgkw5gojiQewzXOSZJv7SQJs85yEEGEbsM1lknjBJAGAJF40tnkeQrwgRgjAPJN5FtuAMQBgjAHbtgHbxlwhXhBJ3E8SL4BtXgjxIrLN8yWel20us82/RBIPYJsXShKXSbLNv54krhCYF8RYCEBIss2/xDYPIIkXzjw38UzCNs9DyBjzQggZ8yzimQTmBZHE8xLPwTyTAIx5FvFMRojLJAGSAAQG80zimQQGwDxfQojnYpsHEpIASbwQ4gUx5l/LPJN44STxnCTxr2FbEi86gblCEs9FvDDiWWzzLOLZzLNIAoR4FgPY5lnMi0o8k3k2gXj+DIABEIAQgHlu4gUyL4Qx4oUz5jJJ3E8Sz0kSgA3YBnOFDWCMhHguNmAAxAMIAPGik8TzsA1I4l8kACFeMEk8X+KBjHl+hAAMIMkYMAaEEEJCPIAQ4pkMYBuQxItOPAdxhSQuk8T9bHM/SZIASbZ5AWxzP9v8l7DNA0gCAElcJonLbHOZbf4j2OZ+knh+bEviASQBiBdCkrExz49tJJ5F4jJJGIwQgEAAmAeyzWXGCATmedmWJIn72eYy21xmm+dLPDcDYJ7JYJ7JvKjMswkE5gpjY64wiOdgrrDNA0jigcxzEM9BXCFJEgBI4grzTOKBbPM8bPMvEpdRJXGZbe4niefHtiReNLYBSTwP25K4zDaX2ZYEAEKIZxLGGMuSeABJthHPIokHEhjAtiTuZ1sSl9nmRWCb58e2JB7IGHOZJJ6TbUASgAEASba5n22ekyTANiAJsA1IkmQbACTxPGzznCRxP9uSAMA295PE/WzzAJIAwBgQ4gphG7AtiSuMZf4ltnkBhADbAAbxfNnmMkm2eQBJXGEABEaI+0niuZhnEwDmCtuSEM9kANtcJgnAXCGEsG1bEsI2BvEczDOJZ7ENAJJsI2xjJAG2uUwSgLDN82WeySAASVxhjLlMkm1JXCYJsG0bkAQgAGMhIQDxTOb5EAAGwCAAY8yzCNnmOUnieUgCJPGC2ZYEALYlAZJsS5LEA9i2zXMyBoQkAbYl8UDGGEBgMIAkwFgIgQEkcYV4FmMAIwkAJNmWBNjmCmEsBCAAY8yz2OZZDALACAHGQkKALGMuMwaEeBYjhLDNAxkE5rlIss1lthGAJO5nGwAQACCEwDyTQQgZc5ksYy6TxGW2AcC2JEk8ixFCANiAbSGwuUwI2QaQAPFMkmxLAoRsc5kk7ieJ58e2JMC2bS6TBACSeC4GcYUkwBiQxGW2uUySbdvcTxJgG5BkjAEkAZgrjLlMkm3bgCSuMIAkBICxLAuQhUBghIyNEUKSbAOSbPMC2JYkCYMBEMYYQBL3kwRIsg1I4jJJ/EtsS+IBJNnmOdnmfpIA2wBgWxIvlG1JgG3bACDJNvezDUgCJNnmAWxLAmwDgCQAsM1lkvjXs80LJonLbNvmMiEMAkBgAEm2ASHEA9mWxGW2AQBbEpJtrhDGAAYBIDDPIsm2JMC2JO5nG5DEZba5zLYk7ifJtiQewLYkXhBhzGW2AUk8D0mAbcA2gJDEAxgDGEk8J9uSuEJgXggh2zyLeCBJgDH3E0LY5n6SbAMISTwn2/xrSOI5GQPB/Wzb5nlIksT9bHOZJC6TJInnIUkSAAhJQjyLbR7ANs8ing8hBCAkCXGZJNu2eU6SeABJPD+2Adu2eQDbvMhsS+IyScb8K9mWJInnRxIPYGzMA0jiASRJ4j+QeJGYZxKAMVcYSQhAkm0us80LZluSJJ7FIJ6XJNu8AJJ4wYT4VzGIZzNX2OY5GQPGPIAxl9nm+RHifra5nyRAEpcZ869kG/FAQsaYZ5HE/Wzz/BgL8ZyEeF4CgwEwiAcy5r+VbS6zzXMxiP8oknh+bAO2AUk8JyGeRbwgQkIA5oGEeBYBALZ5QcwVtjHPh3kutvmXSOKFEM9mrrDNA9jmMts8kLifMADi2YyNJJ6TJEASIMQDGCP+k0jiAWzzAtjm+TIvnG3uZwzYFuKBBMZYFpcJ8QBCXCYJsC2JyyTxnCTxQOKBbPOvJAmQxANI4oWSJIkXwDbPj20eQBLPjySehyQus80LZpvnZJsXQBIPIInnIUmSJF4U4pnMFcZCAAJASOIySdzPmOdLPAfzfEmyzWW2JXGZJEm8YJJ4ASTxggkBgG1AEiBJEi+UECAkxHOyLUkSl9nmXySuEDLmgcyLQhKXSbLNFebfTBKX2eb5QLaNMQ8kyTb/EkmAbUCSbZ4fSdzPNoBBCCFs85wkAcYYAIEBMIgrJAG2eU6SAIwxIMk2z8m2JEmAbZ4fSdzPNi8aSYBtwFhIEoABjAHbkoQAY+4nyTb3sy2EEDIGAEmAbe4nicts85wk2QZsS+KFkgTY5n6SbAOAEALAPJMAjAEMIAQY8ywCc4WQMQ9gWxLPQ5JtnodtIUmAZSHuZxsAbEvieUjifsYYAIN4Fknczzb3E+J+thFXSAJs8/zYlsTzEDLmASTxALZ5HpJs8zxsS5JkmxdAlmUeQBJXGGPuJ4nLbPMAtiVxmSTANs+PJMAYEAJsA7aFhCxzmW0hxLPY5jJJkngBbPMAkrifbe4nyTaXSbLNZZK4n22eH9uSuEwSl9m2zWVCAAKBsS2JyyRhjHlOkmxzmW1JPIAkALDNZULGGMTzEjLmMkkYwBjACCGMeU62AUmAJNvcTwhhmweQhUBgANsAQpJtnpMkAAMY25bE/SRhEIBtHkCIy4y5nyTANi+ALAQCAxhzmZCxbUk8gJAxz8sAxpIkcZltHkCSbV4ASTyAbR5Akm2eH0mAbduSuJ9tQJIk2zwPSZhnMeYBbEsSMuYyWQjAmPsJAcY8D0m2eaEk2bYtifsJIWzblgRI4oEM4vmyzQNIss1ltiXxAJJsc5kkLrPN/SQBtgHAtiRAEmCb5yQJsM3zY5v7SQIkAbZ5kdmWxAslCQBsc5ltLpPE85DEA9jGIAAh7mfMAwjxLMI2VwjMFbYlAZIA21whMM9ByMIgAGMusy0JkGSb52KMJfEAQgjbPIAk29xPEmAbIcT9bPOcJNnmASQBtgHbQoh/M0ncz7Yk2wAgZIwxBiTxnISMeQBJtgFJgG0AAyAASbYBQJJt7ieJ52Sb5yQJwAAWAAYRBvEcJNnmBZDE/Wzb5jLbkrifbdv8iwzi+TPPZK4wts2LwBgAbPM8JPEfQRIvmCyelxHCPJMAAEm2eQBJXGbMcxIS4gFs8wC2AdtcJgmQxHOSxHOSBACSbPMsAsAY80DmOQghHkgAQsY8gG0hnockzPOyLcT9hLifbS6zDWBeENtcIQAEBvOiMpJ4EdhGPC9JiAeShHnhJNnmASTxAMY8gBD3E0L8e9gGbPPvZsxlxkI8gG0uk8QLZhsAbPOfwzZgmwewzf2EuEyI+9nmuRgM5rnY5oUQz2aeLyFeCPHcDGAbkARIss0DCQDx/AkA8WzihTGAbR5IPJBt/pUkcYUx5grxLEIA5l/FmOfHNpcZIwCEJF4Etnku5oUxgBAgictsS+I5SeIFkAQgMIAQV4grhDDPJJ7FNuYKIV4EtgFJtnkW8e9km+dkG7DNA9iWxH8QSbxgtvmXSJLE/STxb2IbACRxmSReMNu8KMQDGfMs5tmMJP5F4jkYAHGFJEk8gG3Atm3bXGYsiQcQAjAIxLPYlsQDGQSAwTxfkmxzhRES4gGEAMwzmWczVxjzopHEAxgDiAeSxGWSjHkASba5zLZtADA2NgZscz/bkviX2LbNC4MyDeYySYBtXgBJgG2eH0mAbV4ASbYBDCAJQDwHAyBs84JJAmzznCQBtvmXSOIBbPMAknjR2OZ+kgDb3E8SgAGMuZ8QgMAACNvcT5JtnockAIO4wjYvGkmAbe4nifvZ5jJJgG0eQBKAAYy5nyTuZ4y5QghAPJMx5jLbgCQeyCAkARgEYBuwDUjiASTZ5oEMArANSJJkmweQBGCuMAZsSwIkYa4w5n5CxhgAAUgCbAOSuMIAxjyAJNtcJmQMAJJs80JJ4n7GmCskAcaYZxKYBxIy5gEkYTCWeQBJ3M+2JO5nG8AYS+IySYBtHsgACEk8J2PMczGWBSAwxpJ4oSQBtgHANiBJEs/DNgBIss1lknihbNuWxANI4jLbXGZbkhBgzLMYhBDPYizzALYlcZkk7mdbkm3uJwsBGAO2AUkAgEFI4nkZYyGEbR7IIIQAY+4nCQMY8wBCxlwhZAHGXCaJB7DNZbKMjRFCACCJ+9m2jRACZCEsC3E/Y0CI52Sb+wlxmbEQwjbmmYSQsW0hxAthWxKXSbIN2AYkAUJcIWxzmSQAYwxIAmzzPIwxgCRJXGaby4xlIYQQtjEIQBJgm+ckCTAGhLifbWNZAEKSbQDzbAKQBNgGjDGSJAGAbS6TZJvLbAOSeL6EEGCb50cS97PN/SQBtvlXksRltgFJPIBtSYBt7icJsM3zkGSbB7ANSAJsS+J5SLLNZZK4zDYA2AYkAbYl8aKRBNgGANvcTxIvmBCXGXM/IcCYK4Qs7mfM/YQQtnnBJAG2eQAhY/61hBBgG4MAJAG2eQBJPA9jDIAQAmxzmSTbAAZAAJIA2zwPY0CIK8wziSsk2eYFkATY5jnZBiQBkmwDkmxzP0m2AduSuJ9tQAhAPIttSYAkHsA2L5gknotBhHg227a5nyRJvGCSeB6SeABJ3M82L4h5JoEAEM8kEC+cbf4lkngBbPOisc0LIInnJAkAEM/LMuaZDOJZbPNCiBeRbds8gCReKNs8JyFeFAbAYJ4vIUASD2QwiGcTGAABSJLECybEA0jifpJ4wYQASTwvAQCSjLnMmBfEvHBCxjwPY14EQgAgxGWyuJ8sSTxf5pnMAxnzXIwkHkgAiGcTz59APBdjXgAhYwBjjHgW27b5l0jiBbDNv55tXihJ/IvMC2Gb+0niASTxQOa5SAJsA5jnZcz9hLhCPDfzTOKZxHMx5vkS/ypCvGBCgBCXyeLfSojnIcSzCECIF8w2l9mWBEji+RLPZF4UtjHPYpsHsI1BAIjnSxL/Gsa8EAbAAJIAIQAw5nlI4n6SuEwS/xJJ/GeyzQsmieckiRfMtiTuZxuQxHOSJIn72eZ+tnkA24Ak/q0kAYAkAJDEC2WMQDyTeRYhAPEcxDOZZzKS+JdI4gGM+dcT4lnEAwnxALZ5vgTiedkW4vkSzyLEZUJCPBcBICTZBmzb5l8iiedhm8ts8wC2uZ9tLrPNA5krbAO2Ads8D9u2eU6SeP6Qmy3zAkiyzb+eJO5nm+dHCEAAthFCvGhs8/xI4n62uZ8knpNtQBJgm/tJAmzz/EjifrYBSVxmm8skcZltHkASz8k2gEE8kCReMNtcJsk2YFuSJC6zzfOQZBsAJAG2AUmAbZ4fSba5TBJgG7AtSZJtnocQYMyzCMwDSbINAEIAAmPMZZIA27Yl8QIIcZkxDyAJsA3YliSEsA1gEM9kEEI8i3gW24BtSVwmCbANSAIwzyZsA4AkAAMYYwDEFbYRQjwnSYBtSbZ5wSQBxphnMwACMAaEJNnGAMYIIUAIsCxkm/sJAQjbXCbEswgAsM1lshCWMVcIcZkxl0nCAMa2uUwIQFxhWxLPQxIPYJvnIYnLbPMAtiVJsg0AkmxzmSTANveTxP1s8/xIwjyTsI0BJAEIzLMYA7YBSZJsc5kkHsA2gAEQkgDANi+UJK4wthEPJAlzhbEQ4grbXCZkzAsmBBjzAEIAwjbmmcQVkgCMMZdJss1lkmxjEJIwgDEgxBXiBbGNARBCCNsAIAQgbNuWhBDCAAjMsxhzmW1JkgDbPIvAYBBXSAIwlgEhALAtifvZBgBjWYgrJGGMbQOSAElcYZ5J2OYySba5nxDPIp7FNoAxlsRlxhgAIQTIsszzI4SwbVsSAEiyzWWSeAFsA4AkALDN8yOJ+9nmMklcZhsAJAGAbS6TZJv7SeJ+tnlOkrifbf4lkgDbgG1JgCTbACAJAGzzAkiyzQNIss39JAG2uUwSl9nmeUiyzQNIAmzzAkgCbHOFeSbxvISMucJIAhCAbR7IIABJAMYYsC0JAIwxkngeQsaAJC6zzWWSbPM8JNm2LYnnRxKAeSZhmwcQMuZ+QgCAeCDbPD9CxoAk21xmm/tJAgBJPCfbXGZbEv8S25J4TsayEADGWBIPIIn72eZ5SAJs83yJMAiJZ7Jt27ZtwDaX2eb5kcRlkngBJEni+RIABvFcbHOZbf5NJPGikcS/j22ek20A8yIx/wa2eR62eR6SbPOvJMk2z48knsUYc4WQBCBeCEkAAhACEM9kMIBtDADY5gURCGMeQBLPxQCY52IMYJ5NGPMCSOJ5iWcStnku4pnEs9gGhABJPA9JvIjMcxAIABAS4gGMASFACACEeCDzbOIFM1eYZzLPh3kgY8zzZRvxLEI8J9v8W9nm30A8k3kWSTyLsM0VAkAAiGcRAiTxL5EEIF5Etnm+DGCbZxFXCPH8GPOCCMTzYV4ISVwhnsU2/7EEgHhu4rmZ50uI52Sb+0kS4jLbAGDM8yPE82UQAAIBIABJkgAhXijbkrhCvDAGEDLmOQkBQgjMcxHiOdkGANuSeJHZ5jlJ4l9im3+JbUm8YLZ5wWzzopEESOJfybYkXgBJPCfbPCdJ3M+2JJ6TbZ5FSBLiuYgrJHGZbZ6HsRAvlCQhxAMZcz9jAMBI4jkJCRlzmW2ek21J3M82l9kGJPEAtm3zfBlJiGcxFuIK8WzmednmCgMIGQOAbUlcJonLJPFCiCsk2bbN/SRJ4jJJXCaJ5yGEeCYhiX8l27Z5TraNAYwyLWz+ZbYl8Zwk2QYk2eZFI4QwxlwhhLDN/SRxP9s8D9uSAEm2eQEkAbYBSTwn29xPEvezzfMjiefHNvcTQtjmMtuSAEmYZxKAbZ4fSQDmWYz5l0gCbHM/SQBgm8tsS5LE/WwDkgDb3E8SYBuwLUkIYRvAIJ6XkDFXCMzzkgTY5t9HEmCbF40QYBkD2AYkARgAcYUk7meb5yQJAINscz9JgG3uJ4R4NgMY8wCSeADbXCYJsM1zsi0JACQBtgHbkngASbZtSwIA25K4TJJtDEIIMOZ+QgACAGxjnkk8kG1JQoAFNpcJGWMABCAJYwzYFgIQQsa2EUKAJMAY80CSeADbgG1AkiTbXCaJy2zbliTJNi+AJC6zzWVCCNuAbQCQxGVCiCts85wk2eYKg5Bkm+chZMwDSLLNAwgZc5kk29zPNiBJyJjLhIx5ACEEgDHmfpJsc5kkHsA2lwkBCMwzCdsABkAAQoAxBvFAQsbcTxL3s81zEkLYxiCeL0mAba4QmCskYZ7FmMskYTAIBAawDSCeD4O4QpJtwBgjCRACEBhjAJBkm/tJAmxzmSSexRhjEELGXCaJKwxgzP0kcT/bXCFkcZllWYAxxpj7SeIySRhjjDGXSQIAIWOeH0nczzb3k8T9bHM/SdzPNgDYlsQDSLLN85DEA9jmfpK4n21AEmCbF0CSbR5AEpfZ5oWSxGW2uZ8knpNt25J4AEkAYJvLJHGZbV4ASba5nyTb3E+Sbe4nZAxI4jLbgCQAAxjzghiEEA9gGRACjDGAEJdZxgDGGCHAGJAESLLNAwgZ25bEZZJs8wCSbPMfxSAASTyLeRZjnpNtIQCQBBiDQYAkwDbPSRJgDAgBtgEhhG0Ag7hCkm1ACAHY5n5CCMA2L4Ak7meb+0nifrZ54QyACIF5gSRJ4jJJXCaJyyTZ5jLbkrhMEi+YEIDBPJv4N7PNc7JtmxfANv8+xsbGxjwXAWAABCCJK8yzGPNCGfMCSOJfwzaX2ZbEv40BMEJcYZ6LkDHmCiEEICSEeVEI8bzEv4ptLpPEcxJCAJJ4FgHY5oHMZeL5E8+PJMQziedizAtmm+ckieckxAtgzP2EuJ9twDYCACTZ5grzTOL5ss1lxjwn2zyLEPcTxlwhAEkA4gohLhPifkKAEAbAvCgkcZltXihJvFC2eRbxvGxzhQAwAOIFsc39JHGZJAQgZMxlxtxPEg9gzAsgCcA8FyFeCPMskngRiecmnk08mwGMuUJI4vkSz008i23+RUKI+xkDxphnE89NAAgE5vkzV9iWBAghMP8uBkAACMAyL5xA/IuEEFcY8zwkAcYYY+5nGwCMeX4k8e9mm+dhWxKXSeJ+tvn3kcT9bEviRWPbNvezzb+VbZ6Tbf4ltiVxmSTbgG0usy0JAQgZc5ltXnTimQRgjHgO5pnMFcYIBAawjRHiMiFJAAKQxAMYA5Js2wZsc5lt24BtSTwX8UziuUjieRjzAEI8kHhBbAsBQkKYZ7J4IQTmBTLPJACEJNtcZgxgnkUIwNjm+ZEkiReBJF44cRmybYx5QSQBtnkekmxzP0m2AUm2eQDbkgAhY56HJMA2zyIw/36SeE62JXGZbe4niX+JbUASD2QQz2IbIQsw5rkYhCTANlcIAHOFJMA2gEFcYVsSIMk2YFuSJO5nm/tJAmwDtiUBgCTbXCaJF8w2z0PIGGMsCZAEYIy5n5AxVxiEEFcI24BtSQAGAUgCbAO2JQkZc4VBSOJ+tnnBJNkGEADmCiFjXgAhAPFAtrlMCEAAtnl+JAG2eU6SuMw2l0nifrYB25Ik2eZ+QoCxsZAk7meby4wxQgDiBZEE2OYKAyAkcYUxBiQBxhjAGCNJyNi2JJ6HEGAMGAtxmRBgGWNbkpAxDyCJK4wxYJvLJEniedjmMkm2uUySbR5AEpfZti2Jy2xLkgQYY66QBNjmfrYlcZkkAIN4Ftu2JfECSAIA21wmZMwLJWTMAxmEJNsYxPOSxP2MASEMYMwLJ4QADGDMAwkhwDb3kwRgAGOehyQuM+Z+sgBj25J4XgaBwGAQgCTANpdJsm1bEiAE2AYQQsYAgEEACCHbtgFJgCTbGEDIGEAAkmwDxrIQQogrbPO8hJCxEGCbK4QQYNu2JCFj25IAACELY5nLhLjMGEAAQhhjDOKFkwTY5n7GGEASz0MSl9nmfpIA29xPEs+PbS6TZJsXTBL3s839JHE/2zwPSVxmG5DEc7JtWxKXCXGZMQBIss3zsA0AkrhMkm3uJwmwDUgCbPP8SAJs85wkAbZ5fiQBtnmhhIy5nySMMSCJF8IAxsZCAAIDIIQA21xmWxIgCWPMAwgZA4AQABjzIjKIKyQBgG0AEOJZxDOZK4x5wYSMeU6SbAMYxAsiBBhjEIAQgHgutgEhAAFgnsWYBxAy5n6SMAiMMQbxwkniMtvcTxL3s81zkgTY5n6SMMZA2IhnkgQAtnkBJHE/2zyAbS6zLYkHkMRlxtxPEi+AJAxg2zYvGkmS+JdI4j+WMOZZxHMTkrhCPB8G8/yJB7IN2OYySfwrSbLNv5IQ9zMGEIBtwDbPSciYy2wjnk08HwIDYDAARggw5gqDeNFJss0V5rkI8SIz5vmRJIn72eb5sc0D2OZfYpvLjAFjAPMczAMJ8Szm2cTzkiQJQPzLBCDEC2bMA0gCMMY8kAEQz0sSDyCE+bexzfNjmwewzb+NARDPyzb/GkK8YEI8i/gPIcSLSDyLbf6DCPEfx5hnEwJAAJjnZgDMs0gCEM8knouQbcA2BgEg/gXm+TPPTVxhGwAwz2SeLyEAA2AAzL/INi+YkBBXiBdGPJMAjHnBbEviASTxH8E2VwjE8yXJNpcZ85xsS+IySZIAQBIA2OYy25K4TBL/fSRxP2MhLpMEIJ6XMQ9gzBVGFleYZzIPZJtnMf9GAvHcDAYBIJ7FNi+EeTaBeL6EjHketrlCPCfxfAnMv53BYK4wlsQDCQyAeRZJAIAQ4gFs8yKwbZsXQggBFcA8F0m2JXE/Sfxr2JbEZbZ5ASTx/NjmMkk8gCTuZ5vLJHGZbQCQxP1scz9J3M82IIn72ZZkmxdMEmCb5yTEswjAGBACMP8hJNnmedjmXyIJkGSbB7DNCyEwAAIDYBBXCCGeySCEAMwDSQIAxHORxGVCCMAYwACI5yCEeMFsS5JkG7DNAxnAtiQAQGBsSwIkYYxtIzDPIgkBYIyFMMY8kBHiCoO4wjb3sy2Jy2xLAmzzAJJ4ACEus40Q4n7GGElcZhtAPJCQbR7AGPMcBADY5jIhrjBCAMK2JMAYkAQIGQNC3M8Yc4UsAPFAshCWMbYlAbZ5IIMQ4gFs8zwk2bYNSAJsA7YlSQJsSwIASbYBSVxmGxAy5gqDkMRltiUBkrjMNs+PJC4TQgC2AQBjzGW2JRkDkgDANmAbkCTJNs9iJGGeRQgBIIMA21xhm2cSAox5TrYRQjwX82wCA0jiCgMYS+J+trlCYJ6XbSFACBACjDHPzSAkYRCAbSGuEM9mELKMeSCBQQC2uUIgjDGSbAOSAEk8kHgmAyAwtnkWYZsrhCTANpcJAQiMEM+XAYQA24Ak7icJg3gW24AkIQQgC8AgnoNBPJAk27YB25K4TAjxLMaAEMLYNiAJsC2JK4wQz2Ik2eYBJPGcJNnmMtuSeB62JfEC2JbEc7INCCGeyQCI52AQgDEGMJbEA9jmASTxPCTZtg1IksT9JPH82AYkAbZ5TpJ40QghnsW2JACBAWxzmSTANveTxLMYIWMMgHg+DOIKSba5zBgQQtjmMmMEBrANSOIBJAGYK4y5QmCeySBs85yMeRaDEOJ+sgBj7ieEeCbzopAE2AYM4jIBYJ7JIJ7FNvcT4n7GgCQAAyCusC2JF0I8m5EEYABJtgHbkmwDkrifbQCQBACSeMGMMYCkEJhnsi2JyyTxLxKIF8Q2l0niBTGAMc9DEs/DNpfZ5jnZ5t9HEvezbZv/KpIk8YJJEgIkcZkkLpPEA0jiBZBkm38Vc4VtISGexSCeg3khJPEAkngAYwDxLMZcJsRlQgDi+bItCbDN/SQhACEAg3gmgQEA24BtY/4lQoAxD2QQCADxXCRxP9s8gG0us82LzjwX2zwPIWOuMM9knpck2zyQuMKYyyTxnIR4TkLczzYAIIQAxLMIcT/bPCfbPA/b/AeRxPMwxjyTeJGYZ7EticuEAAyAuMIYAIwB2zwXAUjiORnzfAnAmGcRV5h/gW1AiOci/uMJxAtizPMlAGMA83wIWQDmfgbAiGcSDyQEYAAhAPECCcAYkMS/jXk2AWAADIB5UQkAAWAAzLMJQAiBAYy5zDYPYMwVRojnIgDMFbYBSQACA2CusI14FtvcTxL/SpJs8wJI4jJJPBfxQMbcz1gIEBICEMbczzb/JrZ5fmzzAkjiX0U8B/O8bPOiMM/BAAhAkiSuMBgAg7hCkm1jrhDPzQAYAGEsxGWSeADbPJDAPJN5IEmSuMw2BsAgns08kBCA+VexbRuwjc2/lngm8RwEIMRlkrjMNi8KAyAQD2SbF8y2JJ4fSVwmCXOFbWVLrhBXSLLN8yMJsM39hABjnpNtSdxPkm3uJwkwxggBxjwnSVxmm3+JJNs8J0k8J9vcTxJgm/tJAmzzIrMtCRAyxiAkARjAGMAghADE/YwFAMZcJgRYBoR4FmPM85AE2OZ+knjBbHM/SbZ5ERgLcYUBjCUJAYAxBnGFJB7ANg8gyTYgCbDN/STZBmwDkgBJtnkeQoAxz49tSbxgQsaAbUk8gG0eQJIk2wACA2AAYy4TQgghANs8J0m2bUviASTZ5gEk8Txsc5kkwBjAAJIA29xPkm2ekzEgxP1sA5IkAbZ5foQAy5gHkmQbgwAQQrZ5ASQBmGcxBgBjjJCQZZ6HJMA2YFsSl9mWxAsliedhmxdKkm0AkAQAtnnBjIUASbYxCEkABrDNFeIK25IkYZ5J2AYASbYB24AkABAy5jIhAGGbyyRhA7YNkiSwjHl+JHGFeRZjDAKQBGCexRiQxP1s25bEZbYBSYAkLrONQTyTAYwRQgBCFmDMZUJcZoxBPJOQBdgGEM8iZCyEwGCMAYQk21wmZMz9JAG2bUsCAGMhLrMtiedHyFgSgMFY5jIhYwxCCIExBoQAYwxCEmCbZxFCGGNjIR7IPJO4QsiY5yFkbJvLJHGFQVxhWxJCCGPMA9iWxBXmCkmAZczzJYkHsG1bEi+YJMA2z8O2JEASYJv7SQJsA0IAArDNA0iybQwIAQiMbUAS95ME2AYk8QC2bUviMkm2uZ8kwDb3kwTY5l9PiPsZc5kk2zwn24AkQBJgm/tJwiAADGBsWxIAIDAABiFkLAmwDdiWBCCEMMZcITCAbUncT5Jt7icEGHOFwFxhWxIvlG1JPCchAEDY5jlJ4gFsA7Yl8S+RBNjmfkKAZcwDSQIwz2LMA0iyzQPYlgRIAowBIQDzbOJZbPMik8QD2OYBJNkGMIgAEGDbtgHbkgBAEi+IeRYhAJDE82Ob50sgEC+IbZ6HbZ6TbUn8R5DEi0wSlxkDiOfDIJ5JPIC4zJjnyzyLMf9WtnmRSZLEZZIQVxgDGMBYEoBAGHOZbZ6HbS6zzXOyDUjifrb51xIPJIkXQEgS9zMWwiCukMTzkATY5grzLMbczxhjzPMjyTb3kwQAknhOkrjMNi+EwQCIKyRxmSTMswgJAUJCgCRJgCReMGOeRWAeSJJtrjAA5gUyz0E8ixAgxP2EeF7mBbHN85DECyWJF0IY8wLY5gGEuEyI58sAmBeVeBZJgCTANi8iCUDiWcS/gng28XyI588AGEAS/xJjQAhA/Its80JISACIF0ASIMQLZhsw5lnMswgJ8cKZ52WZK8TzZRuwzbMYACPLmBeFeSBJCADxfBjAGAAwzySukMRltnm+zAtim/8gtnkBJPFcxBWSEM9iDAgJAZJkAYAknpNtLrPNc5Jkm3892zwn2zwnY14o25IAQBLPl0E8k8Agnosk2wCAeSZxhRAPIAlAABhACEAIcZkkHsA2DyQeSEgS4oEk8SwG8yySbPMvMpjnZZv72eYBJEniASTxnIQABOaBJPEvsS1JEpcZ81zM8yEeSBIPIIkHkMQD2OZ52OYy21xmDCgzucIgrpDE/WxzP0mAba4wzyQASYBtwDb3k8RzkgTYRggBtrmfJMA2/0qSbHM/SYBtLpNkm/tJAmzz/EjiOdkGbEvihZIEYADbgGUhnocQYIwxliTEswjANs9Jkm0uk8TzY5v7SQJsA5K4n23uJ4nLbHOZJNsAAgNgEA8kCbAN2JYEAJJs80AG8XxJsg3YliTJNs+PbUAIQAgBiOdiG7DNZUIAQsiYK8yzCUASxpgXzLYknpdBXCEJsA3YlsTzkGSbB5BkmweQBGAQgG0ukwTYBiQBGGMuk2SbB5DEZba5TBKX2eYBJHGZbduAJK4QsowxCCGEbcA2l0niMtuSAEmAbS6TBNjmfkLGPICQMSAJsM1lQgjbvGCSbNuWJInnZJvnJMk2l0niOdnmfpJs8zwkcYUBjI2FeAAh7mcMAEII2zyAkDGXSbLNZZJs25bEczEA4oEkbB5ICEDY5jJJtjEISVxhnsXYtiRAEuYKY0AIYRsAhIy5wiCukMQD2AYASbZtI4QAIQABALZtCwEISbYBY4wknocQgLANEiAwgDEvnBACbHOFAYwlCRnznIS4nzEgCcAAxrYlAYBtSYAkDOIKY1mAMc9DEgYwBmwDkngA2wghAAMYS+IBhIwBDOK5GcQzCSHANpdJss3zIwQYc5kkLrPN/SQBtnkASba5TJJt25L4V5Jkm/tJ4lkMYAwAtiVxhUEIAQjbPIAk2zwnSdzPNi+YJMC2bUmAJNu8YLYl8fwIcT9jDOIKIQBhG7AthAAkYRAA5tnEs9jmMtuSeE6SMMZcZlsSIAljjEE8LyFjnh9JGGNeMEmAbR5IYF44SbYB25J4TpJsA7YlAbYlAZJscz9JtnnhDAIQMuYFsA1IAiTZBjAA4oEkcT/bvFCSuMw295ME2OZ+kgDbPIBtSdzPtqTgWcQVknihJHGFeFEYc5ltHkg8iyT+3WxL4gWwzX8cSTyAJC6TxPMyz59AAAhJvAgk8Z/GNvcz5gqDABDPQTyTACRxmSTb3E8Ig3hBbHOFeCbxTAbzLJIAACEEWOaFEuIyIWNeCAMI8TwkAYAkQBLi+RPPxTbPSZJtALDNCyeeP4H4F0niMts8L/G8bHOZJJ7FIIQADIB5DuKBbAO2AcSLSBL3s82/hiTbvAhs85yEeC7m2YQxL4QBjDEY2zxf4lmMAUn8OwkA8yySbPEfSAAIY2NeACGei3i+JHE/IV4wYwCwLQkQAjAABgMAQlxhI8BcIQAhXjBJPC8BCAGAEP8SY2PEMwnbgG3Es4lnEUK8MOIKYx5AEvcT4n7GPA9jIQzi+RDPJJ6XbUk8DyH+TSTxopEkiQeQJIn72eb5MgjEFba5TBKAwBgDGMQDGfMAkvj3sc0LJYnLJPFCGABzhTGAAQAhnou5whiBeCBJXCaJ50tcYZtnMQDm+RLiASRJAgAE5kUkiWcRL4gk7mcbACQBkiRxP9tcJgkAJAGAbR7ANi8KI2TM82PbNg9gG8AAiH+RMS+AbS6TxL+SJNtcZlsSIKeNeU6SuJ9tnoeQMWBbEpdJAmxzmbEsBIABEFdIwlxhzGWSuMw2L5gk27wAkmxzmSSMMS+YJMA2ANiWBEgCbPP8SAJscz8hBGCbBzIIwIDN/SQBkmzzAELGGIQQwjYPJIRsc5kk7meb50cSz49t7ifJNs/DtiRAiOcibPOcJAG2uZ+QbYSQZYxtSZJsYxDPTcgyxiCuEDIGMAhACDDmXyJkjEE8kwEQgBBgDGAQkngA2zyAJNsAQsg2l0myzQslCbDNC2AbkCQJsM39bEviMiGEbV4wIWMewLYkSQDmCmMuEwKMuZ8k27YlcYVBCAGWMRgAAUiyzQNIss1lkgDbgG1JvAgkAbYl2eZ+krjMNi8CSbZ5AEm2eQBJtrlMFgJA2OZ+krifsRCAMQYwiCskYYx5TrYlAQgh27wgBnE/g3gASbZtA5IAAcIWGIOQhDHmuQjM8yGEANvcTwhhDMgCjLnCPJOQhAGMuZ8k7mcbAISMuUwSBmOZyyTZ5gEkAYBtgwAEti2JKwwCEAKMeQAhYwyAeC5CgLEkAGOMMZYEIIRsYxDPZBAIIcAYkAUYYxBXGAvxPISMucIghACEbS6TZJvnIck2z8O2JJ6TEFcI27YlScLYRkgCMMa8UJJsA4AknpNtSTwn2zwPSbZ5oSQBgG0uk2SbyyTZ5vkRAowxAOJZjGUBCEAIYRuDeL4kcT/bXCbJNveTxP1s8wJI4gFscz9JPC9jDAgBxlxhEELGAAaQBFgGMIAkwDYPJADMCyHJNs9JCDDGIJ4PIwmwjAEkcZltAIN4FmMhQAgw5gGEuEI8i20uk2TbtiSehyTbvGhsS+JfZACEEMYYMJbEi0wIYZv7SeJ+trnMtiTuZ1sSz0kSl9kGJPGcbPMvILifbZ4fSVwmifsZAxhJPIt5ICHEMwnEFZIAxHOxzfMjiftJss0DSOIBbPMsBhDiAWzbts0DSAIASTw/trmfJC4TAjAYAGOb5yKuEM+HzbMJScZcYQAM4jkY27xQtvnXELLNAwhhMIBtwJjnYq4wts3zI2SMAIwxgCQAAyAASUIYDIAxBhAAIMSzCAzmBZHEA0gy5gUQAhAviG0us81ltrnCGHM/29xPEv8mknh+bAO2edEIGWP+PWwDgG0A82ziOZhnEs8mbPMC2OZfxTwv29xPkiReZLZ5QcyzGQQCQGCeRYgrxHMTL4RtAANI4jlJEhICMIAxYJ5NEveTBIjLzHMTIB5AEuaBjHku4jmYZxLPZp6b+JcZY64Qz2aeRRL/AnOZbQDzfBlzmbEsAPGCCHGZMWAM2AYwxlxhhDDPZJ4P80BCPIAxACCeyQCY50uI52FbEv8Oto15FgNgnkVIEs/JNvcz5jlJ4nlI4nnY5jlJ4jnZ5jnZlsTzkMTzMgDiuRgDmOclJIkXgW1J/CvZ5l9knsm8QOJfyzYGwGCusM0D2LYN2JbEcxHPJJ4P82zmCts8kLhCEiCEwTyQMZcZ8ywG80C2AUlcJokHsC2JyyRxmW2ei7EtCQAk8UIIxDOJKyQBQkI8LyFJEg9k/kWSeABJXCaJ+9nm30kom5EB24AkQBJgmyuEEGCbBzIIQBKAQVxhm/sJcT/LGAAhyxgDIK6QZJsHEkJcYYy5nyTb/EuEjAEM4oEkcT/bPIAk2zwnSbZ5AFkIY14wSbZ5oYQQtgHbkoQABGCb50cS97PNc5IE2Ob5kcT9bAO2JUnCGHOFQQCSMMYYSYAxz0kSD2Cby4yFeAAhYx7IIJ6XJAwGgbDNZUKAMYAxBiQBkgDbvBAGAUgCbHM/SdzPNs9Jkm0ewFiIB5DEi8Y2YFsS/xLbgCRJgG3AtiSuMAhAyJj7SbLNswhZxhiEkDEGcYVtSZJs8wII8QDGXCYJc4Uxz5dBXCHJtm2EEM+PEMI295ME2OZ+krjMNgBIss0DSOJ+tgHbXCaJ52IAhBD3M0YIAba5nyTMMwnAWAiwDQBCxhjEFUIAwjbPIoRsYxBX2BaXSZJswNxPkm1sJEmYZxKAMeaBJHGZbQyAuEKIBzKWhRCAbS6zLUnImAeQZNu2JEk8gG3uJ4R4JgMY8wCSuMw2D2QjSbLNs9lGEkgAGPOchLhCXGHbthCAeCBjIZ6TEPczxiAkcYUBjDGAJABh21hIkm3bgCTuZ1tICPEsxjyQQUiyzf2EAGMuk2SbyyTZ5jIhxLPY5jJJtnkAWcYIQBKX2QZsA5K4wiBedJJsA7YBSVxmWxIgifvZ5kUmictsc4WQxRUGYQwYY4QAY0mAEPczBgBJtrmfJMA2l9mWBEjiediWBNi2LYnnJIn72eZ5CcyzCAGWMUII2zwvgxBCPIttnock24BtQBIvlCSuMM9NYIy5nxBgzP0kAbaNhQBJgG3uJwQY85yEAMSz2Ob5kQTY5n6SuMIYA7YlAULGgG1JXCaJ+9nmfpIAzHMxxiCeRYjnZMwDCSHANveTxHOyzfMjCbDN/SQBtgFJ/KsYRPCiMM9FSAgBCHGFADDPJJ6DQGCeyRgDxsa2bQO2JUniWcwzGQCDucI2YGybyyRJ4lkMYCzEv0QSD2BbEg8gyTaXGQMYxHMwz0WIf4kQgLlCiCvEFZIk8ZwkAYBtnock/rXE8yGem8AAknjBbAPGtoV4LgLAPJNBPJN4FiGeiwCEAAQgBAgBtgHbxrxwAvNs4kUhCUAAQgBGCJDEv4NtnockHkASz49tnpOxEA8gxLMYxLMYY/51zAMZ83wJSTyAEA8gyTaXCfEfTRIvGts8kDHmX0U8kBAvMkk8i3khxBUGMIAQ/wIhXhgBIBDPwTxfxtxPEv8OxlwmxAtmLrMBASCJZxPPZMS/ijHPyTbm38gACGPEM5kHksT9bCMAY14Qc4WxEIBAPC9JAOI5iCuMeU6SeBZjjHg+jBD3EwIw/yqSAEk8gCSehyTuZ5v7SZLEc7LN8xLPJGwDxoAQLwJjSVwmiQewzfOwzf0k8Twk8QLY5rmY5yYwzyIEYJ6DAIx54cQzmQcS4gEkcT/bPC+BwLzohHgASVwmxAtmzBUGkMSziCuEAEASV4hnMs9kJPEsBiMJkCQJsA0AkrhMEleIZxKIZxK2bfMs4pnM82H+tSTxb2WbF8wAqLVEYCSDAEASYJv7SQIwCMA2IAQY8wCSAAwC8xyEbZ6HMUYSl0myzRUG8S8wiOdlWxKXCfEs4pkMgAAwAMIY8yySeADbgG0hACEEGAMYhBAPYAwghGwDkmzznIQAY+4nCWPMv0QSz8M2L5Qk2zwPSYAx5pkMQhJXGGOuEELczzZCFmDMv8ggAAwCkARgjDGIF0bIMsYgANuAJC6zjRAChIxtS5Jkm8skYYy5nyTANiCJKwxgzP2EjLmfJJ6Hbf5NbEuSZJt/iW1ACACMJUniMtsAIMk2z0OWZa4QmAeSZBuQBNjmMiEAARhjrhACMAjLmAcS4jJjAIEBMAghYy6TZNu2JEk8J9uAJO5nmxeNJMA2z48k21xhEEI8iwCMhWzznCQBGIQx5gpJtrlMyJgXwLYkALAtiWczAELC5jkIzANZyAAgBCBsc5kkrjCAMYAQso0BEEKAMSAJsA0YYyQBCCHbtiXx/AgBxgCAkGUshLANAJJs80IJzLNJAmzbliRhC8z9JHGZMSALMOZ5SLLNFQbxXIQAYy4TMuYBhIxtSwKEELb5FxkAcYUsBMK2bUASgMA8k5AFGPM8JNnmOUkCbPM8bAshhBDPwQC2jSUBQoCxbe4nifvZlsTzkGSbB7AtCZAE2OYFkMRltrnMtiRAEgYBYABjhCzAtjEghBAy5oEMQpJt25IASYBtLpNkm+ckifvZ5n6SANvcTxL3sw1IAmzzPISMjYUASYBtQAgwBjAA4gpjIV4wSYBtnpcQ4jnZ5nkZxDMJWTyQeEFs8zwkGWOuEAIAxAPZ5gEkcZltnockAGOMkAXYBhCAEGDMc5IE2OYySYBtnockwDbPSRJgGxACjDHGkrifJNvcTxJgm+dHEs/JNveTxP1s85wkAbZ5TpIA20DwTAYBkiTxnIR4ANtcZmzM82PMczLGSEI8FyFJXCbJNleYZzHmMiGuEM8knpdtSVwmiefHGAFgnskIIZ7FNs9DCEAIAYhnEkI8i7GNATC2ucy2JBDPRTyLJMwLZ5sXwDb3k8TzkGSby2xzP0lcYa6wjXgO4tnMi06IBzKIZxIPZMxltnkhDAJAXCGJZzGShAAhYwziOQjMM5kXzhgAjAFjIV4w2/xLJEniOdnmOdnmBZMEGAPGPJB5IEk8JyGeRQhJ4vmxzb9IPAfz3ARgzBVGiCvMs0iyzX8X8e8i/v1sA7Z5NgGAQBJXGIxAiOdgnpd4/gyAeTbxfEkChADbAOa5SOJZzL+GJXE/89zEsxkA2zwHgXkA29xPiBdOPJN4gcxzMQYAYwCBeSbzIhLi+RKSAElCPItBvCC2JfGisQ0gAMS/TCAASQAgCZAkiQeQxAPY5t9NEleIZxPPzTyQECAESOJZzBW2ecFsS+IBJPFvJl4Y8S8zz2QAY4xtXgAhXjAhAPMcxPMhns0gAGMAsM1zss1lkrhMEvezjXk+zAthmxfMNuaZzHMwLzrbtnmRSeL5EpJ4ANuSeH5s85/Dtm2eG8qWiOciiQewzXMxiGczxpK4nyTANvcTAixjXhBJgG0AAyCeiyTM8zIGbAsBxpK4nxDPIp7FNs9DyJj7ScIACNsABkAAkgDMFcZcJgQY82wCYxCAJNuAbUlcJonLbPNAxlgSIMk2DyAJsM3zI4nnxzbPjyTANs9JCAHYBgDbkiTZ5jIhBAawjQAQQhgEYJsrjCQAgQGMeQEk2eZ+tgFJXGYsJMk2VxgAAUjCGHM/SZgHMsYYSwIQshC2eRaDeEEk8QC2eR62JUmyzWWSbAOSANu8UJJs2+YySZJsc4VBPC/bkiTZ5nkZhCSMMc+PbUkAIAkAbHOZJMwVxjwn25IkcT9jjG1JkjAABrAMIIRs8zwkAba5TBKX2eY52QYkAZJsA4AkwDb3k8QD2OYyIcBYyDLmCiEAAQC2uUwSgAGMAduShIx5XgJjWxKXGQvxbLaRJMk2AEgYMAAGkAQgbNsWkmQMADJICMwzCdtcYZ5JPAchy1gIYZvLJNnmBRFCgG3uJwQYcz8hwJgHkAABtrEBJEASANjmfrYBSTwP2wAgCZDEsxjANoCQxGW2uUwSBrBtDAghJGEAYx7IAAgAgQEwgCRjSYBt25Ik2QYASZhnMQYADELIGIMQQgC2uZ8kwDYPZBCAJNv8V5HEZba5nyTAtm1JXGZbEs9JEmDbNpdJkgTY5oUSAgAE5rkYc5kQYAwIGdsGJPH8SLLN85Bkm/tJAmxzP0m8YLYBSQDmmcQVxhgAgwAkcT/bAAYBCBnzPGwDkgCEEPezzQNIss39JGEsY4QAYx7AGANI4gohi/sZcz9JgG0eQJJtXhCDABAYQJJtwDYgCZAE2OYBbEsChHhOxtxPCEAAtrmfJMA2/z6SAGPMi0ISYJvnJAmwDQgBCMA2z0OSbS6zLQmQBNjmeUiyDQT/Ets8D2MuExIChGzzwgnMMxlASBKXSeIBjI15LgLzbOKZxBVCXCZkzL+JMYB5JvNMRogXzDbmgYS4TJK4nwFscz9jHsA29xPiMiFeZJL4dxLPTQC2AWPbkgDbPIt4DgbAAIgrJCEASTyLMOYy2zwnSTwnSdzPthBXCECIy4x5XgLzbOKZBGAbwCCegxHiCvEstnketnkASbwAtrnMNv8SSbZ5XuKFsA0Axjwvg3jhbAO2eUHMv455DgJAABgAA0jifsb860kCJPEfyLyoDIABhHhOknjBhAAQ9xMChIwwAAZAAIjnIsS/xDbPYoS4QvwXkwTigSReMEmAbZ6TzfNhnkkAiBfEmAcQAoQABCDEsxgAASCEeE5CPA9JPIt4QYx5FvGiEoAk29xPkiT+bQwGACRJ4jJj27xgknihJPFC2bYN2OZ5GSEuMwYwiGcSiOdizGXGGEAS95PEAxgLcZkk7mebfw3b/IvMMxkAc4UQz0sAQoAQz48kLhPiWQziXyAAxPMlxGW2ucIgnkm8IMZcZlsSAEiSxGWSAMQzmSts86KRhHkuxjwPYwCQxAsiEP925gWRxPOQxANI4l/DtiQuk8S/xLYkQE5zmTEvGtuAJEDIGIMAbEviMkm2uZ8kwDaAQQgBljHPy7YkAJBkG0DI4lnEs9gGMAghY4yxJECIZxGYK4x5LubZBCBkjEEAQsY8JyHAmGcTGBAg2QaEjHlOtoUQgBBgzP0kYYy5nyTbgCTANg9gWxIgCbDN85DEA9jmASQBGADxLMaYF04SgAGMuZ8kAIOwzXOSBBhjHkgSANjmfpIA2xhjQBIASOIKYxvxQJK4n20uE0IAtrnMNiBJCGGb+wkZ8wC2JfFCSQJs85wkAbZ5TpJs8wCSuJ9twLYkLpOEeQ7CNoABEA9kWxKX2QYQQkKAMQZAvCBCxjyAJNsYxBW2JUmyzQslyTZXGMSzCAHGPA9JvFC2uUwSL4Bt25IkAbZ5foQAyxjbQpIAY+4nBCAA20LGPItBSLLNZZK4zDaXCRlzP0mAbS6TZBuDeCAhwLIQYJvLhIwBQIj7GfP8yEI8k3gmAxjznCQBmCuMhXgAYyGuEMYYSQDmmYRtLpNkm8skYWMjIfEAtrlMkm0eQJJtADCWBSAkcZltrhCyAGOel8BgEFcIGfMAkmzbFhJCIK6wbVsIkAQgANs8gCQAY8wVQgiwzRVCFs8iANtcJgmwLYlnMRgEYGxbEoAQsm1bEpdJ4jLbPIBtQAjxTAZxhSTbAMZYkiQewDYPIMk2z48knpNtXgTGsgCEEJcZ8wJIAmzz/EjiMtsAgEEAkrjCGHOZJNu2JQGSeE62AUnczzb3kwTY5n5CAAKwzWWyEMYAQgiwbSzEA0gCbPOcJAEYY+4nCbDN8yMJMMYI8SwCsA3YlgTYlgRI4n62eQBJtgEM4gpJgG0uk8RltnkA25J4ANuSACGEbQCQZBvAAJKMuUzIWBLPyTaXSeJ+tiUBmGcSD2SbF8C2JECSbcC2JJ6TJMA295NkG5AE2OYBJPH82OYy25IASYBtnpMk7mebB5AUAALxL5LE8zAGEAAgybZtwLYkni/xTALzfEniMkm2ucIgXhhxhRAgxBXiCsu2ucI8ixCAeV7GGMA2YCwkxAOJB5IAc5nBGACMhbhMEg9knoN5NiHEZUK2ucy2bR7ANmAbsG2bf4ltHkASlxkDmGczLyrx3AyAeCDbmGcR4vmxzQPYBoQAIcQVkrjCAAghXhBxhTHPIgBJkgDEAwkZ8wC2+ZdI4jJJknh+JPEAtnkASbwQAvMcBIAAEIgrJPGcbAOALACBABAA5vkS4jlJ4gWTxP1s8zxsc5ltnpMxIMSLwDb/ecSziReREP8iAQgBQhgMYJv7CfEsRojnJMQVAhDCYJ5N/FuI5yb+w0m8QDbPhwCJ5yIJAIQAQIjnZRDPlyQhHkCI+9nmgQRgzItAEg9gG0A8m3kuQtzPmOdHkm0eSGCexTaAeRbbXGabF0CI52KeRRKAkATY5nnY5jLbkngekvjXkwQIGXOZMeKFs22bF5EBhIT497HNi0g8k3gmYRsAMM8iZJvnZJvnIgAMgHkuknhBDOY5iAeSxGWSeB6SeADbQgDimcRzsc0V4llscz9JACAJgwEwz2KbBzDmASTxgtnmfpKMeSDzQEJcJiSJB5DEZba5n23uJyTEc5Jkm8uMbfOvJIkHkMSLzLYyk8skAbZ5fiTZ5oWSZJsHkIR5IGPuJ8k2l9mWxPOQBNjmWQTmuQnMAwkZYxCAJJ7FPF/GPBfzTOKBJNnmASSBARCX2eb5kbB5XkIABmGMQQCSANu8YLYl8QLYlsQDSOJ+trmfJNtcJon72eY5CSGel21JPA9jIS6zzXOSZJvLhADEs9jmMtuAJCHAmPtJss0DCBkDgG1JkmxzmRCAeC62uZ8kHsA297MNSAIASbZtSwJsA5Ik2eYFkATY5t9KEmCb+wkBCNs8gCTAGGNbEs9DElcYwJjLJPEAtjGAsSQewLYkIWMuk8RltnketiXxQhgA8bwkAba5nyTuZ5v7SeIBbPOiMwhJGGOeH9uShIwBQBJgjHkgSdzPNs/FAEKWAUASBmOZy2xLEuJ+xkLG3E+SbQxgLEkIQADGGNuSJHGFAYwRQgDmWYxtSxICEFfYBoQQtjHPJJ7JIABJxrIAY+4nCbDN8yNAss0zCczzkIQBjAHAWEjImPsJcYW4wrZtQBIgCQMYA4AkwDYviAEkAQDCNlcYSQACsM1zkgTYBoQQtgFAkm2uEEIYywDmuUgCbHOFkQQY8y+RhDG2LUmSbS4TAowBIWMeQJJtYyFAEvezzXOSxHOyzWWS+FeyjTEGJHGZJNu8ULYlAZIAAGPMZZJs2xYCEM8iCYMAbPOCSeL5sc39JAG2uUIIYYwBIcAYwCCeRZJtLrMNCCGusA1I4jIhY0DI2LYkHkCSbZ6TJAwCsM0DSLINAELG3E8SYJvLJNm2LQkQMgaEEBgAYZv7ScJcYQzYlsRlkgDb3E8IMOb5MsaSAEkABmEbABCY50sSgHk2AdjmMiHAmPtJss1zsi2JF42xLMSz2JYECBnzPCQBtnkekmzznCTZlgTYBjCIwLwobPM8hADM8ycwz5+QZBuwbVsSl0niBRPCPB/mCttcZgwgXjhjAPFAQkJcJiSJB5BkmysMIAQA5gEkJACwbZvLjLjMNs9LPJPAPF+SuEwSL5gkHkASL5Qk2zyLwWAwz0UIwDwvSTwPYyHuJ4kHkGSbF0oSIAnAPBdJtrnMmOdkWxJgmyvMv5ZtHkAS95NkmweQxL9EEv8mkngg88KYBxLiASTxLxIPZJvLjHlOtrlCvHCSeABJiOdPAJj/cLZ5HpIk8SzmuQjxX0Y8mwGMEc/BgADE8zIGMP8xzPMnnsWY/0ASLwJjHsAY86KTBCCemwBs83yZZzPPZBDPJADEC2OeP/Ns5jmIF8b8KwgMgLnCtiTuZ8z9hHgAYwDz72Sb/wi2JfECSOJ5mQeyDUgyBjCYZxPPlyT+NSTxnIQwz81gEA9kWxKXSRICMIAxIAkAhIx5AEmYB7ItieclHsiYy2xL4lkM5vmyDUjiMmMuM8Y8k3k2gXkORhLPYjDPIsRlQjyLeIHMczNCAEaIF0I8F2NjHsC2JO5n27YkXnTG2Jj7SeIyY14wSdzPtm3AtiSehySeSYAFUI2FuMw2LwJJtrnCIK6wLQQY8wIIARjEFZK4nyTbPA8hXmS2JfE8bHOFwAAIIcA2IMRlxtzPGBBC2AZs85yMMYAkABsQmGeSZJsrbC6TxGWSANs8F/GCSOIBJAGSeH4kcZkkwLZt7ieJ52RbEuLZzAMZCwHGQjyAbZ6TJCHbPCdJXGabZzEAwhjzLLa5TBLGNkISBsA8k5HEZcZcJokHMs9im3+JbZ4fSYAk7icJkGRbEmCb50eSbZ6HJB7ANmAbkMT9JPEs4gohjDGAAQBjQAiwzWWSAEncz7YkwDaXSZIF2DbmORkLARhjSYAk7ieJy2wDQpJ4AEm2JQGALO5nzGWSbCOusA1IkgTYlsQLZVuSbZ6HJC6TZJsHkGQbQAhxPyFjrjCIKyQBCIxtSVxhANuSJAG2uZ8k2xgAASCuEEJgjIUsA7a5QiAwAEJcZgDbkrhCABjEczDPYhsAJAFCgG2uMM8kJAHGAOYKIYRt7ifEZULGloUAjJAxBkA8X5JsYxBIxphnkbB5DgaBMcYAxtzPmCsMgEBgMAACkARIAgBjQAjAIADbkiRxhQEsYxDPYgwIITAYyxhAEmBbkhCX2UYIAbYxgG1JxjwXgTEW4jLbknguAjAGAEkAYNtYSBJgGwCMMQgh7ieJK4xtScaAJNtcJmQsiRdMEg9gm8sk8QC2eU6SAMyzGAOSAAAhBNgGJAG2uUySbS6TxP0kcYUBjDEA4oEk8Zxs8/xIAgDbkrifbZ6TJMC2bZ6TbS4T4lnE82ck2QYABAAIIQCELB7AmPsJGduWxGWSbNuWBGAQDyRkWxJgWxLmudgGAAzihTDGIIR4FmOMeTYBIIS4nxBgbBvAIIQQzyRsA8Y8kPjXMuYKAwjxPGwDkrhMkm1Akm0AIQTY5vmxLQmQxP0k2eZFJsk2IIn72ZZkm+dkm2eSAAjuZxuwbZvnIQkBSLINYGxL4gGMjbnCIJ5JIABjrjCSeABJtnkASQBgzBVCEleIZxHiAYwBwDaX2eZZzDOZ52XMFeZZjG1zP0mSAATGNs/DPAdJto15EUgCAEm8UJJ4EUjiMttcZpsXgTEvmBAvgG2eH9s8gG0eSCD+BeKZzHMTL5B4NgEgXhDbvAgkAYAkHkASL5gkHkASL5Qk7ieJ58tgnpckLrPNA0gCbAO2ucw2z8kYAIy5TBL/KuKZzAtkXhSS+G8kns1cIYQBhPjXEwIQz01cIcSLQjwXSYAQL5htXgjzXCQJ8YKYf5kBEM+feCAB5lkk8QIIAQhjnsUAQgDi+TDPZp5J/MvEi8o8N2PMFeK52OZZxPNlDGCem7hCiPvZ5jnZts0VBkC8EJJsc5mxEC8y2zw/tiXxbyUJ8ULY5n62eS7imQyAeOEkcZlt7idJEi+Ubf4lxjyLQCAAIV4QAxgjACGeiwCEeCAjiRdEYDAA5gpJXCbJNpfZRgAIhG2eh5AkLpPEFeaBjLnMGMAgnkm8MAbAXGHMi0wSAEgyBhDGQjw/xgBgLMRlkviXSAIwV0jiASRxmST+NSQBgCT+JbYl8QIZkKiSeABJtnle5rkJjLGQMQ9kEM8kjDEAQhZgDGAkAbYB2zyAJNsAIAkwxlwhCTAGAGMukwRgEIAkHsC2JJ6HEFcYAAEgANtCPA/bXCGEeABzmQ0gAZJsA7IQL4SxECAJsM0LYJvnxzYgiQewzXOSxAsgCbANSAIkAbYB25IQgG1AEs9DEpfZ5gEk8QJIwhgDmOdLkm3E82ckWcbYliSJZxEYBIB4INuAJACQxIvANg8gybZt7mdbEiAJsA3Y5jlJAgDb3E+SJMC2JECSbZ6HJMSzGduSJNmWhRAy5jJJtrmfJB7IIDAPJMRltgFJgJCxECCJy2zbBiQBGAABALZ5AEmAbSFjDICQBACSuJ9tSdxPEiDJNi+YbUASDyDJNveThHkgSdzPNuZZbEsSAowRgDEGkARgAEm2JXE/Sba5zDYgCUAAgG1jjBDPIjCSeCBhjAEwV0jiCiNkLAlAPIsk2wCAQUiyzWWSuEI8kBDmCttCCGPMMwkhnkVghAAEBkBcIQkAbPMsBiGEeBbbkiTZ5jJJXGEQAAJjWxLPyZgrBIAxBoQQmCssCwGY52AAIcA295OEQQCIK4R4IPEstgFJmGcSQoBt7ifJNpcJIZ6LEFcIzBW2eSCBeQ4GkIWQZJsHsC1JEoCxDUjieRmEkG3bgCQAsA1I4kUmyTYASLLNCyYJsA0AQsYAQgiQZJvLJNnmBRDiCmFbCJAE2AYASQDmgSRxP9uAJACQBAC2uZ8k/iVCGASAMeY52ZaEkMUDCHGZMZdJwmCMuUySbQCDAIwBSTwnIQRgDGCukGSb5yUwgCTbXCaEEDLGSAIwz2YAxHMwCASAsC0ESAJs8wCSuELYFuIFkMQD2OYySTwPY0lcZpv7CfEAQohnETLmASQBtrmfbR5AEs9DEg9gmxdMEmAbACTZlsT9bPMAkniBbAgAkCSJyyRxmSQuk2TMZbYlIQAEYCwJAIQAxHMwz2QQiGexbZv7CQGAJNs8F/NCSOJZxPOyDRgDGEAIAIyNAQTigSRxmSQuk2Sbf4nBPJNtQAjAvBBC3M82/0GMuUwSL5QkXihJvGCSeH4k8QCSuEwSL5xAPAcBIBDPJBAAwhjzIjEIAJDEZZL4t7LNA9gGbAO2bfPvIMk2/wYCQFwhyTbPSzybuUKIF0CI52GbF4V5ICGuEP81bPNcBALA2MY8X7Z5XgbzLEL8+4nnIF44SZIAxHMTz5cQIMQD2JbEC2EAxHMR4lnEcxMvKvHCGfOiEeKBBOKZxItIFoABjAHAtiQAgbnC2Ni2bS4T4lkMBgEgXhBJPCdjXgS2ucy2JABAAAgAcYUkLpPE/WwDiOdiWxKXSeI52eY/jbExz48xYFsIkAQgXhS2ES+cbcwzGcQLIYkXShIvhMAIGfOCGMQzCcQVQtzPNs/JWAhACBnzQOK5CPGcbAOAJJ6TJC6TxBUCMOYy25jnIon72bYtiQcSL4RtSVwhXhBJAIB4LrZ5ANtcZpt/PSFeANs8D9u8ULYB27a5TBLPyTYPIIl/MyOnkW0ASbZ5AEmAbQDAIAAhY+4nifvZ5gEk2QYwiGcxFuJZDEIIQAC2uZ8kwDb3kwTY5n6SAMyzCdtcZlsSz2IQgCSexTybAGxzP0m2AUm2AduShBBX2IC5n0E8NyFjHkAIMOZ+QsY8D9uSJAG2AdtcJonLJHE/2wAGQDyQJMA2/yaSuJ9tXjDbkiRxmW1eAEmAMca2JEkABkBgjLmfJK4wxtxPkm2eLwFgrpAEALa5TBL3sy2J+9nmAWxL4vmxDUji+bENSJLE/WxzP0lcZhsAJAG2eX4kAbZ5foSMAUASYJv7SeJZzAMZc5kQArBtWxLPQxJgm+ckhLDNA9gGJEnifsaY5yUJwCAA2zwP25Ik2eYFk8T9bPNAAnOFJC6zDQAYxHMTAMY2Qoj7CRlzmSSMMfeTZJvLJHE/24BtSZJsc5mQMZcJGfMAtiVJss0DCBnzwhnEFbYl8QCSuMw2BiFkjEEgMA8kBCAwgLGxEM9LCAG2bXOZJK4QQoBtnoeQMS+UEAKwbVsSIITAAMZcZlsSIITAYCwDAAYhZMwDSLLNZUIIAAMYI4QA2zyAEICwzQtgWxIgCYMAbAOAJMA2L5gk2wAghABs8zwk2eZ+QogHsg0AkmzzALYlAZJ4ANuSuJ9tQBJgm/tJsi0JsM1lkrjMNoAQ4goDGGMABIBBCBkDgJAxl0niAWzzAJJscz9JgG2ekxBgGfMstiXxPGwDkgBJgG2ekyQeyAC2AcAYIQTYBiRxmRDCGANIwhhjEFcIAcYYxANJsm1bEiAJc4UxlwkZY4wl8TwkAba5TJJtwLYkXhADIAAhhG0AwCAASRhj7icJY4wxlsRlkgDbvCAGAUjCAAjbxkKAJMA2l9mWBEgCbPMAkrjMmPvJAmwjAEAS97MNYK4w5jJJgCSek22uEJjnIon72QYA25IASYBtnh9JgG3uJwmwzTMRgM0VtgHAtjFg2zaAMTYGAGMhzPMSEsJgANtCPC9zhRCAEAIQ/xbiuQnbXGZbEg8kXhBjnoeQbS6zzWVCGABzP/MAAts2zyLECyKukGQMGNvmASTxojHmuRjMs9i2zWW2edHY5l/DtiTuZ5t/kXmBxPNhACGuEIAkni+DeRFJ4gWwzfOQxGWSeB6SuEySJP4ltvmPYMxzksS/lnkWY1504nlJ4l9LALZ5HrYl8Zwk8Txs84KYF8g8f+ZZhPgXmWeRxH8yY14UBrDNv54kXgiDeSBjXjDbPBfxLzAvkHk283wZA5hnMs9kAGMuM+aBxHMQzyQQiBeVeS62eSDxvGzzAJJ40ZkHsi2JKwTiuQjx/NgGAMRzkcSLRhLPyTYPIITBPJsBEM8kMA9kzP1s8wCSeADbkrhMEpdJ4nkJzItIEiAJsM3zsM1zMVcYA0JcISTxXMwVto0BxDOJZxOYZzKAbR7IPC9jLpMESJLEC2bMZZIAQIjnYgBjHkASACAAIcxzEBgAA0gCJEkCAElcJokHMsZcYZ7JALJ4FvNs4nnZNgZs84KI50uIBxDiuRjM82Ek8QCSeB62+deQJInnj8oLIMQDGHOZbSHAWBIAYABjHkhcYSxkGWMsCZDEczIGMEI8P5K4nzEgxBXGGBDiOdnmfpJs81yMMfcT4n5CvHDCGMAgni/JIECSbe4nxAMIIQDbXCaEeOEkcZltQJJtQBIgxBXCmMtsSwKEjAFJvAC2JXGZbR7ANs+Pbf6tbHOZJK4wCAwGcYVtSYBtrjAISbaNeQDbgCSeh21eKNtcJkkSYBuQxANIAgBJgG1JgCQeQJJtwLYk29xPEmBbkm2ek21Akm0uk8S/xLYkSba5n20ukwQYA0IAAjDGXGFbCGGMASQBGMTzEjLmMtuSbAMIzBWSbEvifsaAEAKwDdgGJNnmX2Jbkm3AtiRAEvezbVuSbe4nybZtSZJs25aEMeYKgxACEFfYBgAMIAmQZBsAjHle4grbgCSMbUAIkGRbEmAbwADGgLGQMeIKSbYl8QC2AUlcZluSJNu2uUwSACAAQBKXSbJtW5JtXgiDkGQbwBgjMEIAQggDIAAhAMA8kCQeyCCMZQEABoGwbRtxhTEGkMSzGGMEBpDECyCEeG4CwADGQpJ4AGPb3M82DyDJNuIK25IkGdsGhLjMGCOJK4wkAJDE82MbsC1JEpdJ4n62bXM/Y8wVthFCgG1JPCfbXCbJNi+YJADAGPOcJAG2AUn860nieRhLAgAEBkBcYVsSz8k2DyDJNg8gybZt7idkzBXi+TDPyzYgCZDEA9jmMklcZpsHkMRlQjyAEJcJcYUBbEviOUkCLAOyAMsYY0AIACQBgDEgxLOYZxJX2AYk8YKYZxOyACGEbcC2JEAIACxjnkXI2JjLhADEs4lnsc2/SGCuMAaEuEI8kBBgLMTzIwvxTEYIQADGgBCAAGzzAEIIwDaAEOJZhG0MIIkHMldIwtgGAEncT5Jt/pUkcT9JPBMBSOIySQAgCRCSxPMwBhDGPF8G8UDGAEISDyDJGMA8H+aBbPMvMeYK87xsAxjMM5nnQ1xhzP0kcYV4JiHEsxhJACCJZxIIkGSbBzDmgQxgmxdKEs+PJMA2z0sAQkKAJK4QL4gkXijbvACS+NeTZJvnJQDLiOdmAIxtALDN85DEv4lt/mtJ4j+IbUlcJgmQxPMyGADzTOYK20IIY56LeG4GQACAbcA2AAghAEn8SyQBkgDbPIAk7ieJyyQBtgHbknhOtrnMNi8Cy1xhEEIA4l8kieckiX+ReTYBIAAh7mcMGHM/STwnSYAkAANgni/b/Ets85yEeCHEs4nnTzw38y8z/yLbPItAYP7VxAMJ8XyZ52KbF85grrAtCZAE2Oa5iBfCNpfZ5kVmGxDiAYRsc4V5XsbcTxL/erZt85wk8QCSeEEE4goh7mfMcxFXCHGZJJ6TbUlcIR7ImPsJAYjnT0jiMkncTxIgiedHEiBJEs/JWIjnYjCAEOKBhLhMEs+XeCbxQJJ4XuI5iH8dgwFkIZ6LJB5AEgbAXGHMcxHPJF4UtiXxAJJs80BCEg8knoskHkCIy4QwL5B4vox5ACFeANuSuEzImMtsG/OcJAGAJF4ASTyAbV4QAygzecEk2eZZDAKwLQkQAowxAALAIF44SVxmG7AtCcA8B/EskgDMMwkMYIxBAELczxiwLYnnIcT9jDGWhXgWIQsw5oGELO5nzP2EEFfY5n6SbHM/24AQ4pmEEGAbsC1JEs/DNpdJ4gFs8wIIAZYxL4gkwDYASLLNv8Q2IAmQBNjmfrYlcZkkHsA295ME2OYy25IkAba5nyTAGPPC2UYIAZJsc5kk7mcbsM39JAGSANu8UJIA2wAgifvZ5n6SANs8D9uAJB5AEmAbsC0JAGxL4gEk8QLYBmxL4gWTxBXGMuaBbAOSAATGtiQAwCAk2eYKgXlBJNnmgQziCiHAmPtJss39bAOSJPE8bPMAtiVJ4n62AduSeABJtnleAgNgAMTzksRltm1LkmSMeRZJtrlMEpfZ5gGEAGOek5AxBjCWxBUG8UCSbAOAJNtcJmSMQbwgkjDPJK6wzRUG8WzmCmNJgCTuZ9tYCEBgAFkIwJjLhLjMNoC4QghAPJBtDIAQQti2LYkXQJJt2wAgSRKX2eYKIcQLYQBjDOIKSVxm27YkSbZ5TpIA27wgQgiwzWW2hQCEJGMMAEiyLQmwzWW2JfE8JNnmhZJkmwewLQmBeS7GGElcJsk2l0myzfMjCbANSOI52eYySbZ5AEm2eQBJtrlCCHE/2xiEJNs8gCQMYGwbkMRzEgIQtgFjjBCAeBYhY0nczzb3k2Sb5ySJy2wDtiVxP0m2AduAJEAS97PN/YQAyxgA80wCkMTzY5vnRxJg27YkQBKAATAIAGEbgwAkAba5nxDPyRgAEAAGwCAASdzPNpfZloTAPJAk21whhADbAGAbkMRzkgQAtgHbgCRAkm1AEpcZAxhACLCMASTZBjAIIWOehyTAGANIsg3YlgQgZBljAAQgCcAgbAO2JXE/SbZ5oSTZ5n6SANs8P5IA27xABOaFsC2JZxEAIIkrxDMJxDMJDOZZJHGZbduAbR5AEleIZzG2bZvnyyCeSTyTeCZxhSReEIF4JoF5DuaZzBXGAAbxbOI5mOciyTYPIAkAMM9kHkiI58c2LzLbPIvAPJPBAIAxz49tSbwAkrifJB5AEs9DEg9gmwewzf1sS+IFE5LE8yOJ+wkBkvjPYZt/E0mSAEn8S2xzP9v8a0iyzQsgxL+ebQDzfJgXSNjmgcy/SBL3k8S/iW3uJ4nnIYlnMYAQgAAQAOZFZZ5FEs+PJF4ExlxmzHMxL4Qk7icEYJ4/8W9gzL/IAJgXRryoBIB4Fts8P0IAgHgW2zwX83yYZxOAEIB5JvNcbEviRSCJ+wlxmSTuZ8yzmAeSxGWSeH5sc5ltSbwQAkA8i23uJ4nnJISwzfMjif8ItnlOtnle5vmyLQRgrrDNFQaQBAhJ4n7GAAYBCAHGAOaBhHhOtrnMNs/DNvezLYkHsC0JkMTzJZ6DwDyQMf+hjAEEgPh3MRgAc4UQL4SRxAPY5lnMFZIAQJIknodtXgDbXGab50tgrjAWAhBCxgAGg3lu5grbXCYJkCRkzGXGPItBvCC2eQBJXCaJ+9mWxAsgiX8dlJn8SyRhnsUy5gpJgG0eQIgHEhhjwLYkLpME2OY52RYgQDyQwDw3IYv7WcYACMyzSLLNZZIAYwyAwAC2JQEYBCBkjEE8kBDiORjANkISYJvnR5JtwBgjicsk2eYBJAG2eX4kAba5nyTbPA9JGGMAgxAy5gEkAbZ5TpIA29xPEmCb+0kCbAOSANs8J0nczzaX2QYk8Twk8Zxs85xsSwIkAYBtnh9JtrlMEmCbF0CSbe4nyTYPYFsSIAkAbAOSANvcTxJgmweQBNjmMkm2AUCSbZ6HbUm8CCRxmW3bPIAkHkAS9zPG2JYkyTZgWxL/EtuSeABJXGGusIyxLYR4LkKAMfeTZJvLhIwxCEk8gG0AkGSb5yEJsA3YliSJy2xzmSTbAAZACAEI2zyQQVwhZMwDCBnblsQDGYQkwDbPSRKX2bbNZZIQGNsIIUASBjC2DQCSJNkGAEm2eQAhY9uSuEwS5pmEbUAIARgLARjAmMtsI4S4nyTbPIBtSVxmW5KQMZfZFgIQkmxzmSQMYMwLIAkAbPMAkgAMgLDNv4kk2zwPIWPbkngA25J4AEk8gG0uk8QD2OYBJNnmBZPE/WzzL5EE2LYtSRJgm2cRsgBj24Aknh9JtgGMsSSehyReKNs8gCTb/CvZlgRI4n62uZ+QMQYBAEKAMQYhCQBsAxgAAUgCbPP8CAHGACDJNs9Dkm3bkrhMkm0uk2SbB5BkmxdAEg9g2zYgCbAtCQAk2eZ+kgDb3E8Sz8k2DyRkAcZcIWTxQMI2BgEI8SwCsI1BPJMBEEKAMYAAhADb3E8SYJvnS2AASba5nyTANveTBNjmBZMEYADLgBDGmAcQ4jJjAMAAiH8t24AknkVg/lUk2eZ+krifbUAS97PN/SQBtnketiUBwfMjCfEsthEvjHggY55FYAAMRhIvgCQuE1eIB5CEeT4M4pkE5pnM8yWJK8wzmSskcYUAhIwBxPNhng/xfEniASQBQggAkGSbf4kkXjDbPC+BeSaDeD7EfyxJvAgkAbb517MN2AZs8/zYBgDb/Ets2wZsSwIASdxPEvezDdgGAMSzSOKFss3zI8k2DyCJfxPbPBfxQgjxLEYSIMk2IAnxfNnmMkm8EOaZxAskrpDEfzLbPIAkAAFg/kVCxphnEQIwgDHPYv6NzBVC/EskAZK4n22ek21eBEJcIZ7FNiDE/STxnGzzgtkGjAHAGPFs4oWQxAthnsk8L0mSeABJkrjMNi8a29zPNs/DNv8mknh+JEniBZPEi8A2YJsrzDMZQBIgJMQDCUCI+xnzPGwDmBedJP41bPNCSTLGIJ5JPDfzHATiXyTEFeYK25J4ASTZ5jLbkrifJB7AtiReANs8FyGJyyTZ5t9MPAeDeA4G8RwMgHgm8Uzi2QRGCEAg/nXEcxOSMFcY8x9FIJ7JPC9jLhMCAATiBZHEZbZ5AGMus22bK8wLJCTxPGxL4j+CJC6TBADKTO4nCQBs85wkcYVBPIuxkG2ekyTAGPO8JAHGGEnczzb3E5dJ3M82z8UgAIQQYJsXgSTbvABCAGDMA0jCAMY8P0KAZcwDScJcYcxzkgTY5n6SuJ9t7ieJ52QbsC0JgblCkm0uEwKMMQhACPFMBjAGJAG2uZ8kwDZgW5IkLrPNZZJ4fmxzP0k8D9s8J0mAbV4w24AkHkAS97PNCyYJsM3zsA1I4nlIAmzz/AghbHM/SYBtQBJgG7AtSRL3s82LRpJtXgDbkiQBtnl+JNm2LQlAyDLmASTZ5gEkYZ5JABhjHkASVxhjQIj7GXM/SRjAmMskAbZ5foS4n2UhwDYvgCTbACAJAGxzmSQus21bkiQAY8xlQgDiORjAmOchyTYG8byEuEIAtrlMEmCb50tgbEuSBBgLGWNsS+IySbZ5AYSMMQACEDLGIIQAhG0uEzLmMkm2eQBJAGCby2wDkrifJNs8D2NZAAIQQtjmMkm2bUuSZNu2JF4ASRjAGBACjHkekmwDgCQAY8wLYgBjSQgMgAEQV9iWJMk295OEMeYySTwP27YBSdxPEpfZ5nlI4jLbXCaJF8A2L5yQBRhzmSQMxhgBCCEwAMYYAdiWJMm2bUmAJIwxz0OSbduAJO4nybZtSZK4zLZtSYAkwDZgjJEESAJsc5kkLrMNAJJ4IPNAloUA28ZCgBCAADDPJIwxgJCxbUmAJO5nGwAk2eY5SQJsc5kk27YlcZkk21xmG5DEc5Jkm8sk2QZsA5J4TkIAgAAA24AknsUAxtxPEmCb+0kCMIAxIMSzCAADGANCAGCbK8QzGUkAArANSOJ+xkJcZpv7CRnzAkjieRgLYRCAbe4nCbDN/YS4wiAAY64QsowBIZ5F2AZsS+IySYBtrjAA4l9FCAAsY57FtiQuk8RltrmfJMA295PEc7LN/SQBtnkmAvMstvlXEuKFMM8ixGWSeBbxwkgAmOfLABgA81yEJEni+bHN87BtGzDm+bGN+BcIzHMQmBdECIP595AECHGZJNs8i0AACAwGwLwgknh+JHE/27xgtgFJ/CvZts3zI4nLJEniRSZJEi8CSfzbiP8QkiTx/Eji+ZEkiReBkG0AsA1gEFfY5jLbPBfzHMzzYZ6DeTbxr2KbZxGIZxJC/GcwAOaFEQ8kxGWSeFGIF50kXjSSbHOZbZ5FPJsBEADCmCvM8zLmASTxLOK52AYk8fzY5vmRxYvGNi868UC2uZ8kHki8qIwkAPF8SeJfTxIPYJvLJPEis82/nhAviHgmASCeSTyQMc9FvBCSJPEAtrmfbV4QAQjxr2SbK8QDyeJ+QpgXyGCuMOZfYlsSDyCJ52QbkGSby2xL4n6SAEmSuJ9tIQyAeSDb3E+SJJ7F/NuJZxIvKgEYI4yNbfOCiGczsngeQsa8AJIAjG0M5gohY8S/kbhCyJjLjBHPRRLPSRJXCMQLJJ7JPJAxV5gHkmSby2zzbyKJyyTxnCQpMwHbkrhMkm3uJwmwzXOSxP1scz9J3M8295PEZba5TAgw5n6SuJ8BGwCEAARgm+dHEsaY58sYc5kk/iWSMIAxDyAJsA0AtgFJACDJNs9FYABAyJgHEkI8J9vcTxL3s82/hm1JgCRjDIABEABCFs8iANv8a0iyzQNIAmzz/EiyzWWSbPM8bEviASQBtrmfJNs8D0lcZpvnIQmwzWW2AUlcZlsSYBuQxGWSeADbXGZbkiTANveTBGAABGCb5yQJsA3YlsRzsg1IkmSbyyQBGARgmweQxAPY5jIhwDIGsA1I4n62JXE/25IkAbaFjLmfLATiWWwDQtzPmCsEBrAtiSsMgPiXCcwVkmxzmW1JkngA2/zbGEAIYVnIGHOFJNtcZluSJC6zzWW2JQGAJO5njHlBJNm2LYkXQBKAAYwB25IkcZltnocQz0UAtgHbQkIIhG3bQgjAtiQuk4QBjLlMkm3bgCRAEg9g2xgjCZBkG8AACCEAYZsXmW0ukwQIAcYIIe5nm38rIcAYgxBCAJhnErZ5AEk8gG1eAEm2eX4kAbYBwDYgiedHEpfZBgBJAGCbyyTZti1JEoAxBgCEEPezDQCSAMAYwABCCNtcJmTM/SRhjHkBbEuSZJvLJNnmASTZ5n6SuJ9t7icEGGMQzySEeE62uUySbQwCEAKMAQxCCEAAtgEhwJgXSpJt7ieJ+9kGAEm2ecEkAbZ5AEm2uZ8Q9zPmAWxL4jkJAYhnsc1zEuJZBGCby4S4zBghBNjm+RECEBhj/iWSANsAIGTM/SQBGMCYK4QswJjnJAmwzf2EAISxEM9iAGOeiwEQgBACsM0DSLINSLLN/SQBtrlMEsYYEAKMASEEBkBgAGOMsRCAEAKMeR62JQGSbAO2JQGSANv8a0gCbMABAJJs2wZsSwIASTyAsW3+RQbzfNnmRWTzohOYZzKY52AAIZ6LwWCEeABJAMKYK8wDSUIAkiQBkiTZBgDbtrnCPIuxJMSzmf8ktgEMYFtIEoAAbAMYxLOZF8Q2z48k2/xb2eYBJHGZJEASz49twDYvmG1eMEmSAEncz7YkLpPEC2Cby2wDAAaDeDbzr2Wb5yRJEmCb58c2DyCJB7DNcxJCAJIAY+4nyZjnYgAhHsj86xhJAGAbwCAQDySJF5ltXjDb/DsI8QLYlsSzGACwDdgGAMzzYV4IYx5ASAhAPDfzn0U8i23+JZIASTw/kgAEIMRzEQDiP4B5JvPvZMwV4tnMsxnEA9kGMFcI8YJJ4l9iG5DEfxDbmOdgni9j/lUEgHggSdzPNpfZlsT9JPEAtiVxhcDY5rmIK2QBmGcy/zKBeTZjGwEgEM9NIK4QEgIASdzPtiReKNuS+FeyLYkrxAshZJsXjW1eBMY8i/mXCQwgxPMQ4lnEc7HMCyDEczEvOiFeECGJBzIYAGObB5Bkm8ts84LZNgYAY2MuM8ZcYRuBABBCAEKI5yRJEpdJ4jLbgG3+YxhQpsE8D0kYY/5FAvNcJAG2eQBJtgEMIAkwBmxL4nkZAAFIMhbi+TKAbcTzEjIGjIV4TkIAwjYvgBBgWcg2/xLbgCTuZywESLLN/STZ5jJJAAYwBiRxmW1eKNtcJon7GWMk8QIIGQOAJMA2z8M2IIkHkGSby2xLAgBJgG3AtiSeh21JPIAkwDb3k2SbyyQBtnlOtiXxnCTZBmxzP0mAJNs8gG1JPIAk21wmCbANSAJsA7YlAYAknpMxIAswBiRxmW0uk2SbF0DImAewLUkS97MN2JYkyTb/EkmAbdtcJkmSbQwCgblCEvczxlwhZMxlkrjCPJswxmAQz8U2QkiSbS6TZJsXgW1JvAgk2QZsA5Ik2eYySbZtc5kkIQCBMQYwiGexLQmQBNgGbEviASTZ5gWwzWWSeADbXCYkZJnLJAEYwJj7SbLN8zKAEAJxhbEQl9kGACFjHkCSbdsAIAkQAmwbS+Iy25J4HkLGGIQkALCNAYwlcZmQMQ8gyTaXSeIBbGMABIAQ4n62uUwSD2Cb52GbB5AkybZtSQiMbUlcJsk2l0niMtvcTxJgm8sk2eYFkGTbtiRJPIBt24Ak/iWSbNuWxGWSuMw2DyDJNgYwlgQIcYWwbVsSIASAQQYEGBACbGMQkgCMMUKI+9nm+ZEE2OYBbEsChIwBSVxhnkk8kwGMAQyAAIQQtrlMkm0M4jkYIYQxz0vIAoy5TJJtDEIIAdjmfpK4n21AEmDbtiRAEi8a29xPEs+PMQaQZJvLbHOZJEASz8k2DyRkAcaAJMA2gHkmIQQgANu2JfGcJAG2MQghxHOxbVsSl0myzQMYC3GFwFwhhAAwgDHPSQhhG8AgXkSSbAPGQlwmBBgbCwGSbPMCSAJs8y8R4n6WMc9mEIAkwDYPIMk2L5gk7mcbsC0JsM39JPEAkmwDQNg8X7aNucI8FyGexUji+RIPZFuIy4T4lxgb8wBCPIAxz0W8cEJcJoQAhACEbV4AIQAhxL+ZsQ3Y5gFs81wE4oFs80LZ5jJJXCEAIZ4vAQgZ8yKQxHOSZBsAbEviMkk8D0mSuJ9tSYAknh/bvFCSeABJPIBtXgDbPIBtSTwPSbxQQlwmiediMC+cJMyziQeSZMyzCEASLwLbXCaJBzKAbR5IPB8C8WwGEOJ+xjwX8xwM5pnMc5GEeSYBSDLmMtvcT0iIB7DNv4YkQBLPwzbPS7wQknggASCei23uJ0mIF4V4DuaFkGSb/1CSeL4EgHgutnl+ZPH8GAPGPF/iXyYAxItIEv9Wtvk3sS3Ei8A2z0MSLwLbXGab58tghLifMc/LPJN5LgLMcxOAbcy/k23uZ8xltnku5pnEczPPy7YQAvMcBAIQ4n7GPBdzhTGAAIz515DEv5UkXhBzhW1JXCaJfzchnkUACMSziSuEeAGMeRbzLJJs2wZsc5ltrjC2ucI8izEvmBCAeSYhxIvGNgAI8UACEOIy2zyAEAbzQJJ4HpJ4IPFMAvMcxPNhrrAtiX8NSVwmicsk8QCSbPNMKJsRgARgmxdMEvezzf2EELa5nyTuZ5sHEAJsI56DARAPZBuQBEgCbHM/SQAGMAaEAMRzMADCNi+AJNtcYQDEFZJsc5kQwjb3k2SbB5BkmwcSGMC2JF4wSTwn29zPtiRAEmCbF0ASxpjnR8iY5yEJwBhzmSTANveTxP1sA7Yl8QCSANvcT5JtLrMtiQeQZJsXShLPyTb3kwTY5n6SbHM/25K4n20uk8QLJQnAAAjANmBbEoAAMFdIAjCIK4wBIcA2z48QArDNA9iWJGRsLMRlQoAxL5gkLrNtm8sk8TyEeB7GXCEwVwghjDFXCPGcjAEhLjPmMkkAxhgAhIx5oWRZBgDbkngekmxzmSQus80LIAmwzXOShHkWY8wzCUm2bUuSBNjmfpK4nzHmCkm2AYSQbS4zxgCSJNm2LYnnIYn7GWOeSWCeySCeySCEeB7GXCbEZcZcJonLbPNcBAbAIB7INpdJ4gqDEDLmMiFjrjCIZzKAsSQhAAEAtnkASZhnEhjAmAewLQkAJNnmASRxmW2ehyTb/GtI4n62eU6SuJ9tHkCSbe4nifvZBgBJtrlMEg9gmxeZEGDMcxEYDELImPsJITBgEIAAgwDbxkKAEMYyIIS4wjaXSeJ52OZ5SLJtWxJXCAwGASAwgCTbxkJCPIAx9xMCjG1LAoQwCMAyBsAAiCuEAGOuEJhnkcSLxjbPSRLPyTbPSRJgm+chyTaX2ZYESLLNCyXJWAjAPJOwDQgBxlwmZIxBPJCQMc+HJADb3E8SgAEQgG1eBLYl8ZwkAZhnEgBgm/sJcT9jnodtSbxgkrifbR7IIAAhwJjnIYnLbAOAJNvcTxL3s81lQsbcTxJgm+ckiReNbf7VCJ6TJF4ASTyAJC4TAjCSuEwSAGAASTyAsTHiCklcIRD/dgbzfJhnMgjANs/DtiSuEIgrJNnmCgNgXghJPCdJQghAEuZZbPMisw3YBmzb5gWQhHlBhGxzPyGekzEvgCSehyReKEm2ucy2JJ6Tbe4nif8EkmzznCTxALZ5QQTimcQVxgAG8+8hBGBeIAFgjHkg8S+yzbMI2zyQwfwLzDMZAAMg/nUEgHkgY+4nxPMyz2Ib8bwk8SKwbZsXQrwQQrZ54QzmgYRsc4UBJPEvEeJFICSJ/xDi+ROSMADmCiHEi86YF8AYwPzLBIB4IWzznGxzmW3+B5DEfy1jnocQ9zNGvEDiuQjxLALzTOa5mX8t2zxf5gpjAAMYc5kxzyIQiGcSmOdmAAyAeEGEJPEC2OaFss2/xDb/Gra5n22ehySekxAvGmMhBEaI+xkLAQhJPJu5TBIAIAAMAgFgnptAPB/iCkk8P8aY50M8L0mSeE6SAACBuEISlxkDiOdPvCC2eU62hXi+xDOJ50P8h5DEi0CSsiUCkATY5jlJAjDGPCdJGGMMApAE2AYASYAx5gWRBGCuMAYk2QZsS+J+QsbcTxKAeRZjQBLGGBDifsaAbUmAbUAS95OEucIYkGSb+wkBxjwnIQRgm8sk2eZ+kmzzLAID2JYESOJ+tgFJgG3+9YR4IAFgrjDmfpK4n22eH0kAYJvLJAG2eU62JUniOdkGbAOSeH5sS5IE2AZsS5LEA9jmMknczzYgCQBsc5kkLrPNCyDJNi+AJK4wCIwxVxgAcYVtSZIAY8wVQlwhbAO2hRAvhCTbPC/zTEISANjmfkKIZ7ENYBAPJMk2BvHczBXGkiTZBjBCCAABYIwBSZhnEoAxIIS5whgQAhAYY+4nBCCusM0VBjAWQgCSbNuWJMk2l0myzYtMEpfZ5oEM4pkMQghA2OYySTwnY0AWYMwVAsBgEEIIwLZtIcSz2JYEIIQwVxhzP0m2uUzImCuMJIRtLpNkG4OQZBsDGAsBgCQewBgAJGGeSdi2LSQJQFxhmxdAkm3bQgghBOaZhG0eQMiYyyTZtg1I4gGELMsCjAFjjCT+JZJsS+I52eYySTwP21wmyTYASLLNZZJsA4AkALDNZZJs8zwkcZlt7ieJF8q2JJ4f27a5TJIQArBtWxKAEMIAxjyTJJ7FNpdJss39JAG2jYUQsgAMYJkHkMQD2AYASba5TBKX2eYBbEviASTZ5gURsgBjni8DSOJ+xtxPCIF5FsuYF04SYJvnJAmwDdgGJAGSANsAIMk2z0kSYJsXmW1JgJAxIMk29xMCjBGyeH6MeR5CxjwPSbaNhQCBeQ5CAAJjGSMJwBhzmRAAIADANveTxP1scz8hrhC2jYUASTwnYwwgZMz9JAGYZzHmfkLGkgDMcxPGQoBtnpMkwDYPIMRllgEMIIQAbPMAkjDGXCaJKwzCNveTBNjmfpIA29xPkm1Akm0usw1I4n6SwrxIjHketo25zDZg2zbPxQAYDCAkxPNjGwPY5jJJPICxEC+cwDwf4gpJXCZJEg9gGwEYc5ltSTyQEAIwz8HY5n62eQDbkrhMkpAkQBL/IYxtXhCDeRYhAJDEFeZfZJt/iST+JbZ5AEm8AJJ4Trb5l9jmBZPEA0jihTPPJDDPQQBCiOdmng/zbOKFkMQLJ14QYwBzhRCAeCBJtgHE8yEAY+4nCUAAtgHM82XZ2JgrzDOZZxNXCPGCiGcx5n5C/IeyzQOZ5088L2NeEANgZPFABvNM4llsA7YBzAsjnottwBhAAIjnyxgwBhD/OgJA/Isk8SziXyTE8yOJZzHPJgAhQIj/aLZ5wSTxALZ5oSTxH0QSL5gk7mfMA9gGMMY8J4nLzH8g8y+yzQtiACEAASBeIIN4gcxzEIjnQzyTwPyr2OZfybYkXihJkngBJAGSMIAxl9mWxBXi2cwzmecgnoPBAMZCXCbE/WwDQtiAecEEgMAAxjwv89zEv8wAQrwg5gpjIV5EQhJXCMAYABCAEJdJ4vkSD2QMIJ6bsc1ltrnCPJBtrhD/WpJsc5ltSVwmSRIPYFuZyWWSANvcTxL3s82/niTANlcYxLMIcYXAAMa8YLaFEEIAgABscz8hnsUgjHnR2JYESLIN2JYkifsZYwAhY+4nBBjznGwDkgBAEmCb5yHJNgBI4n62uUwSz8M2YBuQxP2EuJ9thBBgzPMSAOaBJNm2LUmSbR5AEmCb50cSz8k2D2AbkCQJsM39JAG2AduSeAEk8Zxs85wk2eYySVxmGwAk2QYkAbYBQJJtXgAhAIEBjHkBbEsSMsYgXiCBuUKSbUASYNu2JEkY24BlIS6ThAGMbUuSBNjmfkIA4llsA7YlITAYBALzgggBxtxPEsYYEOJZBIB5LpZlGXM/SRhjIWPuJ8k2VxgA8Vwk2eYySbYB24AkSQBg27YkSbZtS+IKgXkuxhhJQgDCNpdJsg0AQgDiWYxlGXM/IWPMMwkE5gpJtnkA25IkYa4w5jkJGWOeSTyQJNtcZlsSD2QQV0iyjQEkGfMAshAI2wCAwDyTkAUACNtcJgkDGHOFEAIwVxhLAmzzAtiWxAMIcZkxz0MSl9nmASRxmW1AEmAbkATY5jlJAmxzmSQus80D2JYESAJsc5kk2zyAJNu2AUncT5Jtnock2zwPSTyAbUASYBtjDEgCJAG2ucy2JIQsrhC2uUISALZ5fiSBbZ6XkLFtQAhxhRACY8zzI8k2YFsSD2QQQsZcJsSzCNvcTxJgm+dHCGOZ+0nifra5TBKX2eYBbEviOUkCbPOcJNnmBbMtiQeQxGW2AUmAbS6TZJv7SeJ+tgHMM4krJHE/24AQYAxgAAQgZFkIsM1ltiUBgCQAsM1zMfezARBCCAGIZzMI27Yl8fxIAjDPYswVBgEIAca8IEIWYAwAGIQQAjAGZHE/Y+4nBBhzPyGEbZ6HJB7ANiCEsM1zkgRgnsUYsC2JBzKIKyRxP9vcTxJgm+ckictsA7YlAZIA2zwXgwgAIcRlkrhMEi8CSfxLJHGFwGCem7HMC2UbMMYY8y8yiOciSYjnJIn7GQO2AUASz8VcYSzEZUIA4lmEeADbGMC2bQBzhW0us80LZZt/FfEcxAtkMA8kyTb3s83zIwkAJHGZbZ4fSTyAJF40tvm3kmSb52Sb+9kGANs8gG2eh22eRQCIF8ZIAowBBCAJ8UJIMuYy27Z5AGPAGDDmAYwxkngW8UJI4n6yAMTzZ4z5txHPQWCeLyGel3hu5lkk8ZwkAZJ4ANs8D9tcJsTzEOJZxPNn/mXCmMuMuUyI/xK2Ads8P5J4FgFI4lnMswkAIcQLIl50QjyAMc/JNmCbF8yYBzIYQBL/GpL417PNZZJ4HpJ4fiTxALa5nyT+fSzzLOL5EkJcZv51DAgBmGcyDyQEYJ5JAIjnJUmSbcA2YJsHEpgHMuaFE1cI8VwE5oUQwrxwknihJNnmeUjiMts8D9u8YLYlcZkknpMxAEjiMiEAg3kO4vmSxXOSZBsAbHOFeF7iCnGFeP7EFZJs869ink08F0mSeBZzhRAAIABjXgBJvHDm+bLN82Uk8aKRxAMZBIBAvHCSeH5s80IJcZkxoLQFtnkhBOb5kmQbkGSbF0CSbcC2JC4TMuYySRgAYRuwLYkXQMgYkGSb+wnxnIy5nyRjzAMJGQMYY0k8P5Js8wCSuMw2gJBlzPNjGyHEi0CSbUCSbcC2JJ6TJNuAbUASIAkwxlwhBCAA2zyAbUkAAnOFJNu8AJIA27xgkgDbPIAkwDYPIIkHsM2LQBJgW5Jtnh9JgG3uJ8k2/26SbPMAtiXxXAziWYyFJGEAYy6TBNjmMiFjwLYkSbZ5TsYYIQABCNkGLAtJwhhzP0nczzbPSRIGg0A8kG2eiwAwVwhxP2MMgBAyBgAE5gohwBhjLEkSBoOwjHk2IYQBjG0jhABJtgFAkm0uk2QbACQBtnnBJPE8bHOZJNu8AEKAZcwVQgDiWYwxDySJK8wzCWPMs0jiedjGPJO4QojLjHkA25J4AEkYwBgAJNnmfkKAMVcYBCAEAAjbtiUJGWMQz0HIMhZCAIBtrjAISQBgmweQZJvnIckYAwgZ8wCSeADbPA9JXGZbEpfZBgBJtnketiXxPGxL4gEk2eYBJNnmeUiyzf0kcT/btiXxPGxL4jlJwiAA21xmLARI4n62eSBJANi2LQkQIAGAbS6TxGW2eR62JfFCSQIwxjyAJNu2AUkABiHJNoABEM8ihLANCCEAjDEASLLNZZK4zDaAQVwhCcAAxtxPEs/JNs9DEs/DNs9JEvezzWW2uZ8kLpME2AYkAbZtSwIkAba5nyTANlcYxHMQQoBtQAhhG7AtxGWSAGNAEmAbsA1I4vkyzyaeiyTANveTBNjmMtuSAACDACQBmGcx5n5CgGXMc5FkmwcyCCFj7ieJ+9nmASRhnsUYwAAIIWOei0FcIQnAPItlDGAjAUgCbPOC2ZbEAwhxhbDN85Bkm/tJAmwDtiXx/AkMALZDYMwLZyRxmSRJXCbJNpfZlsQLYJvLJAGSJBnzLOaZzLPY5vkRMuYy25J4fowBxBVCxgBgbBsDGAsJAUJcJonnZJsHElfY5gpjzP0k8QCSMLb5l0iyDQC2uZ9tnpNtXhDzHMQVkngASVxh/qNI4vmxzXOSxAPY5l9DEs9JEi+AJNs8J0k8gG0AkMQLIInnZBuwzf2EAIQx9xPieYnnYiyEeTbxXIR4TsZC/JtI4n7G/IuMEOL5E/8CgQAQiOdDPJsBEM8iBEiyzb+eJB5IvHDGPIAQz0VgXhjzIjEviDEvMkm8EOKBjCVxP2NAiCsE5l/NXCael/k3kARgrjDm38c2z8k295PEZbYB27wIbEviOUniX882z0OSbV4wIS6TBUjiAYQAzDPZPJDNC2QewAbzQLb5F5nnZZvLJHGFADAvKgMgnsU297PNsxjEv4ck7mebf4kknh9JXCaJyyTxbyKJKwTmOZgXRIhnMS+EbZ6Lwbww4oURAALzLxCSeCCBeV62ucw2D2Asicsk8bzMFbYRzyYABAIwlsQV4tnMAxnMZQLznAQGc4W5wjYPIIkXxDxftiXx/EjiBbIkCUCSMg3mBbAtCZBkm/tJAmwDgG1JgCTb/EcTMuZ5GQQgicuMMQBCCMAACIxljDGAkQQAQsYYAAFIAmzz/AgBCMA2z48k24Ak2zwnSbxgtgHbkngBbEsCANuAJEASYJvnJGQMAJIA2/xLJPH82OYy24AkLpNkmwewLYnnIck2AEiyzWW2AUmAJJ4f25K4zDZgW5Ik7mdbEmCb5yEJsM3zI4kXwDaX2ZbE8yPJGPNAxkIAIAQgMMZCxlxhAMSzCSEMBgEYA4AsYx5IPIsQgACMMQ9kW5Ik21wmBCBsA4AQgAAwxrYlCRlzmRCAAIwxmGcSD2RbkiTAGINBCAHGgCQAY4xBSLLNA0gCbAO2JUmyzfOQxHMyxlwhZMxlkmxzmSTuZxuwLYkrDOL5MIAkAGGbyyRxmW0eQJJtDOIK25IkcZltLhPiAYxtS5JkjAEwCAAhZJv7SQJsc4XAXCEEGAO2hQBJCNu2JQFCxkII27aFAMQzGWNAEiAJDAJscz9jjCQuk4R5JvFAtnketiVJ4gFsc4UQAmzbliTJNs9JEvezbVuSJB7ANi+AJNtcJsk2l0niMts8gCTbXCaJ52GbyyTZBgDbkgBJgG3AtiTAtiRAEoABjLnMtiTuJwmwDWAQV0gC2zyTQTyLJAADNv8C25Ik2TYW4nkZSQjbXCEwV0jCPBdjDOKZhJCxLB5I2Ob5kYQx5gohBNjmfkKIK2xzP0mAbS6TZJsXQJJtnpMknpNtALAtCZBkm8skAbZ5TpIA29xPEmCbB7DNZZK4QsjifsbcT4jnIgDb/OtJ4lkMYMz9JGEAhG0eyCAASYBtnpcAMP9akgDbPF/GWBIgCTDGSAJscz8hYwAQAoy5nyTAGBACbAM2EiBAArANYJ5JvHBCgDEvlCQewDb/EkmAbSBsXghJXGYbwGAA27a5zDZgG7AtiX8bc4UkHkDImCsM5lmMbQO2ucI8k7nCmCsE5pmMJC6TZMwDCAGAJP4lkngekmxzmW1JvFC2eR6SAEk8gCSekzHPSzwXY54v8yy2jbmfJJ6HbR5AkiQuk2SbF4Ek2zwP27wAtrmfJP4lkgDbPA9JvBDiX2SbF8y2LC4T4gpjm2cRz0E8k0A8B4N5JvNchHgg8xzEM5kXiXg28/wZYx5IGAOY5yWJ5yHEFebZBIABMFfY5oEE5t/OPJP5V7ENYJ7FmMuEuEIAiBfCNs/FALb5NzAABsAAGEAS97PNAwghACHAGDAGjAFjni/xLMY8JyH+JUII2/zr2eZfybYk/tPY5kUgiReNJO5nG7DNZbYl8S8xBmzzvAzifgJA3E+AeX7Ei8Y2gLHNczHPZBAvkHkmAQghMM9kACGei0G8QAJxhSyel3hR2JbEC2BbEv96tnmhJPGcJPH8SOIy21xhEM9mbPOvJ0kSL4AkXhAhCfNMRhKXCfGiM/+RzBVCPBcBAEIARsiYf4EF4jlIPBchnkU8BwMIIV4Utm3bBmzz/EiSBACSJPGchABlmsskHsg2LwLbkngASdzPNveTBNjm+bEticsk2eaBDOJ52ZbEZZIA24BtSVwmCcAAxoBtSVwmhLDNFQYBSOJ+trmfEGAsZBkDSLLN/SQBtrmfJJ6TbcQVQoBtnh9JXGabF5kQwjbPjxBgzBUGQAC2AUm8AJK4n23AtiRAkm2eH0m2uUwSYJt/DUnczzb/VpJs8zyEjAFAiPsZ88IJIQCwjUEIGQNCljEYxBWSbHOZEIAAjDHGQpJsA4AQYAwIcZkx5pnEFUK2jSXxPGxLkmSbB7AtSZJtLrMtJMmYB7AtiechCcAAGMtcJgmwzf0k2QYA20JCCATGGMAghABjAIMQAowl2eZ+krifbe4niedkm/sJGduWxAMIITAI2zwnIWMAAyAkYa4w5jkJAcY8P7Yl8QCSbAOAbSFJPIuwzfMyiGeRBNi2LUmSbQxCkjEGwADGkrjMtiRJtrlCCGGMeR5CXGaMQYAkAAxgzGWSbAMYAPHC2QaEuEI8L0m2uZ8QwrZtSYAkwDb3k8T9bPMAkrjMNgBIss1lkrjMtm1JgCTANgBIAgDb/CeQZJv7SQIwGGPEsxkEIAmwzWWSuJ9tSQAGMOZ+ksBYGGMEIAQYcz9JtrlCYF4IIWNJAOaZxDMZwJgrBAbAAAhAEmCb5yGEAGxzP0k8FwMYAwACc4Uk29xPEmCb+0kCbPMAtiUBkgDbtiXx/EgCbPOikWQbkGSbB5Bk27YkXjBJAAYwxiCukGSMuULIWBLPyTaXSQIwxlwmBBjzPIQAyxgAg7hCEoAx5n5CxjyLAYwlcYVBPJCQMfeThDHmfpIA2/xLJAEYwJhnMc8kAEAIsIy5QohnEYBt7icJsA0AQjyAMYBBCAGIZzLGPD+2JfEAkngetgFJgG1AEpfZBgBEAIjnYpvnJR7Itm1J/GtI4nnYlsRlkmzzQAbxfEniX8VgJHGZEIBBPJN4XpJ4TkIIzBW2JfFCmGczAOKZzPOSxHOyzf0k8aIwknghBAJAPIsk/vVsA7Yl8R/BNv8JJNnmfpIQgJAx/zbmmcyzGHOZsRCAuEKSbR5IPJMBhPiXGPM8hADEv0gS97PNc7INIIx5ANsAICTE8xLPQVwhiedhmyvEczDPJp7NPJP49xPifrZ5IAEgAMQLJJ5NPF9CvGC2ES+IbQDxgkhCPF+2eU5CXGaMeRZjnh9JAALA/HuJ52ZeCGNAiOfHNgDYlsQDmX+RbS6TxIvMNv+hbPOvIYkXQgCIB5LECyaJF8xcJhDPYsz9JPFcxL+aeSbxHMwDCQnxghnzfJkXSAhxP9vcTxIvGkk8J0k8gG1eMEk8P5Ik2eYFsA1Iss2/SDyTwFxhjHk2IcQLZhvzXIx5vgQCA2AAzBXGmAcSMuaBBCDEZUI8i3gm8RzMi05IiGcxGATi+RDPQWCeL2NeKGMeyGAQAALxTOb5MrYtiQeQxPOwzWW2bXOZbZ6LUWZyhbhCyDb3kwTY5jIhY64wiCuEAMQD2QaMhXhOkmzznCQBtgHbkngASbYBSba5nyTuZxvAGEviCiELMOZ+QoBthBDCNveTZJv7SeIyY0AIsA1gEIAkLjPGSOJ+trmfEAIwFsJYxlxhWxIPIAmwzf0k8fzYBmxLEuIKYZvnJAQgbPMAkmzzAtiWJAmwzQPYBiQBgCT+Jba5n21JgCTANs9DEvezDdgGJPEAtiVxP9uSJHE/24BtSZJsc4VBXCHE/YwB21wmCZAE2MYgJNnmMiHAGDAW4jIhAAHYBjAISbZ5ANuSJNkGAEk8kDHmOUmyzf2MMUIAAoG5QsiYF4XAPC9JtnkASba5TAhA2OYBbEviCoO4QhbiCmPuJwnAPIsxIInLbAOAJO5nG7AtSZJtHkCSbR7ANiCJ+wkhjDFCCAADGHOZJAxgDCCEMMYYAPFMBpAEIADANmAbkMRltiXxPCRxmW0AkATY5n5CXGaMQUiyDQBCxhgEAoMxBoQAhCTbPA8JGwyAACRxhcFY5jLbkiQMGACDABAABoMQMuYySbZtA0KIBxLCAAiEbR5AkjHmCiHAmMsk2eYBJAGAbR7AtiSehyTb3E8SYJvLJNnmeUjiMtuAbS6TBEiyzQNIsg3YBiRJAgDbXCbJNpdJ4jLbACBkzGVCXGbM/YQQtnlOksBYgDH3kwTYxiAkYTDGiGcTmBfEtiRAEvezzRUGIWTMZZJsc4XAPJNBXCHJNgbxXISMeSEEBoMQsox5IEmAbR5AEi+AbZ6HbUm8UJIAwDb3sy2J+0myzfOwLYkHsC0JkMRzss0VAgNgEM9LEoB5FmOeL2MsxBXi+RBCtnl+hAAAgQFsG0sChABj7ieEQQCIZ7HN/YQAY+4niRfANiCJy2wjZAHGgG0hwFgSIAljzGU2EoDAPJMQgHgutrmfJAADGPP8CAG2Ec9kEA8kCbDNv4Yk2zwbYfNcjCUBgCSek7EQVwjMFcYA5vkwz8u2JF4wSTyAJNtcZlsSl0ni+RGyzRUGAQjxLAYDYAAM4gpJtnkA27wQBrDNFQbAPH/iOQjMFbb5d5PEAxlJPC9hmweQxPMjiX+JJMA2/3q2uZ9t/pVs8wCSuEwS/xLbXGGEeF7iuRgDtrlCCNnmgcQzGWMA80BCAELINs+PbV4QIcQDSDLmAYS4QgjxLMKYF4V4/oRtHkCSbR5I2OZ5GAOY50M8fwLxb2ObF8o2IIkHEhhZPIsBjDHPZJ6DARAA4llsAwgA8WwCkAQYcz/bPBfxr2OeTVxhjLlCSAgQ4rmIZzHmuQhAEs+PMc8kzLMZAPMvEuJfJJ6beQ7iednmX2Kb5ySJfx9JgCRAEv8SSQBgm38rYx7IPBfbPAdxhXlBbHOFeBHZ5gWzzRXiWWxL4lnEMwnMswghMM8mJBlzP0mSuMw2BsAACMAY80LY5jLbvFC2uZ9t7ieJF8A2D2DbtiQewLYkXjBJvOjMM4nnQwDGvHAGc4UxgAAQkhDPZmxL4nkI8fwIYV4g8S8QL5xtLrPNZba5QjybwQhxmRBXmOdkLjOXmedlzAsiACEAEOK5GMSziX8bSTyAbR5AUkU8k3kWY0mAbR7IAJaFEBjLPIAxBhAy5jJJtgFJgG1JgG0uE+IFEEI8B4PASAJs8yxCCLAMCNmWxGXGAEIWgACEuJ8QArANALYBIYRtQIgrhBBgmeckhDAGhHi+DOK5SOJfyTbPl8AYA0KSbAO2JSFs8wCSbHOZJJ4fSTwn25Ik2QYk8Txscz9JtgFJXGaby2xL4nlI4jLbgCTuJwmwzf0k2bYtyTYgiedHEg8kACEExljIMuZZJAEYAGGb52RbEuJZhGwbC3GZMeY5CMwVkmxL4jnZ5gWThHkgSbYlYQBjIcQVxtxPEmAbsC1JElcYYyEA8UDG3E8Sz8mY+9nmMkmSuEIIGXOFAIwBIQBh2zbPSRJgm3+JJB7ANiDJNg8gicsk2bYtCUAAQgCAwACIZxKAMeYK24CQMfeTxBUCAxgLCSFsSwIwCEkABiEJwNg25jnZ5jkZA0KSuMJIQmBsI57JAJKMhQAhACMJYRsjBCCMwAhAyDZXiGcyxoAAsA3Y5gohBAgZIwBjIcSzSAIwgCQus20bQAhhnkWSbds8iwCMJQG2bXOZJACwDUjiOUniedjmMklcZhuQBNi2zf0k2eYy29xPkm0uk2TbNiCJ+9mWBNiWxL/ENiAJsC3JmAcw5lnEM5krJPFA5pnEczAA4tmEEMI2BoF5QSTxLOaZBABI4jLbPIAxVxghhG1jQBbCNg8gBNg25n6SANtcJokrBOaZBOZZJAG2uZ8knpNtLpPEA0iyDUiSxANIAgDbtgFJPA9JtgFJtnkASbZ5AEk8J0lcZpv7SeIFkGSb+wlxmZAxBiEE2JbEs4grhHggYyyEsI1BALYBACEE2LaNACRhnkk8k0E8X8YABpBkLMT9jBFC3M+Y+wlJss3zMohnE89mHsgYAxjzXATGMoABhISMeV7GmOdlAASAEAKMuZ8k27xgtgFJXCaJ52FbEiDJdojnz7Zt7icJgUAAxjwnIWPuZ8wDSJLEZZJs8wDGPC+DATDPn7ENALYBDAIQAgBJXGabKwziuYlnsc1ltrnMmOdlEM+feCZzhSSehyz+JZL417DNCyWJ5yHJNv9WtvlXss2LxjYvGkm2AcA2/zYGEAIwV9iWxBXi2QxgzPMjBAgJ8SzmmQxgLMS/jXn+BIAAEJgXRJJt24BtHsg8kwEwDySJF848B/FcjHkgIYv72eY/giRJgCTANs+PJNu8YLZ5LuaZxHMziGcSAALzfIgXxjyLMc9DkiReCPPvJ0C8EMaAeDbzbEKAJADxfEnihRAAAvEfwrYkXmS2+VeyzQtlmxdMEs/JtiSehyTbPIAQDyAkxPMjCfO8JGH+BQLzIhHPZl4QSZIwAOaZDAAI8UAG8ULY5nkICXGFQfzb2OY5CUniXyKJ5ySJB7Aticsk8QJIkmSbB5DECyZJEs/FPJN5viQBgCRedMI2D2SeTTyTATCYf4F4XkK8EOZfJIlnMS+EkDFgbMxltnkggXmBDCCEeV7GAALxgkiyzQslSRKXSeJ52OZ+tgHZBjBXGPNcDEISYJv7CSGexTYvAkm2eR5CAAKwDWAQQoBlzLMZSca8YELGPD9CxjwPIYRtnodtSYCQMQZxhSSelwEQtrmfJMA2IAQYA5IA29xPEgDY5nlIss0D2JbEcxFCGABhm+dkWxIgyTbPSRJgG5DEsxhjXgBJgG1AEmAbsC2Jy2xL4l9iG5DEZZJ4TrZ5AEm2AcA2IEkSYFsSLwoDYBDGXGEQVwgBtgHECyJkjHkmIQRYxgC2EUKAJMA2l0niAWzblsQVxhgQQjyLEM9F2OYySYBtSbZ50QhhAMs8D0m2uUwSl9nmMkm2eQAhBIAx5n6SANuAEGAZY5sHkMQD2JYkiRfMNs+PJJ6HbV4AIcQD2ZYE2OZZDIB4XkIABkAAljFXCBlzmRBgLAQYc4VBCBlzmSQusw0AkgBjDAYhCYOxzGVCAOKBjIVsA0IYxGUGIYMwGGMA8bwE5plsS4AASba5TBLm2QRgmweQZJvnJAmwzfOQBGCMAUmAbV4ASba5TJJtHkCSbR5AEs/DNpdJ4gFs86KRxP1sc5kk21wmybZtSYAkwLZtSdzPNiBJEpfZti2JF0CSMQbAICRxmW2uMJIQV9gGhBC2AQxCCPFAtrlMElcYDMJYEvezjUFIAmzzAEII21wmZIwxFkIgZAG2jSVJAgDb3E8SYIx5IEnczzYPIInnYZsHEEIAtnl+JAG2eR6SAMA2z0kSYJv7SQJs25bEZZJsc5kkLrPN85BkGwAkAYBtAIMQAhCAbV4ASVxmm8sk2eZ+QsYAYCzEAwgZ8wBCXGYshMAAxjwnIYRt7ieJ52QMCHE/24AQYMxltiXxnIQAy4AQYJv7CQHG/IvMMwkhjDHPIq4QMuYKg3gukgDMswnbPCdJtrlMkm3uJwmwLck2LxBhc5kBhCQuk8TzkAQAQgDmCtu8AJIkcZkkXnTimQTmgSTZ5oUyBjBXSOIyScY8XwJAPC9JGMCYy2zzQgjEv5Nt7ieJyyTZ5kVhAATimcSz2AZsA7YlIV4UxjyAJElcJokXjW3+JZIA27wAkngA25IkAZJ4AEnczzb/IgEgEAACc4UxgHg28byMucwY8UxCiMskYWwDtm3zLxESAoQAAIN5YQSAuEKI5ySJF07824lnMhgA8wKJZxJCPA/bvAhs8x9OPBdJPC/x3MxzEwDihRPieZl/NfNM5kUhhHkAAVg8X+K5iPsJECCJ5yJeCEk8XwZA/DtJ4vmxzWW2JfE/jCTuJ8k2l9nmBbDNC2EA2zxf5pnMczPPJADEC2KbZxGAEM+Xsc3zJZ6DEOIyIZ6TbZ6TEFcYAIP5D2HMFQIw5kVmm389Sba5zLYkXgBJ3M8297PN/WwjnoskXgDbPCfbkrhMyBiwbVuIB5BkzAOJZxHiCvECGUm8IOZFYRuwzXMRiAeSxGVC/GuJZxJXGPMAxkJcIQAhSTyAMc8ibPM8bHM/25J4TpJ4QcRlKNMChDHmCkmAbZ6HJIwxl0kCbPNcDOKFkMTzsA0IcT/LmAcSMsYYSwIkAbZ5oSRxmW0AYwwAkgBJAAbxbMaYF0wSYJvnJAmwzf0k8ZxsA5IA29xPEmCbfyVJtgFjIUk8J9sABvFchABjLpME2AYkAba5n21JkmxzmSTbACCJ+9nmOdmWxGWSuJ9t7ifJNg8gyTYPIAmwzf0kAYBtHkCSbS6TxGW2eS4CA2AQkmxzhQGMJQFCgDEASAIA21wmyTYPIGQMSAJs80IJGfMAQlxmjEEIGXOZJAyAARAIAGMMAJIA2zwnSba5zDYgCZBkG/N8CEm2uUySbS6TZBtACNnGAEIIyxghAAHYBoS4zJgXSpJtXgBJ3M8295PEZba5TBJgm/tJss1lkmwDgCTMAxnznCTZBgBJtnkASZgrLMsy5n6SbNuWJAljzHMxgCQAAdjmfpIA25IA27YlCRljnklI4nkYC2EuMwBCYJ7FGBDi+THmgQxCEgDY5nkJWYAxAAgZ87yMJGMhxBW2eU6SuJ9tLrPNZZIkAba5nyTbPIAk2wAgyTYvgCTb3E+SbUnczzYASLLNZZJ4HrZ5ANuSuMy2JB7ANiCJZzEIACHLmOchybZtSbwAkmxzPyGeH2OeH0mAbZ5FYAAMApAEGAOyuJ+xbUlcIWQZCyGusG0sSxJgDAjZRjyQJJ7FAMaAMUYSIAmDAGxzmSTANveTBBgLAbZ5fowxV0gCJNnmfpJs8zxsSwIkcT/b3E8SYJvLbEvihZJk27Yknock27wAkmxjEAjMA0myjUEAkjDGvACSMMY8gBBgzBUCwDwvIcAYACRxhXk2AWAAY64QsrifMQ9gG5DEZZK4n20ukwTY5jIhHsCY52KeSQBCgDGXGQNC3E8SBjDmOUkCbHOFwPyLJHE/24AkwDb3k8T9bAMhA2AwL4gk7mfbmOckiQewbYx5IWzzLxKYB5JkDBjznCTxnIR4ANs8JyGel3g28xzEcxPPxTYPIIkXwJgHkMRlknjRSOI52eYyWfwrGXM/SbxgtiUBtrmfbf6VJPGikWSby2zzL5HEC2Wb52WeSTwH81yMjXkBJPGchIy5zDb/NuIFEgACQDyb+VexDUgCJPGCiGcSgCTbPC/zohL/KpL4N7HNfwjx3MyzmRdIPBdJPBfx3AyAABAviCT+AwgEBiODwWAeSCCelwHAAEK8cOZfwTwHc4VtXjDbPCfbvGCS+HeQxL+PJECSbe5nm+ckiQcSGABjzAtlmxfANs9FPDfxTEaIF0wSBrDN8yWeSQCAba4wgBDPxSCMjQGMbUm8AMZcJgQI8UACwDyQbQBzhW1AFgaQxPMw5nnY5j+BJNu8CCRxmSQewLYkXgDbAALASOIBbAshnsm8cLaNeQAhnovBvChs88KZZzKIF0SSJF4o27Z5fox5XuI5CECIy4SEeADbiBeJEeIyIS6zzWW2+bdD2RLxXCTxnGzzQkmyzWW2AUm8UJIwxtxPCDAGJAG2uZ+QMc9DyBiQBNgGEADmCtuSuEwIMOY5ScIYA0Lcz5grhJBtQIhnEbZ5TpJsA4AkHsg8kwBsc5kkwDaXSQJs84IIIcA2z48k21wmhMA8m7DNsxjEc5HE/WzzopFkm8skcT/bPCdJtrlMkm0uk8RltgFJtnlOknh+bPOCSbLN/WxzP0mSbPOcjDEIDABIQmBeRELGGGNJkngBbNsWAhBXSOKBDGDMCyBkzBUGcYUkHsA2L4Ak2zyAEM9iLPOvJMT9LGOuEELYBjAAApDE87DNZZJscz/bgCRJgG1AEvezLck295ME2AZsS5JkmweQBBhjMM8kEBjbkiQBxkIAYIy5QhJgm/sJ8SzCNs9FAJjnJcT9jAHbkiQBtvmXSMIAxtxPEgbxbDbPTQhjDIDAYJ5JPJCQMfeTBNgGbAOSEBgMQhIGMOYyIWPbQoAkwJjLhIx5EdiWxPOQZBsAJNnmhZJk2zaXSeI5SeI52QYASTyAbR5Akm0uk2QbsC2J52QbkARI4gpjjDGWBEjiOdnmAWxLAoQAY+4nCcA8k8A8k3gmA2AQxtxPEvezzfMjCcA8B2Gby2xLAoR4IGEbABCYZzKSjHkASdzPNgbxfAkBiGexbYyRxP0k2eYySbZ5AWxLAgDbkgBJ3M82l9kGJPH8SOIy24AkwDbPw7YkXjBJtgEMApAE2OZ5CcyzSLLNAwjxnIy5nyTANgbxfAkBxjwn25K4TAgw5jJjIS6TZJvLhCxjACFjHkgIGQtxmW0eQBKAeSZhmxfCPAfx3AwCkAQYY56LsRAgCbAN2JbEZZJs8wBC3M+Yy2wDkngASTwn29xPEvezDQQvhHkWIZ6HEPezLUkSIEkSl0mSxPMSmOcmnoskLhMy5nlIMuYy27a5wmCusM2/RBLmX2Bsc5kxlxljEA8kyTbPl3lBbNvmOUniBTFXCCGeydgGANs8iwAQzyRs80AC88KIB5IkiefHNs+PJP41bAOAbUk8P7Z5kUmyzQNI4jJJXCaJ5yQEYK6QBMjiRWYMIIR4ERjzLOK5iWcx5oUw/waSbPOCGWMAYy6TxPMjxL+W+DeQxH8+Y64wL4x5NvPcxDOJ588IIf4DiP8wAsD8i4R4wSTxfInnZl4QY8QDSeIy2zyAJC6TJIn/2WwDtiXx/EgCJGGuMMYYc5kkXgS2AWNjXjjx/Il/NfH8GcRzE89ijEE8m7hCkm1eOGGbF0Q8L0m8ALYl8SKQxAsliRfANs9DEs9DEpdJ4n62bXOZbQDz3MQVkrifEA9gm38bcYUkXihJXCYJAIR4AGOMbS6zzf2MMVcYC/FABhDiMtu8cOaBJPFA5jmIZxHiCgEIcYUBMBgMYIx5XpK4TJJtHkASzyIkcZkkSfy7oNYSIf5lkmxzPyHAGIMAJNnmASTZ5jIhxAPZBjCIKyRxP9tcIWQBxhgEIMk2/xrGsgAEIInLbPMAQjwnY8C2JJ7FAAghAPFcbHM/SbZ5IIN44STZ5jlJMsY8m8A8fwLzfEmyzf2EjI2FANuSAEnczxjzgkjifrYB25IkAbYBSYBt/iWSANuAbUncTxJgm8skcZltHsC2JJ6TJNu8UJIA27YlSbLN85DEZbZ5AWxL4gqBMRaSxHOyzf1sS+IySRhjnkVgXhS2AYSQJACDAGzzAJJ4Tra5nyTAGPOCSOIK80wCYxsBIIQwVxhzPyGEbcBYSBJgmxdMkm2ehySeH9uAJC6zzfOQZNs2l0mSBNjmuQjMAwkhMAjAtm1JkgDb3E8SYIx5IEm2uUwIQNjmMkkY20IIwBiwLUkSYIy5QhIPYBuDEDLGAAgAIWRbEvezLYQBEAgAY4xBPIsxRhIvgCTAtiTANi+UJAxgzPOwLQkhxHOyzQNIss1zksT9bPMCSOJ52OY5SeJ+trlMkm2eH0mAbduAJF4wSTyAbZ6TJMA2z48kwDYvgG0hhBAAIADANgbxQELGPJAQ4n62AUmAbduSeE5CCAyAASwDkgDbPIvAAIAQYMzzZRDPIsk2L4Ak2zw/kgDbXCbJNs+PJJ4f21wmyTbPjyTANpdJss3zI4n72eZ5SLLN/STZBmwDkrifsSwAAUjCGPMAkgDbvACSANvcTxLPxSBs8wCSbHM/SRjEs9jmgYwkwJgXwFiI5yHJNveTBNjmMtuSAEmAbS4TMuY5ScIYAxgEYCwLQAgBgDGXCQHGgJAxD2QAxLNIss39JAG2uZ8k2wACwACSbPP8SOI52eZ5CVmIAMQLYJ7JALaFeBaBABCAkG3uJ0mSbR7IPB/imcTzZxAIIQQgZJt/JSFjnpNtXjjxLMY8i3g28bwkcZkk2zyQeS62uUwSl0myzfOwLcQDmRdEiBfAtiQuEzLGCAGAJNs8F/MfQhL/Sra5n23bPCfbPA/bPCfbknihbPMfRBIASMIAmBfOtiSuEM+HeVEYc5kQzyIeyDYvOvMsQrxwAvNMBsC8QAJAAJgXhSTb/FvZ5t9HiOciXhjxwkniRSCEABD/agIw5goBIF4Y8WwGwFwhhACEEMa8iMT9xBVCEi+YEADY5grzorPNCyWJ/3KSeB6SeBGJ/wDihTHPlzEGwLxwtnleBgEgnpdtrjDPQTybeCaDQTyQMZfZ5oUS4oUwiH8L8R/FNi+YbR7ANveTxGWSACFjnsU8H8Y2L4h4kYhnsY0BbEviCgEgnpdtnot4vowxtnkexkL8KxnznCRhnskgrhAyBgBjxAPZts1lxkI8kEA8kG1eMEm2ucJgrrANALa5zDb/KgYBVEmAhG2ei7ANCHE/IZ7FvCC2ucxYFoAwxrwgsrhCPJtBYIy5TIjnRxJgm/sJcZkx9zMW4oUQgG2uMFdIwiAASbYRAMI2AEgCbHM/SbZ5LuJZbAOSuMy2JP4lkmzz/Ejifra5n21JgG1Akm0uM8Y8iyTbkngBbPMAkrifbe4niftJ4gEkAbZ5HpJ4TpK4zDYgiedkGwBsS5JkWxL3k2TbtiRAkm3AtiQewLYk24AkLpPE/WzzALa5QgjZ5nlI4n6SuMw2l0ni+ZGEeSYDIJ6LkDGXSeIy2xghYwCDeBbb3E8Sz8M2IIlnMYjnIIR4ANuSAIQxIAQgMBgEYMxlkmxzhXm+hIx5HpK4n20ukyQJsA1I4jlJ4jnZlsRltiXZBiTxnCTZ5jJJAEYSYJsHEra5TBL3E+IyY9s8i0EAtiVJAjDGQphnM4BlrjBXSAJsA0IAArANCAHGAAaBwDybEQKEbAOAJEkABvH8CSGEbQDzLMaAJEm2bQOSbAOAJMxlAjCIZ7EtCRDiWYxtQBKX2eZ+kngASbZt8zxs8/xIAmxzmW0eQBIPIAkAbAOSAMC2JNuAbUk8gBD3k8TzYywJsG2byyTZlgTY5gpjDACSANu8YJJsA4Ak25IAhG0MAgMIAQhAyJjLbCMAIe5nmyuEJGPuJ4kXQmAQQjyAJACBsS0JQDx/4oFsS8JcIYkHkMRzERgM4pmMEPcTQtg2FgIkAba5TBIPIARgjAHbknihbEviBZBkmwewDUjiBbAtCQAkcT9J3M8YAyCexZgXQBLGmOdkGxACEM9FEg8gxGW2uZ8Q4tkMgAAAIQTGGBAyBmQhANuSeCBjLMRlxhjAGCOJf5EQss1lQggAMAYk8UACA2AQz0UIQGCeSdjmBRMCANuAbUm8ALYBSbxobEsCMEAAiOciCQAkCSEQkhAAAoF5JgMYS+IFs415IYx5AYx5IPGiM+Yy2/xLJPE8hLhCAELcT5JtXjDbvFCSeE62eRFI4grxLJJ4fowlcZkknh9jXjhxhSReNJIA2zw/knhOknjBJAGAJACQZJvLbEsCAEncT5JtXgDbPCfbvAC2eUGMbR7ANub5ss1zEVdIss39jDEAAkA8ixDPywjxAMb8OwlAEleI52IsiRdEAEI8gDHPyzwH8V/JNv/hxAsiJARg/m0kSeJfSUgIwPzrCADxfAlxPyGeh81zEM/BvCgkAZIk8SKwbVsSIEkS/xFs8yziWSTZ5n62uZ8kxL+deCZxhSQewDb/JkJcZpv7CXE/IV4ASTwnIa4QL4hlrhDPYsyzCCEA8aKzzf0k8Txs85xs81zEsxhzPyGeH9s8D2PAmPtJ4j+OJACQBNjmASRxmSSeHyEMgHhRSMK8KIx5vgTmmcwzmWcyVwgBiCssc5kxABgLAYjnyzaXGSMQGMA2RhLPj20eQMg2z0s8F0kAIAQgXiCDeBYhLhPiBTAGjLmfJACQxANIAgBJ/EskYe5HFYBtHsi2JNsAAsAYc4V5NoO4wrYk2zyALMS/yLaQZUCIF85I4jLbvGgkAbZ5fiQBtnl+hLifMQYAbPOvIYn72eYySdzPtiQuk8TzsG2bK4QQYAwAtrlMEg9kEICQsSTbgCSuEELcTxKAMQaEeE6SuMw2L5htSZJs8yKwzQNI4n62AUn8S2xzP0ncTxJgm/tJ4n62uUwSl0kCbEvihbItictsc5kkHkAS97MN2JbEZbK4zFgSgAGEEM9mJHGZbQyAeBZjrhBCPIBtLrMtSRJXGIwxl0nifrYl2eaBjDH3ExKyjLlCEmAZEMIgjDHPZgDbkhAYACEE2OY5SbLN85DE/WwDkgDb/Esk8ZxsS+I52eYKg7ANSLLNZZIwGGMeQBLmuRljSVwmZMz9bHOFsI1BPJN4JvNAkmwDGGOEECAJc4Uk24jnIACMMUIIwCBscz8hY8yzWBayDUgCZAFCCMBYFvezLQnM/WwjnskgEJgrJNnmfpK4TBIgCcA8m3gutnlOkrifbUlcZluSbUAS/0pCthFXGAOYKyRxP9tcJgmBeS62JWEQV9iWxGVCtrlMkm3b3M82z49tSYBt24Ak27YBSTyLEMIAxogrjAFJti0LcZkkwDZgWxLmCmMuEwIQmGcSGFnGPJAQ4lnMFUJcYQAh7mfMZZJsA5J4ACEuM7YtiQewLQkQQjwHcYWQbS6zLYnnx7Yk2zyLQQghAMA2/w62JXGZJC6TxGWSeE6SeOHEAwkZYxAPJISwDQjxnGwLIZ5FFmAshHggY0CIZxEYy0JcITBCAEKWMZcZC3GZEICwLYkXxBgDgCTuJ4nnJMm2JEASz8kyBgCEuEIY2+Z+QlxmzBUCA9hGYBAABhDi+bENCHGZkDH3kwTYBgBJPIBtSfwrEIDN87ItSRIvhEE8kG1JPJAAhIS4QjyLEC+ceCFs80KI5yWJ58e2be4nieciAGNeEPEvss1ltnkASVwhXgjbPJB5EUniWQQgiRfEPJPAYJ7JPC9JtrmfJP6TSbINALYlSQIk2bbNv4MknpMk/iWSAEn8m4nnIF5U4vkQDySJ+9nmRSaJF5F5buaZxHMRAjCI/xaS+Ncy/2rm2QQCQDw3ASBs8zxs8yIS/zIBGPMs4grLQgAGMOYFs81lxvzrScIAmOdlmxfOPAfzTOK5SEIAtnkBbHOZbf7NDIAR4l9knosxgBHC/EeRxItCPDfzfBjb3M8YsA1gnpcxgHk280DGvADGQphnMeZZzANJ4gEkYV44SVwhrjDmBbDNcxEvkEH8x5JkmweQxL+VsRAPYMwDSAIAhG0uMxbiuYhnEpgrhADMs5nnIJ5JAMaSuEwSV5hnMcY8k3g2cYUkAJAECAkZ8zwk8QCSeKEkYZ7JPJvBPJAxz8U8mwEwmCuMEQjEFZJsc5mxEJdJ4gFs86KxzQNI4grxTKKaF8Y2L4R4ISRhAMAYkMRzMuZ+xkL8mxnEA9lGABhAkm3uZ1sSAGAQz594NoF5INuSAEmAbUmSeE62AduSeB6SuJ8QgAGMeQFsSwIwxrzohJAxIAmQxGW2ucwYc4UknpOxkCTbXCaJy2wDkmzz/NiWxPOQZBuwDUjifra5TBKX2eYBbEuSZFsSANiWxP0k2eZ5SAIA24AkAJDE/WxzP0kAYNs2z8k2IIn7SQJscz9J3E8SYBshZIxBABjEczC2JQG2AcCykCSek21JgCTANveTxAMYAxjAWBJgGwAk8cIZY0kIjG1JGEASYJtnMQgh7icLYRshxGW2AduAJC6zzXOSxAPY5gEk2eY52QYkAZK4n21JPD+2eSBjLMk2z2KMMYCxJEmAbQCDEDLmMknczzLPlwEQQjyLETLmOUkCbBsLAba5TJJtDCDJtjGAACTZRjyLJGNAiMtscz9jAJDEFUYIAQDGgBACwDyQJB7ANpcJyTLmBbAtCbBtG8AghAAEBhBC2OYySbZ5HpIASbYl2bYtCZDE82ObB5DEFUIIQGAkAULGQoAk24BtQJJt7ifJtm3uZxshC5DE82Ob+0niAWzzQtkGMAjbgCTMFZKMeQDbkmwDkrifMZdJ4oEMgHggYwzi2QwgCQAwxjwnYx5AFoAAEBjbkmxzP0nGtgHMMwlJAGBbCMAgANsIISHb3E8Sl9kGJHGFAYQQtgHANmCby4QASYBtjDEgCTDGAJK4zDYPIMk2z0mSbUmAJO4nCbDN/STZBgBJ3M82IAlACNkGAMwD2QYA2zyLADCAbUASVwiMMQaQZAxgnkkI8SzmCmMhLhMCjLmfEIARQjyLMYARQjwvYyGeH9uSANtcJsm2JC6zDQghnj+DeBbbgCQuM8YgAMBYCPF82QaEEIBtHsBYkm1eMEmAbe5nm/tJAiTx/BgDAUg8L0m2edEIYQAh21xmG4Ew5jLbPIAxl9nmBTHPl23MswgBmGcyGACDucK2JEnczzbPYoS4TJJtrjAvhCQeQBIPYJt/iSQA8yxC/EskcZkxLzJJvAC2eRbxHMwDCQG2eQAh21xmWxL/JpK4nyTbPCfbPA/bPCdJPIBtnockLrMNSOIySbxQtnlOtm3zIpPEA5lnM8/BAJjnZZsXzDZgmxfOXGHMZbZ50QnAWIgrzAshxLMIAANgnosk/qNJ4t9MAMY8J0nGXGaMeDbxHMwLYyTxgogXxDb/k5nnZF4AIV5EBsBcYcwLYV4QSYAkLpPEv4d4ISQhbHM/SVwhrjAGMMbcTxLPSRL/Ekm8IAbAPC9jIZ6LAYR4EYkrhADEv0iI5yQEIJ5NIADEs9jmAWxjAMwLYsxltrnCvHCSAEmSeBYjiefHNmAbEEII8SzmCts8gG2ek23+lSTZ5vmRxHOSBACSAIQxL4CQbcA2IAlAIDAABkAYc5kxAGCel23MMxnAGGOby4yFEIgrJNnmgcwD2eYyYyGexbwgtiXxXMSziWczxrwAxgDigYyFeOGMbZ6HbUlcJonLJPECSOJfxSgzJQG2ecEkcZlt7icJAxhjEM9FEsaY5yQJsM0LIMk2L4gQwiAAjDGXCQHGPBeDEDLmBRACELZ5AEkYY0AS97PN/SQBtrmfJMA2z0kSD2AbQAjZ5kUgyTbPjyQAc4Ux95NkGwAk8ZxsAxjEA0kCMAjbvACSbHM/STwn29xPkm0uk8T9bHM/SYBtHkCSbcC2JB5AEpfZ5gEk2eYy25J4oSTZ5gWQBNjmOdkGJAGSuJ9t7ieJy2xzmSTbPCfbgCSuEJgXlQAwz8u2JEm2uUwSYIx5XrYlSeIBbHM/SYBtnocQgABsAxhAyBhASMIAto0lCQGIK2xzmSTbtiVJ4gFsA4AkALDN85DEZbZ5ASTxPGwDgCTbXGaMASQBkmwDtrlMkiTANs+PJMBYCLCNQUiyzWWSeCBjDGCeSVwhCbDNc7ItCQBsS5Jkm8skcYV5FmOEEPezbSwkZGwMCAGSMIAxAgBkAcYAIGTMZZIAMAiwbVsIgQEQkgDANpdJ4gFs2wYkcZkQYIxBPJAk21wmiQewzWWSbPP8SOJ+tgHbgCQuk2Sb5yGJ52EbwAAIIQRgm+dHCGGMeW5CFmDM/YSMhRC2eQBJtnkAIWMM4jkIIe5nm/sJIQCMMQBIAmwDCFmAMQ8gyTYPYCwLQFwhZMxlkrjMtrEQz0PImBfANg8gSZJtXjBJgG3bkgBJgG2eHyHAGABsA5J4foSMeQEk2eaFkmSb+0kCbHM/SdzPNs8iACHANs8iMM/BAMZcJokHkGSb5yEJwADGvGBCxoAk2wDGWBIgZIxBPJAQzyJsA8ayAAQgCbDNZbYlAZIA2zwnSYBt7ifJNmBbEiDJNlcIAAMIAcY8gG1JvGCSMMY8P0KAMc+PkDHPSRIA2AYkcT/b3E8Sz8k2lxkLAcH9JPGCiCts8wC2Ec8kMA8kCfNCSOIFsC2JF8QAiCuMeRbxQJJ4AGNeOGGby2xzhfkXiH8b21xhns1cIYnLJEnieUiSxAPYxjyLJACQZJt/kQAk8VzEsxgDkngA25J4EUiyzYtGEg9gWxKX2eZ52AYA2zwn27xgtnkBJPECSOJ+kgBJvFC2eQBJPCdJgG2uMP8KRogHkCQJkMTzI8QDSOIFsM0D2AYQLzpjHkgYIwDMAxnzr2ebF0oS/1aSuMJcYRuwzb+JEP9a5kVkm/vZ5lnEAxlzhXkRCfEiM+a5CQDzLOZfSxIPJJ4v25J4oWxL4kUjCbDNi848m3kmA2AAIZ6HEALAvOiEeADbvHAC86IQ4grzXGxzhUE8L9uSAEASIGQMYK4w5vkR4gFsA4CxEM9DEiCJ5yGJ/0ySeAGMhXgBbEviXyKJfy3xQEJcJgnzHMwDSeIBJNnm30GSMZfZlgQgEABgDCCeg3g2YRswxhjzXMTzJYkXSpJtwDb3s82LTBLPQxJXCMwzGds8L4F4XpKMeR62+XewjbmMCgLbAJJsc5ltSYAknpNtIcQzCQxgLMRlkmwDGEmAMfezzf0kcZltnpMkHsA297MNSLLNcxFCPBeBeSYBCBkDgCSuMC+IEIABEM/BAIhnMojnJQmwDUjiOdkGbEvifpIA2wAgCQAkAbYBSbYBYyFjnsUghHhOtgFJAOZ5SQJs2+Y5CXGZJNu8YMaYKyTxL5HE/WxzmSTbgG1JtgFJ3E8Sz8m2JC6zzWWSuMy2JACwzXOyDdgGJHGZJMC2bUCSbcA2AEgCJNnmMkmAJO5nmxfMtiRJtiXxgtmWBEjCGAO2AUk8J9s8gG0ewDbPyTaXSeIFsA1IwkhC2OYBjAEMIAQgAGPuZ5v7SeL5sS2JyyQBtvl3sA0AtiUBtgFJAGCb+0mSxP1scz9JPA9JPIsBJBljnkUIMBayzf0kGdvmWYwxlwkBsiwDAAYDIJ5JYJ5FEveTxBXmWWwDiGcSV8iyjJHEFQZhGSMLIYnLLHM/IcCYBxJCgG3b3E8ILAnAIJ6XbUm2uUwSl0kCJGGeg3gukmxzmW2eH0mAJNu2AUk8gG1AEmBbEvezDdjmMklcZpv7SQKMhRAPZIwBMAhJXGbbGPNAQsa2JWEA2wDiuZkrJHGZbe4nxGVCgDGXSQIwAGDMZZKMbQOAkLEQ4vkTmOdim+cinoMQAmzbBiTxPIR4LkKI5yGJy2wDtgFJ/Esk8QCSANuAbUASD2CbZxFCXGabBzCWZNu2JEm2jYUA25K4zDb3k2QbsM0LZZv7SQJs2xbiMmNAEg9gWwiBAGxL4jJJPCfbkgBJ3M82gACEANvcTxIA2OY5SbItxPMQMgYwiGcyV8gyFuI5yQKMJXGZbS6TxPOQxGW2uUwSL4hBPJt5UUjihZIEALaFELZ5fmxLAmxLAmwDkrifbUAS97PN/SRxP0k8EwHYXGFbEpdJ4gWQhEBI4gEkcZkk2wDmWSTxgtnmXyKJ52QbsG2bF0ASApDEC2ceSBJXCMS/zDyT+LexLYkrxBW2eX5sc5ltrjC2eS7mCkm8cOaBbHOZMZdJ4lkMgHgW2/wnsM39bPMikMQLJonnxzaX2QYk8SKQxGWSbPMikwTYBmxL4kVgG7AN2EZIAiRxmW2eH9s8gCTbPD+SeC7mgSTxLAZAvEDihRDi+RHiASTxH8c295PEv4ZtnockXhDzLEK8aISMeSDz72fMc5LFfwdjIZ6LeC62eRGJ5yKJfz1J/GsY8/wY8wBCvAC2eX6MuZ8Qz2IAYwDxbOJfx2AQAALAPH/mmQxCiOdLPF+SeE7GQrwIbAMIIQziCiFjAGObZzHPRZJtLrPNi0YSz0MSgHkgIZ7FXGGbF8oYELLNZcZcIa6QZJsXgSSeHyEuMwYA2zyAEM+PJJ6HJP5NbPPCiWcyQsY8FwNgMIAQ9xPi+ZHE/WzzAtjmX08S95PE85DEA4lnEpJ4LkYIwCAeyDYASOIySbb5DyJJThtzP0mAbZ6TJMA2/xJJtnkAIcAy5grbQghAkm0AwCAABObfQBKAAYy5TAgwxiCeRYhnEbYBIcAy5gWRBNjmfkI8F/F82eZ+kgDbAMZYEiAJwCBscz9Jtnkgg3gW25IABOYKIWNAkm3AtiRJAAYw5gEk2eY5SeJ+tgEhxBW2uZ8kjDH3kwQYA0JcZpsXmW1JACCJ+9kGJAG2uZ8k2wAgCTDG2JbEA9iWxGW2JXGZJMA2z49tSZK4n23uJ8k2l0kCbHM/Sba5zDYgCZBkmweQxGW2eR6SAMA2D2BbEg9gWxKXSQJsA7a5TBKXSeJ+trmfJABjDGAAhCTbvACSAGOMEAKwDWCEEAjAWMg2z0MSYJv72QYkSQJsS7LNc5IEALZ5HpJs25bEA9iWxL9EiMssY14gg5BkG4OQBNjmWQTGtiRJGNsAAhAyxiAk2eYyIcBYCDDmMiEA8RwMYAzYBiRJss39hBBX2OYBJGEAY+4niedkG4MAEEK2ucIYA5KEAMCYyyTZ5jJJtgHbgCRAkm1J3M82VwhZiCts80LZliTJNgBIss1lknguBgFgnsWYB7AtSZJtAAMgrpDEFQYw5gWQZBsDIABJgG3uJ2RsW5IkLrPNcxFCtm1LkoSxDUgCjIUQz2QwAMKY50eI+xlzmSTMFcaSeE62eR5CiOdi27YknocQYMz9bEviOQlxmTHPQ4grhG2ekyTANpcJAYgrbHOFQUiyDQC2JQGSANu2JfEvMojnIoQAbGMAY0ASz0kSANjmfpIA2wDmmcQVkgDbAAYhBBjz/EgCbHM/SYBtQBL3s80LYFsSIAkwBoR4FvMsxhjEcxECjAEMgHgORhKAAGzblgRIAmzzAJJscz9J3M8295PEFcaYyyRxmW3uJwRYxrxwkgDb3E8IQAC2ecFsA5J4TpIA27xgkngWYxyAJP59JAGAJNs8L4G5wrYQAAjZ5goDYADMfyBjYwzigYx5FvNAQojnZh5IEpcJAYAx/3pCXCbEA4kHkmSbBzLPRRKXCXGZJGMusw0AkrjCPF+2JfGiMBhAiCsE5rkZzDMZwDYvmCQuk8RlknjR2OaBxHMz/yJJvGC2eaFs85wkcT/bAGCb/0DiXySJfxvzHMQVtnnRGQABIB5IvEC2eU6SeABJ/CtJss1ltnlOxvxLjLnCvEAGEOLfQDx/4oGE+FeSxL+KABAvKgNgns0AQjxf4oFsSwIk8QCSeE5CAAbx72FbEg9gm38TSQACwPxr2eYKASAA29xPiAewzQtinkkAxsYA4gohnpcAhHhe4vmyzf2E+BeZF842z48xz0MSz8OY5yX+VYwBzHMTgG1JACCJF0ASz5fBIJ6XMc8irpDEZZK4n22ei3ggYwBxhSTuZ4wAEIj/KLZt2+YFMRjMAxnzQMI2L5gxgHnhJPGC2eZfRTyLbZ4vgXnhJPF8iSsk8Twk8a8kiRfMGKjGGElcZhuQBNjmOUkCbAO2JfGcbPMAQojnIonLhHgWg/gX2ZbEcxIy5jJjzDOZZxIA4vkyxiCEAGNASJYxANgGhLifbe5nDACSAGMM5vmSxP1sA4CQZR7ANpdJ4jLbXGYbEEIAGMtCkmxzmW1AEi+csA0IIWwDtiXZ5n6SANvcTxL3s425QhLGGBACEIBtIVkA4vmyLYn7SeJ5SAJsA5J4fiQBtrnCAMZcJsm2ECDJtiRAkm1JXGZbEi+AJB7ANiCJ+9nmAWxzmSTANmBbEg9gmxdAEs/DtiRAEpcZ8wCSANuSuMw2DyCJ+0kCbAOSAEnczxgQkgTYRgCSbAOAJB7Atm1ACDAGMAhJGAthEAbE/WxLkmTbtiSehyReBLZ5AEm8YJJsS8I8izEgSQgB2LYtZIxAYADbgCRJtm0LCfGcbAOSuJ9tQBKAASQBCGPbAOKZDIAAMLa5QkjCAMYYQAiwzP0k2RYCbPMAxhhAiPtJsm0MSMJcIck295PEA9iWZJsrhCzLQoAxICSEeC6SuJ8knpcBJAGyEAAG8aKzzQPY5gEk2eZZzLMZACEJsA1IAmxzP0nGAGAbQAjxAJIAwDb3E0IAiOciiSuMJJ4vgcEgbANCgJAxAjAGJHGZbQBAPJMQsg0AkgDAGBBCYJ5J2MYgACFeANtCgBBgm+chCbAtiQcwBmxzhZAE2OZfIgkAjDEIzBXGGEk8FwNYFsIAkgDbxkI8gLEQDyCJ52RbEiAEIJ5J2AZsA5K4nxBgWQiQxP1sS+J5CNnmfkIIACFkGxAChLjMNiAJsM2LRhJgm8skcZkkHsA2IIkHkATY5n6SeBYDSOK5CNsAIInLbHOZEGAMCPFczDMZY0k8D9tcJokHsM1lkngA2zwX8QIZBCAEYJ6LZcyLQhJgm8skcT/bPCdJtrmfbUASz0RgANv8K0niMkm2eR5CAOaFEc8khIQAQEiI5yGJyyRxmZAxz2KeyQDGCECI5yHJmCvMswkMIAQAkoS4TMiYF8L8axkLcZkk2zwn21xmm+ciXkSSAMA2z8v8BzDPQVwhxP2MeQBJXCaJF8w2/xJJkngW80zigSTxn0wSl0myzX8OSTwnSVxmG7ANSOJ5SJLEi8hgMC8627wg5goBEg8giWcxz2Kb5yEJAGzz/NjmASTx/EgCJAEIAPEsQjyLeRZjBCAkCZDEv8j8y8yzmWeRZMwV5vkT/yIhAPMsQkI8gBAgiQcw5kVgDGCeixAvGts8XwZAIDAYwLaxMS8y29xPkiRedOJZbPOCCfFABvFfxzyTuUISLyIDSOKFEFcIAYgXzjYPJF442zwn29xPiOclni/bPIvAPIsQz5dAYIx5LuYK24BtzPMlyTZgG8C8EEJCvCDigSTxLzKIK4Rsc5mxJP5D2ZbE8xKSeABjXihJPA9JtgEM5lkkcZkxL4h4JgNI4nlI4n62ucw2D2BbEv82AvNM5rlIwrxwtiXxnCRxmSTbvGC2eT5Qa00SIIn72QYkcT/bPD+SANs8JyFjHkASz49tXgAhHsCY+0kCMMYYxHMwCACDACTZ5gGEELYBDEIIQAC2ASHAGMAghIy5zLYknpOQMVcYxHORxP1scz9J3M8295NkmxeBEMI2gEFI4gFs8wCSAMyzGAOAbUASAEjCGHM/SZgrjLmfEGDM/SQBtgEMQhIPYJvnIYn72eZ+krifbUASYJt/iW1JPIAk21wmicts25bEZZIA24BtSZK4n21JPIBtHkCSbe4nCbDN/SRxmW3uJ4n72eYySdzPtiTb3E+Sbe5nG5AESAJs8/xIAmxzmSTANs9JEs/DNg8gxP0sYwAMgEBgnk0I2ebfRJJtAJDE82Ob+0myDQCSAMA2l0myzQPIQgDGXGEQV9gGEEKSuMw2BvFAQsYAIGTMZZJsA4AkrjDGGMSz2JYkCbAN2JbEC2VbSBJgzP0kYQBjLpPEZbYBDIB4INuSJAGAbV40QggMYMzzI8m2JMA2DyCJy2wDkngWg3g2YwxIAmzzALa5TBLPSRJgmxeFwDyQbUmSbGOeSQAIIdu2JfEAkmzzAEIA4gpjQAiwzf2EjCXxALYl8SzmWYwxiCsk2cYgrpBkG4NAYGxL4gEkARgEYJvnZRCAEGDMZULGvCAG8YLYliTJNg9kEJJs80BCyFgIYwwACCHbgDFGCCFkzP2EEFfYBjAAApAE2OZ5GQQgBCCexTbPSQhAAMaALMAYgwAkcT9jzLNIss39JAG2eQBjWQBCCAHY5n6SANu2JQGSeADbXCYJsM39JHE/29xPEs/JNveTxP1s85wkAbYBQBKAAYx5LgYhZMzzIwmDeDYDGAMAAvMskgDbPA/bgCQAkATYBmxLAgBJgG1JtrlMCDDmCgMgnkUIQGCMeSCDeF6SbAO2JXGZJMA295PE/WwDtgFJgCTANhD860nihZJkDGBeVOY5GIwxDyDEFeIKY56XQTyTAIRs87zMM4lnEs9NPJN4INuSeB7GkrhCAEKSuEI8X5J4fiTZ5gURz2Seybwgtnkg8bwkSQIkIa6QhHkOAvNs4gpJiGcREuIFMYBtLrONeeEk8W9lm/vZBgDbPCfbXGab5yGJ5ySJF8q2JP6VbPNCSeKFkgTYBmzzgtm2zQtgzL+JEAJAXCGEeDbzQgghXgjbvMgk8a9inj/zLzPPIsRzEgIk8XwJAPH8GQAD2OYyISGek20A8XyYF0QSgAAwz2LMCyZJEv8+kvh3Ev82tm1L4l9JEvczFkI8B/NAknjBjHnRCPGcJHE/Y56LwFxhLARgnkUIAGQBCNs8L/ECmWcSz0uIBxDiCvMsknjBJPG8DOI5GEAI82xCyDZgDAgBmAcSAjD/CuKZBOYKY/61xBXGPC/zTAawzfOQxAMZYy6zDGBedLb5DyWJF0RI4jnZxgDGPC8BGEvi+TKI5yUEAEK8aCRJ4vmRxGWSuEyIBzA25grzTOY5CMzzIZ5JPJBtLpPEZZL4NxECqiQus839JPFCSeIy24Aknh9jjCSek22ei3gmAyAAjGWekyTANs8inosQL5gQgEE8kDHmCkkYY8wDGfOcJAG2AWMhQBLGGDDGAEKYZxIYBAawzWWSAEkAYJsHkMQLYNsyIAQgnskAiAeShDHmfpJsY55FCJBkm8uEAATGWIjnZBtACGGezTyTeDbxQJJsYyRxmW0uk2QbsM0DSOIFkwTY5jJJAMZYEs/DNveTZNu2JNuSeE62eaFsc5kk25IA27YBSdzPNiBJEmDbtiTb3M+2JMA2l0nifrYl2QZsS+J5GUncz7ZtLpOEwDwHgQGEuMIY87wMgLjCGIPAICTZ5n5CgDEGYRvAIK6wLQkw5gEk8ZxsA7Yl8QJIsg3Y5jnZ5jLbkngu4pmEEGAb8SxCPBcjhDDmMknGGMC2JGMAsM1zMVcIGduWxAPY5gohC/FsQsg295PEZcaAkDFXiCtkcT/bPJB4NiNkDNgGJHE/8dwk8Ww2FiABGNuShIy5TBLPjxCAsYyRBNjmAYRscz9JPA9JtiUBtgFJXGbbtiQuk2SbB5DEczKWxAMI8VwExliSbUASYJv72eYyY4wQwhhzhRBgzLMYAPEstgFAEuYKIWOekzFGEgaQZMxltgFJAAIjxP1sS7INSOIFEUIA5llsCxkjJAG2AQQGQAhxmW0usy1Jkm1JgG2ekyQAEAKMeRaDADAIAPNMRojLhLhMCGHbNgLAIIQAyzwnSTyLucKY+wkZA0KAJMA2V4gHEgJsA4AkALDNA9gGJAEIzLPY5jJJtgHbkgDbQhhjQBLPQxLPj21JvFC2JXE/2zwnSYBt2wAgiedijAEhHsBYCMAACEDImOchCcBcYRkjBBjzPGwLcYW4Qggw5vmRhMEgHkgSz5d5JgEgXghjIQCBAYy5TAgw5gWwLYkXgSQuM8YAkgJASOLfRiD+PSTxQALxTALzTOYFEpIkcZkkrhDPJF442zwX88JJ4vkQ9zMGMJjnT2BeCNtcZpsXyphnEc8kMM9kJCGeyTyTef4MIGTMAwmMsRDm+TPPJjD/Brb5jyCJBxLPIkmSJJ4fSYBtwLYkwDZgmxeZbcA2/xq2uZ9t/iW2eU62AUkAAsA8L0mAEOKBhHgAIZ4vAyAAhDEA2AYwz8FgAMxzEeJ+xrwIJPFvIskYAGzz7yPEZcY8gCQAA9jmhRCY52Cei20uE+J5GQDxghjzQpgXhTGX2UbcT5gXzjwnAwjxb2Wbfwfb/EcTMub5kcQLJgQg/mXi38gIcZkkxPMyRjyTQVwhyTb/VsbczzaXGSOeL2Mus81ltnkexgAC87xsAwjMswjxXMRzELYBAIN4ERljEAAC8cKYf4GQxPOQxPMQ4nlI4jJJtnkRSOJfTxL/DrZ5AGMhHsBYCEA8ixCAkGQbAGxjnoN4EdnmeQkh7icJAxhjXiDxXCTxwhmEEIDAALYxz2T+Q0jiMkmYK2xXAIN4INu8KIwkjGXM8yWJKwxgzAsgCfMsxrwAtnkAIduAEGDMZUKIF0hgnkk8F2MAg/gX2QYAcZlt7iceyJjLhHi+jDGAuMK2JACwDUjCGANCXCGusI0AMM/BPJPAPJO4wjZgGxDiMmPMsxgDQkLGPIsBMIhnMghjzPNhnkWSbe4nxPOwzQtmG5DEZbZ5oSRxmW0ewDYgCZBkG5DEZbYBSbwAtgFJXCaJ52Sb+9nmfpIA29xPEg8gicts8/xI4nlI4jJJgLEk29xPkm0MApDFZbZ5AEmAbQxgLInLbEsSAhCAMQAIYRAYIQRgLISRBBjbFgIwAEISgEEIGduWZJt/iW3uJ8k297MNSJIEYADbCCHANiDJNlcIwDYgSRJgm8uMhQBjDCAJMMYAtrnCSAIA25J4AEmAsZAxBkAIcT9Jtm1LAoQQAALbNgIDCAGIK2zbliTJNvezDQBCAAJjGxBCSOIKgzAW4gGEuJ8xBpDEZcYAFkiAeBZJGNsISbZtc5kkHsggEAAC8yySAMA2YFsS97MNSOJ+kgDbPA9J3M9YEvezbRtAyOIyIWMukwQgANuAbQAjSYj7SbJtW5Ik2zyQABCY5yAwV0jCIIwBIS6zLck2AAjxPCQZCwG2uUwIYZsrBIARQgDGPItB2OYyIcQDGdvmMiEuk8T9bPMsRgjxTOaFkGSbB5CEeBZjIQTmCiFjLrMtZIyQxHMRDySJZzEIIcwVxoAswJgrDIB4JgMIIWxzmSSeh20ukwTYlgQIcT/bACAJACTxQAJzhW3uJ8k2IInnZJv7SQJs2wYASVwmictsA5K4n20uEzLmMkm8CGxL4rkYAPHcBEYSgMAYc4V5vox5XsZYEs+PkG2ei7EsBBjbBgAhQBL3s839JPEs4gohhG0AAWAAIWMAgwAwgBAC80BCgDEvGttcJokHkMRzIGwA25L4txGY52JsWxJXiOdLkm0us414JvFM4pnEFbYB27a5zJjLjI0x/wLxTOIKIZ6XQQCAJB5AEgBIss0DCMzzIcmY5ySJB5BkzBXmCiGei3lu4jkYzAtkEM/LNpcZA5jnwyCeSWAAIQziCiEA86Iw5jLbkhAAAvFvYJvnZBvAvHC2AUmAJNu8AJIkcT9JXCaJyyTxP48Qz0OSMS+Ube5nzPMlrpDECyKEuJ8xlxkDxkI8gBD3s83zY5sXjSSexQhhEEL86xnzLOYFEcK8KIS4QjxfkgDMs4lns/k3E88ixL9IIDD/FgJA/MvMi8g2/34Cg3k282zm+TLmMts8P5J4HsaSuJ8x5pkk/gXmedjmgcS/gng28yzGgLFtIf5F5j+EEPeTxItAyJgHElcYA8ZcZsy/lnlhDIC4Qojnx7YkXgDbAAIDYJ6LJC6TxHMxLyJJ/Ecz5n62JfEisM1lkrhCIISMeS7iWYwBzBXGQgCAeBYhIR5ISOK5iH+BeSbzHMQLY56bsA0AGMwVxjyLwVxhLITAPAchxL+SbUlcJonnRhXPJsk2l9nmfpJ4ANs8i3m+hBBXSOJFJ14UkngW84LY5vkStrlCPIsk21whrpAESOJ+tnlOtoUQz0USz8lYCLANIIQwgG2elwCEjHkAIcAYEAIsY14Q25IAAIMQAmxzmSReAEm2eRaBeSZjLAkwBowxCAyAQSAwtiVxmTGAAWxL4jJJGATCNveTZBsAJAG2AUlcZpsHsM2ziGeRZJvnJInLJHE/SYAk29zPNg9gm/tJ4jJJPCfbXCbJtm0AkGRbEs9JEmCbB7AtSRLPQxJgWxIgifvZlsQD2JbEZZIA2wAGgcA8kG0AIQQAkmxzhcAAxjyQeDYBAMZcJmQsiQcQAgCEMQaQBNjmMkncTxLPw7Yk29xPkm1JAMYYAwgBkmzblmQbsC3JNiCEeC5CAGAbIcSzGMC2EEISVwjbkgBJtnkAy0IA5gpJPIBt7mcMYMRlAgRgjBFCgG1AiMskAbZtA7YlGQNCgCRACMBYxkgCZAEAAgCMZSEQmCtsc5kkAMC2wFwhBDZYFrLN/STxnIwBWUIIYwxCCAHYxkjiAYwlcT/bPIAk7mcshHgWSba5TBLmWYwxgCTuJ8sYg7hCEoC5wjYPIAnAAJJsY4S4wgiQuMLGCJAAMBJIPAdJPCdjSYBtLrMsBNi2LQQgMEKIK4wxCEkY24AkQJYx9zPGPIsknkVgMJIQgG3AtiSELMAYc4UkQAiwLYnnJIn72QYwxlwhhABjLhPiMkk8kAAwxtxPyFgSz2IwljGAEJcJYYwxAMIyRgghyxiDEMI8kG1JPBeDuEIIgbGMuUIS95PEczIGJAG2uZ8kQIgrhG3bXCaJF8w2IAmwzf1sc5kkXgDbkvjXEwKMeQBJmCuMMc8knslYBgAMAhACMAACwDyLJAyAMOYyIV4Qg3gOArANCCGem5CFAABjzL+BEOLZxL+KbUASAEgCbPPcCMTzJYnLJPGiE/8qtiXx/EjigQxGSIgXTgBCtnkeknjBbEvigcQzmedlm/sZAwbxwggBtrnCXGHMA0jiCgMgnkm8IEI8D0lcJokHMldI4oUT/wJhbMwV5tkMQogHEohnsc39JHGZMQ8giRfKNi8CSfxrSAIk8R9Bkm0ewDZgWxIPYJvnZJsXzDbPl5EEIJ6DeS62uUyIF0oSL4R5gcQzmRfOmBedeC62eQGMeRYjxPNjmxeNEIB4buL5ksTzMi8SAeaZzHMRLyLbgG0AY8y/h3jBhLmfABAGY8z9JPFcBALz3AyAeYHMv5qxjXgg2wgAIYkrhDEPZIyFeC7mBRHieZkXzgDm38Y8H+aZzHOxDUiSxPMQ4jJj7ieJy4QABADYBmzzLOJFIck2z5d5Dua52JbE82WegwGEeC4Cc4UxAoEBMAACEJIEYIwxiBfENi+AJABAYJ6XJMCY/1C2ecEkcZkk7mdbEi+Abf4lkrjMNpcZG/NAAvMvMy86IcwzGcwVxkK8IAbxAhlJPBfxbOY5iOdLiGcRiCuMAcQVxgBg2zYvgG2eh22eD+Q0ArAtCQBsA7Yl8SITQgAYxLMYAxhACGGb+0nCPJMAbHOZkDH3E7KNuEKSbe4nCcA8izGX2ZYECBkDkmzz/EjCAAgAYwwgACHANmBbEs9iEIAkzBXGvAiEbCOukGSb5ySJy2xzPyGeRdjmMknczzYPIISxzHMSQtjmfpIAzDMJ21wmBBjzLAKDQQDGshBCxjwnIWOekyTbXCaJB7DNA0jiAWwDgG1JkmzzAJJs8wCSeADbXCaJB7DNc7LN/SQBgG1JXCaJB7DNZZIA2zw/krjMNg9gWxIPIMk2D2BbkiTbACCJ+9nmCgFgbHOZJADAIB5Ikm0usy1JCDDmOUmyjUE8L0mAbR7IAAhJPJC5wjLmCkm2bUviMkk8gG1eAEk8J9vcT8iYB5BkmwcQQtjmfpIwGMtcJgljLISwbSwkCTDGXCFkzPOQxBXmmQTGmOckYXOFALAEYAO2JXGZJAxgzAMZxHMQsjAIhLEQANjmCoMAJIGxAANYEmCb5yFk21gSIAQY2waEEM9FCGHbWBaAkGSby4SMAUDImPtJAmxzmSTbgG1AEveTxBUGQNjmMtuSeABJtrlCCAG2MQACEEIAGMC2sSRAEmCbKwwCEOIKgwCMAQAJGxsJECDZ5gEkcZkxBhDiWYRt7icJsM39hDAIAAHY5jJJto2FhHgWcYVt/jMIIcA2DyAJsM39hIxtSwIkAbZtSwIk2eZ+QgACAxhzPyHuZwwIAca2JXGFkAUYc5kk2xjEcxCyAABhm/sJAcZcJsRlljHPS5JtQBIA2OZ+QgDCtiTuZ4wBMIgXQhJgmxdAEgDY5n6SANtcJsk295ME2OYySbZtSwIkAbYB24AkBOZZJAG2AYwkY+4nCbDNc5LE82UAY64wCCFj7ieJ+xljrhACjLmfJAADGPMAkmxzP0mAbe4nBCAA27xgQogrjDHPl21JgCTANmBbEg8gCbAN2AaEAIRQmCssxHOSBEiSJIkXhfmXGcQzCcwLYizEZULGCAwGsI14gYQkLpOEAYwBwLYk7ieJKwTmmQzmX0E8k3m+JHGZJEk8gG1JXCbJNs/DNg9kAMQzCdu8YLaNAWOeH2NjHsA2D2DMs4jnIGQBiCuEEIAxz8NYiAeQZJvnxzYvmG0usy2J5yHJNi+YbZ4f2zwPSVwmiQewzfOwzXOSxL+DJNs8J0m8KIwQD2AMYBAviG3uZ8xzkmTMv5Z4QYx5AEm8ULa5nyT+HSQBiH8dcYUQ/8kknj8bsA3Y5lnEczPPTfyLbPMCCQMgrpDEA4lnE88ixL/EmPtJAoT415AESAJs87wE4lls8zxs83wJxLMZAAEgrpDEA5lnEy+QDSBh8y8yz594JvF8GQOI589g/o3M8yXEAwlJPIt5PgRgm/sJ8S+xzfMyxjyAEC+EsM0V5vkTV0jihTDPyxiBwDwvSbYBwDbPlwCEeCADYADMv5Yk7mebF0AS95PEC2AbkMQLYSTxfAljIZ7FYCTxQAKwjXlu4rkZYyGuEM/BPAfxfIjnZZt/Jdu8IOaZzAsiiechiX+JMQAYV55JxpjnZZvnJInnYgBjAAMIYYwBSbxojDHPRQhhmyvEs5lnMwhjrjCAJNsA4rnYlgQAtrnCPJAxIMT9bHM/SbYlAZIwVxgLGfM8JAG2AUm2uUI8i20AgwAk2eZ5iWcSxpgrbEvieUjifsYYY0k8kAFsA5IA2zyLeTaDEAIA28ZcJmTMswjMA9mWxIvANs9JEmCb52RbEveTBNgGbHM/24AknodtSYBtQBKX2eYySZJsS+I5SbJtWxKX2eY52eY5SeIy27a5nyTANiAJkGSbF8C2JNuAbUm2eX5sA5J4IQzCNpdJ4jJjwDYghAAwzySem0FgEA8kyTbiWWxzP0mALARgm8skAZIA24AQ4rlI4gFscz8hhCTuZ4y5Qsg2DyAEWBaSZJsrDIB4JmMMCBljACEAg8AAGMAYMJYkybZtSYBtLpNkG/NcJNmAQRKAQYDNZZJ4IANYxgAYACFkDABCGMBYkjEgxAMZIcQDCAyIK4R5JnGFbUmWMZIASQACIwkQMsY8kxDifkKIK2wDgDEPYMwD2OYBbAOSbEvifpJs8/xI4jJJtm1L4rmYK4yFJGFsI2QhEBhJgG1AEleI5yBsEAIE5gpJtg0CwIANYBsASbZ5TsZcJoQRQmAwz5eQMeZZJBnbBiQBthHPImQsBADG3M82IAkwxgCSJAG2eU5CGMRzMAgAgxDCIJ5FEmAbkMRltiUBkngAY4yQMQKQxBUGsM0VAhDiAYQQzyYAIV4ASfwr2ZYE2JYESMI8L9s8kABsc4W5QhJXiOdlG5DEc7ItCZDEZbYlcZltQBKX2eYySbZtA5L415MEALa5QhhjnoskDGAMYK4QAjCAJNuY5yIJA9iWxP2EAAwCY8xzEc/FNpdJwrwwBpAEYABjQIj7SeK5GMTzYRDPIsk2L5gknh9JPAdC/DuYfwXxTALzTAbxTALzQEIAwjYvgG2uEM/LtiReANs8L/Gik8TzEOIFs81ltiUBgJAxD2DM8zIA4rkZALAtieckiedhLMQDSOJ+knjBhADMFbYBDAZjDGCuEOIBbEsCjHkA25K4TBLPjySeH9uI52Kb+0kCAEm8AJIA21xmWxL3k8QLJUkS/3q2ecFs8wC2JXGZJEkAYJsXQJIkXgiBeSZzhSQeQIj7CXE/YyEhnosBMAAG8a8j/tOZZxHiBRDiCvHCGfO8zHMx5kUmBAASz8MAmBfIXCEABCDEv4EAEP8y8+8lXnRCXCEk8SKQxAOJ50M8k3iBDOYKYwADYDCIBzKWxANI4rmZ5yXxnASA+Q9iAGOexTw380BCXGbMc5LE87BtGwCMeS4G8RzMM5lnE89im+dHEs9JCDDmuRgA89zEv8w8kDEvCvGC2OaBzLMIAZjnJWSb52FbEs+PbUASl0nifpJ4AWxzmW2ek23uZ5t/iSQeQBLPy2CeyWCeySCelzH/EmMuk8QLIv5FkrifbUm8AEI8kHjhJHGFeP7EA9nmRWObyyTxfKBMAxK2eX5sS+J5SMI8kwBs85yEAMsYACEE2AZsSwIQQoBt7ifJNoDAPIskYwyAMZYESLINALaFEFcIIZ7FNveTZJsHkGQbACTxnGzzL5EE2OZ+krifbe4nhAAwxjw/krifbUAI8WzGmH+JJMA2gEFcIYn72eZZBMZYCIGxLUnIGIN4YQwCkATYBmwDkgAEBrCNEJJkm/sJGQO2JUmyzQPYFuIKAQghrrDN/SQBgG0ukwTY5vmxLYnnIck2l0nifra5nyTANv8SSYBtLrMNSAIk2eY52ZYESAJs84LZBiQBkgDbXCaJB7DNAwgBljFXSAKMMVcIGQMYIYQxYFsI8SxCPIuwzWWSuJ9tAIOQBBhjHkgSYFsSD2QQLyLbACAJAyAA2xgAYYwRkgQgbHOZEJcZAwAGQAAIjG0hLhNCIDCAsW2EEC8aIQRgmysshACwAIRBPBdjLIQAMMYYxDOZZxNCCAxgzBUC80CSAMC2uExgAbaNJfGcJAG2uZ8QAgBsAxgA8RyMJIRt2wAgieckhAAwxrYlSbLNFUIIsM0D2JYkZIxBCCEwVxhjEAiMbUmAEGAbQDwHgxBCALZ5HpJsA4C4TFwmLrPNFTYSEjYAYCNxmW0ukyTJNlcIDAYBCHGFsM39hABj/iXGGEmAEPcz5jJJtrlMkm2el0EAkgDbGAQgCcBgEMZC3M+Y52FbkiTbtiUBgCQewDb/GpIADGDMZZK4zDb/JrYlAZK4n23+NYwxkgBJtgHbknguAgNI4jLbPIAkwDbPQxJgm+dHEmCb50cSYJvLJPEAxhhAkm1eNEI8iwBs85yEMJZ50QlZgDEgCWPM/SQBtgFJXGGMuZ+QMSBkzP2EjHkAIe5nGSOJ52Sb+0kCjAFZ3M+YF0wS97MNSAJsc4UQ4n62gbABbCSel21JvCDiXyYwz2Sei20A81wk2eYKIwQAQsYYAAMIcZltwLZtSYhnMeb5kWSbB5Bkm3+Jba4wmOdPvEgM5gWRxPNlnsn8qwjxIpCEATDPxZgXSghA2OYFE5IESMIAtnkAYy6TxL/IYADMFUK8yGzzL5HEC2WbfwdJ3M+2JJ6HbcA2/xJJgG3ANv9a5rkI8TwkAcaAbQDxghjzIjIPJAkAJPGcjPn3MLa5QgBCAAJAvDAGQACIZzHmuYhnEeKZxIvCPJsBMM9JPD/ifgbAXCEkxLMIAPHCmBdGAAgA8x/DAMb8i8QziWczz2ael22uEEI8i3k+zDOZZxMA5vkQzySuEOKFMCCeiw0IZCPxQtnmfkI8kPh3EgIwQrwAknhBBIB4buK5CUAI8aKwzWW2AcA2L5gQ/3q2+XewzQslSRIASOIK80zmCiFJAMI2YJv7SeIySZgrbPMC2OYBbPMAkngeknhOkiRxhXgutnkgc4VtHkASzyIkSeIyIZ5FvDAC82xCEpfZ5nkZxDMJDCDEC2EeSMiYy4wBDAYwxmBeIPHvJAkAbPOiMw8kBFRxhUESV9jmOUkCbPOcjAEhQBJgm2cRL4QQ4pkMIAkAbAMYxBVCgDEGwCCelyReMNuAJC6zzQNIss1zss0LIQCMsSSuMM/NAMaAJAADGHM/IQBxhW3ANpdJAoS4n23uJ2QMCBnznGxLss39JAEIwDYgCZAEALa5TBKAASTxLOIK25IASTyLASQBtoV4Hra5nyQewLYQ4oFs85wkYQBJAGAsZJv7SQJscz9JPA9JPCfbgCRAEmCb52SbB5AE2AYkcZltLpPEZbZ5AElcZhuwDUgCJAGAbQCQxGW2uZ8kLrMNAJJsA4hnkQTYts0LIQAMYFsSYJvLhBCAEGCb+0niMkkYAGGMEQIwAAYB2OYyIWPEC2IbACTZ5gEkAbZ5ERkE5rkYC3GZJABhm2cxxogrbAtJ4n62AUk8P5YxkgAJEAACbPMAtiUJGdtGPJsQGNsgBCAus839JJBAtjGAEOIFEsYYQAhjLInLjAGMJNuAJEkABgMgMJIAIQBxhW0usy2EAGxL4jJjhBBgWwiBuMI2L5iQbR5AEmAsiedhGwAkcZltQBKAsI1BCAHGQlwmiWcRshDGXCbJtrGQbe4nCYMBEIBtrrANSEK2eS4StkEgQLKNxP0k8QCSAAwGQFxhzGWyhBCYZxKYK4R4FmHbtiRJtiUBtgGEEALAALZ5fiRxmTEACBljAGMhAAMYcz8hxDOZB7INSOJ+kngA29xPCPFM5nlJ4gGMASEusy2JB7AtictsS+JfIon72QYkGUsCbNsGhHh+jIUk2eYKA2AASTwX87wkcT/btnlOkgDANpdJss0VQsg2gJAEYGwDQgAGQDwv27xQkgDbGGNAkm1jrhCYKyTxXAyAeBZZxlwmicsk2eaBhBDGGIMQQjyLJMA2z8MYg3g28Wzi2QyAeA4GMOZ+QtzPNiAEIDDGgBCAeCDbknhOknjBbPNMBOIy8fxI4t9MvCBCAOL5sg3YNgYABGDMFQYhJMQLZZsXwDYPIMk2DyDJNs/DtiQAEAIQkvj3E1fY5l/DGACMhbhMEv8mtnkBJPGcJNnmuYgHMuYBbGOei5AQl0ky5n62bfNA4pkEYAwAQvw7SOI52QZs2+YBJPEAkiTxIrDN82Ob+0niRSaJF0yIKwxgmxeNJO5nmwcyV9jm+TLPZF4Q2zyL+BeY52Kb58c2L4QBMM8mnsU295NkzAOJZ7ENIJ7NIF5k4gWwzbOYK4QQ9zPPJp4/8TyEACHAmAcQwjybeL5s80KIF8I2gHi+hHgW8SIS4j+IMc/JmBedeBbbPIAxAEbiuUhcIZ4/CUDiXyBJPC8hCfOiMOYK8UC2JfEs4tnMC2eb5yIwgDHPy/yLJEkCJEniOUniX8OYF8S8IJIASbZ5IIF4UQjxnIx5IPFMAjAGjDHPIgmQJMk2lxkL8bzMv0gS97MtxGVCtrnCXGHMZcY8i0FcIYnnR4jnYZsHsM0DmRdGPJCQMc+PJB7AGPNAxryIDOJFIhD/duY5iP8wBqhgLrN5FkmAbV4w2wghwDb3k8T9jDHPxTaXCXE/Y0CI+0nigQQGwCCEAISQbe4nCbAN2JbEA0gCbPOcJPGcJPEAxpjnIgnAPB8GQDyQEIABEMaAEJcZYwAhLrMtictsA5Jsc4VBPF9CCNs8J9uSAARgjBFC2Ob5kWSb+9mWxP1sA5IA24AkQAhhm2cRGEk8gDFGEmDMA0ji+ZHEFcIYgwCMEUIABrAtybYkLrMtictsA5J4fiTxgkmyzXOyzXOyzWWSeE62JfE8JNnmBZDE/WxLAmzzPGwDkngBbAOSeF7GGAAk8UDGGCEL8UziCklcZhvAIIQQxoAsAAFYxmAQtgFjIduAJNs8i7jCNgBI4vmRxPOQZJvLhBDGPCdJGAziCiFj25K4QhhjJAEAAmMbIYR4IGMAA0hCXGEj8SySANu2EUKAMeLZDIAwYIyFANs8gG1JGGMusy3JGACMuUIAQgDm2QTmmQyAkcQD2AYkGWMQQpgrjAEhHkASl0kChGxzhUFIsi0JkMRltm0DkgDbPIAxBkA8iyQus839JAGAJMwVkmxjEAgAAyCeRRIASOJ+tjEAQhaAuUISYBsQQmAAS+I5SbYtCWxzhQ0gCQy2JdnmMkmAbR5AYGwDSDLGIACMMWBbyBgBCNmWhHk2g0A8iyTuJ8k2AkA8F9uAJMA2z8k2YFuSbcA2IMRlxjwn29xPEpfZ5gFsSxLiCvF82eZZBIB5NgMAljGIZxNCPCdJgG0uk2RbEpcJ2eZ+QgACY8yzmGcSD2SMAYQAY0AIwABCCAyAABCAbR7AmOdkDMhCPJAkALDN/WxLAhBCAAawLQkAbAO2hRDPl21AEg8kAFmIK4wxL4zAPF+2AQABYJ6XJNuAbUAS9xMyBjDGQtzPNpcJ8fwYCwGSMADiCmMMIAkDGHM/IZ7FIK4wBoQAIcCY+wkBCMA295PEc7INSAJsA5J4AWyHzb+dQSBeIAMY2+Yy2wAG80zi30j8h5DEc5LEcxICEC+IbWOeRfyLhHggc4UxL4AxVxhJvCDCNpfZlsRlkngW80ziuUjiMkm8UJJ4wSRxPyGehxAPJB5IEpdJksTzEOKBzHOxDdjmMkn8m0iSxP1s8wCSbPMAkvi3kmSbfyvbPF8CQACAJF4AYy6zzWWSuEIAGAAjCfEstnnhxDOJZzOAMWAMALZ5EZkXiQAQz81IQgAIAAPY5n62uZ8Q95PEi0CI5yTxLLZ5ACGei7DNFeZfZp7FmH8V8WwGwPynss2ziOdLEs+XARD/CuaFEc8kJCGeSbwohLifEM8iwGCeH9s8iwRgcz/bPCdJ/IvMczHmAYQABOI5mH8bSTwPSbYB24Bt7ifE8yMkxPOwzWW2edEIGfNABvNAQjyALMzzZxDPS5JtLrPNcxGYZxOIZzOIK4S4n7ExVxiMkBBXCMQVQrZ5ACFeEPF82eYy2zwvA2CEuMw2YBtAPJtAYB7ItiQewBgBYADM8yEQz2QQzySeP4O5wlgIACTZ5gFs8zyMeQGMhXgekrjCPJN5JnOFbcQLIYnnJZ4/8UJI4l9FICRV8SKxDUgCbHM/25J4Hra5nxDiOQgAMMYghLjCCCFeIAEgbHOZJO5nm/tJAiTx/NiWxANI4jLbACBkzP1k8Zxscz8hHkASgACMhQAMBnGFEC+YJECSbQDAPJMAhCxjrpAEGGOeyTyLkDEA2AaEEA9kWxL3sw1Isg3YlsQD2Ob5sc39JNm2zWWSAGMMIGRbEoABbEvieUgCbEvifpJs8/xIss0LIAmwzXOSxAPYBmwDgCTANveTxP1sSwJs80JJAgDbXCaJy2xL4n62AUkAYNs2IIn72ZbE85BkmwcQQgC2JXGZJJ7FGPM8JAG2jYUAY4wkhG3bkmxL4jJjIQDzQJYxQgDCGBDCGBtLkmTbtiRJAMaYyyTZ5goBSAIA2zwP2whJGMtCCMyzCCEwCGMus81zkmSbyyQZYwBJ3M8YEMIIAQghnpNtLpPE/YQASVxhAIwx9xMylsT9bEuSZFsSxjYCEDK2zXOSJMRlxoAQ4lkkcYUQAiQBtgHbkrhCALZ5Tra5TIgrhG3bgCQAkMRltoUQz0USIMm2JECSbQBxhSTANmBbiMtsSwJsA4AknsUIIQAMAvNMxlgI8UwGMOb5sQ0gJNmWBAhxmQEJmysk7icw2JYECJAA20iSeBbJNg9gW2CJ+9kGEMYYQAgQ4lkMgDDGPJt4viTZ5jJJPD+SeE6SAMwVknguQsiY52QsxAOZ5yBsA5JsAxgERshYEpfZBmwDkgBJtm1LAgDbCEAIYcz9hHgAYyGEbQxCkm0AsC2JBxJXGANCAAZhjEEAshDPZDAIBMZYFkLINkKSbWMhQBLPSRKAeQ5GCLDNZZK4zDbPQxLPS2AeSBLPIjCY52AQgG2uEBjAGBDiCoMAJAEYDIAAMBgEBmPMZZJ4wSQBmGcyiBdEEs9inoOxzAtmjEEAQjwn20IABvEsxjw/xhhJAOaBbANCPIAk24BtLpPE82ObZxGYywgEgHhBbNvmBbMtiX8lIWOuMM8mjHlOtnkASbb5d7MN2OYBbHM/YwCwLcQDCBlzmW1JXCEQz0UIwACIF50kXgghxHMxz2QAIa4QiBeFbR7ANpdJ4l/PNg9g2xjzLELGgCQusw3Y5nlI4l8iSRIgCQAk8a9nm+dHEi+AbV4oSdzPNv8atvmXSOIFMZjnZZvnR5Jt7mcbQCCMAcC2bS6zDdjm30oI8fyJKyTxb2D+DWxLkgRI4rmYZxP/icTzksRzEQDiX0uIF4FtwDb3k8S/iW1eMNv8K9nmuZh/O/NM5gUSAAJAXGFbEs/NYJ6HAFsA2AYMgHkekngOtgEkQDw3IUCI52KEeL4MgHguxtzPNi8KAWD+RUI8D2OeRTwXIZ6XuUIIAGwDtgFJgCTuZ5vny7wgQjwX87wkcZkQV4jnYAAE5pnMswlACMAgAGMus80LIZ6LJMwziWcx5nkJBOIFErZ5XgJjzBXimQTmOZjnIB5IiOdiAMuI52VbEgBIksQDGQyAwSCeSbwQQjwXgXkgSVxmm+dHEg9gzAtins08fwYw5jJjIS6TZJt/A3M/lJlcJon72eYFkwTY5n6SeE62uZ8kwDYPIMk29xMy5jJJgG3uJ8m2JO5nm/tJsg1Iss39JAG2uZ8kwDb/VkJcZszzkAQYcz8hwDbPj5AxVwjMFUIAYAwIGXM/SYAx5oEkAba5n5BtBCAJsM39JHE/27xoJHE/24BtSZK4n22eh21J3M+2EOK52BZCPBdJgG2ekyTuZ5v/aLYBSYAk21wmyTbPj21JgCTAtiTb3E8SYJv7SeIBbHOZJO5nG7ANSOI5SbJtW5IknpNtSbYBQBJgmwcQAox5wWxLkmSbyyTZ5oUSwgAIBOZZjLnCAJaFuMy2JEk8gG2el8A8B4GxDUgChBDPyzYCAwghANuAbUASIMk2zyIwtiUJGXOZEGAMYBAvnCTbXCYEWMYIARjLkrjCPJOwzQNI4grzTMI2ANiWxAMIYQAE4vkyFuJ+tgHbgCRAEmCb+wkBxrYlAUJcIWwDAEIIwDwHAQC2uUyIKwRgm8sk8QC2bQsBkgBjXhAhxP2MASHANpcJAQgAc4UxDyBkzL9AkkG2eR4C80y2JQGAbUkCwAAIzPMjCWwDtiUJGQOAEA9gjEFIsg3YBoQQzyLJtm1JPCdJ3M82BiHJtm1JACAEGAshns0Y8wCSuMw2VwghnsUAxjwP2wghLhMCLGOezSCEAGPuZxuQBABCAAKwzQslBBjz/Eiyzf2EEJhnMTaWBSAASQDmCmOeRWBeOEkYwBiQBBhjAAziCtuSeH6EAMSzGANCgG0usy0JkMSzGMCYyyRhANuI52JbEiAJwFxhDCAwzyIJsA0AQsYYBCCEAGwDkjDPxRiDeOEkYYwxCCGEbcC2JO4nyTaAQfwbSLLNAxkAcYUkwDbPyyCEAGOehyTbXCYJsM0LRNj8p5LEZZJ4ANuSuEySMS+UJF4A21xmm/84kiTxAEIAYMzzkMS/kjHPYp6LMZcZC/FczAsnBCAeSIjLJHGZbV4oSVxmm3+JbV4ASVwmicuMeU62JSEASVxmm38r21xm2zbPSRIvAkmAJNvczzb3k8QDSOIBJPH8SOL5sc2/xDbPyTYvmCQewDb/aSTxvMSziefLGHOFbZ6HbZ4v80CSMFdIAhCIF4kBEIAkwDZgWxJXiAcy5nmZf5EkYx5IPJv5tzH3Ey+M+DeQBNgGbAOSuJ8x/ybG/OcQ4t9JvIgk8dwM4gUwiGeSxAMZwDyTQTwfAtuAbQADCPFC2ZYESAIQL4iQJF4QAWAASbZ5ACEeyABCPIBtnpMQDySezWCeRZIQDyQwz80AxjwnSYCQEM+XeL6MjXkBbPNcDOKZBCBkzPNjmxeBJO5nm+dlAAyAeRbbPA8hXjjxLzNXGHOFeC62eS4CMOYK80IYCyEwz2Kby2wjng+BeeFsGwOI5yKJB7AtBCAeSBIvgBAPYFsSDyQQ9xNXSFwmJMQVAmNszPOQZJsXSohnEVX8yyTZ5jlJ4n7GQra5nyQus80V4rnYlsSLzDb/VSTZ5n6SANsAAvMskrjMNpdJAjAI27wgBkA8X8YYxLMIIQDbvAiMASEusy3JmMtsc5kkQBLPwzZgm8skAbZ5TpIA24AkQBLPyTaAQdgGJHE/SbYBSVwmiftJ4nnYBiTxPGxzmSRJXCaJ50cSYJvLbAOSuJ8kQBLPj21JgCQus82LwDYvlG1JPA9J3M82IIn7SQJscz9JPCfbkgBJgG2uEJgHEjLmASQBtgFJtm0DkngASYBtAEBgLAMYBAKDQTyTEAIA25J4FvNMAnOFJNsAIMk2z2KEjCVxhQGMAUCSbS6TxP2MAQxCyFiSbduSAEkAxpgrjJAxAkBgAMSzGWNJgG1AkiRAljFXCAADYACEEC+UJNu2AUkIsI0sIYRtSTwnY0CSMea5SAKEbHM/SYBtSdzPNg9kjHkgYSwLI4TAYACEMSAkyTYGkMQVxhgByOIBbPOcJAGyeC5CCGNsW5KQba4QQoBtQBJg2xjAAIhnkWQbwBgDCEAS97MNSOJ5GLC5TBISgA2AbQAkSYB5DuaZJHGZbdtcJonLbCMkcZkxBhACLAvxAJIABOYK24AkwBgjCcDYRlwhhEE8m7jCNkISL5htSdxPCDC2DUjCPJPAAAghAGGbK4QQYIx5ICEEgAGMJUmyLYnLjDEIQIgHMs8mMLYlITAYhBACsM1zMYBlHkCIyyTZFuIy2zwXIQQYc5kknotBPIsQYJtnEQ8kiechZBsBCAHGgCwusywEGEviBRHPZIwBIQAB2AYk8QC2+ReZZxMYIQRgjHkg21xhEEL82wjbvADGQoAxIIkXQBLmWWxL4gEkYfMsEoDNAxjzQAIDIK6QZBuwzb/EWBLPRCAQgME2AEjiAWzzQgnx/NjmWczzss0LIIkXmW3b/DtIksRlkmzzALZtc4WRxHOyzQOZ5088m3i+JBnzAEL8WxkDCCH+NWzzH82Y5yGJfz1JvFCSeNHY5jLbgCReAEkAIIkXmW0eSBjzr2GbF8w2IEkS/3GEeABJvGhs88KZF5V4ICEAkMQLZgwI8W9mEJIASTxf5tkEgHj+xLNI4lnMswkAA2AABID4d5LEfxkBGPPvIwlA/KuJ58MAmH8j8yy2JQEIAPF8SeLZDAYAARL3E9gGjG2uEM+HeDbb/Etsc4W5whjAAJJs8yIzBhAvnBD/EmPANs+XucKYZzHPlzGAeSbzQEI8i3gW25J4FvOiEOJZjBAvgCQhHkhgrrAtiedkG8BgEFcI8Zxs84KIfxtJxogXQhbmX8dgXghJtnkekgBjrjAPJIR40RkLAYjnSxLPQ5JtHkAS4oFs2+Yy21wmiQeQhAGMeU62ucw2EldIvIgEAkBIss2/ERXAAAIk21wmyTbPj23uJ4n/CJK4n23uJ4n/fJJsA5J4TrYl8aIxFgIQz0sSgABsAwhAEuaZxLOJK4wBQIj72ZYkhAAwGMSz2JYEGANC3M82IInnxzbPjyTb3M+2JECSbR7ANiCJy2wDgCTbgCRACLDNZZJs8wCSuJ9tSZIA24AkHsA2l0myzWWSeADbXCaJ5yEJACTxPGzzPCTx/BgL2QYkAZK4whgDtgFJPD+SANuAJEASl9kGAEk8gG3uZxuQxBUGcYUQgDEGAEkYzAMZYxBX2OaFss1lkrhMEs8iAMwVQsbGQoAkAAMYSwIkAZgrjDEAYJvLJNm2LYSwbVvIGHGFbSFjwFiSbZ6LeCbzLLYBQBJgGyHEFUIIsA1IwhgDkngA25IASba5whhjEEK2jQEhBGAMYB5Ikm0MIIn72ZbEFeaBjLmfbS6TBCAwz2IbkGRbEpfZliSJyyRxP9s8gCTbxoAQ9xMyxiAwAAaBEbIMYAAMwrYkSbYRAALz3IyQsbEkSbaNMUIAArANYAAhwDaAQWCukMQDGQABIDDPJAAhYy6TxHOSBAjxABKAbWEACbANYCQhAAwgCQBs80wC80ziBTMWAgDbAAaQZCwE2OZ+krhCALZtS5JkGwAwiGcykgAA8VyEjBGAbR5IYADbgCQuM8YAQohnMsYYScaSAGPbgBAgxGW2eSAhiysE5gpJ3E+SbQDxQkjiASRxP0nGxpgrJBnbBoQsc4V5INuSbEvigcQVkgDbgCQewDZCyFgIAQC2EbJ4TkKIK4wxzyKJ+xkLAbYRQoAx9xPCIJ4vY0AIYRtAYIwBIUASD2CbK4yxJEASAAgBgDEgBFi2zQtlWxIvhBDifra5zLYkXgBjIcAYwCAADOIy2wCSuJ9trjCAsSSeL8mAucyAeG62JfFcDOJ5SQJsS+L5MpcRvAC2eQBJXCaJfxNJPC8JMP9GkgBAkiT+TSTZBgDbPCdJXCaJy4Rs8/wIcT9jXkTmuQnEv8wAmGcziCsk2eYKg3ggSfz7SOJFYJsHkATYBoyNuZ9tXgDbkrifJACQxGW2eQBJPA/bPCfbvGhs8wC2JfFCGNu8EAaQBEgCANv8m0iyzQNIksSzCEAS97PMC2cAzPMliftJ4l9DEvezDdjmuQgMBsD8i4x5foy5nzFgm3+RMOZ5mX8zSTyL+a9jnkUSIAmQxHOSBNgGbPOvIp5FiOfLPJt5NgNgAAxgG5DEs4jnJl4QY0n8i8wVxjwvASAeSAgDYJ7J/KtJvCDiBRHiX8M2gAEkAUIA5kVhLAkAJHGFQGCeg3gmYyzE82WeRRKAkIR5FiGexVwhxBXmWYQAjBDPSQgw5lkMAkBI4vmRxAth/kW2MVcYC3GZkBAPYFsSL5htLrMtiQcygBDPxSCeD/NM5oFscz8h21xhnoN5NvMvMJK4QrwgtgEM5vkQz4fAvCCSAEASVwhAyBjAPJN5QWxzmbEQgHkmgwEwGAQghACEbK6wzWW2AQwGMJbEC2EuM5cZxHOSMIAQD2BbEg8gicsk8QC2ucLcD7XWJAGSANs8P5K4n23uJ4n72eZ+kgDb3E8Sz8vmMvP8SeJ52OZFIInnZFsSz8M2z0kSYJv7SeJ+trmfJNs8D0k8J9vcTxLPyRjAIIQwxoBtSQAgyTZXGIQQ97ONEELYBmwDkgBJgG3uJ4n72eYySbYB25Ik2eYySdzPNveTxPNjm38925J4AEmAbf4ltiVJss1lkrifbZ6TJMA2l0kCANuAJMA2D2AbkCSJ+9mWZJtnMQACEEJgEBjANoAAJNkGAEk8gG3bkiTZ5nlIss0LYFsSl0myzQNIss0DGcQLIsk2AEiyzQsgCbDNc5Jkm+diAIQQDyQwxphnEs9kAMSz2JYkyTZgjJHECyUEGHM/SZgrjLmfJNsYxBWSjDHPRQhAPJN5JmGb52FbCEC8MAZAXGFbEs9DCEBcYZsHkGSbyyTZ5jIhBGDbNpdJ4l8iiWcxgDGXCXGZMQ8gZGxbkhCAsI0BJBnz/AgBxhiEJAxgzBUSNgaQBCBs2waEEELGmGcSgBDCNlcIWTyAsRDCGANgAElcZhkQ4n62MQghYy6ThI1BINnGAEIIhG0M4gpJtjHPJJ5Fkm1JgG3ANoAQ4oEMgLhCyJjLJPE8bHM/IWPuJ4krzDMJALBtLAuQhLCNARCAJNuAbUCSEJcZ8zxsCyGEAMsYwLYkLhPiMmMAQAhxP9u8AEIAAgBsc5kk2xgEIInnxzb3sw1I4gUxiCtsSwIkAbYxCEASYIwBMIgrJNnmfkKAMfcTAiwDQgAGMAaEAGPANiAJkIQx5jkJIWwDGISQMQ8giWcxgDGXSbJtLARIss39JNkGACFjDOIKIcAYsC2JyyTZBmxL4gEkAba5nxAAGHOFQVwhCWPM8zIIQAgwxiAAIcCY+wlxP2PuJ8k2z48k29xPCHGFbcBG4gpJtgFJtrnCIISMeR6SANtcJgmwzWW2JQFCPBPBv4MkHkAS/yo2z48kHsA2D2CbF0ASz8k2DyCJ/2jG/AcSAOaZDOIKSba5wiCexdg2z2IQAOJfyzYPYJv/EpL497EtifvZ5jlJ4oWyzb9EEs9DEg9kEIhnEgDiWYQQAMI2L5gkwDbPQxIPIIkHsM3zY9s2l0niWcwVQjwv8SyS+DexzfMSzySeg0E8fwLxLLYRACAJEEL8W5jnQwBCAOYKY8yLwpjnIcT9jPkXiWcx5nkZzAshiSvM82H+U4gHEuK5iGcTgBAvhHk2AeZ5CQDxLEK8EOK5iefPABgAYcy/SDwn8S8yV9gW4lnMA4n7CUASIAQgJCEABIB5FiH+RUbImBfOPJt5bgIBIJ6XMS+cABAIzLMYc5kxz0mIF40xz49t/pUkSQIASTxf5kVlAAyAucJYEv8RJEniCvMCmWcSQsY8kHgO4oFsA0JcZpsHsI14FiEE5gpjY8AYsM1ltrlMEg8knoN5FmOuMIgrJGFeIIF5DgIjxAshHsg2L5gkHsg8kAQgIck2l9mWhAAQgLEknodt2zwnSVwmiSvE/VBm8iKQZJvLJHGZbZ6HJO5nm/tJ4jnZ5vmRZJvLJAG2+ZdI4vmxzfMjiedkm/tJ4jkZYwAhY14w25J4AEmAbe4nCbDN/YS4QmAAYx5Akm3uJwQgMM9mEIAxgDGWBEgCbHM/SYBt7mdbEv9ukgDbPD+SbHOZJO5nG7AtiQeQZJvnYZvLJPECSOIy2zwPSYBtwLYkAJDE/WxzP0m2eQBJ3M82gAEQQggAsM3zEAKMuZ8kALDN87ANSAIk2eYBJHGZbduSANuAJF5kknggAxhzmSTbXGZbEmAbkCTJNg9gG5AEIDC2uUySJMwVlgEhjDHPjyTbGEkI2zwnSYBt25Ik8bzMFbYlGQO2JQkZYxCSuMw2VxgA8WwG8UCSMMbcTwgw5n5CCMA2YBuQJGSMMQYkAZIAjG3EFba5nxCAeCGEAMDYtiRJtjEA4rnYBoQQkmzzLAZAAJJsSwIwgDFXCCHANs8ihGzzAJJs84KYKyRxhUEAxkjiWYwFGHOZkDGXCQEIDMYY8YIIAQAGQBhzmW1AEoAQAjCAMZdJso1BXGFbEs8kMAAIAYAxz48QYMxzkgRgjIUQtrlMiAcwBowxkgCEEAYw5n6SANsA5pnE82cQgCTANs9DFgJhjLnCWIjLhAAAYRsDIJ5NCNkGbANCgLEkhBCAeRbLGEmAbQziWYwxQgDiCkm2uZ8Q9zPmAYQAY8C2JEm2uZ8k24AxRhL/EiGuEBhjLhMyti0JEEJgnsWYB5DE87DN/YQQtrmfEAYBIGwDQoCxEFcI2zyAkDH3E0LYNhbi+TKIKyRhjLlMyJgrDID4F0nCPJOwDWAQQoAxVxhJAMI2VxgA8UBCAGAsCQPYBhCAJO5nm8uEjHkBJAG2uZ8kDGAMCCFs868hCbAN2AYk8Zwk2QYk2eZ+kngmgudhm8uEuEySbZ6Tbf6VbPO8bB5Akm1eBJL4DyWJ58sAmCuMhXgA2/z7CQQCQDwv25IAQAhAPDeBAYS4TIgXjW3ANveTxH8c21xmm38N2zyAJB5AEv8S2zwPSTwn2/zHMeYFMc8ixBXiudjmOUkCJNnm+bHNA0gCbPPvYIx5LrYRV0jiBZMESOLfRxJXCGOeH9u8cOaZjCSekzEviAEQAOLZzLOJF0g8BwMgAEncTwgQAowB24Axz48QDyDEC2eemxDieQgBQgDi2cS/nTGWxAPYlsS/igGDeKGMeUHEFUK8cOJZbAOSAMQLYlsIwADGgG2ehzEvhHj+xLMIcZkQgHm+hBC2AcwLZ9sYQPxrCXGFMeYKA9i2LcQLIR5IyDZgGxDiRSGeTWCEhAAhwBjAPJORxPMSz8sYMOYy24AxgLDNFUYSLxIjEJjnzzyTQbwgtnnRGPM8bHOZMSDE87ANAMY8F/NAkrhCPJN4JoF5IGMhnkU8f+KBbPMs5pnEMwnEc7ENYDDPlzEACPEiMxbiBbBtmwewjXgO5pnMC2ebF0oSl0myDQC2JfF8UHkWGwmQxBVCiH892wAgiQeQZJvLJHGZQTyTJF4w25K4n21JPCfbvMhs8zwkAbZ5IPNMBrAsZBmDEeI52eYySdxPiMuMbfM8bPMsQsg2z48xgAEQAObZDCDJMvezLYkHsC2J+0niOdmWBNjmAWzzAJK4n21JXCYJsM3zY1uSbS6TxGWSAEnczzb3k8T9JNnmMkmAbcC2JElcZpvLbAOSAEm2eQBJvAgkAba5n20uEzLmMmMhwDbPYgAEAgBsA4hnsc0LIAmQxHOSxAsmybZtSZIAwDbPSRJg2zb3E+IKcYVtLhPiMkm2JQG2eU6SAEmYKyTxQMIYkMUVAsDYliSJy2xzmbGQbYQQgDG2LQkDSAJsA5Jsc5kkzANJsi0JQGAQAMYYAGwDkgBJPIsw5vkyAAIBCCEAjDGAQUiyLQmwLSRkWQjAIGwDiGeRxP2EjDEIyxjbgCRAEgawDSCEANuAEIDAYBCSbEsChIwxgBCXGfMAkmxzmSTMMxmEbUmAbf6VJGEsYyQZc4UQAgmweRYJzAMIAYgrjEECxLMZAPEssowBhCRjLrMNSOIKI4lnMQACQGAkGQNCiAcwzyKeydiWJAmwDWAQgBCAeSZjzAOZZzEWQtgGhABjIWPbkmwDQhhjSTyAJO4nCcAY80Di2YwkwNg2YFsIAWCukMRlknhOxkIIAGGMeSBJXCbLshCAMUYI8VzMA9lGXCGJ+9mWZIyRxGW2ASGeh23AGJAEIDBCAAYwxgjx/EiyDdgGJBnAQlwmBCAAjCQAY5nnJAQYYxCAbQTmWSQBxjyAEM8insW2JMCYB5DFi0YIAGxzPyGeRTx/AgMgnkUSD2QAY/4lxhhJCAzCmGcRz2YQz0EAxhhACPEvMAghxLPY5jnZlsSzCFkAYCwEWOY5CMwVBpDE85Bkm/tJ4vmRxGW2eSaCK2wkHkCIfz1JtnkR2OYySbxoJPHvIIkHsM2/lnkWY1k8gBAvAts8D0m2eSBjmweQZJvnZTDPTRgLCXE/25IkcT/bkviXSOIBJPECSOI5SeIySbxgtiXx/EjiBZDE85DE/WxzmW1AEiCJB5DEv4kkzLMYc5kxANjmgcQDGSOezTwXSba5n23+JZK4zDb3k8S/xDbPSzwXIa4QzyaeiyT+NYR4FvO8bHOZbcAYwAAYAANgACFeCAEgnpcQ4gpjLrMNSOIKg0E8HwZAAIh/mQEkcT9jQIhnMf8GkgBJAAJAPDeD+FczL4gx/xIh2zyAJNs8P8YAwpjnS/wrmQcyxpJ4FmPM87ANSOKFEFcI8e9gm38Dg0E8m3gWIYwQYJtnEVdI4gUxL4gkHsgAtgHEC2fM/YR4IPMsknhOQjwX8UziuZkXQpJtLjPmuZjnJgBAEiBJSAjAAMYYIQDzvGxLAiQBtgGMDQIw5n6SAADxTOa5GQDzryUJ8UBCtnlBjCQAEBLigYQQgHkOBvFM4vmSZJvnYZsXQvwHEM+fucJYiMskcZltXkTmmYwkrhCAMfcTAgAhHkBCElcIxHMwiCsk8W+BWqYAG4nLJAG2uUwSYJv7SeJ+tgFjIZ6HJJ6TbZ4fSYBtnpMkwDbPjyTANv8SSYBt/iWSANu8YMZCgBAPYMzzIwmwDWAQDyTJNs9iEM9mEICQMQDYBoQQz8EAiCuEjHkRSOJ+tvmX2AYk8fxIAmwDkgDbPA/b3E8SIInLbEuyzf0kAbYlAbZ5AEm2eQBJtnkekmwDgG1JknhOtnlOtiVJAmzzfAmMsSzEs9iWBAgBAAIwxmCMAUk8gCTbACDJNi+AJMA2/xJJPIBtXihJPCfbPCdJXGabyyQBtgHbkiRhnpcxIMSzGIRlzBWSANs8i3km8UwGcYUQgLBtWxJXGASAADAYxBWSMMY8D9uAJEnczxgDIIRs8wCSMM8kAMwzCWOMbUmSuMw2BpBkDAAYwFgSDyCJK8wDGfOCGQtJsg1gJBlzhUEAkrifbe4nBBhzP0mAbe4nhHgOxlgIgQGMuUwSl9kGAElcYQBjDAKBeSYBYABJtrGRuExcIWMeQBKAjQTYBjACBJJtLhMy5kUmCfNMwjZXCCEeyDybwDyLMS+ckIUBEMZcJsk2BkAACCEMgLCNASQZA4BtSTwPSbZ5ICHLWAjxQLa5TBKAMeaBhCyuEMYYQIjLjHkekmzblsRlkrjCAMZcZlsSz0kIgcEYI4y5TIjLJAG2AduSuEyI+xkDkrifbWOMJJ6TkDFgDAgJGXOZbS6TBEiyzbPYSACAEAJsc5kk2zw/QtzPGIN4JoMAJHGFMeYySRhjHsggnj/zTAKQZBuQxGXGGEDINuI5CMwDSTIW4gpjjEE8L0nGGAAjiSvEs9iWBNjmfpK4n23uJwmwzf0k2eYySYBt7icJY8z9JAHGGAAQAowBQJJtrjDPJABJGGMhyxgAgXlBJGGMASHEFbYlAba5nyTbPA9JtnluhLhMwuYy27Z5TpJ4IIN5NvNvY5t/DUn8B5HE8xIYQBLPIq4QAgCMMWDMswgE4rmJF0KSbR5IPF/GQgAgiQcSCADxQMb860niX0kSl9nm+ZHE85DEc7LNZZJ4fiQBtgHANs/JNpfZ5nlIss1ltiXxopHECyWJK8wVQggAMAZsY56XEGDM/STxnCTxH8o2/wbimcy/jvgXCMCYfy3zvGxzmTHPYgDMs5kXREgIkMTzMs9kng/z3AQC8S8Qxlxhni9JvCDiBTHmWQSAeDbzn0eIfxvzvASY52bz/JkHEs8kAMSziX878XyY52BeFEJcISTxLOaZxLOJZxMAQgjz3ISxEABIss2LwgBC/IvEcxHigcy/grDNcxHPYsy/SABCQkJcJon72ZbEZUI8F/HcjCSeHyFASAgwFuL5sc1zscEA5rnYFsI8k3ggY55FYB5IiCvMAxkb80AG8VwkcYW4QkiSbS6zzRUGwNiWxANIwjwvIa4wAOZZJPEAtjEABsA8k3kWIQAQ4grxHMQLIsk2L4jAPH/mOYhnsS2JK8SzCGEAIQDzTOaFsG3MZcbcTxLPSZJt7icJACTZ5nlIVEnGGCSeL2MMSOIyY0AS95PEc5LE/WxzP0mAbcC2JO5nmweQxPOwLYnnxzYgCZDEc7LNc7LNZUKIZzHGAEIAAvNMAnOFEFcIwBgjBBhzP0mY5yAASbYBzANJwjyQZR5AyDJGEiDEFeaZBIDAGGMsC/E8JNnmAWwDkiTZ5nnYBiRJss1lkrifJMA2IInnRxJgm8skAbYBSbYBSdzPtiTbPCfbkrjMNi+YJP59bEuyLYnLbAOSAEkABhDiMmMMAAgBiGczQlxmWcjYtiTAtiRJgG3bvGhsS5IEALZtS5IE2AYkcT/bkrhMEleYK4y5wkgCMC+IJMC2be4nCbDNs5hnEkIAYIwBJAGyAIRt24AkrjAIwDbGGCEECCGMhTCAEAZASDK2LQkDGANCAOaZjLEkHkASYJsXQBJgm2cRxhjMcxOAJJ7FCCEAhG0A8UzmgWxzmRDPIoyFEIBtDIB4NoPASELYto0AEM8kbPO8xDOZKyQBtiUBGMAY81yEuMwYg5BkbJv7ScJgAARgWwjxTALAYMAAYBtAso0tyQCIZxGX2QYk2eYySbYtg7C5nzEgyTaXSeIy2xiEJNu2JdnmWcwLYoxBIIR4FgMgrjAWQhjbBmxLQtjmCgFgMMaAJMAYYwxgELIAxPNnEJJs25ZkGwBsA5IAxDMZBAbxQLa5TBL3s20bQAgBgG0hY4QQz8m2JNuAEPezzWVCPJB4XsYYACEEGPMCSAIkYYwxAAKQhHkmcYUkQJJtHsAYEDLmWYSQbUk8X0IGyTyAQTwXSTyLeBYhYwwghHgmYWyMQQAYAPF8GQsBkjAAwphnERhjWYBtSVxmmyvE82GeD4Owzf0kcT9jni/xLMYA5jmYZzNXGANCiCtsS+KFksQLZZsHMBbiAWzzLAIQMgYAIV4A24AQgHi+bAOAJIwkALDNC2VbEs8kIGzEcxLPImTMZba5wiCukMS/myTbPIAk/qsY8/wYA5hnM88knpt5DuaZzLOJKyTZ5jJjAPNcjLlMiBdOYJ6DeDaBMeY5SeJfTxL3k8SLzDYvlCTANs+PbZ6TbUk8D0m2AUm8UJL417AN2OZ+kngWI4R5LrZ5LuIKYwziCiHANv+1bPNA5rmZZ5HEFQLzQkiSxAsi/kXGPC9hMAYMSEI8i3lBjHkgA0jiuYgrjI15ASTxQggA83wJ8a8inj/xLxDPIgRgwJgXRIh/G/HCiOdmXjghxItIEmAbAIx5UYl/B9u8IOL5M89BAJjnZgDbXCbEA5nnYsyzmCuMEVcIGQPGtoV4Tra5nySuEM9kns1gXlTmWSQZc4WQBACSAEm2ucIgXgghIS4TAgAhni9jm8ts8zyMeS7mX8sYsM0DSOIFEELieZl/kW2uMFcY83yZZxIAAvNcJHGFeSaDeQ4Cc4UQANjmAYSMeQBjIZ6Xef4E5gUR4gUx/wJzhSQewDb/GpJsAwAGc4VtSbwAQsY8L2ObB5AkBCCukMQD2OaBxBW2eQBJtgHANgBI4gFsKg8gCQCMeX5sA5IA29xPCPFAtnkBbHOZJEASz0mSbV4w2wAgiRfANpdJ4n62eQBJAGAbEEI8m7HM/YS4nxAgCbDNC2XMC2BbEg9gGxASMuYyIcDYGMA8izHmCiEusy0JgQEk8QBCgG0uk4QxxjyQJB7ANpdJAiTZti3JNiDJNgDYlsRltnketrlMEveTxP1sS+JFIMk2DyCJyyQBgG3uJwmwzfNjG5DE/WwDknhOkgBJgG0AIwkwxhgDkngAY8wVsrhMCGFbkm3bkgDbAGAbACRxmSSeH0lcZpvLJHE/STwnSbxgQoCxJNvcTxIGYWwbQGBeENtCAAJhDAghjDHPJmxjEBgAg7ifMVcYAwKQJIwBLARIwiCeTdgWAoQsCwGSAGMhAHOFkDEASLKNARBXSAJs2+Z+kjC2hbjCAIhnM5IADAawLGSMwQCSuMy2LMQVtgFJXCGeRQiwzWWSAMQVtiUBIMAAIAAhBIDBvCC2ucIgbHOZbR7ANiCJ+xkDQgACsA0AtgFJtgEMAgMghBC2Mc9mEALzTJJsS7KxLQkhxP1s25ZkG7AtyTZgjAGEuEIAtiUBGAyAEOIBJPFABgFI4jLbACAJQDwHAWAQzyYeSBKX2QYQgCxj24AkwDLGNiAJ8SxCCMyzCCEAIQADSMJgEJJsSwIwAAKBARDPZl4Yg3g+BGAbkMQLIISwzXMSQtjmCgFgAGOeRWCeSQhxP9s8X+L5M4AQAgAkcT/bxrIQgBCX2eYyIQBxhW0usw0ghDAAxjIgiefHNiBJkm0usy0JQGAABOY5iGcykmxzmZAxLxKDbPOCCAAD2JbE/YQQAAYwBgDbkrhCPJtBCBnzAMaAJMzzZVsSgEEAQoAxgAEk8YIZY64QAhDPZP5FkmwDGADxLxBCtiXxnIQAhG3+lSTZ5gUSz0RI2Fxhm+dkLIkXhfkXSbLNA0jiOUmyzQsgyTb/Etv8SyTxvAzimQQG82ziRSWuMOZZzBW2AQABCCEwL4ixMS8yIQBAPC9jYx5IvHC2eQBJtrnMNpfZ5jLbkngBJNnmRWCb+0niOUmyzQsgif8gkngRCWPuJ8S/hhAgSRIPYJsXyjbPyTb/ZuK5CPFcDGDMCyDJtm3AWIgHEMI8k3kWSba5nxDPTVxh80ziOYjnS7xwQjwPIQDxbOLfQjwH8a9mANuAJF5E4kVlXhghxBUGwLwQknguBpDEc5IE2OZZzLOJ5888DwESL4RtwJgHMs9BvKjEcxMviG3+gwgBGEASIEkIQEji30AAiGcT/zLzfBgA84JI4gFscz/bkrifsW1J/Ets8+9gm+ciAGMA8Wzm+TMIQAiBEeJ+xrxw5gWxzQtlm2cxz2QQzyKJF8AYwDyTeBYhHsBgzAMIcZltAGMbACTxLzEGMM9knpcknodtSTyAJACQxBUCMEa8ELZ5AEmY589cYVsSACAQz59AYK4wFuIySQhACAAk8QLY5grzTOJfZJvLbHM/21wmcYVEtc2/RJJtXihjzPOyLQmQZJsHkGSbyyTxL5FkmxdMEi+UJACwzRUCA2AsA0II2wDi2QQgxP1sI4S4n2XMi04IQMiyjDEWsizEZbaFAMCyEP8SYyEA8y+yDUhCXGGb+0niOUmyDQCS+NeQZJsHkGTbtiRJgG3AtiQukwRI4gFsS+IySbZ5ANs8gCReNJJ4ANtcJokrDIB4JoN4DkIWwliIBzJXGAsZ8yzmWWxLss1lkmwDgG1AEs/JtiTuZxuwLUkSYBuQxPMjCbDNswgMBpDEcxHPZGxLwjxftgEEIAQgbEsCbHM/SdzPWAghC2FsmweSBAaDwDYgAdgC81zMFZKMjRFCGNuAJAADSAKMucIYA5IAhG3bgCSeHyFACEAAiCts2+ZZDEIIwAC2JQEARghhDEgCAEmAsZBtnpNtScaYKyQkcZkBWxYIYds2AgPIkoR4JgNgnk3IsswVAgNgHkgSYJv72eZ+tiVJsi2J+0kyti1JEmCb5yIA8xwkQLYRAAYB2OYySQBGCPEskrifEGDMAxhjEBgAIYR5Fkk8gG3b3M9YCCHE/WzzPCRxmW1AEpfZ5gGMMYAknh9JPIBtAAEI8SzmmYQQACCMbQOSMIAx5pnMFZK4nxACYxvASJKFeG4G8Vxsc5kkQJJtxDOZZzEGACGexTx/BmEsxP1s25bEc5LEZba5QggZYwAMQggAbAOSAEASgMAIIZ6DsYwBJHGZbUASBjDGIIR4AEm2uZ8kAPMsknhOxgBGEpcZAwAGYZvnIgDANlcYxP1sAyBxPyHuJ4nnRxJgzBVGEoABhBAPZAwIIYyNMc9mEM8iifvZ5vkRMuYy25J4TpK4nxDPYgDEM5nnIsk29xMCjDGSAAxgmQcQAmzzwokrjAFjWQghAEAAgG1AEi+AJJ4/A5iw+TcSVwgZ8wJI4jLbPIAk27zIJNnmBZPEZZIk8UJJ4jIhrhAvhCQuM+aBjGVjAIF5IEk8gCSuEM+feBZjLhPiOQnxghnzLxLPzbwQkgBAkm2ehyRJXCaJB5DEZZJs8wCSbPOCSeJFI4l/Pdu8YLZ5XsIyzyIAIQDzwknigQSAeSDbgG1eAEn8FzDPRRLPxTyTEeIBbPMfQjyAuUwgAATYtnkmgcC8KMy/hXgukngBLPMs5vkw/+GM+RcYAIN5FvMCGAwG87wEgAAQz8U2/xJJvGC2eQHEv5V4IYx5vswLYpv/CLZ5HrZ5LgZAPItt2/x7mOdPvEBGiCsEgHgO4pnEs1i2zQMI8YJJMuZ5GHOFAYR4AYR4kdkGAMwzGQBzhTH/NuYK25IASQAGMMYgnkn8h7DNFebZzAMJCfF8mStsrhDPJMTzJZ5FiOci/u0M4vmyDdi2bZvnYgDMc5HE8zLPh3kO4oURL5wxL4hAXCFkDNjGIJ5JvCgk8TwkcZltADBU8WySAEASgEEAxpJ4AGNZXCEw/yqSeE62uZ8k/iWSeH4k2eY52ZbEZbZ5TpJs85wk8QC2uUwSYJsHEs/BIIR4HpJ4vgTmCmMhnkU8ixCAEOJ5GPMsBvG8JHGFsM2ziOdiWxJgm8sk8Zwk2QZsA5Jscz/b3E8Sz0mSbQCQxHOSxGWSeE62uUwS97PNA9jmfpK4n21J3E8S97PNC2ab+0nifra5nyTAGCEkBNjmfsYAQsgYkMRzksQDSLINSOIFk2Sb5yQJsA1I4gWzLYkHEpgrbHM/SYCxEJdJ4jIhhG0eSGCeSVwhBBhjEJJ4TpIA2zxfEiDbIABxmW0Qz5cxlmQZY1uSbUCI+0kCANu2EULcz1iIB7DN/SQBtrmfEOJZbHOZbYQQ4vkQz2IZEBLiuRghQJJt24AkIQBjzGWSeDYLAcZCGABhjBEyBjCSDIAsMBKYK8QzGSFjQAhhjAFscz9JtgHbPIBtQJJtAAFgJAG2AQxCEg9kLjOX2QYkAbIQAOaBJGEQAOKBbAMIAPMstrlCPIskjG0A8UC2eUEM4nlJss0DGSEEgHkWSbYBxAPZlsRlQoBtLpMESAIwz2LMAxkAg7jCtiTbvGDGgCTbtgFJ3M82gBDiAYQQV0jiCnOFJC4T4gFsS+KBzLMZywBCyDbPyTaXSQIkcZkk7meb52KMuUI8i22EJMAYEOIKY8xlkoRsA4jnIsm2JAADGAsBCNvcTxKAQQDGmCuEAMRzM7YlcZltrjCSjDEIQJJtni8BYCMkAdhcJolnMS+IMQYhi2cRxpJ4TsYABkAAmOcghBAAYJvLJHGZJJ6LADCAZcyz2OZ+kjCAMc8iMMaAkLEQgMAYA5IADGAMCAEYAPFMBkBgnoMBjCUBkjDPSxL3M8ZcIQmQxL8LgXgW2wBgzAMI2eYBhIy5wiAAQBIPIIl/iW1eNJJ4oSTZ5nlIAgDb/OvZ5l/DGANgXhBj/iWS+A8lCQAwLyLbPCdJXCbJNg9gWxIvAkk8J0lcJokXzDYvAklcJon/UcQVQkK8UJJ4HrZ5TpJ4TpL4V7ItifsJ8UIYAPGCCCEQAMI2z8sgnoskSTx/4llsABtAPIAl8bzEc7HNs4grjAHbXCbEc7INSOLfyjYgxIvCvOgk8S8TzyQADABCgDHPSQhA4l9izAsmCZDEC2GMhQDMv4EQ/2bGGHGFJJ6XAIwBxItCiBeNJACBeCbxwhlzPyEA829hAAxgzAshXghJPJD59zIPJAkAhDAYY57F2JbEFeK52OZ+knjBhIx5QcyLwjbPSzyTuEISD2CbB7DN/YQwz0E8izHPwzaAwSAeSMg2L5wE4goJEC+UeSbzggjxohAvCtuSeFGIK2zzALYRz4d4FiGuMP865pkM4jkIQIgrzH8USba5zDbPQxLPhGzb5jlJAmxzP0mAbe4nxGXGkgDANg8giRfMNmBbEi8aSVxmm/tJ4n62AduAJEAS97PN/SQBxrIQz2IbkMT9bHM/SYBt7icJsM1zEuI5WcZcIYnnZBvAIK6QxPOwzQsgCWPMFUKIB7ANAJJ4TrYBSYBtnh9JtrlMEmCb5yQJsM1zksQD2OYBJNnmASQBtgFJgG3uZ1uSJNs8D0m2eQBJPA/bXCYJsM3zI8k2DyDJNiBkDNiWJAnAIAAMgABsAxgEIMm2bUmAJMA2l0niMts8gCTbXCbJNpdJAmwDtiVJAgDbXCaJ+9kGJHGZbduSJHE/29zPNiCJ+0nCIDAIwFjIGPNAxkJcJsT9jDEIQBJgjHkutgFJkrifbQAbkAQYANuSJPGcjDEvCkmAbcC2JEkAxti2JF4ASYBtwLYkLpNkm+chicts8wJIAmzzLzIISRjAmAeQZJsHkIQBgxC2eU5CABiDBDbPwzyTeC6SeADbPA/bkngAIQBjmSsMQhIABgEYYyGEbR5ACEBgAGPuJ4lnMYgrbGMQQgDiCttcJonLbPMAkrjMNgDYlsQDGcQDSeIy21wmyTbPjxBXiAeyDWAABCAE2EZcIQkwBmRxP2OuEJjnzxhzmSRJAAYB2OYFkGSb+0kCbAOAJNvcT8hYEvczBmQZCwHGPA8hY64wzyQABOYFkQTY5n6SMMbGQghZgDH3kwTYti0JEEI8k8EgAGPbkgDAtiRAEuaBjHkWg3hBhLjMmAeQBBgDsgBjni8DIBCyuMyYy2wDkgBJPIvNM8mYywSWsHkAY4wkXgAhY+4nifvZBhCAEGCby4QQz2KbyyTZ5n6SMM8kns0gjAGMsRAPYFsSIAmwzfMjxHMyBiQBGMAYEAIQz2Kb+0nCAAiMMQZxhRDPlwBsc5ltSYAkwDb3k8T9bPNCSQKAsJH49xDCALa5zDYvmG0eQBIvMtv8O0gCAElcJgvxbyAkJMQLIRDPJDD/CuJ5GfNCmGcTAOZZbPOcbPP8SOJ5SLLNc5LE8yOJF8w2DyDJNi8y25IA29xPEv8atvm3ss1lxpJ4LuI5GAABIDBCxgBgG7DN87DNA0jifpJs85wk8a9nmxfKtiRJPBcBIAAMgMH8KwjMCyeJF0ICDIBt/jMYwBgAbPOisc0LJsTzEAIwmH8d80JI4tnMs4gXSABgDIB5/gSAuEKIK8S/jng286IQ9xP/FuK5medgns28KGzzPIz5VxH/CgLxHMTzYZ5N/BsYA4hnEi+IbV4w2zyQEAIwAOb5EM/LmOdHCPOCSOL5Ei+EEAYDIDDPZJ6bACTZ5rmY589gEM8kXhBjHkj8iyRJAhDPZBCAMfeTxPMnAPNMBjBg85yEEFdI4nkY80IJCfGcjAHMc7EtxBUC8/wJQIjLhGzzAJJ4UYhnEs+HeFGZZzLGAOJfIABAEpdJ4kUgiRfKNgaoAEjCNs+XQQC2eSBhG0AAmCts85xscz9JkmzznCQBtnlOtiXxrySJ52SbyyQBtnkWc4UkQAiwDUji+RHiWQziCtuSAEnGmCuEeB62eRYhBCCeyRjzAtgGJPE8ZFkGhAAM4rnYBiQBtgFJgG2ekyTbPD+2uZ8kLrPNZZIA27wAtiXxQkniRSYJsG2b+0niAWzzAkjiBZDEA9jmfrYBSdzPNs/FPIskAANI4n62AduSeH5s8zxsSwJsc5kk7meb+9nmfpJ4TpL4l0iybVsSl9nmfkIIAPNAQlwhbAMYBAKDeCbzLLYBSULGkrjMNg9gIUDCBiRxmW1AEmAsxANI4gFs2+YySTyAJAABIDCSeE6SAMC2be4nybZtSbYB25IkAbaNMc9iWxJCFmDM87ANSLINSJJkGwNIAowRAiHANmCbKwwIAdgGxGVGCPFAxgIEYAwIIWzzAMZC3E8IsG3MZUKIZ5HEZba5nxDCtm1AEs8iANuAJNtcIWQwz2JbkmUAA0jCPAfzQJYxQgjbthEYQEgS97PNA0iybRuQxGWSbHM/2zwn25JsA5J4wWxLQmAAY8wDSQIwz2KMQQhxmTEgBFjGABhJAAYDIJ7NAMYIIcA2gAEQmAeyLUmSbe4niRedMEYIARgAIcQV5vkQQgAG8S+SBNgGJPG8hBAGY4wAMICxEAAIIQBjAHOFJGPMsxlAEi+UMSAECGGMeS4CwDyQEJcJ8byEkG1Akm3EMxkE5gpJtiXxALZ5Jkm8cJJsC3E/SYBtXgDb3E8SgHkm8dzE8yGEuMwYEAKMMQACc4UkY0ASz49tSbwAtrnCXCEJY5srhCweyBgjhLifMSDEc5IEGGOeD/OvYpvLJPE8bPMsAgjxLxFCxjyAJNtcYTAAYJt/Ddv817Jtm38NSTwX8RzMsxgDtjHPwUjiCmGbBzIIxItIEi+AMf8JbEviMkm2eQDbPCfb/EtsA7Yl8YLZ5gEkcZkk/jVs8z+YbV40tgFAEmCb/zSSbPMiMs8iiQcyDyTEsxhAiMskAZhnE7Z5FgkAcYX4t7HN/STxQpgXkSRJgCTANmCb+9nmXySeL0mAJJ6L+JcZAPFA5oUxz494FtuAMf+BxL+BbZ7FXGHMA5lnEggEgHgmAWCeSbyIbEsCAEm8YJJsc5ltnh8hnsUg/nWMMc9FYP5lBrCNeRZJmGcyz5dt/vUkcYV5JoEAMP9G4gWxzWW2EVdI4vkymOcgEFcI8QIYGwsBiGcSVxgb8wCSEJh/Ldu8YEK2ucy2JB7IIJ5FEi+QeRaBeRHZ5gUQ4oUwzyIJwLww5jmYZzLPYlsSDyAJAGxzmW0eQBIvnHg2g3gmASAQz0E8m5DEczHPh3nhJPEC2OZfRjXGCPE8hLjMGPOikMQLZZv72ZbEZbYl8TwkAZK4n21Jkrifbe4nyTYgiedhWxLPyyAwAAIQAmxzPyHANlcIzBVCACDE8zKWAQxCCDDmOdnmgcyziQeSZFsSIIn72QYkcT9jAANIAmzznCRxmW0usw1IAmzzAJIA2zwP2zwn29zPNiCJF0ASYJvLbHM/SYAkwDZgW5JtSVxmmxfMNvezDUgCJAG2JfGcbPMAkgDbgCTANmBbkiSeL4EBMAACgXkWSRhjQBKX2QYkcZltHsC2JJ6HbUmSeE62JUmyzQPYBiRxP9uAJJ6TJMA2IAmwLYnnIYR4QSTZNhYCJHGZbQAjCWGb+wkhAAOYK2wAG8k2IIQAbGMQtgEhnpNtnovA2JbEZZK4n21ACPG8bEuyDdiWBACSbEvi+bENSOJ+kgCMMc9Dkm1JgJAxz4dBQgYbCZtnsgGQJABh27aQJNsAQogHkMT9BIBtDCDJNiAJwBhLMgaEuJ+QMQaQBGAQV0gCELYBAAEYcz9JtrnMNmBbEuaBJHGZLGPbkjCSuMIgnsU2IGSMADAI2xhJtrlMEg8gifvZlsRlkmzbliTJtiTuJ8k2l9mWBEiyDdgGJHE/SdzPmMtsA5IAYwyAQQgBiAcS4kVhjAFACDAWkmQbADCIZzPGPIAknpNtLpPE82MbkCQJgwCEELYxgCQeQBL3s80VAsAAGEn8S4QAY9sAIAkw5vkxxgCSuMI8kDHPYhCAEALAGCNAGGNAEmBbCPFcbAOSuJ8kwDYGAdjmfpKMhQAAA9iWBGCEeCBzhW1AEi+AMSAEWOZ+krifEC8aIQADIACMMZcJGUsCbNvmCnOFJACwDSAQz8FgEM9LEs9DEi+AJNu86IQx5gpJgGXuJwmwjQEk8fzY5jJJvGC2uUwSL5Rtni/bEABgLInLJPEswpjnYVuIy4Qk8a9kWxIPYJsHkMRlkrifbUm8YLa5zDb/Ekk8i/nXMc9iLAQgng+BeSbzohKAMQIQ4jJJPC+DeVFI4vmxzWW2ucw2z49t/oNI4gFs8yKzDdjmX8M2IIkHkMRzss2LRhL3s80LIp7JIJ7FNv8OtrmfJP4zSeIBbEviRSaJf4kxzyKeg7hCXGYD5gEMIARgXhjzTALA/GeTxHOSxAthXhhzP3OFAfGCSAACQDybABD/XgKwzWXGvBDiOQghXmS2+ReZZxLPYpnnR4gHkATY5t/BtiSeh23uJ8k2D2DMc5Jkm/tJ4lkMgLnCGPEcxDMZzLMJwDbieRkjEIAxYMyzCASAeCBJ/DuJF0QSlwnxfBnMv4LAvHCSEFdI4n62eaGEEM/B3E+YF0QIQLxwQgjM8xLiCgNgAMwDGfP82OZfQxLPZu5n8UziCiGeRSAABAIDGPMAQjwX8Sy2eQBZQjwXcYUkLpPEv4kkXjAhnot5QYR4TrZ5AElcJonLbPMisM2/niQDUG1L4jJJgG3uJ4sXRAgBtjEIIS6zzf2MJQG2AduSAEm8ULa5zDaXSZJkm/tJ4gWzDUjifpJsSwIk8SziAYwB8a9hLAQYIwBZgDGAwCAADCCJy4wxgG1AEvcz5lmEEGCbKyQADFgChABjDAaQxP1sc5kkwLZtnock7mcbIQRI4nlIAmzzgkmyDQC2uZ8kQBLPybYkXihJvGCSuMy2be5nG5AESAJsS7LNC2AbkMT9JPEAtiXZBiTxnIQQAAYBIAAE5pmEEPezzf1sA4AkwDYgiftJ4jnZBiRxP0mAbUASYBuQBNjmfpJ4TrYlSeL5sc0LYJsHkGSbyyTxfAkAA0gCEJcZ8ywGgSXxHIwxz2JbEgIjC4GwbRsQAjCAJJ6Tbe4nCcAAxpgHksT9JAG2AUmSuJ9tSYBtQBIgCcAgANu2EYhnsc0VQghjG5AE2AIjHsACxHORBFgGMIAkwBhAALZ5AYQQgLGQsSQusw1I4lmEEGBsmwewzf2EEAAGwCAk2eYySQBYEmAb82wSYCzEs5grhAAh7idkm/tJwhgDQoAkwLYk27Yl8fzY5gWQxP0kcZlt24Ak7meb52IQxpJ4ANuSJNlGPAfxbOYKSbYxV0jCSOIBhIy5TAhjLAmBEeJ+QgjAGPMskrifbZ6TJO5nG7AtifvZBiTZBiTZ5jJJ3M82IInLbAOAJJ6TbUnczzYgiX8NSYBt24AQz8M2l0niMtu2JSEwQlwhnkWAbQAEgDEgBBgbA0I8D9sIzBVClgFjjCQA80zimYQQz0mSbQCDADAIwBhzhRBgzHOSBNi2DQCSQGAAkDHPJAkDCAGIZxKY52AQAOL5MM9LCDDGSAJs8zwkGdvmBZPE87DNZZK4n20usw0AkgDANs/JNiAJYwwgni/bXCbJNiCJ5yHJNv9KtrmfbUmAJJvLCJ6TbR7AWIgHsM0D2OYKc4VtHkCIB5DEAwhJ4gFs2+Y/miQuk8QDiecgMM8mXiDxTOYKY64wmOcmMJgHso0BbEuSBAjxAtjmeRmBzDOZF842LxpJmCtsc5kkLpPEv5N4QSTx72Ob5yEJkAQAknihJPEAkjDPxTYvInGFEFeIZzIYDABI4kUkrrBtm/8gkvgPIsmYBxLPZPPCGADxPMRzMOYKAxjzgghJvCDmfyhzPyGeH4MBEAjEc5FAmH8X80C2eSHMs0ji+TIA5tnEA9lcIQQI8QDi+REvEvGCSOIFsM1ltvnPYF4A8wCSeABJvBDi2WyuMFcYI57JSOJZxBVC/GvYlsT9bHM/SYAkwDbPw7YkHsCY52ZJXCYJkMSLyLxIjDGAQVwhifvZ5rkYIcxl4grxLALxwtjmX2IsBAjxvMyLRDyQEOZfYv41bCMeyDYPJP4rmBfONi+YbS6zzfOwzb9ICPEisC2JF8C2JF5kkmzzAJK4zOZ+VElcZlsSANgWAhCAkDFgWxKX2ZbEv8gAiOfLMs9JEvezDUjiMtuSeF4C80LYBiTZ5n62ASHEFQaMEGAACyEA28aAEM/JMsZYyBhAPIsQzyIAY0CIZzHPIgkbAwCS+BcIAUbi+bHN87DN8yOJ+9kGhGwjhGzzALa5TBKX2eYBJPGCCWGMeU6SeMEk8ZxsS+JFIAmQZBsAJPEAtgFAEiDJtiQeSDyQJJ4f25K4nzGAeW7mmWQQIAuwzfOQxLMZi8ssY56XJC6zDQC2AUk8P7Z5TpIAwDaX2ZYkyTYPZADLmAeShHlu5goLsCQus20bIQmwLczzMM8mQDJgAwhACABsA5KMMQAGIYnnx1iIy2xL4lnMMxkA8WwC80C2uZ8kSYBtLpMEGGMkQMaAZSFJXGbbNiBA4jIJ80zCIMQD2eaZBAYAJACb+0myzWWSbAM2YEm8yGxLkgTYBoQwDyQJsM39hIwxV0jiWcwVtiVJss1lkoyFAGwus8CWBCAAzBW2eX4kcZkkwDb3kwTYlsRzsi1Jkm1AEv8S2zyAJC6zDQCSeABjBIBBPCeBZSEAYy6ThME8i20ewDb3EzIIEBgMAoGRxGW2ucI8m8A8kCQus21bEgJjWxLPSRIPIMm2JO5nG7AtiedlAGPuZwPm+bENSAIwz58AhLjC2AaEeBbxLEKI52VbEiCJ+0kCwDaAAMkWIO4nBIAxgEE8kJCxbUASBrAtCUAI2ZbE8xIA5gpJXGEwzyZkIV4QIQABGIPEC2UQz8uAEEiyzfMSV9jmBZMEGAOSACHAGPNAkgDMsxljQBIviAGMucy2JACwDWAQ/xbiCtuSuJ9tALAtCbAtiQewzQNI4nnY5n6S+JcZBICCB7ANAEIA4pnEFUI8gG1JXCbEZZJ4FvNM5pnMczCYF0SSJB7AtiSei7nCNgBIAgBJtrnMtiSel3km85zEZbZ5XgbxTOJZjDH/WkJcYe5nSTwnSTyQeSbzLJK4QtjmfpJ4HpJ4AYS4TAjzL7LNA0jiMtu8aCRxmSTbvGgk8a9hm+ckicskAZIASbxQknjBhHgW86IygDEPIInLjDEYMOaZjACQkMQD2bwQ5oWzzXOyzbOIf5EkXmQ2z0W8aGwB4l9kmwcyz0UIQLwwAvEfQzyTeUHEsxjxopN4DjYvhARI/AvEC2KbF8w29xPi+RL/IiFeROY/iST+DcTzYZ7NYLAw5vkQ4jIhzBXmhZHEcxLPj7hCEs+PbcRzMM9FiGcRtnkekngBjLmfbR5AyJgXwDaX2eZFIInnIp5JIJ6LMS+YbSSeSTyTeQ5GPAfzbAbxTEKIy4R44cTzIZ6LbZ4fIZ4viedDmOfL3E9cJq4QmGcy/yJJvBACwGAwmGczDySJBxDCAEKSAITEs4nLzAMYcz/bPIAkAPOCSOIFkMQLYJvLbPPvYZ6XJEk8B4MQledLYJ4PASAwzyIJsI25QhIA2OZ+QoBljLEknpcQAjDGvACSAAzmgSRxP0kA5oFsS7LNFcYySIDNFQYhrhDPwxiDEEJgAEk8i3kWYwCDEEIIAAMgAMwDGUBgnkXIBsxlkgBsg80z2TyAJIwxYFsSIMk2gEEAmOdgHkjIGCHEA9gGJPE8bEsCbPM8JAEYAIO4wrYk2zw/tnl+JPGCSeL5sQ3YlmQbACQBtiVxmW1J3M82L4gQwmAQz8EYc5ltHkASgDFGAmEDIABjLAmwzWVCAAIEADbImMsESOJ+lgTGCMxzE4Ak29zPNiAJQFxhm8skAYBtQAgBYJ7JPIuQbQAQMuYKAyAuE89mwFiIy8xlNpIkLrNtG5DEZQZsHkACZJvLjAHbCCEAAyBsc5kQz0kSzyIwsrhCIABjWTyAkDHPywhxmY2ELK4QILAQ9zMGJGFzmREYAGxLQgJjzHOwLQmQxAOIyyTAPJtBNmCeSRLYBkDCxgCyEFg8iwBscz/bgJAQ4nkZ80ACwNjmMtuSQAA29zPmfuIKCZBsc5kkAGGMEeIKAUiybZv7SQJsS+J+kngekgDbgCQewDYA2JbE8xDCGHM/SVxmm2eSJAAMgMCAJMA2IAkAA7YlYYOMhRC2bUuSAIF5NgEg21wmCcAAiOfLtiRAiOdlAEmAbUASgAEwCEASYNs295PEZbZtA5L4l0iyzXMQmOdkjAEwzySusM3zkAQYA5J4ACHbPIuEDWAjAeJZbJ5N3M8II2wwCEAGCUBcJgnAGEAAQtjcTxKX2QbxLMI2VxghxAPZRgjxXMSzCAHY2AASGGQDSEZgDALEswjMA1kSlxljJACbB5Jkm/tJ4gWThDEGJAG2Mc+fMQYADCDJGPNMBiTxTMaAJJ5NCPH8GQDxTMaY5yQJAGzznCTxPCTxnGwDkngetnlOkrifMSAESAIA24Ak29xPAgibB5J4JoF5JoNAAJKEuEwSANjmAWzzvMQzCUkAIIkHMrYxz4d5DgYw5oUwz2QwV9iWxBXiMmNzhXkg8xwkGQOI+xnEAwjxLOLZDIB5AYwB8yySbduAMZjnZF4o80wG8SxCPIAxgDHmRSZJEpdJ4t9DPC/bkvjXkMS/g23+zQyAQDyLMWAMAAYQ95PEFQIBxuaZLIT4F4jLjAFs81yMDIDBvIgkcT8h27Z5IQyAuEIIAIR4vgwCcT+DwYAk/iXmmSQBAvN82ACSuJ9tQIgXhXg289zEs5kXkTH3E5cJBOIyA2AADIC4QuJZDGCbZzHPxTb/Zjb3s7mfeSaDMc/BYAAh/g0ECPMstnkmY/MvMADmfsaSACGeRQCI/yi2eR62ecGM+ReYZ5J4/owBJJ6bEA9kc5l4NgOIZzHmmYx5LkI8kHk+xL/AALZ5HrZ5AEkAAvFcjHk285wkABtJgCRJGADzbOY/hg1gc4XA5kUiAIF5JhuJK2ReMIEQz8G8EAbxHAzigWzzQtggMBgMAgECAPN82Fxmm2cRmBfE5jmI50NgXnTGXGEAhLlM2AYAYx5IvEgExlgIACQZ8x9Kkm0AsC2Jfx/bXGZbEs8BtdYkAZJsBAjb3E8IQGAAY0ASYBuQZJvnJAkwBoS4n22ekyTANvcT4n7G3E8IsIy5QohnEbYBQBJgGxACjDEIQJJtAAyAxLMZsJEASQDY5nlJ3E+AbR5AEmCb+wkByFgAAtsgnpslbF4ASRhjXjAhYwzi2YQsYwxgLAQgrhACjLmfEIB4FtvcT5JtnpNtQAgwlgQIIWzzQtmWBAghbPM8bAOSJNnmASTxgtnmfrZ5AEmAJMA2D2BbEs+XQQCSMMa8AMYCEA8gMBgL8fwZgwAB4pnMc7MtARKYZ5IE2AZsS5KEbZ4/Sba5TMiYB5DEZba5TMgYQAjZxiCeyTyTeDaDACRhwCBjnocQwjaXCQDzbJIAAzZgm8sESDyAbUASIAljzHMS4n6WMc9LljHiWSRxhXkmg0AAgG0uEwKwkSxjHkgCg41kCVsAINnmmQTmedmAAUk8m7hMss0DCAADgI0ECAAbACHJtm1JkrBtC5B4JiFscz8hY56HJNuSANsYAAFIgLANGADxbAKDjSTJNmAbkMT9JIFtbEsS4jJjrjAIIQTGmBeBJO5nWxJgm/tJ4n62eU6SMAgAAxjzgthIgHgWWWAkANsAgBACbBsLARIY89wkAba5QggBtrlCyDyLeSZJXGYbABAyWADiCsuAEGCbyyRhMADC2LYkALANSOIySba5nxCAsM1zkgABYBBgm8sk2ebZJGGbF4FtSYAk7mebF40AMGAjCcyzSQKwuZ95PsRlAgTYNhYCBIB5DsayAADxvIQAy5gHkgTY5l9DEmCb+wkAC0AIsA1gGyRxhSSb+xmwkQBJgG3uJwQG8SzimQyAQQAIjDFXGISQMS+IwDwfQgAYAAGIZzHPJADb3E8IQAC2AQxCEs/JNs9JEmAbkAQAtgFJXGab+0niOdnmMtuSAEkAgAEAY54fSVxhLGNCEleYZzKSAEAIQGAAYwCwbZvLbEvieRkMBoPBYP4F5rmJ5yAwz5dtHsg8kBACEDLmMhsQgMQDSTyAzfNngUCAbR5IAoNBPJDA4gqDJJ6HEC+YwABCXCFJ4gGEjHlexpjLjHnRGQzm2Qxgm/sJcZkk7idkmyvMv0iSbQABSOJ5SOIy2/yb2Ob5sc1zss1lknhe4pnMM5nnS4gHMoABGwNISDwPIUAAiOchnkmSzb+HEOZFJ8SzmBeVeADzghkDSLxoJAECAMzzsM2LyDwf5pkM5pkMgHkm8yKxeG7i2cyLzgYMgPhXMgA2zyJeEAESAAIBmGcRMuZFJAAECAPCAIgHEuIBJAGSANs8B3GFef4MgEEgXhBJ/AcSLxKb58O86MzzkgSAeRbzXIRAIBAS97PNFeIKIRCAeFGJKyTxAJK4TMg2z8s8D4F4JvGcbEs8gG3zohL/fjaXGSSeSTyTxPMQz2Yus3gW80wSz8tcIYkXRGAeSBL/acQzCWxzhY14DuIBzLOIy8TzMs/NPAeBAYR4AQQSz4cB8UwC8SzmuYnnIJ6D+DezzWW2uUwSz8M2l0niMkk8kAEQiOdLEs9JkjItAWAMYC6TBNjmMiHAmOdHEgDY5jIhxBXG3E8IsM39JAG2uZ8knh9jzANJ4n62uZ8k7mcMYF4UkmwDNhIPZBshBEgCjDEACMxzkMAgQDyQbQCDAJAAbJ4fSVxhIwG2ucJIQtgGEELczzb3k2SbB7AtiQeQxP2MMc8mhLifbZ4fSYAx5gohYy4TAox5FoG5QhJgm/tJss1lkrifbZ6HbUmAJNs8gCTbgCTbgG1JPIBtSVwmCbAN2JbEZZJ4HrYBhBDGmPtJ4lmMsY0ECIyNxANIwhgDtiVxhUEASMI22IBBkiQAYwxgwCAEIISwzQMIzPMjhLjCPJN4FtuSANu8AMayAGNACAAQgCTbtiUJcT8DmMsk2eZ5iAeQANuAAAmwbSMhMC+QEAKwzbMIIR7ANpdJss0DGGMkAZIAzHMTtrnMtiQh7mfM8yMAjMACAGFzhQSI+9nmgWwk8Wzm2WwDgCTxPIwFABIY8/wIkGxzmSQewLZtSZJsAwBCiMtsCwHGPJMEgDEASOIBbPMvkATGmOckhLDNFQZxhSQewDaXSbLNCyWJF4FtHkhgrpBkGwMgAHGZsMFGAiQBtrlMEpfZ5gqDQMgA5pkk2QYASbZ5JklgEIBtrpCweQGEjHl+hHgW8Sy2ASGEbWMhHkASl9kGAEmYZzHmWQRGEsYYAISMuZ8kwDb3k8S/xDYGAUjCGPOCScIAiGeyAfMsEhgDQsY8gMBcIQnb/EskAbYB21wmicuEeC7iWWxzP0m2AYQQYBuwDQCSeDaBuZ8kwDb3k4QBAAOYK2zASOIKSdzPNveTxHMxgDEgMEgCbAMYAPFAQtzPNkIIAdgGAEkYY0ASl9nmOUgAGHM/IZ5FvBC2uZ8k21wmybYkLrPNZZIA24AkwDb3k2QbkMRltgFJgG0AkGSb+0kCAAwAGPOcJNkGEEIYC0GAuUI8kG3bPIv4F9nmWcS/iiSeH9s8i/m3MBgAg3nhbPNM5gFsSxICEM9k7mdJPAcjJBAvkAGwsXkBbPNMAmxzhUEY2+YK83xJ4n6SeBEI8UDmBRL/CkISLxrbPD+SeB6SAMA2L4BtSbxQkmzbBmzzIjL/AnGZucxgAYhnkgQYc4V4AHOFDeIyA+LZxDMJAPFM4nkZxPNjXjhJvFC2MQAghDAGEIAkYwABIBD3M/8qBgMCgQAbAMxl4gUTz4d5kRjbGEk8kHgO4llsIwDEs4kXmXhu5gWxeX5s8y8yAJgXQuJFJJ6XJJ6LzAOJ5yb+BQJAvEjMC2ebf4lt/n2MhQDEv8TczzYA5gpzhRDiAcQD2ObZDCCeh3kASZL4F4lnEy+MeZGIZxLPwTyTeBZjxDOJ5yZeRJZ5FvHcxLNIAhCIK8xzkzDmCvFM5nnYtiQuE8+fJJ6HJB5IPJsAjHlOkmwDAOZ5SeKBxLNI4rkIAIFAgLnCBgwSV0jihTA2mGcSz2JeJMYIhDECMOY5GRtzmW0eyNzPPC/xTOK5GPP8SLLNA0jiMtu8YJK4TJJtLrPNC2ab50s8X5Jsc4UBEAKgAra5QsK8QEKIF5ltnpfASOJ+trlMEpfZ5n6SeH4kAba5nyTuZxuQxAOJB5IE2AZsS+IBJPEAkrhMEv8atnkAIa4QL5xtSYBtSQhjnkU8B4N4ICFjwDaXSeJ+kgBJPCfbPCfbkmxzP0k8kLjCNiCEuMIYAyAA21wmCcAgrrANSOJ+tvmXSAJs8zxsA5JsA7Yl2QYkAZIA24AkQBIPIInLJAG2JXE/2zyAbUASz8M2l0myAUuAACQBYBsAbAOSeBbJNiDJNmCQxHOwJMA2EiAJsC1JEoAxti0JSTybbZ6TMQBgAEmAbR7ANiBJkm1AEpcJGWMQV0gCMIAQl9kGEEK2uZ8kwDbPQQhzhXk2AZJtJAHm2STxPGxzmSTbPIBt7ifJtm1Akm2EEJdJAmwLGfMsAvNAQlwhjAEZJO5nmyskQBgE2Mbm2QQYYXOZJAwARgIM2AASEjYgiQeSAPNMMghs25IsY66QZJsrJAAM2JZkm8skYQAhwDb3k2XM/SQBmGcyCDAGwBjznCTZNgaEuEwCBIBtAEmAbWMhSYBtSYBtxLPYlsQD2JYESAJs8y+xzQNI4jLb3M82IAnzQMYAIAnA3M9GAhAAAvNMAkBgDCAJsA0gYQNgEM8iAAyAsA0AkngW80C2JfH8SLLNFeYKY8wVkjCIB5LEZZJ4FvNAtrmfkCTANg9gmwcQQlxmnosx5jlJAmzzAEI8J9uSAEmAMc/JNiBJYJ5JEmCb+9nmCnGFAbAtiQeSsHlOkmwDkrhMEg8knkkAxoCQkG0uk8T9bEviMttcJsk2z8WWBNi2DQCSeBYbieciAeKZJNnmBbCNEAJsc4UQ4vmxjBHiedjmhTCAbUmAbYQQYJkXTtjGPJAkIdvcTxKX2eZFYBuQBNgGAEk8D9uAJP4ltgEAIQQIAQjbgG0ewDYAEg4QgAGwJfEAtnkBbPOC2eYBjHkW8XzZ5r+KJNu2AduS+FcxDyTJNpfZ5gUzlsSLQJJt24BtY56HJABAPBdj/t1s80LZ5oUwz2SelzH/erZ5fmwDkgBAEvezDdjmfpIAQBIvlCQuk8T9bPOisc0DSDyLJC6zzWW2eX4kcT/bkngA2yCeH0ncz5j/UJJ4foSMuUyIB5DE/WxzhXkOBsA8H0ZGRkYGg7mf+DeRxL+DEOKFkMR/MPMs5vmQuEy8UAYj80zimcwLJQCwzQOJ58uYf5l44QQgxP1sXhRC/EeTxItMEs9DiPvZxjyTucwAmOci80ACMAYAzLPYRlwhhHkm8yy2ecFs8y+RhHg+hJAQL5xAvIgk2eYFsPl3ksT9JPH82OYFs22bf4l5NttcZhuJB5Bkm8ts83yZf5FtnodtHkCSbf5VJF4oSbZ54cxzM89LEiDE82ObB5DEC2CbKwzi+RD/HrZ5AEn8a9jm30oSz2IQzyRs8wC2bfMARpUrxBW2JdkGAEk8gG3uJwnAAIjny7YkQIjnYZvnZJvnYZvLJPEvMoAQYBuQxAtmmxdAEvezzQOJF0QSl9mWBAC2AUlcJokXyjYgiWcxAAIQ4jLbPIBtnodtSdxPEs/JNs/DNiCJ58c2AEjifpIA24AQ97MtyTZgW5JtQBL3kwTY5n6SuJ9t/iWSuEySbUASl0niASTZ5gWQxGW2AdtcJsk2LwLbPD+SbEsGSbLNc5IEYK6QxGW2JfECSLLN82ObF8wYI0kSl9nmAWwDkmxL4gEk2ZbEZZJ4LkYSIAmwzfNjW5JtnkUAljHPhwwABgEIsA0IIWzzAtjmOdnmRWMbkMQLZluSLGMuk2TbtiTbgCTAGFvIWEgSl9kWMoB5AEnGtnkuMhYAAhAANhKXSQIwAAKwbRuQAIENGEASgBDiCiOJKwwC81wkcT9jIV4o25K4wjxfkmxzhXkmIWSby2xzmSTMs8hC2AYAIduSeE62kcQzSeJ+tiXx/Ni2DUgCbHOZJNuAJO4nyTb3kwTYtg0gAIRtDEISRhKAsM1lkjAYsIUQwtiY+0nYPJMQMub5sS0JkGSbyyQBtrmfJMC2MSDJtm1Akm3bvFC2AUnczzb3k8QLYJvLJPE8JHGZbZCEJNsAYFsSL5RtQBIgCbANSOKFsg1IwjxftiXxnCQBtgFsnh8BkjHmWWxLAiRxP9vczzb3k4RBvCCSeE5CxoAkXgDbkrjMNs9DEi8yIWMM4vmyzfOQZFsSL5Qk21wmCbDNZZJ4LkKIF8y2JC6zDUgCbEviAWxzmW1JgCTbPIAkwDb3sy2J5yHJNv8OthEA5kVAACAewLYkHkj8q0ji+ZHE82PbNs9Dkm2eL/OiMv8i2zwP21xmmxfKtiSeh20AQEgCJPGcbPNvYpvLbNvmBZBkmxeNJACQxPMjyTYvhHhBbAO2eeEk/n0k8QJIss2/xDb/oSTxTOI5SeKBxAshybZt/rXEv5YkwDZgWxIvGiFeANs8J9vcTxIAYF4E4gGM+S9nzHMRz8s2LwIhxPNnrhDigcQVBswLY54/8wKJF0QSD2ReAPHcxHMxL4x4JgNI4l9imweQxPMj/u1s8wC2eeHE8yGEuJ8xAkAIcT9jnkkCxHMTDyRkGwBscz9JPIBt/jOY/y62uZ8QL5gk7meby2wDtvkXCQDzLJJ4AEnczzYgCZDE/SRxhXgmc4Vt/iWSeC7iX0e86Gzz7ycAY/41bEsCAEk8gCQAkGSb/1C2JQGSJNnmMttcZpvnxzYvAtuSeE62+VeyLYkHMpjnJUkSzyQAqGBeMEkABkA8L8sABpDEc5IESOIy2wAgiQeQxPOQZJvnYRuBACRxP9sIxHMxBoR4FvMskvjXMgDi+ZJkm+ckBEiyzWWSuEySbe4nCZDE/WxzPyGehyTANiCJB5BkWxLPyTb/Ekk8gCTANs/DGHOFJMwDSbINSOJ52OZ+kgDbgG1AEvezDUgCJAG2AUlcZts2DyAJsM2LwDYvmG3ANiAJkGSbF8A2IAmQZJsHsM0DSOJ+to2FuJ8k7mdbEv8atiXJMpbEsxhJtnl+JNmWxP1sSwIA25K4zLYk2zwnSbZt83wJjCQewDYviLifABnAGABsSwIk8QDGmCsk2QYASbYB24AkAJAEALZtA5Js85xsA4AkQJJtSVwmxGW2eU62AUmAsRAAGAMIIQTGtiRJgDFgWwghhABsg3kmATJIPIBtLhOyzf0MAnOZQUgCjDFXWOZZhBACIwmQZNs2IAkjCZDE/YyFeCYbI8z9hBBCCLDNZbZ5TkKAbUmSbPNA4tkExrYknpNt7ifJNpdJ4gEk2eZ+kmxL4gEk2ZbEc7INSOJ+kgAMgAAwCEmAbQABYJ7JGAO2JWGMMQiMAIGxLUkIYwxIAmzzAJJ4AEmAJNtcIZ6bwFxhW5Jt7mfMc5LEZbYBIUASYBuQBAC2JXE/SYBtLpNkm+dkG5AEYDDGAAIM4n6SeBYhxPMjCUAI8Twk8QCSANs8D8uyAMA2IIn7SbLNZbYBSbYlcZltSQDm+ZLEv4kk7mcbIYn72eYy25IAwDYgiSvMFZK4n21JAGAsxP2MeU6SeAEkcZlthCTANi+UJJ4fSTybQdxPEg9gG0A8kDEgBEgCbPMAkmwDknihJPEAtiXxAJIA2zyAJC6zzXOSBNgGJPFCSbLN8yMJsM39JAFgo8DmOUmyDQC2MYAxBvGczAOZF8I2LzJJtrnMNi8K8SIy5l/PGMBcZgziWWxzmW1JXCGeRcg2D2ReMPMs4kUhiX8TSVwmyTYvgG2elwEwz2YAYwCBACTxH0ESL4Btnodt2zyAbUn8SyTxPGwDkgBJ/EskAZJsc5lt24AkXgjzLLa5wjwfBvN8GADxfIgXRBIvlG2elwAQL4QkSYAkDCCLF0yI52IwmOdlmysMgMFgAMwLJABJPAfz7yGegwAQkvgXGQyAeTYDYJ5JvGAGEC8qA2Cem3k2g3kgY54fY/4l5t/CNuJZbPNA4j+SzX8E2zxf5tmMbR5AEg9gmwcSmOdlbMz9bPNcDObZDIB5FiGei3km83yYF8AIxIvK5jnZ5jnZBhDPYsy/SDyTwWBs81wMgHn+BGDMcxHPIsRlxjyLkARgEA9kWxIPYIx5PsRzMM/LtiSuEIAxz0v8i2xzmW2eH0kA4t/AGIPBYJ6bAQAhrhAvIkm8EAbzLLa5wvw7SeIySTwPSVwmif8+krhMEpdJ4tkMgGRXJF4EQjwfkkEgnsU2IIn72ea5GIQk2/xLJPEAkgDMsxgjhDAviDH3E+IBJAG2uUwS97PN/YS4nxEghLjCNs9iJHGZMYBBPB/m+TAgAAwSQgC2bXM/SdzPNiAJkMQDSOIy24AknockwDYPIMm2bUASYJv7SQIwL4AMQoAxIAmQxLOY52IbkATY5jlJAiQBtiVJ4kVmWxLPSRJgm+chifvZBiRxP9uAJMA2z0MSz0MS95MEYGwLAcZcJgnAXGGby2RJ4lmMMSCEeDZjLIQBJGGMEQDGGJDE/WxLAiRxmUES97PNZbYBSdxPCPNsBgHY5lnMsxgLIYS4n22ekyQeyAAGbK4wAEISD2AsxPOwDUgCMM8iCcAABjCX2ZYEIDCAbe5nWxLGmGcxxoAQgAGwEELGXGGuMAYAIZ5NYEk8m8CSAARgW5KQMZdJso15LkIIAAMIIQDbxoAQwtg2lxljEIAk2yDAAAgBCMyzGUkYY9sASALznMQzWQgw5jIhHsA2IEkIQNjmMtuSMADGmMuEANuAJACwzWWSeE6SuMw29xPPh8A2IAmwbRuQxAPY5jlJAjBXGAshnsW2JEk8D0k8gG0hrjCAJJ6Tbe4nhMAAxlwmBBgbA5Js2wYk8byEEJdJ4lnMMwkAc5kECNtcIUniCgNI4lkk7mdbEiCJ5yQJwFwhxGW2uZ8QAmMMYABjLhMSss1lkgCMbUAIAWAABIAxBowBIQSAMeZ+QgDGWBKAMeYK87wk2eYK80BCAAIDIK6wjQGEeCDzTAYQMuY5CfFCGGOei7lCCEBcIcT9hLjCAELczxgw5n7G3E8SYJv72eYyIQQGQDyTQVxhG5AE2LbNZZJ4JvEswjbm+TDGACAEGAMA4rnYlsRltnkeknihJNnmX0MSYJvLBLYBSdzPIAAMBvEcbEsCbHM/8WwGbKDyPGxLsg1IAjAAAvPcxHOTsHnhBGCby2wDkrifbUm2eRaJBxIPIK4Qz4d5bgLzLLb5VxIgXiDx3ISxJNsAAkA8mwEkAYj7ifvZ5kUgiRdEwgYASbZ5fmxLAmxzP9uSuJ8kAEAACMwzCYwAcYUk2zwv8UzmeUnieUkAIIkXkYQNSOIFkGSbfz3bknguEjb3sy3JNs+XEOIK8yxCXCaJF0QI8byEEIAExiAwz5ck2zwP8a8hhGwDiCsk2QYAyxjANuJfJp6beCYDYADEcxCAJO4nyTbPS2CeTTybAWxL4grzXGwDAALz/AkAgwAQmGcSz2SeSTyLhM0zCUDC5oEkAQgMgHggSba5QjyLEOIKSQAC80CSbHOZJEASzyaeRWCukAQgMM8kAEncT8ggrhBXmGcSQrYBQJIxgHgukgDEM5lnEhhAEoAksM1ltnkWiReRBCAB4rkZxL+CJAyAADCI5yAwz0EI2UY8kwAwV0gyxjw3ASAAIZ5FYBDPS5JtAIF5IEm8EOJfJjBXSOJFI4krxDMZAAEI8QDGPIsQ4oHMcxCAEM8ink0I8bwE5tkEBiFkLMQLJonnJAnAPJsAEM+XZSHbgCTbPIsAMM9NPDdzhSTbPJAEIDDPJJ5JwgaQsLlCPD8SLypJtrnMWAjxHMSzSeIFk7ABxAshyTbPIgDMM5nnIonLbHOZbUm2edHY5t9EEs/JIJ5JPJN4JoEBGwmwzXMyCACQAAGSbS6zzf0kYQMGAEkA2OZ+kmzzXCQBYMDmeUjiMts8XzYSIAkbQAKwzf0kgW0ASQAYsHkukgxgzANIss3zI4nLbPMAknggG0DifrYBSYBtnh9JgG1AEvezzXORBLYBSbZ5TpKwAQAJAGzzfEnimWwD4jIJsA0AtiXxQkmyDQCSeEFsrpB4ANtcJonLDNjcTxIvgG0ACcDmMkm8CGzzfEnifjaAxP1sA0gCANs8B0kGbCTxALZ5JklcZhtAEtjmMkkGbO4nyTaXSeLfwYDNAxgEgCQDNveTZJvLJGFzhcRltnkhJPH8GbDBIC6TxAPY5lkk8RxsA0gC2zyAJJ6HbQCQBAC2uUwSYJv7CZC4n21eZALz/EkCbHOZJJ6HbYN4DgIknsXmCokHsM39JAG2uUzImOchyTaXSeIBbHOZJNtcJokrbABAAgDbXCaJB7DNZQIkwDaXScIGACQAsG0QL5QkMGADkngA21wmyTYASAIA2waBJB7ANg9gEEjihTJgcz8BEmAbACQBgG0uk2SMASQZYxBCtvmXCCFsA4Aknh/b3E8Sl9nmMklcYQBjnh9J3M82gBACbAOSDNiAeCbzwgiQeAADNiCJy2xzhSSwzf0kGbABgXkmSQBgm+dHEs/JNg8giReZMQYQmGeTBNgGbANI4jIJm8skAbYBSdzPNiDJgA1IArABJAM2DyQJANs8gCTANs9Jkm3uJ4kHsA0ASAJsAMmADYhnMs8kiedhwAYk8a9km/tJsg2IyyQDNoAkns02z0MSlxmwuZ9tSYAkwDb3k2SbF0AS97PN/STxL7HNi0AAmOcgiedkEAC2eRZJ3M/mMtsAEs/BAEhgACQBgDJTEmCb+wnMc5DAmH+ZJMA2z48AyTb/SgLz/EkCbPP8CADzopIE2OYy25IASdgGBOaBJNnm30SSbf7dJNnmBRMg2eZ+AsA8k20BEiAwl9lIvAAC8zwE5nkJzLMJkGxzmW0BkgAwz0GSbZ4fAWCeSWAQz2SQZBuwLUDiOQmQbPMAkmxzPwFgXhgBkm2ehyTbvFC2BUhcYRCAwPyrCczzZ1sS/xKBuZ+Ezb9EAJjnIjAABvGcBOa5CQCDwPy7SLLNv55tQBL/KjaAxLPYSAASNgAIDIBtQBIPIAAsYfM8BOa/jSTbPIDAPB8C8xwE5pkk2QZsA5J4LjaAxPMQmH+BJNuAbUmAJNsC85xsgyRAYJ4PgXk+BOY5SLLNi8Y2IIl/N9uAJECSbf5NJGGbF8oAAoR5UQkA82wC828kCds8gDGWBEiyzXOyDUjiRSYAzHOwLQmQBLYBbAOSeB4C82ySANs8PwIDIDCX2Vwh8e8mMA9gI/EAAvNsAsA8m8A8m8A8m8D8BxAA5tkEBkBgAGxL4gEkYYx5IBsJkATY5j+TAMk2gI3Ev4N4NvPcJBljBAZswCAJEJgrDBKYZxMY/hFFCyjORyN5vQAAAABJRU5ErkJggg==", + "generation_id": "649c2d60-68f9-48ac-96c9-304757b69dcf" + } + ], + "output_format": "png", + "quality": "low", + "safety_identifier": null, + "size": "1024x1024", + "usage": { + "input_tokens": 16, + "input_tokens_details": { + "image_tokens": 0, + "text_tokens": 16 + }, + "output_tokens": 196, + "output_tokens_details": { + "image_tokens": 196, + "text_tokens": 0 + }, + "total_tokens": 212 + } +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/images_generations-b450a318cba9.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/images_generations-b450a318cba9.json deleted file mode 100644 index 00520d46..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/images_generations-b450a318cba9.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "created": 1791399134, - "background": "opaque", - "data": [ - { - "b64_json": "iVBORw0KGgoAAAANSUhEUgAABAAAAAQACAIAAADwf7zUAABcHGNhQlgAAFwcanVtYgAAAB5qdW1kYzJwYQARABCAAACqADibcQNjMnBhAAAAW/ZqdW1iAAAAR2p1bWRjMm1hABEAEIAAAKoAOJtxA3VybjpjMnBhOjE4ZTkxOTFlLWExZDktNDc5Yi04ODY0LTQyNDY4MDc0Zjg0OQAAAAwyanVtYgAAAClqdW1kYzJhcwARABCAAACqADibcQNjMnBhLmFzc2VydGlvbnMAAAAJ0Wp1bWIAAAA7anVtZEDLDDK7ikidpwsq1vR/Q2kTYzJwYS5pY29uAAAAABhjMnNo6rnN2qDe0xXyV5YicUe0dQAAABdiZmRiAGltYWdlL3N2Zyt4bWwAAAAJd2JpZGI8c3ZnIHdpZHRoPSI3MTYiIGhlaWdodD0iNzE2IiB2aWV3Qm94PSIwIDAgNzE2IDcxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTUwOC43NDkgMzE3LjM5OUM1MTYuNzc3IDI4Ny4zMTQgNTA4Ljk5MSAyNTMuODg0IDQ4NS4zODkgMjMwLjI4MkM0NjEuNzg4IDIwNi42ODEgNDI4LjM2IDE5OC44OTUgMzk4LjI3MyAyMDYuOTIzQzM3Ni4yMzEgMTg0LjkyOCAzNDMuMzkgMTc0Ljk1NiAzMTEuMTQ4IDE4My41OTZDMjc4LjkwNiAxOTIuMjM0IDI1NS40NSAyMTcuMjkyIDI0Ny4zNiAyNDcuMzYxQzIxNy4yOTEgMjU1LjQ1MSAxOTIuMjMzIDI3OC45MSAxODMuNTk1IDMxMS4xNDlDMTc0Ljk1NyAzNDMuMzkxIDE4NC45MjcgMzc2LjIzMiAyMDYuOTI0IDM5OC4yNzRDMTk4Ljg5NiA0MjguMzU5IDIwNi42ODMgNDYxLjc4OSAyMzAuMjg0IDQ4NS4zOTFDMjUzLjg4NSA1MDguOTkyIDI4Ny4zMTMgNTE2Ljc3OSAzMTcuNDAxIDUwOC43NUMzMzkuNDQyIDUzMC43NDUgMzcyLjI4NiA1NDAuNzE3IDQwNC41MjUgNTMyLjA3OUM0MzYuNzY3IDUyMy40NDEgNDYwLjIyMyA0OTguMzg0IDQ2OC4zMTMgNDY4LjMxNUM0OTguMzgzIDQ2MC4yMjQgNTIzLjQ0IDQzNi43NjYgNTMyLjA3OCA0MDQuNTI2QzU0MC43MTYgMzcyLjI4NSA1MzAuNzQ3IDMzOS40NDMgNTA4Ljc0OSAzMTcuNDAyVjMxNy4zOTlaTTQ3MC44OTkgMjQ0Ljc3NkM0ODYuODkyIDI2MC43NyA0OTMuNDg4IDI4Mi42MDEgNDkwLjY4NyAzMDMuNDEyTDQxNS41NzcgMjYwLjA0NkM0MTIuNDExIDI1OC4yMTggNDA4LjUwOSAyNTguMjE4IDQwNS4zNDUgMjYwLjA0NkwzMTcuNDAxIDMxMC44MlYyNzcuNTI2QzMxNy40MDEgMjc1LjE5MSAzMTguNjUyIDI3My4wMDUgMzIwLjY3NiAyNzEuODM3TDM4Ny42NDQgMjMzLjE3NEM0MTQuMTc4IDIxOC4zNTMgNDQ4LjM0NiAyMjIuMjIzIDQ3MC45MDEgMjQ0Ljc3Nkg0NzAuODk5Wk0zNTcuODM3IDMxMS4xNDRMMzk4LjI3NSAzMzQuNDkxVjM4MS4xODVMMzU3LjgzNyA0MDQuNTMyTDMxNy4zOTggMzgxLjE4NVYzMzQuNDkxTDM1Ny44MzcgMzExLjE0NFpNMjY0Ljc3NiAyNjkuNjkzQzI2NS4yMDcgMjM5LjMwNSAyODUuNjQ0IDIxMS42NDkgMzE2LjQ1MyAyMDMuMzkzQzMzOC4zIDE5Ny41NCAzNjAuNTA1IDIwMi43NDQgMzc3LjEyNyAyMTUuNTczTDMwMi4wMTQgMjU4LjkzN0MyOTguODQ4IDI2MC43NjQgMjk2Ljg5OCAyNjQuMTQ0IDI5Ni44OTggMjY3Ljc5OFYzNjkuMzQ2TDI2OC4wNjUgMzUyLjY5OUMyNjYuMDQzIDM1MS41MzEgMjY0Ljc3NiAzNDkuMzUzIDI2NC43NzYgMzQ3LjAxN1YyNjkuNjkxVjI2OS42OTNaTTIwMy4zOTEgMzE2LjQ1NEMyMDkuMjQ0IDI5NC42MDggMjI0Ljg1NCAyNzcuOTc4IDI0NC4yNzYgMjY5Ljk5OVYzNTYuNzNDMjQ0LjI3NiAzNjAuMzg0IDI0Ni4yMjYgMzYzLjc2MyAyNDkuMzkyIDM2NS41OTFMMzM3LjMzNyA0MTYuMzY1TDMwOC41MDMgNDMzLjAxM0MzMDYuNDgxIDQzNC4xODEgMzAzLjk2MSA0MzQuMTg4IDMwMS45MzkgNDMzLjAyTDIzNC45NzEgMzk0LjM1N0MyMDguODY4IDM3OC43ODkgMTk1LjEzOCAzNDcuMjYxIDIwMy4zOTEgMzE2LjQ1NFpNMjQ0Ljc3NSA0NzAuOUMyMjguNzgxIDQ1NC45MDYgMjIyLjE4NiA0MzMuMDc1IDIyNC45ODYgNDEyLjI2NEwzMDAuMDk2IDQ1NS42M0MzMDMuMjYzIDQ1Ny40NTcgMzA3LjE2NCA0NTcuNDU3IDMxMC4zMjggNDU1LjYzTDM5OC4yNzMgNDA0Ljg1NlY0MzguMTQ5QzM5OC4yNzMgNDQwLjQ4NSAzOTcuMDIyIDQ0Mi42NzEgMzk0Ljk5NyA0NDMuODM5TDMyOC4wMjkgNDgyLjUwMkMzMDEuNDk1IDQ5Ny4zMjIgMjY3LjMyNyA0OTMuNDUyIDI0NC43NzIgNDcwLjlIMjQ0Ljc3NVpNNDUwLjg5NyA0NDUuOTgyQzQ1MC40NjYgNDc2LjM3MSA0MzAuMDI5IDUwNC4wMjcgMzk5LjIyIDUxMi4yODNDMzc3LjM3MyA1MTguMTM2IDM1NS4xNjggNTEyLjkzMiAzMzguNTQ3IDUwMC4xMDJMNDEzLjY1OSA0NTYuNzM4QzQxNi44MjYgNDU0LjkxMSA0MTguNzc1IDQ1MS41MzIgNDE4Ljc3NSA0NDcuODc3VjM0Ni4zMjlMNDQ3LjYwOSAzNjIuOTc3QzQ0OS42MzEgMzY0LjE0NSA0NTAuODk3IDM2Ni4zMjMgNDUwLjg5NyAzNjguNjU5VjQ0NS45ODVWNDQ1Ljk4MlpNNTEyLjI4MiAzOTkuMjIxQzUwNi40MjkgNDIxLjA2OCA0OTAuODE5IDQzNy42OTcgNDcxLjM5NyA0NDUuNjc2VjM1OC45NDZDNDcxLjM5NyAzNTUuMjkyIDQ2OS40NDggMzUxLjkxMiA0NjYuMjgxIDM1MC4wODVMMzc4LjMzNiAyOTkuMzExTDQwNy4xNyAyODIuNjYzQzQwOS4xOTIgMjgxLjQ5NSA0MTEuNzEyIDI4MS40ODcgNDEzLjczNCAyODIuNjU1TDQ4MC43MDIgMzIxLjMxOEM1MDYuODA1IDMzNi44ODcgNTIwLjUzNiAzNjguNDE1IDUxMi4yODIgMzk5LjIyMVoiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPgoAAAFtanVtYgAAAEFqdW1kY2JvcgARABCAAACqADibcRNjMnBhLmFjdGlvbnMudjIAAAAAGGMyc2g1FztJWRqipKXCRcf8IM4hAAABJGNib3KiZ2FjdGlvbnOCpGZhY3Rpb25sYzJwYS5jcmVhdGVkZHdoZW7AeB4yMDI2LTEwLTA3VDE4OjUyOjEzLjc5OTMwNjg1MVptc29mdHdhcmVBZ2VudKJkbmFtZWNBUElndmVyc2lvbmtncHQtaW1hZ2UtMXFkaWdpdGFsU291cmNlVHlwZXhGaHR0cDovL2N2LmlwdGMub3JnL25ld3Njb2Rlcy9kaWdpdGFsc291cmNldHlwZS90cmFpbmVkQWxnb3JpdGhtaWNNZWRpYaJmYWN0aW9ubmMycGEuY29udmVydGVkZHdoZW7AeB4yMDI2LTEwLTA3VDE4OjUyOjEzLjc5OTMxMjk2NFpyYWxsQWN0aW9uc0luY2x1ZGVk9AAAAMNqdW1iAAAAQGp1bWRjYm9yABEAEIAAAKoAOJtxE2MycGEuaGFzaC5kYXRhAAAAABhjMnNoLwTbRgTcabWFGxFe388GQQAAAHtjYm9ypWpleGNsdXNpb25zgaJlc3RhcnQYIWZsZW5ndGgZXChkbmFtZW5qdW1iZiBtYW5pZmVzdGNhbGdmc2hhMjU2ZGhhc2hYIEiDrf6eVtpiMn3gBBHPSIouSL1hgbz4FbWHGn2bG+5nY3BhZEgAAAAAAAAAAAAAArpqdW1iAAAAJ2p1bWRjMmNsABEAEIAAAKoAOJtxA2MycGEuY2xhaW0udjIAAAACi2Nib3Kmamluc3RhbmNlSUR4LHhtcDppaWQ6Y2EwOTU5MDMtMjRkMy00NmY5LTg0ZmQtMGY1ZGQ2ZGRkYzJmdGNsYWltX2dlbmVyYXRvcl9pbmZvpGRuYW1leBhPcGVuQUkgTWVkaWEgU2VydmljZSBBUElkaWNvbqJjdXJseCRzZWxmI2p1bWJmPWMycGEuYXNzZXJ0aW9ucy9jMnBhLmljb25kaGFzaFggbA8o/1G8dYEVoUhf91qRw9ITeP09M8xB6qZ9FgrzZv93b3JnLmNvbnRlbnRhdXRoLmMycGFfcnNmMC43OS4ya3NwZWNWZXJzaW9uZTIuMi4waXNpZ25hdHVyZXhNc2VsZiNq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4D9jcGFkWSL4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9lkBACzwLwi0WjMb8hB9HPHC3qX/UPiHdeWKWJOFDYrWOyEZO4bm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", - "generation_id": "a8d6c587-de65-45ae-a0c2-ffef2c8db404" - } - ], - "output_format": "png", - "quality": "low", - "size": "1024x1024", - "usage": { - "input_tokens": 16, - "input_tokens_details": { - "image_tokens": 0, - "text_tokens": 16 - }, - "output_tokens": 272, - "output_tokens_details": { - "image_tokens": 272, - "text_tokens": 0 - }, - "total_tokens": 288 - } -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/moderations-c261ebe1078b.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/moderations-c261ebe1078b.json index 2bfc6a34..efe218eb 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/moderations-c261ebe1078b.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/moderations-c261ebe1078b.json @@ -1,5 +1,5 @@ { - "id": "modr-8807", + "id": "modr-6485", "model": "omni-moderation-latest", "results": [ { @@ -20,9 +20,9 @@ "violence/graphic": false }, "category_scores": { - "harassment": 3.822911232549001e-6, + "harassment": 3.8831109868779005e-6, "harassment/threatening": 2.561282210758673e-7, - "sexual": 6.605214485464791e-6, + "sexual": 6.814872211615988e-6, "hate": 1.2606946239951315e-6, "hate/threatening": 4.450850519411503e-8, "illicit": 2.0462932829931794e-6, @@ -31,7 +31,7 @@ "self-harm/instructions": 2.1907815825757866e-7, "self-harm": 1.8925148246037342e-6, "sexual/minors": 1.994729721527057e-7, - "violence": 5.649793328376294e-6, + "violence": 5.475976980449466e-6, "violence/graphic": 8.398072034951531e-7 }, "category_applied_input_types": { diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-baa09e3f6fdb.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-0118fcf006a8.json similarity index 87% rename from test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-baa09e3f6fdb.json rename to test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-0118fcf006a8.json index c8b4324f..9af4f44f 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-baa09e3f6fdb.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-0118fcf006a8.json @@ -1,16 +1,19 @@ { - "id": "resp_0126ca34aeb34232016ad162aec5f887d0be8fc7eeb9200af6", + "id": "resp_0715f248b5efb733016aeeba665ec087d0a9be087add4e1465", "object": "response", - "created_at": 1792107182, + "created_at": 1794030182, "status": "completed", "access_programs": null, "background": false, "billing": { "payer": "developer" }, - "completed_at": 1792107183, + "completed_at": 1794030182, "error": null, "frequency_penalty": 0.0, + "image": { + "context_compression": "disabled" + }, "incomplete_details": null, "instructions": null, "max_output_tokens": null, @@ -19,7 +22,7 @@ "moderation": null, "output": [ { - "id": "msg_0126ca34aeb34232016ad162afcfec87d093ceab133a2e08b0", + "id": "msg_0715f248b5efb733016aeeba66cf1c87d09bf4479961419224", "type": "message", "status": "completed", "content": [ diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-042a0738564d.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-042a0738564d.json deleted file mode 100644 index 7bdb4880..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-042a0738564d.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "id": "resp_0bea5f73b8f03046016a95bbd8618087d0a25534d93757cfcc", - "object": "response", - "created_at": 1788197848, - "status": "completed", - "background": false, - "billing": { - "payer": "developer" - }, - "completed_at": 1788197855, - "error": null, - "frequency_penalty": 0.0, - "incomplete_details": null, - "instructions": null, - "max_output_tokens": null, - "max_tool_calls": null, - "model": "o4-mini-2025-04-16", - "moderation": null, - "output": [ - { - "id": "rs_0bea5f73b8f03046016a95bbd952c487d0a66a684f9161620d", - "type": "reasoning", - "content": [], - "encrypted_content": "gAAAAABqlbvf-2zqhCONuWPc2jxLstZZ8m19mj8Qqskui5W0TwU5cnm7pAyVkHU5KHqUA7DZIZPxcL69wuqY6uX_nMO3c3zOCubDZl097eENDbZagVQrRguVz9qF3p9zIAjyG6HEOjjQLpGghmV8YSsAxFxmo3gk7Enpg04BsxSAWXpA5dpK82Bg6PUvs4m8-Bq4CyjXtuoj8aOOBbL9jfBPxl4OJ0HSgr47bRYhmGIlCSRQ-xjkzBZGHhXHXmUiEnPxpTzP0NDYOSJfznG6lpgIk2_En_4Qlon0jZtg3EP_fzMlP9dSwmk6Nek2NKu3rGNgWHzwfMQJxu87fJ-7hu0stDRPUkRH9VSpLu5mz7ztSZrL6xAwmqfljKqSDUziJOmvBzNG76cOmSF8VhvR6HxRZu98virxHp-q5_E9I6am0_uYnuMBiIGC9Uv6t6M0dtAab9QvYwg6GXJ8t-tfpXc7QXMXsCLZkhqAEZTLcGVrazInpSQUnY8B5hRSK9YIv4aqf5_PrGeiPX8fEtxxvcVqQhde6vDclHiUPmByaJJG3icYi1KJAg1K2yqbp09125kjGWG4oYTAxg-W0MZNMVd96me9MA4XqrQirmzsyhxSxPO5b6YXmIcCCan53KkGhFdNh0yxkzpMUJGrs7ckj4VxNmIhZs4F-ag3H9_HZ4m41S7ng4EChjNyIk048JWBSUz0Dx0YpYXJVOs4ZeTVscjIxS6eI4XkRF5mSYFqN2s-NJ7634k13Gzb9l8n-muvi_Lj7gLTGwXkh5ze-PMWFq3YlgpTII5Zm54gQ7bGiEhqT8i-nL27Dsl8hlSik7OVt4ewAmaYO35cxAFxvpQYumP6Dta5CGdRZNIG4EY0HMf_nJCIKu89kymOZEr4j4roxIeypKvXDGkjh7pcq1cZdYQMghd2ObbFes2dzelTsGiU6d_Qay8IxY6kufHiNDVo-a4ayL49lyEZ8UVHQtuwXpTn0ujHuGwXntz8zehxK73ABQmkt-nbqjm3wHK4NEHwDiKyJRWEQgx7W2tBH7iholW1x91hcWwT_v3ZAbyFQDqwlpYDuYHLfZ95PcBh0u4JQ8I-V4PoBobgUs5FsfEwnfQy6-cFngdEgCNDko_QVFiIyBALwx2jgCc9XhBVBBgFrqd08ZI0Z73GpWztSjk_o0G2-UQbu3MhD37SE50ux1QsLJLX-hRknHhXrGerLG-qzD5qlA_EkwniS-VeJmD-aQ4S4TaU-sJdIa1j2kfA4aJjGBlDLV_TIFl4N4Lvs3jI2AVQtoujKRguH5vuH-VChU3FOY3jhPA41-YrYHZZmUqv9tFWADh09Hp59gKjWkLbWcKOY6RwQI5DUdXCRAOVfTN8kPmSFCvIgVkDPQp7BFf7efePsObKYbYcG50gkIhcaV5iw9_Det-zIjEaq-SpmnKFoDTdLaF5Iyf3qQ0waWxFGDlPfEnnZfRKTifbVus2w37SdJLf_6aawhg67dkaYc1BVoUgbr_N417zP1994gSOyZT8aSgVVZvvAK8M87i89j9I3Q-QnoBKDu9k4MnHQ-eoOctgH4si3nZqiHsgC9McTCT2xpS4abLFvCoOVyhZIIPW_Yz537YQcxoUMN3JDaYxxY8Ji81C4FouXG4JveUbHjLmHdHN0_gZgf-43pfTS6G6xH4PvYdeVMORQd7OGS7FgfVkbRcSRJvoKF0eDzNzf-vXfZxw3NQnVSjlbLlH_8nenmxM1qsLTHbrKkDuat4BIwaUaCS_-8EueBfVP8mey9_EXW6uacD_4RxDglGtjrsoi3C4Ae7xlImrlCgyakdyruMTVp1w9mrFTvfdxTd9_8QNWvo_ciA_RssT9L0NGm0KFkLQsOmF9IQNRkG7Ev2_qQKvVNdXSK-l7lqUu-jgbvxXVIYjJrVxMolcv1t9P2-DxZo4czn9R21rgc6gTlGd018PNFIEN-NE11m-3fDdqa9x2-BzmI1p91L9wBBGXF_xUl92xSZu9hh_CQwZFuvfSOQONlTTCcAMxUKVmA3VgHMhRiz9RDGw9hn7zUFZquSwjT8FtegK4dWkRg6GDUlORbRC8geRbnle4zf5enwX_Kw8m2IUUa-26HPRnTquQpQX0yIDsC2mIy7ZP44Q78mw8BHqXByEjK2pPqHHSiD-akHJc6qRhO3BeM--LyFcy2tDMt2ToJFQi_IEJZbecgi_pBS_MrsV2dAKvMw3jgssdwUnfpZH4BC0z5qaVgY6Hoe57doieBwNKQ3SgQKhgy-IZ9ybMcHw3fhsWU2h6BKW28MZg4l5cqXSW_yANc9DhPSz02vumx3_DNRlvVrTsarKYlYl0kzgun6LUr-yx4XeBEdI8N8j10v9Dcx1Ysrz-FAU0b43LhW9tijNwf3-WrBE8cPolbkKH-xxbZ-3Vi1wOlZRyxJZm6uHmc6iDtqwOneYvkmdgYD_uTkxOI7yn6tvR8z7bvvOzrlW6fUPi_HahIt55opCMQgVDHWpsllFTDb_tQoAFnXuT4iz3sZmE69t31VV2mL06S0OCU5JPshqgztsqE5NHsjcAa_2jjJ2oESj3YSIPuBT", - "summary": [ - { - "type": "summary_text", - "text": "**Calculating term and sum**\n\nThe user asked about the sequence 2, 6, 12, 20, 30. I initially determined that the nth term could be expressed as \\( a_n = n(n+1) \\). Now, for the new query, the 10th term would be \\( a_{10} = 10 \\times 11 = 110 \\). \n\nTo find the sum of the first 10 terms, I can use the sum formulas for squares and integers: the total comes to 440. This matches the formula for the sum of pronic numbers, so I'm confident in my calculations!" - }, - { - "type": "summary_text", - "text": "**Summarizing results**\n\nI\u2019ve determined that the 10th term of the sequence is 110 and the sum of the first 10 terms is 440. The pattern corresponds to pronic numbers, represented as \\( a_n = n(n+1) \\). \n\nSo, \\( a_{10} = 10 \\times 11 = 110 \\) and the sum \\( S_{10} = \\sum n(n+1) = 440 \\). I should present both the term and sum clearly, possibly using a bullet list or just plain text for simplicity." - } - ] - }, - { - "id": "msg_0bea5f73b8f03046016a95bbdeba1087d0b434a360e11fa1ce", - "type": "message", - "status": "completed", - "content": [ - { - "type": "output_text", - "annotations": [], - "logprobs": [], - "text": "The 10th term is \n a\u2081\u2080 = 10\u00b7(10 + 1) = 10\u00b711 = 110 \n\nThe sum of the first 10 terms is \n S\u2081\u2080 = \u2211\u2099\u208c\u2081\u00b9\u2070 n(n + 1) \n = \u2211 n\u00b2 + \u2211 n \n = [10\u00b711\u00b721/6] + [10\u00b711/2] \n = 385 + 55 \n = 440 \n\nEquivalently, there\u2019s a closed\u2010form for the sum of pronic numbers: \n S\u2081\u2080 = 10\u00b711\u00b712/3 = 440." - } - ], - "role": "assistant" - } - ], - "parallel_tool_calls": true, - "presence_penalty": 0.0, - "previous_response_id": null, - "prompt_cache_key": null, - "prompt_cache_retention": "in_memory", - "reasoning": { - "context": "current_turn", - "effort": "high", - "mode": "standard", - "summary": "detailed" - }, - "safety_identifier": null, - "service_tier": "default", - "store": false, - "temperature": 1.0, - "text": { - "format": { - "type": "text" - }, - "verbosity": "medium" - }, - "tool_choice": "auto", - "tool_usage": { - "image_gen": { - "input_tokens": 0, - "input_tokens_details": { - "image_tokens": 0, - "text_tokens": 0 - }, - "output_tokens": 0, - "output_tokens_details": { - "image_tokens": 0, - "text_tokens": 0 - }, - "total_tokens": 0 - }, - "web_search": { - "num_requests": 0 - } - }, - "tools": [], - "top_logprobs": 0, - "top_p": 1.0, - "truncation": "disabled", - "usage": { - "input_tokens": 176, - "input_tokens_details": { - "cache_write_tokens": 0, - "cached_tokens": 0 - }, - "output_tokens": 553, - "output_tokens_details": { - "reasoning_tokens": 384 - }, - "total_tokens": 729 - }, - "user": null, - "metadata": {} -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-0c37df81d2cf.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-0c37df81d2cf.json index 942fbd6b..5f6982a1 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-0c37df81d2cf.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-0c37df81d2cf.json @@ -1,15 +1,19 @@ { - "id": "resp_0302cef2c22aff8c006a95bd21890487d0bddabf9675765d72", + "id": "resp_069e7649d63b6ba8016aeebb67cb6887d0995e9b3b3ce37150", "object": "response", - "created_at": 1788198178, + "created_at": 1794030439, "status": "completed", + "access_programs": null, "background": false, "billing": { "payer": "developer" }, - "completed_at": 1788198220, + "completed_at": 1794030442, "error": null, "frequency_penalty": 0.0, + "image": { + "context_compression": "disabled" + }, "incomplete_details": null, "instructions": null, "max_output_tokens": null, @@ -18,19 +22,19 @@ "moderation": null, "output": [ { - "id": "ws_0302cef2c22aff8c006a95bd24b19887d0acac6ebf95fd20fd", + "id": "ws_069e7649d63b6ba8016aeebb6875bc87d085c67ffd800e157c", "type": "web_search_call", "status": "completed", "action": { "type": "search", "queries": [ - "recent news headline about artificial intelligence 2023" + "recent headlines about artificial intelligence 2023" ], - "query": "recent news headline about artificial intelligence 2023" + "query": "recent headlines about artificial intelligence 2023" } }, { - "id": "msg_0302cef2c22aff8c006a95bd26ea1c87d0b32c1a8d009685ba", + "id": "msg_069e7649d63b6ba8016aeebb698d8087d0a8c85a2b2dd08521", "type": "message", "status": "completed", "content": [ @@ -39,35 +43,35 @@ "annotations": [ { "type": "url_citation", - "end_index": 1542, - "start_index": 1392, - "title": "AWS is shutting down Mechanical Turk, which let humans beat AI at certain work tasks", - "url": "https://www.techradar.com/pro/aws-is-shutting-down-mechanical-turk-which-let-humans-beat-ai-at-certain-work-tasks?utm_source=openai" + "end_index": 491, + "start_index": 398, + "title": "Protesters break into Microsoft data center site in Amsterdam as Europe's backlash spreads", + "url": "https://apnews.com/article/b4f3f9f368697bb37416bcb4fabdd67c?utm_source=openai" }, { "type": "url_citation", - "end_index": 1781, - "start_index": 1562, - "title": "AWS is shutting down Mechanical Turk, which let humans beat AI at certain work tasks", - "url": "https://www.techradar.com/pro/aws-is-shutting-down-mechanical-turk-which-let-humans-beat-ai-at-certain-work-tasks?utm_source=openai" + "end_index": 682, + "start_index": 511, + "title": "Protesters break into Microsoft data center site in Amsterdam as Europe's backlash spreads", + "url": "https://apnews.com/article/b4f3f9f368697bb37416bcb4fabdd67c?utm_source=openai" }, { "type": "url_citation", - "end_index": 1967, - "start_index": 1818, - "title": "Bill Gates sounds the alarm on an AI transition", - "url": "https://www.axios.com/2026/08/26/bill-gates-sounds-the-alarm-on-an-ai-transition?utm_source=openai" + "end_index": 879, + "start_index": 719, + "title": "Akron Beacon Journal journalists protest AI tool", + "url": "https://www.axios.com/local/cleveland/2026/11/06/akron-beacon-journal-byline-withdrawal-ai?utm_source=openai" }, { "type": "url_citation", - "end_index": 2351, - "start_index": 2005, - "title": "New kind of AI uses a fresh approach to reasoning -\u202c researchers say it costs up to 11 times less to run than a leading OpenAI model", - "url": "https://www.livescience.com/technology/artificial-intelligence/new-kind-of-ai-uses-a-fresh-approach-to-reasoning-researchers-say-it-costs-up-to-11-times-less-to-run-than-a-leading-openai-model?utm_source=openai" + "end_index": 1255, + "start_index": 916, + "title": "'AI is not creating the problem': OpenAI CEO Sam Altman says AI is merely uncovering all the vulnerabilities we've accumulated over the years", + "url": "https://www.techradar.com/pro/security/ai-is-not-creating-the-problem-openai-ceo-sam-altman-says-ai-is-merely-uncovering-all-the-vulnerabilities-weve-accumulated-over-the-years?utm_source=openai" } ], "logprobs": [], - "text": "One recent headline about artificial intelligence is:\n\n**\"AWS is shutting down Mechanical Turk, which let humans beat AI at certain work tasks\"**\n\nAmazon has announced it will shut down its Mechanical Turk (MTurk) platform on September 30, 2026. Launched in 2005, MTurk enabled companies to outsource small, routine digital tasks to human workers, particularly those tasks that computers initially struggled with, such as labeling data, tagging images, and transcribing audio. At its peak, the platform connected over 500,000 workers, known as \"turkers,\" and played a key role in labeling data for Amazon\u2019s SageMaker AI service. However, rapid advancements in artificial intelligence have rendered many of these tasks more efficiently managed by machines, leading to a steady decline in MTurk\u2019s relevance. Worker advocates, including Turkopticon's Krista Pawloski, noted that Amazon had deprioritized the platform in recent years, even as competitors like Scale AI and Prolific emerged. The closure signals a broader shift in AI economics, where automated systems are increasingly surpassing human capabilities in data processing. Despite MTurk\u2019s shutdown, Amazon affirms its ongoing commitment to serving its AWS and retail customers. The move has left some long-term workers scrambling to find alternative platforms, especially as certain businesses still depend on human task outsourcing. ([techradar.com](https://www.techradar.com/pro/aws-is-shutting-down-mechanical-turk-which-let-humans-beat-ai-at-certain-work-tasks?utm_source=openai))\n\n\n## Highlights:\n- [AWS is shutting down Mechanical Turk, which let humans beat AI at certain work tasks](https://www.techradar.com/pro/aws-is-shutting-down-mechanical-turk-which-let-humans-beat-ai-at-certain-work-tasks?utm_source=openai), Published on Saturday, August 29\n- [Bill Gates sounds the alarm on an AI transition](https://www.axios.com/2026/08/26/bill-gates-sounds-the-alarm-on-an-ai-transition?utm_source=openai), Published on Wednesday, August 26\n- [New kind of AI uses a fresh approach to reasoning -\u202c researchers say it costs up to 11 times less to run than a leading OpenAI model](https://www.livescience.com/technology/artificial-intelligence/new-kind-of-ai-uses-a-fresh-approach-to-reasoning-researchers-say-it-costs-up-to-11-times-less-to-run-than-a-leading-openai-model?utm_source=openai), Published on Saturday, August 29 " + "text": "A recent headline about artificial intelligence is:\n\n**\"Protesters break into Microsoft data center site in Amsterdam as Europe's backlash spreads\"**\n\nThis article reports on activists entering a Microsoft data center construction site in Amsterdam, highlighting growing opposition across Europe to large-scale data center projects due to concerns over energy consumption and environmental impact. ([apnews.com](https://apnews.com/article/b4f3f9f368697bb37416bcb4fabdd67c?utm_source=openai))\n\n\n## Highlights:\n- [Protesters break into Microsoft data center site in Amsterdam as Europe's backlash spreads](https://apnews.com/article/b4f3f9f368697bb37416bcb4fabdd67c?utm_source=openai), Published on Friday, November 06\n- [Akron Beacon Journal journalists protest AI tool](https://www.axios.com/local/cleveland/2026/11/06/akron-beacon-journal-byline-withdrawal-ai?utm_source=openai), Published on Friday, November 06\n- ['AI is not creating the problem': OpenAI CEO Sam Altman says AI is merely uncovering all the vulnerabilities we've accumulated over the years](https://www.techradar.com/pro/security/ai-is-not-creating-the-problem-openai-ceo-sam-altman-says-ai-is-merely-uncovering-all-the-vulnerabilities-weve-accumulated-over-the-years?utm_source=openai), Published on Sunday, November 01 " } ], "role": "assistant" @@ -85,7 +89,7 @@ }, "safety_identifier": null, "service_tier": "default", - "store": true, + "store": false, "temperature": 1.0, "text": { "format": { @@ -137,11 +141,11 @@ "cache_write_tokens": 0, "cached_tokens": 0 }, - "output_tokens": 550, + "output_tokens": 328, "output_tokens_details": { "reasoning_tokens": 0 }, - "total_tokens": 864 + "total_tokens": 642 }, "user": null, "metadata": {} diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-10f9231b8f69.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-10f9231b8f69.json deleted file mode 100644 index a11f32a8..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-10f9231b8f69.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "id": "resp_0cdcf22d3808a85f006a95bbf5a6a087d097d20e5b654a6593", - "object": "response", - "created_at": 1788197877, - "status": "completed", - "background": false, - "billing": { - "payer": "developer" - }, - "completed_at": 1788197885, - "error": null, - "frequency_penalty": 0.0, - "incomplete_details": null, - "instructions": null, - "max_output_tokens": null, - "max_tool_calls": null, - "model": "o4-mini-2025-04-16", - "moderation": null, - "output": [ - { - "id": "rs_0cdcf22d3808a85f006a95bbf60e7887d0b5754b314762df94", - "type": "reasoning", - "content": [], - "encrypted_content": "gAAAAABqlbv9129WPcKdg8d4KHpuU8fKWbJMTbz1g-IhN9CUOkZ9mlzjnLW04tfeqBpT_pd97nAuuyfQshIhku7ePFI1ySjpRhqRIM3OZYg_4RFM9J6jkWgP3Exe_hYG0a_OSE5dxOuGo8bfhMfAXk-JI2-ftngXA1hEExwEFeFbYw3JKJAo5hO30dqcGkud5EGwZChRmOR03rOfMU2kphLA2b96iUjtGta0rWgJHBleITHnWfCixTJ36BeTrGQaIotdM09IS4y4hFiGA9y7tadY9b-KzwZKkjcWwCozRKO-OzQ8nz1eZUcpwB8RCXK5b4XBt7h-rkkoFnLnTfk8XzbtDZaleFnHQGE1034XxDlJqZnqxXhejGKu4k72_rWCl656fhpHdfOytB1vzm6bKCsZDzM3vDH1r-iNyHr7a_5M8y7O26SzocHRxcyt39EzwOkhon_3oE_bMglnr1pUTdKIOfNrTp5_AsLK0QnhnqLdoUWv6dSDQ7Tv9cHRxcyjb8GE1b9puRFQZ_nmGlROdALhnZaXfhMa-yS1aohiseIFU0bqmdcvwSW6kFfDocSA8rnQ8bpArc2Ca5DIB1w3qLT_kdbvqKpiCqvx3ZpM79krkODorkg5jYUSMC07_S3Ksb7Ttay6PAGBJT6pdVKdgvluH73zsSprcGO7VP1_e2hF5swdjkq8Rqsj7xYyE6WhTyQ1X8lzBpebNl0uSf-1D9FTCdIgC8LH5OE8UL0na0qPFPHXLukKUIyPXnPOH0VX-gLs0dL0BLjTJ7yidxkDvlkaWLqjlozrY5gVRwTov0M2K6g-qcNNv-yNfPTud7112tLxiFZRA9bJYKsbdQZbFE5_bUV3fUf_bfcs0FkFbhbSZdWJ0EuzuoYBFzzUp8FdtiWRnqM8Cjxh07lOnA0LlWAmd9vpzdIkSOTjjQyQsKtUwYysO5vrb4ENj0zQQ2pMmgyRby1yFzDYgk1vBXkika6E6pU8GboEDycghObBrX6Iwo-3FciE6DIGH0D3gwoHdHeW5GaUwaucHZjHKvt1-_9VeJdSdUAdDu_W7uEgLtKJbfCb8Sf5Mu4-_emvs3fsCF5Et_U5h6-GGneZ5zMcjUbSZ4r_ydtPb7peUAAAEaACSeAVSc7UFGftrCHZU2vqoLFesGZwv29HrUl-rWIwNs0NoG-eAfqGFTus1IaJGDEEsqfUJlv1ySW_yv2J96VqBoTua1IttZMlLoh1yCfoM5R5m3tCDOF9cHFDBr5Zi3KV4kUTuQlKMmjOO3zdmvJ5Bzh0Geoq_rz4B-0FrLwVqfTuNhhXtcd3FZKYZzYyGWJTgegaf0qySVMB7meaL8fs0zp9AZibNpMcuLnEMkQsOG5s_LDNT_jbV8sWXgVcykkpGZDz5WhHUGXdRPKALSSB8IR1qWsthLsS9JDhS1UuHu9YxjMNrEOvoVozwaKRZSRMdj4tdNdazb2a6DEpRNJCQeHo33-SACPJaynwVxVZOdSthXw2D8AzU8_omESDFmaAmNgPMSplyuijnT9S-cyvfovOOtN0_8E5o8yNsWkCAEmKVgSaKhwcIlmfptd7HYej2gig6cPBBh10Qz454U-8x8q0KrAdWlFFg4xwPLYeX9HYELcIKuJlq_v1Es2gY2nDRJV5ITP2MsZojzc59nCwyoqU8o6OLLTauZFHjWphuyDcKrdJv6oIDq6hFk5vmNhh1Luz3oUWGiSM4sgE63cW3bFYJSqC9syt5St-j1Qu4HL5XrC51y_Wl3VAjtmZe3hiUu6C8U-1hXyZktdxHG-XIzFA9wOZkP5Zuhz7yKpUg7CY9-9Kl-jvdUmcjxpjzwtHUtKU2QB90OR1alLjvve7U51RbW0L8zAok0pJtzNNzc2J6x-akwl2wnC-DQW7wb54M8NUuX2GX4-Knkm-3qPmTIfQyhhuixjCFvkdkhWyntCEMvvaUuPuuYXfI7DP2kvGlKbJTncd_fNTV3Pa99lK3nIF-J_Z7T0Og5X29AOusmYIRmtVoaV0r5rC67flE09XT1iURtL5DvjJGjWw4FdyASm9C_ktnXeh7ayZuKEGPpuT52L074hygr8QuSWbFlpFVVWp631De8N0M5b7MPWlX6_hNxSXIGK73wJH7AZmkcRZVsSscZVbnWFS_L68Vy9ZKvJHieK82Ab46J-OdP2QfGPsHvTuIQLh8FekDWWvW9Qo2d17LhvkrNHQxk2ER2AYmhs7w3e9qM78haNucPJgHZpiCNZ3yg9bv894ZELkZwQko55jqjrD_z649uud59T514z9OttGrV3sKbTuij9G-XjWUEnhQ2NiVysl3Ob_BGfNdCjYOyNBrek8YQUYX4-gbOyZM_YyTDOaAyI1JYl8Au8ugSYknTPi1dPFXUykpDYEnF7ZZm4xNOhx9qd7F03HSKj7iRjBMIj4RNvT7E1S4oY7l-GMvvfEklE02UspHMyg02XrJbk_4DXXeuLEtNBzEcvjTB-bD6QfnRZ0525FEEwfWZGuGg9V65B2ItQEn-1av3W80i4sq87eQNUlrDThsnOyNDEp_e1hVgLxTTgaFzSRmPVt11Sun7nPC84fOHIOUr89khUGyRX-Trc3GI1PzfxLfhZiB6ycJEF-HetLILgjywOsLc9KMiKKjuDJrKZPhJ86Kuhk4-P9eGeJnzWtxzRHsxnwCZEMYJMbqNi7gyegzC4awuqV8PBmDFbFH_yHqVh1CIrGasq78nOtc2hY6HMA2CWKn6t_snqk1Rq0bZ_VYOAEq8jG4ZsZywNccHNdbq4WnT8K_FpV3yAGSHIqWX9A8ftFsjcxvcxFnHfJ4ouS8xD4tX3abAdC90BHVGfymql1X7tQcpzus7DeDFHkSvEYp0njDR9cygfOk14nS8gaeMBqT6I72-jYw0x7zLJPm2k01GLYMbj51xbghnOEI9VIGASoss0cGo4zSvIC9b1ApNHaFNYG6y-H00cL8dQBBD-jlZBZHyo2WvDF-3389gOkU8AxAM0mcyBpbboDDUT3B_VjDgxwk5Esaegfaw2AmW3xy6OwBX4isL7rEPUb7TohQXOJCPLsE_wlrGGSgxs8qYbD863a_lrJ6g3qnWdMGq4JvtXxFyCqqnjN4O3XdlLAGI-KYsljf3GQD3DfwgGN7NOoNaBIKY4-lrUTFncqOdEWXHnJGA8duIPJF68UPbHTI82C40SqaqnHcMfsTJQ87XaUMiElP5FJ83qMODaG4QS7o7TP9ohy0iZctx136unXetFB71zQ8Jzdg3JSIcQ6CVULvdp3DR3qwogKaaIBXY_a2sWqUA==", - "summary": [ - { - "type": "summary_text", - "text": "**Calculating pronic numbers**\n\nThe user has a sequence: 2, 6, 12, 20, 30, which corresponds to pronic numbers, where the nth term is given by a_n = n(n+1). They want to know the 10th term and the sum of the first 10 terms. The 10th term is calculated as a_10 = 10*11 = 110. For the sum S_10, I\u2019ll compute the individual sums: S_10 = 385 (sum of squares) + 55 (sum of n), which totals to 440. Alternatively, the formula for the sum simplifies this to the same result!" - }, - { - "type": "summary_text", - "text": "**Finding the 10th term and sum**\n\nI calculated the 10th term by using the formula a_10 = 10 * 11, giving me 110. Then, for the sum of the first 10 terms, I added the series: 2 + 6 + 12 + 20 + 30 + 42 + 56 + 72 + 90 + 110, which totals to 440. I can mention that the general formula for the sum of the first n terms is n(n+1)(n+2)/3. So, the 10th term is 110, and the sum is 440. Let's provide this neatly!" - } - ] - }, - { - "id": "msg_0cdcf22d3808a85f006a95bbfc88bc87d0b77a1c39df3eed36", - "type": "message", - "status": "completed", - "content": [ - { - "type": "output_text", - "annotations": [], - "logprobs": [], - "text": "The 10th term is \na\u2081\u2080 = 10\u00b7(10\u2009+\u20091) = 10\u00b711 = 110. \n\nThe sum of the first 10 terms is \nS\u2081\u2080 = \u2211\u2096\u208c\u2081\u00b9\u2070 k(k\u2009+\u20091) \n = \u2211\u2096\u208c\u2081\u00b9\u2070 k\u00b2 + \u2211\u2096\u208c\u2081\u00b9\u2070 k \n = 385 + 55 \n = 440. \n\n(You can also use the closed\u2010form S\u2099 = n(n\u2009+\u20091)(n\u2009+\u20092)/3 \u21d2 S\u2081\u2080 = 10\u00b711\u00b712/3 = 440.)" - } - ], - "role": "assistant" - } - ], - "parallel_tool_calls": true, - "presence_penalty": 0.0, - "previous_response_id": null, - "prompt_cache_key": null, - "prompt_cache_retention": "in_memory", - "reasoning": { - "context": "current_turn", - "effort": "high", - "mode": "standard", - "summary": "detailed" - }, - "safety_identifier": null, - "service_tier": "default", - "store": true, - "temperature": 1.0, - "text": { - "format": { - "type": "text" - }, - "verbosity": "medium" - }, - "tool_choice": "auto", - "tool_usage": { - "image_gen": { - "input_tokens": 0, - "input_tokens_details": { - "image_tokens": 0, - "text_tokens": 0 - }, - "output_tokens": 0, - "output_tokens_details": { - "image_tokens": 0, - "text_tokens": 0 - }, - "total_tokens": 0 - }, - "web_search": { - "num_requests": 0 - } - }, - "tools": [], - "top_logprobs": 0, - "top_p": 1.0, - "truncation": "disabled", - "usage": { - "input_tokens": 186, - "input_tokens_details": { - "cache_write_tokens": 0, - "cached_tokens": 0 - }, - "output_tokens": 771, - "output_tokens_details": { - "reasoning_tokens": 576 - }, - "total_tokens": 957 - }, - "user": null, - "metadata": {} -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-1967c8c76482.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-1967c8c76482.txt index 12d45249..3cb50f9c 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-1967c8c76482.txt +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-1967c8c76482.txt @@ -1,1137 +1,1380 @@ event: response.created -data: {"type":"response.created","response":{"id":"resp_0c8728fafbb9b29a016a95bca39a6487d09ef7b8d2c17010ff","object":"response","created_at":1788198051,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-2024-08-06","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":false,"temperature":0.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"web_search_preview","search_content_types":["text"],"search_context_size":"medium","user_location":{"type":"approximate","city":null,"country":"US","region":null,"timezone":null}}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} +data: {"type":"response.created","response":{"id":"resp_0129a7d740a713fc016aeebb37174487d0922f8c36f490f7e0","object":"response","created_at":1794030391,"status":"in_progress","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"image":{"context_compression":"disabled"},"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-2024-08-06","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":false,"temperature":0.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"web_search_preview","search_content_types":["text"],"search_context_size":"medium","user_location":{"type":"approximate","city":null,"country":"US","region":null,"timezone":null}}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} event: response.in_progress -data: {"type":"response.in_progress","response":{"id":"resp_0c8728fafbb9b29a016a95bca39a6487d09ef7b8d2c17010ff","object":"response","created_at":1788198051,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-2024-08-06","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":false,"temperature":0.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"web_search_preview","search_content_types":["text"],"search_context_size":"medium","user_location":{"type":"approximate","city":null,"country":"US","region":null,"timezone":null}}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} +data: {"type":"response.in_progress","response":{"id":"resp_0129a7d740a713fc016aeebb37174487d0922f8c36f490f7e0","object":"response","created_at":1794030391,"status":"in_progress","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"image":{"context_compression":"disabled"},"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-2024-08-06","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":false,"temperature":0.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"web_search_preview","search_content_types":["text"],"search_context_size":"medium","user_location":{"type":"approximate","city":null,"country":"US","region":null,"timezone":null}}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} event: response.output_item.added -data: {"type":"response.output_item.added","item":{"id":"ws_0c8728fafbb9b29a016a95bca4670087d0b492e2fa72d76e7e","type":"web_search_call","status":"in_progress","action":{"type":"search"}},"output_index":0,"sequence_number":2} +data: {"type":"response.output_item.added","item":{"id":"ws_0129a7d740a713fc016aeebb37cf0c87d09cf5b9c6518a3527","type":"web_search_call","status":"in_progress","action":{"type":"search"}},"output_index":0,"sequence_number":2} event: response.web_search_call.in_progress -data: {"type":"response.web_search_call.in_progress","item_id":"ws_0c8728fafbb9b29a016a95bca4670087d0b492e2fa72d76e7e","output_index":0,"sequence_number":3} +data: {"type":"response.web_search_call.in_progress","item_id":"ws_0129a7d740a713fc016aeebb37cf0c87d09cf5b9c6518a3527","output_index":0,"sequence_number":3} event: response.web_search_call.searching -data: {"type":"response.web_search_call.searching","item_id":"ws_0c8728fafbb9b29a016a95bca4670087d0b492e2fa72d76e7e","output_index":0,"sequence_number":4} +data: {"type":"response.web_search_call.searching","item_id":"ws_0129a7d740a713fc016aeebb37cf0c87d09cf5b9c6518a3527","output_index":0,"sequence_number":4} event: response.web_search_call.completed -data: {"type":"response.web_search_call.completed","item_id":"ws_0c8728fafbb9b29a016a95bca4670087d0b492e2fa72d76e7e","output_index":0,"sequence_number":5} +data: {"type":"response.web_search_call.completed","item_id":"ws_0129a7d740a713fc016aeebb37cf0c87d09cf5b9c6518a3527","output_index":0,"sequence_number":5} event: response.output_item.done -data: {"type":"response.output_item.done","item":{"id":"ws_0c8728fafbb9b29a016a95bca4670087d0b492e2fa72d76e7e","type":"web_search_call","status":"completed","action":{"type":"search","queries":["Moderna news October 2023"],"query":"Moderna news October 2023"}},"output_index":0,"sequence_number":6} +data: {"type":"response.output_item.done","item":{"id":"ws_0129a7d740a713fc016aeebb37cf0c87d09cf5b9c6518a3527","type":"web_search_call","status":"completed","action":{"type":"search","queries":["Moderna news October 2023"],"query":"Moderna news October 2023"}},"output_index":0,"sequence_number":6} event: response.output_item.added -data: {"type":"response.output_item.added","item":{"id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":1,"sequence_number":7} +data: {"type":"response.output_item.added","item":{"id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":1,"sequence_number":7} event: response.content_part.added -data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","output_index":1,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":8} +data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","output_index":1,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":8} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"Mod","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"t9Aji94nhIwqz","output_index":1,"sequence_number":9} +data: {"type":"response.output_text.delta","content_index":0,"delta":"Mod","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"iRbxOqCMSpFET","output_index":1,"sequence_number":9} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"erna","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"herOl87tRgna","output_index":1,"sequence_number":10} +data: {"type":"response.output_text.delta","content_index":0,"delta":"erna","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"hYbLAbnTZqsx","output_index":1,"sequence_number":10} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" has","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"c7XUWqgu4YVI","output_index":1,"sequence_number":11} +data: {"type":"response.output_text.delta","content_index":0,"delta":" has","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"ajuVVXld0vY3","output_index":1,"sequence_number":11} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" recently","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"vXcJJpK","output_index":1,"sequence_number":12} +data: {"type":"response.output_text.delta","content_index":0,"delta":" recently","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"3AmVkV1","output_index":1,"sequence_number":12} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" achieved","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"XMRFKYN","output_index":1,"sequence_number":13} +data: {"type":"response.output_text.delta","content_index":0,"delta":" achieved","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"KWsSOsz","output_index":1,"sequence_number":13} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" significant","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"LQUQ","output_index":1,"sequence_number":14} +data: {"type":"response.output_text.delta","content_index":0,"delta":" significant","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"eQ8n","output_index":1,"sequence_number":14} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" milestones","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"TG0BK","output_index":1,"sequence_number":15} +data: {"type":"response.output_text.delta","content_index":0,"delta":" milestones","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"USvfb","output_index":1,"sequence_number":15} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" in","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"t7jhi68AvQfIR","output_index":1,"sequence_number":16} +data: {"type":"response.output_text.delta","content_index":0,"delta":" across","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"KuYsAIUXr","output_index":1,"sequence_number":16} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" both","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"WTVwlMZXU83","output_index":1,"sequence_number":17} +data: {"type":"response.output_text.delta","content_index":0,"delta":" its","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"kw51253mQ92D","output_index":1,"sequence_number":17} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" oncology","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"xsQtFSd","output_index":1,"sequence_number":18} +data: {"type":"response.output_text.delta","content_index":0,"delta":" financial","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"FXB0wr","output_index":1,"sequence_number":18} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"SQHRJKOWsC2v","output_index":1,"sequence_number":19} +data: {"type":"response.output_text.delta","content_index":0,"delta":" performance","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"eVrM","output_index":1,"sequence_number":19} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" infectious","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"tE9gr","output_index":1,"sequence_number":20} +data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"8fgGlrKI4beq3Uz","output_index":1,"sequence_number":20} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" disease","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"awVYE1mq","output_index":1,"sequence_number":21} +data: {"type":"response.output_text.delta","content_index":0,"delta":" product","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"gEygtWdd","output_index":1,"sequence_number":21} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" treatments","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"91L6W","output_index":1,"sequence_number":22} +data: {"type":"response.output_text.delta","content_index":0,"delta":" approvals","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"cG20ez","output_index":1,"sequence_number":22} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":":","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"yRtG9zx5cS5jqCE","output_index":1,"sequence_number":23} +data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"ja8wYUWQvHn8kNb","output_index":1,"sequence_number":23} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"aNn28OklLapxiuk","output_index":1,"sequence_number":24} +data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"5HPVjNztKwQY","output_index":1,"sequence_number":24} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"\n**","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"eq2rhfQYMEROQ","output_index":1,"sequence_number":25} +data: {"type":"response.output_text.delta","content_index":0,"delta":" research","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"P2sy9QN","output_index":1,"sequence_number":25} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"Adv","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"cAABKk62x7h21","output_index":1,"sequence_number":26} +data: {"type":"response.output_text.delta","content_index":0,"delta":" developments","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"AJX","output_index":1,"sequence_number":26} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"ancements","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"8DnJwlW","output_index":1,"sequence_number":27} +data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"65HmOks7dypL9x3","output_index":1,"sequence_number":27} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" in","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"ZeRRuapLQeAwj","output_index":1,"sequence_number":28} +data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"ot0g8EkFIEeKKLf","output_index":1,"sequence_number":28} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Cancer","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"3x0ZKYm1L","output_index":1,"sequence_number":29} +data: {"type":"response.output_text.delta","content_index":0,"delta":"\n**","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"3GqOWYSnMlExP","output_index":1,"sequence_number":29} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Treatment","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"qhOpKY","output_index":1,"sequence_number":30} +data: {"type":"response.output_text.delta","content_index":0,"delta":"Financial","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"Jh5yGK1","output_index":1,"sequence_number":30} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"**\n","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"kP4epnW0JPfG8","output_index":1,"sequence_number":31} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Performance","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"08l8","output_index":1,"sequence_number":31} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"l2A4IRrNaeOnE4Q","output_index":1,"sequence_number":32} +data: {"type":"response.output_text.delta","content_index":0,"delta":":","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"A1VuINEa6YSk1VY","output_index":1,"sequence_number":32} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"Mod","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"MQS8HHinjVgyo","output_index":1,"sequence_number":33} +data: {"type":"response.output_text.delta","content_index":0,"delta":"**","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"BmzKue9p6aDZPu","output_index":1,"sequence_number":33} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"erna","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"74JiAVZME1ru","output_index":1,"sequence_number":34} +data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"axu8blZONzJ3WXq","output_index":1,"sequence_number":34} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"15AkJaI1km88u3D","output_index":1,"sequence_number":35} +data: {"type":"response.output_text.delta","content_index":0,"delta":"In","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"CL7JkCHJNz91c1","output_index":1,"sequence_number":35} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" in","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"KtsWrKA8eEvd6","output_index":1,"sequence_number":36} +data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"LD68yTlWB6aK","output_index":1,"sequence_number":36} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" collaboration","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"D3","output_index":1,"sequence_number":37} +data: {"type":"response.output_text.delta","content_index":0,"delta":" third","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"c6cPzgongh","output_index":1,"sequence_number":37} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" with","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"6sMu8w0qmpI","output_index":1,"sequence_number":38} +data: {"type":"response.output_text.delta","content_index":0,"delta":" quarter","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"kLBW50bb","output_index":1,"sequence_number":38} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Mer","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"dSXweV5uFkGB","output_index":1,"sequence_number":39} +data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"im1L5YhRpIMaC","output_index":1,"sequence_number":39} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"ck","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"vX3fNShdYsixHV","output_index":1,"sequence_number":40} +data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"ea85h0mbLkl3yxj","output_index":1,"sequence_number":40} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"jjkmebGlyfSe5OM","output_index":1,"sequence_number":41} +data: {"type":"response.output_text.delta","content_index":0,"delta":"202","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"56m9017L3A78P","output_index":1,"sequence_number":41} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" announced","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"rmem1T","output_index":1,"sequence_number":42} +data: {"type":"response.output_text.delta","content_index":0,"delta":"6","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"IiIyg4wsGh6K1io","output_index":1,"sequence_number":42} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" promising","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"ZZKRcQ","output_index":1,"sequence_number":43} +data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"7JWknjMQ3mgov9Z","output_index":1,"sequence_number":43} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" results","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"mKTvCtIn","output_index":1,"sequence_number":44} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Moderna","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"PbAS1CvD","output_index":1,"sequence_number":44} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" from","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"umWruEci4Ai","output_index":1,"sequence_number":45} +data: {"type":"response.output_text.delta","content_index":0,"delta":" reported","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"PEWYE4O","output_index":1,"sequence_number":45} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" a","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"pzvfrLS9lq7kUT","output_index":1,"sequence_number":46} +data: {"type":"response.output_text.delta","content_index":0,"delta":" a","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"Xe96PmRI9BScz4","output_index":1,"sequence_number":46} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" late","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"dPf5hpYmfrn","output_index":1,"sequence_number":47} +data: {"type":"response.output_text.delta","content_index":0,"delta":" revenue","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"Pwqzaa5o","output_index":1,"sequence_number":47} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"-stage","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"7RkX10wFLr","output_index":1,"sequence_number":48} +data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"jopYB9fJqYsSz","output_index":1,"sequence_number":48} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" clinical","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"ikONZsd","output_index":1,"sequence_number":49} +data: {"type":"response.output_text.delta","content_index":0,"delta":" $","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"tiKUNPuilQwomQ","output_index":1,"sequence_number":49} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" trial","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"ysPIeWZ9a3","output_index":1,"sequence_number":50} +data: {"type":"response.output_text.delta","content_index":0,"delta":"1","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"ZfHMnsJLz8xqe1h","output_index":1,"sequence_number":50} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"i0Qa5qn8CSElK","output_index":1,"sequence_number":51} +data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"W7rqI99oVlxo4DK","output_index":1,"sequence_number":51} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" their","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"HRnX5Hzfnj","output_index":1,"sequence_number":52} +data: {"type":"response.output_text.delta","content_index":0,"delta":"3","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"4PvB8cm84USGt03","output_index":1,"sequence_number":52} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" personalized","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"UMD","output_index":1,"sequence_number":53} +data: {"type":"response.output_text.delta","content_index":0,"delta":" billion","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"AeCmsolO","output_index":1,"sequence_number":53} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" m","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"NPD1etRzu8SF1C","output_index":1,"sequence_number":54} +data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"Jx5z1LzHFgDM17I","output_index":1,"sequence_number":54} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"RNA","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"OHcgaUoduXzll","output_index":1,"sequence_number":55} +data: {"type":"response.output_text.delta","content_index":0,"delta":" marking","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"ieoxEGci","output_index":1,"sequence_number":55} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"-based","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"GwtprPAeRT","output_index":1,"sequence_number":56} +data: {"type":"response.output_text.delta","content_index":0,"delta":" a","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"EyND7ZO8czN2oT","output_index":1,"sequence_number":56} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" cancer","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"SZyjiUxoc","output_index":1,"sequence_number":57} +data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"IIN5y4BiEQaSJKS","output_index":1,"sequence_number":57} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" vaccine","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"k9d5ayYg","output_index":1,"sequence_number":58} +data: {"type":"response.output_text.delta","content_index":0,"delta":"29","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"gP9cLqcJZU5k3h","output_index":1,"sequence_number":58} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"W8QUaad4RKr9STx","output_index":1,"sequence_number":59} +data: {"type":"response.output_text.delta","content_index":0,"delta":"%","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"nemZhaa98cf5DUM","output_index":1,"sequence_number":59} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" int","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"d7uMYwXV1EL6","output_index":1,"sequence_number":60} +data: {"type":"response.output_text.delta","content_index":0,"delta":" increase","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"jAU5Qke","output_index":1,"sequence_number":60} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"is","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"NlVnZn9O8zK1B1","output_index":1,"sequence_number":61} +data: {"type":"response.output_text.delta","content_index":0,"delta":" from","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"hU5v4O9iIs0","output_index":1,"sequence_number":61} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"mer","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"NJ28VcCiqHM61","output_index":1,"sequence_number":62} +data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"AIHwN4pU1shm","output_index":1,"sequence_number":62} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"an","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"DbMHpCJ1t6Dr5Q","output_index":1,"sequence_number":63} +data: {"type":"response.output_text.delta","content_index":0,"delta":" previous","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"0zRYOLO","output_index":1,"sequence_number":63} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"RDcyLm6rjcqlz8Y","output_index":1,"sequence_number":64} +data: {"type":"response.output_text.delta","content_index":0,"delta":" year","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"vqO9DppqVtA","output_index":1,"sequence_number":64} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" combined","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"5575b1z","output_index":1,"sequence_number":65} +data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"FWARXJWpcuTWCK6","output_index":1,"sequence_number":65} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" with","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"lcie2fxsIrZ","output_index":1,"sequence_number":66} +data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"hwa6knfbAwGKsT6","output_index":1,"sequence_number":66} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Mer","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"Q5zRGAOpEgaP","output_index":1,"sequence_number":67} +data: {"type":"response.output_text.delta","content_index":0,"delta":"The","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"FdV7i96dDpEsy","output_index":1,"sequence_number":67} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"ck","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"ab43oKldiBQHmp","output_index":1,"sequence_number":68} +data: {"type":"response.output_text.delta","content_index":0,"delta":" company","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"mF2jEBel","output_index":1,"sequence_number":68} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"'s","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"9pAzs0UUSOYaJI","output_index":1,"sequence_number":69} +data: {"type":"response.output_text.delta","content_index":0,"delta":" returned","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"YCZKiN6","output_index":1,"sequence_number":69} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" immun","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"xiwer6DWjU","output_index":1,"sequence_number":70} +data: {"type":"response.output_text.delta","content_index":0,"delta":" to","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"TItcrc8697kqf","output_index":1,"sequence_number":70} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"otherapy","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"cawQ5T4B","output_index":1,"sequence_number":71} +data: {"type":"response.output_text.delta","content_index":0,"delta":" profitability","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"Eu","output_index":1,"sequence_number":71} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" drug","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"cZ79u3I3DDU","output_index":1,"sequence_number":72} +data: {"type":"response.output_text.delta","content_index":0,"delta":" with","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"O07gy83pnzr","output_index":1,"sequence_number":72} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Key","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"aPNZiWK7S7ps","output_index":1,"sequence_number":73} +data: {"type":"response.output_text.delta","content_index":0,"delta":" a","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"Ti5sroBqkEeue0","output_index":1,"sequence_number":73} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"tr","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"E1AMDWVcXEvpyW","output_index":1,"sequence_number":74} +data: {"type":"response.output_text.delta","content_index":0,"delta":" net","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"DlsFNUTu5HbM","output_index":1,"sequence_number":74} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"uda","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"JDg88bXHu6nUf","output_index":1,"sequence_number":75} +data: {"type":"response.output_text.delta","content_index":0,"delta":" income","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"JYrCZScJn","output_index":1,"sequence_number":75} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"Uiz0emWdqdclKgY","output_index":1,"sequence_number":76} +data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"DzLPvEdHKouKh","output_index":1,"sequence_number":76} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"d5jc0fD0taKvdve","output_index":1,"sequence_number":77} +data: {"type":"response.output_text.delta","content_index":0,"delta":" $","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"TFv1qhhu3UhJN2","output_index":1,"sequence_number":77} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"This","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"cBmgvtqdRV6X","output_index":1,"sequence_number":78} +data: {"type":"response.output_text.delta","content_index":0,"delta":"162","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"NkOsMZhqqWlT0","output_index":1,"sequence_number":78} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" combination","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"0S8E","output_index":1,"sequence_number":79} +data: {"type":"response.output_text.delta","content_index":0,"delta":" million","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"7InIy1jx","output_index":1,"sequence_number":79} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" significantly","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"8X","output_index":1,"sequence_number":80} +data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"cUI62oH63gUZ60K","output_index":1,"sequence_number":80} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" reduced","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"fWQHIW8V","output_index":1,"sequence_number":81} +data: {"type":"response.output_text.delta","content_index":0,"delta":" a","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"6aVjKfe1tuAv8n","output_index":1,"sequence_number":81} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"61qJVS8d9PiM","output_index":1,"sequence_number":82} +data: {"type":"response.output_text.delta","content_index":0,"delta":" notable","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"3YXWDtJc","output_index":1,"sequence_number":82} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" recurrence","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"O028I","output_index":1,"sequence_number":83} +data: {"type":"response.output_text.delta","content_index":0,"delta":" turnaround","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"Kshmk","output_index":1,"sequence_number":83} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"XusYgT4P2noT","output_index":1,"sequence_number":84} +data: {"type":"response.output_text.delta","content_index":0,"delta":" from","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"MvwIjKMWP8F","output_index":1,"sequence_number":84} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" spread","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"Y0u3D0iPE","output_index":1,"sequence_number":85} +data: {"type":"response.output_text.delta","content_index":0,"delta":" a","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"s0PdXvE60uw94b","output_index":1,"sequence_number":85} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"aQHrM3P7h2ctn","output_index":1,"sequence_number":86} +data: {"type":"response.output_text.delta","content_index":0,"delta":" $","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"4cvpXtbNAD0zON","output_index":1,"sequence_number":86} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" high","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"1Y3hs507YJC","output_index":1,"sequence_number":87} +data: {"type":"response.output_text.delta","content_index":0,"delta":"200","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"MyzcpFsy1vfX6","output_index":1,"sequence_number":87} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"-risk","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"eeF0HpyAQlv","output_index":1,"sequence_number":88} +data: {"type":"response.output_text.delta","content_index":0,"delta":" million","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"fXMpvnWL","output_index":1,"sequence_number":88} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" melanoma","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"TZu0hco","output_index":1,"sequence_number":89} +data: {"type":"response.output_text.delta","content_index":0,"delta":" loss","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"FSvXfthMfFf","output_index":1,"sequence_number":89} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" in","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"bHnyKxaQCHGPm","output_index":1,"sequence_number":90} +data: {"type":"response.output_text.delta","content_index":0,"delta":" in","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"cR4Jr4HiVmT9B","output_index":1,"sequence_number":90} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" patients","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"JQqjexc","output_index":1,"sequence_number":91} +data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"xIY2YmWiBrRz","output_index":1,"sequence_number":91} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" who","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"X2V5isasG1EN","output_index":1,"sequence_number":92} +data: {"type":"response.output_text.delta","content_index":0,"delta":" same","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"mG5BTVKapwY","output_index":1,"sequence_number":92} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" had","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"tvvh5EM4bnfZ","output_index":1,"sequence_number":93} +data: {"type":"response.output_text.delta","content_index":0,"delta":" quarter","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"kv5repgk","output_index":1,"sequence_number":93} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" undergone","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"585K5W","output_index":1,"sequence_number":94} +data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"044NUaGBPC7Gn","output_index":1,"sequence_number":94} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" surgery","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"Y1aEUd4N","output_index":1,"sequence_number":95} +data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"zkb2gs3ec5UoNd7","output_index":1,"sequence_number":95} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"O3IHF6wJtyRxKv8","output_index":1,"sequence_number":96} +data: {"type":"response.output_text.delta","content_index":0,"delta":"202","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"DX0ipyC7MsOkp","output_index":1,"sequence_number":96} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"ivY3uuFWeIL3l2M","output_index":1,"sequence_number":97} +data: {"type":"response.output_text.delta","content_index":0,"delta":"5","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"sJd5Hrn4CVQfpBZ","output_index":1,"sequence_number":97} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"This","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"2YHyoeYmSYhW","output_index":1,"sequence_number":98} +data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"rjjgzimNbxglW0k","output_index":1,"sequence_number":98} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" marks","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"tUCy4IJHVi","output_index":1,"sequence_number":99} +data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"6rwloT4AWMF7s9c","output_index":1,"sequence_number":99} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"59ZcltuChWPk","output_index":1,"sequence_number":100} +data: {"type":"response.output_text.delta","content_index":0,"delta":"E","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"rZBn4w27zCs4S4S","output_index":1,"sequence_number":100} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" first","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"58D9LdDeZX","output_index":1,"sequence_number":101} +data: {"type":"response.output_text.delta","content_index":0,"delta":"arnings","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"rSj8YCnMy","output_index":1,"sequence_number":101} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" successful","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"lIfCd","output_index":1,"sequence_number":102} +data: {"type":"response.output_text.delta","content_index":0,"delta":" per","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"j3kTB48mDYrX","output_index":1,"sequence_number":102} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" late","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"UnhAiNwCAm6","output_index":1,"sequence_number":103} +data: {"type":"response.output_text.delta","content_index":0,"delta":" share","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"yI8XisCZXZ","output_index":1,"sequence_number":103} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"-stage","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"fhZO40KWj1","output_index":1,"sequence_number":104} +data: {"type":"response.output_text.delta","content_index":0,"delta":" were","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"tO5omRpWvXO","output_index":1,"sequence_number":104} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" trial","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"k5uLpxvzqd","output_index":1,"sequence_number":105} +data: {"type":"response.output_text.delta","content_index":0,"delta":" $","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"wDboSM15DznRtB","output_index":1,"sequence_number":105} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"w8yvzDAdM4Q0V","output_index":1,"sequence_number":106} +data: {"type":"response.output_text.delta","content_index":0,"delta":"0","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"msYzjZifVvXW45x","output_index":1,"sequence_number":106} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" a","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"yPZagbRFeqyoqt","output_index":1,"sequence_number":107} +data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"CRGc5uPipx0DKxI","output_index":1,"sequence_number":107} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" personalized","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"L5v","output_index":1,"sequence_number":108} +data: {"type":"response.output_text.delta","content_index":0,"delta":"38","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"oYQg4e3jWyKOLT","output_index":1,"sequence_number":108} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" m","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"6xnF3epeRFzcnS","output_index":1,"sequence_number":109} +data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"Eq4QQI7V6NtmYfy","output_index":1,"sequence_number":109} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"RNA","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"HbjdTM4aGwIMA","output_index":1,"sequence_number":110} +data: {"type":"response.output_text.delta","content_index":0,"delta":" compared","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"XcBvLeL","output_index":1,"sequence_number":110} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" cancer","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"oP0DHn3P3","output_index":1,"sequence_number":111} +data: {"type":"response.output_text.delta","content_index":0,"delta":" to","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"T6nlVp8vhW1uF","output_index":1,"sequence_number":111} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" therapy","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"WT6YMs8L","output_index":1,"sequence_number":112} +data: {"type":"response.output_text.delta","content_index":0,"delta":" a","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"exddk5y82APgHs","output_index":1,"sequence_number":112} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"goTWq6o5cWWh3xY","output_index":1,"sequence_number":113} +data: {"type":"response.output_text.delta","content_index":0,"delta":" loss","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"g8ijdyoFCUT","output_index":1,"sequence_number":113} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" potentially","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"Lt2I","output_index":1,"sequence_number":114} +data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"9i7hKHjD4XLzt","output_index":1,"sequence_number":114} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" opening","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"toUDxlN8","output_index":1,"sequence_number":115} +data: {"type":"response.output_text.delta","content_index":0,"delta":" $","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"ccJgBgl1u0ABuy","output_index":1,"sequence_number":115} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" new","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"iaXrQqnXFPLX","output_index":1,"sequence_number":116} +data: {"type":"response.output_text.delta","content_index":0,"delta":"0","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"pqUqYuOnK8wqNVP","output_index":1,"sequence_number":116} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" avenues","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"FNqRPAqO","output_index":1,"sequence_number":117} +data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"vhIq0N7SRathxbX","output_index":1,"sequence_number":117} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" for","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"41AKMFnaKTjT","output_index":1,"sequence_number":118} +data: {"type":"response.output_text.delta","content_index":0,"delta":"51","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"D8fQjHbcP2Vkkz","output_index":1,"sequence_number":118} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" treating","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"jWbhzLu","output_index":1,"sequence_number":119} +data: {"type":"response.output_text.delta","content_index":0,"delta":" per","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"mEj3RNtKs5LL","output_index":1,"sequence_number":119} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" melanoma","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"esNIFiu","output_index":1,"sequence_number":120} +data: {"type":"response.output_text.delta","content_index":0,"delta":" share","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"AGuVXgnI5F","output_index":1,"sequence_number":120} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"28oHY0MoQYKE","output_index":1,"sequence_number":121} +data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"ZUSNCIuSH2Mq","output_index":1,"sequence_number":121} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" other","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"yJNqnJux1x","output_index":1,"sequence_number":122} +data: {"type":"response.output_text.delta","content_index":0,"delta":" previous","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"iPd4XcI","output_index":1,"sequence_number":122} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" cancers","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"d2aJcb0z","output_index":1,"sequence_number":123} +data: {"type":"response.output_text.delta","content_index":0,"delta":" year","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"0ATLVrwkPV6","output_index":1,"sequence_number":123} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"3f8tP3WCkGvX4GQ","output_index":1,"sequence_number":124} +data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"btnYu92ZTvtnBFY","output_index":1,"sequence_number":124} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"xOmJCdLbCFr7kPX","output_index":1,"sequence_number":125} +data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"sNuiDlikjd8Of8L","output_index":1,"sequence_number":125} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"([theweek.com](https://theweek.com/health/moderna-says-skin-cancer-vaccine-success?utm_source=openai))","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"aRTvUEfDU5","output_index":1,"sequence_number":126} +data: {"type":"response.output_text.delta","content_index":0,"delta":"Mod","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"wqHZYSd3sfRZF","output_index":1,"sequence_number":126} -event: response.output_text.annotation.added -data: {"type":"response.output_text.annotation.added","annotation":{"type":"url_citation","end_index":744,"start_index":642,"title":"Moderna says skin cancer vaccine trial a success","url":"https://theweek.com/health/moderna-says-skin-cancer-vaccine-success?utm_source=openai"},"annotation_index":0,"content_index":0,"item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","output_index":1,"sequence_number":127} +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":"erna","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"aP2GZa5CHELi","output_index":1,"sequence_number":127} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"NOSNK0m12KcxAsc","output_index":1,"sequence_number":128} +data: {"type":"response.output_text.delta","content_index":0,"delta":" has","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"0bflvIz1ecv6","output_index":1,"sequence_number":128} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"\n**","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"1pH980aQLqEVb","output_index":1,"sequence_number":129} +data: {"type":"response.output_text.delta","content_index":0,"delta":" also","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"lzdoLPavcp8","output_index":1,"sequence_number":129} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"Approval","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"cU77y8X4","output_index":1,"sequence_number":130} +data: {"type":"response.output_text.delta","content_index":0,"delta":" raised","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"Tm6dHnSuF","output_index":1,"sequence_number":130} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"S073mdTXcBqHa","output_index":1,"sequence_number":131} +data: {"type":"response.output_text.delta","content_index":0,"delta":" its","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"EYQW4BlOwAr7","output_index":1,"sequence_number":131} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" m","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"ENdQOl91MjWUT0","output_index":1,"sequence_number":132} +data: {"type":"response.output_text.delta","content_index":0,"delta":" full","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"YFLf5gbRNNq","output_index":1,"sequence_number":132} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"RNA","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"jDeSeNUsH9HTe","output_index":1,"sequence_number":133} +data: {"type":"response.output_text.delta","content_index":0,"delta":"-year","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"8aeZOcZx0Eb","output_index":1,"sequence_number":133} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"-Based","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"hLZN1BE9iO","output_index":1,"sequence_number":134} +data: {"type":"response.output_text.delta","content_index":0,"delta":" revenue","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"kJlM2vae","output_index":1,"sequence_number":134} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Flu","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"LAIbaOJAX7Za","output_index":1,"sequence_number":135} +data: {"type":"response.output_text.delta","content_index":0,"delta":" growth","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"InoyOt4tg","output_index":1,"sequence_number":135} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Vaccine","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"1czyAwpA","output_index":1,"sequence_number":136} +data: {"type":"response.output_text.delta","content_index":0,"delta":" outlook","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"RZ3qDhtf","output_index":1,"sequence_number":136} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"**\n","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"pZjhfYoxi911t","output_index":1,"sequence_number":137} +data: {"type":"response.output_text.delta","content_index":0,"delta":" to","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"13imQHv9tngtC","output_index":1,"sequence_number":137} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"fZsCIGkSkoMFy9y","output_index":1,"sequence_number":138} +data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"vM9CuodByyGRhFP","output_index":1,"sequence_number":138} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"The","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"oL1ffLGv6KsSo","output_index":1,"sequence_number":139} +data: {"type":"response.output_text.delta","content_index":0,"delta":"15","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"P3AqNeeJvjeFtK","output_index":1,"sequence_number":139} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" U","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"0kgJdqFG7YEGeo","output_index":1,"sequence_number":140} +data: {"type":"response.output_text.delta","content_index":0,"delta":"%-","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"8z1TnepFXieV7E","output_index":1,"sequence_number":140} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":".S","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"vdrfBqqi1IFRAD","output_index":1,"sequence_number":141} +data: {"type":"response.output_text.delta","content_index":0,"delta":"25","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"j34TkLWdrAF1gH","output_index":1,"sequence_number":141} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"a1Smvg5iFIvc0Rk","output_index":1,"sequence_number":142} +data: {"type":"response.output_text.delta","content_index":0,"delta":"%,","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"WW4EIDmIsBuBIg","output_index":1,"sequence_number":142} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Food","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"GZptPY0o0fo","output_index":1,"sequence_number":143} +data: {"type":"response.output_text.delta","content_index":0,"delta":" up","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"tMjzpS8J4wHfr","output_index":1,"sequence_number":143} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"vOwyi3vR91rk","output_index":1,"sequence_number":144} +data: {"type":"response.output_text.delta","content_index":0,"delta":" from","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"BysNGkcfom9","output_index":1,"sequence_number":144} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Drug","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"TVtUKKeXk9j","output_index":1,"sequence_number":145} +data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"ag1tS3dSqQcd","output_index":1,"sequence_number":145} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Administration","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"r","output_index":1,"sequence_number":146} +data: {"type":"response.output_text.delta","content_index":0,"delta":" earlier","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"8QbHA2dD","output_index":1,"sequence_number":146} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" (","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"ohAg0l8J8pQXLe","output_index":1,"sequence_number":147} +data: {"type":"response.output_text.delta","content_index":0,"delta":" estimate","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"cYc4wjk","output_index":1,"sequence_number":147} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"FDA","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"D0r8wLLONYL1S","output_index":1,"sequence_number":148} +data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"4j1YpXLDCKl1g","output_index":1,"sequence_number":148} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":")","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"g7cH3agj01uUXwQ","output_index":1,"sequence_number":149} +data: {"type":"response.output_text.delta","content_index":0,"delta":" up","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"5mORPGm4OhsuW","output_index":1,"sequence_number":149} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" approved","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"UiKLn4o","output_index":1,"sequence_number":150} +data: {"type":"response.output_text.delta","content_index":0,"delta":" to","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"9KYhimnlzZ5LY","output_index":1,"sequence_number":150} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Moderna","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"K64scZNE","output_index":1,"sequence_number":151} +data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"dRqpp143WNMngcN","output_index":1,"sequence_number":151} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"'s","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"mAwRGVQWBk3zWo","output_index":1,"sequence_number":152} +data: {"type":"response.output_text.delta","content_index":0,"delta":"10","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"NqtSKBfnh4P65f","output_index":1,"sequence_number":152} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" m","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"NhyJEQeJFR0URJ","output_index":1,"sequence_number":153} +data: {"type":"response.output_text.delta","content_index":0,"delta":"%.","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"4lUDvX9wZBWEus","output_index":1,"sequence_number":153} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"RNA","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"oVxtTEabdW573","output_index":1,"sequence_number":154} +data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"daAVLQGVQkCvfFY","output_index":1,"sequence_number":154} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"-based","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"OsZW1jOtQN","output_index":1,"sequence_number":155} +data: {"type":"response.output_text.delta","content_index":0,"delta":"([stocktitan.net](https://www.stocktitan.net/news/MRNA/moderna-reports-third-quarter-2026-financial-results-and-provides-9kk4tzh724ed.html?utm_source=openai))","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"h3","output_index":1,"sequence_number":155} + +event: response.output_text.annotation.added +data: {"type":"response.output_text.annotation.added","annotation":{"type":"url_citation","end_index":792,"start_index":634,"title":"Moderna Q3 earnings: revenue up 29%, outlook raised | MRNA Stock News","url":"https://www.stocktitan.net/news/MRNA/moderna-reports-third-quarter-2026-financial-results-and-provides-9kk4tzh724ed.html?utm_source=openai"},"annotation_index":0,"content_index":0,"item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","output_index":1,"sequence_number":156} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" seasonal","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"TB6jzMR","output_index":1,"sequence_number":156} +data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"1KidfaJthb8c6eJ","output_index":1,"sequence_number":157} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" flu","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"fqvNMLrhDEEt","output_index":1,"sequence_number":157} +data: {"type":"response.output_text.delta","content_index":0,"delta":"\n**","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"a0dWTLdtPDMAP","output_index":1,"sequence_number":158} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" vaccine","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"9xRPwqlA","output_index":1,"sequence_number":158} +data: {"type":"response.output_text.delta","content_index":0,"delta":"Product","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"C6JZ4fVUs","output_index":1,"sequence_number":159} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"PNwxOFdmz3kfzvk","output_index":1,"sequence_number":159} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Appro","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"56tfgYTqLH","output_index":1,"sequence_number":160} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" m","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"5g5v9HtzoSOVFB","output_index":1,"sequence_number":160} +data: {"type":"response.output_text.delta","content_index":0,"delta":"vals","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"PsOG4Nl1wGMH","output_index":1,"sequence_number":161} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"Fl","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"jlr3iv2pvRWbbg","output_index":1,"sequence_number":161} +data: {"type":"response.output_text.delta","content_index":0,"delta":":","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"zcmox3bQsIncwoO","output_index":1,"sequence_number":162} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"us","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"o6yZrwie8D4zAn","output_index":1,"sequence_number":162} +data: {"type":"response.output_text.delta","content_index":0,"delta":"**","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"QY2AityAWEfeda","output_index":1,"sequence_number":163} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"iva","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"eGzZt3VE4cUUd","output_index":1,"sequence_number":163} +data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"MXT0C7jzHebvRjy","output_index":1,"sequence_number":164} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" (","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"CaiEPBRPRSNxog","output_index":1,"sequence_number":164} +data: {"type":"response.output_text.delta","content_index":0,"delta":"Health","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"pFJPfTgD09","output_index":1,"sequence_number":165} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"m","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"8tCB3fPH2PnhEUu","output_index":1,"sequence_number":165} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Canada","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"sUdm2U5HR","output_index":1,"sequence_number":166} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"RNA","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"sryxjhZeLR3ME","output_index":1,"sequence_number":166} +data: {"type":"response.output_text.delta","content_index":0,"delta":" has","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"WAt5ldO7i3HX","output_index":1,"sequence_number":167} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"-","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"XN9D8mTRGW3NSZa","output_index":1,"sequence_number":167} +data: {"type":"response.output_text.delta","content_index":0,"delta":" authorized","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"ee5g4","output_index":1,"sequence_number":168} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"101","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"KGPRW76F7ER9c","output_index":1,"sequence_number":168} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Moderna","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"fhHMOhLw","output_index":1,"sequence_number":169} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"0","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"0bThJhHK5kSVRyw","output_index":1,"sequence_number":169} +data: {"type":"response.output_text.delta","content_index":0,"delta":"'s","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"9eDbAEX78P0RHS","output_index":1,"sequence_number":170} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"),","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"Ht0Et5XoqNoZpf","output_index":1,"sequence_number":170} +data: {"type":"response.output_text.delta","content_index":0,"delta":" m","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"tGDnhnBfUph2ip","output_index":1,"sequence_number":171} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" for","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"TdkCMAka0ezX","output_index":1,"sequence_number":171} +data: {"type":"response.output_text.delta","content_index":0,"delta":"RNA","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"V5iMizfAz8Yag","output_index":1,"sequence_number":172} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" individuals","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"wkli","output_index":1,"sequence_number":172} +data: {"type":"response.output_text.delta","content_index":0,"delta":"-based","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"1vztpxgseY","output_index":1,"sequence_number":173} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" aged","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"Xz9NBDhtd8x","output_index":1,"sequence_number":173} +data: {"type":"response.output_text.delta","content_index":0,"delta":" seasonal","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"8XSMiep","output_index":1,"sequence_number":174} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"DuAW5MbZlkJth0u","output_index":1,"sequence_number":174} +data: {"type":"response.output_text.delta","content_index":0,"delta":" influenza","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"tGwh8c","output_index":1,"sequence_number":175} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"50","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"ZfpczCn5KqtoDB","output_index":1,"sequence_number":175} +data: {"type":"response.output_text.delta","content_index":0,"delta":" vaccine","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"WFEpDzHw","output_index":1,"sequence_number":176} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"4vf2YN2MPsmW","output_index":1,"sequence_number":176} +data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"TT0231VRJ1T9vig","output_index":1,"sequence_number":177} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" older","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"ye2Gb5c2SL","output_index":1,"sequence_number":177} +data: {"type":"response.output_text.delta","content_index":0,"delta":" m","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"2a6CnDeFGfFGFB","output_index":1,"sequence_number":178} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"DCL2B4Us6106nBy","output_index":1,"sequence_number":178} +data: {"type":"response.output_text.delta","content_index":0,"delta":"FL","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"hjz1X3Q0SSGuP0","output_index":1,"sequence_number":179} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"BHGCaOtICSyjJxo","output_index":1,"sequence_number":179} +data: {"type":"response.output_text.delta","content_index":0,"delta":"US","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"mEgFzbYMk8wI5V","output_index":1,"sequence_number":180} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"This","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"hZpqkLnyWk2B","output_index":1,"sequence_number":180} +data: {"type":"response.output_text.delta","content_index":0,"delta":"IVA","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"yE0OLbvt83zpa","output_index":1,"sequence_number":181} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" vaccine","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"laIEG1R5","output_index":1,"sequence_number":181} +data: {"type":"response.output_text.delta","content_index":0,"delta":"®,","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"qMtHdPqixmlPCM","output_index":1,"sequence_number":182} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" utilizes","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"4yU3pz8","output_index":1,"sequence_number":182} +data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"rQzmMJpkUQVq","output_index":1,"sequence_number":183} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"FaR3tVL4EmkS","output_index":1,"sequence_number":183} +data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"IEzPYL4NhTGv","output_index":1,"sequence_number":184} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" same","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"sMIwqqH1qBC","output_index":1,"sequence_number":184} +data: {"type":"response.output_text.delta","content_index":0,"delta":" combination","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"m8EW","output_index":1,"sequence_number":185} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" m","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"snWQc1wFg3ReSW","output_index":1,"sequence_number":185} +data: {"type":"response.output_text.delta","content_index":0,"delta":" influenza","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"USq4Fc","output_index":1,"sequence_number":186} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"RNA","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"ux2jPnIpIB0AA","output_index":1,"sequence_number":186} +data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"uTGIYzz2lPFq","output_index":1,"sequence_number":187} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" technology","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"LiaOM","output_index":1,"sequence_number":187} +data: {"type":"response.output_text.delta","content_index":0,"delta":" COVID","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"Y3hHbMAMTN","output_index":1,"sequence_number":188} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" as","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"o9B667DHCc1RK","output_index":1,"sequence_number":188} +data: {"type":"response.output_text.delta","content_index":0,"delta":"-","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"kFKLGcoTp05TC2n","output_index":1,"sequence_number":189} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Moderna","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"UiEWDmVz","output_index":1,"sequence_number":189} +data: {"type":"response.output_text.delta","content_index":0,"delta":"19","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"WfxO8CkYaTkesO","output_index":1,"sequence_number":190} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"'s","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"Gxaa6VhlPgP2wP","output_index":1,"sequence_number":190} +data: {"type":"response.output_text.delta","content_index":0,"delta":" vaccine","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"ZBnJcXrM","output_index":1,"sequence_number":191} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" COVID","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"ohTMQfIw3b","output_index":1,"sequence_number":191} +data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"HsJRKtxX44NG2e3","output_index":1,"sequence_number":192} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"-","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"KYLrTbKGaLFStCQ","output_index":1,"sequence_number":192} +data: {"type":"response.output_text.delta","content_index":0,"delta":" m","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"gg77RKTedPM8VU","output_index":1,"sequence_number":193} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"19","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"R6HmtVeauMNzzq","output_index":1,"sequence_number":193} +data: {"type":"response.output_text.delta","content_index":0,"delta":"CO","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"trqGyNduuPnkxL","output_index":1,"sequence_number":194} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" vaccine","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"WMneTI3O","output_index":1,"sequence_number":194} +data: {"type":"response.output_text.delta","content_index":0,"delta":"FL","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"1SspR7Qh19JliA","output_index":1,"sequence_number":195} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"1fsKWFrAUeu3ExW","output_index":1,"sequence_number":195} +data: {"type":"response.output_text.delta","content_index":0,"delta":"U","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"Lxbi2MnEibAon7a","output_index":1,"sequence_number":196} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" instruct","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"xn1j6GA","output_index":1,"sequence_number":196} +data: {"type":"response.output_text.delta","content_index":0,"delta":"®.","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"vpNrb6aei6Ahfs","output_index":1,"sequence_number":197} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"ing","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"bCH7cxj5DFMT3","output_index":1,"sequence_number":197} +data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"c0YHGtiCJitkzeb","output_index":1,"sequence_number":198} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" cells","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"VKHFZnxKbQ","output_index":1,"sequence_number":198} +data: {"type":"response.output_text.delta","content_index":0,"delta":"This","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"WogWJpT2oWCV","output_index":1,"sequence_number":199} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" to","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"y9FwbcDkreiyv","output_index":1,"sequence_number":199} +data: {"type":"response.output_text.delta","content_index":0,"delta":" makes","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"MU7ZgWMfD1","output_index":1,"sequence_number":200} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" produce","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"0tIrfIAv","output_index":1,"sequence_number":200} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Canada","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"rGNb6Gfdr","output_index":1,"sequence_number":201} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"8BWqBrYERSZX","output_index":1,"sequence_number":201} +data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"R5rw7VMtRUnn","output_index":1,"sequence_number":202} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" hem","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"jo8G16dw3Avo","output_index":1,"sequence_number":202} +data: {"type":"response.output_text.delta","content_index":0,"delta":" first","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"AuZ93eJhJs","output_index":1,"sequence_number":203} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"ag","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"wyB3HUfjklhLFi","output_index":1,"sequence_number":203} +data: {"type":"response.output_text.delta","content_index":0,"delta":" country","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"E1ZzzO5a","output_index":1,"sequence_number":204} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"gl","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"oc9HUoDO1fYBr2","output_index":1,"sequence_number":204} +data: {"type":"response.output_text.delta","content_index":0,"delta":" to","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"TmkTzHwDwJYmV","output_index":1,"sequence_number":205} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"ut","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"XK87ZACTahyoVt","output_index":1,"sequence_number":205} +data: {"type":"response.output_text.delta","content_index":0,"delta":" approve","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"97Oo3aUI","output_index":1,"sequence_number":206} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"inin","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"iSNzWZ0lfFy9","output_index":1,"sequence_number":206} +data: {"type":"response.output_text.delta","content_index":0,"delta":" both","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"wRhaMkVqJTT","output_index":1,"sequence_number":207} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" (","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"TEc3dP5r3qJys3","output_index":1,"sequence_number":207} +data: {"type":"response.output_text.delta","content_index":0,"delta":" vaccines","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"zPZywvn","output_index":1,"sequence_number":208} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"HA","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"KH2W9Pu2SYzGAJ","output_index":1,"sequence_number":208} +data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"9kXfMFFaULdTC3I","output_index":1,"sequence_number":209} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":")","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"QEZbZr6dtLNp8EE","output_index":1,"sequence_number":209} +data: {"type":"response.output_text.delta","content_index":0,"delta":" expanding","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"TSHmvf","output_index":1,"sequence_number":210} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" protein","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"WfL5lsuP","output_index":1,"sequence_number":210} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Moderna","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"hM2rBtUX","output_index":1,"sequence_number":211} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" found","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"I7O6PQzjkc","output_index":1,"sequence_number":211} +data: {"type":"response.output_text.delta","content_index":0,"delta":"'s","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"JmQbEBKLiskSKJ","output_index":1,"sequence_number":212} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" on","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"rFFU5ShHJHkO6","output_index":1,"sequence_number":212} +data: {"type":"response.output_text.delta","content_index":0,"delta":" portfolio","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"Gg1HXJ","output_index":1,"sequence_number":213} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" influenza","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"tkwzvD","output_index":1,"sequence_number":213} +data: {"type":"response.output_text.delta","content_index":0,"delta":" in","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"yf0Mhxt3E2qHJ","output_index":1,"sequence_number":214} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" viruses","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"1pGImiu1","output_index":1,"sequence_number":214} +data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"zoVcdu5rHXw6","output_index":1,"sequence_number":215} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"FeW3VWkDlAJerFn","output_index":1,"sequence_number":215} +data: {"type":"response.output_text.delta","content_index":0,"delta":" infectious","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"E9hMB","output_index":1,"sequence_number":216} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" thereby","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"SApnAks7","output_index":1,"sequence_number":216} +data: {"type":"response.output_text.delta","content_index":0,"delta":" disease","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"KQ3BirKs","output_index":1,"sequence_number":217} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" enhancing","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"w9QP3n","output_index":1,"sequence_number":217} +data: {"type":"response.output_text.delta","content_index":0,"delta":" sector","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"mFLKKAKra","output_index":1,"sequence_number":218} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"Gm1uhNIjPbhu","output_index":1,"sequence_number":218} +data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"f4s100LQnOXF6lS","output_index":1,"sequence_number":219} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" immune","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"mN2rU5gmd","output_index":1,"sequence_number":219} +data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"CRJJHe5YhI1LhRN","output_index":1,"sequence_number":220} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" response","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"la2M6Li","output_index":1,"sequence_number":220} +data: {"type":"response.output_text.delta","content_index":0,"delta":"([markets.financialcontent.com](https://markets.financialcontent.com/stocks/quote/news?ChannelType=PRESSRELEASES&Symbol=nq%3Amrna&utm_source=openai))","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"yFjgl9Z2Bja","output_index":1,"sequence_number":221} + +event: response.output_text.annotation.added +data: {"type":"response.output_text.annotation.added","annotation":{"type":"url_citation","end_index":1242,"start_index":1093,"title":"FinancialContent - Latest News about Moderna, Inc. - Common Stock (Nasdaq:MRNA) | Moderna, Inc. - Common Stock (Nasdaq:MRNA) News","url":"https://markets.financialcontent.com/stocks/quote/news?ChannelType=PRESSRELEASES&Symbol=nq%3Amrna&utm_source=openai"},"annotation_index":1,"content_index":0,"item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","output_index":1,"sequence_number":222} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"pVoEA4V5xvPXkQ9","output_index":1,"sequence_number":221} +data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"32T16btc4V6C9t3","output_index":1,"sequence_number":223} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"cW7XVwtZuP9wJ00","output_index":1,"sequence_number":222} +data: {"type":"response.output_text.delta","content_index":0,"delta":"\n**","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"v7nQZSeHH105m","output_index":1,"sequence_number":224} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"Clinical","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"khMUgigZ","output_index":1,"sequence_number":223} +data: {"type":"response.output_text.delta","content_index":0,"delta":"Research","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"8ABYo9KZ","output_index":1,"sequence_number":225} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" trials","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"xUeAmzFRR","output_index":1,"sequence_number":224} +data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"q59CCRronwan","output_index":1,"sequence_number":226} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" demonstrated","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"dGy","output_index":1,"sequence_number":225} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Development","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"8PkS","output_index":1,"sequence_number":227} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" that","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"tke3laJme6o","output_index":1,"sequence_number":226} +data: {"type":"response.output_text.delta","content_index":0,"delta":":","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"pAAABPkqeM9bnZ0","output_index":1,"sequence_number":228} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" m","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"FAc3Emp9TBGT4g","output_index":1,"sequence_number":227} +data: {"type":"response.output_text.delta","content_index":0,"delta":"**","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"U1YDdAz776sVkj","output_index":1,"sequence_number":229} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"Fl","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"RiUAAclGtlib7D","output_index":1,"sequence_number":228} +data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"KWZ2iSIC9RokX5h","output_index":1,"sequence_number":230} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"us","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"uZh3s9M5mqGKJU","output_index":1,"sequence_number":229} +data: {"type":"response.output_text.delta","content_index":0,"delta":"Mod","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"uBpZFcGAtw0jH","output_index":1,"sequence_number":231} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"iva","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"Zyw0KnukVY6jw","output_index":1,"sequence_number":230} +data: {"type":"response.output_text.delta","content_index":0,"delta":"erna","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"MJTtJtF6c0RE","output_index":1,"sequence_number":232} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" was","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"ZKKGgafKQHDU","output_index":1,"sequence_number":231} +data: {"type":"response.output_text.delta","content_index":0,"delta":" is","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"SAT5GXMNVCwMs","output_index":1,"sequence_number":233} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"2V8IJOCL060UHk1","output_index":1,"sequence_number":232} +data: {"type":"response.output_text.delta","content_index":0,"delta":" advancing","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"zjiMOx","output_index":1,"sequence_number":234} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"26","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"QnvJ5zFy4Q3B37","output_index":1,"sequence_number":233} +data: {"type":"response.output_text.delta","content_index":0,"delta":" its","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"TXOkftS0Wn5Y","output_index":1,"sequence_number":235} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"z0CsSQjhxd2SUof","output_index":1,"sequence_number":234} +data: {"type":"response.output_text.delta","content_index":0,"delta":" investig","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"AraCK3K","output_index":1,"sequence_number":236} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"6","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"t4NFWC7MaPGaKyb","output_index":1,"sequence_number":235} +data: {"type":"response.output_text.delta","content_index":0,"delta":"ational","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"0lZLGPhAN","output_index":1,"sequence_number":237} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"%","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"Nw4C79sYhZPViXX","output_index":1,"sequence_number":236} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Bund","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"jMNZyWFMUVR","output_index":1,"sequence_number":238} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" more","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"gXo1PLkzQa1","output_index":1,"sequence_number":237} +data: {"type":"response.output_text.delta","content_index":0,"delta":"ib","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"5TLLUoYScjYi2i","output_index":1,"sequence_number":239} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" effective","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"B708Ll","output_index":1,"sequence_number":238} +data: {"type":"response.output_text.delta","content_index":0,"delta":"ug","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"Ycl0OQiUXhubkw","output_index":1,"sequence_number":240} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" in","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"iX2VlDYOtxFtQ","output_index":1,"sequence_number":239} +data: {"type":"response.output_text.delta","content_index":0,"delta":"yo","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"2z1ATqLw3z8Rr8","output_index":1,"sequence_number":241} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" preventing","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"jzkQL","output_index":1,"sequence_number":240} +data: {"type":"response.output_text.delta","content_index":0,"delta":" E","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"FwlU9i2vAtkVBt","output_index":1,"sequence_number":242} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" flu","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"Jiwlzqth7db3","output_index":1,"sequence_number":241} +data: {"type":"response.output_text.delta","content_index":0,"delta":"bol","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"BWpVSsnmQ8kDl","output_index":1,"sequence_number":243} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" than","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"fdrKjiOZJsN","output_index":1,"sequence_number":242} +data: {"type":"response.output_text.delta","content_index":0,"delta":"avirus","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"MyXGKWziNv","output_index":1,"sequence_number":244} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" standard","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"5UMWb3t","output_index":1,"sequence_number":243} +data: {"type":"response.output_text.delta","content_index":0,"delta":" vaccine","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"FG9I9t4m","output_index":1,"sequence_number":245} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" vaccines","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"5EuHyAg","output_index":1,"sequence_number":244} +data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"EtuFDNt1TghKuRu","output_index":1,"sequence_number":246} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"TtG9FIIO2eggwYS","output_index":1,"sequence_number":245} +data: {"type":"response.output_text.delta","content_index":0,"delta":" m","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"m2rR6MGz4xEoHU","output_index":1,"sequence_number":247} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" with","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"STyyOJ9xE6o","output_index":1,"sequence_number":246} +data: {"type":"response.output_text.delta","content_index":0,"delta":"RNA","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"KU4Xao2DsLHmo","output_index":1,"sequence_number":248} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" even","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"26YpTKjRtap","output_index":1,"sequence_number":247} +data: {"type":"response.output_text.delta","content_index":0,"delta":"-","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"exqCOwHS8jOaJAj","output_index":1,"sequence_number":249} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" better","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"SCj2P9HeF","output_index":1,"sequence_number":248} +data: {"type":"response.output_text.delta","content_index":0,"delta":"146","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"dUTnFSStVIN1b","output_index":1,"sequence_number":250} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" protection","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"FyTYt","output_index":1,"sequence_number":249} +data: {"type":"response.output_text.delta","content_index":0,"delta":"9","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"2n6XrqiBRshQDeV","output_index":1,"sequence_number":251} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" for","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"JQl2qDPQO78n","output_index":1,"sequence_number":250} +data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"j5wmwTNHzKXK2pm","output_index":1,"sequence_number":252} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" those","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"fJZCQZh4JR","output_index":1,"sequence_number":251} +data: {"type":"response.output_text.delta","content_index":0,"delta":" toward","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"gyqFgASdk","output_index":1,"sequence_number":253} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" aged","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"esyonQrs4lH","output_index":1,"sequence_number":252} +data: {"type":"response.output_text.delta","content_index":0,"delta":" a","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"3DS5zVa6hU8Pcw","output_index":1,"sequence_number":254} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"eBHzJoTDsi5Kp4e","output_index":1,"sequence_number":253} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Phase","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"VPEA07pLfA","output_index":1,"sequence_number":255} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"65","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"3PSkp1NwZtUnKW","output_index":1,"sequence_number":254} +data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"7zx5V8XhbaYDk0E","output_index":1,"sequence_number":256} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"SGWWrD8w8CcO","output_index":1,"sequence_number":255} +data: {"type":"response.output_text.delta","content_index":0,"delta":"2","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"Lf7ZkI06zif5uzb","output_index":1,"sequence_number":257} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" older","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"TZaJtQJ0Xa","output_index":1,"sequence_number":256} +data: {"type":"response.output_text.delta","content_index":0,"delta":"/","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"tQw3xoIOr08ub8n","output_index":1,"sequence_number":258} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"c9F1rbYQ4mf1Aat","output_index":1,"sequence_number":257} +data: {"type":"response.output_text.delta","content_index":0,"delta":"3","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"6d9TdyXhYkXeFYk","output_index":1,"sequence_number":259} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"GWuczz9wS67l6c4","output_index":1,"sequence_number":258} +data: {"type":"response.output_text.delta","content_index":0,"delta":" study","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"cwv7I7SDnP","output_index":1,"sequence_number":260} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"([livescience.com](https://www.livescience.com/health/medicine-drugs/fda-approves-first-mrna-vaccine-for-seasonal-flu?utm_source=openai))","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"hfl9Q2P","output_index":1,"sequence_number":259} +data: {"type":"response.output_text.delta","content_index":0,"delta":" following","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"UU8QDX","output_index":1,"sequence_number":261} -event: response.output_text.annotation.added -data: {"type":"response.output_text.annotation.added","annotation":{"type":"url_citation","end_index":1448,"start_index":1311,"title":"FDA approves first mRNA vaccine for seasonal flu","url":"https://www.livescience.com/health/medicine-drugs/fda-approves-first-mrna-vaccine-for-seasonal-flu?utm_source=openai"},"annotation_index":1,"content_index":0,"item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","output_index":1,"sequence_number":260} +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" encouraging","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"8Fh9","output_index":1,"sequence_number":262} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" Phase","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"bVfLKjDmmr","output_index":1,"sequence_number":263} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"lZWfij40HNJ346M","output_index":1,"sequence_number":264} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":"1","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"4PyRdeA28U9K7cE","output_index":1,"sequence_number":265} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" clinical","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"9YGhE1C","output_index":1,"sequence_number":266} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" results","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"Y1F5XIPI","output_index":1,"sequence_number":267} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"QrfOTTaq22LBY5Y","output_index":1,"sequence_number":268} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"3mtsUhw0OC0OCNK","output_index":1,"sequence_number":269} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"22qMXDRDdU91rHy","output_index":1,"sequence_number":261} +data: {"type":"response.output_text.delta","content_index":0,"delta":"The","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"uXqOQYkCywvXn","output_index":1,"sequence_number":270} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"\n**","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"uJQmul1D1tZ2h","output_index":1,"sequence_number":262} +data: {"type":"response.output_text.delta","content_index":0,"delta":" World","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"pQxJKJBcSu","output_index":1,"sequence_number":271} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"Financial","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"GXSSdki","output_index":1,"sequence_number":263} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Health","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"BsPvXeDVR","output_index":1,"sequence_number":272} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Performance","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"iOnY","output_index":1,"sequence_number":264} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Organization","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"Rxw","output_index":1,"sequence_number":273} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"**\n","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"m0ViGDVl20G2l","output_index":1,"sequence_number":265} +data: {"type":"response.output_text.delta","content_index":0,"delta":"'s","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"KJcybPK0aMm7sn","output_index":1,"sequence_number":274} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"b2cLRh3JxbJz6a4","output_index":1,"sequence_number":266} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Technical","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"oPM0ZB","output_index":1,"sequence_number":275} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"In","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"cW6KW5ud3nuteL","output_index":1,"sequence_number":267} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Advisory","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"98H52f3","output_index":1,"sequence_number":276} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"wyz8u8z54ksX","output_index":1,"sequence_number":268} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Group","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"aJ72vK1vsz","output_index":1,"sequence_number":277} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" second","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"ItwXNx48y","output_index":1,"sequence_number":269} +data: {"type":"response.output_text.delta","content_index":0,"delta":" has","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"Kc5BN4wrfApW","output_index":1,"sequence_number":278} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" recommended","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"HaQL","output_index":1,"sequence_number":279} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" its","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"QrFT4kngy0UI","output_index":1,"sequence_number":280} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" inclusion","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"wCrUGR","output_index":1,"sequence_number":281} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" in","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"TvS52J6Z23ikD","output_index":1,"sequence_number":282} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" an","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"uKQBJRkoMz6qO","output_index":1,"sequence_number":283} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" efficacy","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"eokTMAG","output_index":1,"sequence_number":284} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" study","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"GKNGNVFryY","output_index":1,"sequence_number":285} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"dq0AItaREiSm1U8","output_index":1,"sequence_number":286} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"hQQQ1nTunTBRQqx","output_index":1,"sequence_number":287} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":"([markets.financialcontent.com](https://markets.financialcontent.com/stocks/quote/news?ChannelType=PRESSRELEASES&Symbol=nq%3Amrna&utm_source=openai))","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"kJoZr7b6LQw","output_index":1,"sequence_number":288} + +event: response.output_text.annotation.added +data: {"type":"response.output_text.annotation.added","annotation":{"type":"url_citation","end_index":1688,"start_index":1539,"title":"FinancialContent - Latest News about Moderna, Inc. - Common Stock (Nasdaq:MRNA) | Moderna, Inc. - Common Stock (Nasdaq:MRNA) News","url":"https://markets.financialcontent.com/stocks/quote/news?ChannelType=PRESSRELEASES&Symbol=nq%3Amrna&utm_source=openai"},"annotation_index":2,"content_index":0,"item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","output_index":1,"sequence_number":289} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" quarter","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"yHwLewUC","output_index":1,"sequence_number":270} +data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"TuAMz7tB5qB4BBr","output_index":1,"sequence_number":290} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"XBjcWnz0AaUJt","output_index":1,"sequence_number":271} +data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"AuA91oxwUqVyODg","output_index":1,"sequence_number":291} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"71zS1QOEgaYF81R","output_index":1,"sequence_number":272} +data: {"type":"response.output_text.delta","content_index":0,"delta":"Additionally","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"2PV8","output_index":1,"sequence_number":292} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"202","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"TFplMg73fK6Hc","output_index":1,"sequence_number":273} +data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"5NSMxcYeTaxQ7sS","output_index":1,"sequence_number":293} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"6","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"1Gb1AyIjRf0jKok","output_index":1,"sequence_number":274} +data: {"type":"response.output_text.delta","content_index":0,"delta":" initial","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"4Ltw7N8o","output_index":1,"sequence_number":294} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"X11bcLD6hL0wqZQ","output_index":1,"sequence_number":275} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Phase","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"ZBQ166T4Uy","output_index":1,"sequence_number":295} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Moderna","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"b5wrifsa","output_index":1,"sequence_number":276} +data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"Hb6wvjUjJzqhFyj","output_index":1,"sequence_number":296} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" reported","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"4vlFehZ","output_index":1,"sequence_number":277} +data: {"type":"response.output_text.delta","content_index":0,"delta":"1","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"bSfj7IZG8zqytxp","output_index":1,"sequence_number":297} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" total","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"S6fikSQ9MS","output_index":1,"sequence_number":278} +data: {"type":"response.output_text.delta","content_index":0,"delta":"/","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"xQiFczj1otwzDDA","output_index":1,"sequence_number":298} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" revenue","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"HmXh2XpV","output_index":1,"sequence_number":279} +data: {"type":"response.output_text.delta","content_index":0,"delta":"2","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"VTJv2Q8A3SGpJ1B","output_index":1,"sequence_number":299} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"1HfrcTvvAVwlw","output_index":1,"sequence_number":280} +data: {"type":"response.output_text.delta","content_index":0,"delta":" data","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"wmTyxPAziqZ","output_index":1,"sequence_number":300} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" $","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"vUdNWhenJyfLjj","output_index":1,"sequence_number":281} +data: {"type":"response.output_text.delta","content_index":0,"delta":" for","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"25krFdYzruQm","output_index":1,"sequence_number":301} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"145","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"GMWI5bOjxMv7v","output_index":1,"sequence_number":282} +data: {"type":"response.output_text.delta","content_index":0,"delta":" m","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"Ev1kiub0RkA5Mk","output_index":1,"sequence_number":302} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" million","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"NlXjnPUd","output_index":1,"sequence_number":283} +data: {"type":"response.output_text.delta","content_index":0,"delta":"RNA","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"dZRYs8wMEmaV3","output_index":1,"sequence_number":303} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"aC2hiYAEse8O","output_index":1,"sequence_number":284} +data: {"type":"response.output_text.delta","content_index":0,"delta":"-","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"XgbfEJyKu0TvFd4","output_index":1,"sequence_number":304} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" a","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"UTsTq8rqOL10Lc","output_index":1,"sequence_number":285} +data: {"type":"response.output_text.delta","content_index":0,"delta":"280","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"HztOElEtd1892","output_index":1,"sequence_number":305} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" GA","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"texb1QixcCvgT","output_index":1,"sequence_number":286} +data: {"type":"response.output_text.delta","content_index":0,"delta":"8","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"DHA2bxHYQQPCb93","output_index":1,"sequence_number":306} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"AP","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"PxiZuVpL50etoS","output_index":1,"sequence_number":287} +data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"H9DwtaXvLi3dos7","output_index":1,"sequence_number":307} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" net","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"vD3xSwk8YkTU","output_index":1,"sequence_number":288} +data: {"type":"response.output_text.delta","content_index":0,"delta":" targeting","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"kwT88X","output_index":1,"sequence_number":308} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" loss","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"p7ICm1joxQ6","output_index":1,"sequence_number":289} +data: {"type":"response.output_text.delta","content_index":0,"delta":" rel","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"epQG12043Gj7","output_index":1,"sequence_number":309} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"F66MWBHEfXKpG","output_index":1,"sequence_number":290} +data: {"type":"response.output_text.delta","content_index":0,"delta":"apsed","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"jsWwz821J20","output_index":1,"sequence_number":310} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" $","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"E3IFBP2bxFghcL","output_index":1,"sequence_number":291} +data: {"type":"response.output_text.delta","content_index":0,"delta":" or","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"SNH3a1SnhwXz8","output_index":1,"sequence_number":311} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"782","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"BouX8IJhnNAng","output_index":1,"sequence_number":292} +data: {"type":"response.output_text.delta","content_index":0,"delta":" refractory","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"sl1aR","output_index":1,"sequence_number":312} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" million","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"3vWvgElr","output_index":1,"sequence_number":293} +data: {"type":"response.output_text.delta","content_index":0,"delta":" multiple","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"BIzQRRL","output_index":1,"sequence_number":313} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"t2nbwfGVHrP56Yf","output_index":1,"sequence_number":294} +data: {"type":"response.output_text.delta","content_index":0,"delta":" my","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"2ir5DfigLOLha","output_index":1,"sequence_number":314} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"cFyPM1kXtWTKNAU","output_index":1,"sequence_number":295} +data: {"type":"response.output_text.delta","content_index":0,"delta":"el","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"5IXI8VylnJ2jbo","output_index":1,"sequence_number":315} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"Despite","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"eBk8tYAFn","output_index":1,"sequence_number":296} +data: {"type":"response.output_text.delta","content_index":0,"delta":"oma","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"2PVkzHGhmaPC4","output_index":1,"sequence_number":316} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"j2qV2nuh8TGI","output_index":1,"sequence_number":297} +data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"iOLhnNczkSP1hoC","output_index":1,"sequence_number":317} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" loss","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"hXUlU4RMwZq","output_index":1,"sequence_number":298} +data: {"type":"response.output_text.delta","content_index":0,"delta":" will","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"bRmAhMzNene","output_index":1,"sequence_number":318} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"hGWIGY8jyGcvPXk","output_index":1,"sequence_number":299} +data: {"type":"response.output_text.delta","content_index":0,"delta":" be","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"rNCnTVkscqDlI","output_index":1,"sequence_number":319} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"fIMwhQmA68qn","output_index":1,"sequence_number":300} +data: {"type":"response.output_text.delta","content_index":0,"delta":" presented","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"wzZmx5","output_index":1,"sequence_number":320} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" company","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"LCR3ti9r","output_index":1,"sequence_number":301} +data: {"type":"response.output_text.delta","content_index":0,"delta":" at","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"FAZVURb7tm82W","output_index":1,"sequence_number":321} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" reiterated","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"SExdI","output_index":1,"sequence_number":302} +data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"7lzgtwjMfPqC","output_index":1,"sequence_number":322} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" its","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"DWtFsv2YEZGx","output_index":1,"sequence_number":303} +data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"pD6RS1EdBvRH4Y3","output_index":1,"sequence_number":323} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" plan","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"ADmtcORzUII","output_index":1,"sequence_number":304} +data: {"type":"response.output_text.delta","content_index":0,"delta":"202","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"ByVLl2yO2CsJV","output_index":1,"sequence_number":324} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" to","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"RLonCfvMTeEJl","output_index":1,"sequence_number":305} +data: {"type":"response.output_text.delta","content_index":0,"delta":"6","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"mOEzifhATmFw0ze","output_index":1,"sequence_number":325} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" achieve","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"F1JZ7Xj1","output_index":1,"sequence_number":306} +data: {"type":"response.output_text.delta","content_index":0,"delta":" American","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"7nKiNx2","output_index":1,"sequence_number":326} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" up","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"Uv6nuln1Ir9aB","output_index":1,"sequence_number":307} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Society","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"vmtnhcEr","output_index":1,"sequence_number":327} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" to","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"zWA6oE8oRhKpC","output_index":1,"sequence_number":308} +data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"8b0e9r52zV26t","output_index":1,"sequence_number":328} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"qbmUj5D8VQvCBz0","output_index":1,"sequence_number":309} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Hem","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"2nBmMiSScIQM","output_index":1,"sequence_number":329} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"10","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"ufaFPR0aJGDzu3","output_index":1,"sequence_number":310} +data: {"type":"response.output_text.delta","content_index":0,"delta":"at","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"G4jZ798egR8IYS","output_index":1,"sequence_number":330} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"%","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"T58fcTJG69sTWng","output_index":1,"sequence_number":311} +data: {"type":"response.output_text.delta","content_index":0,"delta":"ology","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"aAHUaVhiOwx","output_index":1,"sequence_number":331} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" revenue","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"xs3fIUKg","output_index":1,"sequence_number":312} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Annual","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"9Ptf0l5xW","output_index":1,"sequence_number":332} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" growth","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"p59X43jSs","output_index":1,"sequence_number":313} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Meeting","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"UIbggKBJ","output_index":1,"sequence_number":333} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" for","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"ghOMK2uM5WQc","output_index":1,"sequence_number":314} +data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"xBmpjTR0lRqGHbB","output_index":1,"sequence_number":334} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"m5PODqoiP69T","output_index":1,"sequence_number":315} +data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"s1AR5xadK6tFVVn","output_index":1,"sequence_number":335} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" year","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"4K5IVBqgWoE","output_index":1,"sequence_number":316} +data: {"type":"response.output_text.delta","content_index":0,"delta":"These","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"GxC7LVluTCT","output_index":1,"sequence_number":336} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"pFlVNIdoFRvT","output_index":1,"sequence_number":317} +data: {"type":"response.output_text.delta","content_index":0,"delta":" findings","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"yyxSXgg","output_index":1,"sequence_number":337} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" highlighted","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"RSeZ","output_index":1,"sequence_number":318} +data: {"type":"response.output_text.delta","content_index":0,"delta":" highlight","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"7LYMKX","output_index":1,"sequence_number":338} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" upcoming","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"6TjfgVc","output_index":1,"sequence_number":319} +data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"6fZNmAomLjUt","output_index":1,"sequence_number":339} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" regulatory","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"IxzXk","output_index":1,"sequence_number":320} +data: {"type":"response.output_text.delta","content_index":0,"delta":" potential","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"tGO24i","output_index":1,"sequence_number":340} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" milestones","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"UxR5w","output_index":1,"sequence_number":321} +data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"Rg6r7qIwq6fba","output_index":1,"sequence_number":341} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"1iiuLBRwUpPQo6c","output_index":1,"sequence_number":322} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Moderna","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"gXxMpE1J","output_index":1,"sequence_number":342} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" including","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"8nzFqu","output_index":1,"sequence_number":323} +data: {"type":"response.output_text.delta","content_index":0,"delta":"'s","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"jHp8U34NqRtINp","output_index":1,"sequence_number":343} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"tGzble0yslWl","output_index":1,"sequence_number":324} +data: {"type":"response.output_text.delta","content_index":0,"delta":" multiplex","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"QQ1plJ","output_index":1,"sequence_number":344} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" approval","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"mwT6d0d","output_index":1,"sequence_number":325} +data: {"type":"response.output_text.delta","content_index":0,"delta":"ed","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"NcMPRKIgSRF1uF","output_index":1,"sequence_number":345} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"1noWDwnXuYLlM","output_index":1,"sequence_number":326} +data: {"type":"response.output_text.delta","content_index":0,"delta":" m","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"KUWjUh8jXYQJH1","output_index":1,"sequence_number":346} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" its","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"EjchwRynRewM","output_index":1,"sequence_number":327} +data: {"type":"response.output_text.delta","content_index":0,"delta":"RNA","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"ZxzO8a4RGUYm3","output_index":1,"sequence_number":347} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" seasonal","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"HCcKUtF","output_index":1,"sequence_number":328} +data: {"type":"response.output_text.delta","content_index":0,"delta":" approach","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"nsywe0K","output_index":1,"sequence_number":348} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" influenza","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"JZK1ob","output_index":1,"sequence_number":329} +data: {"type":"response.output_text.delta","content_index":0,"delta":" in","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"43o618ATZeKZR","output_index":1,"sequence_number":349} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" vaccine","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"YjeOYf8O","output_index":1,"sequence_number":330} +data: {"type":"response.output_text.delta","content_index":0,"delta":" oncology","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"wkvC8yr","output_index":1,"sequence_number":350} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"TmSe9kYMSfI8ole","output_index":1,"sequence_number":331} +data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"ANJ9bUGtaMxRbGO","output_index":1,"sequence_number":351} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"TP2UJOLTJzpxbUV","output_index":1,"sequence_number":332} +data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"YvjG3TyZ1VvCBYL","output_index":1,"sequence_number":352} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"([tradingview.com](https://www.tradingview.com/news/tradingview%3A51f64edf05d88%3A0-moderna-reports-q2-2026-revenue-145m-gaap-net-loss-0-8b-and-reiterates-up-to-10-2026-revenue-growth/?utm_source=openai))","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"yUl7","output_index":1,"sequence_number":333} +data: {"type":"response.output_text.delta","content_index":0,"delta":"([markets.financialcontent.com](https://markets.financialcontent.com/stocks/quote/news?ChannelType=PRESSRELEASES&Symbol=nq%3Amrna&utm_source=openai))","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"aSjbYMRilHs","output_index":1,"sequence_number":353} event: response.output_text.annotation.added -data: {"type":"response.output_text.annotation.added","annotation":{"type":"url_citation","end_index":2001,"start_index":1797,"title":"Moderna reports Q2 2026 revenue $145M, GAAP net loss $0.8B and reiterates up to 10% 2026 revenue growth — TradingView News","url":"https://www.tradingview.com/news/tradingview%3A51f64edf05d88%3A0-moderna-reports-q2-2026-revenue-145m-gaap-net-loss-0-8b-and-reiterates-up-to-10-2026-revenue-growth/?utm_source=openai"},"annotation_index":2,"content_index":0,"item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","output_index":1,"sequence_number":334} +data: {"type":"response.output_text.annotation.added","annotation":{"type":"url_citation","end_index":2110,"start_index":1961,"title":"FinancialContent - Latest News about Moderna, Inc. - Common Stock (Nasdaq:MRNA) | Moderna, Inc. - Common Stock (Nasdaq:MRNA) News","url":"https://markets.financialcontent.com/stocks/quote/news?ChannelType=PRESSRELEASES&Symbol=nq%3Amrna&utm_source=openai"},"annotation_index":3,"content_index":0,"item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","output_index":1,"sequence_number":354} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"Njr7hemMWfICUjY","output_index":1,"sequence_number":335} +data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"xaZaSrkCmE9c37d","output_index":1,"sequence_number":355} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"naEX1QVdf6SLv9a","output_index":1,"sequence_number":336} +data: {"type":"response.output_text.delta","content_index":0,"delta":"\n**","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"xbfHTHw2hoIE9","output_index":1,"sequence_number":356} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"These","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"qwD0rVsF3zB","output_index":1,"sequence_number":337} +data: {"type":"response.output_text.delta","content_index":0,"delta":"Market","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"hTwnmcnpnU","output_index":1,"sequence_number":357} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" developments","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"9Wh","output_index":1,"sequence_number":338} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Performance","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"Yqfd","output_index":1,"sequence_number":358} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" underscore","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"d9SwF","output_index":1,"sequence_number":339} +data: {"type":"response.output_text.delta","content_index":0,"delta":":","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"yOi72RLeMSarm9d","output_index":1,"sequence_number":359} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Moderna","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"JteADTT6","output_index":1,"sequence_number":340} +data: {"type":"response.output_text.delta","content_index":0,"delta":"**","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"bwHbEDC1lfW51u","output_index":1,"sequence_number":360} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"'s","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"ZRl7bSRlnFlnxW","output_index":1,"sequence_number":341} +data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"NpSeSXpFSBfOrN5","output_index":1,"sequence_number":361} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ongoing","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"KaZBObmM","output_index":1,"sequence_number":342} +data: {"type":"response.output_text.delta","content_index":0,"delta":"As","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"cpQvTJWLaESZKi","output_index":1,"sequence_number":362} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" efforts","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"IWQWu6RB","output_index":1,"sequence_number":343} +data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"hcBcOXt7CVh36","output_index":1,"sequence_number":363} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" to","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"eDD9P4cc4zMrk","output_index":1,"sequence_number":344} +data: {"type":"response.output_text.delta","content_index":0,"delta":" November","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"1bu7RVD","output_index":1,"sequence_number":364} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" expand","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"3naWvroc5","output_index":1,"sequence_number":345} +data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"eUShUjyTmfIkt5N","output_index":1,"sequence_number":365} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" its","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"M9pJ0bCu6tE6","output_index":1,"sequence_number":346} +data: {"type":"response.output_text.delta","content_index":0,"delta":"7","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"VqioavJ3vTXnN6M","output_index":1,"sequence_number":366} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" m","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"nXSWIGc943HaKD","output_index":1,"sequence_number":347} +data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"K0JMVdJrLYbPQk6","output_index":1,"sequence_number":367} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"RNA","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"nfONTWxXwaIz8","output_index":1,"sequence_number":348} +data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"RrFgOQk0qgTbwX8","output_index":1,"sequence_number":368} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" technology","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"igJQk","output_index":1,"sequence_number":349} +data: {"type":"response.output_text.delta","content_index":0,"delta":"202","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"MfP05KHKI1Cen","output_index":1,"sequence_number":369} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" applications","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"tVE","output_index":1,"sequence_number":350} +data: {"type":"response.output_text.delta","content_index":0,"delta":"6","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"wYR77fT7jRMJJCS","output_index":1,"sequence_number":370} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" beyond","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"5o3onSC5N","output_index":1,"sequence_number":351} +data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"ExxSkTd3A3ApH5D","output_index":1,"sequence_number":371} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" COVID","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"r6jPf9HfIw","output_index":1,"sequence_number":352} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Moderna","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"KuyaBBEC","output_index":1,"sequence_number":372} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"-","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"hupVPFYhQPdioSF","output_index":1,"sequence_number":353} +data: {"type":"response.output_text.delta","content_index":0,"delta":"'s","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"4KVA9FoKXuzlYD","output_index":1,"sequence_number":373} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"19","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"jE7HHUckjkVS4m","output_index":1,"sequence_number":354} +data: {"type":"response.output_text.delta","content_index":0,"delta":" stock","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"rGVbD9H7yp","output_index":1,"sequence_number":374} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"VGZL0UN6gXeuyyh","output_index":1,"sequence_number":355} +data: {"type":"response.output_text.delta","content_index":0,"delta":" (","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"yqyA5WRe3n5HQQ","output_index":1,"sequence_number":375} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" focusing","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"LoPTrRh","output_index":1,"sequence_number":356} +data: {"type":"response.output_text.delta","content_index":0,"delta":"NASDAQ","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"TVBqDic2wG","output_index":1,"sequence_number":376} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" on","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"x8BwZWbdf8ulJ","output_index":1,"sequence_number":357} +data: {"type":"response.output_text.delta","content_index":0,"delta":":","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"5zFjCQERo7tRg4R","output_index":1,"sequence_number":377} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" personalized","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"sFi","output_index":1,"sequence_number":358} +data: {"type":"response.output_text.delta","content_index":0,"delta":" M","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"zSbxrwUMdcAQC8","output_index":1,"sequence_number":378} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" cancer","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"LsKVBrwpP","output_index":1,"sequence_number":359} +data: {"type":"response.output_text.delta","content_index":0,"delta":"RNA","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"RmpGymARg1KI7","output_index":1,"sequence_number":379} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" treatments","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"h3Mfd","output_index":1,"sequence_number":360} +data: {"type":"response.output_text.delta","content_index":0,"delta":")","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"ZJqZVNenViEopLd","output_index":1,"sequence_number":380} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"2LRGUn51OQRl","output_index":1,"sequence_number":361} +data: {"type":"response.output_text.delta","content_index":0,"delta":" is","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"tPmPMFGlYGjx5","output_index":1,"sequence_number":381} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" seasonal","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"K039FZK","output_index":1,"sequence_number":362} +data: {"type":"response.output_text.delta","content_index":0,"delta":" trading","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"NygL0Zxy","output_index":1,"sequence_number":382} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" vaccines","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"YI7jfBc","output_index":1,"sequence_number":363} +data: {"type":"response.output_text.delta","content_index":0,"delta":" at","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"DoKCyzxZF7jDe","output_index":1,"sequence_number":383} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"6QIj12B6pigudjs","output_index":1,"sequence_number":364} +data: {"type":"response.output_text.delta","content_index":0,"delta":" $","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"F1pdyab03aLTkh","output_index":1,"sequence_number":384} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"s0ZU9OAPzgSpu4S","output_index":1,"sequence_number":365} +data: {"type":"response.output_text.delta","content_index":0,"delta":"254","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"71p76knEWYe0S","output_index":1,"sequence_number":385} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"aKpZueT2a2Yg1kd","output_index":1,"sequence_number":366} +data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"4LPuSwfkytj7pxX","output_index":1,"sequence_number":386} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"\n## Highlights:\n","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"","output_index":1,"sequence_number":367} +data: {"type":"response.output_text.delta","content_index":0,"delta":"19","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"V9IGrUS7INE8sX","output_index":1,"sequence_number":387} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"- [Moderna says skin cancer vaccine trial a success](https://theweek.com/health/moderna-says-skin-cancer-vaccine-success?utm_source=openai), Published on Thursday, August 20","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"cam","output_index":1,"sequence_number":368} +data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"nmRBfLXokL1lk1l","output_index":1,"sequence_number":388} -event: response.output_text.annotation.added -data: {"type":"response.output_text.annotation.added","annotation":{"type":"url_citation","end_index":2341,"start_index":2204,"title":"Moderna says skin cancer vaccine trial a success","url":"https://theweek.com/health/moderna-says-skin-cancer-vaccine-success?utm_source=openai"},"annotation_index":3,"content_index":0,"item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","output_index":1,"sequence_number":369} +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" reflecting","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"RebT7","output_index":1,"sequence_number":389} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"\n- [FDA approves first mRNA vaccine for seasonal flu](https://www.livescience.com/health/medicine-drugs/fda-approves-first-mrna-vaccine-for-seasonal-flu?utm_source=openai), Published on Thursday, August 06","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"PSn","output_index":1,"sequence_number":370} +data: {"type":"response.output_text.delta","content_index":0,"delta":" a","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"psphE7o2cVAsQJ","output_index":1,"sequence_number":390} -event: response.output_text.annotation.added -data: {"type":"response.output_text.annotation.added","annotation":{"type":"url_citation","end_index":2546,"start_index":2378,"title":"FDA approves first mRNA vaccine for seasonal flu","url":"https://www.livescience.com/health/medicine-drugs/fda-approves-first-mrna-vaccine-for-seasonal-flu?utm_source=openai"},"annotation_index":4,"content_index":0,"item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","output_index":1,"sequence_number":371} +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"pw1m5uBnj9fFNnr","output_index":1,"sequence_number":391} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"\n- [New kind of flu shot is on the way as the FDA approves Moderna's mRNA-based vaccine](https://apnews.com/article/59d991a6bf70c26e2f0c210cc8ca87f1?utm_source=openai), Published on Thursday, August 06","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"Cq0yrJj","output_index":1,"sequence_number":372} +data: {"type":"response.output_text.delta","content_index":0,"delta":"5","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"EeF86A6WBYkdHhb","output_index":1,"sequence_number":392} -event: response.output_text.annotation.added -data: {"type":"response.output_text.annotation.added","annotation":{"type":"url_citation","end_index":2747,"start_index":2583,"title":"New kind of flu shot is on the way as the FDA approves Moderna's mRNA-based vaccine","url":"https://apnews.com/article/59d991a6bf70c26e2f0c210cc8ca87f1?utm_source=openai"},"annotation_index":5,"content_index":0,"item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","output_index":1,"sequence_number":373} +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"aEDCgFHRWH4UEU4","output_index":1,"sequence_number":393} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":"27","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"nXvI8k5Qi2Le4i","output_index":1,"sequence_number":394} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":"%","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"vxZG0Id47gsYOqM","output_index":1,"sequence_number":395} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" increase","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"SsP6L7u","output_index":1,"sequence_number":396} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" from","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"5qfRnEZwpIX","output_index":1,"sequence_number":397} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"7sFb0ge880iA","output_index":1,"sequence_number":398} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" previous","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"HTufGaM","output_index":1,"sequence_number":399} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" close","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"icjkf9zzEZ","output_index":1,"sequence_number":400} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"qO4AOESyel1VUPS","output_index":1,"sequence_number":401} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"HVGmvFNr8nrlVXi","output_index":1,"sequence_number":402} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":"The","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"I2lajtEhmd47d","output_index":1,"sequence_number":403} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" stock","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"yX1o5Biz9l","output_index":1,"sequence_number":404} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" has","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"OhwUFUOhSSld","output_index":1,"sequence_number":405} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" experienced","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"aLv1","output_index":1,"sequence_number":406} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" significant","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"a4rm","output_index":1,"sequence_number":407} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" volatility","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"KB3cR","output_index":1,"sequence_number":408} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"cPdXMyGgvqbvlqp","output_index":1,"sequence_number":409} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" with","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"2RnllP8VPB6","output_index":1,"sequence_number":410} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" an","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"GLbI8JJE5GBBS","output_index":1,"sequence_number":411} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" intr","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"VOFKyXoeCA7","output_index":1,"sequence_number":412} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":"aday","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"V0swszzxNhmO","output_index":1,"sequence_number":413} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" high","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"sh5IwcVXfRH","output_index":1,"sequence_number":414} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"rQpWVOCkhKPnf","output_index":1,"sequence_number":415} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" $","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"RJ0LXDOVHLYt5N","output_index":1,"sequence_number":416} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":"274","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"hPOnoWD7aFv9t","output_index":1,"sequence_number":417} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"gIALYhG7VD37KD5","output_index":1,"sequence_number":418} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":"77","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"svHYtYnRp4K7fg","output_index":1,"sequence_number":419} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"m8qaJ9YEXYkY","output_index":1,"sequence_number":420} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" a","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"923EXFXPKyH4B6","output_index":1,"sequence_number":421} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" low","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"zdHJ0vnCuMpM","output_index":1,"sequence_number":422} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"cMFdJhrJVWdxv","output_index":1,"sequence_number":423} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" $","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"5RycYR2aVfCUFv","output_index":1,"sequence_number":424} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":"225","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"beJqxTQ5ifisl","output_index":1,"sequence_number":425} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"WUh6rMqgsfslCBp","output_index":1,"sequence_number":426} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":"69","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"ueSftddY89xuAq","output_index":1,"sequence_number":427} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"y9LhvWtIqOopiWh","output_index":1,"sequence_number":428} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"TV0uGlgjoq4z0gP","output_index":1,"sequence_number":429} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"6W06YqBguqpkJsd","output_index":1,"sequence_number":430} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":"## Stock market information for Moderna Inc (MRNA)\n- Moderna Inc is a equity in the USA market.\n- The price is 254.19 USD currently with a change of 12.55 USD (0.05%) from the previous close.\n- The latest open price was 245.0 USD and the intraday volume is 16329129.\n- The intraday high is 274.77 USD and the intraday low is 225.69 USD.\n- The latest trade time is Friday, November 6, 16:59:26 PST.\n","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"02","output_index":1,"sequence_number":431} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"15tY2ZiPkjHsDKy","output_index":1,"sequence_number":432} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"ndEq3oR9PEYUTgs","output_index":1,"sequence_number":433} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":"These","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"1uv0hW4Nc97","output_index":1,"sequence_number":434} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" developments","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"Qnn","output_index":1,"sequence_number":435} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" underscore","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"NQfeQ","output_index":1,"sequence_number":436} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" Moderna","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"x4PbCI83","output_index":1,"sequence_number":437} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":"'s","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"yiFI15cmy6fcea","output_index":1,"sequence_number":438} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" ongoing","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"e8KRhOC5","output_index":1,"sequence_number":439} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" efforts","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"JAU0ppn6","output_index":1,"sequence_number":440} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" to","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"PcwXopDAUB8lM","output_index":1,"sequence_number":441} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" expand","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"d13RxpoZY","output_index":1,"sequence_number":442} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" its","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"15dDKfA1IIEU","output_index":1,"sequence_number":443} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" product","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"xw87dunM","output_index":1,"sequence_number":444} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" offerings","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"MWpLVS","output_index":1,"sequence_number":445} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"YbaMlFWIkU7s","output_index":1,"sequence_number":446} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" strengthen","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"bA0Zt","output_index":1,"sequence_number":447} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" its","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"oXrAolqzOZwf","output_index":1,"sequence_number":448} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" position","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"cI5NbMI","output_index":1,"sequence_number":449} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" in","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"iOj0famSaft4M","output_index":1,"sequence_number":450} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"Ql69UL0xK1ib","output_index":1,"sequence_number":451} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" biotechnology","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"Gj","output_index":1,"sequence_number":452} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":" sector","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"LJ4ZOZCzQ","output_index":1,"sequence_number":453} + +event: response.output_text.delta +data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"Qwv9TIv08FvfEPo","output_index":1,"sequence_number":454} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"obfuscation":"bxwkJFKEAUUoRql","output_index":1,"sequence_number":374} +data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"obfuscation":"NKXX3R9Zg8ouGaY","output_index":1,"sequence_number":455} event: response.output_text.done -data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","logprobs":[],"output_index":1,"sequence_number":375,"text":"Moderna has recently achieved significant milestones in both oncology and infectious disease treatments:\n\n**Advancements in Cancer Treatment**\n\nModerna, in collaboration with Merck, announced promising results from a late-stage clinical trial of their personalized mRNA-based cancer vaccine, intismeran, combined with Merck's immunotherapy drug Keytruda. This combination significantly reduced the recurrence and spread of high-risk melanoma in patients who had undergone surgery. This marks the first successful late-stage trial of a personalized mRNA cancer therapy, potentially opening new avenues for treating melanoma and other cancers. ([theweek.com](https://theweek.com/health/moderna-says-skin-cancer-vaccine-success?utm_source=openai))\n\n**Approval of mRNA-Based Flu Vaccine**\n\nThe U.S. Food and Drug Administration (FDA) approved Moderna's mRNA-based seasonal flu vaccine, mFlusiva (mRNA-1010), for individuals aged 50 and older. This vaccine utilizes the same mRNA technology as Moderna's COVID-19 vaccine, instructing cells to produce the hemagglutinin (HA) protein found on influenza viruses, thereby enhancing the immune response. Clinical trials demonstrated that mFlusiva was 26.6% more effective in preventing flu than standard vaccines, with even better protection for those aged 65 and older. ([livescience.com](https://www.livescience.com/health/medicine-drugs/fda-approves-first-mrna-vaccine-for-seasonal-flu?utm_source=openai))\n\n**Financial Performance**\n\nIn the second quarter of 2026, Moderna reported total revenue of $145 million and a GAAP net loss of $782 million. Despite the loss, the company reiterated its plan to achieve up to 10% revenue growth for the year and highlighted upcoming regulatory milestones, including the approval of its seasonal influenza vaccine. ([tradingview.com](https://www.tradingview.com/news/tradingview%3A51f64edf05d88%3A0-moderna-reports-q2-2026-revenue-145m-gaap-net-loss-0-8b-and-reiterates-up-to-10-2026-revenue-growth/?utm_source=openai))\n\nThese developments underscore Moderna's ongoing efforts to expand its mRNA technology applications beyond COVID-19, focusing on personalized cancer treatments and seasonal vaccines.\n\n\n## Highlights:\n- [Moderna says skin cancer vaccine trial a success](https://theweek.com/health/moderna-says-skin-cancer-vaccine-success?utm_source=openai), Published on Thursday, August 20\n- [FDA approves first mRNA vaccine for seasonal flu](https://www.livescience.com/health/medicine-drugs/fda-approves-first-mrna-vaccine-for-seasonal-flu?utm_source=openai), Published on Thursday, August 06\n- [New kind of flu shot is on the way as the FDA approves Moderna's mRNA-based vaccine](https://apnews.com/article/59d991a6bf70c26e2f0c210cc8ca87f1?utm_source=openai), Published on Thursday, August 06 "} +data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","logprobs":[],"output_index":1,"sequence_number":456,"text":"Moderna has recently achieved significant milestones across its financial performance, product approvals, and research developments.\n\n**Financial Performance:**\nIn the third quarter of 2026, Moderna reported a revenue of $1.3 billion, marking a 29% increase from the previous year. The company returned to profitability with a net income of $162 million, a notable turnaround from a $200 million loss in the same quarter of 2025. Earnings per share were $0.38, compared to a loss of $0.51 per share the previous year. Moderna has also raised its full-year revenue growth outlook to 15%-25%, up from the earlier estimate of up to 10%. ([stocktitan.net](https://www.stocktitan.net/news/MRNA/moderna-reports-third-quarter-2026-financial-results-and-provides-9kk4tzh724ed.html?utm_source=openai))\n\n**Product Approvals:**\nHealth Canada has authorized Moderna's mRNA-based seasonal influenza vaccine, mFLUSIVA®, and the combination influenza and COVID-19 vaccine, mCOFLU®. This makes Canada the first country to approve both vaccines, expanding Moderna's portfolio in the infectious disease sector. ([markets.financialcontent.com](https://markets.financialcontent.com/stocks/quote/news?ChannelType=PRESSRELEASES&Symbol=nq%3Amrna&utm_source=openai))\n\n**Research and Development:**\nModerna is advancing its investigational Bundibugyo Ebolavirus vaccine, mRNA-1469, toward a Phase 2/3 study following encouraging Phase 1 clinical results. The World Health Organization's Technical Advisory Group has recommended its inclusion in an efficacy study. ([markets.financialcontent.com](https://markets.financialcontent.com/stocks/quote/news?ChannelType=PRESSRELEASES&Symbol=nq%3Amrna&utm_source=openai))\n\nAdditionally, initial Phase 1/2 data for mRNA-2808, targeting relapsed or refractory multiple myeloma, will be presented at the 2026 American Society of Hematology Annual Meeting. These findings highlight the potential of Moderna's multiplexed mRNA approach in oncology. ([markets.financialcontent.com](https://markets.financialcontent.com/stocks/quote/news?ChannelType=PRESSRELEASES&Symbol=nq%3Amrna&utm_source=openai))\n\n**Market Performance:**\nAs of November 7, 2026, Moderna's stock (NASDAQ: MRNA) is trading at $254.19, reflecting a 5.27% increase from the previous close. The stock has experienced significant volatility, with an intraday high of $274.77 and a low of $225.69.\n\n## Stock market information for Moderna Inc (MRNA)\n- Moderna Inc is a equity in the USA market.\n- The price is 254.19 USD currently with a change of 12.55 USD (0.05%) from the previous close.\n- The latest open price was 245.0 USD and the intraday volume is 16329129.\n- The intraday high is 274.77 USD and the intraday low is 225.69 USD.\n- The latest trade time is Friday, November 6, 16:59:26 PST.\n\n\nThese developments underscore Moderna's ongoing efforts to expand its product offerings and strengthen its position in the biotechnology sector. "} event: response.content_part.done -data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","output_index":1,"part":{"type":"output_text","annotations":[{"type":"url_citation","end_index":744,"start_index":642,"title":"Moderna says skin cancer vaccine trial a success","url":"https://theweek.com/health/moderna-says-skin-cancer-vaccine-success?utm_source=openai"},{"type":"url_citation","end_index":1448,"start_index":1311,"title":"FDA approves first mRNA vaccine for seasonal flu","url":"https://www.livescience.com/health/medicine-drugs/fda-approves-first-mrna-vaccine-for-seasonal-flu?utm_source=openai"},{"type":"url_citation","end_index":2001,"start_index":1797,"title":"Moderna reports Q2 2026 revenue $145M, GAAP net loss $0.8B and reiterates up to 10% 2026 revenue growth — TradingView News","url":"https://www.tradingview.com/news/tradingview%3A51f64edf05d88%3A0-moderna-reports-q2-2026-revenue-145m-gaap-net-loss-0-8b-and-reiterates-up-to-10-2026-revenue-growth/?utm_source=openai"},{"type":"url_citation","end_index":2341,"start_index":2204,"title":"Moderna says skin cancer vaccine trial a success","url":"https://theweek.com/health/moderna-says-skin-cancer-vaccine-success?utm_source=openai"},{"type":"url_citation","end_index":2546,"start_index":2378,"title":"FDA approves first mRNA vaccine for seasonal flu","url":"https://www.livescience.com/health/medicine-drugs/fda-approves-first-mrna-vaccine-for-seasonal-flu?utm_source=openai"},{"type":"url_citation","end_index":2747,"start_index":2583,"title":"New kind of flu shot is on the way as the FDA approves Moderna's mRNA-based vaccine","url":"https://apnews.com/article/59d991a6bf70c26e2f0c210cc8ca87f1?utm_source=openai"}],"logprobs":[],"text":"Moderna has recently achieved significant milestones in both oncology and infectious disease treatments:\n\n**Advancements in Cancer Treatment**\n\nModerna, in collaboration with Merck, announced promising results from a late-stage clinical trial of their personalized mRNA-based cancer vaccine, intismeran, combined with Merck's immunotherapy drug Keytruda. This combination significantly reduced the recurrence and spread of high-risk melanoma in patients who had undergone surgery. This marks the first successful late-stage trial of a personalized mRNA cancer therapy, potentially opening new avenues for treating melanoma and other cancers. ([theweek.com](https://theweek.com/health/moderna-says-skin-cancer-vaccine-success?utm_source=openai))\n\n**Approval of mRNA-Based Flu Vaccine**\n\nThe U.S. Food and Drug Administration (FDA) approved Moderna's mRNA-based seasonal flu vaccine, mFlusiva (mRNA-1010), for individuals aged 50 and older. This vaccine utilizes the same mRNA technology as Moderna's COVID-19 vaccine, instructing cells to produce the hemagglutinin (HA) protein found on influenza viruses, thereby enhancing the immune response. Clinical trials demonstrated that mFlusiva was 26.6% more effective in preventing flu than standard vaccines, with even better protection for those aged 65 and older. ([livescience.com](https://www.livescience.com/health/medicine-drugs/fda-approves-first-mrna-vaccine-for-seasonal-flu?utm_source=openai))\n\n**Financial Performance**\n\nIn the second quarter of 2026, Moderna reported total revenue of $145 million and a GAAP net loss of $782 million. Despite the loss, the company reiterated its plan to achieve up to 10% revenue growth for the year and highlighted upcoming regulatory milestones, including the approval of its seasonal influenza vaccine. ([tradingview.com](https://www.tradingview.com/news/tradingview%3A51f64edf05d88%3A0-moderna-reports-q2-2026-revenue-145m-gaap-net-loss-0-8b-and-reiterates-up-to-10-2026-revenue-growth/?utm_source=openai))\n\nThese developments underscore Moderna's ongoing efforts to expand its mRNA technology applications beyond COVID-19, focusing on personalized cancer treatments and seasonal vaccines.\n\n\n## Highlights:\n- [Moderna says skin cancer vaccine trial a success](https://theweek.com/health/moderna-says-skin-cancer-vaccine-success?utm_source=openai), Published on Thursday, August 20\n- [FDA approves first mRNA vaccine for seasonal flu](https://www.livescience.com/health/medicine-drugs/fda-approves-first-mrna-vaccine-for-seasonal-flu?utm_source=openai), Published on Thursday, August 06\n- [New kind of flu shot is on the way as the FDA approves Moderna's mRNA-based vaccine](https://apnews.com/article/59d991a6bf70c26e2f0c210cc8ca87f1?utm_source=openai), Published on Thursday, August 06 "},"sequence_number":376} +data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","output_index":1,"part":{"type":"output_text","annotations":[{"type":"url_citation","end_index":792,"start_index":634,"title":"Moderna Q3 earnings: revenue up 29%, outlook raised | MRNA Stock News","url":"https://www.stocktitan.net/news/MRNA/moderna-reports-third-quarter-2026-financial-results-and-provides-9kk4tzh724ed.html?utm_source=openai"},{"type":"url_citation","end_index":1242,"start_index":1093,"title":"FinancialContent - Latest News about Moderna, Inc. - Common Stock (Nasdaq:MRNA) | Moderna, Inc. - Common Stock (Nasdaq:MRNA) News","url":"https://markets.financialcontent.com/stocks/quote/news?ChannelType=PRESSRELEASES&Symbol=nq%3Amrna&utm_source=openai"},{"type":"url_citation","end_index":1688,"start_index":1539,"title":"FinancialContent - Latest News about Moderna, Inc. - Common Stock (Nasdaq:MRNA) | Moderna, Inc. - Common Stock (Nasdaq:MRNA) News","url":"https://markets.financialcontent.com/stocks/quote/news?ChannelType=PRESSRELEASES&Symbol=nq%3Amrna&utm_source=openai"},{"type":"url_citation","end_index":2110,"start_index":1961,"title":"FinancialContent - Latest News about Moderna, Inc. - Common Stock (Nasdaq:MRNA) | Moderna, Inc. - Common Stock (Nasdaq:MRNA) News","url":"https://markets.financialcontent.com/stocks/quote/news?ChannelType=PRESSRELEASES&Symbol=nq%3Amrna&utm_source=openai"}],"logprobs":[],"text":"Moderna has recently achieved significant milestones across its financial performance, product approvals, and research developments.\n\n**Financial Performance:**\nIn the third quarter of 2026, Moderna reported a revenue of $1.3 billion, marking a 29% increase from the previous year. The company returned to profitability with a net income of $162 million, a notable turnaround from a $200 million loss in the same quarter of 2025. Earnings per share were $0.38, compared to a loss of $0.51 per share the previous year. Moderna has also raised its full-year revenue growth outlook to 15%-25%, up from the earlier estimate of up to 10%. ([stocktitan.net](https://www.stocktitan.net/news/MRNA/moderna-reports-third-quarter-2026-financial-results-and-provides-9kk4tzh724ed.html?utm_source=openai))\n\n**Product Approvals:**\nHealth Canada has authorized Moderna's mRNA-based seasonal influenza vaccine, mFLUSIVA®, and the combination influenza and COVID-19 vaccine, mCOFLU®. This makes Canada the first country to approve both vaccines, expanding Moderna's portfolio in the infectious disease sector. ([markets.financialcontent.com](https://markets.financialcontent.com/stocks/quote/news?ChannelType=PRESSRELEASES&Symbol=nq%3Amrna&utm_source=openai))\n\n**Research and Development:**\nModerna is advancing its investigational Bundibugyo Ebolavirus vaccine, mRNA-1469, toward a Phase 2/3 study following encouraging Phase 1 clinical results. The World Health Organization's Technical Advisory Group has recommended its inclusion in an efficacy study. ([markets.financialcontent.com](https://markets.financialcontent.com/stocks/quote/news?ChannelType=PRESSRELEASES&Symbol=nq%3Amrna&utm_source=openai))\n\nAdditionally, initial Phase 1/2 data for mRNA-2808, targeting relapsed or refractory multiple myeloma, will be presented at the 2026 American Society of Hematology Annual Meeting. These findings highlight the potential of Moderna's multiplexed mRNA approach in oncology. ([markets.financialcontent.com](https://markets.financialcontent.com/stocks/quote/news?ChannelType=PRESSRELEASES&Symbol=nq%3Amrna&utm_source=openai))\n\n**Market Performance:**\nAs of November 7, 2026, Moderna's stock (NASDAQ: MRNA) is trading at $254.19, reflecting a 5.27% increase from the previous close. The stock has experienced significant volatility, with an intraday high of $274.77 and a low of $225.69.\n\n## Stock market information for Moderna Inc (MRNA)\n- Moderna Inc is a equity in the USA market.\n- The price is 254.19 USD currently with a change of 12.55 USD (0.05%) from the previous close.\n- The latest open price was 245.0 USD and the intraday volume is 16329129.\n- The intraday high is 274.77 USD and the intraday low is 225.69 USD.\n- The latest trade time is Friday, November 6, 16:59:26 PST.\n\n\nThese developments underscore Moderna's ongoing efforts to expand its product offerings and strengthen its position in the biotechnology sector. "},"sequence_number":457} event: response.output_item.done -data: {"type":"response.output_item.done","item":{"id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","type":"message","status":"completed","content":[{"type":"output_text","annotations":[{"type":"url_citation","end_index":744,"start_index":642,"title":"Moderna says skin cancer vaccine trial a success","url":"https://theweek.com/health/moderna-says-skin-cancer-vaccine-success?utm_source=openai"},{"type":"url_citation","end_index":1448,"start_index":1311,"title":"FDA approves first mRNA vaccine for seasonal flu","url":"https://www.livescience.com/health/medicine-drugs/fda-approves-first-mrna-vaccine-for-seasonal-flu?utm_source=openai"},{"type":"url_citation","end_index":2001,"start_index":1797,"title":"Moderna reports Q2 2026 revenue $145M, GAAP net loss $0.8B and reiterates up to 10% 2026 revenue growth — TradingView News","url":"https://www.tradingview.com/news/tradingview%3A51f64edf05d88%3A0-moderna-reports-q2-2026-revenue-145m-gaap-net-loss-0-8b-and-reiterates-up-to-10-2026-revenue-growth/?utm_source=openai"},{"type":"url_citation","end_index":2341,"start_index":2204,"title":"Moderna says skin cancer vaccine trial a success","url":"https://theweek.com/health/moderna-says-skin-cancer-vaccine-success?utm_source=openai"},{"type":"url_citation","end_index":2546,"start_index":2378,"title":"FDA approves first mRNA vaccine for seasonal flu","url":"https://www.livescience.com/health/medicine-drugs/fda-approves-first-mrna-vaccine-for-seasonal-flu?utm_source=openai"},{"type":"url_citation","end_index":2747,"start_index":2583,"title":"New kind of flu shot is on the way as the FDA approves Moderna's mRNA-based vaccine","url":"https://apnews.com/article/59d991a6bf70c26e2f0c210cc8ca87f1?utm_source=openai"}],"logprobs":[],"text":"Moderna has recently achieved significant milestones in both oncology and infectious disease treatments:\n\n**Advancements in Cancer Treatment**\n\nModerna, in collaboration with Merck, announced promising results from a late-stage clinical trial of their personalized mRNA-based cancer vaccine, intismeran, combined with Merck's immunotherapy drug Keytruda. This combination significantly reduced the recurrence and spread of high-risk melanoma in patients who had undergone surgery. This marks the first successful late-stage trial of a personalized mRNA cancer therapy, potentially opening new avenues for treating melanoma and other cancers. ([theweek.com](https://theweek.com/health/moderna-says-skin-cancer-vaccine-success?utm_source=openai))\n\n**Approval of mRNA-Based Flu Vaccine**\n\nThe U.S. Food and Drug Administration (FDA) approved Moderna's mRNA-based seasonal flu vaccine, mFlusiva (mRNA-1010), for individuals aged 50 and older. This vaccine utilizes the same mRNA technology as Moderna's COVID-19 vaccine, instructing cells to produce the hemagglutinin (HA) protein found on influenza viruses, thereby enhancing the immune response. Clinical trials demonstrated that mFlusiva was 26.6% more effective in preventing flu than standard vaccines, with even better protection for those aged 65 and older. ([livescience.com](https://www.livescience.com/health/medicine-drugs/fda-approves-first-mrna-vaccine-for-seasonal-flu?utm_source=openai))\n\n**Financial Performance**\n\nIn the second quarter of 2026, Moderna reported total revenue of $145 million and a GAAP net loss of $782 million. Despite the loss, the company reiterated its plan to achieve up to 10% revenue growth for the year and highlighted upcoming regulatory milestones, including the approval of its seasonal influenza vaccine. ([tradingview.com](https://www.tradingview.com/news/tradingview%3A51f64edf05d88%3A0-moderna-reports-q2-2026-revenue-145m-gaap-net-loss-0-8b-and-reiterates-up-to-10-2026-revenue-growth/?utm_source=openai))\n\nThese developments underscore Moderna's ongoing efforts to expand its mRNA technology applications beyond COVID-19, focusing on personalized cancer treatments and seasonal vaccines.\n\n\n## Highlights:\n- [Moderna says skin cancer vaccine trial a success](https://theweek.com/health/moderna-says-skin-cancer-vaccine-success?utm_source=openai), Published on Thursday, August 20\n- [FDA approves first mRNA vaccine for seasonal flu](https://www.livescience.com/health/medicine-drugs/fda-approves-first-mrna-vaccine-for-seasonal-flu?utm_source=openai), Published on Thursday, August 06\n- [New kind of flu shot is on the way as the FDA approves Moderna's mRNA-based vaccine](https://apnews.com/article/59d991a6bf70c26e2f0c210cc8ca87f1?utm_source=openai), Published on Thursday, August 06 "}],"role":"assistant"},"output_index":1,"sequence_number":377} +data: {"type":"response.output_item.done","item":{"id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","type":"message","status":"completed","content":[{"type":"output_text","annotations":[{"type":"url_citation","end_index":792,"start_index":634,"title":"Moderna Q3 earnings: revenue up 29%, outlook raised | MRNA Stock News","url":"https://www.stocktitan.net/news/MRNA/moderna-reports-third-quarter-2026-financial-results-and-provides-9kk4tzh724ed.html?utm_source=openai"},{"type":"url_citation","end_index":1242,"start_index":1093,"title":"FinancialContent - Latest News about Moderna, Inc. - Common Stock (Nasdaq:MRNA) | Moderna, Inc. - Common Stock (Nasdaq:MRNA) News","url":"https://markets.financialcontent.com/stocks/quote/news?ChannelType=PRESSRELEASES&Symbol=nq%3Amrna&utm_source=openai"},{"type":"url_citation","end_index":1688,"start_index":1539,"title":"FinancialContent - Latest News about Moderna, Inc. - Common Stock (Nasdaq:MRNA) | Moderna, Inc. - Common Stock (Nasdaq:MRNA) News","url":"https://markets.financialcontent.com/stocks/quote/news?ChannelType=PRESSRELEASES&Symbol=nq%3Amrna&utm_source=openai"},{"type":"url_citation","end_index":2110,"start_index":1961,"title":"FinancialContent - Latest News about Moderna, Inc. - Common Stock (Nasdaq:MRNA) | Moderna, Inc. - Common Stock (Nasdaq:MRNA) News","url":"https://markets.financialcontent.com/stocks/quote/news?ChannelType=PRESSRELEASES&Symbol=nq%3Amrna&utm_source=openai"}],"logprobs":[],"text":"Moderna has recently achieved significant milestones across its financial performance, product approvals, and research developments.\n\n**Financial Performance:**\nIn the third quarter of 2026, Moderna reported a revenue of $1.3 billion, marking a 29% increase from the previous year. The company returned to profitability with a net income of $162 million, a notable turnaround from a $200 million loss in the same quarter of 2025. Earnings per share were $0.38, compared to a loss of $0.51 per share the previous year. Moderna has also raised its full-year revenue growth outlook to 15%-25%, up from the earlier estimate of up to 10%. ([stocktitan.net](https://www.stocktitan.net/news/MRNA/moderna-reports-third-quarter-2026-financial-results-and-provides-9kk4tzh724ed.html?utm_source=openai))\n\n**Product Approvals:**\nHealth Canada has authorized Moderna's mRNA-based seasonal influenza vaccine, mFLUSIVA®, and the combination influenza and COVID-19 vaccine, mCOFLU®. This makes Canada the first country to approve both vaccines, expanding Moderna's portfolio in the infectious disease sector. ([markets.financialcontent.com](https://markets.financialcontent.com/stocks/quote/news?ChannelType=PRESSRELEASES&Symbol=nq%3Amrna&utm_source=openai))\n\n**Research and Development:**\nModerna is advancing its investigational Bundibugyo Ebolavirus vaccine, mRNA-1469, toward a Phase 2/3 study following encouraging Phase 1 clinical results. The World Health Organization's Technical Advisory Group has recommended its inclusion in an efficacy study. ([markets.financialcontent.com](https://markets.financialcontent.com/stocks/quote/news?ChannelType=PRESSRELEASES&Symbol=nq%3Amrna&utm_source=openai))\n\nAdditionally, initial Phase 1/2 data for mRNA-2808, targeting relapsed or refractory multiple myeloma, will be presented at the 2026 American Society of Hematology Annual Meeting. These findings highlight the potential of Moderna's multiplexed mRNA approach in oncology. ([markets.financialcontent.com](https://markets.financialcontent.com/stocks/quote/news?ChannelType=PRESSRELEASES&Symbol=nq%3Amrna&utm_source=openai))\n\n**Market Performance:**\nAs of November 7, 2026, Moderna's stock (NASDAQ: MRNA) is trading at $254.19, reflecting a 5.27% increase from the previous close. The stock has experienced significant volatility, with an intraday high of $274.77 and a low of $225.69.\n\n## Stock market information for Moderna Inc (MRNA)\n- Moderna Inc is a equity in the USA market.\n- The price is 254.19 USD currently with a change of 12.55 USD (0.05%) from the previous close.\n- The latest open price was 245.0 USD and the intraday volume is 16329129.\n- The intraday high is 274.77 USD and the intraday low is 225.69 USD.\n- The latest trade time is Friday, November 6, 16:59:26 PST.\n\n\nThese developments underscore Moderna's ongoing efforts to expand its product offerings and strengthen its position in the biotechnology sector. "}],"role":"assistant"},"output_index":1,"sequence_number":458} event: response.completed -data: {"type":"response.completed","response":{"id":"resp_0c8728fafbb9b29a016a95bca39a6487d09ef7b8d2c17010ff","object":"response","created_at":1788198051,"status":"completed","background":false,"completed_at":1788198056,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-2024-08-06","moderation":null,"output":[{"id":"ws_0c8728fafbb9b29a016a95bca4670087d0b492e2fa72d76e7e","type":"web_search_call","status":"completed","action":{"type":"search","queries":["Moderna news October 2023"],"query":"Moderna news October 2023"}},{"id":"msg_0c8728fafbb9b29a016a95bca5cddc87d08b188e481dfc9626","type":"message","status":"completed","content":[{"type":"output_text","annotations":[{"type":"url_citation","end_index":744,"start_index":642,"title":"Moderna says skin cancer vaccine trial a success","url":"https://theweek.com/health/moderna-says-skin-cancer-vaccine-success?utm_source=openai"},{"type":"url_citation","end_index":1448,"start_index":1311,"title":"FDA approves first mRNA vaccine for seasonal flu","url":"https://www.livescience.com/health/medicine-drugs/fda-approves-first-mrna-vaccine-for-seasonal-flu?utm_source=openai"},{"type":"url_citation","end_index":2001,"start_index":1797,"title":"Moderna reports Q2 2026 revenue $145M, GAAP net loss $0.8B and reiterates up to 10% 2026 revenue growth — TradingView News","url":"https://www.tradingview.com/news/tradingview%3A51f64edf05d88%3A0-moderna-reports-q2-2026-revenue-145m-gaap-net-loss-0-8b-and-reiterates-up-to-10-2026-revenue-growth/?utm_source=openai"},{"type":"url_citation","end_index":2341,"start_index":2204,"title":"Moderna says skin cancer vaccine trial a success","url":"https://theweek.com/health/moderna-says-skin-cancer-vaccine-success?utm_source=openai"},{"type":"url_citation","end_index":2546,"start_index":2378,"title":"FDA approves first mRNA vaccine for seasonal flu","url":"https://www.livescience.com/health/medicine-drugs/fda-approves-first-mrna-vaccine-for-seasonal-flu?utm_source=openai"},{"type":"url_citation","end_index":2747,"start_index":2583,"title":"New kind of flu shot is on the way as the FDA approves Moderna's mRNA-based vaccine","url":"https://apnews.com/article/59d991a6bf70c26e2f0c210cc8ca87f1?utm_source=openai"}],"logprobs":[],"text":"Moderna has recently achieved significant milestones in both oncology and infectious disease treatments:\n\n**Advancements in Cancer Treatment**\n\nModerna, in collaboration with Merck, announced promising results from a late-stage clinical trial of their personalized mRNA-based cancer vaccine, intismeran, combined with Merck's immunotherapy drug Keytruda. This combination significantly reduced the recurrence and spread of high-risk melanoma in patients who had undergone surgery. This marks the first successful late-stage trial of a personalized mRNA cancer therapy, potentially opening new avenues for treating melanoma and other cancers. ([theweek.com](https://theweek.com/health/moderna-says-skin-cancer-vaccine-success?utm_source=openai))\n\n**Approval of mRNA-Based Flu Vaccine**\n\nThe U.S. Food and Drug Administration (FDA) approved Moderna's mRNA-based seasonal flu vaccine, mFlusiva (mRNA-1010), for individuals aged 50 and older. This vaccine utilizes the same mRNA technology as Moderna's COVID-19 vaccine, instructing cells to produce the hemagglutinin (HA) protein found on influenza viruses, thereby enhancing the immune response. Clinical trials demonstrated that mFlusiva was 26.6% more effective in preventing flu than standard vaccines, with even better protection for those aged 65 and older. ([livescience.com](https://www.livescience.com/health/medicine-drugs/fda-approves-first-mrna-vaccine-for-seasonal-flu?utm_source=openai))\n\n**Financial Performance**\n\nIn the second quarter of 2026, Moderna reported total revenue of $145 million and a GAAP net loss of $782 million. Despite the loss, the company reiterated its plan to achieve up to 10% revenue growth for the year and highlighted upcoming regulatory milestones, including the approval of its seasonal influenza vaccine. ([tradingview.com](https://www.tradingview.com/news/tradingview%3A51f64edf05d88%3A0-moderna-reports-q2-2026-revenue-145m-gaap-net-loss-0-8b-and-reiterates-up-to-10-2026-revenue-growth/?utm_source=openai))\n\nThese developments underscore Moderna's ongoing efforts to expand its mRNA technology applications beyond COVID-19, focusing on personalized cancer treatments and seasonal vaccines.\n\n\n## Highlights:\n- [Moderna says skin cancer vaccine trial a success](https://theweek.com/health/moderna-says-skin-cancer-vaccine-success?utm_source=openai), Published on Thursday, August 20\n- [FDA approves first mRNA vaccine for seasonal flu](https://www.livescience.com/health/medicine-drugs/fda-approves-first-mrna-vaccine-for-seasonal-flu?utm_source=openai), Published on Thursday, August 06\n- [New kind of flu shot is on the way as the FDA approves Moderna's mRNA-based vaccine](https://apnews.com/article/59d991a6bf70c26e2f0c210cc8ca87f1?utm_source=openai), Published on Thursday, August 06 "}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":false,"temperature":0.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":1}},"tools":[{"type":"web_search_preview","search_content_types":["text"],"search_context_size":"medium","user_location":{"type":"approximate","city":null,"country":"US","region":null,"timezone":null}}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":317,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":662,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":979},"user":null,"metadata":{}},"sequence_number":378} +data: {"type":"response.completed","response":{"id":"resp_0129a7d740a713fc016aeebb37174487d0922f8c36f490f7e0","object":"response","created_at":1794030391,"status":"completed","access_programs":null,"background":false,"completed_at":1794030395,"error":null,"frequency_penalty":0.0,"image":{"context_compression":"disabled"},"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-2024-08-06","moderation":null,"output":[{"id":"ws_0129a7d740a713fc016aeebb37cf0c87d09cf5b9c6518a3527","type":"web_search_call","status":"completed","action":{"type":"search","queries":["Moderna news October 2023"],"query":"Moderna news October 2023"}},{"id":"msg_0129a7d740a713fc016aeebb38c0f087d0bbcf230c8c2bc455","type":"message","status":"completed","content":[{"type":"output_text","annotations":[{"type":"url_citation","end_index":792,"start_index":634,"title":"Moderna Q3 earnings: revenue up 29%, outlook raised | MRNA Stock News","url":"https://www.stocktitan.net/news/MRNA/moderna-reports-third-quarter-2026-financial-results-and-provides-9kk4tzh724ed.html?utm_source=openai"},{"type":"url_citation","end_index":1242,"start_index":1093,"title":"FinancialContent - Latest News about Moderna, Inc. - Common Stock (Nasdaq:MRNA) | Moderna, Inc. - Common Stock (Nasdaq:MRNA) News","url":"https://markets.financialcontent.com/stocks/quote/news?ChannelType=PRESSRELEASES&Symbol=nq%3Amrna&utm_source=openai"},{"type":"url_citation","end_index":1688,"start_index":1539,"title":"FinancialContent - Latest News about Moderna, Inc. - Common Stock (Nasdaq:MRNA) | Moderna, Inc. - Common Stock (Nasdaq:MRNA) News","url":"https://markets.financialcontent.com/stocks/quote/news?ChannelType=PRESSRELEASES&Symbol=nq%3Amrna&utm_source=openai"},{"type":"url_citation","end_index":2110,"start_index":1961,"title":"FinancialContent - Latest News about Moderna, Inc. - Common Stock (Nasdaq:MRNA) | Moderna, Inc. - Common Stock (Nasdaq:MRNA) News","url":"https://markets.financialcontent.com/stocks/quote/news?ChannelType=PRESSRELEASES&Symbol=nq%3Amrna&utm_source=openai"}],"logprobs":[],"text":"Moderna has recently achieved significant milestones across its financial performance, product approvals, and research developments.\n\n**Financial Performance:**\nIn the third quarter of 2026, Moderna reported a revenue of $1.3 billion, marking a 29% increase from the previous year. The company returned to profitability with a net income of $162 million, a notable turnaround from a $200 million loss in the same quarter of 2025. Earnings per share were $0.38, compared to a loss of $0.51 per share the previous year. Moderna has also raised its full-year revenue growth outlook to 15%-25%, up from the earlier estimate of up to 10%. ([stocktitan.net](https://www.stocktitan.net/news/MRNA/moderna-reports-third-quarter-2026-financial-results-and-provides-9kk4tzh724ed.html?utm_source=openai))\n\n**Product Approvals:**\nHealth Canada has authorized Moderna's mRNA-based seasonal influenza vaccine, mFLUSIVA®, and the combination influenza and COVID-19 vaccine, mCOFLU®. This makes Canada the first country to approve both vaccines, expanding Moderna's portfolio in the infectious disease sector. ([markets.financialcontent.com](https://markets.financialcontent.com/stocks/quote/news?ChannelType=PRESSRELEASES&Symbol=nq%3Amrna&utm_source=openai))\n\n**Research and Development:**\nModerna is advancing its investigational Bundibugyo Ebolavirus vaccine, mRNA-1469, toward a Phase 2/3 study following encouraging Phase 1 clinical results. The World Health Organization's Technical Advisory Group has recommended its inclusion in an efficacy study. ([markets.financialcontent.com](https://markets.financialcontent.com/stocks/quote/news?ChannelType=PRESSRELEASES&Symbol=nq%3Amrna&utm_source=openai))\n\nAdditionally, initial Phase 1/2 data for mRNA-2808, targeting relapsed or refractory multiple myeloma, will be presented at the 2026 American Society of Hematology Annual Meeting. These findings highlight the potential of Moderna's multiplexed mRNA approach in oncology. ([markets.financialcontent.com](https://markets.financialcontent.com/stocks/quote/news?ChannelType=PRESSRELEASES&Symbol=nq%3Amrna&utm_source=openai))\n\n**Market Performance:**\nAs of November 7, 2026, Moderna's stock (NASDAQ: MRNA) is trading at $254.19, reflecting a 5.27% increase from the previous close. The stock has experienced significant volatility, with an intraday high of $274.77 and a low of $225.69.\n\n## Stock market information for Moderna Inc (MRNA)\n- Moderna Inc is a equity in the USA market.\n- The price is 254.19 USD currently with a change of 12.55 USD (0.05%) from the previous close.\n- The latest open price was 245.0 USD and the intraday volume is 16329129.\n- The intraday high is 274.77 USD and the intraday low is 225.69 USD.\n- The latest trade time is Friday, November 6, 16:59:26 PST.\n\n\nThese developments underscore Moderna's ongoing efforts to expand its product offerings and strengthen its position in the biotechnology sector. "}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":false,"temperature":0.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":1}},"tools":[{"type":"web_search_preview","search_content_types":["text"],"search_context_size":"medium","user_location":{"type":"approximate","city":null,"country":"US","region":null,"timezone":null}}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":317,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":713,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":1030},"user":null,"metadata":{}},"sequence_number":459} diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-1efe84680b53.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-1efe84680b53.json new file mode 100644 index 00000000..0cd43e83 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-1efe84680b53.json @@ -0,0 +1,110 @@ +{ + "id": "resp_0a38607e0e7174d9016aeeba7cfc1887d09813284e2a9bcdc2", + "object": "response", + "created_at": 1794030205, + "status": "completed", + "access_programs": null, + "background": false, + "billing": { + "payer": "developer" + }, + "completed_at": 1794030208, + "error": null, + "frequency_penalty": 0.0, + "image": { + "context_compression": "disabled" + }, + "incomplete_details": null, + "instructions": null, + "max_output_tokens": null, + "max_tool_calls": null, + "model": "gpt-6-luna", + "moderation": null, + "output": [ + { + "id": "rs_0a38607e0e7174d9016aeeba7e042887d0a142a0a73fbfc076", + "type": "reasoning", + "content": [], + "encrypted_content": "gAAAAABq7rqAn2NMGkfOvu__IYvKAzBhJoLGL8CixTFWmG_Id1DpH1-JQJ1M4jzmw_XBERYLw2jSaLnn2rlxXgU-yzNGhrhZvbd8WPI2fl0jC-Tl4WUCb9dfB-2AbYQ59ZJEaYSeK1-UcQ6R4YhHcFEE51TfNU80fiG-Z7zG92WTYRYUniPDIG2WUIOQY5MCNhIcugi1bCLoN5nEOb4N8Z-VUcI0uFnYEHbjMjHExM5eKbuMCFIJmS2bF0aWo0UmFjwNVTrsldBQrNCZwM4miGbJJX0BgHof0zinXDjO8oWV2XE8FDKNgreS4shW3yQHhLofpJyOyxXwhfL8FJiNM4XmDE7bBNuRfcAq8oL2hmQvRoxIjqJmDFev0NdXmmeoh52ZWMyOx1uMHDJoCxY6_-Z3yKUm7DmwbCM-iHubFZfnDbHArhRzkrv59PQbCluJGO5k_9EX8nhewc3laYxNRgM8zVjVYPoYDgAq4wOTGpdTrnwdlRSLlsaPxTdALrnkeJ61l165NoZyTZmNf4MBTStQpr4aQPllJahLkh6cNVgRLu6SMdI-hxRuuvZzxR8M3HYjw4lPCCGqQmat5Rz_HY0dRj2OqOY19Z7srwcQ7R64rcgBsaFhX0qoM-pcpw4hjk67sjtzkZG44sEM0U58h6oxHVSpjd3WN8tqdgdpQE66cd5ir4xJqqGciYAJsRWpcpU1yFIOzrgVydyQkjj_YEAtMm2ieg8cNNpYg6NJVnqYXKUmdjV_1LnEz1C_32zkOyFacrO_QNcV6Jf4IiGd6QGMuNzREzf6xZcJ83j8N5itMdyZwwmmVnLzRLjuWBkN1-FuFc2SosfHhbBpJRLARYbBw4a5fZNA_DvZJ8yQuLnjieBsR5Nel4kEOiYyQmLw-XW8t3Pz4zQGGXPQoDDeFznl7749s1D7yKB9DeGKiGbkkAbz16eF2y5DVNBFpwQZJnEp-fPMo9Rp9oNugnVG9VBIb6YFknLmViwYUS952CJwhe6o_FRpjwKd8VOxnjDI2v9z93mbfrYueKVvgTnQW7dnqVDTS1ppQrFfD933iSEZU-yiVSsV9RE9q3F4Eeo-QY6gSI3iBOM3sBIZIkccD9veSukHWIqLeFssPoy-Y_8HYmgFgKSdwjW1t3YYv3T6hUTKAnOh1E8kNct-KMTDDeaqp0InJpn50M6mRjdGiQTTDLd7A7xIOGL3z7Qm11EzXQ0RFJptPlbvEsyyO-rkrLJGnlWG129HQ6zHVCcMgKaXmPHVDYO5K2ua8Mv5gZrpQOTCkoPElBVTe5wGZOqBPSJh0ZDj300DRh9-VlyAgGGnl31cKh91XOvIYAIGvYumPI2Ya86WR3VzsI1UAWLsV6XRs8UIdu3ZRN-3E-EUtOnV1AWliyJbKRuP-yekPuCL_jfM70sBYJPUhHx13vYXvQl2PsHOuomT-diQoRDwniY7RJlGaxURpl7JRAc4jNHX8hw6KOcdGyrZu9SaBzq8oRlikxRQk0WyJ4cv7nDzmfuEEC6mvCER3gbxZdMpDUwaQMBlBPzo19L0WOGZ9PcQJZpSSzhS4Jr5tF3QlFlf82tMMTXm3WIauoz0b93f9roJ3omosOkxgFC9p-Y3mkO1Wov5xADPBVYnMTHALCPzbHHnSHSOi4RTcSwlkFpo3PlKiZOY-6WcRD2Y2Nx1NPL-0bODf6GrH4k8IpotNRk4sjeh-tsKtIQE_pPyZDK0KjPQ8E23KVG-9_KBZsov0_Lml_fg9QgZ9ZY4c939XeP2CJZYiKxssnDrdEsVMEeSW_MGvuECax9-z0uxwphktRgT1FiNgID9ye-FRozh5rTncfBa5lRhc8jghlqbdqmSFyiwK4q0Tv8E6Pwfj4CU-TAttpNznhPb_8NfzmhmnoHWu-4yCsxfFvG30P6UBUfIl8Rutmj0fFQDNlcd7isvqt7lkiONmTGCOpiA9Boc3-AIG_lME0rpzhWyS14UHmZNLf5ainI13J8c8xDx29cj9WdUsWbH3AYQ_5esafDrt1q-e_nAuFTjVKlAhbw=", + "summary": [ + { + "type": "summary_text", + "text": "**Calculating series sums**\n\nI\u2019m working on an expression for the sum of n(n+1) from 1 to 10, where the result is supposed to be 110. My thought process involves calculating the sum of n\u00b2, which I found to be 385, plus the sum of n, which adds up to 55. Altogether, those values bring me to 440. I need to make sure I'm being careful with my calculations and assumptions moving forward!" + } + ] + }, + { + "id": "msg_0a38607e0e7174d9016aeeba802c9c87d0a8d125003b876e67", + "type": "message", + "status": "completed", + "content": [ + { + "type": "output_text", + "annotations": [], + "logprobs": [], + "text": "Using \\(a_n=n(n+1)\\), the 10th term is\n\n\\[\na_{10}=10\\cdot11=\\boxed{110}.\n\\]\n\nThe sum of the first 10 terms is\n\n\\[\n\\sum_{n=1}^{10}n(n+1)=\\sum_{n=1}^{10}n^2+\\sum_{n=1}^{10}n\n=385+55=\\boxed{440}.\n\\]" + } + ], + "phase": "final_answer", + "role": "assistant" + } + ], + "parallel_tool_calls": true, + "presence_penalty": 0.0, + "previous_response_id": null, + "prompt_cache_key": null, + "prompt_cache_retention": "24h", + "reasoning": { + "context": "all_turns", + "effort": "high", + "mode": "standard", + "summary": "detailed" + }, + "safety_identifier": null, + "service_tier": "default", + "store": false, + "temperature": 1.0, + "text": { + "format": { + "type": "text" + }, + "verbosity": "medium" + }, + "tool_choice": "auto", + "tool_usage": { + "image_gen": { + "input_tokens": 0, + "input_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "output_tokens": 0, + "output_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "total_tokens": 0 + }, + "web_search": { + "num_requests": 0 + } + }, + "tools": [], + "top_logprobs": 0, + "top_p": 0.98, + "truncation": "disabled", + "usage": { + "input_tokens": 231, + "input_tokens_details": { + "cache_write_tokens": 0, + "cached_tokens": 0 + }, + "output_tokens": 148, + "output_tokens_details": { + "reasoning_tokens": 47 + }, + "total_tokens": 379 + }, + "user": null, + "metadata": {} +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-2348ab6c9b2a.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-2348ab6c9b2a.json deleted file mode 100644 index 21571fbc..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-2348ab6c9b2a.json +++ /dev/null @@ -1,204 +0,0 @@ -{ - "id": "resp_0a1647fbb564f737016a95bcadc86c87d0aff88d4981223752", - "object": "response", - "created_at": 1788198061, - "status": "completed", - "background": false, - "billing": { - "payer": "developer" - }, - "completed_at": 1788198070, - "error": null, - "frequency_penalty": 0.0, - "incomplete_details": null, - "instructions": null, - "max_output_tokens": null, - "max_tool_calls": null, - "model": "gpt-4o-2024-08-06", - "moderation": null, - "output": [ - { - "id": "ws_0a1647fbb564f737016a95bcaf0a3087d09a35589019d67185", - "type": "web_search_call", - "status": "completed", - "action": { - "type": "search", - "queries": [ - "Moderna latest news October 2023" - ], - "query": "Moderna latest news October 2023" - } - }, - { - "id": "msg_0a1647fbb564f737016a95bcb0976087d09492703d4b6518f0", - "type": "message", - "status": "completed", - "content": [ - { - "type": "output_text", - "annotations": [ - { - "type": "url_citation", - "end_index": 741, - "start_index": 639, - "title": "Moderna says skin cancer vaccine trial a success", - "url": "https://theweek.com/health/moderna-says-skin-cancer-vaccine-success?utm_source=openai" - }, - { - "type": "url_citation", - "end_index": 1385, - "start_index": 1248, - "title": "FDA approves first mRNA vaccine for seasonal flu", - "url": "https://www.livescience.com/health/medicine-drugs/fda-approves-first-mrna-vaccine-for-seasonal-flu?utm_source=openai" - }, - { - "type": "url_citation", - "end_index": 1907, - "start_index": 1703, - "title": "Moderna reports Q2 2026 revenue $145M, GAAP net loss $0.8B and reiterates up to 10% 2026 revenue growth \u2014 TradingView News", - "url": "https://www.tradingview.com/news/tradingview%3A51f64edf05d88%3A0-moderna-reports-q2-2026-revenue-145m-gaap-net-loss-0-8b-and-reiterates-up-to-10-2026-revenue-growth/?utm_source=openai" - }, - { - "type": "url_citation", - "end_index": 2247, - "start_index": 2110, - "title": "Moderna says skin cancer vaccine trial a success", - "url": "https://theweek.com/health/moderna-says-skin-cancer-vaccine-success?utm_source=openai" - }, - { - "type": "url_citation", - "end_index": 2452, - "start_index": 2284, - "title": "FDA approves first mRNA vaccine for seasonal flu", - "url": "https://www.livescience.com/health/medicine-drugs/fda-approves-first-mrna-vaccine-for-seasonal-flu?utm_source=openai" - }, - { - "type": "url_citation", - "end_index": 2653, - "start_index": 2489, - "title": "New kind of flu shot is on the way as the FDA approves Moderna's mRNA-based vaccine", - "url": "https://apnews.com/article/59d991a6bf70c26e2f0c210cc8ca87f1?utm_source=openai" - } - ], - "logprobs": [], - "text": "Moderna has recently achieved significant milestones in both oncology and infectious disease treatments:\n\n**Advancements in Cancer Treatment**\n\nModerna, in collaboration with Merck, announced promising results from a late-stage clinical trial of their personalized mRNA-based cancer vaccine, intismeran. This vaccine, combined with Merck's immunotherapy drug Keytruda, significantly reduced the recurrence and spread of high-risk melanoma in patients who had undergone surgery. This marks the first successful late-stage trial of a personalized mRNA cancer therapy, potentially opening new avenues for treating melanoma and other cancers. ([theweek.com](https://theweek.com/health/moderna-says-skin-cancer-vaccine-success?utm_source=openai))\n\n**Approval of mRNA Flu Vaccine**\n\nThe U.S. Food and Drug Administration (FDA) approved Moderna's mRNA-based seasonal flu vaccine, mFlusiva (mRNA-1010), for individuals aged 50 and older. This vaccine utilizes the same mRNA technology as Moderna's COVID-19 vaccine, offering a faster production process and better adaptability to circulating flu strains. Clinical trials demonstrated that mFlusiva was 26.6% more effective in preventing flu than standard vaccines, particularly in those aged 65 and older. ([livescience.com](https://www.livescience.com/health/medicine-drugs/fda-approves-first-mrna-vaccine-for-seasonal-flu?utm_source=openai))\n\n**Financial Performance**\n\nIn the second quarter of 2026, Moderna reported total revenue of $145 million and a GAAP net loss of $782 million. Despite the loss, the company reiterated its plan to achieve up to 10% revenue growth for the year and projected year-end cash and investments between $4.7 and $5.2 billion. ([tradingview.com](https://www.tradingview.com/news/tradingview%3A51f64edf05d88%3A0-moderna-reports-q2-2026-revenue-145m-gaap-net-loss-0-8b-and-reiterates-up-to-10-2026-revenue-growth/?utm_source=openai))\n\nThese developments underscore Moderna's ongoing efforts to expand its mRNA technology applications beyond COVID-19, focusing on personalized cancer treatments and seasonal vaccines.\n\n\n## Highlights:\n- [Moderna says skin cancer vaccine trial a success](https://theweek.com/health/moderna-says-skin-cancer-vaccine-success?utm_source=openai), Published on Thursday, August 20\n- [FDA approves first mRNA vaccine for seasonal flu](https://www.livescience.com/health/medicine-drugs/fda-approves-first-mrna-vaccine-for-seasonal-flu?utm_source=openai), Published on Thursday, August 06\n- [New kind of flu shot is on the way as the FDA approves Moderna's mRNA-based vaccine](https://apnews.com/article/59d991a6bf70c26e2f0c210cc8ca87f1?utm_source=openai), Published on Thursday, August 06 " - } - ], - "role": "assistant" - } - ], - "parallel_tool_calls": true, - "presence_penalty": 0.0, - "previous_response_id": null, - "prompt_cache_key": null, - "prompt_cache_retention": "in_memory", - "reasoning": { - "context": null, - "effort": null, - "summary": null - }, - "safety_identifier": null, - "service_tier": "default", - "store": false, - "temperature": 0.0, - "text": { - "format": { - "type": "text" - }, - "verbosity": "medium" - }, - "tool_choice": "auto", - "tool_usage": { - "image_gen": { - "input_tokens": 0, - "input_tokens_details": { - "image_tokens": 0, - "text_tokens": 0 - }, - "output_tokens": 0, - "output_tokens_details": { - "image_tokens": 0, - "text_tokens": 0 - }, - "total_tokens": 0 - }, - "web_search": { - "num_requests": 1 - } - }, - "tools": [ - { - "type": "function", - "description": "Get current weather for a location", - "name": "getWeather", - "output_schema": null, - "parameters": { - "type": "object", - "properties": { - "arg0": { - "type": "string" - } - }, - "required": [ - "arg0" - ], - "additionalProperties": false - }, - "strict": true - }, - { - "type": "function", - "description": "Get weather forecast for next N days", - "name": "getForecast", - "output_schema": null, - "parameters": { - "type": "object", - "properties": { - "arg0": { - "type": "string" - }, - "arg1": { - "type": "integer" - } - }, - "required": [ - "arg0", - "arg1" - ], - "additionalProperties": false - }, - "strict": true - }, - { - "type": "web_search_preview", - "search_content_types": [ - "text" - ], - "search_context_size": "medium", - "user_location": { - "type": "approximate", - "city": null, - "country": "US", - "region": null, - "timezone": null - } - } - ], - "top_logprobs": 0, - "top_p": 1.0, - "truncation": "disabled", - "usage": { - "input_tokens": 378, - "input_tokens_details": { - "cache_write_tokens": 0, - "cached_tokens": 0 - }, - "output_tokens": 650, - "output_tokens_details": { - "reasoning_tokens": 0 - }, - "total_tokens": 1028 - }, - "user": null, - "metadata": {} -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-31d9a6eee624.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-31d9a6eee624.txt index 713396de..59c492a6 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-31d9a6eee624.txt +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-31d9a6eee624.txt @@ -1,912 +1,276 @@ event: response.created -data: {"type":"response.created","response":{"id":"resp_0187444db4e8b9d0006a95bcd430d087d0aed5e425af65ccf2","object":"response","created_at":1788198101,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-2024-08-06","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"web_search_preview","search_content_types":["text"],"search_context_size":"medium","user_location":{"type":"approximate","city":null,"country":"US","region":null,"timezone":null}}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} +data: {"type":"response.created","response":{"id":"resp_04d3a355c79f73df016aeebb63d08887d08960ebe789d1b00f","object":"response","created_at":1794030435,"status":"in_progress","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"image":{"context_compression":"disabled"},"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-2024-08-06","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":false,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"web_search_preview","search_content_types":["text"],"search_context_size":"medium","user_location":{"type":"approximate","city":null,"country":"US","region":null,"timezone":null}}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} event: response.in_progress -data: {"type":"response.in_progress","response":{"id":"resp_0187444db4e8b9d0006a95bcd430d087d0aed5e425af65ccf2","object":"response","created_at":1788198101,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-2024-08-06","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"web_search_preview","search_content_types":["text"],"search_context_size":"medium","user_location":{"type":"approximate","city":null,"country":"US","region":null,"timezone":null}}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} +data: {"type":"response.in_progress","response":{"id":"resp_04d3a355c79f73df016aeebb63d08887d08960ebe789d1b00f","object":"response","created_at":1794030435,"status":"in_progress","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"image":{"context_compression":"disabled"},"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-2024-08-06","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":false,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"web_search_preview","search_content_types":["text"],"search_context_size":"medium","user_location":{"type":"approximate","city":null,"country":"US","region":null,"timezone":null}}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} event: response.output_item.added -data: {"type":"response.output_item.added","item":{"id":"ws_0187444db4e8b9d0006a95bcd7998087d09acb0c349ecd33f6","type":"web_search_call","status":"in_progress","action":{"type":"search"}},"output_index":0,"sequence_number":2} +data: {"type":"response.output_item.added","item":{"id":"ws_04d3a355c79f73df016aeebb646acc87d0a6ae503ae6572da5","type":"web_search_call","status":"in_progress","action":{"type":"search"}},"output_index":0,"sequence_number":2} event: response.web_search_call.in_progress -data: {"type":"response.web_search_call.in_progress","item_id":"ws_0187444db4e8b9d0006a95bcd7998087d09acb0c349ecd33f6","output_index":0,"sequence_number":3} +data: {"type":"response.web_search_call.in_progress","item_id":"ws_04d3a355c79f73df016aeebb646acc87d0a6ae503ae6572da5","output_index":0,"sequence_number":3} event: response.web_search_call.searching -data: {"type":"response.web_search_call.searching","item_id":"ws_0187444db4e8b9d0006a95bcd7998087d09acb0c349ecd33f6","output_index":0,"sequence_number":4} +data: {"type":"response.web_search_call.searching","item_id":"ws_04d3a355c79f73df016aeebb646acc87d0a6ae503ae6572da5","output_index":0,"sequence_number":4} event: response.web_search_call.completed -data: {"type":"response.web_search_call.completed","item_id":"ws_0187444db4e8b9d0006a95bcd7998087d09acb0c349ecd33f6","output_index":0,"sequence_number":5} +data: {"type":"response.web_search_call.completed","item_id":"ws_04d3a355c79f73df016aeebb646acc87d0a6ae503ae6572da5","output_index":0,"sequence_number":5} event: response.output_item.done -data: {"type":"response.output_item.done","item":{"id":"ws_0187444db4e8b9d0006a95bcd7998087d09acb0c349ecd33f6","type":"web_search_call","status":"completed","action":{"type":"search","queries":["recent headlines about artificial intelligence"],"query":"recent headlines about artificial intelligence"}},"output_index":0,"sequence_number":6} +data: {"type":"response.output_item.done","item":{"id":"ws_04d3a355c79f73df016aeebb646acc87d0a6ae503ae6572da5","type":"web_search_call","status":"completed","action":{"type":"search","queries":["recent news headline about artificial intelligence October 2023"],"query":"recent news headline about artificial intelligence October 2023"}},"output_index":0,"sequence_number":6} event: response.output_item.added -data: {"type":"response.output_item.added","item":{"id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":1,"sequence_number":7} +data: {"type":"response.output_item.added","item":{"id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":1,"sequence_number":7} event: response.content_part.added -data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","output_index":1,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":8} +data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","output_index":1,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":8} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"One","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"nMSUTWdX4eI8l","output_index":1,"sequence_number":9} +data: {"type":"response.output_text.delta","content_index":0,"delta":"A","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"qJypUGA4IjP6xGw","output_index":1,"sequence_number":9} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" recent","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"1RKdHa2SF","output_index":1,"sequence_number":10} +data: {"type":"response.output_text.delta","content_index":0,"delta":" recent","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"o1dgRfWm5","output_index":1,"sequence_number":10} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" headline","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"cvWTZLG","output_index":1,"sequence_number":11} +data: {"type":"response.output_text.delta","content_index":0,"delta":" headline","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"dVAOEP5","output_index":1,"sequence_number":11} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" about","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"tlbFZxjWzP","output_index":1,"sequence_number":12} +data: {"type":"response.output_text.delta","content_index":0,"delta":" about","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"FtKEI6pKas","output_index":1,"sequence_number":12} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" artificial","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"7gEW9","output_index":1,"sequence_number":13} +data: {"type":"response.output_text.delta","content_index":0,"delta":" artificial","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"kcn4S","output_index":1,"sequence_number":13} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" intelligence","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"ENv","output_index":1,"sequence_number":14} +data: {"type":"response.output_text.delta","content_index":0,"delta":" intelligence","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"jOo","output_index":1,"sequence_number":14} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" is","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"Jh506D9HVM4if","output_index":1,"sequence_number":15} +data: {"type":"response.output_text.delta","content_index":0,"delta":" is","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"me5tdZD1VtWR2","output_index":1,"sequence_number":15} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":":","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"kGE9yVLRSR29Cum","output_index":1,"sequence_number":16} +data: {"type":"response.output_text.delta","content_index":0,"delta":":","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"7IgGTEbmyyAGuN3","output_index":1,"sequence_number":16} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"LIG34TNQ5NVqzf4","output_index":1,"sequence_number":17} +data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"oR8PI2nFjC0fDS3","output_index":1,"sequence_number":17} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"\n**","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"oErvzbfW71l5u","output_index":1,"sequence_number":18} +data: {"type":"response.output_text.delta","content_index":0,"delta":"\n**","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"CSLllEfuuWBtu","output_index":1,"sequence_number":18} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"\"","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"MrH0UkXuTMpzj3h","output_index":1,"sequence_number":19} +data: {"type":"response.output_text.delta","content_index":0,"delta":"\"","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"MMb3JzWjZlWJyQ1","output_index":1,"sequence_number":19} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"AWS","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"KTo68W56ufOZ6","output_index":1,"sequence_number":20} +data: {"type":"response.output_text.delta","content_index":0,"delta":"Pro","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"pf1qy5eDpfo1B","output_index":1,"sequence_number":20} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" is","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"GoArlKA1WjDEu","output_index":1,"sequence_number":21} +data: {"type":"response.output_text.delta","content_index":0,"delta":"test","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"DQIWq5i4zMNm","output_index":1,"sequence_number":21} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" shutting","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"uiL9phk","output_index":1,"sequence_number":22} +data: {"type":"response.output_text.delta","content_index":0,"delta":"ers","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"gINQCcLgOnQCY","output_index":1,"sequence_number":22} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" down","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"YFz5L2vsgPD","output_index":1,"sequence_number":23} +data: {"type":"response.output_text.delta","content_index":0,"delta":" break","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"PwDW3ipdpd","output_index":1,"sequence_number":23} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Mechanical","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"M8KPM","output_index":1,"sequence_number":24} +data: {"type":"response.output_text.delta","content_index":0,"delta":" into","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"HvuOmVN1GMd","output_index":1,"sequence_number":24} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Turk","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"K7X7mChTfCD","output_index":1,"sequence_number":25} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Microsoft","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"QtbQjF","output_index":1,"sequence_number":25} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"kHeso7Ls7Q4CId5","output_index":1,"sequence_number":26} +data: {"type":"response.output_text.delta","content_index":0,"delta":" data","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"kgSHBP9kt9Q","output_index":1,"sequence_number":26} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" which","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"blPTJlqdir","output_index":1,"sequence_number":27} +data: {"type":"response.output_text.delta","content_index":0,"delta":" center","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"TaHSel5fk","output_index":1,"sequence_number":27} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" let","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"rsky9XXtGF92","output_index":1,"sequence_number":28} +data: {"type":"response.output_text.delta","content_index":0,"delta":" site","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"KOVjymHfGVL","output_index":1,"sequence_number":28} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" humans","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"Lm8LiE5Ky","output_index":1,"sequence_number":29} +data: {"type":"response.output_text.delta","content_index":0,"delta":" in","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"HANWAnwwwxHQ3","output_index":1,"sequence_number":29} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" beat","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"3j30NbUCSfE","output_index":1,"sequence_number":30} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Amsterdam","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"l6K3n2","output_index":1,"sequence_number":30} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" AI","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"xsWMvDXcwbXBl","output_index":1,"sequence_number":31} +data: {"type":"response.output_text.delta","content_index":0,"delta":" as","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"sKvXR14MSRJT5","output_index":1,"sequence_number":31} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" at","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"P0ZtRs6syfTTK","output_index":1,"sequence_number":32} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Europe's","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"6Bs0Q7s","output_index":1,"sequence_number":32} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" certain","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"YCAKcuNL","output_index":1,"sequence_number":33} +data: {"type":"response.output_text.delta","content_index":0,"delta":" backlash","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"JJuk7WA","output_index":1,"sequence_number":33} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" work","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"jBoYevzwviZ","output_index":1,"sequence_number":34} +data: {"type":"response.output_text.delta","content_index":0,"delta":" spreads","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"gaoB1PeN","output_index":1,"sequence_number":34} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" tasks","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"UGLcX2WZmD","output_index":1,"sequence_number":35} +data: {"type":"response.output_text.delta","content_index":0,"delta":"\"","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"9vXHYmecrWLctDv","output_index":1,"sequence_number":35} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"\"","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"Hg9wHmVbofLepDO","output_index":1,"sequence_number":36} +data: {"type":"response.output_text.delta","content_index":0,"delta":"**","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"HSuEKU0ugteQz4","output_index":1,"sequence_number":36} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"**\n","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"JbMefxnPRVpK9","output_index":1,"sequence_number":37} +data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"ltKhsdIP2FSUtfq","output_index":1,"sequence_number":37} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"lnTCjl5urKIED1s","output_index":1,"sequence_number":38} +data: {"type":"response.output_text.delta","content_index":0,"delta":"([apnews.com](https://apnews.com/article/b4f3f9f368697bb37416bcb4fabdd67c?utm_source=openai))","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"Q1v","output_index":1,"sequence_number":38} -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"Amazon","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"XDaI954k3l","output_index":1,"sequence_number":39} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" has","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"RnKJrqkRSwu7","output_index":1,"sequence_number":40} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" announced","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"jO1HJy","output_index":1,"sequence_number":41} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" it","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"vPU05KEURQTG3","output_index":1,"sequence_number":42} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" will","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"ookgl2tkpPe","output_index":1,"sequence_number":43} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" shut","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"e2juKUobvcY","output_index":1,"sequence_number":44} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" down","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"bFCh9vwXhts","output_index":1,"sequence_number":45} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" its","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"3zN026FqeBQA","output_index":1,"sequence_number":46} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Mechanical","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"mrGSZ","output_index":1,"sequence_number":47} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Turk","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"hnHtXklBjR8","output_index":1,"sequence_number":48} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" (","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"JyX6pyFgx4dmf7","output_index":1,"sequence_number":49} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"MT","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"uXbexgwGJrjw5y","output_index":1,"sequence_number":50} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"urk","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"oydXoI6TtUf4z","output_index":1,"sequence_number":51} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":")","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"xW47YyHIvL1t8pI","output_index":1,"sequence_number":52} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" platform","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"8ePiOnd","output_index":1,"sequence_number":53} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" on","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"BVxuwbYyfnhDj","output_index":1,"sequence_number":54} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" September","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"uMum8y","output_index":1,"sequence_number":55} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"RnxGLig2baSB1lV","output_index":1,"sequence_number":56} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"30","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"TymtzasA1KFx5q","output_index":1,"sequence_number":57} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"ByhGTN6Bq4jlvvQ","output_index":1,"sequence_number":58} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"T82oZDK69fM7oaP","output_index":1,"sequence_number":59} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"202","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"0u1JswJnqxz51","output_index":1,"sequence_number":60} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"6","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"3J2aCsUF6Fdgcdn","output_index":1,"sequence_number":61} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"kHdwJ7yhwC44R82","output_index":1,"sequence_number":62} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"f62hs4xArhWgV80","output_index":1,"sequence_number":63} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"La","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"mQtFbE5qEj2Uic","output_index":1,"sequence_number":64} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"unched","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"6HB45JzHsT","output_index":1,"sequence_number":65} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" in","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"9QHnfr9YIqVmp","output_index":1,"sequence_number":66} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"KMKO9BgOvFvSVx2","output_index":1,"sequence_number":67} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"200","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"wDGMtIuNWTeAd","output_index":1,"sequence_number":68} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"5","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"M0SRYLyamJnlHfA","output_index":1,"sequence_number":69} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"KT43feyPoz6HGjQ","output_index":1,"sequence_number":70} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" MT","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"4t49XEGBvAPev","output_index":1,"sequence_number":71} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"urk","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"XBhJR3ImvbJaG","output_index":1,"sequence_number":72} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" enabled","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"QiUjGNao","output_index":1,"sequence_number":73} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" companies","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"V6lVbB","output_index":1,"sequence_number":74} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" to","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"jrH13yJVXFLiA","output_index":1,"sequence_number":75} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" outsource","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"BZqZj8","output_index":1,"sequence_number":76} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" small","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"jbJFJoC8Ri","output_index":1,"sequence_number":77} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"qf2ULBb5TIW1UQx","output_index":1,"sequence_number":78} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" routine","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"rvc9cGeB","output_index":1,"sequence_number":79} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" digital","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"erKgAikd","output_index":1,"sequence_number":80} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" tasks","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"d1a6IixWBh","output_index":1,"sequence_number":81} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" to","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"gp79ury9y7iXY","output_index":1,"sequence_number":82} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" human","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"U04RNWWH5a","output_index":1,"sequence_number":83} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" workers","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"f8lTrDHt","output_index":1,"sequence_number":84} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"RiPSJOQJJkAS32L","output_index":1,"sequence_number":85} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" particularly","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"q2L","output_index":1,"sequence_number":86} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" those","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"h6l7X2z2pG","output_index":1,"sequence_number":87} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" tasks","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"M3E44Pdqq4","output_index":1,"sequence_number":88} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" that","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"9ManyQrNVaK","output_index":1,"sequence_number":89} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" computers","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"7xd5s0","output_index":1,"sequence_number":90} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" initially","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"E8fPBD","output_index":1,"sequence_number":91} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" struggled","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"i44jCd","output_index":1,"sequence_number":92} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" with","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"D2LTVkCO7u0","output_index":1,"sequence_number":93} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"R1xsMoa1ajhafZV","output_index":1,"sequence_number":94} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" such","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"T3mYuHRes1F","output_index":1,"sequence_number":95} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" as","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"Vj7PZsWPQuRDq","output_index":1,"sequence_number":96} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" labeling","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"h0tnItu","output_index":1,"sequence_number":97} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" data","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"USFdjhWAeam","output_index":1,"sequence_number":98} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"mLETalRdBDg3GjZ","output_index":1,"sequence_number":99} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" tagging","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"5C7Zwq57","output_index":1,"sequence_number":100} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" images","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"G7NvBNmrD","output_index":1,"sequence_number":101} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"4r9gitIsKb84OUX","output_index":1,"sequence_number":102} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"DsRrtRJqQWDf","output_index":1,"sequence_number":103} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" trans","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"hxeE4ZJfse","output_index":1,"sequence_number":104} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"cribing","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"6EUsE1YdD","output_index":1,"sequence_number":105} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" audio","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"7sZJvopns8","output_index":1,"sequence_number":106} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"ay1h9BokAy9ryzN","output_index":1,"sequence_number":107} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"1SBhqT11NJyTWzb","output_index":1,"sequence_number":108} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"At","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"DIewjxO6NmiT3w","output_index":1,"sequence_number":109} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" its","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"PUxUxZEpJZwk","output_index":1,"sequence_number":110} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" peak","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"Y1bNsyvN5te","output_index":1,"sequence_number":111} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"9m6aNFsFt8cR2Mq","output_index":1,"sequence_number":112} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"GTW4dYrF5XIb","output_index":1,"sequence_number":113} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" platform","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"fmFWoD7","output_index":1,"sequence_number":114} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" connected","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"lxkdpw","output_index":1,"sequence_number":115} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" over","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"KLhiIyduSFY","output_index":1,"sequence_number":116} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"O7Blh4rY5xqcfLp","output_index":1,"sequence_number":117} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"500","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"n7Rjv9TLVrd4O","output_index":1,"sequence_number":118} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"UE0r3kven1H0v8K","output_index":1,"sequence_number":119} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"000","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"vj6SBcusTpawL","output_index":1,"sequence_number":120} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" workers","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"GLLEGGl7","output_index":1,"sequence_number":121} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"jy28ehrEGOqAhQ0","output_index":1,"sequence_number":122} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" known","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"EnxRWJBOYk","output_index":1,"sequence_number":123} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" as","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"Vm6vJQwRNRMvc","output_index":1,"sequence_number":124} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" \"","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"0BLGMhGLU30CN4","output_index":1,"sequence_number":125} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"tur","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"tngF4jzFh7izz","output_index":1,"sequence_number":126} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"kers","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"kwNSzPcnL2Z2","output_index":1,"sequence_number":127} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",\"","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"QEMrKbuG5vAouL","output_index":1,"sequence_number":128} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"2KN8VC4DwYbr","output_index":1,"sequence_number":129} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" played","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"T6lmlVnda","output_index":1,"sequence_number":130} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" a","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"RR2KtfyXlfvtKY","output_index":1,"sequence_number":131} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" key","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"2z8MbObwmCZ6","output_index":1,"sequence_number":132} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" role","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"qePtI2JRa1p","output_index":1,"sequence_number":133} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" in","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"ZOujtdRHzBrxH","output_index":1,"sequence_number":134} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" labeling","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"gX2PF8y","output_index":1,"sequence_number":135} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" data","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"Cd7wh4jBUON","output_index":1,"sequence_number":136} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" for","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"mAQTxmaisWpd","output_index":1,"sequence_number":137} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Amazon","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"tK6AdAZqy","output_index":1,"sequence_number":138} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"’s","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"UmtBynCx48XPyU","output_index":1,"sequence_number":139} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Sage","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"RgARpnlNfhu","output_index":1,"sequence_number":140} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"Maker","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"r1GvU69Tvf1","output_index":1,"sequence_number":141} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" AI","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"bzs0Su9CAaLX0","output_index":1,"sequence_number":142} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" service","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"FvohxUzS","output_index":1,"sequence_number":143} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"KedrhkX47jqhEey","output_index":1,"sequence_number":144} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"jKnYp6MpzLHlZXK","output_index":1,"sequence_number":145} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"However","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"uRBYslq3d","output_index":1,"sequence_number":146} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"b3jipV7pDxjauLG","output_index":1,"sequence_number":147} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" rapid","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"66yvmhGNox","output_index":1,"sequence_number":148} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" advancements","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"sFG","output_index":1,"sequence_number":149} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" in","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"KQA0fGo64niQP","output_index":1,"sequence_number":150} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" artificial","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"L49nJ","output_index":1,"sequence_number":151} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" intelligence","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"w9c","output_index":1,"sequence_number":152} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" have","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"uL4huPoOaLf","output_index":1,"sequence_number":153} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" rendered","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"zjJsl6Y","output_index":1,"sequence_number":154} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" many","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"uU6jBLnyNZL","output_index":1,"sequence_number":155} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"CY15ncpPuWyFZ","output_index":1,"sequence_number":156} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" these","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"90SKE92TsY","output_index":1,"sequence_number":157} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" tasks","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"edtgEUUuQz","output_index":1,"sequence_number":158} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" more","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"gmeE6OrcaLt","output_index":1,"sequence_number":159} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" efficiently","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"Wnwq","output_index":1,"sequence_number":160} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" managed","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"tb0PvVpU","output_index":1,"sequence_number":161} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" by","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"cC7FY0YXgpt0F","output_index":1,"sequence_number":162} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" machines","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"jtFVL45","output_index":1,"sequence_number":163} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"ko1oYXnwZ1KeyLi","output_index":1,"sequence_number":164} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" leading","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"J0XuXWR5","output_index":1,"sequence_number":165} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" to","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"9buZICKHJ0xKX","output_index":1,"sequence_number":166} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" a","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"HeNV8dAGup2x4g","output_index":1,"sequence_number":167} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" steady","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"yqDPl2c4H","output_index":1,"sequence_number":168} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" decline","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"VCPKQLJr","output_index":1,"sequence_number":169} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" in","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"P6HB0koVeNmXV","output_index":1,"sequence_number":170} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" MT","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"IBJskoiX7RUmz","output_index":1,"sequence_number":171} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"urk","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"872Op8FuEjlPd","output_index":1,"sequence_number":172} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"’s","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"EA5IJBQBDfu1Uw","output_index":1,"sequence_number":173} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" relevance","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"9nXlJ4","output_index":1,"sequence_number":174} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"Pc0o90niqHJMxB4","output_index":1,"sequence_number":175} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"BamKhssmz5ZfG1K","output_index":1,"sequence_number":176} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"Worker","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"SQTjpTER5z","output_index":1,"sequence_number":177} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" advocates","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"5d4DSs","output_index":1,"sequence_number":178} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"TgWmK0zHrkbMsSy","output_index":1,"sequence_number":179} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" including","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"BPFPAE","output_index":1,"sequence_number":180} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Turk","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"JgtTr2Fs0DB","output_index":1,"sequence_number":181} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"opt","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"uTrHJsZOCgVGY","output_index":1,"sequence_number":182} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"icon","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"LQ0ONnaBtnGG","output_index":1,"sequence_number":183} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"'s","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"U4YlFB0CwE3dOc","output_index":1,"sequence_number":184} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Krist","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"4vwYvmhwFY","output_index":1,"sequence_number":185} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"a","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"4LYgJr3NwiW7ZfV","output_index":1,"sequence_number":186} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Paw","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"n0unVNncCV05","output_index":1,"sequence_number":187} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"los","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"bDoeGKxOG23J6","output_index":1,"sequence_number":188} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"ki","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"fa5gOea2gocUCm","output_index":1,"sequence_number":189} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"6Bkcy5TIK3LT3pL","output_index":1,"sequence_number":190} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" noted","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"PgiNmu22mN","output_index":1,"sequence_number":191} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" that","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"RSHnz8at9UT","output_index":1,"sequence_number":192} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Amazon","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"Thdr4hQED","output_index":1,"sequence_number":193} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" had","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"hAZBAxS3K60k","output_index":1,"sequence_number":194} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" depr","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"mBdylzFBRn5","output_index":1,"sequence_number":195} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"ior","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"p9zpnuLJN3xdh","output_index":1,"sequence_number":196} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"itized","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"LFVGxArSNT","output_index":1,"sequence_number":197} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"22pzwjiqoK56","output_index":1,"sequence_number":198} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" platform","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"iDedYOm","output_index":1,"sequence_number":199} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" in","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"PSFhqp5XtBpqp","output_index":1,"sequence_number":200} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" recent","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"igHrDW1u7","output_index":1,"sequence_number":201} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" years","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"AGPrxUTxUM","output_index":1,"sequence_number":202} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"qPQdwJKt16Yo5rP","output_index":1,"sequence_number":203} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" even","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"BvXY2GeX215","output_index":1,"sequence_number":204} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" as","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"DT1Z3HEV5ETT3","output_index":1,"sequence_number":205} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" competitors","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"X1aa","output_index":1,"sequence_number":206} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" like","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"sK9VjkSzEB8","output_index":1,"sequence_number":207} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Scale","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"QXYCoRhdRs","output_index":1,"sequence_number":208} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" AI","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"LYImWg3TSujsn","output_index":1,"sequence_number":209} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"IYgxFehac220","output_index":1,"sequence_number":210} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Pro","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"hronvWNVvUZL","output_index":1,"sequence_number":211} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"l","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"1POOEWeIVJjhNtd","output_index":1,"sequence_number":212} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"ific","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"lDiIuFCWneNr","output_index":1,"sequence_number":213} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" emerged","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"rD1C35uP","output_index":1,"sequence_number":214} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"XQjqaIlsQaIEmqW","output_index":1,"sequence_number":215} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"lxWKegx4zeeflC5","output_index":1,"sequence_number":216} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"The","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"8LFujxjMhQgRr","output_index":1,"sequence_number":217} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" closure","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"bE257rX0","output_index":1,"sequence_number":218} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" signals","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"e7uThuQK","output_index":1,"sequence_number":219} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" a","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"ptIMz3xSzrXQyM","output_index":1,"sequence_number":220} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" broader","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"E7fZ0CgF","output_index":1,"sequence_number":221} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" shift","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"qY23mXj6Dq","output_index":1,"sequence_number":222} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" in","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"AQkHxyQw54qB0","output_index":1,"sequence_number":223} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" AI","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"A9CONU9sH6O39","output_index":1,"sequence_number":224} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" economics","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"0OZPtj","output_index":1,"sequence_number":225} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"OZXdcLxoaR6obII","output_index":1,"sequence_number":226} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" where","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"dTdvEhwvOH","output_index":1,"sequence_number":227} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" automated","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"RLuw48","output_index":1,"sequence_number":228} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" systems","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"bII4tpbg","output_index":1,"sequence_number":229} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" are","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"Cylfe69CX3oN","output_index":1,"sequence_number":230} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" increasingly","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"XpT","output_index":1,"sequence_number":231} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" surpass","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"8pal5HbS","output_index":1,"sequence_number":232} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"ing","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"JcqW4usFaSxxS","output_index":1,"sequence_number":233} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" human","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"kvJTAHK5Ag","output_index":1,"sequence_number":234} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" capabilities","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"BNU","output_index":1,"sequence_number":235} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" in","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"k9EEzUQ4E1fsa","output_index":1,"sequence_number":236} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" data","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"AnrN9rLw1Ks","output_index":1,"sequence_number":237} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" processing","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"rXjts","output_index":1,"sequence_number":238} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"jcxc9M6J23aSa0n","output_index":1,"sequence_number":239} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"oj75rLfWRrpvCHz","output_index":1,"sequence_number":240} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"Despite","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"Ym55r29hu","output_index":1,"sequence_number":241} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" MT","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"6rg0ZAj0HqK3X","output_index":1,"sequence_number":242} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"urk","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"kbqAARO1nQuFT","output_index":1,"sequence_number":243} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"’s","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"Iwx1cvADhuDkMr","output_index":1,"sequence_number":244} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" shutdown","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"xGvyTL8","output_index":1,"sequence_number":245} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"J9Ojj6gqdM4bK9l","output_index":1,"sequence_number":246} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Amazon","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"1uV4hIjgr","output_index":1,"sequence_number":247} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" aff","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"eFhvx2vzaqzQ","output_index":1,"sequence_number":248} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"irms","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"WpjtQktXJT4v","output_index":1,"sequence_number":249} - -event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" its","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"bAjmmqaNasaj","output_index":1,"sequence_number":250} +event: response.output_text.annotation.added +data: {"type":"response.output_text.annotation.added","annotation":{"type":"url_citation","end_index":243,"start_index":150,"title":"Protesters break into Microsoft data center site in Amsterdam as Europe's backlash spreads","url":"https://apnews.com/article/b4f3f9f368697bb37416bcb4fabdd67c?utm_source=openai"},"annotation_index":0,"content_index":0,"item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","output_index":1,"sequence_number":39} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ongoing","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"OYzazi7u","output_index":1,"sequence_number":251} +data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"efSnydTFLlCtmOJ","output_index":1,"sequence_number":40} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" commitment","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"W1hPQ","output_index":1,"sequence_number":252} +data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"VweNDrNylzgkTJb","output_index":1,"sequence_number":41} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" to","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"dTaKVGxKH5yGT","output_index":1,"sequence_number":253} +data: {"type":"response.output_text.delta","content_index":0,"delta":"This","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"tvd0luyaJ2Oc","output_index":1,"sequence_number":42} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" serving","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"FK6fzN6J","output_index":1,"sequence_number":254} +data: {"type":"response.output_text.delta","content_index":0,"delta":" article","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"Sgam6TQd","output_index":1,"sequence_number":43} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" its","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"1jfGdFUjytTP","output_index":1,"sequence_number":255} +data: {"type":"response.output_text.delta","content_index":0,"delta":" reports","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"panlX2Vp","output_index":1,"sequence_number":44} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" AWS","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"lHS92KGF0VEa","output_index":1,"sequence_number":256} +data: {"type":"response.output_text.delta","content_index":0,"delta":" on","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"Fpc7F3IwEBnC9","output_index":1,"sequence_number":45} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"M06sJW7I05ht","output_index":1,"sequence_number":257} +data: {"type":"response.output_text.delta","content_index":0,"delta":" activists","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"fiiR4J","output_index":1,"sequence_number":46} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" retail","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"ezN9qZrdk","output_index":1,"sequence_number":258} +data: {"type":"response.output_text.delta","content_index":0,"delta":" entering","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"ARiSIfO","output_index":1,"sequence_number":47} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" customers","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"mxojPC","output_index":1,"sequence_number":259} +data: {"type":"response.output_text.delta","content_index":0,"delta":" a","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"wefUb5XVfYZdWK","output_index":1,"sequence_number":48} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"3Ii4z3BYllN0Njh","output_index":1,"sequence_number":260} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Microsoft","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"Dr8nAV","output_index":1,"sequence_number":49} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"UuFYUSX1oYPBNhs","output_index":1,"sequence_number":261} +data: {"type":"response.output_text.delta","content_index":0,"delta":" data","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"7K4K6VVuqvJ","output_index":1,"sequence_number":50} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"The","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"CvjM25JZwUV8V","output_index":1,"sequence_number":262} +data: {"type":"response.output_text.delta","content_index":0,"delta":" center","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"N7H2TVCaD","output_index":1,"sequence_number":51} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" move","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"k3G5nHFz5hU","output_index":1,"sequence_number":263} +data: {"type":"response.output_text.delta","content_index":0,"delta":" construction","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"jO0","output_index":1,"sequence_number":52} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" has","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"jDTJwMfbwKtd","output_index":1,"sequence_number":264} +data: {"type":"response.output_text.delta","content_index":0,"delta":" site","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"4mABv9DSAmB","output_index":1,"sequence_number":53} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" left","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"g55xdk5plpl","output_index":1,"sequence_number":265} +data: {"type":"response.output_text.delta","content_index":0,"delta":" in","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"f5SASpCRFIIS4","output_index":1,"sequence_number":54} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" some","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"X0OqZ7d6ktg","output_index":1,"sequence_number":266} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Amsterdam","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"KxRktN","output_index":1,"sequence_number":55} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" long","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"0G63AuqzNBc","output_index":1,"sequence_number":267} +data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"30lK1prRkhiwAfo","output_index":1,"sequence_number":56} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"-term","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"nZc6MSN186X","output_index":1,"sequence_number":268} +data: {"type":"response.output_text.delta","content_index":0,"delta":" highlighting","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"bVe","output_index":1,"sequence_number":57} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" workers","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"KhCZFd2W","output_index":1,"sequence_number":269} +data: {"type":"response.output_text.delta","content_index":0,"delta":" growing","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"GPn38drW","output_index":1,"sequence_number":58} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" scrambling","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"O761u","output_index":1,"sequence_number":270} +data: {"type":"response.output_text.delta","content_index":0,"delta":" opposition","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"oqSEo","output_index":1,"sequence_number":59} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" to","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"XefDI0sTcHL36","output_index":1,"sequence_number":271} +data: {"type":"response.output_text.delta","content_index":0,"delta":" to","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"4DX6qrM5VfHY1","output_index":1,"sequence_number":60} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" find","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"fwJdNrw7e26","output_index":1,"sequence_number":272} +data: {"type":"response.output_text.delta","content_index":0,"delta":" large","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"BroG2VxxQ8","output_index":1,"sequence_number":61} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" alternative","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"9fdp","output_index":1,"sequence_number":273} +data: {"type":"response.output_text.delta","content_index":0,"delta":"-scale","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"9BenK0ISH5","output_index":1,"sequence_number":62} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" platforms","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"xX8xDT","output_index":1,"sequence_number":274} +data: {"type":"response.output_text.delta","content_index":0,"delta":" data","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"CGvclV2JJg8","output_index":1,"sequence_number":63} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"jptptU5KqyuRaMD","output_index":1,"sequence_number":275} +data: {"type":"response.output_text.delta","content_index":0,"delta":" center","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"mVqxaviKb","output_index":1,"sequence_number":64} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" especially","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"VKPo9","output_index":1,"sequence_number":276} +data: {"type":"response.output_text.delta","content_index":0,"delta":" projects","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"lckmt5Z","output_index":1,"sequence_number":65} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" as","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"dw5KBOSYuwLT9","output_index":1,"sequence_number":277} +data: {"type":"response.output_text.delta","content_index":0,"delta":" across","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"bqZNLbklh","output_index":1,"sequence_number":66} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" certain","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"ELLjmm3A","output_index":1,"sequence_number":278} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Europe","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"HcJrkFgR9","output_index":1,"sequence_number":67} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" businesses","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"5COEZ","output_index":1,"sequence_number":279} +data: {"type":"response.output_text.delta","content_index":0,"delta":" due","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"w6Sv9JjBD0vu","output_index":1,"sequence_number":68} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" still","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"zhnN9DC2k2","output_index":1,"sequence_number":280} +data: {"type":"response.output_text.delta","content_index":0,"delta":" to","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"xT7t24zxWjZZz","output_index":1,"sequence_number":69} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" depend","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"366ULYVz8","output_index":1,"sequence_number":281} +data: {"type":"response.output_text.delta","content_index":0,"delta":" concerns","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"XIKpNQM","output_index":1,"sequence_number":70} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" on","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"c2QMcElJ5S8bg","output_index":1,"sequence_number":282} +data: {"type":"response.output_text.delta","content_index":0,"delta":" over","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"b2T0LcJmw6w","output_index":1,"sequence_number":71} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" human","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"8vXt2tMvTc","output_index":1,"sequence_number":283} +data: {"type":"response.output_text.delta","content_index":0,"delta":" energy","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"SLzVyL3RO","output_index":1,"sequence_number":72} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" task","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"MfMlwo3p2QU","output_index":1,"sequence_number":284} +data: {"type":"response.output_text.delta","content_index":0,"delta":" consumption","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"6KIg","output_index":1,"sequence_number":73} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" outsourcing","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"QbWC","output_index":1,"sequence_number":285} +data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"hAfSPYTRFSJ8","output_index":1,"sequence_number":74} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"ugSO7gwDZNPUJPo","output_index":1,"sequence_number":286} +data: {"type":"response.output_text.delta","content_index":0,"delta":" environmental","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"Fw","output_index":1,"sequence_number":75} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"29Y92H3ZeMDPUMe","output_index":1,"sequence_number":287} +data: {"type":"response.output_text.delta","content_index":0,"delta":" impact","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"MPhB55W0E","output_index":1,"sequence_number":76} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"([techradar.com](https://www.techradar.com/pro/aws-is-shutting-down-mechanical-turk-which-let-humans-beat-ai-at-certain-work-tasks?utm_source=openai))","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"ngYRm9TFWX","output_index":1,"sequence_number":288} - -event: response.output_text.annotation.added -data: {"type":"response.output_text.annotation.added","annotation":{"type":"url_citation","end_index":1542,"start_index":1392,"title":"AWS is shutting down Mechanical Turk, which let humans beat AI at certain work tasks","url":"https://www.techradar.com/pro/aws-is-shutting-down-mechanical-turk-which-let-humans-beat-ai-at-certain-work-tasks?utm_source=openai"},"annotation_index":0,"content_index":0,"item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","output_index":1,"sequence_number":289} +data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"FmKqb33vFgJVCE0","output_index":1,"sequence_number":77} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"IR8qgzNBHXVyjx6","output_index":1,"sequence_number":290} +data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"zXJjUe7cYJjgT8s","output_index":1,"sequence_number":78} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"XxeAP7iD0mKqO56","output_index":1,"sequence_number":291} +data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"iwT9K1uF4yfl1DS","output_index":1,"sequence_number":79} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"\n## Highlights:\n","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"","output_index":1,"sequence_number":292} +data: {"type":"response.output_text.delta","content_index":0,"delta":"\n## Highlights:\n","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"","output_index":1,"sequence_number":80} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"- [AWS is shutting down Mechanical Turk, which let humans beat AI at certain work tasks](https://www.techradar.com/pro/aws-is-shutting-down-mechanical-turk-which-let-humans-beat-ai-at-certain-work-tasks?utm_source=openai), Published on Saturday, August 29","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"p","output_index":1,"sequence_number":293} +data: {"type":"response.output_text.delta","content_index":0,"delta":"- [Protesters break into Microsoft data center site in Amsterdam as Europe's backlash spreads](https://apnews.com/article/b4f3f9f368697bb37416bcb4fabdd67c?utm_source=openai), Published on Friday, November 06","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"I","output_index":1,"sequence_number":81} event: response.output_text.annotation.added -data: {"type":"response.output_text.annotation.added","annotation":{"type":"url_citation","end_index":1781,"start_index":1562,"title":"AWS is shutting down Mechanical Turk, which let humans beat AI at certain work tasks","url":"https://www.techradar.com/pro/aws-is-shutting-down-mechanical-turk-which-let-humans-beat-ai-at-certain-work-tasks?utm_source=openai"},"annotation_index":1,"content_index":0,"item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","output_index":1,"sequence_number":294} +data: {"type":"response.output_text.annotation.added","annotation":{"type":"url_citation","end_index":682,"start_index":511,"title":"Protesters break into Microsoft data center site in Amsterdam as Europe's backlash spreads","url":"https://apnews.com/article/b4f3f9f368697bb37416bcb4fabdd67c?utm_source=openai"},"annotation_index":1,"content_index":0,"item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","output_index":1,"sequence_number":82} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"\n- [Bill Gates sounds the alarm on an AI transition](https://www.axios.com/2026/08/26/bill-gates-sounds-the-alarm-on-an-ai-transition?utm_source=openai), Published on Wednesday, August 26","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"X3g6E","output_index":1,"sequence_number":295} +data: {"type":"response.output_text.delta","content_index":0,"delta":"\n- [Akron Beacon Journal journalists protest AI tool](https://www.axios.com/local/cleveland/2026/11/06/akron-beacon-journal-byline-withdrawal-ai?utm_source=openai), Published on Friday, November 06","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"pnDOnGz0g2i","output_index":1,"sequence_number":83} event: response.output_text.annotation.added -data: {"type":"response.output_text.annotation.added","annotation":{"type":"url_citation","end_index":1967,"start_index":1818,"title":"Bill Gates sounds the alarm on an AI transition","url":"https://www.axios.com/2026/08/26/bill-gates-sounds-the-alarm-on-an-ai-transition?utm_source=openai"},"annotation_index":2,"content_index":0,"item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","output_index":1,"sequence_number":296} +data: {"type":"response.output_text.annotation.added","annotation":{"type":"url_citation","end_index":879,"start_index":719,"title":"Akron Beacon Journal journalists protest AI tool","url":"https://www.axios.com/local/cleveland/2026/11/06/akron-beacon-journal-byline-withdrawal-ai?utm_source=openai"},"annotation_index":2,"content_index":0,"item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","output_index":1,"sequence_number":84} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"\n- [Strong AI chip demand fuels Nvidia's Q2 results well beyond Wall Street's expectations](https://apnews.com/article/dc8d556e709b50915cca9217a60b1991?utm_source=openai), Published on Wednesday, August 26","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"v93","output_index":1,"sequence_number":297} +data: {"type":"response.output_text.delta","content_index":0,"delta":"\n- ['AI is not creating the problem': OpenAI CEO Sam Altman says AI is merely uncovering all the vulnerabilities we've accumulated over the years](https://www.techradar.com/pro/security/ai-is-not-creating-the-problem-openai-ceo-sam-altman-says-ai-is-merely-uncovering-all-the-vulnerabilities-weve-accumulated-over-the-years?utm_source=openai), Published on Sunday, November 01","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"O9fU0cLK","output_index":1,"sequence_number":85} event: response.output_text.annotation.added -data: {"type":"response.output_text.annotation.added","annotation":{"type":"url_citation","end_index":2172,"start_index":2005,"title":"Strong AI chip demand fuels Nvidia's Q2 results well beyond Wall Street's expectations","url":"https://apnews.com/article/dc8d556e709b50915cca9217a60b1991?utm_source=openai"},"annotation_index":3,"content_index":0,"item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","output_index":1,"sequence_number":298} +data: {"type":"response.output_text.annotation.added","annotation":{"type":"url_citation","end_index":1255,"start_index":916,"title":"'AI is not creating the problem': OpenAI CEO Sam Altman says AI is merely uncovering all the vulnerabilities we've accumulated over the years","url":"https://www.techradar.com/pro/security/ai-is-not-creating-the-problem-openai-ceo-sam-altman-says-ai-is-merely-uncovering-all-the-vulnerabilities-weve-accumulated-over-the-years?utm_source=openai"},"annotation_index":3,"content_index":0,"item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","output_index":1,"sequence_number":86} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"obfuscation":"kyrisQlMxWzVvls","output_index":1,"sequence_number":299} +data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"obfuscation":"t1JfsgQCfWcycLS","output_index":1,"sequence_number":87} event: response.output_text.done -data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","logprobs":[],"output_index":1,"sequence_number":300,"text":"One recent headline about artificial intelligence is:\n\n**\"AWS is shutting down Mechanical Turk, which let humans beat AI at certain work tasks\"**\n\nAmazon has announced it will shut down its Mechanical Turk (MTurk) platform on September 30, 2026. Launched in 2005, MTurk enabled companies to outsource small, routine digital tasks to human workers, particularly those tasks that computers initially struggled with, such as labeling data, tagging images, and transcribing audio. At its peak, the platform connected over 500,000 workers, known as \"turkers,\" and played a key role in labeling data for Amazon’s SageMaker AI service. However, rapid advancements in artificial intelligence have rendered many of these tasks more efficiently managed by machines, leading to a steady decline in MTurk’s relevance. Worker advocates, including Turkopticon's Krista Pawloski, noted that Amazon had deprioritized the platform in recent years, even as competitors like Scale AI and Prolific emerged. The closure signals a broader shift in AI economics, where automated systems are increasingly surpassing human capabilities in data processing. Despite MTurk’s shutdown, Amazon affirms its ongoing commitment to serving its AWS and retail customers. The move has left some long-term workers scrambling to find alternative platforms, especially as certain businesses still depend on human task outsourcing. ([techradar.com](https://www.techradar.com/pro/aws-is-shutting-down-mechanical-turk-which-let-humans-beat-ai-at-certain-work-tasks?utm_source=openai))\n\n\n## Highlights:\n- [AWS is shutting down Mechanical Turk, which let humans beat AI at certain work tasks](https://www.techradar.com/pro/aws-is-shutting-down-mechanical-turk-which-let-humans-beat-ai-at-certain-work-tasks?utm_source=openai), Published on Saturday, August 29\n- [Bill Gates sounds the alarm on an AI transition](https://www.axios.com/2026/08/26/bill-gates-sounds-the-alarm-on-an-ai-transition?utm_source=openai), Published on Wednesday, August 26\n- [Strong AI chip demand fuels Nvidia's Q2 results well beyond Wall Street's expectations](https://apnews.com/article/dc8d556e709b50915cca9217a60b1991?utm_source=openai), Published on Wednesday, August 26 "} +data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","logprobs":[],"output_index":1,"sequence_number":88,"text":"A recent headline about artificial intelligence is:\n\n**\"Protesters break into Microsoft data center site in Amsterdam as Europe's backlash spreads\"** ([apnews.com](https://apnews.com/article/b4f3f9f368697bb37416bcb4fabdd67c?utm_source=openai))\n\nThis article reports on activists entering a Microsoft data center construction site in Amsterdam, highlighting growing opposition to large-scale data center projects across Europe due to concerns over energy consumption and environmental impact.\n\n\n## Highlights:\n- [Protesters break into Microsoft data center site in Amsterdam as Europe's backlash spreads](https://apnews.com/article/b4f3f9f368697bb37416bcb4fabdd67c?utm_source=openai), Published on Friday, November 06\n- [Akron Beacon Journal journalists protest AI tool](https://www.axios.com/local/cleveland/2026/11/06/akron-beacon-journal-byline-withdrawal-ai?utm_source=openai), Published on Friday, November 06\n- ['AI is not creating the problem': OpenAI CEO Sam Altman says AI is merely uncovering all the vulnerabilities we've accumulated over the years](https://www.techradar.com/pro/security/ai-is-not-creating-the-problem-openai-ceo-sam-altman-says-ai-is-merely-uncovering-all-the-vulnerabilities-weve-accumulated-over-the-years?utm_source=openai), Published on Sunday, November 01 "} event: response.content_part.done -data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","output_index":1,"part":{"type":"output_text","annotations":[{"type":"url_citation","end_index":1542,"start_index":1392,"title":"AWS is shutting down Mechanical Turk, which let humans beat AI at certain work tasks","url":"https://www.techradar.com/pro/aws-is-shutting-down-mechanical-turk-which-let-humans-beat-ai-at-certain-work-tasks?utm_source=openai"},{"type":"url_citation","end_index":1781,"start_index":1562,"title":"AWS is shutting down Mechanical Turk, which let humans beat AI at certain work tasks","url":"https://www.techradar.com/pro/aws-is-shutting-down-mechanical-turk-which-let-humans-beat-ai-at-certain-work-tasks?utm_source=openai"},{"type":"url_citation","end_index":1967,"start_index":1818,"title":"Bill Gates sounds the alarm on an AI transition","url":"https://www.axios.com/2026/08/26/bill-gates-sounds-the-alarm-on-an-ai-transition?utm_source=openai"},{"type":"url_citation","end_index":2172,"start_index":2005,"title":"Strong AI chip demand fuels Nvidia's Q2 results well beyond Wall Street's expectations","url":"https://apnews.com/article/dc8d556e709b50915cca9217a60b1991?utm_source=openai"}],"logprobs":[],"text":"One recent headline about artificial intelligence is:\n\n**\"AWS is shutting down Mechanical Turk, which let humans beat AI at certain work tasks\"**\n\nAmazon has announced it will shut down its Mechanical Turk (MTurk) platform on September 30, 2026. Launched in 2005, MTurk enabled companies to outsource small, routine digital tasks to human workers, particularly those tasks that computers initially struggled with, such as labeling data, tagging images, and transcribing audio. At its peak, the platform connected over 500,000 workers, known as \"turkers,\" and played a key role in labeling data for Amazon’s SageMaker AI service. However, rapid advancements in artificial intelligence have rendered many of these tasks more efficiently managed by machines, leading to a steady decline in MTurk’s relevance. Worker advocates, including Turkopticon's Krista Pawloski, noted that Amazon had deprioritized the platform in recent years, even as competitors like Scale AI and Prolific emerged. The closure signals a broader shift in AI economics, where automated systems are increasingly surpassing human capabilities in data processing. Despite MTurk’s shutdown, Amazon affirms its ongoing commitment to serving its AWS and retail customers. The move has left some long-term workers scrambling to find alternative platforms, especially as certain businesses still depend on human task outsourcing. ([techradar.com](https://www.techradar.com/pro/aws-is-shutting-down-mechanical-turk-which-let-humans-beat-ai-at-certain-work-tasks?utm_source=openai))\n\n\n## Highlights:\n- [AWS is shutting down Mechanical Turk, which let humans beat AI at certain work tasks](https://www.techradar.com/pro/aws-is-shutting-down-mechanical-turk-which-let-humans-beat-ai-at-certain-work-tasks?utm_source=openai), Published on Saturday, August 29\n- [Bill Gates sounds the alarm on an AI transition](https://www.axios.com/2026/08/26/bill-gates-sounds-the-alarm-on-an-ai-transition?utm_source=openai), Published on Wednesday, August 26\n- [Strong AI chip demand fuels Nvidia's Q2 results well beyond Wall Street's expectations](https://apnews.com/article/dc8d556e709b50915cca9217a60b1991?utm_source=openai), Published on Wednesday, August 26 "},"sequence_number":301} +data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","output_index":1,"part":{"type":"output_text","annotations":[{"type":"url_citation","end_index":243,"start_index":150,"title":"Protesters break into Microsoft data center site in Amsterdam as Europe's backlash spreads","url":"https://apnews.com/article/b4f3f9f368697bb37416bcb4fabdd67c?utm_source=openai"},{"type":"url_citation","end_index":682,"start_index":511,"title":"Protesters break into Microsoft data center site in Amsterdam as Europe's backlash spreads","url":"https://apnews.com/article/b4f3f9f368697bb37416bcb4fabdd67c?utm_source=openai"},{"type":"url_citation","end_index":879,"start_index":719,"title":"Akron Beacon Journal journalists protest AI tool","url":"https://www.axios.com/local/cleveland/2026/11/06/akron-beacon-journal-byline-withdrawal-ai?utm_source=openai"},{"type":"url_citation","end_index":1255,"start_index":916,"title":"'AI is not creating the problem': OpenAI CEO Sam Altman says AI is merely uncovering all the vulnerabilities we've accumulated over the years","url":"https://www.techradar.com/pro/security/ai-is-not-creating-the-problem-openai-ceo-sam-altman-says-ai-is-merely-uncovering-all-the-vulnerabilities-weve-accumulated-over-the-years?utm_source=openai"}],"logprobs":[],"text":"A recent headline about artificial intelligence is:\n\n**\"Protesters break into Microsoft data center site in Amsterdam as Europe's backlash spreads\"** ([apnews.com](https://apnews.com/article/b4f3f9f368697bb37416bcb4fabdd67c?utm_source=openai))\n\nThis article reports on activists entering a Microsoft data center construction site in Amsterdam, highlighting growing opposition to large-scale data center projects across Europe due to concerns over energy consumption and environmental impact.\n\n\n## Highlights:\n- [Protesters break into Microsoft data center site in Amsterdam as Europe's backlash spreads](https://apnews.com/article/b4f3f9f368697bb37416bcb4fabdd67c?utm_source=openai), Published on Friday, November 06\n- [Akron Beacon Journal journalists protest AI tool](https://www.axios.com/local/cleveland/2026/11/06/akron-beacon-journal-byline-withdrawal-ai?utm_source=openai), Published on Friday, November 06\n- ['AI is not creating the problem': OpenAI CEO Sam Altman says AI is merely uncovering all the vulnerabilities we've accumulated over the years](https://www.techradar.com/pro/security/ai-is-not-creating-the-problem-openai-ceo-sam-altman-says-ai-is-merely-uncovering-all-the-vulnerabilities-weve-accumulated-over-the-years?utm_source=openai), Published on Sunday, November 01 "},"sequence_number":89} event: response.output_item.done -data: {"type":"response.output_item.done","item":{"id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","type":"message","status":"completed","content":[{"type":"output_text","annotations":[{"type":"url_citation","end_index":1542,"start_index":1392,"title":"AWS is shutting down Mechanical Turk, which let humans beat AI at certain work tasks","url":"https://www.techradar.com/pro/aws-is-shutting-down-mechanical-turk-which-let-humans-beat-ai-at-certain-work-tasks?utm_source=openai"},{"type":"url_citation","end_index":1781,"start_index":1562,"title":"AWS is shutting down Mechanical Turk, which let humans beat AI at certain work tasks","url":"https://www.techradar.com/pro/aws-is-shutting-down-mechanical-turk-which-let-humans-beat-ai-at-certain-work-tasks?utm_source=openai"},{"type":"url_citation","end_index":1967,"start_index":1818,"title":"Bill Gates sounds the alarm on an AI transition","url":"https://www.axios.com/2026/08/26/bill-gates-sounds-the-alarm-on-an-ai-transition?utm_source=openai"},{"type":"url_citation","end_index":2172,"start_index":2005,"title":"Strong AI chip demand fuels Nvidia's Q2 results well beyond Wall Street's expectations","url":"https://apnews.com/article/dc8d556e709b50915cca9217a60b1991?utm_source=openai"}],"logprobs":[],"text":"One recent headline about artificial intelligence is:\n\n**\"AWS is shutting down Mechanical Turk, which let humans beat AI at certain work tasks\"**\n\nAmazon has announced it will shut down its Mechanical Turk (MTurk) platform on September 30, 2026. Launched in 2005, MTurk enabled companies to outsource small, routine digital tasks to human workers, particularly those tasks that computers initially struggled with, such as labeling data, tagging images, and transcribing audio. At its peak, the platform connected over 500,000 workers, known as \"turkers,\" and played a key role in labeling data for Amazon’s SageMaker AI service. However, rapid advancements in artificial intelligence have rendered many of these tasks more efficiently managed by machines, leading to a steady decline in MTurk’s relevance. Worker advocates, including Turkopticon's Krista Pawloski, noted that Amazon had deprioritized the platform in recent years, even as competitors like Scale AI and Prolific emerged. The closure signals a broader shift in AI economics, where automated systems are increasingly surpassing human capabilities in data processing. Despite MTurk’s shutdown, Amazon affirms its ongoing commitment to serving its AWS and retail customers. The move has left some long-term workers scrambling to find alternative platforms, especially as certain businesses still depend on human task outsourcing. ([techradar.com](https://www.techradar.com/pro/aws-is-shutting-down-mechanical-turk-which-let-humans-beat-ai-at-certain-work-tasks?utm_source=openai))\n\n\n## Highlights:\n- [AWS is shutting down Mechanical Turk, which let humans beat AI at certain work tasks](https://www.techradar.com/pro/aws-is-shutting-down-mechanical-turk-which-let-humans-beat-ai-at-certain-work-tasks?utm_source=openai), Published on Saturday, August 29\n- [Bill Gates sounds the alarm on an AI transition](https://www.axios.com/2026/08/26/bill-gates-sounds-the-alarm-on-an-ai-transition?utm_source=openai), Published on Wednesday, August 26\n- [Strong AI chip demand fuels Nvidia's Q2 results well beyond Wall Street's expectations](https://apnews.com/article/dc8d556e709b50915cca9217a60b1991?utm_source=openai), Published on Wednesday, August 26 "}],"role":"assistant"},"output_index":1,"sequence_number":302} +data: {"type":"response.output_item.done","item":{"id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","type":"message","status":"completed","content":[{"type":"output_text","annotations":[{"type":"url_citation","end_index":243,"start_index":150,"title":"Protesters break into Microsoft data center site in Amsterdam as Europe's backlash spreads","url":"https://apnews.com/article/b4f3f9f368697bb37416bcb4fabdd67c?utm_source=openai"},{"type":"url_citation","end_index":682,"start_index":511,"title":"Protesters break into Microsoft data center site in Amsterdam as Europe's backlash spreads","url":"https://apnews.com/article/b4f3f9f368697bb37416bcb4fabdd67c?utm_source=openai"},{"type":"url_citation","end_index":879,"start_index":719,"title":"Akron Beacon Journal journalists protest AI tool","url":"https://www.axios.com/local/cleveland/2026/11/06/akron-beacon-journal-byline-withdrawal-ai?utm_source=openai"},{"type":"url_citation","end_index":1255,"start_index":916,"title":"'AI is not creating the problem': OpenAI CEO Sam Altman says AI is merely uncovering all the vulnerabilities we've accumulated over the years","url":"https://www.techradar.com/pro/security/ai-is-not-creating-the-problem-openai-ceo-sam-altman-says-ai-is-merely-uncovering-all-the-vulnerabilities-weve-accumulated-over-the-years?utm_source=openai"}],"logprobs":[],"text":"A recent headline about artificial intelligence is:\n\n**\"Protesters break into Microsoft data center site in Amsterdam as Europe's backlash spreads\"** ([apnews.com](https://apnews.com/article/b4f3f9f368697bb37416bcb4fabdd67c?utm_source=openai))\n\nThis article reports on activists entering a Microsoft data center construction site in Amsterdam, highlighting growing opposition to large-scale data center projects across Europe due to concerns over energy consumption and environmental impact.\n\n\n## Highlights:\n- [Protesters break into Microsoft data center site in Amsterdam as Europe's backlash spreads](https://apnews.com/article/b4f3f9f368697bb37416bcb4fabdd67c?utm_source=openai), Published on Friday, November 06\n- [Akron Beacon Journal journalists protest AI tool](https://www.axios.com/local/cleveland/2026/11/06/akron-beacon-journal-byline-withdrawal-ai?utm_source=openai), Published on Friday, November 06\n- ['AI is not creating the problem': OpenAI CEO Sam Altman says AI is merely uncovering all the vulnerabilities we've accumulated over the years](https://www.techradar.com/pro/security/ai-is-not-creating-the-problem-openai-ceo-sam-altman-says-ai-is-merely-uncovering-all-the-vulnerabilities-weve-accumulated-over-the-years?utm_source=openai), Published on Sunday, November 01 "}],"role":"assistant"},"output_index":1,"sequence_number":90} event: response.completed -data: {"type":"response.completed","response":{"id":"resp_0187444db4e8b9d0006a95bcd430d087d0aed5e425af65ccf2","object":"response","created_at":1788198101,"status":"completed","background":false,"completed_at":1788198136,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-2024-08-06","moderation":null,"output":[{"id":"ws_0187444db4e8b9d0006a95bcd7998087d09acb0c349ecd33f6","type":"web_search_call","status":"completed","action":{"type":"search","queries":["recent headlines about artificial intelligence"],"query":"recent headlines about artificial intelligence"}},{"id":"msg_0187444db4e8b9d0006a95bcda61ac87d08aaccbb286b61823","type":"message","status":"completed","content":[{"type":"output_text","annotations":[{"type":"url_citation","end_index":1542,"start_index":1392,"title":"AWS is shutting down Mechanical Turk, which let humans beat AI at certain work tasks","url":"https://www.techradar.com/pro/aws-is-shutting-down-mechanical-turk-which-let-humans-beat-ai-at-certain-work-tasks?utm_source=openai"},{"type":"url_citation","end_index":1781,"start_index":1562,"title":"AWS is shutting down Mechanical Turk, which let humans beat AI at certain work tasks","url":"https://www.techradar.com/pro/aws-is-shutting-down-mechanical-turk-which-let-humans-beat-ai-at-certain-work-tasks?utm_source=openai"},{"type":"url_citation","end_index":1967,"start_index":1818,"title":"Bill Gates sounds the alarm on an AI transition","url":"https://www.axios.com/2026/08/26/bill-gates-sounds-the-alarm-on-an-ai-transition?utm_source=openai"},{"type":"url_citation","end_index":2172,"start_index":2005,"title":"Strong AI chip demand fuels Nvidia's Q2 results well beyond Wall Street's expectations","url":"https://apnews.com/article/dc8d556e709b50915cca9217a60b1991?utm_source=openai"}],"logprobs":[],"text":"One recent headline about artificial intelligence is:\n\n**\"AWS is shutting down Mechanical Turk, which let humans beat AI at certain work tasks\"**\n\nAmazon has announced it will shut down its Mechanical Turk (MTurk) platform on September 30, 2026. Launched in 2005, MTurk enabled companies to outsource small, routine digital tasks to human workers, particularly those tasks that computers initially struggled with, such as labeling data, tagging images, and transcribing audio. At its peak, the platform connected over 500,000 workers, known as \"turkers,\" and played a key role in labeling data for Amazon’s SageMaker AI service. However, rapid advancements in artificial intelligence have rendered many of these tasks more efficiently managed by machines, leading to a steady decline in MTurk’s relevance. Worker advocates, including Turkopticon's Krista Pawloski, noted that Amazon had deprioritized the platform in recent years, even as competitors like Scale AI and Prolific emerged. The closure signals a broader shift in AI economics, where automated systems are increasingly surpassing human capabilities in data processing. Despite MTurk’s shutdown, Amazon affirms its ongoing commitment to serving its AWS and retail customers. The move has left some long-term workers scrambling to find alternative platforms, especially as certain businesses still depend on human task outsourcing. ([techradar.com](https://www.techradar.com/pro/aws-is-shutting-down-mechanical-turk-which-let-humans-beat-ai-at-certain-work-tasks?utm_source=openai))\n\n\n## Highlights:\n- [AWS is shutting down Mechanical Turk, which let humans beat AI at certain work tasks](https://www.techradar.com/pro/aws-is-shutting-down-mechanical-turk-which-let-humans-beat-ai-at-certain-work-tasks?utm_source=openai), Published on Saturday, August 29\n- [Bill Gates sounds the alarm on an AI transition](https://www.axios.com/2026/08/26/bill-gates-sounds-the-alarm-on-an-ai-transition?utm_source=openai), Published on Wednesday, August 26\n- [Strong AI chip demand fuels Nvidia's Q2 results well beyond Wall Street's expectations](https://apnews.com/article/dc8d556e709b50915cca9217a60b1991?utm_source=openai), Published on Wednesday, August 26 "}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":1}},"tools":[{"type":"web_search_preview","search_content_types":["text"],"search_context_size":"medium","user_location":{"type":"approximate","city":null,"country":"US","region":null,"timezone":null}}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":314,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":507,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":821},"user":null,"metadata":{}},"sequence_number":303} +data: {"type":"response.completed","response":{"id":"resp_04d3a355c79f73df016aeebb63d08887d08960ebe789d1b00f","object":"response","created_at":1794030435,"status":"completed","access_programs":null,"background":false,"completed_at":1794030438,"error":null,"frequency_penalty":0.0,"image":{"context_compression":"disabled"},"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-2024-08-06","moderation":null,"output":[{"id":"ws_04d3a355c79f73df016aeebb646acc87d0a6ae503ae6572da5","type":"web_search_call","status":"completed","action":{"type":"search","queries":["recent news headline about artificial intelligence October 2023"],"query":"recent news headline about artificial intelligence October 2023"}},{"id":"msg_04d3a355c79f73df016aeebb6604e887d09a235233cc4b4ff6","type":"message","status":"completed","content":[{"type":"output_text","annotations":[{"type":"url_citation","end_index":243,"start_index":150,"title":"Protesters break into Microsoft data center site in Amsterdam as Europe's backlash spreads","url":"https://apnews.com/article/b4f3f9f368697bb37416bcb4fabdd67c?utm_source=openai"},{"type":"url_citation","end_index":682,"start_index":511,"title":"Protesters break into Microsoft data center site in Amsterdam as Europe's backlash spreads","url":"https://apnews.com/article/b4f3f9f368697bb37416bcb4fabdd67c?utm_source=openai"},{"type":"url_citation","end_index":879,"start_index":719,"title":"Akron Beacon Journal journalists protest AI tool","url":"https://www.axios.com/local/cleveland/2026/11/06/akron-beacon-journal-byline-withdrawal-ai?utm_source=openai"},{"type":"url_citation","end_index":1255,"start_index":916,"title":"'AI is not creating the problem': OpenAI CEO Sam Altman says AI is merely uncovering all the vulnerabilities we've accumulated over the years","url":"https://www.techradar.com/pro/security/ai-is-not-creating-the-problem-openai-ceo-sam-altman-says-ai-is-merely-uncovering-all-the-vulnerabilities-weve-accumulated-over-the-years?utm_source=openai"}],"logprobs":[],"text":"A recent headline about artificial intelligence is:\n\n**\"Protesters break into Microsoft data center site in Amsterdam as Europe's backlash spreads\"** ([apnews.com](https://apnews.com/article/b4f3f9f368697bb37416bcb4fabdd67c?utm_source=openai))\n\nThis article reports on activists entering a Microsoft data center construction site in Amsterdam, highlighting growing opposition to large-scale data center projects across Europe due to concerns over energy consumption and environmental impact.\n\n\n## Highlights:\n- [Protesters break into Microsoft data center site in Amsterdam as Europe's backlash spreads](https://apnews.com/article/b4f3f9f368697bb37416bcb4fabdd67c?utm_source=openai), Published on Friday, November 06\n- [Akron Beacon Journal journalists protest AI tool](https://www.axios.com/local/cleveland/2026/11/06/akron-beacon-journal-byline-withdrawal-ai?utm_source=openai), Published on Friday, November 06\n- ['AI is not creating the problem': OpenAI CEO Sam Altman says AI is merely uncovering all the vulnerabilities we've accumulated over the years](https://www.techradar.com/pro/security/ai-is-not-creating-the-problem-openai-ceo-sam-altman-says-ai-is-merely-uncovering-all-the-vulnerabilities-weve-accumulated-over-the-years?utm_source=openai), Published on Sunday, November 01 "}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":false,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":1}},"tools":[{"type":"web_search_preview","search_content_types":["text"],"search_context_size":"medium","user_location":{"type":"approximate","city":null,"country":"US","region":null,"timezone":null}}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":314,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":330,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":644},"user":null,"metadata":{}},"sequence_number":91} diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-36764bc7833a.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-36764bc7833a.json deleted file mode 100644 index 2e0e43d0..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-36764bc7833a.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "id": "resp_008ff3f03dd97ebb006a95bd55a09487d08ef03d72ed5f7576", - "object": "response", - "created_at": 1788198229, - "status": "completed", - "background": false, - "billing": { - "payer": "developer" - }, - "completed_at": 1788198231, - "error": null, - "frequency_penalty": 0.0, - "incomplete_details": null, - "instructions": null, - "max_output_tokens": null, - "max_tool_calls": null, - "model": "o4-mini-2025-04-16", - "moderation": null, - "output": [ - { - "id": "rs_008ff3f03dd97ebb006a95bd564d6087d0972ebf379d77ac22", - "type": "reasoning", - "content": [], - "encrypted_content": "gAAAAABqlb1XaxgxJme9AAvFBwm7stYtP4P-YU4rzIKXs3F1fAdVn0qYN13hxVz_DpXAYP4AeocMR3m0G0gWGk1gDJfJfo5TvbNxV5uAV28YElC_B587cS9wjP-Jom4UWisuzaW5_1yws7rACtz50tx5b5bTiohb1cPZNcxwGFtSZD9q7W-4x3OtRexwx3341sJJ-tZwCF2LwIZKaFDzhezXWLuEwJKZ9APhfO_J-zchQ823fhCjeCrH5C_ViMszfnPPX0RzXwdIagtp_BcKnDFl7hMC9dpGLXHx4FZ-ZlBgFF3dM0EoMCIYUJObVYXoxLM8xLKW_NZxpCeVmbiJEN5yo31-Ov5lKUFAOld2Y3b6ba-2G97H0O7lxNzDkLSh0509QOE6CImjYIOBr5BDjkU-7VYZNOpbKyYPTsQR4x4tLKvCGon2iSG59C1qaoXYrpcMRoosXV8FZy0x3XIvuxPwoThuR48pyLJMFmSPJQGDhFudxja7xx49OWBs2Z68VkHDVxgs8AAgdtoFSXajlNpvAFsJ-yxqTbt0ckaSwCHmTaTnP4QD2Hoi7C6Yrt38Ikhhf2BaC4Zya-FXI7kG7syjdYDTxg9VAZYTskA1jO59gWz38srKU51nV2V7-XP-lZXDwWy_k3ewvxqwquBzO3ofMv3Qzmy0btB7UefmcIfRBj4LTvlc0g_h7MweHPVNwgOmNxvpUdYWzofB5RX4ycg0dXxE668Qc1XLt6mTxcnbb5cKFjAIpSJRrI9_sbEg2pmP7TqKWUnmSaCY5Xj2a39MI7w0MpWb4edWvHsHojaVikaGZlKmHppkO_quYct7XltaTDdsWQZwqSBevoIlQNjs9z2Los5wQY_xuddZGay2Pg_bbxCZ6zpEj3csJHvuMPmhkDwMTrj7-TC-OcXxBqGuDhZ_4G9rpByPd7Ii45jBV9v9HO-BFsgvRcsmeTCYJ_0qgB9__w73Hlt_Bg3GUpX21jt5Ws7wcqdbGCHpKz--DxEaDGg_EOQH8KhQo2Um0aI3yUeIY4aQr_QgTVLZpCNLs3WZ7b6Y3Zvmvs9UOfx2FADmcyu6laPFK9tWnQXT4YzrnKjq17f01Kwz5R5YD3r_z7017hEAKbtcFshMI8JwRkMTZTlyUcJaHzg0iU0OhEFGOfigOMFisMYWldnOgdr93-1sU_vM-rruaJggaU8fez1iEYyyF68621nbt-c7RHGw4xq4Xe4CVBZYksYN9bDVzIgtvg3nN9EV9I_vvZwAoakrgPffuIri4v6G-9YyifAUpyGBwZYm5wUn2ThVxNdbIeU2idbHXMhIgFoe2idLY-FYmZPHxNY=", - "summary": [] - }, - { - "id": "msg_008ff3f03dd97ebb006a95bd57020487d0baae3da064d74270", - "type": "message", - "status": "completed", - "content": [ - { - "type": "output_text", - "annotations": [], - "logprobs": [], - "text": "Paris" - } - ], - "role": "assistant" - } - ], - "parallel_tool_calls": true, - "presence_penalty": 0.0, - "previous_response_id": null, - "prompt_cache_key": null, - "prompt_cache_retention": "in_memory", - "reasoning": { - "context": "current_turn", - "effort": "low", - "mode": "standard", - "summary": "detailed" - }, - "safety_identifier": null, - "service_tier": "default", - "store": true, - "temperature": 1.0, - "text": { - "format": { - "type": "text" - }, - "verbosity": "medium" - }, - "tool_choice": "auto", - "tool_usage": { - "image_gen": { - "input_tokens": 0, - "input_tokens_details": { - "image_tokens": 0, - "text_tokens": 0 - }, - "output_tokens": 0, - "output_tokens_details": { - "image_tokens": 0, - "text_tokens": 0 - }, - "total_tokens": 0 - }, - "web_search": { - "num_requests": 0 - } - }, - "tools": [], - "top_logprobs": 0, - "top_p": 1.0, - "truncation": "disabled", - "usage": { - "input_tokens": 18, - "input_tokens_details": { - "cache_write_tokens": 0, - "cached_tokens": 0 - }, - "output_tokens": 34, - "output_tokens_details": { - "reasoning_tokens": 0 - }, - "total_tokens": 52 - }, - "user": null, - "metadata": {} -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-436628959a2b.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-436628959a2b.json new file mode 100644 index 00000000..a7288951 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-436628959a2b.json @@ -0,0 +1,208 @@ +{ + "id": "resp_0ff065f13526f7a4016aeebb4488ac87d09b757bf061e36b5e", + "object": "response", + "created_at": 1794030404, + "status": "completed", + "access_programs": null, + "background": false, + "billing": { + "payer": "developer" + }, + "completed_at": 1794030410, + "error": null, + "frequency_penalty": 0.0, + "image": { + "context_compression": "disabled" + }, + "incomplete_details": null, + "instructions": null, + "max_output_tokens": null, + "max_tool_calls": null, + "model": "gpt-4o-2024-08-06", + "moderation": null, + "output": [ + { + "id": "ws_0ff065f13526f7a4016aeebb45160487d0be6c9a93a11abff5", + "type": "web_search_call", + "status": "completed", + "action": { + "type": "search", + "queries": [ + "Moderna latest news October 2023" + ], + "query": "Moderna latest news October 2023" + } + }, + { + "id": "msg_0ff065f13526f7a4016aeebb46221887d082b3f6ed832d6fa9", + "type": "message", + "status": "completed", + "content": [ + { + "type": "output_text", + "annotations": [ + { + "type": "url_citation", + "end_index": 852, + "start_index": 694, + "title": "Moderna Q3 earnings: revenue up 29%, outlook raised | MRNA Stock News", + "url": "https://www.stocktitan.net/news/MRNA/moderna-reports-third-quarter-2026-financial-results-and-provides-9kk4tzh724ed.html?utm_source=openai" + }, + { + "type": "url_citation", + "end_index": 1662, + "start_index": 1470, + "title": "La primera vacuna contra el melanoma abre una nueva v\u00eda para tratamientos personalizados contra el c\u00e1ncer", + "url": "https://elpais.com/salud-y-bienestar/2026-10-24/la-primera-vacuna-contra-el-melanoma-abre-una-nueva-via-para-tratamientos-personalizados-contra-el-cancer.html?utm_source=openai" + }, + { + "type": "url_citation", + "end_index": 2079, + "start_index": 2009, + "title": "Moderna news and analysis | KoersNu", + "url": "https://koersnu.nl/en/stocks/moderna?utm_source=openai" + }, + { + "type": "url_citation", + "end_index": 2536, + "start_index": 2251, + "title": "La primera vacuna contra el melanoma abre una nueva v\u00eda para tratamientos personalizados contra el c\u00e1ncer", + "url": "https://elpais.com/salud-y-bienestar/2026-10-24/la-primera-vacuna-contra-el-melanoma-abre-una-nueva-via-para-tratamientos-personalizados-contra-el-cancer.html?utm_source=openai" + }, + { + "type": "url_citation", + "end_index": 2844, + "start_index": 2574, + "title": "La vacuna contra el melanoma marca un hito y abre la v\u00eda a tratamientos personalizados contra el c\u00e1ncer", + "url": "https://elpais.com/expres/2026-10-25/la-vacuna-contra-el-melanoma-marca-un-hito-y-abre-la-via-a-tratamientos-personalizados-contra-el-cancer.html?utm_source=openai" + }, + { + "type": "url_citation", + "end_index": 3045, + "start_index": 2882, + "title": "Las vacunas contra el c\u00e1ncer: s\u00ed, pero a\u00fan no", + "url": "https://elpais.com/salud-y-bienestar/2026-10-25/las-vacunas-contra-el-cancer-si-pero-aun-no.html?utm_source=openai" + } + ], + "logprobs": [], + "text": "Moderna has recently achieved significant milestones across its financial performance, product development, and strategic initiatives.\n\n**Financial Performance:**\nIn the third quarter of 2026, Moderna reported a 29% increase in revenue, reaching $1.313 billion. This growth led to a net income of $162 million, a notable turnaround from a $200 million loss in the same period the previous year. Consequently, the company has raised its full-year revenue growth outlook to 15%-25%, up from the earlier projection of up to 10%. Additionally, Moderna improved its 2026 GAAP operating expense outlook by approximately $0.2 billion and expects a year-end cash balance between $4.7 and $5.2 billion. ([stocktitan.net](https://www.stocktitan.net/news/MRNA/moderna-reports-third-quarter-2026-financial-results-and-provides-9kk4tzh724ed.html?utm_source=openai))\n\n**Product Development:**\nModerna, in collaboration with Merck, has been developing a personalized mRNA-based cancer vaccine named intismeran autogene. Recent results from the Phase III INTerpath-001 trial, presented at the European Society for Medical Oncology (ESMO) congress in Madrid, demonstrated that combining this vaccine with pembrolizumab reduced the risk of melanoma recurrence or death by 42% compared to pembrolizumab alone. At the two-year mark, 82.2% of patients receiving the combination remained recurrence-free, versus 70% in the control group. However, data on overall survival are still maturing. ([elpais.com](https://elpais.com/salud-y-bienestar/2026-10-24/la-primera-vacuna-contra-el-melanoma-abre-una-nueva-via-para-tratamientos-personalizados-contra-el-cancer.html?utm_source=openai))\n\n**Strategic Initiatives:**\nTo support its expanding operations and diversification, Moderna appointed Juan Andres as Chief Operating Officer, effective October 5, 2026. Andres, who previously served as Moderna's Chief Technical Operations and Quality Officer, returns to the company to oversee its increasing scale and vaccine portfolio growth. ([koersnu.nl](https://koersnu.nl/en/stocks/moderna?utm_source=openai))\n\nThese developments underscore Moderna's commitment to advancing mRNA technology across various therapeutic areas and enhancing its financial standing.\n\n\n## Highlights:\n- [La primera vacuna contra el melanoma abre una nueva v\u00eda para tratamientos personalizados contra el c\u00e1ncer](https://elpais.com/salud-y-bienestar/2026-10-24/la-primera-vacuna-contra-el-melanoma-abre-una-nueva-via-para-tratamientos-personalizados-contra-el-cancer.html?utm_source=openai), Published on Saturday, October 24\n- [La vacuna contra el melanoma marca un hito y abre la v\u00eda a tratamientos personalizados contra el c\u00e1ncer](https://elpais.com/expres/2026-10-25/la-vacuna-contra-el-melanoma-marca-un-hito-y-abre-la-via-a-tratamientos-personalizados-contra-el-cancer.html?utm_source=openai), Published on Saturday, October 24\n- [Las vacunas contra el c\u00e1ncer: s\u00ed, pero a\u00fan no](https://elpais.com/salud-y-bienestar/2026-10-25/las-vacunas-contra-el-cancer-si-pero-aun-no.html?utm_source=openai), Published on Saturday, October 24 " + } + ], + "role": "assistant" + } + ], + "parallel_tool_calls": true, + "presence_penalty": 0.0, + "previous_response_id": null, + "prompt_cache_key": null, + "prompt_cache_retention": "in_memory", + "reasoning": { + "context": null, + "effort": null, + "summary": null + }, + "safety_identifier": null, + "service_tier": "default", + "store": false, + "temperature": 0.0, + "text": { + "format": { + "type": "text" + }, + "verbosity": "medium" + }, + "tool_choice": "auto", + "tool_usage": { + "image_gen": { + "input_tokens": 0, + "input_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "output_tokens": 0, + "output_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "total_tokens": 0 + }, + "web_search": { + "num_requests": 1 + } + }, + "tools": [ + { + "type": "function", + "description": "Get weather forecast for next N days", + "name": "getForecast", + "output_schema": null, + "parameters": { + "type": "object", + "properties": { + "arg0": { + "type": "string" + }, + "arg1": { + "type": "integer" + } + }, + "required": [ + "arg0", + "arg1" + ], + "additionalProperties": false + }, + "strict": true + }, + { + "type": "function", + "description": "Get current weather for a location", + "name": "getWeather", + "output_schema": null, + "parameters": { + "type": "object", + "properties": { + "arg0": { + "type": "string" + } + }, + "required": [ + "arg0" + ], + "additionalProperties": false + }, + "strict": true + }, + { + "type": "web_search_preview", + "search_content_types": [ + "text" + ], + "search_context_size": "medium", + "user_location": { + "type": "approximate", + "city": null, + "country": "US", + "region": null, + "timezone": null + } + } + ], + "top_logprobs": 0, + "top_p": 1.0, + "truncation": "disabled", + "usage": { + "input_tokens": 378, + "input_tokens_details": { + "cache_write_tokens": 0, + "cached_tokens": 0 + }, + "output_tokens": 754, + "output_tokens_details": { + "reasoning_tokens": 0 + }, + "total_tokens": 1132 + }, + "user": null, + "metadata": {} +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-7489309b5cdb.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-7489309b5cdb.json index 53afab2b..4970e3c9 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-7489309b5cdb.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-7489309b5cdb.json @@ -1,16 +1,19 @@ { - "id": "resp_0f9477ee5bd7e331006ad162b028bc87d0bce70b43e9c5f5c5", + "id": "resp_0646413f10c0d8c3016aeeba656c5c87d0b1466433bfdb9c07", "object": "response", - "created_at": 1792107184, + "created_at": 1794030181, "status": "completed", "access_programs": null, "background": false, "billing": { "payer": "developer" }, - "completed_at": 1792107184, + "completed_at": 1794030182, "error": null, "frequency_penalty": 0.0, + "image": { + "context_compression": "disabled" + }, "incomplete_details": null, "instructions": "Reply with one word.", "max_output_tokens": null, @@ -19,7 +22,7 @@ "moderation": null, "output": [ { - "id": "msg_0f9477ee5bd7e331006ad162b095d487d095a969be1650d1f4", + "id": "msg_0646413f10c0d8c3016aeeba660b0087d0a8bad72aaac911ea", "type": "message", "status": "completed", "content": [ @@ -45,7 +48,7 @@ }, "safety_identifier": null, "service_tier": "default", - "store": true, + "store": false, "temperature": 1.0, "text": { "format": { diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-7cc18a76d860.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-7cc18a76d860.json new file mode 100644 index 00000000..7896d179 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-7cc18a76d860.json @@ -0,0 +1,110 @@ +{ + "id": "resp_026623c3dff3fc15016aeeba74a5a487d094d4d7ca911f6deb", + "object": "response", + "created_at": 1794030196, + "status": "completed", + "access_programs": null, + "background": false, + "billing": { + "payer": "developer" + }, + "completed_at": 1794030200, + "error": null, + "frequency_penalty": 0.0, + "image": { + "context_compression": "disabled" + }, + "incomplete_details": null, + "instructions": null, + "max_output_tokens": null, + "max_tool_calls": null, + "model": "gpt-6-luna", + "moderation": null, + "output": [ + { + "id": "rs_026623c3dff3fc15016aeeba75488c87d08ba7bc196ace6e95", + "type": "reasoning", + "content": [], + "encrypted_content": "gAAAAABq7rp4oODNDedXWrDZtuDiNRBopvNtMFc65UAeps_3z9CguAQjjrZhG6MyrH9CkysczbdbH_POjdKPA_m76Hm2LVwMN3ZgQJSZwgB93X77dYa-cTGa_yp5HNkVXSRwyt_yhKGGIHvcaDoo3NnD6n9_EVD-zP2xhyv8Wmy9xBZndOZhMd_v8x4uGzCK1YPOexrJ_OvtPSkOm0jVLmxp0zfRMv-ywKnBsYdcgKvJ1sLfcFxcRQcKgC5pH2A9t7xtmHyQbTDg3g5F5XX4pkwF4zFWec_Vv4gtucsfZyGCWOGB4jdUYQQU7lY2dp2MesiZSyCNUWUneHGGVbNEYp-Oj8b265X8jpNmGXlNJ6wwGgJBPEZWNmWw-MuVfJXOn_UhnO_9H0og2zk1r8LzikUAMTz7BIYakqfstqrWbI1hz8KEPQP7vv4cehbrM0xMNZ6kUaR95bTgTTRRpXxuoLJuEYwNSQcf3dI61G0Bs7QQnSdXdLoXXnsrP0-Qv6jbeNFQYU1DYRGsBuxIaXSC7QaUu3hmfBV2D6mgjG9Z4i-nmmfcOtD8DCdgDqmRXiN5ZSp39UGetTq0xbhNupGzKcMyl0GOtvyqzY1KAwqtRwqqiMfEUYhnjOoZt4aYFPEoSQyDlYMVWGOAw7nkRrYAkzWbgJvB-DwHCO4HVIYs-B0-NuPiIy-oqa07XReq_iXAyT7EGgqd3JOHxmM8QSWNhQoOGi-uBwGt_Jvgq3RQOV9firz4k-y4CyaEZaw6wDJdPHQmcqeZovgctr7thCmTEOH14QmwNCyZXUgwymL0rlUeR1zK7oaSfEI-Yhm_gJ6oWMF3GETg1MO5aheFEW_ZhQ5K0cqV9UuHVy1nf_Y1BH1DRnnxWKy1sEo51xUPiF_wo9ib15lMA1du9J_NzREKYhD6NlzhOXJkROSnZGmELzU9DrgOmq_tukH4opAvaH27OYsRY49-fFIBtqlyt7TsuVNBwTD9PNUj3K5UTDILyW3r9HGmjx1EbgxfBaB-n_JbHxTDrrTUsGhgpJD4ewXikeUlFH0DYJozE4hp0B15moJi4rG56EXbTsv0OYx9LG6vKKmPvT8wm7H9TMO0T1f0ImvzoPJ7OhMp_wSLTMzJAU1PdDNEnuHA8LMPYaK7svCKHHrVCwL9kBcK4no0zm6-T4rj9YxGzEL9Cj5FST-HvLpWkdyxKIBX4LX5N2PZ2U-r-S7BPTnGxribzK--9uwEbHM5ZszzZ77KWccgUqWJ-XYe3ORMEwricUn_QZt4Fzj3tC0ZOGWDS5W7h0nF_D4EPE_vtnCaAxT-PwsDdDyuHYrokDx30DZ9wW7OdHz46WYKe6AqprqEpDNV_oxnf2LA9xaZRupDJBXxnjAUQuVG4KR7ucXnP5wvXvnKNGt1IrzTh8_yk5MINPVDx83jDVg4D8QrHpfohb7CTFVAksj_WfA_osctDCQh76HNKMlJG7PDhuO_rfSmMTguQfg-v6JiGQj2obXoWe8r5V82qMQdoIyQz0hsPFWoHgYgZ7H80TAriGuJVgQ_-kLFAq_kMTEf_KDJNgRR5wkffHEWT_eKy88Qo30xWMvC8kRaAxpEC6ScUBU03wjybHSiX4Ht_klIP47ewLYslH24wtaU7RXqOL7bA6C01OfvcPh-pekhCaeMYC1QYAF3kUudpU0PlAbEt1uyd4ZmUqtaXFQpCdk3ERmpW7paLcqFuZBRuJtv6sAPpV8NtwESax4p8UJamU9zNdZvj_stmaBjgmIm71Lwsf5FUXwDGZxTuzaRQ1iXpwrdQG_AeI4itCbNHP8Cgl0xZT2BVhFbebbLCQt7uiDFr3E1DSOorNp7YqUiH-zOJBNeRSrsiq3ZqWwRr9FTuoV_xuKRr9eH_EM0ZtXrM1VU-_BEjZrdrvrxlhs0ZW_qq3RBsV9sBV0F17TkOibhGnPqTDgn_nc7joBbzm-jd7L9a_EF4LNqb4hW4FHnXOR2le1rZYhK37MAvFZP3eOS_cjgMkTT7K0K1jBG10aa31qW4Wm33qlQoRt9WI7qKXyl4wFLw0FhJmA7c26xih1muICFjYQ9FopSfUOrCGH-neJmNrf_0lMGNFhj5ygpFUL6coACKmihPK4-Chjt11xKjBpLwprnCq6uUCkmrwFTLly4FGll_JVSy9k4Ohgk-ZnmQFn8QyIefrUWrFVL", + "summary": [ + { + "type": "summary_text", + "text": "**Calculating sums and sequences**\n\nI need to compute 10 times 11, which is 110. Then, I realize the sum from n equals 1 to 10 is n(n+1), which gives me a total of 440 when I add the sum of squares (385) and the sum of n (55). I should check the sequence sum: 2, 6, 12, 20, 30, 42, 56, 72, 90, and 110, and yep, it equals 440. Now, I can confidently state that\u2019s correct!" + } + ] + }, + { + "id": "msg_026623c3dff3fc15016aeeba7849c487d0a49e041be5a519f6", + "type": "message", + "status": "completed", + "content": [ + { + "type": "output_text", + "annotations": [], + "logprobs": [], + "text": "Using \\(a_n=n(n+1)\\), the 10th term is\n\\[\na_{10}=10\\cdot11=\\boxed{110}.\n\\]\n\nThe sum of the first 10 terms is\n\\[\n\\sum_{n=1}^{10} n(n+1)\n=\\sum_{n=1}^{10}n^2+\\sum_{n=1}^{10}n\n=385+55\n=\\boxed{440}.\n\\]" + } + ], + "phase": "final_answer", + "role": "assistant" + } + ], + "parallel_tool_calls": true, + "presence_penalty": 0.0, + "previous_response_id": null, + "prompt_cache_key": null, + "prompt_cache_retention": "24h", + "reasoning": { + "context": "all_turns", + "effort": "high", + "mode": "standard", + "summary": "detailed" + }, + "safety_identifier": null, + "service_tier": "default", + "store": false, + "temperature": 1.0, + "text": { + "format": { + "type": "text" + }, + "verbosity": "medium" + }, + "tool_choice": "auto", + "tool_usage": { + "image_gen": { + "input_tokens": 0, + "input_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "output_tokens": 0, + "output_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "total_tokens": 0 + }, + "web_search": { + "num_requests": 0 + } + }, + "tools": [], + "top_logprobs": 0, + "top_p": 0.98, + "truncation": "disabled", + "usage": { + "input_tokens": 247, + "input_tokens_details": { + "cache_write_tokens": 0, + "cached_tokens": 0 + }, + "output_tokens": 171, + "output_tokens_details": { + "reasoning_tokens": 69 + }, + "total_tokens": 418 + }, + "user": null, + "metadata": {} +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-863a18378a48.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-863a18378a48.json deleted file mode 100644 index 48100693..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-863a18378a48.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "id": "resp_0361c6f6e309f1f8016a95bbd1189087d0b387e3b8d495ef84", - "object": "response", - "created_at": 1788197841, - "status": "completed", - "background": false, - "billing": { - "payer": "developer" - }, - "completed_at": 1788197848, - "error": null, - "frequency_penalty": 0.0, - "incomplete_details": null, - "instructions": null, - "max_output_tokens": null, - "max_tool_calls": null, - "model": "o4-mini-2025-04-16", - "moderation": null, - "output": [ - { - "id": "rs_0361c6f6e309f1f8016a95bbd2579487d088adb7c5629d550b", - "type": "reasoning", - "content": [], - "encrypted_content": "gAAAAABqlbvYExiVEN0PpKufywUbaup2cuEwH0bdepoaoOvuKkJxPF8FeJJOjVnJ5GXeeDWf4f_aKLwh5FuYHTm6tA-obuyqmOPkQjOYzIZhoJFxiPC0jaMR2wo0dDnjyifjoEwtxjubkgESbidVkpiOT1furUoAKw2fvUwkA6-B9d3ontlw4-IPGNl90PxaDR-4DpK9sDTnAg04W6P09xdhvlvNo80JbX6kuJROnVpUlthFEUtbq938i5Qu2OWDWQi_Zf6X02AteH5JjKhHGOKnnquapSe_fUJq-5XMnUZauKcY4HJ3QX7OVcMzd-wNBb8LVEIzH7Sb56-5ufu8tvzZXomqHoE9sMKFoAdPqA3rCTEUJIr0iXbFK34zmb-hZpmoNau1eIiE5SUVUUYqrY1IPSwKxuKWV9gtQeiPB3_Uctj19yohGplOcqWY1itcegVUMX9mdKA6jDQXAywEzgzGAneYapu5GOpyYZnNk_2Z9rZL8uw9Twc5YPowPm5lvtN4FIdqLjhRw7lsdshamzKwXXYcAu73BDDHTV0bxi6WFDQeMAw4KigfCL4kKPTPOEEABR1MFgo9FZ-vG7f4JzZWfibOmuNAe_MVNfXlrRk6fkaf11fBWEwlX24mCRZFtzvBaNawozP6c0NETtP22sOpzqR94Fpnk-v72AocHlDXOaNT6LTN4jOVqZgAU5b7pFKP3ZXVdU3jpjk3pglvjimeRLAM0HJm8li2CpR4NwJbZBZKVuARGJb3LWep7h2EDAUKKO5RQH5-VS9Es4AnEUjVED6j0dANEHCMvJjg0MtTvAf7WfsYSJDhuynm5jBLO023oUASn79HFI_UBt_m6RzlIEqGxggRBqMAZL7r-2giMzWvITGTAVf8r8MDf2JpTdaruTnDQFZwmkROghHNflGeP855i4cB3baAtGIcUFymzmNPRo-oI0GexuLBZilRXADIVtEXdpcK0F-oChIQfcX5jQloD5AIvIX14zmv3ji73rc4EegE1u8UEO9KyLDWMRUr_mrerCsQJ3VIVKjHcRCeJ-_R27msJrAKI6cnnazUt4igcxYAm-qNfN0XeNEL-PllSKDfjSdVS5eHgttK1lXjlh82bWyeN_9IP1foF2_NnxVNtZrWinrQiCBCQ1j-Bzdh3-GyQ0PLLUrNQIzDbndtqYRL4B_DtUw2EbNv5f8ypXM5H9sNyMMvJunHSPlj3hHWoGx5xyKCxBwVuJYG03dsAhfnNSmEZ4qK04c6hvWs7TE0iKWsymihBBCwcvUqQTAn83ACfPPMIGdbS9sWfcOrzqjOmo5GkWEw9Okn6VOZrRhsAbasFEOpVd9lebfu9mDZKUcafIhdxT3cFoUSLi4FhsgBF4E0tZ345asumwPEa5LkcOeYrjEl5MGzLmirxTM9q0BJZDjc5O4aAKpVL9JeTqE6bDty_AgNcTfKVlt8cnPTZkm5-oLxGSQft61pn44NB7h7hWXwY7JQVrhIdRDgY6B4z4FASrV6d1YOj4Yl9GXnk0TYyxxZ7Ih_FQOphXpxqvZNeiTWdVfwqv2dv8QbDOwfuHBIXGLQ-CYEtUfQl9RCZ0-YjzmEzdXF9evJTgdTm_C-x-j2IAQMHgZVeYCJvFGvt-qX2XepXduaaBOQFenPAN5cF7E7ic33eeUdqoHFiuj-1RMs0eYCsNH-Qb1cLvTQ_GbR_O6cm6F-RftLaJohXPjaY-885Fi3SPLhJxbAjpB4t9KrX1JB5MnyVmri9g8f8F6-_6_1ypPXOnoZZJ2hQ1xU8UksX53zwIiKPBWPXvUA4lj_uZzDbsLN3YFawBKg1tbD7ir3ZCLpsSpade_Zqlg3lHFKhLEOJu54mSM5E8r-wL9Se9dsgqKwsC6Fnl9TTS5R3KVS_n8Tf7U3MXjlSEyN3MR_C40kSTRBl5vwrKa2ZkitFRIykBkRhnv9m8SM0FTRjIjtVt7-_tFe_Kt1qgTgA-vdf4-hu6Y7L-Mav2Hr3-3xRt7IW4ZSz7QwQA3Rj1NoQY4cWhEzMWWguRQRSeeWQXF8g0XVGYNbaMUXafdP8p77wfEJIM87Y-opI7xCZMsstGnfk4zCVAsitL_R-6qGuYfVuvF-rrMV8_9qMYbdH1O_KFVn_Vi9jXICK3pFVtJCmDfuUf5QDzT_mtjcRfKYeO3rnat1BiurIVqyfZkA5HaSoySslJ_5gb4lFy2X_vye0fSeZ7cIqFvnF-l7he6SncvUbiZ2Ko0gSb5rCCEX6HAbk0ZTF7h4bpH54FNpV4wy045U_YFNXZ0IbilPcZig_TaF-aP2b74wS3id0mhOHndt2HBSd2ffNQTmj7XxJ4JPkTkL6chiXvTAQEqPnKCy05ZBy9xfn8bL4fCaiYhYv8v7ZFNUDUz6ZNerlyekMp40-eCerlkk39Hju2GE7jBkrzpGpuwGQynI20sXCfew6lWq-7c9dZYxrjsaH7QP_uariE8plG9GS1qEdH-VTC7H0Vcuv81uKu3s1wVf2eOR2Fvkbj7xCQUhNwA5ba-SsBJjSO21RycIcsr43UJzecwV5On51zZ689s7juFH65HtA1M-RqwO0jsC54nlQ2Vbp3fFu6_Dpu49fi0iaJyYfHGk8OxyFykwwUBDe1PRgk1yh2awE3Q6x2OManROmbsjxrxBKR0vuotLl1RcIkbqqr43FxORo3K-R0oCl1tg2RQ8eCVkq5di7gwttanLXAOKEGBQpD_3k4gOdKRM6knT0zuLmT4wOzqID_iKDtvb47vRvDFgIJEXl8jJdnApILoXki-Afw==", - "summary": [ - { - "type": "summary_text", - "text": "**Identifying the sequence pattern**\n\nThe user asked about the sequence: 2, 6, 12, 20, 30. I see that these numbers can be expressed as n(n+1). For example, 2=1*2, 6=2*3, etc. I'm realizing they represent pronic numbers, which are products of consecutive integers. So, the nth term formula is a_n = n(n+1). This sequence\u2019s differences are also revealing a pattern: 4, 6, 8, and 10\u2014interesting how those connect!" - }, - { - "type": "summary_text", - "text": "**Clarifying the formula**\n\nI see this is a second-order linear sequence, where a_n = n^2 + n, starting with a1 = 2 \u2014 that's good! The pattern shows that I'm adding even numbers, beginning at 4 and increasing by 2. Each term corresponds to the product of consecutive integers, confirming the formula as a_n = n(n+1). So for example, 2=1*2, 6=2*3, and so on. I've got it all summed up now\u2014I've reached the end!" - } - ] - }, - { - "id": "msg_0361c6f6e309f1f8016a95bbd7c57c87d0adcfbcfa7f29dc2e", - "type": "message", - "status": "completed", - "content": [ - { - "type": "output_text", - "annotations": [], - "logprobs": [], - "text": "Each term is the product of two consecutive integers:\n \u2022 2 = 1\u00b72 \n \u2022 6 = 2\u00b73 \n \u2022 12 = 3\u00b74 \n \u2022 20 = 4\u00b75 \n \u2022 30 = 5\u00b76 \n\nThese are called \u201cpronic\u201d numbers. In general, the nth term is\n\n a\u2099 = n\u00b7(n + 1) = n\u00b2 + n." - } - ], - "role": "assistant" - } - ], - "parallel_tool_calls": true, - "presence_penalty": 0.0, - "previous_response_id": null, - "prompt_cache_key": null, - "prompt_cache_retention": "in_memory", - "reasoning": { - "context": "current_turn", - "effort": "high", - "mode": "standard", - "summary": "detailed" - }, - "safety_identifier": null, - "service_tier": "default", - "store": false, - "temperature": 1.0, - "text": { - "format": { - "type": "text" - }, - "verbosity": "medium" - }, - "tool_choice": "auto", - "tool_usage": { - "image_gen": { - "input_tokens": 0, - "input_tokens_details": { - "image_tokens": 0, - "text_tokens": 0 - }, - "output_tokens": 0, - "output_tokens_details": { - "image_tokens": 0, - "text_tokens": 0 - }, - "total_tokens": 0 - }, - "web_search": { - "num_requests": 0 - } - }, - "tools": [], - "top_logprobs": 0, - "top_p": 1.0, - "truncation": "disabled", - "usage": { - "input_tokens": 41, - "input_tokens_details": { - "cache_write_tokens": 0, - "cached_tokens": 0 - }, - "output_tokens": 528, - "output_tokens_details": { - "reasoning_tokens": 384 - }, - "total_tokens": 569 - }, - "user": null, - "metadata": {} -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-892784bdb435.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-892784bdb435.json index 0ac2633f..48a6208b 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-892784bdb435.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-892784bdb435.json @@ -1,15 +1,19 @@ { - "id": "resp_0a4b79478d78bab2016a95bc96789087d0b0df7ca653c67156", + "id": "resp_02b7bfb117a08c12016aeebb2b948c87d0b6e78ef6f8885e32", "object": "response", - "created_at": 1788198038, + "created_at": 1794030379, "status": "completed", + "access_programs": null, "background": false, "billing": { "payer": "developer" }, - "completed_at": 1788198041, + "completed_at": 1794030380, "error": null, "frequency_penalty": 0.0, + "image": { + "context_compression": "disabled" + }, "incomplete_details": null, "instructions": null, "max_output_tokens": null, @@ -18,7 +22,7 @@ "moderation": null, "output": [ { - "id": "msg_0a4b79478d78bab2016a95bc9921e487d0860494333f647001", + "id": "msg_02b7bfb117a08c12016aeebb2c214087d082fcc40eddce741e", "type": "message", "status": "completed", "content": [ diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-8b68155b0050.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-8b68155b0050.json new file mode 100644 index 00000000..12b56c09 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-8b68155b0050.json @@ -0,0 +1,98 @@ +{ + "id": "resp_0bff42e0e6e70ca7016aeebb6f8d8487d08854b878c2084a44", + "object": "response", + "created_at": 1794030447, + "status": "completed", + "access_programs": null, + "background": false, + "billing": { + "payer": "developer" + }, + "completed_at": 1794030448, + "error": null, + "frequency_penalty": 0.0, + "image": { + "context_compression": "disabled" + }, + "incomplete_details": null, + "instructions": null, + "max_output_tokens": null, + "max_tool_calls": null, + "model": "gpt-6-luna", + "moderation": null, + "output": [ + { + "id": "msg_0bff42e0e6e70ca7016aeebb7029ec87d0bef2050d64ba781c", + "type": "message", + "status": "completed", + "content": [ + { + "type": "output_text", + "annotations": [], + "logprobs": [], + "text": "Paris" + } + ], + "phase": "final_answer", + "role": "assistant" + } + ], + "parallel_tool_calls": true, + "presence_penalty": 0.0, + "previous_response_id": null, + "prompt_cache_key": null, + "prompt_cache_retention": "24h", + "reasoning": { + "context": "all_turns", + "effort": "low", + "mode": "standard", + "summary": "detailed" + }, + "safety_identifier": null, + "service_tier": "default", + "store": false, + "temperature": 1.0, + "text": { + "format": { + "type": "text" + }, + "verbosity": "medium" + }, + "tool_choice": "auto", + "tool_usage": { + "image_gen": { + "input_tokens": 0, + "input_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "output_tokens": 0, + "output_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "total_tokens": 0 + }, + "web_search": { + "num_requests": 0 + } + }, + "tools": [], + "top_logprobs": 0, + "top_p": 0.98, + "truncation": "disabled", + "usage": { + "input_tokens": 18, + "input_tokens_details": { + "cache_write_tokens": 0, + "cached_tokens": 0 + }, + "output_tokens": 5, + "output_tokens_details": { + "reasoning_tokens": 0 + }, + "total_tokens": 23 + }, + "user": null, + "metadata": {} +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-8f3e88721b18.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-8f3e88721b18.json new file mode 100644 index 00000000..09459a85 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-8f3e88721b18.json @@ -0,0 +1,110 @@ +{ + "id": "resp_0ed86ecb83861bd6016aeeba78f09087d0a4a7f8ba87091038", + "object": "response", + "created_at": 1794030200, + "status": "completed", + "access_programs": null, + "background": false, + "billing": { + "payer": "developer" + }, + "completed_at": 1794030204, + "error": null, + "frequency_penalty": 0.0, + "image": { + "context_compression": "disabled" + }, + "incomplete_details": null, + "instructions": null, + "max_output_tokens": null, + "max_tool_calls": null, + "model": "gpt-6-luna", + "moderation": null, + "output": [ + { + "id": "rs_0ed86ecb83861bd6016aeeba798af487d0b98d406bc71d8fc6", + "type": "reasoning", + "content": [], + "encrypted_content": "gAAAAABq7rp8V169DIR2vw8iD-em5HSUno7PLyyXkMFHU7VQACtMvg2y4BjKzHC3wVKDeVx65LcQJehDa7tCTIDzdzsHBYvsXvs2kuMiAaq4y9etb10mYzUDWJEgK4eDGiLxzgyGJZ0NF9gZegMjOJHyr4EPxnhB7OeVn-zo7eZqSsIafvBA_KEmC2XPI77z6ey4xW8xSk54XyQ8sExI-V1xls_sB-giMelxL7cN1308Fu_9smnYRCiIeNbpSueElSxmjaw4x6WIEQuF8GNO7HLJ50rZGJhZAaMf0F7FbAMeJSpDwiKE-lcyxisMZI79QRiNVusiWLOJr7ThqnX3PDO5kagrfgZhqE9y4zcOGOLDafr3GP0DlWQXPvb0UNAcTckNdw78ZWIGY70oD_QAtIAcbD59UitlBs1c06jAfZnfaeWgDIXvJ3PuTd7E99LECSieDs3gOTYuyLCs-x_N0iaokzOzh4-D3CxrpSzwMg5Z-egt3K94NumlCC5BD6yCQ_q6mW7fYIhzUvVJZGj-7guDACPAUiiHoOgiD9lhLUF3Ike9BltIdLBSMdJk3j88mhhJCWkHjJjj86DIXW_l23ExiG_-8mUPGHBfIla3vgG7VfvAnQP577zt12-F9aqWiJvs3TXnsQX6RsPM5DmYK6DkyG_f0yXAzOhgkDNi4Fh3Jjuj8v3vEnMaMXxszK2NmwoF4dAWZBpGr7jOGB7F7Q05-D5flvatSA8sOZBkGX5bBTN4wLjkcQVT1MJ8Iq5o6z7xg0TLbbh53TVJnbZXwGPuQZ31gdKugqHbu-VnQJESew3czA3gviU42JQ_6CAbOnacfx6cH-Utdo0tG5jUla0Ql_ST8rP2nZPUVetWceO4IRnfP9INshOmQO6CiG9zFF49b_Iz6D7v5nZqYL_Whv53FwfODWG8P8ET4aW5RfbZ-6KxfHVa-01fFYlhzcESC4jsGjitV9ZOu6wA29kpZX2O_8ub08YZbGizabbZQiyw308bivC5MIMMGInhpjF0b5VzapkiH3q6XAnUTNNdqPulwFu6se3Q0DxX9ZguRK1-_QnRCaalctJIwyXbpYrTTgCGE7C_v5UBtRgE2NxF6EKGD0Mpsgu2CpH49ztJwwgOLpa-CYWOJvQ_x2WR-ec1w-GJhoXUHgX910-Dnj08YJWlfk54lHi0IJMQlDTaoLYufP4QPShmg6yTuG8zIiXNK6paBlY-qyJLQaZ5fFpPLtMBluNZM40FG4Vs_pLsFNCQJjhiieDZE2mvlX8toaqRRt5hFc3ux7mzXAoPfZanhVM-EPs2BTkLuUax3CBYbnhr8HYO5I2G3clBzM15yPsKEKaUNA-gFxk1QSnvvIivrCizN79r5RhsILEsfu26gfp_pxZ86VuBaDaooI7c-vKGqKHk4_LUjDGCIiH5ood2zR-C8k47KQLiq1iFYPnSZ6ABMVvfuCXP9Tq7owBQeEAlCxYsAwqpxrZNZL9Z9C-pOhl-m_xMIbU_-DpjZHj-Xoa0u_7IQOVOMh8oXydiB5WVkgaVzuldhgTr4g-HFnoK2KQKCldHDso4MOMPX6J69Z1toJeBJoTHL7TWiHMx8Px-zi5vC4sjxMIOpuWp0qxNA5TP6qovPpEQEU_bhKeFCyOm7_rT6i02qVCG5pQS71JAgajGMlRn2EmiVrOwPKaJESlLsameIKRbcrIqhYk4he-5g54X6WVjptNYhX5inzinz9EAKaf2ak8hfua2KJ3ClotLwQu9HSC1N_b2B7wadzytNV8E5O_aWNz9k0fmnsYd9DoDYkhnD0_m6U1LBORHU1yHAzB5JeMj5CdtewheTPEVd__iCSc321l0S5jXAvfSp_ICPKpwFYfIOM5Z1cvylMo1e3CZGiLPIU0D2g9YhSBNZhSnjjFOI8rdoSJn-O5H_mbnMnxIqD8Yv4I06NuHKPUNltD1rss4ti-cK-Mp_Hgfo89dVJjFL-urJLLTu6jrCnvyDZe-Yjxjn8zLcHg7_Jvhw65eWYYxDP_AF4ucYki85e4cys3uABHNneuBDh6EFgkSYl3zSUtLnwoZ5mDCvnXK5oCSTDi4vwRa-imdSPnavObnhIB7sAokvevYW-xKm86uPxgJoUlK8L6uWpXnsdzXRiM8WsvDTU6YiSzL8VhULnEp0hseCNYKRHJ30HBXRb6pFTR4ZcI1QJJuQKK8gOCth-siV19FEZNZMG5Bkw1UdsANcqk3IIg=", + "summary": [ + { + "type": "summary_text", + "text": "**Evaluating sequence patterns**\n\nI'm thinking we need to explain the ambiguity in patterns like n(n+1). For instance, when n=1, it gives us 2, and with n=2, we get 6, leading to differences of 4, 6, 8, and 10. It seems I should mention that the sequence isn't unique, as it's based on certain assumptions, but it follows a natural progression. I\u2019ll aim for a concise explanation of this." + } + ] + }, + { + "id": "msg_0ed86ecb83861bd6016aeeba7c5af887d08008d94bf816f944", + "type": "message", + "status": "completed", + "content": [ + { + "type": "output_text", + "annotations": [], + "logprobs": [], + "text": "The differences are 4, 6, 8, 10, increasing by 2 each time. A natural pattern is the product of two consecutive integers:\n\n\\[\na_n=n(n+1)\n\\]\n\nStarting with \\(n=1\\), this gives \\(2, 6, 12, 20, 30,\\ldots\\). (Other formulas could fit the first five terms, but this is the simplest common pattern.)" + } + ], + "phase": "final_answer", + "role": "assistant" + } + ], + "parallel_tool_calls": true, + "presence_penalty": 0.0, + "previous_response_id": null, + "prompt_cache_key": null, + "prompt_cache_retention": "24h", + "reasoning": { + "context": "all_turns", + "effort": "high", + "mode": "standard", + "summary": "detailed" + }, + "safety_identifier": null, + "service_tier": "default", + "store": false, + "temperature": 1.0, + "text": { + "format": { + "type": "text" + }, + "verbosity": "medium" + }, + "tool_choice": "auto", + "tool_usage": { + "image_gen": { + "input_tokens": 0, + "input_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "output_tokens": 0, + "output_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "total_tokens": 0 + }, + "web_search": { + "num_requests": 0 + } + }, + "tools": [], + "top_logprobs": 0, + "top_p": 0.98, + "truncation": "disabled", + "usage": { + "input_tokens": 41, + "input_tokens_details": { + "cache_write_tokens": 0, + "cached_tokens": 0 + }, + "output_tokens": 156, + "output_tokens_details": { + "reasoning_tokens": 59 + }, + "total_tokens": 197 + }, + "user": null, + "metadata": {} +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-96490560b71c.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-96490560b71c.txt index 24db0eb1..5bcb1129 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-96490560b71c.txt +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-96490560b71c.txt @@ -1,45 +1,45 @@ event: response.created -data: {"type":"response.created","response":{"id":"resp_0678e2a994c48031006a95bd7020b487d0b46a4ef4b3dcfe5a","object":"response","created_at":1788198256,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":"You are a helpful assistant","max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} +data: {"type":"response.created","response":{"id":"resp_0d84b6fa38d8bbf2016aeebbaaae8887d0b5fe99debcfbde88","object":"response","created_at":1794030506,"status":"in_progress","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"image":{"context_compression":"disabled"},"incomplete_details":null,"instructions":"You are a helpful assistant","max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":false,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} event: response.in_progress -data: {"type":"response.in_progress","response":{"id":"resp_0678e2a994c48031006a95bd7020b487d0b46a4ef4b3dcfe5a","object":"response","created_at":1788198256,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":"You are a helpful assistant","max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} +data: {"type":"response.in_progress","response":{"id":"resp_0d84b6fa38d8bbf2016aeebbaaae8887d0b5fe99debcfbde88","object":"response","created_at":1794030506,"status":"in_progress","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"image":{"context_compression":"disabled"},"incomplete_details":null,"instructions":"You are a helpful assistant","max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":false,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} event: response.output_item.added -data: {"type":"response.output_item.added","item":{"id":"msg_0678e2a994c48031006a95bd71365087d0858e50466a2f84f6","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":0,"sequence_number":2} +data: {"type":"response.output_item.added","item":{"id":"msg_0d84b6fa38d8bbf2016aeebbab0a4c87d08cd38ffe0c641398","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":0,"sequence_number":2} event: response.content_part.added -data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_0678e2a994c48031006a95bd71365087d0858e50466a2f84f6","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":3} +data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_0d84b6fa38d8bbf2016aeebbab0a4c87d08cd38ffe0c641398","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":3} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"The","item_id":"msg_0678e2a994c48031006a95bd71365087d0858e50466a2f84f6","logprobs":[],"obfuscation":"lcnBUd6syFLUo","output_index":0,"sequence_number":4} +data: {"type":"response.output_text.delta","content_index":0,"delta":"The","item_id":"msg_0d84b6fa38d8bbf2016aeebbab0a4c87d08cd38ffe0c641398","logprobs":[],"obfuscation":"6Va273jkckx5k","output_index":0,"sequence_number":4} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" capital","item_id":"msg_0678e2a994c48031006a95bd71365087d0858e50466a2f84f6","logprobs":[],"obfuscation":"wln1gCN6","output_index":0,"sequence_number":5} +data: {"type":"response.output_text.delta","content_index":0,"delta":" capital","item_id":"msg_0d84b6fa38d8bbf2016aeebbab0a4c87d08cd38ffe0c641398","logprobs":[],"obfuscation":"dgZbe2EL","output_index":0,"sequence_number":5} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_0678e2a994c48031006a95bd71365087d0858e50466a2f84f6","logprobs":[],"obfuscation":"VttgbIB93WShc","output_index":0,"sequence_number":6} +data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_0d84b6fa38d8bbf2016aeebbab0a4c87d08cd38ffe0c641398","logprobs":[],"obfuscation":"rgoSr3nvhVt70","output_index":0,"sequence_number":6} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" France","item_id":"msg_0678e2a994c48031006a95bd71365087d0858e50466a2f84f6","logprobs":[],"obfuscation":"iMBbm6RCk","output_index":0,"sequence_number":7} +data: {"type":"response.output_text.delta","content_index":0,"delta":" France","item_id":"msg_0d84b6fa38d8bbf2016aeebbab0a4c87d08cd38ffe0c641398","logprobs":[],"obfuscation":"IEsp3B67J","output_index":0,"sequence_number":7} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" is","item_id":"msg_0678e2a994c48031006a95bd71365087d0858e50466a2f84f6","logprobs":[],"obfuscation":"gfBa1uMemjNiJ","output_index":0,"sequence_number":8} +data: {"type":"response.output_text.delta","content_index":0,"delta":" is","item_id":"msg_0d84b6fa38d8bbf2016aeebbab0a4c87d08cd38ffe0c641398","logprobs":[],"obfuscation":"Z4OCSC1I0SxaG","output_index":0,"sequence_number":8} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Paris","item_id":"msg_0678e2a994c48031006a95bd71365087d0858e50466a2f84f6","logprobs":[],"obfuscation":"xn4mHBC8LY","output_index":0,"sequence_number":9} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Paris","item_id":"msg_0d84b6fa38d8bbf2016aeebbab0a4c87d08cd38ffe0c641398","logprobs":[],"obfuscation":"HtdCaAb1CM","output_index":0,"sequence_number":9} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0678e2a994c48031006a95bd71365087d0858e50466a2f84f6","logprobs":[],"obfuscation":"II6CZVzpzHGyBvN","output_index":0,"sequence_number":10} +data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0d84b6fa38d8bbf2016aeebbab0a4c87d08cd38ffe0c641398","logprobs":[],"obfuscation":"P1eNYQ5UW9IPfH5","output_index":0,"sequence_number":10} event: response.output_text.done -data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_0678e2a994c48031006a95bd71365087d0858e50466a2f84f6","logprobs":[],"output_index":0,"sequence_number":11,"text":"The capital of France is Paris."} +data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_0d84b6fa38d8bbf2016aeebbab0a4c87d08cd38ffe0c641398","logprobs":[],"output_index":0,"sequence_number":11,"text":"The capital of France is Paris."} event: response.content_part.done -data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_0678e2a994c48031006a95bd71365087d0858e50466a2f84f6","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"The capital of France is Paris."},"sequence_number":12} +data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_0d84b6fa38d8bbf2016aeebbab0a4c87d08cd38ffe0c641398","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"The capital of France is Paris."},"sequence_number":12} event: response.output_item.done -data: {"type":"response.output_item.done","item":{"id":"msg_0678e2a994c48031006a95bd71365087d0858e50466a2f84f6","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"The capital of France is Paris."}],"role":"assistant"},"output_index":0,"sequence_number":13} +data: {"type":"response.output_item.done","item":{"id":"msg_0d84b6fa38d8bbf2016aeebbab0a4c87d08cd38ffe0c641398","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"The capital of France is Paris."}],"role":"assistant"},"output_index":0,"sequence_number":13} event: response.completed -data: {"type":"response.completed","response":{"id":"resp_0678e2a994c48031006a95bd7020b487d0b46a4ef4b3dcfe5a","object":"response","created_at":1788198256,"status":"completed","background":false,"completed_at":1788198257,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":"You are a helpful assistant","max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[{"id":"msg_0678e2a994c48031006a95bd71365087d0858e50466a2f84f6","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"The capital of France is Paris."}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":23,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":8,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":31},"user":null,"metadata":{}},"sequence_number":14} +data: {"type":"response.completed","response":{"id":"resp_0d84b6fa38d8bbf2016aeebbaaae8887d0b5fe99debcfbde88","object":"response","created_at":1794030506,"status":"completed","access_programs":null,"background":false,"completed_at":1794030507,"error":null,"frequency_penalty":0.0,"image":{"context_compression":"disabled"},"incomplete_details":null,"instructions":"You are a helpful assistant","max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[{"id":"msg_0d84b6fa38d8bbf2016aeebbab0a4c87d08cd38ffe0c641398","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"The capital of France is Paris."}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":false,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":23,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":8,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":31},"user":null,"metadata":{}},"sequence_number":14} diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-9a580e94f540.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-9a580e94f540.txt index a5411b44..fa44fb3e 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-9a580e94f540.txt +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-9a580e94f540.txt @@ -1,39 +1,39 @@ event: response.created -data: {"type":"response.created","response":{"id":"resp_0d94288b66ecba68006a95bd6095c887d0bca30108cfb5e639","object":"response","created_at":1788198240,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-2024-08-06","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"function","description":"Get the current weather for a location","name":"get_weather","output_schema":null,"parameters":{"type":"object","properties":{"location":{"description":"The city and state","type":"string"}},"required":["location"]},"strict":false}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} +data: {"type":"response.created","response":{"id":"resp_094ffcdc8d78f145016aeebb8841c887d0880aaf78e03f5d97","object":"response","created_at":1794030475,"status":"in_progress","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"image":{"context_compression":"disabled"},"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-2024-08-06","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":false,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"function","description":"Get the current weather for a location","name":"get_weather","output_schema":null,"parameters":{"type":"object","properties":{"location":{"description":"The city and state","type":"string"}},"required":["location"]},"strict":false}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} event: response.in_progress -data: {"type":"response.in_progress","response":{"id":"resp_0d94288b66ecba68006a95bd6095c887d0bca30108cfb5e639","object":"response","created_at":1788198240,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-2024-08-06","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"function","description":"Get the current weather for a location","name":"get_weather","output_schema":null,"parameters":{"type":"object","properties":{"location":{"description":"The city and state","type":"string"}},"required":["location"]},"strict":false}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} +data: {"type":"response.in_progress","response":{"id":"resp_094ffcdc8d78f145016aeebb8841c887d0880aaf78e03f5d97","object":"response","created_at":1794030475,"status":"in_progress","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"image":{"context_compression":"disabled"},"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-2024-08-06","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":false,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"function","description":"Get the current weather for a location","name":"get_weather","output_schema":null,"parameters":{"type":"object","properties":{"location":{"description":"The city and state","type":"string"}},"required":["location"]},"strict":false}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} event: response.output_item.added -data: {"type":"response.output_item.added","item":{"id":"fc_0d94288b66ecba68006a95bd61cbb887d084ec956c0be52ebe","type":"function_call","status":"in_progress","arguments":"","call_id":"call_xpqm2J8UJ13kaKoaUlsXWgPF","name":"get_weather"},"output_index":0,"sequence_number":2} +data: {"type":"response.output_item.added","item":{"id":"fc_094ffcdc8d78f145016aeebb8fb4e887d0aa30409d082585f3","type":"function_call","status":"in_progress","arguments":"","call_id":"call_hV90Ng7t5E45NzEEm4uMp5AB","name":"get_weather"},"output_index":0,"sequence_number":2} event: response.function_call_arguments.delta -data: {"type":"response.function_call_arguments.delta","delta":"{\"","item_id":"fc_0d94288b66ecba68006a95bd61cbb887d084ec956c0be52ebe","obfuscation":"n95BKiJfKG6PWI","output_index":0,"sequence_number":3} +data: {"type":"response.function_call_arguments.delta","delta":"{\"","item_id":"fc_094ffcdc8d78f145016aeebb8fb4e887d0aa30409d082585f3","obfuscation":"eseCOmA9HcYFHU","output_index":0,"sequence_number":3} event: response.function_call_arguments.delta -data: {"type":"response.function_call_arguments.delta","delta":"location","item_id":"fc_0d94288b66ecba68006a95bd61cbb887d084ec956c0be52ebe","obfuscation":"faEtSi9S","output_index":0,"sequence_number":4} +data: {"type":"response.function_call_arguments.delta","delta":"location","item_id":"fc_094ffcdc8d78f145016aeebb8fb4e887d0aa30409d082585f3","obfuscation":"MVUOmO4W","output_index":0,"sequence_number":4} event: response.function_call_arguments.delta -data: {"type":"response.function_call_arguments.delta","delta":"\":\"","item_id":"fc_0d94288b66ecba68006a95bd61cbb887d084ec956c0be52ebe","obfuscation":"waqgWRxnpJVBs","output_index":0,"sequence_number":5} +data: {"type":"response.function_call_arguments.delta","delta":"\":\"","item_id":"fc_094ffcdc8d78f145016aeebb8fb4e887d0aa30409d082585f3","obfuscation":"PMckUhjZXLR9z","output_index":0,"sequence_number":5} event: response.function_call_arguments.delta -data: {"type":"response.function_call_arguments.delta","delta":"Paris","item_id":"fc_0d94288b66ecba68006a95bd61cbb887d084ec956c0be52ebe","obfuscation":"3TjdGxCFvtm","output_index":0,"sequence_number":6} +data: {"type":"response.function_call_arguments.delta","delta":"Paris","item_id":"fc_094ffcdc8d78f145016aeebb8fb4e887d0aa30409d082585f3","obfuscation":"rxvQ3VZSAal","output_index":0,"sequence_number":6} event: response.function_call_arguments.delta -data: {"type":"response.function_call_arguments.delta","delta":",","item_id":"fc_0d94288b66ecba68006a95bd61cbb887d084ec956c0be52ebe","obfuscation":"w1klS4y2zYlFBK9","output_index":0,"sequence_number":7} +data: {"type":"response.function_call_arguments.delta","delta":",","item_id":"fc_094ffcdc8d78f145016aeebb8fb4e887d0aa30409d082585f3","obfuscation":"THyl8YXuKOcssrN","output_index":0,"sequence_number":7} event: response.function_call_arguments.delta -data: {"type":"response.function_call_arguments.delta","delta":" France","item_id":"fc_0d94288b66ecba68006a95bd61cbb887d084ec956c0be52ebe","obfuscation":"AWUqteq4p","output_index":0,"sequence_number":8} +data: {"type":"response.function_call_arguments.delta","delta":" France","item_id":"fc_094ffcdc8d78f145016aeebb8fb4e887d0aa30409d082585f3","obfuscation":"whwA8Ywzi","output_index":0,"sequence_number":8} event: response.function_call_arguments.delta -data: {"type":"response.function_call_arguments.delta","delta":"\"}","item_id":"fc_0d94288b66ecba68006a95bd61cbb887d084ec956c0be52ebe","obfuscation":"GgybNc4cjJmDNN","output_index":0,"sequence_number":9} +data: {"type":"response.function_call_arguments.delta","delta":"\"}","item_id":"fc_094ffcdc8d78f145016aeebb8fb4e887d0aa30409d082585f3","obfuscation":"aMT3IonFY5tJTk","output_index":0,"sequence_number":9} event: response.function_call_arguments.done -data: {"type":"response.function_call_arguments.done","arguments":"{\"location\":\"Paris, France\"}","item_id":"fc_0d94288b66ecba68006a95bd61cbb887d084ec956c0be52ebe","output_index":0,"sequence_number":10} +data: {"type":"response.function_call_arguments.done","arguments":"{\"location\":\"Paris, France\"}","item_id":"fc_094ffcdc8d78f145016aeebb8fb4e887d0aa30409d082585f3","output_index":0,"sequence_number":10} event: response.output_item.done -data: {"type":"response.output_item.done","item":{"id":"fc_0d94288b66ecba68006a95bd61cbb887d084ec956c0be52ebe","type":"function_call","status":"completed","arguments":"{\"location\":\"Paris, France\"}","call_id":"call_xpqm2J8UJ13kaKoaUlsXWgPF","name":"get_weather"},"output_index":0,"sequence_number":11} +data: {"type":"response.output_item.done","item":{"id":"fc_094ffcdc8d78f145016aeebb8fb4e887d0aa30409d082585f3","type":"function_call","status":"completed","arguments":"{\"location\":\"Paris, France\"}","call_id":"call_hV90Ng7t5E45NzEEm4uMp5AB","name":"get_weather"},"output_index":0,"sequence_number":11} event: response.completed -data: {"type":"response.completed","response":{"id":"resp_0d94288b66ecba68006a95bd6095c887d0bca30108cfb5e639","object":"response","created_at":1788198240,"status":"completed","background":false,"completed_at":1788198241,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-2024-08-06","moderation":null,"output":[{"id":"fc_0d94288b66ecba68006a95bd61cbb887d084ec956c0be52ebe","type":"function_call","status":"completed","arguments":"{\"location\":\"Paris, France\"}","call_id":"call_xpqm2J8UJ13kaKoaUlsXWgPF","name":"get_weather"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"function","description":"Get the current weather for a location","name":"get_weather","output_schema":null,"parameters":{"type":"object","properties":{"location":{"description":"The city and state","type":"string"}},"required":["location"]},"strict":false}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":54,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":17,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":71},"user":null,"metadata":{}},"sequence_number":12} +data: {"type":"response.completed","response":{"id":"resp_094ffcdc8d78f145016aeebb8841c887d0880aaf78e03f5d97","object":"response","created_at":1794030475,"status":"completed","access_programs":null,"background":false,"completed_at":1794030484,"error":null,"frequency_penalty":0.0,"image":{"context_compression":"disabled"},"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-2024-08-06","moderation":null,"output":[{"id":"fc_094ffcdc8d78f145016aeebb8fb4e887d0aa30409d082585f3","type":"function_call","status":"completed","arguments":"{\"location\":\"Paris, France\"}","call_id":"call_hV90Ng7t5E45NzEEm4uMp5AB","name":"get_weather"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":false,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"function","description":"Get the current weather for a location","name":"get_weather","output_schema":null,"parameters":{"type":"object","properties":{"location":{"description":"The city and state","type":"string"}},"required":["location"]},"strict":false}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":54,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":17,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":71},"user":null,"metadata":{}},"sequence_number":12} diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-7fc8497bbe6a.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-b92f8c0d1cfe.json similarity index 53% rename from test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-7fc8497bbe6a.json rename to test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-b92f8c0d1cfe.json index acae993b..2f8604df 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-7fc8497bbe6a.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-b92f8c0d1cfe.json @@ -1,36 +1,40 @@ { - "id": "resp_0101af2ea84b56a6016a95bbc5316087d0979c70b5e36ed044", + "id": "resp_0457fd82f012e247016aeeba6de65887d0a788f9d69e3292a0", "object": "response", - "created_at": 1788197829, + "created_at": 1794030190, "status": "completed", + "access_programs": null, "background": false, "billing": { "payer": "developer" }, - "completed_at": 1788197836, + "completed_at": 1794030192, "error": null, "frequency_penalty": 0.0, + "image": { + "context_compression": "disabled" + }, "incomplete_details": null, "instructions": null, "max_output_tokens": null, "max_tool_calls": null, - "model": "gpt-4o-2024-08-06", + "model": "gpt-6-luna", "moderation": null, "output": [ { - "id": "ws_0101af2ea84b56a6016a95bbc7f0e887d0893eed6df9b97576", + "id": "ws_0457fd82f012e247016aeeba6e8acc87d099f366d955eff8c7", "type": "web_search_call", "status": "completed", "action": { "type": "search", "queries": [ - "recent AI news" + "recent AI news headline June 2025 artificial intelligence news" ], - "query": "recent AI news" + "query": "recent AI news headline June 2025 artificial intelligence news" } }, { - "id": "msg_0101af2ea84b56a6016a95bbc9b6b087d0a716c1e9db704ba9", + "id": "msg_0457fd82f012e247016aeeba706dc487d09ca4e042e322abf6", "type": "message", "status": "completed", "content": [ @@ -39,23 +43,17 @@ "annotations": [ { "type": "url_citation", - "end_index": 277, - "start_index": 162, - "title": "Exclusive: AI advocacy group launches data center push in battleground states", - "url": "https://www.axios.com/2026/08/31/ai-advocacy-group-data-center-battleground-states?utm_source=openai" - }, - { - "type": "url_citation", - "end_index": 478, - "start_index": 297, - "title": "Exclusive: AI advocacy group launches data center push in battleground states", - "url": "https://www.axios.com/2026/08/31/ai-advocacy-group-data-center-battleground-states?utm_source=openai" + "end_index": 187, + "start_index": 94, + "title": "UK will face AI cyberattacks on critical infrastructure by 2028, official says", + "url": "https://apnews.com/article/4e61bf9b55c7d1d15cfd075859d2ba08?utm_source=openai" } ], "logprobs": [], - "text": "An AI advocacy group has launched a $50 million campaign to support AI data center development in battleground states, starting with Kansas, Ohio, and Wisconsin. ([axios.com](https://www.axios.com/2026/08/31/ai-advocacy-group-data-center-battleground-states?utm_source=openai))\n\n\n## Highlights:\n- [Exclusive: AI advocacy group launches data center push in battleground states](https://www.axios.com/2026/08/31/ai-advocacy-group-data-center-battleground-states?utm_source=openai), Published on Monday, August 31 " + "text": "AP reports: \u201cUK will face AI cyberattacks on critical infrastructure by 2028, official says.\u201d ([apnews.com](https://apnews.com/article/4e61bf9b55c7d1d15cfd075859d2ba08?utm_source=openai))" } ], + "phase": "final_answer", "role": "assistant" } ], @@ -63,10 +61,11 @@ "presence_penalty": 0.0, "previous_response_id": null, "prompt_cache_key": null, - "prompt_cache_retention": "in_memory", + "prompt_cache_retention": "24h", "reasoning": { - "context": null, - "effort": null, + "context": "all_turns", + "effort": "none", + "mode": "standard", "summary": null }, "safety_identifier": null, @@ -115,19 +114,19 @@ } ], "top_logprobs": 0, - "top_p": 1.0, + "top_p": 0.98, "truncation": "disabled", "usage": { - "input_tokens": 316, + "input_tokens": 8761, "input_tokens_details": { "cache_write_tokens": 0, - "cached_tokens": 0 + "cached_tokens": 4454 }, - "output_tokens": 142, + "output_tokens": 75, "output_tokens_details": { - "reasoning_tokens": 0 + "reasoning_tokens": 34 }, - "total_tokens": 458 + "total_tokens": 8836 }, "user": null, "metadata": {} diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-b9d1173a9de6.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-b9d1173a9de6.json index 97f783c8..e991e23b 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-b9d1173a9de6.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-b9d1173a9de6.json @@ -1,15 +1,19 @@ { - "id": "resp_02cc98ad06273a74006a95bd5b1eb087d099df8027a7abb301", + "id": "resp_07d9ba0693aaa73f016aeebb82c1b487d0937d9aa8bddd5ba4", "object": "response", - "created_at": 1788198235, + "created_at": 1794030466, "status": "completed", + "access_programs": null, "background": false, "billing": { "payer": "developer" }, - "completed_at": 1788198235, + "completed_at": 1794030467, "error": null, "frequency_penalty": 0.0, + "image": { + "context_compression": "disabled" + }, "incomplete_details": null, "instructions": "You are a helpful assistant", "max_output_tokens": null, @@ -18,7 +22,7 @@ "moderation": null, "output": [ { - "id": "msg_02cc98ad06273a74006a95bd5bd08887d0ac535b427d306305", + "id": "msg_07d9ba0693aaa73f016aeebb832ecc87d0bea9748c11fe398b", "type": "message", "status": "completed", "content": [ @@ -44,7 +48,7 @@ }, "safety_identifier": null, "service_tier": "default", - "store": true, + "store": false, "temperature": 1.0, "text": { "format": { diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-bdae47d54959.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-bdae47d54959.json deleted file mode 100644 index 0764b072..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-bdae47d54959.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "id": "resp_0cdcf22d3808a85f006a95bbd61bbc87d0a4b3ddd0c8f4e33a", - "object": "response", - "created_at": 1788197846, - "status": "completed", - "background": false, - "billing": { - "payer": "developer" - }, - "completed_at": 1788197876, - "error": null, - "frequency_penalty": 0.0, - "incomplete_details": null, - "instructions": null, - "max_output_tokens": null, - "max_tool_calls": null, - "model": "o4-mini-2025-04-16", - "moderation": null, - "output": [ - { - "id": "rs_0cdcf22d3808a85f006a95bbd7218887d09fb602e6a1419ef0", - "type": "reasoning", - "content": [], - "encrypted_content": "gAAAAABqlbv0R1eufJtJbpIkOfSDwwyF5lQNyx50eyNFEAQYx630DXHxgoY9Jq3Tr-55UnSd6tmfLMfB-J6kUQ8cC4ou18k1bNH5wWN2tr8R6qRHS5_7b9ars4VkbJ9VOo4vEghADLo3XSZLVDqAxJPv17iLQXxfkTXgO-3SlFFYdFt-P8qQsW6eGGzQvZBSrN4E14vZPfPUleTkWwttsdlyA8Ma7Yio2rhmQOyflOhQfU2QVZ7s2JwvAPAbjF8_e5MHsD5jvhzvGWhHOKlNJrQ2Jd9tMQjkzWciwEzy1wjxP52x0m-in6cEHr2zhh_rKwHtOUSeC8DvqjeY76hOH4vLuuGe6GWxvQnhRZvu4MUdnPh0V9DiYiNwcaf2oawPKGQ81Ym3qwXRM2LC-qvYDJ2NHDkCNHZW7FSoJt8w-T7KhT-Bs-VaV4biMqs0sPHkJQ2Fs9yBSu8SqauxboASnx5ivXIsO4tI860xy4cW1B9-aWyqdFXSvi4QKYf7FuGU_aWbNr8-atpgj8Z_NITWh9z7XUXTgPHQ8I9wBoA4ThK1gicMnyG6HalA7lmeUeMhiSnfUMdOCAhp2_orJf4l0EZ3PMCxneIiFIXeoMIPq3YVQm6kswbEROUTFG3JlKchrTJ6Fed5sbtAGlN4vektll9l6U1iWgL8ZjAI995qSe6zcf0UhE75sR_KZNSS5W-jWFO1k-FzfrBouMzTYegfBmllfZ2DbA_iQz8chQoDQyb2-_9ALHs9Gq6F8ar5KY1jbnh1RV1jlRsXlAfjG9-4ibqyRHsHv7bMLe0M4SngpnEhpK-G-RCLk3L5ij4Jh3Vp_amD3o6LpLzcpANbLac-geQFzxUzImDO_Ior0CAGLyiMemXE0mBY5auEtsDny6SRKwZH98bluWH-U9PFB_nONLq07klJZuygho9BJ7Uc51jwXL279U74DjTaH0yfZhFckXfeIsEfOHRkJUVtXeiqUtKksgnzrZ-WHyg-2VLIvoLMEqcK1o3b9aHNi7nJvPoFd1rZRdEtjrnNF9Yr_qTq_Vl-qbPm7ufNt9ZKuD0pCpnY4XGwvoJdetmL5HQJDcrqBpPvuM4FfyPc8Fi_SUikd5cAdlXtB9bysGzSIgVQyxIHUVOnGUxSOHqnb644NPze_mGP1uI02ZhwK55FbCOQTbX30ltwzEJxt3KRIjLOiJIO5rU2ogodcY4kPqg-HgB7NupgzL_Q9JyQZIp1uD063kMOvWB6vldjVw3kDsMVNFtlUIO6oafPwxNf1zaK4RUan718ephxQA6iS-9S2RBfYRnuuNrGUaunRmg37_1ttH_qAOc4zxIC3HobJoAvEi64b9VMu30jF7P17nctX5p_B98fN_dJE_rrbALg9LzHFD8QjomJGiseBoumw4D2X73Bb1ocyAxt3MmUvbYzw4aYPWKl4-TRIOKK176SN24aQ9vF3V3_rcfvghjsyiGCiIoTXy1ubghm9oMRv2gorYMmywxfLv1sQ9mjkDUJYoarmzRzzJLCyBhi4Qdd4KpOGdBwe9_ONm-whwTTDU8yzrwoOQNnjNBDDwaRQA3xowTg_Qx1QjSTZ2sF0nqPYvU0V6co0Wpd_8rJIAhalAGmLDDxx-U2Cy7VSg6fc2pXLBkfaOU_34apCygjec0Ne2Wn6SOfhSYDb8w7ChD6fUow7Vt5dA8hT6NBpIcQhwLb5TNYdBbKznBH_UULjCu5m0qmoSND-YAe2j2SLLTuXs3QZ3eOTeKGaFt6A9xTiXDdGnqmTweP-UYP2q4H2UJVX3f2nJ6xn7quRekZVylpl-PgMA4Zq_sVe1ir1gKCgXttnQM_bQ1OG5FIquWogHWuU42iM2nOfzXnD7tl_ugmdtO3qfcOPcypMKl8t87fROLKkBHeuhnscyehdFIl0DUkpgJZy6Uw6K0pF_UmYrv5c7pQfcS04C_R1XpsjOQVo2r9otSQYN_MqRgAIp_zu6orJp1gCWEte7t81a6KdAjIc8ryqV9mW0Xru6UAENxgfH3CrZkSVvryZ7tC9uURDZCd1jAfyoOuqJHwN2sTOF5-JdXevibb4Thy9UQftBy1vjP1KDHHUqoea9NHZdLDZgwq_kA0qtKNiw5lYj9SWp1UaqNYKOSWiC4EzXQGJ9d5S296e4H4QFqe0x_a1cWLO3-lOQ84hiZeSGmXl_JlLnUe4J53EaEzglKLsQ9EhTgQIL9dtHSVeQQfCeUspWpj_SjlRKFUoc5Hr81xLSXoX-pyYDvTdvE6GY9Un5UvjtNbRAXqjAqSg6gObhogzGU0eVWjNCUW_JqXLlvbcGBxLaFoACjrQOUnW3Jrqmn2_zzp8hrBxV5a1xzlyXM8-gu82qDckyJo74KiXT-z85Vbs2QKWmX_j-NubamctY_mSqQYpn1ihSYM1vMDBKPKxiUV8iHr006ALqoW3gmJwHWeaNgexE8X4bb_pAdRqHCEmou1AqUHDvA7bnqE8V6zM09DEDCei0FKPScse73slv5KBgmxJd-m3DHVsV9iRzHgE5678nffXor0DDkbMb0KeZMOk-Op_rCvlQbeWnvjkCDuQqfa4G4rCwEdOoEfj8-D16znJe2NiZKgGkZyRBd7-zGfY1ktxxft9bjot9bsGFkAeMsrL2fWFB4uAyRJUDnsXjHxTQZZa7htnTUOuQyLsgBA514h4AFPqVVUSyilQiRUyRt8ew3fpNuJMEm1C9nX1HAmiBqYkLA7YRtbwym-MMKPyIOA1fdi5_aUNXA6ilyUUytG3Cqn1J36nD_05XdJT15_MOjtwKwMTLIlL_Zxr0GeMXreYPb71tMZmbm7nKjttWDgd6tdQ9xKr9H4RSHdhPGBZ4z_36brBzQPZmC5MwqHL5B4e1igeApdanOlM2WJGdYYvhzgy0NonSbuFirLCy-TivmI7Qj0et06oStbEX8C7LjMEpiGjiMjT3m0VYVRggZgYizsTUxoSFBMN0tpbbQvCyQsthM-UbToje7uDppG9yfQH9rw1__AmGa7S02kVOju4wwSy_CNwPaHmtLEnCpWoGKVWxPE9eGtvJPaPOG3kJ0K4KLTbSM50JRezjY59pw630JeZLes8E7m_3f0XRaxP4gQSXaM83HM001Ae0zYjZLtFeRTygw9kIXPms1sUtP7qtPDimAw4HG008e6CCEvZ7OdcLP80uhc16afDLyXJH7B4bpTI44WRvtunScyNgaKVTzPfCGqpeF-q-8IjokZbgaymFVuNcDRLyvwTq1b6L_m3TiScvrJpd1YtQmJXbipfpTDdDbbcgunMBX8mmfWcO8atngnOwek490LnBJH1y3088DGAfN8lfi7pABZno3P1ctdhZqMw15EoRkZCC48UZxWtAWmqIigDmZOyOVbPEjA-8v9aWQ9ys5ofC-7ecnx-RAUh9TsFHpCnk53Asl20QdyYdFA2ZmlREx2Q0POGQgjGbTT3zS7TDiMvCs98SipQoHh_bYBKLG3qCOWrsOk87k1rErBM-caf6GIZeRtn-TfYIbnb8sRto8micDjh7riRgUHs9X8VPqwnR3B3eKHyVrS_gLt9dkKQRLXDS-qFzKdUP80AOnR5V9tlNKBdsR2Y1fMaVRk0SV-UPlxEB3aGbUdfBhxzknQxnc0cd0HaNTe1Eak4Bm5uHNnP7oNdxoIJ2o9haMpXyLmnVbKxXFnZbq7om319NGkbYO6yYeLw-XquQvJ03Up-EKQN0OT70OR6CWfKgL2kQcXWp7kwQa8OTis-5ueWeE1pSea3WTT37NSvILEch3CvBJzavZAo-6YM0Avd4mV5EyenDn0kQbShpwc6Ep_s2TJPErn73EdcNqLWRXGN812HHV89yvkx5ikXG7aMGOkk8LZ77bVkJ6tanVteeL6e6ob0-_Tiolv_bNKdzcHGuX-2m_mjrkpF60TDlp95Cgq-6z6MEai8iVGmOekPNdk2zNqXQGdUocOg5XhHYbtgmhmFLpJoE0ZykyMPZ4YyPkn01juVQtH0UvULwO7cQpJEm21lkt9DB3nEtEqnuAT8JxetIvk3FZhSXpuSwi8UqEgiRind2U_4BCHTbx6PDtwuVC5DXjvxWg90v5vQihn5jRIi8-VpU7HgfYftg9gxmZxQXHcc7RQFUw18L_EktGmbIqb3HWrjBaZ8wgRL7iCKefKVved-dJhofx3u7N-yUZHK0Ko7GEc_aF4x-4CkxmSuSgjjzYQPwdCZ_EXYNtNngAeWCaUcrKi_qP11K4NEkbG5_QX5-5tJFxlsrOwUftNNOYGjZc_E8RcSjlJJz11tY27nwDy2-5N5TJPNPKJNsYsVZSgyqhRtls1bRN8UqGxdxntGbprGQVyLdtRRfifF24wTHHfkZlZ0LwBSupapvViaq6UwcXYL-ke05gM-Tp-g94qcP29ikhRc1-sHmtBu3cd90GE3zklc03rBG13P-DtNVaAG_N_kQyKeSVYAUYXj4LOpn79BrJusj5QCXlvQWLXq8xzdvqb4Yp7nAQRphCUMg9xiFbUs0EfmgFhipxX8Rw_9fb2N2QsCctaDlqLrE28msB93S3lLhPJfl22Wjqt9for2Poz8Tz8TcGs3yZ-qBfHFrbD8J2mTRWD1iaGktJqZ5MIEnK0CilO-zwPRHDkgBMUpdQEdytTHHge3dyxhtOYgipdnausN0H83XzhK266FrVgNHzBkyKdibsUrI_WiGpE62pO6QHvvcHhXxcVBuTEZGfiDIJpnZZ_QOf--DazVvMK4H3Jdt5LNYwHx_nm5ZtMye8isQUKOh5-LFUNFlXRSeVe0xTl_Ozj2knoYd2z5iXuWoeZjd-T_sa9n0CX_naFtxwKR3KiLe_Z4bwWTHR2yy15l0DKhK-wIDslG2qvyCBdf3D47tOTW6-Ffln4XYe5L9EudzzUJ2Qb_d3S8WnngUmkTZmeVy78t-QFqO_dQf8YY4TF3l0AL2QHMhT4VU9bvXtx6Zghx2Eb8mGXQ-cChufQSw252JyS1_l0VZmQvqGvTUm8pFkg0kz9JQ_WJiHDn5qM-q_FzEb5QLWjAVTzEG1aP6p7CufWDK6HJwzzkp3khLeRcLLvfbAHvU9C0A0rIrimhP94p_3MHv_v8gl-pa0VOX5CT8N7bKlDjfiya9q7_OWICcC_JPYaBCNgCZ1SKWfi4XaivfeRRuez7IvLOUSLyUAeN72dIECBKI5I6jth-c-LlTLadL-2jTXDVLRyo0gWnUfrnoz9l5tchixXwP9Kf0CRe7AaCz_qLG_1b-BAhjV2LDvSQfkOFh1mL_cI4bQTspUMizLkVy6UJOeqBCKvH-f9ElEPqQIfpVQeSHZjmzzDkT3bag667KPPsKJnmHKWGqNrk-nMAULOVrsvtD4O156wo_UpCuKN7-nNYhOexTaneNcobnCEnWlid-9ibJS7Bk9UyvA_Zu_SVh6iM3elesaQ4lK1MJrZ5yTSGuVcnVdZKTPfQxqVPC9_2L86XJivB7Odc_abxnTRM8LsoODSl_0FQWfnbU1-jIFggxFQiPfFP7u-KzFE1qmKOWtbIvcQH-eZ1AZ11Cbmy0RgeRkIXTCF7YIcoag277N1GXSspM_GU3uB7nTQ2p63GO_SDGSRh92c-6PM3gmJOdPffP0fcHlGDL-Lhzn-VPagk1Ib4iQZHMVAD2HQIZ1WBJC2cORqHRwjvcgYs2-xx9iu7AMQG1UlLho=", - "summary": [ - { - "type": "summary_text", - "text": "**Identifying the Sequence**\n\nThe user wants to explore the pattern in the sequence: 2, 6, 12, 20, 30. I see that it looks like these are double the triangular numbers, which are defined as T_n = n(n+1)/2. When I double these values, I indeed get the sequence: 2, 6, 12, 20, 30. So, the nth term is given by the formula a_n = n(n+1). This highlights that these numbers are pronic numbers, being products of consecutive integers." - }, - { - "type": "summary_text", - "text": "**Deriving the Formula**\n\nI can express the nth term as a_n = 2 times the triangular number or as a_n = 2*C(n+1, 2), but the simplest form is a_n = n(n+1). The sequence shows constant second differences, confirming it's quadratic. The differences between terms are even numbers: 4, 6, 8, and 10, with differences increasing by 2. After solving the equations formed, I found a_n = n^2 + n, identifying it as pronic numbers\u2014products of consecutive integers starting from 1." - }, - { - "type": "summary_text", - "text": "**Finalizing the Answer**\n\nThe pattern I've identified consists of numbers in the form n(n+1). Therefore, I can express the nth term as a_n = n(n+1) or a_n = n^2 + n. These numbers are also twice the triangular numbers, since T_n = n(n+1)/2 leads to a_n = 2T_n. Notably, the first differences form an arithmetic progression: 4, 6, 8, 10. Given that the second difference is constant at 2, the general term simplifies to a quadratic equation: a_n = n^2 + n." - } - ] - }, - { - "id": "msg_0cdcf22d3808a85f006a95bbf0c93087d0a6bcf30b13f4e166", - "type": "message", - "status": "completed", - "content": [ - { - "type": "output_text", - "annotations": [], - "logprobs": [], - "text": "The terms are the \u201cpronic\u201d (or oblong) numbers, i.e. products of two consecutive integers:\n\n 1\u00b72 = 2,\u20032\u00b73 = 6,\u20033\u00b74 = 12,\u20034\u00b75 = 20,\u20035\u00b76 = 30, \u2026\n\nHence if you start counting at n=1 the nth term is\n\n a\u2099 = n\u00b7(n + 1)\n\nor equivalently\n\n a\u2099 = n\u00b2 + n." - } - ], - "role": "assistant" - } - ], - "parallel_tool_calls": true, - "presence_penalty": 0.0, - "previous_response_id": null, - "prompt_cache_key": null, - "prompt_cache_retention": "in_memory", - "reasoning": { - "context": "current_turn", - "effort": "high", - "mode": "standard", - "summary": "detailed" - }, - "safety_identifier": null, - "service_tier": "default", - "store": true, - "temperature": 1.0, - "text": { - "format": { - "type": "text" - }, - "verbosity": "medium" - }, - "tool_choice": "auto", - "tool_usage": { - "image_gen": { - "input_tokens": 0, - "input_tokens_details": { - "image_tokens": 0, - "text_tokens": 0 - }, - "output_tokens": 0, - "output_tokens_details": { - "image_tokens": 0, - "text_tokens": 0 - }, - "total_tokens": 0 - }, - "web_search": { - "num_requests": 0 - } - }, - "tools": [], - "top_logprobs": 0, - "top_p": 1.0, - "truncation": "disabled", - "usage": { - "input_tokens": 41, - "input_tokens_details": { - "cache_write_tokens": 0, - "cached_tokens": 0 - }, - "output_tokens": 1293, - "output_tokens_details": { - "reasoning_tokens": 1152 - }, - "total_tokens": 1334 - }, - "user": null, - "metadata": {} -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-9ec1c9b92ff9.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-bdf9fabdc0f8.json similarity index 86% rename from test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-9ec1c9b92ff9.json rename to test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-bdf9fabdc0f8.json index 7971090d..3268e92a 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-9ec1c9b92ff9.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-bdf9fabdc0f8.json @@ -1,15 +1,19 @@ { - "id": "resp_0d40e777d0428c5f016a95bca9f36487d09dc1a3505bea2575", + "id": "resp_033a78dedf1b1fc5016aeebb4180c087d0946b5e53f61a3979", "object": "response", - "created_at": 1788198057, + "created_at": 1794030401, "status": "completed", + "access_programs": null, "background": false, "billing": { "payer": "developer" }, - "completed_at": 1788198059, + "completed_at": 1794030402, "error": null, "frequency_penalty": 0.0, + "image": { + "context_compression": "disabled" + }, "incomplete_details": null, "instructions": null, "max_output_tokens": null, @@ -18,19 +22,19 @@ "moderation": null, "output": [ { - "id": "fc_0d40e777d0428c5f016a95bcab8cf487d0811bb6ccedbf1ac6", + "id": "fc_033a78dedf1b1fc5016aeebb42ba9887d08ff14a66a313b487", "type": "function_call", "status": "completed", "arguments": "{\"arg0\":\"Paris\"}", - "call_id": "call_dlJJaeYbZqiLTojthEVSuD5f", + "call_id": "call_9L39XiHKqqwhSAq0lHcBEPJ7", "name": "getWeather" }, { - "id": "fc_0d40e777d0428c5f016a95bcab8d0c87d0adde747ded153af1", + "id": "fc_033a78dedf1b1fc5016aeebb42baa487d09b560e912b3473e7", "type": "function_call", "status": "completed", "arguments": "{\"arg0\":\"New York\"}", - "call_id": "call_kLgnom9OZNcToRYj0vDlqYyN", + "call_id": "call_lLb5cLAhUnXvhuBYlyWFfF8y", "name": "getWeather" } ], @@ -76,18 +80,22 @@ "tools": [ { "type": "function", - "description": "Get current weather for a location", - "name": "getWeather", + "description": "Get weather forecast for next N days", + "name": "getForecast", "output_schema": null, "parameters": { "type": "object", "properties": { "arg0": { "type": "string" + }, + "arg1": { + "type": "integer" } }, "required": [ - "arg0" + "arg0", + "arg1" ], "additionalProperties": false }, @@ -95,22 +103,18 @@ }, { "type": "function", - "description": "Get weather forecast for next N days", - "name": "getForecast", + "description": "Get current weather for a location", + "name": "getWeather", "output_schema": null, "parameters": { "type": "object", "properties": { "arg0": { "type": "string" - }, - "arg1": { - "type": "integer" } }, "required": [ - "arg0", - "arg1" + "arg0" ], "additionalProperties": false }, diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-c1b40cd66fd7.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-c1b40cd66fd7.txt index 0ac60f18..c14240b8 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-c1b40cd66fd7.txt +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-c1b40cd66fd7.txt @@ -1,45 +1,45 @@ event: response.created -data: {"type":"response.created","response":{"id":"resp_0b2b14c65b5b4c96016a95bc9d6bd087d0abf63d525b603fec","object":"response","created_at":1788198046,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":false,"temperature":0.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} +data: {"type":"response.created","response":{"id":"resp_04fea356491b6ee4016aeebb2d0e2887d0874a922bc09652a2","object":"response","created_at":1794030381,"status":"in_progress","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"image":{"context_compression":"disabled"},"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":false,"temperature":0.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} event: response.in_progress -data: {"type":"response.in_progress","response":{"id":"resp_0b2b14c65b5b4c96016a95bc9d6bd087d0abf63d525b603fec","object":"response","created_at":1788198046,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":false,"temperature":0.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} +data: {"type":"response.in_progress","response":{"id":"resp_04fea356491b6ee4016aeebb2d0e2887d0874a922bc09652a2","object":"response","created_at":1794030381,"status":"in_progress","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"image":{"context_compression":"disabled"},"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":false,"temperature":0.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} event: response.output_item.added -data: {"type":"response.output_item.added","item":{"id":"msg_0b2b14c65b5b4c96016a95bc9fe02887d0a32713961cb31027","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":0,"sequence_number":2} +data: {"type":"response.output_item.added","item":{"id":"msg_04fea356491b6ee4016aeebb2d869c87d0b94b38a9dfb289b4","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":0,"sequence_number":2} event: response.content_part.added -data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_0b2b14c65b5b4c96016a95bc9fe02887d0a32713961cb31027","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":3} +data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_04fea356491b6ee4016aeebb2d869c87d0b94b38a9dfb289b4","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":3} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"The","item_id":"msg_0b2b14c65b5b4c96016a95bc9fe02887d0a32713961cb31027","logprobs":[],"obfuscation":"z9PcNyc4JmwBg","output_index":0,"sequence_number":4} +data: {"type":"response.output_text.delta","content_index":0,"delta":"The","item_id":"msg_04fea356491b6ee4016aeebb2d869c87d0b94b38a9dfb289b4","logprobs":[],"obfuscation":"JduE6NzDuYA7X","output_index":0,"sequence_number":4} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" capital","item_id":"msg_0b2b14c65b5b4c96016a95bc9fe02887d0a32713961cb31027","logprobs":[],"obfuscation":"ex0Iia5S","output_index":0,"sequence_number":5} +data: {"type":"response.output_text.delta","content_index":0,"delta":" capital","item_id":"msg_04fea356491b6ee4016aeebb2d869c87d0b94b38a9dfb289b4","logprobs":[],"obfuscation":"U3uLR9CD","output_index":0,"sequence_number":5} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_0b2b14c65b5b4c96016a95bc9fe02887d0a32713961cb31027","logprobs":[],"obfuscation":"vXbwTOSCMWZxM","output_index":0,"sequence_number":6} +data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_04fea356491b6ee4016aeebb2d869c87d0b94b38a9dfb289b4","logprobs":[],"obfuscation":"mpXNYwt3ElCge","output_index":0,"sequence_number":6} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" France","item_id":"msg_0b2b14c65b5b4c96016a95bc9fe02887d0a32713961cb31027","logprobs":[],"obfuscation":"K0N2g3DLj","output_index":0,"sequence_number":7} +data: {"type":"response.output_text.delta","content_index":0,"delta":" France","item_id":"msg_04fea356491b6ee4016aeebb2d869c87d0b94b38a9dfb289b4","logprobs":[],"obfuscation":"r74YYu8pO","output_index":0,"sequence_number":7} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" is","item_id":"msg_0b2b14c65b5b4c96016a95bc9fe02887d0a32713961cb31027","logprobs":[],"obfuscation":"s3CfRZHvK8xNE","output_index":0,"sequence_number":8} +data: {"type":"response.output_text.delta","content_index":0,"delta":" is","item_id":"msg_04fea356491b6ee4016aeebb2d869c87d0b94b38a9dfb289b4","logprobs":[],"obfuscation":"qicDCO5q7vmwR","output_index":0,"sequence_number":8} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Paris","item_id":"msg_0b2b14c65b5b4c96016a95bc9fe02887d0a32713961cb31027","logprobs":[],"obfuscation":"WGtGF1B5wG","output_index":0,"sequence_number":9} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Paris","item_id":"msg_04fea356491b6ee4016aeebb2d869c87d0b94b38a9dfb289b4","logprobs":[],"obfuscation":"NN3yVmCJDP","output_index":0,"sequence_number":9} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0b2b14c65b5b4c96016a95bc9fe02887d0a32713961cb31027","logprobs":[],"obfuscation":"YR2FEn7v94S5kAJ","output_index":0,"sequence_number":10} +data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_04fea356491b6ee4016aeebb2d869c87d0b94b38a9dfb289b4","logprobs":[],"obfuscation":"vvpQkwpa5nZkL0e","output_index":0,"sequence_number":10} event: response.output_text.done -data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_0b2b14c65b5b4c96016a95bc9fe02887d0a32713961cb31027","logprobs":[],"output_index":0,"sequence_number":11,"text":"The capital of France is Paris."} +data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_04fea356491b6ee4016aeebb2d869c87d0b94b38a9dfb289b4","logprobs":[],"output_index":0,"sequence_number":11,"text":"The capital of France is Paris."} event: response.content_part.done -data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_0b2b14c65b5b4c96016a95bc9fe02887d0a32713961cb31027","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"The capital of France is Paris."},"sequence_number":12} +data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_04fea356491b6ee4016aeebb2d869c87d0b94b38a9dfb289b4","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"The capital of France is Paris."},"sequence_number":12} event: response.output_item.done -data: {"type":"response.output_item.done","item":{"id":"msg_0b2b14c65b5b4c96016a95bc9fe02887d0a32713961cb31027","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"The capital of France is Paris."}],"role":"assistant"},"output_index":0,"sequence_number":13} +data: {"type":"response.output_item.done","item":{"id":"msg_04fea356491b6ee4016aeebb2d869c87d0b94b38a9dfb289b4","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"The capital of France is Paris."}],"role":"assistant"},"output_index":0,"sequence_number":13} event: response.completed -data: {"type":"response.completed","response":{"id":"resp_0b2b14c65b5b4c96016a95bc9d6bd087d0abf63d525b603fec","object":"response","created_at":1788198046,"status":"completed","background":false,"completed_at":1788198048,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[{"id":"msg_0b2b14c65b5b4c96016a95bc9fe02887d0a32713961cb31027","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"The capital of France is Paris."}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":false,"temperature":0.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":14,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":8,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":22},"user":null,"metadata":{}},"sequence_number":14} +data: {"type":"response.completed","response":{"id":"resp_04fea356491b6ee4016aeebb2d0e2887d0874a922bc09652a2","object":"response","created_at":1794030381,"status":"completed","access_programs":null,"background":false,"completed_at":1794030381,"error":null,"frequency_penalty":0.0,"image":{"context_compression":"disabled"},"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[{"id":"msg_04fea356491b6ee4016aeebb2d869c87d0b94b38a9dfb289b4","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"The capital of France is Paris."}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":false,"temperature":0.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":14,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":8,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":22},"user":null,"metadata":{}},"sequence_number":14} diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-c2751be9bd77.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-c2751be9bd77.json index c5c09474..407cfa11 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-c2751be9bd77.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-c2751be9bd77.json @@ -1,16 +1,19 @@ { - "id": "resp_0e547ff424934e79006ad162aef2e087d0b78fbccefe61cbcf", + "id": "resp_0685acee3656c9f5016aeeba6e9ac087d08f153a84c4a1f2df", "object": "response", - "created_at": 1792107182, + "created_at": 1794030190, "status": "completed", "access_programs": null, "background": false, "billing": { "payer": "developer" }, - "completed_at": 1792107183, + "completed_at": 1794030191, "error": null, "frequency_penalty": 0.0, + "image": { + "context_compression": "disabled" + }, "incomplete_details": null, "instructions": "Reply with one word.", "max_output_tokens": null, @@ -19,7 +22,7 @@ "moderation": null, "output": [ { - "id": "msg_0e547ff424934e79006ad162afa7c487d089010ce912c36d4e", + "id": "msg_0685acee3656c9f5016aeeba6f19c887d09946bd3752acc0e9", "type": "message", "status": "completed", "content": [ @@ -27,7 +30,7 @@ "type": "output_text", "annotations": [], "logprobs": [], - "text": "Paris" + "text": "Paris." } ], "role": "assistant" @@ -45,7 +48,7 @@ }, "safety_identifier": null, "service_tier": "default", - "store": true, + "store": false, "temperature": 1.0, "text": { "format": { @@ -82,11 +85,11 @@ "cache_write_tokens": 0, "cached_tokens": 0 }, - "output_tokens": 2, + "output_tokens": 3, "output_tokens_details": { "reasoning_tokens": 0 }, - "total_tokens": 25 + "total_tokens": 26 }, "user": null, "metadata": {} diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-c3a0171636a4.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-c3a0171636a4.json new file mode 100644 index 00000000..a93fe047 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-c3a0171636a4.json @@ -0,0 +1,135 @@ +{ + "id": "resp_0ef7f7f64fd0aef7016aeeba6715e087d09d112af3840cae5c", + "object": "response", + "created_at": 1794030184, + "status": "completed", + "access_programs": null, + "background": false, + "billing": { + "payer": "developer" + }, + "completed_at": 1794030189, + "error": null, + "frequency_penalty": 0.0, + "image": { + "context_compression": "disabled" + }, + "incomplete_details": null, + "instructions": null, + "max_output_tokens": null, + "max_tool_calls": null, + "model": "gpt-6-luna", + "moderation": null, + "output": [ + { + "id": "ws_0ef7f7f64fd0aef7016aeeba68ece487d0b05fa9937a884cff", + "type": "web_search_call", + "status": "completed", + "action": { + "type": "search", + "queries": [ + "recent AI news headline June 2026 artificial intelligence news" + ], + "query": "recent AI news headline June 2026 artificial intelligence news" + } + }, + { + "id": "msg_0ef7f7f64fd0aef7016aeeba6d094887d087aff9a7b74872cf", + "type": "message", + "status": "completed", + "content": [ + { + "type": "output_text", + "annotations": [ + { + "type": "url_citation", + "end_index": 220, + "start_index": 127, + "title": "Anthropic is rapidly accelerating AI development amid slowdown calls, outside research group says", + "url": "https://apnews.com/article/9cf8c590ffc1abdb489179bdccc69c23?utm_source=openai" + } + ], + "logprobs": [], + "text": "AP News (November 5): **\u201cAnthropic is rapidly accelerating AI development amid slowdown calls, outside research group says.\u201d** ([apnews.com](https://apnews.com/article/9cf8c590ffc1abdb489179bdccc69c23?utm_source=openai))" + } + ], + "phase": "final_answer", + "role": "assistant" + } + ], + "parallel_tool_calls": true, + "presence_penalty": 0.0, + "previous_response_id": null, + "prompt_cache_key": null, + "prompt_cache_retention": "24h", + "reasoning": { + "context": "all_turns", + "effort": "none", + "mode": "standard", + "summary": null + }, + "safety_identifier": null, + "service_tier": "default", + "store": false, + "temperature": 1.0, + "text": { + "format": { + "type": "text" + }, + "verbosity": "medium" + }, + "tool_choice": { + "type": "web_search_preview" + }, + "tool_usage": { + "image_gen": { + "input_tokens": 0, + "input_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "output_tokens": 0, + "output_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "total_tokens": 0 + }, + "web_search": { + "num_requests": 1 + } + }, + "tools": [ + { + "type": "web_search_preview", + "search_content_types": [ + "text" + ], + "search_context_size": "low", + "user_location": { + "type": "approximate", + "city": null, + "country": "US", + "region": null, + "timezone": null + } + } + ], + "top_logprobs": 0, + "top_p": 0.98, + "truncation": "disabled", + "usage": { + "input_tokens": 8666, + "input_tokens_details": { + "cache_write_tokens": 4328, + "cached_tokens": 0 + }, + "output_tokens": 79, + "output_tokens_details": { + "reasoning_tokens": 34 + }, + "total_tokens": 8745 + }, + "user": null, + "metadata": {} +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-d09245752873.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-d09245752873.json new file mode 100644 index 00000000..938e9690 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-d09245752873.json @@ -0,0 +1,110 @@ +{ + "id": "resp_026623c3dff3fc15016aeeba6f687487d0bfacab9c208286cc", + "object": "response", + "created_at": 1794030191, + "status": "completed", + "access_programs": null, + "background": false, + "billing": { + "payer": "developer" + }, + "completed_at": 1794030196, + "error": null, + "frequency_penalty": 0.0, + "image": { + "context_compression": "disabled" + }, + "incomplete_details": null, + "instructions": null, + "max_output_tokens": null, + "max_tool_calls": null, + "model": "gpt-6-luna", + "moderation": null, + "output": [ + { + "id": "rs_026623c3dff3fc15016aeeba7007e087d0acceb93d9cde9f0d", + "type": "reasoning", + "content": [], + "encrypted_content": "gAAAAABq7rp0E4XYBlQ1j-Ylhi1NNTsuACwfFTEqVmtQ6WEkJ6KB1jevd5BeZJkCHFzMSD5vZnWwERJ0VoXGy1dxCQYDF4PVZS7CkUD7JNB2vXLRQJQpStYVKn2ZbqryBLiyDBQtHGBq5Kk4SWO7ggO1vbBjLzHW0fSsqAIoV0HUU98_4A9S_XtU-8zhYCpIq14zUD-2jNWZKooGgnABS4vmZ5sUz_uhbI7o8CiigjGOf2OEBGdRjf_vTPNFs1bTcUyXFob_gSOWokAoi1pcGCnnW_fLHH64NTESWVYCWIPMzUs2HzPwKDCl78nzfPPTuvBoAapODOWFKC1gC-ZgLJNyrbWlffaGDKGaT0dv8I9b_FzvDPAjOJKgWMuMsnoZQ6IotH1zqUWbq6tVxSWQXOtHVeBzdNAjqX1zDzkI-_5Z7pda0ZfvxqZwZZdcHqvdCcWmRescoRuOly5FjiZw8ik6kaaZW84NKsX-pGr1cNQQxNhNqw15dHdRSTYtBz8NN8X5a-HZ1mr4fcFuUXKljvq0ONFELnopOVLJwIb7FbDxO0oq7u_03l-UbpzMObQUYJoDrPq3h9NY6Qgl-o-WH6lQIHLNOmQj62GY296tiXC87Udy3UcxAolp6-pxuZzt1MAZeIMX6bXuBo70McHXTlALKPjTsRPrXIRK2e8X1htAl5d9I429CTQ2oGRaZhSV-f3CA5vW4vkMlNw3H2iKY5bZ4MPwHMH0KTlF81xBVCZOMvvTxO2HGJ5IRkMQCBorFHheBz_nNOFH7N-kmuL73j835RlO3coebnhUYn9x8CMw8okwkveLh8RCShqaxKZEHt5dQ9mqpR_svTenUVsr4ubrU-gw0ODmaB1lP-PbQ7txRgvpkX9xkqpblZVeE_cSWpFbTaCx5fd3NOsZZTB1yvIw0yPi3KlxwcHDaxQNUnSOMpbhwRwEPN3lL-rJpRK_BLN4k0n6sTNpyv8Y3wYrvcGM4gg2obyK2hs1MLjA9qM7wIgN55HpA21CquvIo3zxVuME-aSqsUFyC1OisHLggs7aLC5oyHFtLxs8kxUqcSqU5hKsCzL51w4gxuvnqMKPeK276m_554od6pzImOLW3JFWbTRo44XoCGIS-2_cWfnpiwUkNQSLv-uB4FPkxCb0hDhPYSgjL7ZiORCnf8FA4lEe21C0N6nhoKDgvsdNDCftZvkIyuRYWBawTzLapAtEGo3PVcWXZyLLB11fRoqsMgEj2xIntW8c1sdXi8nonQniauirDATFz49QsL3fzUDkClGcMfHHKmR9IVrgEuhl-_wR86HiNH1xFRlHOIHwU8iwqVwRjaOv4VzCJ3LoKU4SeIKR0gAcaRU0wUHKZhNkvdK9DbOH7XzkMvHEAUpk9_2j1VQ65RyLy5s4mG4llCD1SscFA32Ll-RREgAEFr2ZbTg84s7vLk1pntLOM-A4qTq_qvT5AR1g7xgvOwAAoCzOMVwiBUbVrVSTksvzomTQE_YPFMajMZ8N-otXW8bIDcNXNchKcoJzB5PUOuoBgrNu-cEYeSeI82lB_ABK02wcwacTrA9LhOcQce3x0CQ38tfvhdLPkt37RJHXoTYMoOBQmedn1NnucK6e7CZ-8OnIjb5j-Fqw7jE9UEXT1OWu3NUA6nQe3W-vdHSFApgWlzbzdPiirUqWQnY4dhWxJZ4xPCskriSY9ABjIGIYAWtBMdGe_2AeJkZnx9ypil62VbxHyzMexg09BVn4tS3Bk7WmPFW_Xd8hfbmUgZgzsbUDGHKpfTMtb9NRK14Bf83-nRp5KhWZSQhV7rfUeb_d14XubEfhVxm3d6Wlpn8pZCLoVc33sgb7NJNoCWqs75_PcFXSj8zO5E_8lP6fUlqnFT-yswk_XlaELw-YFKJzGO52KbyZ4WBrEGza8hqfH0riHpPCTlI-n9fytdhcdgZ1HnPGLr-WKWVQsvRNEM8w7ECLsgmrTyGRpox5QZqwlwGB8TRqDTP0ybqbi7ks41-6_fZE-8zwM_f3kicSCdmUt7GW7BOfrDb0xx3qOmOEKlzzrBKz2bhF8S9vUzoAEVEG3fyW_FNx8boBxPh0Z8xmbVG2iOVkslvLKN3IXNaL2fFrnJZhaSdRiNJj5At47j5roeDPcVeLQTfLwJ-ZOi2kM5GTL-NYe-fw8s8VtRoygMAIfx2DGZ-DEpCnrp8TY2-GTQzRgClznBggClVLlNnSOO1jZyZMH_Zd5OChnhtJf0JSJlXnzp4sbzLs4cHC0h-tZCCe-d1tmE7lvdVRTVbgNkP99-LV6DM2ySbqO50=", + "summary": [ + { + "type": "summary_text", + "text": "**Explaining patterns in sequences**\n\nI need to clarify the ambiguity in the sequence pattern, possibly looking at the formula n(n+1). For instance, when n=1, it results in 2, and for n=2, it gives 6, while n=3 yields 12, and so on. It\u2019s also important to note that a finite sequence can have various patterns, with the simplest being the differences of 4, 6, 8, and 10, leading to a second difference of 2. I\u2019ll break this down step-by-step!" + } + ] + }, + { + "id": "msg_026623c3dff3fc15016aeeba73cdac87d0867273acb007b26a", + "type": "message", + "status": "completed", + "content": [ + { + "type": "output_text", + "annotations": [], + "logprobs": [], + "text": "The terms are products of consecutive integers:\n\n\\(1\\cdot2=2,\\;2\\cdot3=6,\\;3\\cdot4=12,\\;4\\cdot5=20,\\;5\\cdot6=30.\\)\n\nSo, starting at \\(n=1\\), the formula is\n\\[\na_n=n(n+1).\n\\]\nLike any finite sequence, other patterns are possible, but this is the simplest one suggested by the terms." + } + ], + "phase": "final_answer", + "role": "assistant" + } + ], + "parallel_tool_calls": true, + "presence_penalty": 0.0, + "previous_response_id": null, + "prompt_cache_key": null, + "prompt_cache_retention": "24h", + "reasoning": { + "context": "all_turns", + "effort": "high", + "mode": "standard", + "summary": "detailed" + }, + "safety_identifier": null, + "service_tier": "default", + "store": false, + "temperature": 1.0, + "text": { + "format": { + "type": "text" + }, + "verbosity": "medium" + }, + "tool_choice": "auto", + "tool_usage": { + "image_gen": { + "input_tokens": 0, + "input_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "output_tokens": 0, + "output_tokens_details": { + "image_tokens": 0, + "text_tokens": 0 + }, + "total_tokens": 0 + }, + "web_search": { + "num_requests": 0 + } + }, + "tools": [], + "top_logprobs": 0, + "top_p": 0.98, + "truncation": "disabled", + "usage": { + "input_tokens": 41, + "input_tokens_details": { + "cache_write_tokens": 0, + "cached_tokens": 0 + }, + "output_tokens": 172, + "output_tokens_details": { + "reasoning_tokens": 66 + }, + "total_tokens": 213 + }, + "user": null, + "metadata": {} +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-d93cfca55488.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-d93cfca55488.json deleted file mode 100644 index d70c8d72..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-d93cfca55488.json +++ /dev/null @@ -1,150 +0,0 @@ -{ - "id": "resp_0fb0a24f56a49be2006a95bbb54a0887d0814ebf4a4d649dbb", - "object": "response", - "created_at": 1788197815, - "status": "completed", - "background": false, - "billing": { - "payer": "developer" - }, - "completed_at": 1788197826, - "error": null, - "frequency_penalty": 0.0, - "incomplete_details": null, - "instructions": null, - "max_output_tokens": null, - "max_tool_calls": null, - "model": "gpt-4o-2024-08-06", - "moderation": null, - "output": [ - { - "id": "ws_0fb0a24f56a49be2006a95bbb8003487d0b3d898811b6168e3", - "type": "web_search_call", - "status": "completed", - "action": { - "type": "search", - "queries": [ - "Search the web for a recent AI news headline and answer in one sentence." - ], - "query": "Search the web for a recent AI news headline and answer in one sentence." - } - }, - { - "id": "msg_0fb0a24f56a49be2006a95bbb9ff9087d0ad5b435d46b8e072", - "type": "message", - "status": "completed", - "content": [ - { - "type": "output_text", - "annotations": [ - { - "type": "url_citation", - "end_index": 393, - "start_index": 278, - "title": "Exclusive: AI advocacy group launches data center push in battleground states", - "url": "https://www.axios.com/2026/08/31/ai-advocacy-group-data-center-battleground-states?utm_source=openai" - }, - { - "type": "url_citation", - "end_index": 594, - "start_index": 413, - "title": "Exclusive: AI advocacy group launches data center push in battleground states", - "url": "https://www.axios.com/2026/08/31/ai-advocacy-group-data-center-battleground-states?utm_source=openai" - }, - { - "type": "url_citation", - "end_index": 793, - "start_index": 629, - "title": "Exclusive: AI startup TrustedRouter raises $1.25 million", - "url": "https://www.axios.com/2026/08/31/exclusive-ai-startup-trustedrouter-raises-125-million?utm_source=openai" - }, - { - "type": "url_citation", - "end_index": 969, - "start_index": 828, - "title": "AI turns to health care for an image fix", - "url": "https://www.axios.com/2026/08/31/ai-health-care-cures-disease-anthropic-open-ai?utm_source=openai" - } - ], - "logprobs": [], - "text": "An AI advocacy group has launched a $50 million campaign to support AI data center development in battleground states, aiming to address political backlash and emphasize the need for infrastructure that supports AI leadership while safeguarding communities and the environment. ([axios.com](https://www.axios.com/2026/08/31/ai-advocacy-group-data-center-battleground-states?utm_source=openai))\n\n\n## Highlights:\n- [Exclusive: AI advocacy group launches data center push in battleground states](https://www.axios.com/2026/08/31/ai-advocacy-group-data-center-battleground-states?utm_source=openai), Published on Monday, August 31\n- [Exclusive: AI startup TrustedRouter raises $1.25 million](https://www.axios.com/2026/08/31/exclusive-ai-startup-trustedrouter-raises-125-million?utm_source=openai), Published on Monday, August 31\n- [AI turns to health care for an image fix](https://www.axios.com/2026/08/31/ai-health-care-cures-disease-anthropic-open-ai?utm_source=openai), Published on Monday, August 31 " - } - ], - "role": "assistant" - } - ], - "parallel_tool_calls": true, - "presence_penalty": 0.0, - "previous_response_id": null, - "prompt_cache_key": null, - "prompt_cache_retention": "in_memory", - "reasoning": { - "context": null, - "effort": null, - "summary": null - }, - "safety_identifier": null, - "service_tier": "auto", - "store": true, - "temperature": 1.0, - "text": { - "format": { - "type": "text" - }, - "verbosity": "medium" - }, - "tool_choice": { - "type": "web_search_preview" - }, - "tool_usage": { - "image_gen": { - "input_tokens": 0, - "input_tokens_details": { - "image_tokens": 0, - "text_tokens": 0 - }, - "output_tokens": 0, - "output_tokens_details": { - "image_tokens": 0, - "text_tokens": 0 - }, - "total_tokens": 0 - }, - "web_search": { - "num_requests": 1 - } - }, - "tools": [ - { - "type": "web_search_preview", - "search_content_types": [ - "text" - ], - "search_context_size": "low", - "user_location": { - "type": "approximate", - "city": null, - "country": "US", - "region": null, - "timezone": null - } - } - ], - "top_logprobs": 0, - "top_p": 1.0, - "truncation": "disabled", - "usage": { - "input_tokens": 323, - "input_tokens_details": { - "cache_write_tokens": 0, - "cached_tokens": 0 - }, - "output_tokens": 248, - "output_tokens_details": { - "reasoning_tokens": 0 - }, - "total_tokens": 571 - }, - "user": null, - "metadata": {} -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-dade10fddc15.txt b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-dade10fddc15.txt index 9d15eb3f..34a1514b 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-dade10fddc15.txt +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-dade10fddc15.txt @@ -1,45 +1,45 @@ event: response.created -data: {"type":"response.created","response":{"id":"resp_0d43604da32cf791006a95bd73544487d0bf272600221a9033","object":"response","created_at":1788198259,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":"You are a helpful assistant","max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} +data: {"type":"response.created","response":{"id":"resp_07affcbba409aad4016aeebbabb2b887d087c54837a1559c1b","object":"response","created_at":1794030507,"status":"in_progress","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"image":{"context_compression":"disabled"},"incomplete_details":null,"instructions":"You are a helpful assistant","max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":false,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} event: response.in_progress -data: {"type":"response.in_progress","response":{"id":"resp_0d43604da32cf791006a95bd73544487d0bf272600221a9033","object":"response","created_at":1788198259,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":"You are a helpful assistant","max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} +data: {"type":"response.in_progress","response":{"id":"resp_07affcbba409aad4016aeebbabb2b887d087c54837a1559c1b","object":"response","created_at":1794030507,"status":"in_progress","access_programs":null,"background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"image":{"context_compression":"disabled"},"incomplete_details":null,"instructions":"You are a helpful assistant","max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":false,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} event: response.output_item.added -data: {"type":"response.output_item.added","item":{"id":"msg_0d43604da32cf791006a95bd74615c87d0b8e3c1740fece3b8","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":0,"sequence_number":2} +data: {"type":"response.output_item.added","item":{"id":"msg_07affcbba409aad4016aeebbac3acc87d0842f4d3c6e8682d8","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":0,"sequence_number":2} event: response.content_part.added -data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_0d43604da32cf791006a95bd74615c87d0b8e3c1740fece3b8","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":3} +data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_07affcbba409aad4016aeebbac3acc87d0842f4d3c6e8682d8","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":3} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":"The","item_id":"msg_0d43604da32cf791006a95bd74615c87d0b8e3c1740fece3b8","logprobs":[],"obfuscation":"sfTQDs0HQX70i","output_index":0,"sequence_number":4} +data: {"type":"response.output_text.delta","content_index":0,"delta":"The","item_id":"msg_07affcbba409aad4016aeebbac3acc87d0842f4d3c6e8682d8","logprobs":[],"obfuscation":"ZL1UN8ST5PprG","output_index":0,"sequence_number":4} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" capital","item_id":"msg_0d43604da32cf791006a95bd74615c87d0b8e3c1740fece3b8","logprobs":[],"obfuscation":"hp0N88pf","output_index":0,"sequence_number":5} +data: {"type":"response.output_text.delta","content_index":0,"delta":" capital","item_id":"msg_07affcbba409aad4016aeebbac3acc87d0842f4d3c6e8682d8","logprobs":[],"obfuscation":"XrJBidCQ","output_index":0,"sequence_number":5} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_0d43604da32cf791006a95bd74615c87d0b8e3c1740fece3b8","logprobs":[],"obfuscation":"jFIxCjzcXC7D9","output_index":0,"sequence_number":6} +data: {"type":"response.output_text.delta","content_index":0,"delta":" of","item_id":"msg_07affcbba409aad4016aeebbac3acc87d0842f4d3c6e8682d8","logprobs":[],"obfuscation":"CvYouxiUC5PkR","output_index":0,"sequence_number":6} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" France","item_id":"msg_0d43604da32cf791006a95bd74615c87d0b8e3c1740fece3b8","logprobs":[],"obfuscation":"Agibdgwra","output_index":0,"sequence_number":7} +data: {"type":"response.output_text.delta","content_index":0,"delta":" France","item_id":"msg_07affcbba409aad4016aeebbac3acc87d0842f4d3c6e8682d8","logprobs":[],"obfuscation":"Y4C8QQ1W4","output_index":0,"sequence_number":7} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" is","item_id":"msg_0d43604da32cf791006a95bd74615c87d0b8e3c1740fece3b8","logprobs":[],"obfuscation":"jGGSEMkqmL170","output_index":0,"sequence_number":8} +data: {"type":"response.output_text.delta","content_index":0,"delta":" is","item_id":"msg_07affcbba409aad4016aeebbac3acc87d0842f4d3c6e8682d8","logprobs":[],"obfuscation":"eQg3sxRw97XKM","output_index":0,"sequence_number":8} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":" Paris","item_id":"msg_0d43604da32cf791006a95bd74615c87d0b8e3c1740fece3b8","logprobs":[],"obfuscation":"i67HxmI3Ts","output_index":0,"sequence_number":9} +data: {"type":"response.output_text.delta","content_index":0,"delta":" Paris","item_id":"msg_07affcbba409aad4016aeebbac3acc87d0842f4d3c6e8682d8","logprobs":[],"obfuscation":"WMe0ozK1Z4","output_index":0,"sequence_number":9} event: response.output_text.delta -data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0d43604da32cf791006a95bd74615c87d0b8e3c1740fece3b8","logprobs":[],"obfuscation":"ROP05xdR2ABYMzB","output_index":0,"sequence_number":10} +data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_07affcbba409aad4016aeebbac3acc87d0842f4d3c6e8682d8","logprobs":[],"obfuscation":"CH52amPDRaIPA4p","output_index":0,"sequence_number":10} event: response.output_text.done -data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_0d43604da32cf791006a95bd74615c87d0b8e3c1740fece3b8","logprobs":[],"output_index":0,"sequence_number":11,"text":"The capital of France is Paris."} +data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_07affcbba409aad4016aeebbac3acc87d0842f4d3c6e8682d8","logprobs":[],"output_index":0,"sequence_number":11,"text":"The capital of France is Paris."} event: response.content_part.done -data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_0d43604da32cf791006a95bd74615c87d0b8e3c1740fece3b8","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"The capital of France is Paris."},"sequence_number":12} +data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_07affcbba409aad4016aeebbac3acc87d0842f4d3c6e8682d8","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"The capital of France is Paris."},"sequence_number":12} event: response.output_item.done -data: {"type":"response.output_item.done","item":{"id":"msg_0d43604da32cf791006a95bd74615c87d0b8e3c1740fece3b8","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"The capital of France is Paris."}],"role":"assistant"},"output_index":0,"sequence_number":13} +data: {"type":"response.output_item.done","item":{"id":"msg_07affcbba409aad4016aeebbac3acc87d0842f4d3c6e8682d8","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"The capital of France is Paris."}],"role":"assistant"},"output_index":0,"sequence_number":13} event: response.completed -data: {"type":"response.completed","response":{"id":"resp_0d43604da32cf791006a95bd73544487d0bf272600221a9033","object":"response","created_at":1788198259,"status":"completed","background":false,"completed_at":1788198260,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":"You are a helpful assistant","max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[{"id":"msg_0d43604da32cf791006a95bd74615c87d0b8e3c1740fece3b8","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"The capital of France is Paris."}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":23,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":8,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":31},"user":null,"metadata":{}},"sequence_number":14} +data: {"type":"response.completed","response":{"id":"resp_07affcbba409aad4016aeebbabb2b887d087c54837a1559c1b","object":"response","created_at":1794030507,"status":"completed","access_programs":null,"background":false,"completed_at":1794030508,"error":null,"frequency_penalty":0.0,"image":{"context_compression":"disabled"},"incomplete_details":null,"instructions":"You are a helpful assistant","max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[{"id":"msg_07affcbba409aad4016aeebbac3acc87d0842f4d3c6e8682d8","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"The capital of France is Paris."}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":false,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":23,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":8,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":31},"user":null,"metadata":{}},"sequence_number":14} diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-5cc928e690af.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-ef1cda21db95.json similarity index 87% rename from test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-5cc928e690af.json rename to test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-ef1cda21db95.json index 4443c5ea..cdc51121 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-5cc928e690af.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-ef1cda21db95.json @@ -1,16 +1,19 @@ { - "id": "resp_048cfa9495def5c7016ad162aece3887d092d457342e6d647b", + "id": "resp_05e16bf1f4e4e6b3016aeeba645b2c87d082e2a31c7f55859d", "object": "response", - "created_at": 1792107182, + "created_at": 1794030180, "status": "completed", "access_programs": null, "background": false, "billing": { "payer": "developer" }, - "completed_at": 1792107183, + "completed_at": 1794030180, "error": null, "frequency_penalty": 0.0, + "image": { + "context_compression": "disabled" + }, "incomplete_details": null, "instructions": null, "max_output_tokens": null, @@ -19,7 +22,7 @@ "moderation": null, "output": [ { - "id": "msg_048cfa9495def5c7016ad162afd3ec87d09894333fe994c0b4", + "id": "msg_05e16bf1f4e4e6b3016aeeba64a96087d0a2f1c5d2492a7ce0", "type": "message", "status": "completed", "content": [ diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-b6038b78fc83.json b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-fa90d3092662.json similarity index 91% rename from test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-b6038b78fc83.json rename to test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-fa90d3092662.json index 5d3dcca4..a2a814ad 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-b6038b78fc83.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/__files/responses-fa90d3092662.json @@ -1,15 +1,19 @@ { - "id": "resp_0fcf70de70a27938016a95bcacb0e887d09b2bd35eaf8f3529", + "id": "resp_01b57162432b39b2016aeebb42fb6087d0a0bb18e1e698263a", "object": "response", - "created_at": 1788198060, + "created_at": 1794030403, "status": "completed", + "access_programs": null, "background": false, "billing": { "payer": "developer" }, - "completed_at": 1788198061, + "completed_at": 1794030403, "error": null, "frequency_penalty": 0.0, + "image": { + "context_compression": "disabled" + }, "incomplete_details": null, "instructions": null, "max_output_tokens": null, @@ -18,7 +22,7 @@ "moderation": null, "output": [ { - "id": "msg_0fcf70de70a27938016a95bcad37dc87d09e67a37d6d9007e4", + "id": "msg_01b57162432b39b2016aeebb43796487d0b295453e890a49a9", "type": "message", "status": "completed", "content": [ @@ -74,18 +78,22 @@ "tools": [ { "type": "function", - "description": "Get current weather for a location", - "name": "getWeather", + "description": "Get weather forecast for next N days", + "name": "getForecast", "output_schema": null, "parameters": { "type": "object", "properties": { "arg0": { "type": "string" + }, + "arg1": { + "type": "integer" } }, "required": [ - "arg0" + "arg0", + "arg1" ], "additionalProperties": false }, @@ -93,22 +101,18 @@ }, { "type": "function", - "description": "Get weather forecast for next N days", - "name": "getForecast", + "description": "Get current weather for a location", + "name": "getWeather", "output_schema": null, "parameters": { "type": "object", "properties": { "arg0": { "type": "string" - }, - "arg1": { - "type": "integer" } }, "required": [ - "arg0", - "arg1" + "arg0" ], "additionalProperties": false }, diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/audio_speech-58901a3de654.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/audio_speech-58901a3de654.json index 8ccaf7c5..35ce3209 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/audio_speech-58901a3de654.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/audio_speech-58901a3de654.json @@ -19,25 +19,25 @@ "status" : 200, "bodyFileName" : "audio_speech-58901a3de654.txt", "headers" : { - "x-request-id" : "req_f43dd82bd2054740a698ae90bbac6d75", + "x-request-id" : "req_9ad8cac376334d7ab67b9ba00b96c0c0", "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", - "CF-RAY" : "a46f1a15cf812edd-SEA", + "CF-RAY" : "a56a0c9f6e437596-SEA", "Server" : "cloudflare", "X-Content-Type-Options" : "nosniff", - "x-ratelimit-reset-requests" : "4ms", + "x-ratelimit-reset-requests" : "2ms", "x-openai-proxy-wasm" : "v0.1", - "x-ratelimit-remaining-tokens" : "149999992", + "x-ratelimit-remaining-tokens" : "149999995", "cf-cache-status" : "DYNAMIC", - "x-ratelimit-remaining-requests" : "29998", - "Date" : "Wed, 07 Oct 2026 18:52:16 GMT", + "x-ratelimit-remaining-requests" : "29999", + "Date" : "Sat, 07 Nov 2026 05:48:30 GMT", "x-ratelimit-reset-tokens" : "0s", "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray" ], - "set-cookie" : "__cf_bm=kKzruN52Pdl447N75N.CN7ANVZ89snZ_koyuHrASc4I-1791399135.651796-1.0.1.1-B5BqIrV4ecgIptgXrtflbEuAK_TZFVulqY_kNvznR1KD6DO672Mc4KiBaziFE_PAEc5wIqwLRlIpTeFB.94YkT2yi8NvqiHE9m6XqBDd1HTwVmaiaTXrKTkxao27P.vc; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Wed, 07 Oct 2026 19:22:16 GMT", + "set-cookie" : "__cf_bm=YqYociFIcYhZhAVmTx7T1UavmFHJakBH3PdGrte9NxQ-1794030509.9888325-1.0.1.1-U3L9tTQhr6zlPiz9eBCQf4d8t1RileAOd.Vht63Gss2DNhFGnjblf0GGf8eFfpxK58y8A7P_pxH_ikXIqwIq3K.kF.xDwsNmnCJhwDu6xzMwn.UKTyvoIJqE0mkxfupK; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:18:30 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "479", + "openai-processing-ms" : "376", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "audio/wav" @@ -45,5 +45,5 @@ }, "uuid" : "196e88ce-90b3-320d-8c1a-bd15b21548b8", "persistent" : true, - "insertionIndex" : 67 + "insertionIndex" : 47 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/audio_transcriptions-30da9491b68f.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/audio_transcriptions-30da9491b68f.json deleted file mode 100644 index 911943d9..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/audio_transcriptions-30da9491b68f.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "id" : "e5f62e3d-268b-3fd3-9fad-34c2162df289", - "name" : "audio_transcriptions", - "request" : { - "url" : "/audio/transcriptions", - "method" : "POST", - "headers" : { - "Content-Type" : { - "matches" : "(?i)multipart/form-data(?:\\s*;.*)?" - } - }, - "bodyPatterns" : [ { - "anything" : "anything" - } ], - "multipartPatterns" : [ { - "name" : "file", - "matchingType" : "ANY", - "headers" : { - "Content-Disposition" : { - "equalTo" : "form-data; name=\"file\"; filename=\"speech.wav\"" - }, - "Content-Type" : { - "equalTo" : "audio/wav" - } - }, - "bodyPatterns" : [ { - "binaryEqualTo" : "UklGRv////9XQVZFZm10IBAAAAABAAEAwF0AAIC7AAACABAAZGF0Yf////8UABQAFAAUABYAFAAVABQAFQAVABUAFQAWABQAFQAWABUAFwAWABcAGAAVABgAFwAWABcAFgAXABcAFwAWABYAFwAWABcAFgAWABcAFwAWABgAFQAVABgAFgAWABYAFgAUABcAGAAYABgAFwAWABcAGAAYABoAGgAZABoAGgAZABsAGQAbABwAGgAbABwAGwAaABwAHAAbABwAHAAaABwAHAAcABwAHAAcABsAHAAcABsAHAAZABoAHAAaABwAHgAbAB8AHAAcAB4AHAAdAB4AHwAfACEAIQAgACIAIQAhACIAHwAfACAAHgAfAB4AHgAeAB8AHwAeACAAHgAeACAAHgAgAB8AHwAfAB8AIAAgACEAIQAhACMAIQAiACIAIgAiACIAIwAiACIAIwAhACMAIwAiACQAJAAjACQAJgAkACYAJQAlACYAJQAmACcAJgAnACcAJwAnACcAKAAoACgAKAApACkAKQAoACkAKQApACkAKQApACoAKQApACsAKQAqACoAKQAqACoAKgApACsAKgApACwAKQAqACoAKQArACoAKgArACoAKwArACoAKwAqACsAKgArACsAKgArACoALAAqACsAKwAqACwAKgAsACsALAArACsALAAqACwAKwArACwAKwArAC0AKwArAC0ALAArAC4AKgAtACwALAAtACsALQArAC0ALQAsAC4AKwAtAC0ALAAuAC0ALgAsAC0ALwAsAC8ALQAtAC8ALgAtAC4ALwAtAC8ALgAuAC4ALwAtAC4ALwAtAC4ALwAtAC8ALgAuADAALgAuAC8ALwAuAC8ALgAtAC8ALwAuAC8AMAAtAC8AMAAtAC8ALwAuAC8ALwAuADAAMAAtADAALwAuADAALgAvAC8ALwAuAC8ALwAuAC8ALwAuADAALgAvAC8ALgAvAC8ALwAvAC8ALwAuADAALgAvAC8ALgAwAC8ALwAvADAALwAtADEALgAvAC8ALgAvAC8ALwAvAC8ALwAvAC4ALwAvAC8ALgAwAC8ALgAvAC4ALwAvAC4ALgAvAC4ALwAuAC4ALwAsADEALQAuADIAKgAwAC4ALQAwAC0ALwAuAC8ALgAuADAALQAvAC4ALQAwAC0ALwAvAC4AMAAsADAALgAtADAALQAvAC4ALwAtAC8AMAAtADAALgAuADAALwAuADEALgAvADAALwAxAC8AMAAwADAAMAAvADIALwAwADEAMAAwADAAMAAwADEAMAAvADEAMAAuADEAMAAwADAAMAAvADAAMAAuADEAMAAuADAALgAwADAALwAwAC8AMAAuADAALgAuAC8ALQAvAC4ALwAuAC8ALwAuAC8ALwAvAC4ALwAuADAALwAvADAAMAAvADAALwAvAC8ALwAwADAAMAAuADIALgAwADEALgAwADEALgAxADAAMAAwADEAMAAwADIALgAxADAAMAAwADEALwAwADEAMQAvADIALwAwADAAMAAwADAAMQAvADAAMAAvADEAMAAwAC8ALwAwADAALwAvAC8AMAAuAC8ALwAtADIALQAuADIALAAwADAALQAwAC4ALwAuADAALwAtADEALQAvAC8ALQAvAC4ALgAtAC8ALwAsADAALAAvAC0ALgAuAC0ALwAtAC4ALgAuAC0ALwAuAC4ALgAtAC8ALQAuAC0ALgAuAC4ALwAtAC8ALwAsADAALQAuAC4ALwAtAC4ALQAuAC0ALwAsAC8ALgArAC8ALQAsAC8ALAAtAC8AKwAvAC0ALQAuACwAMAArAC4ALAAtAC4AKgAvACoALwArAC0ALgAqAC8AKwAsACwALAAsACwALQAqAC0ALAArAC4AKwAsACsALgApAC0ALAAqAC4AKgAsAC4AKgAsACsALAArACwALAApAC4AKwArAC0AKwAsACwALAAtACwALQAsAC0ALQAsAC0ALgArAC8ALAAuAC8ALQAuAC0AMAArAC8ALwArADAALgAuAC4AMAAtAC4AMAAuAC4AMgAtAC4AMwArADEAMAAtADEALgAvADAALwAuADEALgAwADAALgAvADAALgAvAC8AMAAuADAALgAvADEALQAwAC8ALwAuADAALgAuAC8ALQAuAC8ALAAvAC0ALQAvAC0ALQAtAC4ALQAtAC4ALAAuACwALQAuAC0ALQAtAC0ALgAtAC4ALgAsAC4ALQAtAC8ALAAvAC0ALgAuAC4ALgAtAC8ALgAuAC8ALgAuAC0ALwAsAC8ALAAvAC0ALQAvAC0ALgAtAC4ALgAtAC8AKwAuACwALAAtACwALgArACwALAAsACwALQAqAC0AKwAsACwALQAqACwALQApAC4AKwAqAC0ALAApAC8AKgArAC4AKAAtACoAKwAqACwAKwApAC4AJwAsACwAJgAuACgAKQArACoAKgApACsAKAAqACsAJwAtACgAKwAoACkALAAnACoAKgAoACgAKgAnACoAKQAoACgAKAAoACgAKAAnACkAJwAoACgAJgApACYAKAAnACgAJwAnACgAJwAnACcAKAAmACcAJwAmACcAJgAnACUAKAAlACYAJwAkACcAJgAnACYAJgAnACQAJwAlACYAJQAlACUAJQAkACYAJAAkACUAIwAmACQAJgAkACUAJAAmACQAJQAmACQAKAAkACcAJAAlACcAJAAnACgAJQApACcAJwAoACYAKgAlACoAKAAnACoAJwAoACcAKgAnACoAJwApACkAKAAqACkAKQAoACoAKQAoACsAJwApACkAKAAoACoAKAAoACoAKQAoACoAKQAoACsAKAArACkAKwAqACkALAApACwAKgAqACwAKgAqAC0AKgArACwAKwArACwAKgArACsALAAqACsAKwAqACoALAAoAC4AKQAqACwAKAArACsAKgAqACoAKgApACoAKgApACoAKQApACkAKQAoACoAKQAoACoAKAApACcAKgAoACcAKwAmACkAKgAmACoAJwAnACkAJwAoACgAKAAoACcAKAAmACgAKAAlACgAJgAmACYAJgAlACYAJgAkACcAJAAlACYAJQAkACUAJgAiACgAIgAlACYAIwAlACQAJQAiACUAJAAiACYAIwAjACUAJAAjACUAIgAlACMAJAAkACMAJQAiACMAJQAhACUAIwAhACcAIQAiACYAIAAlACIAIwAiACQAIwAgACYAHwAjACQAHwAmAB8AJAAiACIAJAAgACQAIQAkACEAIwAkACAAJAAhACIAIgAjACAAJAAhACAAJQAdACMAIQAeACMAHwAhACEAIQAgACEAIQAeACMAHQAhACAAHwAgAB8AIgAdACEAIAAeACEAIAAdACEAIAAfACEAIAAfACEAIAAgACEAIQAhAB4AJQAdACQAHwAgACIAIAAhACEAIwAeACQAIgAfACQAIAAhACEAIgAiACAAJAAgACIAIwAhACIAJAAhACEAJQAfACQAJAAfACcAIQAiACYAIQAjACMAJAAhACYAIgAjACUAIwAjACUAIwAkACUAIwAkACYAIwAkACUAJQAjACcAIwAkACcAIgAnACUAJQAlACUAJQAlACYAJQAkACcAJQAmACcAJgAnACYAKAAnACcAKQAlACkAKQAnACoAKQAoACkAKwAoACsAKQAqACsAKgArACsALAAqAC0AKwAsACwALAAtACwALAAvACsALwArAC4ALwAsAC4ALgArAC4ALgArADAAKgAtAC4AKwAuACsALwApADAALAAqADAAKgAsAC0AKgAtACwAKgAuACsAKwAuACgALQAqACsAKgAsACoAKgAsACkALQApACsAKgAoACwAKAAsACgALQAoACoALAAnACsAKgAoACoAKgAoACsAKQApACoAKgAoAC0AJgAsACkAKAAsACYALQAnACsAKgAoACwAJwAqACoAKAAsACgALAApACoALAAoACwAKQApACwAKAAsACoAKwArACoAKwAqACsAKwAqACoAKwAoACsAKgAoACwAJgArACoAKAAqACgAKgAoACkAKQAoACkAKQApACcAKwAnACgALAAkACoAJwAnACcAKQAmACcAKgAkACkAKAAkACkAJQAnACYAJgAmACUAKAAjACkAJAAmACcAJAAlACcAIwAnACYAJAAoACIAJwAjACYAJQAkACYAIwAnACQAJQAmACMAKQAfACcAIwAkACMAJQAkACQAJwAfACgAIgAkACYAIgAmACMAJAAlACMAJgAjACQAJQAjACYAIwAmACIAJQAjACMAJgAhACUAIwAiACgAHgAnACEAIQApAB0AKQAfACYAIwAjACYAIQAmACIAJQAkACQAJgAjACUAJwAhACgAJQAkACcAJQAoACQAKQAlACcAKQAmACgAKAAmACcAKQAmACkAKQAlACsAJgArACgAKQArACkAKgAoACsAKQAqACkAKQArACoALAAoACwALAAnAC4AKQAqACwAKQAsACkALQApAC0AKQAuACoAKwAsACoAKwAqAC0AKQAsACkALAApACwAKgApACwAJwAuACgALAApACwAKwAqACsAKgAsACoALAArACsALQAqACwALgAqAC4ALAArAC8AKwAtAC4ALAAuAC4ALQAuAC4ALAAvAC8ALAAvAC4ALAAvAC4ALQAsADEAKAAxACoALAAuACoALgAqAC0ALAArAC0AKwArAC4AKQAtACoAKwAsACoAKQAsACsAKQArACoAKQAsACkAKQAsACgAKgApACoAJwApACoAKAAnACsAJAApACgAJAApACYAJgAnACYAJgAlACUAJQAkACcAIgAlACYAIgAlACQAIwAkACUAIgAkACYAIAAoACEAIwAnAB0AJgAlAB0AKAAfACIAJgAdACUAIQAgACIAIQAhACMAIQAhAB8AJAAdACIAIAAfAB8AIQAeAB8AIgAcACEAHwAgAB8AIQAbACIAHgAeACIAHQAfACEAHQAgACAAHgAgAB4AIQAeACEAHwAeACQAGwAkAB4AIgAgAB8AJAAbACQAIQAdACMAIQAeACMAIQAfACMAIQAeACUAHwAhACMAIQAgACMAIAAhACUAHwAiACcAHQAoACAAIwAlACEAJgAhACcAIgAkACQAJAAlACMAJgAlACQAJgAkACgAJAAoACUAKAAlACgAJgAnACcAJgAoACUAJwAlACcAJwAlACgAJgAoACYAKAAnACcAJgArACIALAAlACQALQAhACkAJwAkACoAJQAnACgAJwAnACkAJwAmACoAJAAoACYAKAAlACgAJgAmACgAJgAlACoAIwAqACQAJwAmACQAKAAiACgAJQAkACgAIgAnACQAIwApACEAJgAmACMAJwAkACQAJQAmACIAJwAjACUAJgAjACUAJgAiACYAJQAjACUAJQAkACUAJgAkACYAJQAjACYAIwAlACQAJAAlACMAJQAkACIAJwAgACYAIwAiACcAIAAkACUAIgAlACQAIgAlACQAHgAqABwAJwAgACEAJgAeACQAIgAjACIAJQAgACUAIAAkACEAIwAjACEAJAAhACIAIgAhACEAJQAcACgAHgAhACYAGgAqABkAJwAdACMAIQAdACUAGwAhACIAGwAjAB8AHgAhAB0AIQAeACEAHgAhAB0AHQAiABoAIgAbAB8AIAAcAB0AHwAcABwAIAAZAB4AHQAaAB4AGwAbAB0AHAAYACAAFwAdABoAGQAfABUAHQAZABoAGgAZABkAHAAXABkAHQATABwAFwAXABsAFgAbABYAGwAWABgAGgAUAB0AFQAbABgAGAAcABMAHQAVABkAGAAWABoAFwAXABwAFgAbABcAGAAcABMAHwAUABwAFwAZABoAGAAdABUAHwAUAB4AFgAaABsAGQAaAB4AGAAeABwAGwAeABoAIAAZACAAHAAcAB8AHAAfABwAIQAbACIAHAAeACIAGwAkAB0AIgAfACEAIQAeACQAHQAhACAAIAAeACIAHgAhACAAHwAiACAAIQAhACMAHgAlAB4AJQAhACAAJgAeACQAIgAfACYAHgAjACMAIwAgACUAIQAhACYAHgAmAB8AJQAiACIAIwAiACIAIgAiACQAIwAhACYAIAAhACYAHwAjACIAIQAhACEAIQAhACIAHwAhACAAIgAgACMAHwAjAB8AIwAiAB4AIwAgACAAIgAiAB8AJQAeACIAIgAfACUAHwAiACIAIAAhACAAIQAdACEAIAAeACAAHgAeAB0AHwAcAB0AHwAZACEAGQAdABwAHAAZAB4AHAAYAB8AGAAZAB8AFQAeABkAGgAYABsAGgAYABwAFgAZABkAGgAXABsAFgAZABgAGQAYABkAGQAXABgAGgAWABoAFgAWABsAFwAVABsAFAAXABkAFgAWABkAFQAVABoAFAAXABsADwAfABEAGgAXABYAGwATAB0AFAAaABcAFwAbABUAGwAWABkAFwAaABUAGgAYABMAHwAPABoAGQARABsAEwAYABYAFwAWABUAGQARABwAEQAWABcAFAAXABUAGQASABkAFgAUABkAFQAUABcAGAAUABgAFgAVABcAFwAUABsAEwAaABMAHAASABsAFgAWABoAFQAZABYAHQASABwAGQATAB0AFAAYABgAFgAbABMAHAAWABcAGgAYABkAGwAXABgAHAAVABsAGQAWAB0AFwAZABwAGAAZABsAHAAXABwAGgAYAB0AGQAaAB4AGAAcABsAGwAZAB0AGgAZABwAHAAXACAAGAAbAB4AGAAeABsAHAAcABwAHAAdABwAHAAcABwAHgAcAB8AHgAeAB4AHwAfAB8AIQAfACIAIQAgACMAIQAkACEAJgAhACYAIAAlACQAIgAmACQAJAAlACQAJAAlACMAJAAlACQAJAAnACIAJgAhACUAJQAiACQAIgAiACAAKAAbACkAHgAiACQAHwAlACAAJgAeACcAIAAhACUAHwAiACMAHgAjACEAHwAjACEAHgAlABwAIwAeACEAHQAiAB0AHgAhABwAIQAdAB8AHwAdACEAHAAgAB4AIAAdACAAIAAfAB4AIgAdACEAIwAcACQAIAAfACMAIwAfACgAHwAnACMAIgAnACEAJwAjACYAJwAlACkAJQAnACkAJAArACcAKAAqACYAKgAnACkAKgApACsAKAAsACcALAApACkALQAnAC0AKQAsACcALwAmACsALAAlADAAJAAsACoAKgAqACkAKwAnACsAJgArACQAKwAlACYAKwAhACcAJwAhACcAIwAlACIAJgAhACEAKAAbACYAIgAeACgAHwAhACIAIAAfACMAIAAgACQAHQAiACEAIAAhACEAIQAfACMAHQAjAB4AIgAdACIAIgAeACMAHgAiACEAHwAiACAAIgAaACUAHQAiAB8AHwAhACAAIQAdACIAHQAhABwAIAAhABwAIQAdAB8AHwAdAB4AIQAbACAAHQAgAB0AHQAeABsAIQAYACIAGQAdACAAFwAeABwAGwAeABsAHQAaABwAGgAZABwAGAAaABsAGAAdABYAGgAaABUAHwASABwAGAAXABgAGAAXABcAGwATABoAGgARABsAFAAXABgAFQAWABcAFgAVABgAFgAXABcAFwAYABgAFwAUABwAFQAVABoAFQAZABcAFwAYABoAGAAXABoAGQAWABsAFwAaABgAGQAYABoAGAAZABkAHQAVAB4AFgAcABgAGgAZABsAHAAXAB4AGQAaAB0AFwAcABkAHAAZAB0AHAAcAB0AHgAeAB4AIAAcACMAHgAgACIAIQAgACIAIgAiACQAIgAkACMAJgAgACoAIgAlACgAIgAmACYAJAAlACcAIwApACkAJAAqACkAJQAsACgAKQAoACwAJQAsACgAKwAqACoAKwApACwAKQAqACoAKQArACgAKgAqACYAKwAoACYAKAAnACcAJwAlACUAJwAjACcAIwAiACgAHwAjACQAIAAiACQAHwAjACAAHwAgAB4AHwAdAB8AHQAdAB8AGwAgABsAHgAZABwAHAAcAB4AGgAfABkAHQAcABkAIAAXAB4AGgAcABgAHAAaABoAGwAZABwAGgAaABcAGwAZABgAGwAXABgAGwAWABoAFwAaABcAHAAXABsAGAAaABoAHAAaAB8AHQAZAB0AHAAZAB4AGgAbAB8AGAAdABwAHAAbABwAHgAZAB0AGAAdABkAGwAbABkAHAAYABgAHAAUAB4AFgAaABcAGgAYABkAGwAVABwAFwAZABkAGAAXABgAGwASAB0AFQAXABsAFQAWABoAFwAYABkAGAAYABgAGAAWABwAGAAaABoAGgAZABsAGgAbAB0AGgAdAB0AGQAfABsAIAAaACQAGwAhACAAHwAkAB4AJQAfACQAIgAiACUAJAAkACUAKgAiACcAJgAoACQAKgAnACQAMAAeAC0AJwAmACoAJwAoACoAKAAkAC0AJgAnAC0AJQAqACoAJwAqACgAKgApAC4AJwAtAC4AKAAuACoALgApAC8AKQAqACoAKgApACwAKAArACsAKAAvACcALAArACwAKwAuACoALAAwACgAMQAsAC4ALwAuAC4ALwAvADAAMAAuADMALQAxAC8AMAAyAC8AMQAvADEALgAxAC4AMQAtAC8AMAAsAC4ALgAsADAALAAwADAALgAxAC4AMAAwAC8AMQAvADEALQAwAC4ALgAvACwAMgArAC4ALQAtAC4ALwAqADAAKwAtACsALgAoACsALAAmAC4AJgAqACgALAAkAC4AKAAnAC4AIgAtACcAKQAoACoAKgAmAC4AJAApAC8AHwAxACYAKAAqACcAKwAkACwAJAAqACoAIQAuACEALAAjACYAKwAiACcAJQAlACAAJgAiACMAJQAgACUAHwAiACEAIAAfACMAHgAhAB8AHgAhAB8AHgAhAB8AHwAgACAAIQAfAB0AIwAcACAAHgAfACAAHgAfAB0AIQAaACAAHgAcACEAHAAfAB0AHAAeABoAHwAaAB8AGQAdABwAHAAbACAAHQAfACEAHQAiAB4AJAAeACcAHgAnACMAIwApACQAKQAjACwAIwAqACkAKQApAC0AKAAvAC0ALQAxAC0AMQAuADEALwAwADEAMAAzAC8ANgAvADcALwA2ADYAMAA5ADIANQA1ADYANQA0ADgAMQA2ADcANAA2ADYANAA1ADQANQA3ADQANwA0ADcAMgA4ADIAOgAyADUAOAA0ADgANQA1ADgAMgA4ADYANgAzADcANAAzADgALwA4ADAANgAxADMAMgAxADEAMgAxADQAMgAvADUALgAxADQALgAyAC8AMgAvADIAMAAwADEAMAAxADAAMQAwADIAMQAyADEANAAyAC8AMwAxAC8AMwAwADAANAAtADIALwAuADEALgAwAC4ALgAuAC0ALgApAC4ALAAqAC0AKgAqACkAKgAoACcAKgAlACoAJwAnACgAJgAkACcAJgAjACgAIgAkACQAIQAjACEAJAAcACYAHwAhACMAHQAhACAAHwAdACEAGgAgAB0AHgAcAB0AHQAbABsAHAAaABsAGgAYAB0AGgAYAB4AFgAbABkAGQAZABoAGQAVAB4AFgAaAB8AEwAhABYAHAAbABkAHQAXAB4AGQAcABgAGwAcABgAHQAZABsAGAAbABkAGgAbABQAHgATABoAGgAUAB0AFAAaABkAGAAYABkAGAAUABwAEgAZABYAGQAVABgAGwASABoAFwAWABgAGAAVABgAGAAWABgAFgAYABUAGQAVABoAFQAZABMAHQATABsAFQAWABoAFAAaABcAHAASABwAGQATAB0AFQAYABcAFwAZABUAGwAVABgAGAAYABcAHAAVABgAHAAUAB0AGAAXAB0AFgAZABsAGQAXABwAGwAWAB8AFgAbABsAGAAcABoAGwAYAB4AFwAbABwAGQAZABwAGwAbAB4AGgAcACAAGgAfAB0AHQAfAB0AIAAdAB8AHQAeAB8AIAAeACEAIAAhAB4AIgAgAB8AIwAfACIAIwAfACUAIQAkACEAJwAgACcAIgAlACYAJAAmACkAJAAoACgAJgAoACUAJwAoACcAJwApACUAKQAlACcAJwAmACQAJQAjACMAJwAgACgAIQAiACYAHwAlACEAJAAgACcAIQAkACUAIwAiACQAIgAhACUAIQAkACQAIQAnACAAJgAgACUAIQAjACEAIAAkAB4AJAAhACEAIQAfACQAHgAiACAAIgAfACAAIwAfACIAIQAgACIAJQAfACYAIgAjACQAJgAhACsAIQApACgAJAAqACYAKQAoACkAKQApACsAKQApACwAJwAuACoAKwAsACkALQAnAC4AKgAtACsALQAsACsALgApACwALQApAC4AKwAtACkALwArACoALQAnADAAJwAtACsAKwArACoALAApACoAKgAoACoAKAAqACYAKgAlACMALAAfACgAJAAkACMAJQAhACMAJwAbACcAIQAgACcAHwAiACEAIAAgACQAIQAgACUAHgAkACEAIgAiACQAIQAhACUAIAAkACIAIgAkACMAJgAgACcAHwAlACQAIgAlACQAJAAeACcAIAAlACIAIwAjACUAIgAiACUAIQAkACEAJAAkACQAJAAlACQAJAAkACQAJAAlACQAJQAlACQAJQAjACQAJQAfACkAHwAlACgAHQAmACIAIQAlACEAJAAhACQAIAAhACMAHwAjACEAIQAjAB8AIQAjAB4AJQAdACIAIAAgACEAHwAiAB0AJAAcACIAIgAcACQAHQAgACAAIAAfACIAIQAeACMAHgAiAB8AIgAfACIAIQAcACcAHgAhACEAIgAgACMAIAAhACMAIgAfACUAIQAgACQAIQAjACIAIgAhACQAIAAiACIAJQAeACUAIQAiACIAIwAhACMAJAAfACcAIQAiACUAIAAkACIAIwAiACUAIgAlACQAJQAkACUAJgAiACkAIgAmACcAJgAlACgAJgAnACgAJgAoACgAKQAkACwAJgAnACwAJgAqACkAJwAqACkAKAAqACwAKAArACwAJwAuACgALQAoAC0AKAArACsALAArACsAKwArACsAKwAqACoALAApACoAKgArACkALAApACoAKAAqACkAKAAnACgAKAAnACgAJwAmACoAJAAlACoAIwAlACkAIwAnACUAJAAkACYAIwAkACQAJAAiACYAIAAmACIAIwAgACQAIgAiACMAIgAjACEAIwAjACAAJAAgACMAIQAiACAAIgAiAB8AIgAfACIAIQAfACEAHgAiAB4AIQAeAB4AIgAbACMAHAAfAB4AIAAeAB4AHgAfAB0AIQAdACAAIAAcACAAHwAeAB8AHwAeAB8AHQAeACAAHQAfABsAIAAdAB0AHQAeABsAHAAdABsAHQAbABoAHgAXAB8AGAAcABoAGwAcABoAHgAXAB0AGwAZABwAGgAZABsAHQAVAB8AGQAYAB4AGAAYAB8AGQAcABsAHAAaABwAGwAYACAAGAAdAB0AGwAeABwAHAAeAB0AHQAeAB8AHAAhABwAIQAcACMAHAAiACAAHgAjAB4AJAAeACMAIQAgACQAIQAjACEAJwAgACUAIwAlACMAJgAkACMAKgAfACkAJAAlACcAJQAmACcAJwAkACkAJgAmACoAJAAoACgAJQApACUAKQAnACkAJwAnACsAJQApACcAKQAmACkAJgAmACcAJgAmACkAJAApACUAJQAqACIAKQAlACkAJQApACcAKAAqACYAKgApACkAKQApACoAKQAqACsAKwAqAC4AKgAsACwALAArAC0ALAArAC0AKwAsACwAKwAsACsALgAoAC0AKgArAC0AKQAtACwAKgAtACoALQArACwALAArAC4AKAAvACkALQArACsALgAqACwALAArACsALgAnAC8AKgAsACwALQApACwALwAmADEAKQArACsALQAnADAAKQArAC0AJwAuACgALAAoACwAKQAqACsAJwArACsAJQAsACkAJwArACgAKQAoACsAJgAqACoAJQAtACUAKwAnACcALAAlACgAKQAoACQAKgAkACgAKAAkACoAJQAnACYAJwAkACkAJAAmACcAJAAoACQAJgAlACYAJQAmACYAJwAlACUAKQAiACgAJQAlACkAJAAoACUAKQAjACgAJgAlACcAJgAnACcAJgAnACUAKAAkACkAJAAnACYAJwAkACoAJAAnACkAJAArACUALQAkAC8AJQAsACsAKAAvACgALwAoADEAKQAuAC4ALQAvADEALgAzADAAMQAzADAANAAwADUAMgAzADQANAA0ADIAOAAxADkAMgA3ADcAMgA5ADMAOAA0ADkANQA2ADgAMgA6ADQANwA1ADYANgA1ADcANQA4ADYANwA1ADkAMwA6ADMAOQA0ADcANwA2ADgANQA2ADgANAA4ADcANwA1ADgANQA2ADgAMwA3ADQANgA0ADUANgAzADUANQA1ADYANQAyADgAMQA1ADUAMwA1ADIANQAyADUAMgAyADQAMQA0ADIAMgAyADMAMgAyADIAMwAyADAAMgAxAC8AMgAwADAANAAsADMALwAuADIALQAxAC0ALwAuAC4AMAAqADAALAAtAC0ALAAtACoALQAqACoALgAoAC4AKQArACoAKQApACoAKwAnACwAJwApACoAJgAqACcAKQAjACsAJQAmACgAJAAmACYAJgAkACcAIgAmACQAJQAjACQAJQAhACMAIwAhACMAIwAfACUAIAAgACQAHgAiACIAIAAgACIAIAAeACQAHgAhACQAGwAmAB0AIwAgAB8AIwAcACMAHwAhAB8AIAAhAB4AIQAdACEAHgAfAB8AHwAfABsAIgAZACAAHgAZACIAGAAfAB0AHQAdAB0AHQAZACEAFwAeABoAHQAaABwAHwAYAB0AHQAZAB0AHAAZAB0AHAAcABsAHQAbABsAHQAaAB8AGQAdABkAHwAYAB8AGQAbAB4AGQAeABoAIAAYAB8AHQAZAB8AGwAbAB0AHAAeABkAIAAbABwAHgAcAB0AHwAbAB4AHgAcAB8AHQAaACMAGgAeACEAHAAdACAAHwAbACIAGwAeACAAHQAfAB8AIAAdACEAHQAgACAAIAAeACAAIAAfACIAHwAhACIAHwAhACEAIQAhACEAIQAhACIAIAAhACIAIgAgACQAIgAiACIAJAAiACMAJQAhACUAJQAhACYAJAAlACQAJwAjACcAIwAnACUAJgAmACcAJQAmACYAJgAnACQAKAAnACYAJgAnACUAKAAkACgAJgAmACYAJQAlACQAKAAgACoAIQAlACcAIQAnACIAJwAhACgAIgAkACYAIwAkACMAIwAiACUAIgAkACQAIgAmACAAJgAhACQAIgAkACIAIgAkACAAJAAhACMAIgAgACUAHwAjACEAIwAgACMAIgAgACMAIgAhACIAJAAeACQAIgAhACIAJAAfACcAHwAlACMAIAAmACAAJQAiACUAIgAkACUAIgAkACUAIgAmACQAIwAmACIAJwAiACYAJAAkACYAJQAlACQAJgAkACUAJgAjACYAJAAlACMAJgAkACMAJgAhACcAIQAlACQAIwAkACMAIwAiACQAIQAjACIAIgAiACAAJAAgACAAJQAdACIAIQAfACAAIQAeACAAIwAaACQAHwAdACUAHAAgACEAHQAgACAAIAAdACIAHQAgACEAHgAfACAAHwAeACEAHgAgAB8AHgAfACAAIQAdACIAHAAhACAAHwAgACAAIAAcACMAHAAhAB8AHgAhACAAIQAeACIAHgAhAB8AIAAhACAAIAAgACAAIQAfACEAIQAgACIAIAAiACAAIQAgACEAIwAdACYAHQAiACUAGwAlAB8AIAAiAB8AIwAeACIAIQAeACMAHwAhACAAIAAiAB8AIQAgACAAIwAcACMAIAAfACEAHwAhAB8AIgAeACAAIwAbACMAHgAfACEAHwAgACAAIQAfACEAHwAhAB8AIQAfACEAIQAdACQAHgAfACEAHwAgACEAIAAfACIAIAAfACIAHwAeACIAHwAgACAAIAAgACAAHwAgACAAIgAdACEAHwAgAB8AIAAfACAAIQAdACIAHgAfACEAHQAhAB4AIAAeACAAHwAgACAAHwAgAB8AIAAeACMAHQAiACAAIQAgACEAIQAgACIAIAAhACEAIwAfACUAIQAhACUAHwAkACIAIQAkACIAIgAjACUAIQAkACUAIAAmACMAJAAiACYAIgAkACUAJAAkACUAJQAkACUAJQAkACQAJgAjACUAJQAlACUAJgAkACUAJQAlACUAJAAkACUAJAAkACUAJAAiACgAIQAiACkAHwAkACYAIQAlACMAJAAiACYAIgAiACUAIgAjACMAIQAkACIAIwAgACMAIwAhACQAIQAjACEAIgAjACAAJQAgACIAIwAhACEAIgAiACEAIgAgACIAIgAfACMAHgAiACAAIQAgACAAIgAdACMAHwAgACAAIQAfACEAHwAgACAAIQAfACEAIQAdACAAIQAdACEAHwAfACAAHwAfACAAIAAfAB4AIQAdACAAHgAfAB0AHgAfAB0AHwAeABsAIQAZACEAGwAcAB0AHAAeABsAIAAZAB8AHAAbAB4AGwAbABsAHwAWAB8AGwAYACAAGAAaAB8AGAAcABsAGgAcABoAHAAYAB8AGAAcABwAGAAeABkAGgAeABoAGwAcABsAGgAeABkAHwAZACAAGAAfAB0AGgAgABkAIAAaAB4AHQAaAB8AGwAeABwAHgAdAB0AHQAgABsAIAAfABoAIwAaAB8AHwAcACAAHQAeACAAHgAeACAAHgAeACIAGwAgAB4AHgAfABwAIAAcACAAHQAeACEAHAAfAB8AHQAeACAAHAAdAB4AHAAeAB4AGwAfABwAHAAgABoAHgAdAB4AHAAeAB0AHQAfAB0AHgAeAB8AHQAfAB4AHgAeAB8AHwAeACEAHgAeACAAHQAgAB8AHwAeAB8AHgAeACAAHgAdAB8AHgAeAB0AIAAcACAAHAAgAB4AHQAfAB0AHwAdAB8AHQAeACAAGwAgABwAHwAcAB4AHwAcAB4AHgAcAB0AIAAZACEAHAAdAB4AHgAbAB4AHwAZACAAHAAbAB4AHgAZACEAGwAbACAAGAAgABkAHgAaAB0AHQAaAB8AGAAdABwAGAAeABsAGwAbAB4AGgAaAB8AGAAdABwAGAAfABkAHQAaABkAIAAXABsAGwAZABgAHAAYABsAGgAYABsAGAAaABkAGgAYABsAGQAYABoAGAAaABgAGgAZABkAGgAYABoAGQAZABgAHAAWABoAGgAXABwAFwAaABkAGwAYABsAGwAXABwAGQAbABoAGgAbABkAHAAZABsAGgAZABsAGgAZAB0AGAAbABwAGQAdABoAHgAZACAAGQAgAB0AHAAiABoAIgAcACEAHgAeACIAHgAhACQAHwAkACIAIgAlACEAJgAhACYAJAAjACYAJQAlACUAKAAjACkAIwAnACkAIgAqACYAJwAnACoAJwAoACoAJQApACkAJwAoACkAKAAoACoAKAApACoAKgAoACwAJwArACkAKwAqACoALAApAC0AKQArACwAKQArAC4AKgArAC0AKwArAC4AKQAtACsALQAqAC0AKwAtACoALQAqAC8AKwAsAC4AKgAtAC4AKwAtACwALAAsAC0ALAAsACwALAAsACwALAAsAC0AKwAsACwALQAsACoALQArACoALQAqACsALAAoACwAKwAoAC0AKAArACoAKgApACsAKgAnACoAKQAnACkAKAAoACcAKQAnACcAKgAlACkAJwAmACkAJgAlACkAJgAlACoAIwAnACcAIwAoACQAJwAhACcAIwAjACcAIgAkACQAJAAiACUAIQAkACIAIwAiACIAJAAhACEAJAAgACMAIgAfACUAIAAgACQAHQAiACAAIAAgACIAHwAeACMAHQAhACMAGwAlAB0AIgAgAB8AIgAcACIAHwAgAB8AHwAgAB0AIgAcACEAHQAgAB0AIAAdABwAIQAYACAAHAAbAB4AGQAdABwAHAAbABwAGwAaAB0AGQAbABoAGwAYABsAHAAWABwAGgAXABwAGQAZABkAGwAZABgAHAAXABsAGAAbABkAGQAbABcAHQAWAB4AFgAbABoAGQAaABoAHgAVAB8AGAAZAB0AGQAaABwAGQAcABkAHQAaABkAHgAYAB4AGwAcABkAHgAYAB4AHAAZACAAGgAcAB8AGgAdAB0AHgAaAB8AHAAcAB0AHwAcAB8AHgAdAB8AHQAeACAAHgAeAB8AIQAcACMAHQAfACMAHQAhACEAIAAfACEAIAAgACEAIAAeACMAHgAhACIAIQAhACEAIAAiACEAIgAgACIAIwAhACQAIwAiACMAJAAiACUAIwAjACUAJQAjACYAJQAjACYAJgAkACYAJgAlACcAJQAoACQAKgAjACkAJwAlACoAJAAoACUAKQAiACsAIwAoACYAJgAoACUAKQAjACsAIwAoACYAJwAlACcAJgAmACgAJQAnACYAJgAnACQAKQAkACgAJAAoACUAJQAnACQAJwAkACgAIwAlACcAIgAnACMAJwAiACcAIwAmACQAJAAlACQAJgAiACYAIwAkACQAJAAiACcAIAAnACQAIQAnACEAJgAiACUAIwAkACQAIQAlACIAIgAlACIAIwAkACIAIwAjACIAIwAhACUAIAAkACIAIQAjACIAIQAiACIAIQAiACAAIgAhACAAIgAeACIAHgAhACAAHgAgAB8AHwAeAB8AHgAfAB4AHgAeAB4AHgAcAB0AHgAaAB4AGwAcABoAGwAaABsAGwAaABsAGwAYABwAGAAaABkAGQAZABkAGgAXABoAGQAYABsAFwAZABoAFQAaABgAGAAZABYAGQAWABcAGQAVABkAFQAYABgAFgAZABMAHQARABkAFgAWABYAFQAYABUAGgASABoAFgATABwAEQAZABUAFgAWABUAGQATABcAFgAXABgAFAAZABUAFwAWABYAGQAVABgAFgAWABkAEwAaABYAFAAcABIAGwATABoAFwAVABoAFQAZABUAGgAWABkAGgAXABoAGwAVAB0AGAAZABsAGgAbABkAHQAaABsAHAAbABwAHAAbABwAHQAdABwAHgAbAB8AHAAgAB0AHgAgAB4AIAAdACAAIAAeAB8AHgAgAB8AIAAdACAAIwAcACIAIAAfACEAHgAhAB8AIQAeACMAHAAlAB4AIQAjAB8AIQAfACIAHgAhACAAIgAeACMAHwAgACEAHgAlAB0AIgAgACEAIQAgACEAHgAjAB8AIAAiACEAIQAiACAAIwAhACIAIgAhACMAIgAiACQAIQAjACQAIgAlACQAIwAlACQAJAAlACQAJAAkACQAJQAjACgAIAAnACMAIgAmACMAJQAjACYAIwAkACUAJAAjACcAIgAmACQAJAAlACYAIQAnACUAIwAnACMAJQAkACYAIwAmACQAIwAlACYAIwAlACQAJQAiACcAIAAlACQAHwAlACEAIQAiACEAIAAhACAAIQAgACEAHwAfACMAHQAhACIAHQAhACEAHwAfACIAHgAjAB8AHgAkABoAIwAhABwAIgAfAB0AJAAZACIAHQAcACAAHQAdACAAHgAeAB0AIQAbAB0AIAAbAB4AHgAbAB4AHwAZACEAHAAcAB4AHAAcAB4AHgAaAB8AHQAcAB4AHQAbAB4AHQAbAB4AGwAdAB4AHQAcACEAGwAgAB4AHwAeACAAIAAbACIAIQAbACIAHQAeACIAHQAgAB0AIQAcACEAIQAdACIAHwAdACIAHwAfACMAHQAgACQAHQAiACEAIAAhACIAIAAiACIAIAAiACEAIgAiACEAIwAkACEAJQAiACQAJQAkACQAJQAlACQAJgAjACYAJQAlACYAJAAlACcAIwAmACYAJAAmACUAJAAmACYAIwApACIAJwAmACIAKAAkACMAJwAiACUAJgAjACUAJQAjACUAJQAjACUAIwAlACIAJgAhACQAJAAiACMAIwAiACMAIQAkACAAIQAiACEAIgAhACIAIgAgACMAHgAhACEAHwAkABwAIwAgAB8AIgAfACEAIAAfAB8AIQAeACAAIQAcACEAHwAdACEAHgAfAB0AIQAcAB0AIQAcAB0AHwAcAB8AHQAdAB4AHAAeAB0AHQAdAB0AHQAdABwAHgAcAB8AHAAbACEAGwAcACEAGgAfAB4AGgAiABkAIgAYACAAHQAdAB4AHQAfAB0AHwAeAB8AHAAhAB0AHQAgAB0AHwAeAB4AHgAdACIAGgAgACAAGwAhAB4AHAAjABoAIgAcACAAHwAcACAAHgAeAB8AHwAeACAAHgAeACAAHgAhAB0AIAAgABwAIAAeAB0AHwAdAB0AHwAcAB4AHwAcAB8AHwAcAB4AHwAbAB0AIAAaACAAHgAaACAAHAAeAB0AHgAeABwAHwAcAB4AHQAeAB0AIAAbAB0AIQAYACAAHQAbACAAHAAeAB0AHQAeABwAIAAbACEAGgAhAB0AHAAiABkAIQAdABwAIAAcAB4AHgAdAB8AHQAgABsAHgAgABkAIgAaACAAHgAdACEAGwAiABoAIQAeAB0AHwAdAB4AIAAbACEAHgAdACAAHwAdACAAHwAcACIAHwAdACAAIQAdACIAIQAeACUAHgAgACQAHwAhACQAIAAhACQAIgAiACUAIgAiACQAIwAhACQAJQAgACgAIgAjACgAIgAmACgAIwAmACcAJQAmACcAJgAkACgAJgAkACoAJAAmACkAJQAmACkAJQAnACgAIwApACQAJgAnACQAKAAlACcAJAAnACYAJQAlACcAJAAjACgAIwAkACcAIwAjACYAIwAkACMAJAAjACQAIwAkACMAIwAkACIAJAAkACEAJAAjACIAIwAjACIAIwAiACMAIgAgACYAHwAjACQAHwAjACIAIQAgACQAIAAgACIAIAAhACAAIwAeACIAIgAeACQAHgAgACEAHwAfACAAIgAdACQAHQAfACQAGgAjAB8AHQAhAB8AHwAfACEAHAAfACAAHgAfAB4AHwAeAB4AIAAdAB8AIAAdAB0AIQAaACAAHQAbACEAGwAdAB4AHAAbAB4AHQAaAB8AGgAcAB4AGgAcAB4AGAAgABkAHgAbABwAHQAZACAAGQAcAB4AGQAdABsAHAAcABsAHAAcABsAHQAcABkAHwAXABwAHAAXAB0AGAAcABwAGQAcABoAGgAZABwAGQAZABwAGQAZABoAHAAXABsAGgAaABoAHAAYABsAHAAYABwAGwAZABsAGwAZAB4AGAAdABoAHAAZABwAGgAaAB0AGQAcABoAHgAZABwAHgAXAB8AGgAaAB0AGgAeABkAHgAbABoAHgAbAB0AHQAbABwAHgAbAB0AHQAbAB4AHQAaACIAGQAeAB0AHQAcAB0AHwAaACAAGwAdAB8AHAAeAB0AHQAdAB4AHgAcAB8AHgAcACAAHAAeACAAHAAfAB4AHgAeAB4AHwAfACAAHgAfACAAIQAeACIAHwAhAB8AIgAgACAAIwAfACMAIgAgACQAIgAiACIAJAAhACQAIAAkACQAIQAlACMAIgAkACIAIwAkACEAJAAjACMAIwAjACMAIwAiACQAIQAmACEAJAAkACEAJwAgACcAHwAlACQAIAAmACEAJQAhACYAIQAiACcAHwAlACQAIQAlACIAIwAkACIAIwAmACAAJQAjACIAJAAjACMAIwAjACIAJAAiACMAIwAhACYAIQAjACUAIgAjACQAIwAlACEAJwAgACYAJQAgACcAIwAhACYAJAAiACcAIQAmACQAIwAkACUAJAAkACYAIgAlACUAIwAlACUAIgAnACQAJAAmACIAJgAjACMAJgAjACUAJQAkACQAJAAkACMAJAAjACMAJAAjACAAJgAgACIAJAAeACQAIAAgACMAIAAhACEAIAAgACAAHwAgAB4AIQAdAB4AIQAbAB8AIAAbACAAHQAeAB0AHwAaAB4AIAAXACAAHQAZACEAGgAbAB4AGwAbAB4AGgAcABsAGwAaAB0AGQAcABoAGgAZABsAGgAaABoAGgAYABsAGgAYABsAGAAZABsAFwAaABoAGAAXABwAFwAaABoAFgAaABgAGQAXABkAGQAYABcAGQAaABUAGwAWABgAGQAWABgAGAAXABkAFwAaABcAGAAYABgAGwAUAB8AEwAZABwAEwAaABkAFgAaABgAGQAXABoAFgAXABkAFwAYABgAFgAaABYAFwAZABYAGgAVABgAGAAWABkAFgAXABgAGAAVABgAGAATABsAFQAWABoAFAAWABcAFgAWABgAFQAXABYAFgAWABgAFgAVABkAFgAUABkAFQAXABcAFgAWABgAFwAVABkAFwAUABoAFgAYABgAFgAZABcAGAAYABcAHAAVABwAFwAbABgAGgAbABkAHQAWAB4AGAAbABwAGAAcABoAHAAbABwAGwAdABwAHQAcAB0AHQAcAB8AHQAfAB0AIAAeAB8AIAAfAB8AIAAhAB8AJAAdACQAIAAgACUAHgAjACIAIQAjACIAIwAjACYAIAAmACMAIwAlACMAJQAjACcAIQAkACYAIwAkACYAJAAkACYAJQAjACUAJQAkACUAJAAkACQAJgAjACIAJQAiACUAIQAjACIAJAAhACMAIgAgACUAHgAgACUAHAAhACAAHwAhAB4AIAAfAB8AHgAgAB0AHwAfABwAIAAaAB8AHQAaAB0AHAAbAB0AGwAbABsAGwAbABkAHQAXABwAGQAYABoAFgAaABgAFwAWABoAFQAYABYAFQAZABMAGQAUABYAFQAVABYAFAAVABQAFQASABcAEQAVABQAFAATABYAFgAPABYAEgASABUAEgASABUAEAAUABMAEgATABEAEwARABIAEAAUABAAEQASABAAEgARAA4AEgAPABMADgAQAA8AEQAQAA8AEgANABMADwARABAAEQAPABEAEwAMABQAEAAOABUADgAQABMAEAARABEAEgASABAAFQAOABQAEgARABMAEgASABIAEwATABQAEwASABUAEgAUABMAFQATABgAEQAXABYAEwAYABQAGAATABgAFwATABoAFAAZABYAGQAXABYAGQAZABYAGQAZABQAHgATABkAGgAXABsAFwAZABsAGAAYABsAGAAZABsAFwAcABcAGwAaABcAHgAYAB4AGgAcAB4AGgAeABwAHQAcAB8AHQAeABwAHgAeAB8AHAAgAB0AHgAiABoAIQAfACAAIAAfACIAHgAiAB8AIgAgACEAIQAgACIAIQAhACMAIAAiACEAIgAhACIAIAAjAB8AIwAgACEAIgAfACIAIQAgACEAIgAgAB8AJAAcACQAHQAiACAAIAAiAB0AJQAdACMAIAAeACMAHgAfACEAHgAfAB8AHwAeAB4AHwAdAB8AHgAdAB8AHAAgABwAHwAbACAAHQAbACAAHQAbAB4AHQAZAB8AHAAZAB8AFwAeABoAGwAZABwAGwAYAB0AFwAaAB0AEwAeABkAFwAbABgAGQAXABoAFQAZABcAEwAbABMAGQAVABMAGgASABQAFgATABIAFQARABMAFAARABMAEgARABEAEgAOABMADwARABAAEAAPABAAEAAOABEADwAPABAADwAPAA0AEgAMAA8AEAAOABAADgAQAA4AEQAPAA8AEgANABMAEAARABIADwAUAA4AFAAPABIAEgAQABQAEQAQABUAEQARABcADwAVABMAEwAUABgAEQAYABYAEwAZABUAGAAWABoAFQAYABsAFQAaABoAFwAcABgAHAAaABoAHQAaABwAHQAcABwAHwAcABwAIAAbACEAHAAgACEAGwAkAB0AIAAgACEAIAAfACMAHQAiACEAIAAiACAAIwAgACIAIwAgACMAIwAhACUAIgAlACMAJwAjACUAKQAjACoAJQAnACkAJgAoACoAKAAnACoAKAAoACwAJQAsACgAKgAqACoAKwAqACsALAAoADAAKAArAC4AKAAtAC4AKwAsACwAKwArAC4AKgAsACwAKwAsACsAKwArACwAKgArACsAKgAtACcALAArACcALQAmACoAKQAoACkAKAAnACgAJwAnACcAJgAmACUAJgAjACUAJQAhACQAIwAjACEAJAAiACAAIwAfACIAIAAgACIAHgAgACEAIAAeACMAGwAgACAAGwAhABsAIAAaAB4AGwAbAB4AGAAcAB0AGQAbABwAGAAcABkAGwAaABoAGwAZABgAGwAXABoAGQAWABwAFgAWAB0AEwAZABcAFwAWABkAFgAUABoAEgAWABoADwAcABEAFwAVABQAGAARABgAEwAXABIAFQAVABEAFgASABQAEwATABIAFAATABAAFgAOABQAFAAPABYADwATABQAEQARABUAEQASABYADwAUABIAFAAQABQAFQAPABYAEQAVABIAFgASABQAFgATABUAFAAXABEAFwAUABYAFgAVABUAGAAVABkAFQAXABgAFwAXABcAHQASABsAGwASABwAGAAXABcAGQAbABYAHAAYABgAHAAXABsAGwAZABgAHgAYABwAGgAaAB0AGwAYAB8AGgAaABwAHQAZABwAGwAbABwAHAAbABwAHAAcABsAHQAaAB8AGgAdAB0AHAAcAB8AHAAcACIAGgAgAB0AHgAfABwAIQAcACEAHQAeACEAHQAgACEAIQAhAB4AJAAgAB8AJQAgACQAJAAhACYAJQAlACQAKQAkACgAKAAmACoAJwAoACwAKAAqACwAKgAtACgALQAuACsALQAvACsAMQAtAC4ALwAxAC0AMAAvAC4AMQAtADUALAAwADEALgAxAC8AMgAvADYALgAvADYALQAxADQAMAAxADMAMAAzADMAMAA0ADEANQAxADMAMwAxADMAMAAzAC4ANQAwADEAMQAvADQALgAyAC8AMwAvADAAMQAvAC8ALwAvAC8AMQAtADAALwAtAC8AMAAsADIAKgAxAC4AKgAvACsALQAtACsALAArAC8AKAArAC0AJwAtACoAKgAqACcAKwAlACoAKAAmACcAJwAkACUAJwAiACYAJAAjACEAJAAiAB4AJAAgAB4AIQAcACEAGwAeAB0AHAAcABsAGgAaABoAGAAZABgAFgAYABMAGAASABMAGAANABUAEAASAA8AEQAMAA8AEgAGABIACQALAA4ACAALAAYACgAHAAkACQAEAAkABQADAAcAAwAIAAQAAwACAAMABAAEAAEABAAAAAIAAwAAAAIAAAAAAAMA/v8BAAIA/v/+/wAA/v8AAAAA/P////7//v/+//z//f/8//z//P/7//z/+v/8//z/+v/7//v/+f/7//r/+v/9//n/+v/7//r//f/3/wAA9//4/wEA9P/9//3/+f/9//n////3/////P/4/wAA+f/9//n////8//v//v/7/////v/7/wAA/P///wAA/P//////AAD9/wEAAAD//wEAAAD//wQA//8AAAMAAQAAAAMAAAAEAAAABQABAAYABAAAAAoAAgAEAAcAAgAGAAYABgAFAAkABwAEAAsABgAHAAoACAAHAAoACQAKAAwACQAMAAoADgALAA4ADAAPAAsAEQANAA4AEwALABQADgARABIAEQAQABEAFAASABMAEgATABQAEgAVABQAFAAUABQAFQAVABYAFQAWABYAFgAWABcAFgAVABkAFgAVABsAFAAXABkAFQAYABYAFwAZABUAFwAWABoAEQAZABYAEgAbABIAFgAVABcAEQAUABcADwAXABIAEAAUABAAEgAQAA0ADwAOAA0ADAAQAAkADgALAAYADQAIAAoABwAHAAUABwAFAAMABgABAAUA/////wQA/P/+/wEA+//9//v/+v/5//3/9P/5//n/8v/4//X/8v/0//L/7//x//H/7//w/+7/7f/t/+n/7f/s/+n/6//o/+j/6f/o/+P/6P/m/+L/5v/k/+H/5v/j/+D/4v/k/93/5v/e/+D/4P/f/+D/3v/e/93/4P/a/97/3P/c/93/2//d/9r/3f/b/9r/3f/a/93/2v/d/9r/3f/c/9r/3//a/9v/3P/e/9r/3f/d/9z/3f/e/9v/3v/e/9v/4P/a/+D/3f/c/93/3v/e/93/4P/c/9//3v/f/+D/3v/g/9//4v/b/+P/4f/c/+b/3v/g/+T/4P/h/+P/4//j/+L/5f/g/+j/4//i/+f/4v/n/+P/5//m/+X/5//l/+n/5v/n/+f/6f/l/+v/5v/q/+n/6P/r/+j/7P/p/+r/6//r/+//6v/w/+n/8f/w/+v/8v/x/+//9P/v//L/9//w//X/9f/0//r/9P/1//v/9v/4//v/+P/7//v/+f/8//z//f/9//z////+/wAA/f8AAAIA/v8CAAIAAAADAAIAAgADAAAABAADAAUAAQAFAAQABAAHAAEACAAHAAUACAAFAAkABgAIAAgACQAKAAgACgAGAAsACQAJAAkACwAJAAsACAAJAAgACgAIAAgACQAFAAkABQAFAAcABAAGAAYABAADAAQAAwACAAQAAAAFAAIAAgADAAAABgD//wUAAQADAAQAAAAEAAAAAwACAAAABQADAAAABAAFAAAABwADAAMABwAGAAkABgAFAAoACAAGAA0ABgAJAA4ACAAJAA0ADQAIABEABgASAAkADwANABEADwAOABMADAAVAA4AEgATABEAFQASABcAFAATABsAEwAaABgAFgAfABcAHQAbABsAHwAbAB0AIAAfABsAIgAdACAAIQAgACMAIQAjACIAJgAfACcAJQAkACYAJAAnACQAKQAkACcAKQAmACgAJwApACYAKgArACUALgAmAC0AKAAqACsAKwArACoALgApACwALQAuACwALAAvACsALwArAC0ALgArACwALAApAC0AKAAqACoAKgAqACcALQAoACsAKQArACwAKAAtACkALgAqAC8ALgArADMALQAvADMAMAAwADMAMwAzADMANQA0ADUAOAA1ADgAOgA5ADcAQAA3AEIAOgBBAEMAPwBFAEUAQgBHAEoARwBMAEkATQBQAE8AUQBVAFIAVwBXAFsAWwBfAFwAZQBhAGQAZwBnAGoAbQBqAG8AcgBxAHQAcwB1AHgAdgB4AHwAeQB7AHsAewB9AHwAfAB/AHwAfgB9AH8AfQB/AH0AfgB+AH4AfgB7AIEAegCAAH0AfwB7AH0AfwB5AH8AeQB6AHoAdwB4AHQAdAB3AHQAcQBzAG8AcABxAGkAbABsAGIAawBhAGMAYgBdAGAAWABZAFoAUgBUAFEATQBMAEoARgBBAEMAPwA6ADgAOAAzADEAMAArACoAKQAkACYAHQAfAB8AGwAXABgAFwAQABQADAANAAwACAAIAAcAAwACAAIA/v8AAP7/+//8//r/+f/3//P/9//0//X/8v/x//L/8//u//H/8f/u//T/7f/v//H/8P/t//T/7P/w//D/7v/y//T/8f/v//j/7//4//n/8v/7//n/+P/9///////+/wAAAgACAAAABgAHAAcACQAMAAoADgAQAA0AFwASABEAHQARABgAIAAZAB8AIQAfACYAJgAhACwAKgApADEALQAvADQANAAwADkAOQA1AD0AOAA8ADwAPQBCADoAQgBAAD4AQQBBAD4ARABAAD8ARQA+AEAAQABCAD8APgBBAD8APQA8ADsAPQA3ADoANgA0ADMAMwAwAC0ALgAtACkAKQApACMAJwAjACEAIwAhABoAIgAZAB0AHwAUACAAFwAWABgAGAAUABgAFgAUABQAFgAUABYAFQAVABUAGAAXABMAHQATAB0AFwAaACAAGwAdACQAHQAkACkAIgArACYALQAuACwALgA0ADEANQA1AD4ANwBBAD4ARABFAEQASgBLAEwAUgBPAFUAVQBWAF4AWQBfAGMAYQBlAGYAZgBrAGkAaQBrAGwAbwBsAG4AbwBtAG4AagBxAG0AbwBvAGoAbwBrAGwAbABsAGUAbQBmAGUAaQBfAGcAYQBgAGIAXQBaAF4AWABbAFsAVABUAFoATQBXAFAATABRAEoASgBJAEgARQBGAEIAQAA/AD0AOgA8ADUANQA2ADIALgAuACwAJwAoACMAIwAiABwAHwAaABgAGgAUABcAEwAQABQAEgANABEADQALAA0ADAAKAAsACwAHAAwAAwAGAAkAAwAHAAQABgAHAAQABQAEAAAABgAFAAUAAwADAAQABQAEAAUAAwAHAAgA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x/+PAAQBAgGCAD4ASADgAHYAof8QAN0ADgG3AE4ADwDeAIkBGwEuAYMAcgA6AK4AbwGKAVQBUQGxALIA+wCJAaYBlgGkAW0BzAB/AOEA1wCoASMCZwLIAdQA7gDJAE4B4gEwAgoClAHdAJgAAAH2AfMBNQJfAY8BkAFCAbMBXwHaAZsB5AFCAU0BuQFpAZMBsQGYAVsBmwFfAZoBvgHUAYMBhQHfAEABNQHbAbkBrgF1AasAGQEuAY4BxAGaAZABNwHrADoBdAFhAQoBHQFeAQsBaQFqAUcBCAE2AY4BHAEUAeoABQEVAewAHAFAAdUAFgHnAOgA8AANAd8A3ADeAEkBrQB3AJ4AuQDXANkApgCuALcAVQCOAOEA0gBbAKIAaQB0AFkAXgAMADcAfQBAAIMAOQAfABUAMAAZAAAAJwBYAAQALwC6/zsAxf/S//X/1/8PACUAOQC//7//2f/A//H/AADa//z/s/+o/77/5P8RABAAyf/A/47/nP/m/73/AAAfAKr/8P/H/4//k//p/7L/zP9x/8X/Yv/Q//n/df+r/3P/dP+P/2z/mP+S/5r/aP9i/yz/a/+I/5L/Q/+v/5L/av9y/4n/Mv+J/2f/cv9s/7L/k/94/13/Tv9W/4j/wv+k/63/cP9H/13/Rf9k/5b/aP96/3f/ef9l/zv/gv+B/0v/Kv+G/1f/c/82/1j/Uv8Y/2L/m/9R/3P/Z/9p/4z/Fv9h/1j/Tf+W/3T/ov9j/2L/OP8x/2r/sv+f/5n/dv9d/13/T/96/6H/vv9r/2D/Yv9h/5P/j/+Y/53/ef9v/3P/rP99/8P/fP9+/3X/Zv9+/53/uv+u/63/Vv+d/4X/qv/L/6v/u/92/3//yP+7/8D/5f+h/+v/wv/C/9H/5P/E/8z/zf/4/wQAAADp/7v/3P/2//n/GQASAPT/9P/+/+b/+P8XACUAFQAHAAoAJwAFACwAAwBHAB0AJwBRACwAHwA/AEAARwAoAGUAOwBUAFoASABPAGAAQwBfAGQAZwBHAHkAXgBoAEsATQBKAIIAhwBjAGoAdQBiAG4AZABtAIUAbQBwAGsAewCOAGsAegBsAJIAegCWAFAAnwB+AHcAbwB1AH4AhQCFAIIAlABcAIkAhgBbAIUAggBYAHkAZAB8AJEAWQBhAGoAegBJAGoAawBlAG8ATQBAAHMASwBXAHEAUQBFAGAAVQA8AEwATQBmAC8APwA4AEwAPwA6AE4APAA9ABgANgA8ADoALQAqACAANgAcABsAKQAhAB8AEgANACEA//8jAA4A+P8QAO3/6/8JAPH/8//0/9f/6//w/93/3//g/9r/0v/X/9H/yv/f/6b/x/++/7b/zf/K/8D/uv/D/7b/vP+l/5n/xf+6/7H/m/+p/9P/nv+S/63/mf+3/6b/mf+k/6L/lP+9/33/q/+y/5L/o/+U/5b/pP98/5r/lP+m/6z/gf++/6H/kP+J/5T/l/+q/5j/mv+h/5r/qv+P/73/ov+Z/7j/qP+W/7X/uv+y/6D/sv+4/6r/v/+4/6v/q/+7/7v/tv+y/7b/zf+//6r/wv+4/7z/0f+x/7D/wv/K/67/xv/J/8T/xf/E/7b/sv/S/8D/3f+r/83/1f+//7v/xv+3/9D/wv++/+n/v/+8/97/v//O/8L/1//P/8T/zP/c/7z/1/+//9n/1//D/9n/1//H/9b/1v/b/8P/2P/Q/73/2f/G/9r/2f/G/+D/yf/f/9T/w//m/9r/0//U/9L/1f/X/9T/zP/l/9r/2f/U/+n/yf/k/8r/4f/L/+H/6v/Z/9r/4//O/+P/2f/a/+f/3P/P/+v/3P/g/+3/2f/X/+X/3v/T/+b/1v/n/8j/4P/k/9P/4f/l/9H/z//p/7//7P/K/9j/1P/a/9X/2f/b/8L/7f/X/9j/xP/m/9f/x//Q/9//2f/l/9T/4P/J/+H/0P/Z/+H/0//S/+X/3v/Z/8r/2P/r/9D/5f/W/9z/5P/a/8z/6P/Q/+r/7P/L/93/6f/T/+b/3P/c//T/4v/P/+P/2//r/+3/3//l//H/4v/q/+z/7f/s//j/6P/m//H/9v/p//P/5P8GAPn/6//6//n/9P/h/wQA9f8BAPX/AADq//////8AAPX/CADv/wwA6v8BAPv/+/8AAA0A6P8CAAYAAwD5//r//P8CAPj//v8DAPb/+f8UAPb/+f8CAAUA9v8EAPj/+f8KAP//+v8BAPv//f8LAPj//f8DAPT/BQD1/wEA/f8AAAUA7f8AAAEA9//7/wEA6v8DAAAA8P/9//7/9P8AAP//8f8JAPL//P/1//j/AgD1/wAA7f/8/wAA8v/2//z/8f8FAOr//P/0/+7/9f/9/+X//f/u//X/7f/t/+z/+P/u/+//5v/p//j/3P/0/+f/7P/o/+X/7f/n/97/4f/s/+r/4P/Y/+v/6v/Z/+L/2//t/+f/3f/J/9n/7f/l/9H/3P/n/+f/2//a/8v/7P/g/+T/3P/M/+b/4P/e/+D/y//j//P/1v/a/9b/5P/p/9P/3f/q/9b/4f/s/9v/4//j/97/5//g/+v/4f/q/93/5v/p//b/7f/W/+v/7v/u/+L/9P/n//X/4f/r/+j/8f/y/+X/9v/q/+n/7v/3/+b/8f/r//n/7v/s/+n/9//j//3/8f/0/+v/+f/z/+z/BgDi//P/+v/y//r/9P/y//T/+v/0//n/9f/2//j//f/o//7////u//T/AADv//v/AADj/wIAAADo/wAA+P/w//z/+v/0//7/+f/9/wIA8v/w/wMA+f/y/wYA+//3/wkA///2/wQA/P8EAAMABAD5/xIAAQD8/wwACgAJAAAAEgAEAAwABwAOAAEAIgD3/woAGAAFABsAAAARABcADgARABoAAAAWABYABwAWABUACQAWAAkADQAXABMAEwAJABkAEgAMABQAFgASABcAGQANABMAHQAMABsACgAbABEAGQARABIAFwAXABQAGAANACQADQAYABYAFgAVABkAGAASABgAEgAcABYAEQAXAA0AFAAjAAcAFQAXAA0AGgALABEAEgAbAAkAFwAFABwAEwAIABYACwAKABkABQASABYADQAQAA0AEgAUABAAFgASAAwAGwAIAB8ABAATABAAFQAJAA8ABgAPAAUADgAOAAgACgAHAAoADwD7/w0AEAAAABIA/f/+/xEA///9/wkAAQD+/wcA+v8AAPj/AgD+//n/AADy/wcA+f/z/wQA7f/+/wEA8v/6//7/9P/y//f/+f/1//v/6P/6//f/9//z//j/9//y//H/+f/4/+3/9f/4/+v/9f/z//z/6//x/+7/7//2//T/5f8AAOz/7f/y//L/8P/5/+7/7//2/+3/8P/y/+7/7f/z/+j/8f/0/+f/8f/v/+v/8P/r/+z/9P/r/+n/9//p//L/7f/o//H/8//l//v/6v/q//X/6v/w//H/7f/y//j/6f/0/+z/+v/z//X/8v/4//D/9P/7/+z/+v/u//r/9//0//P/9P/3////7f/9//b/AgD1//r////5//3/+f/7/wIA///6//r/CQD2/wUA+P8BAAoA+v8JAP//+v8OAAEACAACAAUABAANAAUACQAJAAkADwAFAA0ADwATAAUAFAARABMAFgALABcAGAAVAA8AHwAYABoAHQAVAB8AHQAXACQAGQAXAB8AGgAgAB8AFwAmABkAJQAYACIAIAAhABsAKQAYACoAGwAgACwAFQAjACYAHgAkAB0AJAAhACIAIgAbACYAHgAlAB0AIgAiACIAHAAbACMAIAAgABoAIAAgABgAIgATACEAGQAjABcAHwATABwAHQAYABYAGwAXABkAGAAPABoAGwAUABMAGAASABUAFgAQABQAFQAOABgAGAAOABkAEgALAB8ADgAPAB8ADwARABYACgAVABYAEgAMABQADwASABgABQAVAA4AEQARABMABQAaAAoAFAAHABMADwATAA4ADAAPABgADgAGABcACgAMABsABAARABAADAAOABMABAANAA0AEAAIABUAAAAcAAAACgAJAAsADAAHAA8AAAARAAIABwANAAMABQAPAAMABQANAPz/EgAAAAAADgD3/wwACAD8/xAA/v8LAAQABQABAAkAAQAJAAwA/P8PAP//CAAGAAUACAAEAAgABAAKAAcACwAEAAkACAAKAAsABgAOAAMADQAHAAwACgALAAYAEAAGAA8ABgAPAAkACgAJAA8AFAABABQACwAIABIAEQAMAAwADwAXAAYAEwATAAoAFwALABUAFAAMABMAFAAVABEAFwARABsAFAAUABoAFwAVABoAGQAXABoAFgAaABsAHQAZACAAGgAcACAAHAAfACEAHwAeACEAHQAfACYAGgAkACQAIQAjACMAJAAlAB8AJQAmACIAJAAkACcAJAAlACgAKAAoACUALAApACUAKwArACwAKgArACsALgAsACkAMgAqAC8ALwAwACsAMAAwADIALAAwADIAMgAxACwAMgA2ADAANAA0ADAANwAtADUANAA1ADQAOAAwADMANQAvAD0ALwAzADYAMgAzADAAMwA0ADYALwAwADkAMAAxADMAMAAyADEALwA2ADYAKgAyAC8AMgAxAC0AMAA0ACsALQAxACgAMwApAC8ALgAoAC4AKwApACsALgAmAC4AKQAnACsAJwAmACkAJwApACgAJQAkACUAKQAiACcAIQAqACMAIgAjACAAJgAfACIAHwAfACQAHwAeAB4AHQAfACEAHwAaABsAHQAZABwAGAAaABoAFwAWABcAGQAUABgAFgAUABIAFQASABAAFQAOAA0AEQAOABAADgAJABAADQAFAA4ACgAJAAoABwAKAAcACAAGAAUACAACAAYADAD7/wQABgAGAP//AgAAAAMABwD5/wcA///+/wMAAAD8/////P///wEA+f/5//7//P/3//n//f/8//3/9v/2//z/+P/6//f/+v/2//n/+//3//z/8//6//j/9v/0//v/+P/x//f/8f/6//f/8//0//f/8//z//T/9f/1//H/8//z//H/8//z//T/8//x//D/8v/v//P/7//z/+//8f/w/+7/9f/r//T/6v/u//j/5//x//H/7//v/+//8f/w//D/7//v//L/7P/w/+7/8//w/+//7v/v//H/9f/p//P/7//u//b/7P/u//P/8//t//P/9P/v//X/7//x//b/8//z//f/9f/z//j/8//5//f/+f/4//r/9//5////+v/8////+//+/////v8BAAAAAAABAAMAAAAAAAUABwAAAAUABgAFAAgACQAGAAsACwAIAA8ACAAMAA4AEQALAA4AEwALABcADgASABUAEAAWABQAGAAVABYAFwAYABwAFAAcABsAGAAYAB0AGwAeAB8AHAAfAB8AHwAhAB8AIAAiACMAIQAiACcAJAAiACcAJAAnACgAJAApACgAJQApACwAJAArACoAKAAsACgAKwArAC8AJQAqAC4AKgArACsALAAsAC4AKgAsACcALAArACwAKQAtACoALAArACQALAApACsAKAAnACgAKgAlACkAJwAlACoAIQAlACsAIQAhACoAIgAnAB8AHwAkACQAIAAfACMAHQAhAB8AHAAhAB4AGgAYAB4AGgAbABoAGQAZABMAFwAYABQAEwAUABMAFAARAAsAFQAOAAwADgAJAAwADwAKAAsABQAKAAYACwAFAAMABAAHAAMA//8DAAIAAwD9//7/AAD///z//f/6//7/+//7//b/+v/5//n/9//3//b/9P/2//H/9//x//H/9v/w//D/8v/w/+//7//t//D/7v/t/+v/7//n//D/6//p/+r/6f/s/+f/7v/m/+b/6f/q/+b/6P/n/+f/6f/h/+n/5v/k/+r/4//k/+j/5v/j/+b/5//l/+T/6f/g/+n/5v/j/+f/5P/m/+X/6P/i/+f/5v/j/+j/5f/k/+b/5P/k/+X/5f/k/+X/5f/l/+P/5v/j/+T/4//j/+j/4//k/+P/6P/l/+D/5P/l/+T/5//f/+L/6f/j/+T/5P/j/+j/5P/h/+f/5P/k/+f/5v/l/+f/4//m/+j/6P/m/+j/5f/q/+v/5//q/+r/6f/s/+v/6v/q/+3/7P/s/+j/7v/p//D/7f/t/+z/8P/w/+3/8v/y//D/8//x//X/8v/1//X/9f/4//X/+f/2//j/+f/5//v/+//7//3/+v////n/AAD+//7/AAD6/wIA/v8AAAAAAAAAAAQAAAABAAMAAQACAAMAAQAGAAYABQAFAAgACAAGAAkABwAJAAwACAALAAwABwAOAAsADQAQAAoADgASAAwAEwAQAA8AEwATABMAEgATABUAFwARABkAEwAYABwAFQAVABwAGQAXAB8AFQAgABcAGgAdAB8AGQAdACEAGAAiABsAHwAgAB0AIQAcACMAHwAeACQAHQAkACAAHwAlAB4AJAAiACEAIgAiAB4AJgAiAB4AIwAfACIAIgAgACMAIQAjAB8AIgAeACMAIAAiACEAHgAjAB4AIAAeAB0AIgAeAB4AHQAdABoAHgAfABgAHwAZAB0AGgAbABwAGgAZABkAGwAVABgAGQAaABUAFgAYABYAFgAUABYAEwAWABUAEgASABMAEQARABAAEAAQAA4AEwANAAwADAAPAAwACgANAAgADQAIAAwACgAHAAwABgAIAAoABwAGAAgACAAFAAgABQAFAAcABgAEAAYABQAGAAEACQADAAkAAgAIAAcABgAGAAgAAQAIAAgABgAIAAcABwAHAAcACAALAAYABwAIAA0ABwALAAYADQANAAkACwAMAA0ADgAKAA0ADwASABEADwAPABAADQASABMADwARABAAEAAUABAAEgATABEAFAARABMAEQAUABQAEgAUABYAFAARABcADwAWABUAEwATABEAFQASABcAEwATABQAEwAUAA4AEwATABIAEQARABMAEwATABAAEAAQAAoAEAAMAA4ADwANAA4ACQAKAA0ABgAKAAcABQAHAAcABQD//wUAAgAAAAAAAAAAAP///f/8//3//P/7//z/9//6//v/+f/2//j/+f/0//f/8//z//T/8//x//P/7v/v/+//7f/u/+v/6v/t/+v/6v/n/+X/6f/p/+j/5f/k/+f/6P/i/+X/5v/j/+f/4f/h/+P/5P/f/+T/4P/g/9//3f/h/+H/3//b/+L/3f/h/+L/3f/g/+D/3f/e/+P/3//d/9//4P/g/9v/3v/f/97/4P/h/97/4P/f/9z/5f/e/9v/5P/Z/9//5P/c/+D/4f/f/+L/4P/e/+P/3//h/+b/3//l/+P/5P/i/+X/6f/k/+b/5v/l/+X/5//q/+T/6//p/+r/6P/r/+b/6//r/+f/7f/q/+f/7v/s/+3/6//t/+3/7f/s/+//8P/u//L/8P/v//H/8P/w//D/8v/z//H/9P/0//H/9f/1//T/+P/1//X/9//5//v/+f/4////+v/8//v////9/wAAAgD+/wEAAQABAAIAAwADAAYABwAEAAUACAAGAAoABQAJAA0ACQAJAA4ACAANAA4ADAAPAA4AEgARABAAEAASABEAEgARABgAEQAWABUAFgAXABUAFgAYABcAGAAXABgAFwAaABsAFgAbABsAGQAZABkAGQAcABgAGQAaABoAGgAYABoAGgAZABoAFAAcABkAGgAYABcAGQAWABgAGAAaABUAGgAXABUAGQATABkAFwAXABYAFwAWABUAFwAYABcAGAAXABsAFgAaABoAGAAbABkAFwAZABoAFwAbABoAGAAaABoAFgAbABUAGAAbABkAGQAZABkAGAAYABcAGAAbABkAGQAWABgAGAAWABcAFgAVABgAGAAWABcAFQAUABYAFQAVABUAFwAUABYAEQAUABYAEwAVABMAFgAXABYAFgAVABMAFgAZABkAFAAXABgAGQAZABsAGQAdAB0AGgAcABkAHwAaAB0AHQAfAB8AHwAaAB0AHAAcABoAGQAgAB4AIQAgACMAIwAgACAAIgAiAB0AHAAcABsAGQAZABkAHQAdACQAIwAgAB4AIQAaABcAEwAPABIAFgATABYAFgAfACYANgAaABwAGwAVAAYAFAARABMAHAAXABAAPwBGAEcALwAsABYAAADw/9f/3P/o/wYAEAD8/yUAGABAAEkAOwA1ADUAt/+l/97/sP/h/woAFQAkADgALAAnACkAIQAlAAEA9v/v//j/AQDz/+z/CAAhAPb/9v/z/8f/0P/D/7L//f8LAO7/0P/5/9v/4P/K/8f/0v/t//X/5v/r/wAA5P/x/+v/6v/r/97/wP/u/8n/y/+m/6z/uf+j/67/8f/v/8D/zP/N/7H/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3P/j/9//5f/k/+f/7f/l/+H/5P/h/9b/3v/W/87/4v/k/+3/5P/m//P/6v/p//b/5//s/+r/6//v/+7/8P/w/+//+//2//b/8v/k/+r/6P/u/93/4v/f/+X/7f/e/+X/3f/n/+v/4P/X/9b/3v/p/+L/3v/d/+T/6//p/+r/7v/s//H/7//r//D/7//6//P/9P/1//P/+v/2//X/8v/v//D/7//0//f/7P/j/+//8f/y//D/6v/p/+//6f/j/+X/6//n/+H/4//q/+b/6//r/+D/4f/o/+H/5//j/93/6f/n/97/4//k/+T/6//h/+P/2v/o//L/3P/d//D/7v/z/+7/8//o/+//6P/m/+v/3//k/+n/5v/n/9f/3v/q/+n/6//g/93/4P/h/+H/2//Z/9j/5v/a/97/5//f/+r/4//n/+b/6P/m/+7/4f/k/+j/6f/t/+//7//x//D/8//v//j/9P/t/+//7//x//T/7//y//b/9f/4//z/8P/y//3/+P/0//X/8v/1//X/+//w//D/+v/y//n/8P/2//P/+//v//b/+P/0//v/+//1//n/+P/9//r//v////n//P8BAAAAAAAEAAQA//8CAAQAAgAFAAgAAQAFAAEABQAHAAAAAwAKAAcABQABABIABAAEABAAAgAIAAoAAgAKAAYABQAKABAABAAPABMACAATABAACgAUABYACAAQABUADwAYABAAFgAXABwAGgAXABgAGQAZABoAFwAaABgAHQAeABYAGwAbACAAHQAZABsAIAAbABwAGwAaACAAFAAcACUAFgAYAB8AHQAjABcAGQAcABwAGgAbABgAGAAcAB4AGwAcACMAGAAUACYAHgAfABkAJAAhACAAIAAiACIAIgAkACQAJwAjAB0AJAAmAB4AHgAfAB4AJQAiABwAFwAiAB4AIAAdABYAHAAkABkAFQAcABgAHQAcABcAIAAbABoAIQAdACMAIQAbAB8AIgAcAB8AIAAeACIAHgAgAB8AJQAjAB4AJQAiAB0AIAAjAB4AHwAeACAAHwAcABwAIAAaACMAHQAdABsAGwAfABoAHQAbABYAHwAZAB0AHAAaABwAHQAUACIAGgAXACEAGAAZACAAHQAbAB4AIQAfAB4AIgAcACcAIwAdACMAIQAkACEAIwAjACAAIwAkACYAIAAlACQAIQAgACcAIwAlACIAIgAmAB8AKgAjACYAKQAkACsAKQAnACgALgAsACgALQArACwAMwArACwANwAsADEAMgAvADYALgAwADYAMAAxADYAMQAyADQAMQAzADMAMwA0AC4ANAAvADIAMQAxADMAKgAxADMAKwAzADEALQAtAC0ALQAuAC4AKgAtACsALgAtACoALQAwACwAKgArADAALQArACsALQAtAC0AKwAqACsALQArACsALAAoACwAKgAsACkAKgAqACkAKwAnACwAJwAqACkAKQAnACsAKgAkACgAKQAmACkAJQAqAC0AJwApACoALAApACsAKQAqACsAKAArACoAKwAqACoALQArACoAKAAuACYALQApACcAKgArACsAKQAkACsALQAlACwAJAAnACwAJQAjACsAJwAkACoAIwAnACQAJQAlACYAIwAjACYAJAAjACUAIgAmACUAJQAkACgAJAAkACYAJAAoACYAIwAoACgAJwAnACcALAAmACcAKwApACQAKwAlACsAJgAoACwAJwAoACkAKAAmACkAJQApACYAJQAqACYAJwAoACQAKgAnACUAKAAlACUAKAAmACMAKAAmACYAJgAnACYAKAAkACUAKAAlACUAJwAoACQAJgAmACYAKQAlACkAJgAmACkAJwAlACoAJgAoACkAJQAqACYAKwAnACkAKAAqACkAKAAsACgAKgAoAC4AKgApAC8AKgAtADAALAAuAC4AMQAuADAAMgAsADMAMAAvAC8AMgAwAC4AMwAuADIALwAyADMALgAzADIALQAxADQAMAAxADIAMAAxADIAMwAxADUAMAAyADQAMQA1ADIAMwA1ADQAMgAzADMAOAAzADIANwA2ADMANgAxADYANAAyADgAMQAyADUAMwA0ADQAMQAzADIAMwAyADIAMgAxAC8AMwAwADIALQAxADMAKQAxADAALwAtAC0AMAAqAC4ALAAqACsAKwAtACoAKgArACsAKAAqACoAKQAqACUAKQAoACMAKwAnACUAKQAjACcAJAAjACUAJAAlACIAJAAhACQAIgAeACMAIgAdACAAIQAfAB0AIAAcAB0AHgAbAB8AGwAbAB4AGgAaABwAGwAYAB4AFwAYABoAFwAZABkAFwAVABkAFgAXABoAEgAXABkAEQAWABUAEgAXABQAFAATABQAFQAUABIAFAATABUAEgARABQAEQARABYADwAUABEAEQASABEAEwAOABUADgASABUADAAWAA8AEQATABEAEgAPABEAFAARAA4AEwASAA8AEgARABEAEQASABAAEgAPAA0AFgALABEAEwANABIADwARABEADgAQABAADwAQABIADgAQAA8AEAAQABAAEwAMABMAEAAOABIAEgAPABIAEgATAA4AEgASABEAEQAQABQAEgASAA4AFQARABMAEgASABMAEgATABMAFgAPABcAFQAPABYAFQAUABIAFAAXABAAFgAWABIAFgAVABQAFwATABIAGAAVABYAFgATABkAFAAUABkAFQAUABcAGQAVABYAFQAYABcAFQAXABcAFgAXABcAFQAXABkAFAAWABgAFgAWABgAEwAXABkAFQAWABgAFwAWABUAGAAXABcAFAAWABgAFgAWABkAGAAWABYAGwAWABcAGwAXABoAGQAXABsAGgAaABgAHQAYABoAHAAbABoAGwAcABsAGwAaABwAHQAbABkAHAAcABoAHgAcABkAGwAbABwAGQAeABkAGwAZABwAGwAaAB4AFwAcABwAGAAcABoAGwAaAB4AFwAYACAAFgAbABsAGAAaABwAGQAdABoAGAAdABcAHAAaABkAGgAcABoAGQAaABgAHgAZAB0AGQAZAB0AGQAbABsAHAAZABsAHQAbABsAHQAaAB4AHAAbAB8AGwAbAB4AHQAbAB8AGgAgAB4AGQAfAB0AHQAdAB4AHgAdACAAHAAdAB4AHQAgAB4AIQAdAB0AIwAcAB8AIAAeACIAHgAfACAAHwAfACAAIAAeAB8AIQAfAB4AIQAhABwAIQAeACEAHgAeACIAHQAeACEAHgAgAB4AIQAfAB4AIAAdAB0AIQAbAB4AIQAZAB0AHgAeABwAHgAbAB0AHwAZAB4AHAAaAB8AHAAaABoAHAAdABwAGwAaAB0AGgAcABsAGwAaABwAGwAaABsAGwAcABkAGgAYABsAGwAaABoAGAAbABkAGAAbABsAGQAVABoAGQAaABgAFwAYABkAGgAVABoAFwAYABgAFgAaABcAFgAZABgAFwAYABYAGAAXABUAGAAZABUAFwAVABcAFwAUABkAEwAWABsAEgAWABcAEwAZABQAFgAWABYAFQAUABYAEwAVABUAFQAWABQAEwAUABYAFQASABUAFAATABYAEwAVABIAFAASABQAFgAQABUAEgASABUAEgARABYAEgATABMAEQAUABIAEwATABMAEgASABUAEwARABMAEgATABMAEwARABMAEwAQABQAEwARABMAEwASABIAEgASABIAEgATABIAEwARABMAEQATABMAEwARABMAFAAPABMAEwATABIAEAAVABAAEgAUABEAEwAUABEAEwAUABEAEwATABIAFAATABMAEwASABMAFQAUABMAEwAUABUAEwASABgAEQAUABYAEwAVABUAEwAWABMAEwAVABYAEwAUABgAEAAWABYAEwAWABYAEwAUABcAFAAVABYAFAAVABYAFQAVABMAFgAWABUAFAAWABUAFQAVABIAFgAVABYAEwAUABUAFQATABUAFAASABUAEwASABgAEQATABYAEgAVABIAEgAUABQAEwATABMAEgATABMAEwAUABQAEgAQABUAEwATABMAFQATABMAEwAUABQAEwASABMAFQAVABEAEwAUABMAEwARABQAFAATABIAEQAUABIAFAASABAAEwASABEAEgASABEAEwASABIAEwARABEAEwARABQAEgAQABQAEgARABQAEAATABQAEQASABIAFQASABEAEwAVABEAEgAUABIAEgAUABIAFAATABIAFAAQABYAEwARABIAEwAUABQAEwASABIAFAATABMAEwAUABQAFAAQABYAEgATABcAEQASABYAEgAVABMAFAAUABMAEwATABgAFAAUABUAFAAWABMAFgAWABQAFQAVABYAFAAWABUAFQAVABkAFAAYABUAFQAYABQAGAAWABYAFwAWABoAFgAZABgAGgAZABUAGQAbABYAHAAZABYAHgAXABkAGgAYABsAGAAYABoAGgAXABwAGQAZABsAGAAaABkAGgAZABYAHAAYABoAGgAYABwAFwAbABkAGAAaABsAGgAZABkAGQAaABsAFwAbABkAGQAdABcAGgAcABoAGQAaABwAGAAbABoAGgAcABoAGgAaABsAGgAaABsAGwAaABwAGQAbABsAGwAbABoAGwAaABwAGQAaABwAGgAaABwAGQAaABoAGwAaABoAGQAbABwAGgAbABsAHAAaABsAGwAbABwAGQAbABoAGgAaABkAHQAbABgAGgAbABkAHAAZABkAGgAaABoAGQAYABoAGwAXABsAGQAXABwAGQAXABwAGgAXABsAFwAcABcAGQAYABsAGQAYABoAGAAZABoAFgAbABoAFwAXABoAFwAYABkAGAAaABgAFQAbABgAGQAWABgAGgAVABcAGwAWABQAGgATABoAFgAWABgAFQAXABcAFgAVABgAFgAWABUAFAAZABUAFQAWABQAFgAWABUAFgATABMAFwAUABQAFQAUABYAEwAWABQAFAATABQAFAASABQAFAAVABIAEwAVABEAFQASABUAEwASABUAEgASABYAEgAUABQAEQAUABIAFQATABQAEgAUABQAEgAWABIAFgATABYAFAATABgAEgAWABcAFAAWABYAFgAWABUAFwAUABkAFwAVABYAGAAWABYAGQAVABkAFQAXABoAFQAZABgAFQAYABsAGAAYABoAFgAZABkAGQAZABkAGAAYABoAFgAbABoAGQAZABsAFwAaABoAGwAZABkAGgAaABoAHAAXABwAGQAZAB8AFwAYABsAGAAbABsAGQAbABgAGwAYABoAGQAZABgAGgAZABoAFwAZABoAFgAZABoAGAAYABkAGAAYABkAGAAXABcAGAAYABYAFwAXABcAFgAXABcAGAAXABMAFwAWABMAFwAVABQAFwASABUAEwATABcAEQATABMAEgATABIAEwAPABIAEgAPABEAEQARAA8ADwAPAA8AEAAOABEADAAQAA8ADQANAA8ADgAMABAACgANAA4ACwANAAwACwAKAAwACwAMAAwACQALAA0ACQAKAAoACgAMAAoACgAKAAkADAAKAAkADAAJAAwACQAJAAwACQAJAA0ACAAKAAoACQALAAoACwAIAA0ACAAKAA0ACAANAAkACwALAAsACwAJAAsADQALAAoADAAMAAoADQALAAsACwAMAAsADQALAAkADwAIAAsADgAJAAwACgAMAA0ACQALAAwACgAKAA0ACgALAAsACwALAAoADgAJAAwACwALAAsADAAKAAwADAALAAwACgAMAAwACwAKAA0ADQAKAAoADwALAAwADAALAA0ADAAMAA0ADwAKAA4ADwAKAA8ADgANAA0ADAAQAAsADwAOAAwADgAPAA0ADwANAAwAEAAOAA8ADwAMABEADQAMABIADgANAA8AEAAOAA8ADgAQAA4ADgAOAA8ADwAPAA4ADgAPABEADQANAA8ADwANABEADAAPABEADAAPAA8ADgAOAA4ADwAOABAADAAPABEADQAPABEADwAOAA4AEQAPAA8AEQANABEAEAAOABEAEQAQAA8AEwAOABAAEQAQABAAEgAQABEAEAARABEAEgARAA8AEQASABEAEQASABAAEQARABEAEAAUAA8AEQAQABAAEgAQABMADgASABIADgATABAAEQAQABMADgAQABMADwARABEADwARABAADwATABAADwATAA4AEgAQABAAEAARABIAEAARABAAEgARABIAEAAQABQAEAARABEAEwARABIAEwASABMAEwASABQAFAATABQAEwATABYAFAAUABYAEwAXABYAEwAXABYAFQAWABYAFgAWABkAFQAWABgAFgAZABcAGQAXABcAGgAWABkAGgAYABoAGQAZABkAGgAZABoAGgAaABkAHAAZABkAHAAbABkAGgAZABwAGQAZAB0AGQAZABsAGgAaABoAGwAaABkAGwAZABkAGwAYABoAGwAYABoAGgAZABgAGgAXABoAGwAWABsAGAAXABwAFwAYABcAGAAYABkAFwAXABkAFwAYABgAFwAXABkAFgAWABcAFwAYABYAFwAVABgAFwAWABYAFQAWABcAFAAWABYAFQASABYAFQAVABUAEwAUABYAFQASABUAFAAUABMAFAAVABMAEwAUABQAEgATABIAFAATABEAEwATABIAEgARABMAEwAPABUADwARABYADgARABMADwASABAAEQARABEADwAQABEADgARABAADwATAA8ADgAPABAAEQAOABAAEAAOABAADgAQAA8ADwANABAAEAANABAADgAOABAADwANABEADwAOABAADwAQAA8AEAAQABAADwAQABEAEAAPABAAEAAQABEAEAAPABEAEAAQABIAEAAQABEAEQAQABAAEQARABAAEgARABEAEgAQABIAEAAUABEAEgASABMAEwAQABMAEgASABMAEQATABIAEwATABIAEwAUABIAFAATABMAFAATABQAFAAUABQAFAAUABQAFgAVABQAFAAWABYAFAAUABgAFAAVABgAFQAWABgAFAAYABgAFQAYABkAFgAYABoAFgAZABkAGAAYABwAFgAYABwAGQAZABoAGQAaABoAGQAZABoAGgAaABoAGgAbABoAHAAaABgAHAAbABwAGQAaABoAHAAZABwAGwAZAB0AGAAZAB4AGQAZABwAGQAcABoAGgAbABwAGwAaABwAGgAaABsAGwAaAB0AGQAYABwAGwAbABoAHQAbABkAHAAbABsAHAAaABsAHQAbABoAGwAcABwAGgAaABwAHAAbABoAGwAcABoAHAAZABoAGwAaABsAGgAaABoAGwAZABsAGgAbABkAGgAaABsAGgAXABsAGgAYABwAGAAaABsAGAAaABkAHAAYABgAGwAaABgAGgAaABkAGAAZABoAGQAZABkAGAAXABsAGQAXABgAGQAYABkAGgAXABkAGQAZABkAFwAaABkAGgAXABsAGAAZABwAFwAYABwAGQAZABoAGQAaABkAGgAYAB0AGwAaABsAGwAcABoAHAAcABwAHAAbAB0AHAAdAB0AHAAeACEAHAAgAB8AHgAgAB8AIAAfACAAIQAfACMAIQAiACIAJAAjACAAJAAmACIAJgAjACIAKAAiACUAJQAlACcAJQAlACcAJgAmACkAJgAnACgAJwAoACgAKAAoACcAKQAoACoAKAAqACsAJwAqACoAKQAqAC0AKgArACoAKwArACwAKQAsACsAKwAuACoALAAuACwALAAtAC4ALAAuACwALQAuAC0ALAAuAC0ALQAtAC8ALQAuAC8ALAAuAC8ALgAuAC4ALgAuADAALQAvAC8ALgAuADAALgAuAC4AMAAtAC8ALQAuAC8ALgAuAC4ALwAtAC8ALgAtAC8AKwAtAC0AKwAtACsALQAsACoAKwAsACoALAArACoAKwArACwAKQAnACwAKgAnACsAKQAnACoAKQAlACoAKAAmACgAJQApACUAJwAlACkAJgAlACcAJAAlACYAIwAmACUAIwAjACUAIwAiACUAIwAkACMAIAAkACMAIgAgACMAIwAfACEAIwAgAB8AIgAdACIAHwAfACEAHgAgAB8AHwAdACAAHgAfAB4AHQAgAB4AHgAdAB0AHgAeAB4AHgAcAB0AHwAeAB0AHgAeAB8AHAAfAB4AHgAdAB0AHgAcAB4AHgAfAB0AHQAgABwAHwAcAB8AHQAdACAAHAAdACAAHQAeACAAHAAgAB0AIQAfACAAHgAhACAAHwAhACAAIQAgACQAIAAhACUAHwAjACQAIgAkACMAJAAkACQAJQAjACYAJAAlACYAJQAmACQAJgAmACcAJQAmACgAJQAoACcAJQAnACoAJwAnACkAJQAoACgAJwAoACgAJwAoACkAJwApACgAKQAoACkAJwApACoAKgApACgAKgApACoAKgAoACwAKAAoAC0AKAAoACsAKQAqACsAKQArACgAKwAoACoAKQApACgAKgAoACsAJgAoACsAJgApACoAKAAoACgAKQAnACkAJwAnACcAJwApACYAKAAnACcAJQAmACcAJgAnACMAJwAmACMAJgAjACMAJQAhACQAIgAiACQAIQAiACIAIQAhACEAIQAfACAAIQAdACAAHwAgAB8AHgAfAB4AHgAeAB8AHAAdAB4AHQAbAB0AHQAbAB8AGQAbAB0AGgAcABwAGgAZABsAGgAaABsAGAAaABsAGQAYABkAGQAbABkAGQAYABgAGgAZABgAGgAYABoAGAAXABsAFwAXABsAFgAZABgAGAAZABkAGQAWABsAFgAYABsAFQAaABcAGAAYABgAGQAWABgAGQAYABcAGQAYABcAGAAXABgAFwAYABgAGAAXABYAGgAUABgAGQAVABgAFQAXABcAFQAVABgAFQAVABcAFAAWABYAFQAWABUAFwAUABUAFQAUABYAFQAUABYAFQAUABcAEgAVABUAEwATABUAFQATABIAFwATABQAFAATABUAEwAUABQAFgARABUAFQARABUAEwAUABMAEgAVABEAFQAUABIAEwAUABMAFAATABAAFQASABMAFAAQABYAEQARABUAEgARABQAEwARABQAEAAUABIAEgASABIAEgATABEAEQATABQAEQARABMAEgAQABMAEQASABQADwATABIAEQASABEAEgASABMAEAARABQAEAASABMAEQASABEAEwASABIAEwAQABMAEwARABQAEwATABIAFQARABMAFQASABMAFAATABQAEwATABQAFAAUABIAFAAVABIAFAAUABIAFAASABMAEwAVABIAEwASABMAFAARABUADwATABMAEAATABAAEgAQABMADwAQABIAEAAQABAADwAQAA8ADgAQAA8ADgAQAA0AEAAOAA0ADgAOAA4ADQANAAwADQANAA4ACwAMAA4ACwAMAAsADQAKAAsADQAKAAsACwAKAAwACwALAAsACwAKAAwACwAKAA0ACAAMAAwACAAMAAoACgALAAoACgAKAA0ACAAKAAsACQALAAkACwAJAAkACwAIAAoACgAIAAoACQAJAAkACQAJAAkACQAIAAgACgAIAAcACQAIAAcABwAGAAkABgAHAAgABQAGAAYABgAGAAUABwAFAAUABQAFAAMABgADAAQABgACAAMAAwADAAIABAABAAIABAAAAAQAAQAAAAQAAAABAAAAAQAAAAEAAQD//wIAAAAAAAAAAAAAAAAAAAD//wAAAAAAAP//AAD9/wAA/////////v///////v///wAA/v/7/wAA/f8AAP3//P/+//7//v/8//7//f/+//z//v/+//3//f/+//3//P/9//3//f/9//v//v/+//v//f/8//3//v/7////+//8/wAA+v/9//7/+v/+//v//f/8//3//P/7//7/+v/9//z/+/////v//P/7//3//f/6//7//P/7//7/+//8//3//f/6//7//v/7//3//P/7/////f/7/wAA/f/8/////f////3//v/+/////f/+/wAA/v/+/////////wAA///+/wAA///+/wAA/////wAAAAD//wAAAAAAAAAAAAAAAAAAAQAAAAEAAAACAAEAAQABAAIAAwAAAAIAAgACAAMAAQADAAEABAADAAIAAwAEAAMABAADAAQABQADAAQABAAEAAUABAAEAAUABgAGAAUABQAHAAcABQAFAAoABgAGAAkABgAIAAkABwAJAAoABwAJAAsACAAKAAwACAALAAoACgALAA0ACQALAA4ACwAMAA0ADAAMAA0ADAANAA0ADQAOAA0ADgAOAAwADwAOAAsADwAOAA8ADQANAA4ADwANAA4ADwANABAADQANABEADQANABAADQAQAA4ADgAPABAADwANABEADgAPAA8ADwAOABIADgANABEADwAPAA8AEQARAA4AEgAQABAAEQAPABEAEgASABAAEQASABIAEgAQABMAEgASABEAEgATABEAEwASABEAEwATABIAEwATABIAFAASABMAEwAUABIAEwAUABQAFAARABUAFAASABYAEgAVABYAEwAVABQAFgAUABMAFwAVABUAFgAWABYAFQAVABcAFgAWABcAFgAVABgAFwAVABcAFwAXABgAGAAWABgAGQAYABkAGAAZABoAGgAXABwAGQAZAB0AGQAaAB4AGwAbABwAHAAdABwAHQAcACAAHgAeAB8AHwAgAB4AIAAhACEAIQAhACIAIgAjACMAIwAkACcAIwAnACYAJgAoACcAKQAoACkAKgApACwAKgArACwALQAtACsALgAvAC0AMAAuAC4AMwAuADEAMQAxADMAMQAyADQAMwAzADYANAA0ADYANAA2ADYANgA1ADcANwA3ADkAOAA4ADoANwA5ADkAOAA6ADsAOQA6ADoAOgA7ADwAOQA7ADsAOwA9ADkAPAA9ADsAOwA8ADwAOwA9ADsAPQA9ADwAPAA8ADwAPQA7ADwAOwA8AD0AOwA7AD0APAA8ADwAOwA8ADwAOgA7ADwAPAA6AD4AOwA6ADsAPAA7ADsAOgA6ADsAOgA6ADsAOwA6ADoAOgA6ADsANwA6ADoANwA5ADcAOgA4ADYAOAA3ADYAOAA2ADYANwA3ADcANQA0ADcANgAzADYANQA0ADYANQAxADYANAAyADQAMgA0ADIAMwAyADQAMgAxADMAMAAxADEALwAxADEALgAvADEALwAuADEALQAwAC4ALAAvAC8ALgAsAC8ALgArACwALwArACoALQApAC0AKQAqACwAKQAqACsAKQAoACsAKQApACkAKAAqACcAKAAoACcAKAAnACgAKAAnACYAKQAnACYAKAAmACkAJgAnACcAJwAmACYAKAAlACYAJwAoACYAJgAoACUAJwAlACcAJgAmACgAJQAlACgAJQAmACcAJQAnACUAKAAmACgAJgAoACcAJQApACYAKAAmACkAJgAnACoAJgAoACoAJwApACkAKAApACkAKQAoACoAKgAoACoAKgAqACgAKwApACoAKAApACsAKAArACoAKAAqACwAKQApACsAKAAqACoAKQAqACsAKQAqACsAKQArACoAKQAqACoAKQAqACoAKwApACkAKwAqACoAKgApACsAKQAqACwAKQApACsAKgApACkAKQAqACcAKgAnACkAKQAoACcAKAAoACgAJgAnACkAJQAnACkAJgAmACYAJwAlACYAJQAlACUAJAAnACIAJAAkACQAIwAiACQAIwAjACAAIwAiAB8AIwAgAB8AIQAeACAAHwAeAB8AHgAeAB4AHQAdAB0AHQAbAB0AHAAaABsAGwAbABkAGwAaABkAGgAZABsAGAAZABoAGAAYABkAGAAXABoAFgAWABkAFgAXABcAFgAVABYAFQAWABYAEwAVABYAFAAUABMAFAAWABMAFAATABQAFAATABMAFAATABQAEgASABQAEQARABUAEAAUABIAEgATABIAEwAQABQAEAARABQADwAUABEAEgASABIAEgAQABIAEwASABAAEgASABEAEgARABIAEQASABEAEgARABAAFAAOABIAEgAPABIAEAARABIAEAAQABIAEAAQABIAEAASABAAEQAQABAAEgAPABEAEQAQABIAEQAQABEAEQAQABIAEAASABIAEQARABIAEwAQABAAFAARABMAEAATABMAEgASABMAFQARABQAEwARABUAEwAUABMAEgAXABEAFQAVABIAFQAUABQAFgATABMAFgATABYAFQATABgAEwAUABcAFQAUABYAFgAVABYAFQAXABUAFgAVABYAFwAWABUAFQAXABcAFQAUABcAFgAVABgAFAAXABgAFAAXABcAFgAXABYAFgAYABgAFQAXABoAFgAWABkAGAAXABgAGQAXABkAGQAXABoAGgAXABoAGgAaABkAHAAZABoAHQAaABsAHAAbABwAGgAcABwAHQAcABsAHQAeABwAHgAeABwAHgAcAB4AHQAfAB4AHQAdAB4AHwAcACAAGwAeAB8AGwAfAB0AHQAdACAAGwAcAB8AHAAdAB0AHAAdABwAHQAeAB0AGwAeABwAHgAdAB0AHQAeAB0AHAAdAB0AHQAdAB4AGwAcAB8AHAAdAB0AHwAcAB0AHwAdAB4AHQAcAB8AHgAcAB8AHgAdACAAHgAdACAAHAAfAB8AHAAgAB8AHgAfAB8AHgAeACIAHQAeAB8AHgAgAB4AIAAeAB4AIQAdAB8AHwAeACAAHwAfAB4AIAAfAB8AHwAeAB8AIAAfAB4AIAAgAB4AHwAfACAAHgAfACAAHgAeAB8AIAAeAB8AHwAfAB8AIAAdAB4AIQAcACAAIAAdAB8AHwAfAB4AHwAeAB8AHwAdACAAHwAeACAAHwAeAB4AHwAeACAAHgAeACAAHgAfAB8AHwAfACAAHgAfAB8AHwAgAB8AHwAdACEAHwAeAB8AHQAgAB8AHwAeACEAHwAbACEAHgAgAB4AHQAeACAAHwAdAB8AHQAfAB4AHgAgAB4AHgAfAB8AHgAfAB4AHwAfAB0AHwAgABwAHwAeAB4AHwAeACEAHAAeACIAGwAfAB4AHAAhAB0AHgAeAB4AHgAdACAAHAAeAB0AHgAfAB0AHQAdAB8AHgAbAB8AHgAdAB4AHQAdAB0AHgAcAB8AHgAcAB4AHQAdAB8AHQAcACAAHQAdAB4AHAAfAB0AHQAeAB4AHQAcACAAHQAdAB8AHAAdAB4AHQAcAB8AHQAbAB8AHgAcAB0AHgAdAB0AHAAcAB0AHAAdAB0AHQAcAB0AGwAdAB0AHQAbAB0AHQAaAB0AHAAdABwAGgAeABsAHQAdABsAHAAcABwAGwAcABsAHAAbABwAGwAcABsAGwAaABsAHAAbABoAGwAbABwAGgAaAB4AGQAaAB0AGQAbABsAGgAcABsAGQAbABsAGQAbAB0AGAAbABoAGQAaABsAGAAaABwAGQAZABsAGQAZABoAGQAaABkAGgAZABoAGQAaABkAGgAZABYAGgAZABkAGQAYABgAGQAYABgAGQAXABkAFwAWABsAFQAXABoAFQAYABcAFgAXABgAFwAWABkAFgAWABgAFgAXABgAFQAUABgAFgAWABYAGAAWABUAFwAXABcAFgAWABYAFwAYABUAFgAWABYAFgAUABcAFgAVABUAFQAWABUAFgAVABMAFwAVABQAFQAVABQAFgAVABQAFQAVABQAFQAUABYAEwATABYAFAATABYAEgAVABUAEwAUABMAFgATABIAFQAUABMAEwAUABMAFAATABMAFAATABQAEgASABYAEgASABMAEgATABMAEwASABIAEgATABMAEQASABMAEgAQABQAEQARABUAEAARABMAEQARABIAEgASABEAEgARABQAEgARABIAEgASABAAEgATABEAEgASABIAEQASABIAEgARABQAEAATABIAEQAUABIAEwATABMAEgASABUAEQATABMAFAAUABIAEwAWABEAFQATABEAFgARABQAEwATABQAEwASABQAEwASABUAEwATABQAEgAUABMAFAASABIAEwATABMAEwATABQAEQAUABMAEgATABQAEgATABIAEwATABQAEQATABIAEwAVABAAEwAUABIAEgATABQAEQATABEAEgAUABEAEwARABIAEgARABIAEQASABMAEQASABEAEgARABEAEQASABIAEAARABIAEgAQABIAEQAQABEAEgARABEAEAARABIAEAARABEAEgAQABAAEQAQABIADgARABEADwARAA4AEgAQAA4AEQAQAA8AEQAPAA8AEAARAA8ADgAPAA8AEAAOABAADgAOABAADwANABAAEAANAA8ADQAQAA4ADgAOABEADgANABAADQAOAA4ADQAPAA8ADgANAA8ADgAMABAADgAPAA4ADAAPAA8ADwAMABAADwANAA0AEAANAAwADwAMABAADQANAA8ADAAPAA4ADgAMABAADQAOAA4ADQAPAA0ADgANAA0ADgANAA4ADgANAAwAEAAOAA0ADgANAA8ADAAOAA4ADgANAA0ADwAMAA0ADgAPAA0ADQAQAAwADwANAA4ADQAOAA8ADAAOAA8ADQAPAA4ADQAPAA0ADwAOAA8ADQAPAA8ADQAQAA4ADwANABEADgAOABIADgAPABEAEAAPABAAEAAQABAAEQAQABEAEQAQABAAEQASAA8AEgASABEAEAASABEAEQATABIADwASABQAEQASABMAEAATABMAEQATABMAEgARABQAEgAUABQAEgAUABQAEgAUABMAFQATABMAFQAUABUAFAATABYAEwAUABcAEwATABYAFAAVABUAFAAWABQAFwAUABYAFgAUABUAFQAWABYAEwAVABcAEwAVABcAFQAVABUAFgAUABYAFQAVABUAFQAXABMAFgAWABUAFQAVABYAFQAWABQAFgAXABIAFwAVABQAFwAUABYAFAAVABcAFAAVABUAFQAVABUAFQATABYAFgATABUAFQAWABQAFQAVABQAFgAUABcAFAAWABYAFAAVABYAFQAVABcAFAAVABcAFQAWABYAFQAVABUAFQAWABYAFAAWABcAFQAVABUAFgAXABYAFgAVABYAFwAVABUAFwAVABgAFgAVABgAFgAVABkAFQAYABYAFwAYABgAGAAVABoAFgAYABkAFgAaABcAGAAYABgAGQAWABkAGgAZABgAGQAZABkAGQAZABoAGQAaABkAGgAaABgAHAAXABoAGwAYABsAGQAbABsAFwAaABsAGQAZABsAGQAbABkAGwAZABoAHAAYABsAGwAaABsAGwAbABsAHAAbABwAGgAcABwAGwAbAB0AHQAaABoAHgAbABwAGwAcAB0AGwAdABwAHwAbAB0AHQAbAB4AHgAdAB0AHQAfABwAHwAfABwAHwAeAB4AIAAdAB0AIAAeAB8AHwAdACIAHQAdACEAHwAeACAAHwAfACAAHgAgAB8AHwAfAB8AIAAfAB4AHgAhACEAHgAeACAAHwAeACAAHgAgACIAHQAgACEAHwAgAB8AHwAhACEAHgAgACMAHwAgACMAIAAgACAAIgAhACEAIgAgACIAIgAgACMAIgAjACEAJAAhACIAJAAiACMAJAAjACQAIwAkACQAJQAjACIAJQAmACMAJQAkACMAJQAkACMAJAAnACMAJAAkACQAJgAjACYAIgAlACUAIgAlACMAJAAkACUAIgAjACYAIgAjACQAIgAjACMAIgAjACMAIgAjACMAJAAiACMAIwAjACQAIgAjACIAJAAjACQAIgAiACUAIgAiACQAJQAiACMAJAAjACQAIwAiACQAJAAiACQAJAAjACUAIwAjACYAIgAlACUAIgAlACQAIwAlACQAJAAkACYAIwAkACUAJAAlACUAJAAkACQAJQAjACQAJAAkACUAJAAkACQAJQAkACQAJAAjACQAJQAkACMAJgAkACMAJAAkACUAIwAkACYAIgAkACMAJAAjACQAJQAjACMAJAAjACMAJQAiACQAJQAjACMAJAAjACMAJAAhACQAJAAhACUAIwAiACUAIwAiACMAIwAkACQAIgAjACQAIgAjACMAIwAjACQAIgAjACMAJAAkACMAIwAhACQAJAAiACMAIgAkACMAIgAjACUAIgAgACQAIgAkACMAIQAiACQAIwAiACMAIgAjACEAJAAkACIAIwAjACQAIgAjACIAIwAjACEAIwAkACEAIwAiACMAIwAhACUAIAAiACYAHwAjACMAIAAkACEAIgAiACIAIgAhACMAIQAiACAAIQAjACEAIAAhACEAIgAgACEAIQAgACIAIQAhACEAIQAfACIAIgAgACIAIAAgACMAIAAfACMAIQAgACEAIQAhACEAIQAgACIAIQAgACMAIQAgACIAIQAhACIAIQAgACIAIQAfACIAIQAfACIAIQAgACEAHwAgACAAIAAgACAAIQAfACAAHwAgAB8AIAAfACAAIAAeACAAHgAgACAAHQAgAB4AIAAgAB0AHwAgAB4AHgAeAB4AHgAdAB8AHQAfAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAcACAAHQAdAB8AHAAdAB4AHQAfAB0AHQAeAB4AHQAdAB8AGwAeAB0AHQAdAB8AGwAcACAAHQAdAB4AHQAeAB0AHQAdAB0AHgAdAB0AHgAeABwAHwAdABoAHgAeAB4AGwAcAB0AHQAbAB0AHAAbAB4AGQAbAB4AGgAaAB0AGgAdABsAGgAbAB0AGwAaABwAGwAaABsAGwAbABwAGgAYABwAGwAaABoAHAAbABkAHAAaABsAGwAaABsAHAAbABoAGgAcABwAGgAaABwAGwAbABoAGgAcABoAGwAaABkAGwAaABsAGwAaABsAHAAaABsAGgAcABkAGgAbABwAGgAYABsAGwAYABsAGQAbABsAGQAaABoAHAAZABgAHAAbABkAGgAbABkAGgAaABkAGgAaABkAGQAZABwAGQAZABkAGgAZABkAGwAYABgAGgAZABoAGAAZABoAGQAXABsAGAAXABsAFwAYABsAGAAYABkAGQAZABgAGAAXABoAGQAYABkAGAAZABcAGAAaABgAGQAYABgAGQAYABgAGQAYABsAGAAaABoAGAAaABkAGgAZABoAGgAZABwAGQAaABoAGwAbABkAGwAcABkAHAAbABkAHQAZABsAGwAbABsAGwAaABsAGwAaABwAGwAbABwAGgAcABoAHAAaABoAHAAaABsAGwAbAB0AGQAcABwAGgAaAB0AGwAbABoAGwAcABsAGgAcABoAGwAeABkAHAAcABwAGwAcAB0AGgAdABsAHAAcABsAGwAbABwAGwAbAB0AGgAbAB0AGwAcABwAHAAcABwAGwAcABwAGwAbAB0AGwAbAB0AHAAbABwAHQAcABwAHAAcAB0AGwAcABwAHgAcABwAHAAcAB4AGgAcAB0AGwAdABsAHQAdABoAHAAcABsAHQAbABsAHAAdAB0AGgAaAB0AHAAZAB4AGwAaAB0AGwAZABwAHQAbABoAGwAdABsAGgAbAB0AHAAaABwAGwAcABsAGgAcAB0AGgAbAB0AGwAaAB4AGwAdABwAGgAdAB0AHAAaAB0AHQAcABwAHgAcABoAHgAbAB4AHAAdAB0AHAAdAB0AHAAaAB8AHAAdAB0AHAAdAB0AHQAcAB0AHQAdAB0AHgAcABwAHwAdAB0AHQAdAB8AHAAeAB4AHQAdAB0AHgAdAB0AHgAeAB0AHgAfABwAHgAdAB8AHgAdAB8AHAAdACAAHAAeAB8AHAAfAB0AHwAeAB8AHgAfAB8AHQAhAB4AHwAeACIAHgAeACIAHgAfACEAIQAgACAAIQAhACEAIQAgACEAIgAgACEAIgAhAB8AIwAiACIAIAAhACIAIQAiACIAIAAhACMAIQAgACIAIAAiACAAIQAiACEAIQAgACIAIAAiACIAIgAiACMAIQAiACIAIgAgACIAIgAiACMAIQAhACQAIgAiACYAIgAhACUAIwAjACMAIwAkACIAIwAiACQAJAAiACIAIgAjACQAIAAhACMAHwAhACQAIQAhACEAIgAhACIAIQAiACIAIgAkACEAIgAjACIAIQAiACQAIwAkACIAIwAjACEAJQAiACIAIwAfACMAIgAiACUAIwAjACIAIgAiACAAIAAfACAAIAAdAB8AIAAgAB8AIAAgAB8AIQAgACMAIAAiACIAIAAhACIAIQAhACQAIQAjACUAIgAjACEAIAAgACEAIAAhACAAHgAgACAAIAAhACAAIQAiACIAIQAhACIAIwAiACIAJAAiACQAIgAhACMAIAAhACMAIAAjACEAIQAiACMAIgAgACQAIAAhACIAHgAiACAAIgA=" - } ] - }, { - "name" : "model", - "matchingType" : "ANY", - "headers" : { - "Content-Disposition" : { - "equalTo" : "form-data; name=\"model\"" - }, - "Content-Type" : { - "equalTo" : "text/plain; charset=utf-8" - } - }, - "bodyPatterns" : [ { - "equalTo" : "gpt-4o-mini-transcribe" - } ] - }, { - "name" : "response_format", - "matchingType" : "ANY", - "headers" : { - "Content-Disposition" : { - "equalTo" : "form-data; name=\"response_format\"" - }, - "Content-Type" : { - "equalTo" : "text/plain; charset=utf-8" - } - }, - "bodyPatterns" : [ { - "equalTo" : "json" - } ] - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "audio_transcriptions-30da9491b68f.json", - "headers" : { - "x-request-id" : "req_b2a3d6d213d04bbd987967223a96ac0a", - "openai-organization" : "braintrust-data", - "CF-RAY" : "a46f1a210daba37d-SEA", - "Server" : "cloudflare", - "X-Content-Type-Options" : "nosniff", - "x-ratelimit-reset-requests" : "6ms", - "x-openai-proxy-wasm" : "v0.1", - "cf-cache-status" : "DYNAMIC", - "x-ratelimit-remaining-requests" : "29997", - "Date" : "Wed, 07 Oct 2026 18:52:18 GMT", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray" ], - "set-cookie" : "__cf_bm=WWuy4UjGyUGK4jaJlDb.3FWWe.VKtmHrdvSJv_kkks8-1791399137.44759-1.0.1.1-Yq8b8soFBpYz9QMZ_EyMGo.mh3B3D5tuATIiT17n9q254eyAgv5srfJYiH.dfLOlP_ZTNniE948QlKIH0JIwTE0R1U5uZ1T7QCWjCC17CVIbX8bBJEhNB7x1xPZjuRw6; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Wed, 07 Oct 2026 19:22:18 GMT", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", - "x-ratelimit-limit-requests" : "30000", - "openai-version" : "2020-10-01", - "openai-processing-ms" : "340", - "alt-svc" : "h3=\":443\"; ma=86400", - "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", - "Content-Type" : "application/json" - } - }, - "uuid" : "e5f62e3d-268b-3fd3-9fad-34c2162df289", - "persistent" : true, - "insertionIndex" : 66 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/audio_transcriptions-388cd2791495.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/audio_transcriptions-388cd2791495.json new file mode 100644 index 00000000..d06f9b8d --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/audio_transcriptions-388cd2791495.json @@ -0,0 +1,87 @@ +{ + "id" : "49eef658-ef99-374b-8811-6a73a1f80f28", + "name" : "audio_transcriptions", + "request" : { + "url" : "/audio/transcriptions", + "method" : "POST", + "headers" : { + "Content-Type" : { + "matches" : "(?i)multipart/form-data(?:\\s*;.*)?" + } + }, + "bodyPatterns" : [ { + "anything" : "anything" + } ], + "multipartPatterns" : [ { + "name" : "file", + "matchingType" : "ANY", + "headers" : { + "Content-Disposition" : { + "equalTo" : "form-data; name=\"file\"; filename=\"speech.wav\"" + }, + "Content-Type" : { + "equalTo" : "audio/wav" + } + }, + "bodyPatterns" : [ { + "binaryEqualTo" : "UklGRv////9XQVZFZm10IBAAAAABAAEAwF0AAIC7AAACABAAZGF0Yf////8BAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAIAAQABAAEAAgABAAIAAgABAAIAAgACAAIAAgACAAIAAwACAAMAAgACAAMAAgADAAMAAwACAAMAAwADAAQAAwADAAMAAwADAAQAAwADAAQAAwADAAQAAwADAAMAAwACAAMAAwACAAMAAgACAAIAAgABAAIAAgABAAIAAQABAAEAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA/////wAA/////////////////v/+/////v/+//7//f/+//7//f/+/////f/+/////v///////////wAA//8AAAAAAAAAAAAAAAABAAAAAQABAAIAAgACAAIAAwADAAMABAAEAAUABQAFAAYABgAHAAgACAAIAAkACQAJAAsACwALAAwADAAMAA0ADQAOAA4ADwAOABAAEAAPABAAEAAPABAAEAAPABAAEAAOABAADgANAA8ADQALAA0ADAAJAAwACAAJAAkABgAIAAUABQAFAAQAAgADAAIAAAACAP////8AAP3//f/+//v/+//7//n/+f/5//f/9//2//b/9v/0//T/9f/y//T/8//y//L/8v/x//L/8v/x//L/8f/y//L/8//y//X/8v/0//b/9P/4//f/+P/6//v//P/9/wAA//8CAAIAAgAIAAUACgALAAsAEAAPABMAEwAVABgAGAAcABwAHwAfACIAJAAkACcAKQAoACwALAAtAC8AMQAwADMANAA0ADYANgA2ADgAOQA4ADsAOgA7ADwAPAA9AD0APwA8AD8APwA8AEAAPgA+AD8APgA+AD0APgA8ADwAPAA5ADoAOAA3ADYANQAzADIAMAAtAC0AKQAnACUAIwAfAB4AGgAWABUAEAAPAAoABwAFAAAA///7//f/9P/v/+3/6f/l/+T/3//c/9r/1f/T/9D/zv/K/8n/xf/D/8H/vv+9/7r/uv+3/7f/tf+z/7T/sf+x/7H/r/+w/6//rv+x/67/sf+w/7H/s/+z/7f/tv+4/73/uv/A/8L/w//J/8r/z//S/9X/2//e/+T/6P/t//P/9//+/wEACAAOABIAGwAeACcALAAxADoA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+P/2/wAA+v/3/wAA+v8AAP/////7/wUAAAD8/wQAAwAFAP3/BwAFAAUABAAHAAMADgABAAUAEAAGAA8AAwAJABAADQAMABEABQASABAADAARAA0AEAATAAoAEwAUABQAEAAQABYAFwASABQAEgAXABkAGAAUABYAGAAZABkAEwAeABcAGQAZABYAHAAaABwAGAAXACYAFQAZAB8AGAAdABwAGwAbAB4AFwAiABsAGwAcABUAGwAjABYAGAAaABYAHAAVABkAFgAaABYAFAAVABoAFQARABgAEwATABgADgAUABUAEgASAA8AFgAPABIAEwAPAA4AFQALABIACgAMAA8ADgAKAAoABwAMAAUACwAIAAMABQAFAAUACAD6/wgAAwD7/wkA+v/9/wgA9f/+/wAA+v/8////+P/9//T//f/2//n/+f/v////9P/y//r/7v/3//b/8f/y//b/8P/t//H/8v/y/+//6v/v/+7/7//s/+z/8P/p/+r/7//t/+X/7v/q/+j/6f/p/+7/5f/p/+b/5v/q/+n/4f/t/+X/4//p/+T/5v/n/+L/5P/n/+P/4//l/+H/4//m/+D/5P/l/+D/4v/k/+L/4v/h/+H/5v/g/+D/5//f/+T/4v/g/+X/4//e/+v/4P/h/+r/4P/n/+b/4//o/+r/5P/p/+f/6//q/+n/6v/t/+v/6v/v/+3/7//s//P/8P/y//T/7v/1//j/8v/3//f//v/4//j/AQD6/////v///wMAAgAAAAEACwACAAcABQAKAA4ABQAPAAsACAASABEADwAUAA8AFAAXABcAFQAZABkAHgAXAB8AIAAfACAAIwAhACkAJAAiACsAKAAsACsALgAxAC4AMwAuADYANAAvAD0AMAA1ADgANgA5ADkANQA8ADcAOwA5ADkAPQA6ADkAQgA3AEIAOQA8AEQANQBAAEAAPgA/ADwAPwA+AD8APwA7AD4APwA8AD4APQA9AD8AOAA8AEAAPQA9ADcAOgA+ADgAPwAzAD0ANwA5ADoANwA0ADgANgA3ADQANQA0ADUAMwAtADMANAAsADEAMAAtADAALQAsACoALgApACsALAAmAC0AJwAlACkAJgAkACkAIgAiACQAHAAjACMAHwAaAB8AGQAeAB4AFAAcABgAFgAZABcAEgAXABIAEwANABYAEQAQAA4ADQAMABIADAAGAA0ACQAHAA0ABAAFAAYAAwAFAAUAAAAAAAQAAAD+/wIA+f8GAPf//P/7//z//f/1//v/9f/7//T/9f/4//P/8v/2//H/8f/z/+7/9v/r/+z/9P/m//L/7f/q//D/5//w/+v/6v/p/+3/5//t/+3/5P/v/+X/6v/q/+r/6//m/+r/6P/r/+n/7P/o/+r/6//s/+z/6v/s/+j/7P/t/+z/7P/s/+r/7v/s/+7/6//v/+//6v/w//H/8//q//T/8f/u//b/8//x//P/8//6//L/+v/2//X/+v/3//7/+f/6//7//P8AAP7/AAAAAAQAAAAAAAcABAAFAAcACAAIAAkACQALAA0ADQAOAA8AEAARAA8AEwAQABYAEwAVABcAFAAXABoAFgAaAB4AGAAeABsAHgAeAB0AIQAfACIAHwAgACQAIgAkACQAJgAkACQAKAAnACcAKgAnACwAKQAqAC0ALgAtAC0AMQAuADEAMAAxADEAMwAyADUAMQAzADYANgA0ADMANgA4ADUAOAA2ADUAOQA1ADcAOAA7ADYAOgA2ADcAOgA4AD0ANAA7ADoANwA6ADcAOQA6ADoANwA2AD4ANQA3ADoANwA3ADkANgA6ADoANAA3ADYAOQA2ADMANwA4ADIANQA1AC8AOQAvADQAMgAwADMAMAAvADIAMQAtADEALgAtAC8ALQArAC0ALgAsACsALAApACsAKwAoACsAJwArACgAJwApACcAJwAoACYAJQAmACgAJQAlACMAIwAmACUAIwAiACEAIgAhACIAIAAgACEAHgAeAB4AIAAcAB0AHQAcABoAHAAaABkAHAAYABYAGQAXABgAFQAVABgAEwAUABUAEgAUABMAEgASABAAEQARAA4AEQANAA8AEAAIAAwADQANAAoACwAIAAoACwADAAwABAAFAAcAAwADAAMAAQADAAMAAAAAAAEAAAD9/wAA/v8AAP///P/8//3//v/8//r/+v/5//r//P/4//n/9//4//b/9v/2//n/9f/z//b/8v/3//X/8f/z//T/8//y//L/9P/w//L/8f/w//L/8P/x//H/8f/v/+//8P/w/+//7//w/+//7//v//D/8f/s//L/7P/u//X/6f/v//D/7v/v/+7/8P/t/+//7v/t//D/7f/u/+v/8P/t/+z/7P/s/+7/7//q/+7/7P/s/+//6v/t/+3/7P/r/+3/7f/r/+3/6v/s/+7/7P/s/+3/7v/t/+7/7P/v/+7/7//u/+//7//u//L/8P/w//L/8f/x//L/8v/z//P/9P/y//X/9f/z//b/9v/0//f/9v/3//j/+P/3//j/+//4//r/+f/7//v//v/6//v////5/wAA/f/+/wAA/v8AAP//AQAAAAAAAAACAAMAAAAFAAMAAgAEAAMABAAGAAUAAwAHAAUABwAHAAYACAAIAAgACAAHAAsACAAHAAsACQAKAAsACQANAAoACgALAA0ACQAMAAwACwANAAsADQANAA8ACgALABAADAANAA0ADQANAA4ADAANAAwADAANAA0ACwANAA0ADQALAAkADQAMAAwACgALAAsACwAJAAwACgAJAAwABwAJAA0ABgAHAAsACAAKAAUABwAHAAgABQAFAAcABQAGAAUABAAGAAQAAgABAAUAAgACAAIAAgABAAAAAQABAAAAAAD/////AAD9//3////7//z//f/6//z//f/6//v/9//6//j/+v/3//f/9v/5//f/9f/1//X/9v/z//X/9P/0//P/8v/z//L/8//x//D/8v/w//L/8P/w/+//7//v/+3/8P/t/+3/7//t/+z/7f/t/+v/6//s/+z/6v/r/+r/7P/o/+3/6f/p/+r/6f/q/+j/6//n/+j/6f/p/+j/5//o/+j/6v/m/+r/6f/n/+v/5//n/+v/6f/o/+n/6//p/+j/6//n/+3/6f/p/+z/6P/s/+r/7P/q/+v/6//r/+z/7P/s/+z/7P/r/+3/7P/t/+3/7P/s/+3/7v/s/+3/7P/t/+//7P/t/+z/7//u/+r/7f/v/+z/7//r/+z/7//u/+z/7f/u//D/7f/s/+//7v/t/+7/7v/v/+//7f/t/+//8P/u/+//7//v//H/7//v//D/7v/w//D/7//w//H/8P/v/+7/8P/v//H/8P/w/+//7//x/+7/8f/x//D/7//v//L/7//w//H/8P/y//D/8P/w//H/7//w//H/8f/x//H/8P/x/+//8f/x//D/8f/u//L/8P/v//H/7//x//L/7//v//D/8P/v/+//7//x//H/7//w//D/8v/v//L/8P/x//P/8P/y//L/8f/y//L/8//0//H/9P/1//L/9//0//P/9v/2//f/9f/1//j/9//1//r/9//3//z/9//3//v/+f/4//z/+P/9//j/+v/7//3/+//6//3/+v/+//v//P/8//3//f/7/wAA+//9//7//P////3//P/+//v//v/8//z//f/7//v//v/7//n//f/5//z//P/6//v/+v/6//n/+//4//v/+f/4//n/+P/6//f/+f/1//f/+P/2//f/9v/1//T/9v/1//P/9v/z//b/8//1//T/8//0//L/9f/y//L/9P/0//L/8//0//L/8v/y//T/8f/z//P/8f/x//T/8f/y//L/8f/z//H/9P/x//L/8f/0//P/8v/0//L/9P/0//T/9f/0//f/9f/2//j/9//3//j/+f/5//r/+v/6//3//P/8//7//v/+//3/AgD//wIAAAACAAQAAwAEAAYAAwAGAAgABwAJAAgACgAKAAsACwAOAAwADgAPABIAEAASABAAFQAUABUAFAAXABgAGAAXABkAGgAdAB0AHAAdAB4AHgAfACIAHwAgACEAIQAkACEAIwAjACMAJAAkACYAJAAnACUAJgAmACkAJwAmACgAJQApACkAKAAnACcAKAAnACkAJwAnACcAKAAnACUAJwAnACYAJQAlACcAJgAmACQAJAAkACAAIwAhACIAIQAgACAAHgAdAB8AGwAcABsAGgAbABkAGQAUABcAFgATABMAEwATABIAEAAPAA4ADgANAA0ACQAMAAsACQAHAAgACAAFAAcABAADAAUAAgABAAIAAAAAAAAA/v////z//P/9//z//P/5//f/+v/6//j/9//2//f/+f/1//b/9v/0//f/9P/z//b/9P/y//b/8v/z//L/8P/0//T/8f/v//T/7//z//P/7//0//H/8f/x//P/8v/w//H/8//z/+//8f/x//H/8f/x//D/8f/x/+//9P/w/+//9P/s//P/9f/v//L/8v/x//T/8//y//X/8v/1//b/8//3//X/9//0//f/+v/1//f/9//3//j/+v/6//f/+//6//r/+//7//n//P/8//r//v/6//v//v/+/////P8AAP7//v/9/wAAAAD//wAA//8AAAAAAAAAAAAAAAACAAAAAgABAAAAAgACAAMAAwAEAAEAAwAFAAYABQADAAkABgAGAAcABgAGAAgACQAGAAkACgAIAAkACQAJAAsADAALAAkADgAJAA4ACgANAA8ADQAMAA8ADAAPABAADQAQAA4AEgAQABAADwAQABEAEAARABUADwATABMAEwAUABMAFAAVABQAFQATABYAFAAWABcAFQAWABcAFgAVABcAFwAYABYAFgAYABcAFwAWABcAGQAXABkAFAAaABgAGAAYABYAGQAXABgAFwAZABUAGgAXABYAGAAUABkAFgAYABYAFQAVABUAFQAWABUAFQAUABYAEwAVABQAEwAUABMAEgATABMAEgASABIAEAAQABEADgARAA0ADgAPAA0ADgAMAA0ACwALAAsACgALAAoACgAJAAkACgAIAAgACAAGAAcACAAGAAYABQAEAAUABQADAAQABAADAAMAAQABAAMAAAABAAAAAQABAAEAAQAAAAAAAAACAAEAAAAAAAAAAQAAAAIAAAACAAMAAAACAAAAAwABAAIAAgADAAEAAQABAAQAAQADAAEAAgAEAAIAAwACAAUAAgABAAQABAAEAAMAAwADAAQABQADAAMABAAEAAQABAADAAMABAADAAMAAwADAAMABAACAAMAAgADAAIAAgABAAEAAQADAAIAAgACAAAAAgAAAAAAAgAAAAAAAAD//wAAAAAAAP/////+/////v/+//3//f/8//v/+f/5//v/+f/4//j/9f/3//f/9P/1//P/8//0//P/8v/w//D/7//u/+3/7P/v/+3/7P/s/+r/6v/q/+n/5v/l/+T/5P/k/+P/5P/h/+H/4P/g/+H/3v/e/93/3f/d/93/3P/a/9r/3P/d/9v/3P/a/9n/3P/a/9v/1v/Z/9f/2P/X/9n/1//Y/9j/1//Y/9f/2v/W/9j/2P/Y/9j/1P/V/9r/2f/Z/9n/2//b/9n/2//Y/9z/2//a/93/2v/d/97/2//d/93/3f/d/97/3P/f/93/3//g/9//4//h/+L/4//k/+b/5v/n/+n/6f/r/+v/7v/s/+3/7f/v/+//8v/0//L/9v/y//T/9f/2//b/9//3//f/+v/5//n/+//3//z//v/8//z//f/5//r/+//7//z/+f/+//3/+/8CAAIAAgAFAAEA//8AAAAAAAD///7/9////wMA/v8DAP///f8EAAgABwD7//X/8f/r//n/+//4//T/AADz//r/AAD3/wYAAQD7//3/7//3/+z/9P/v//f/9P/y//j/BADn/wIA6P/6//j/AADl/9b/7//m/+P/HgAOACUA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vf/E/9z/4f+b/63/1//Q/97/x//p/xUACwD+//L/7f8mACsA+//u//D/BAAKAPX/6P/d//n/4v/K/9L/1f/O/9r/2v/p/+X/9P8WAAgA7P/t/xgAHQARAPb/+/8BAA8AGQD7//7/FgAJAAgA7v/t//X/BQDw/+P/2v/2/xMABgDt/+b/BwAaAP7//v8DABQANAAuACwAMABJAGEAUABKAEMAVgB8AGoAQwA6ADAANAA/ABQADQAmAB8ALAAeAC8AQQBUAF8APgA/AEQAQQA8ACEAEQBGAEgAKwBGAFwAYABzAHsAbgCQAJMAcgBsAHAAcgBmAFwAUABJAF0AWgBeAGUAbgB7AIAAhgBiAFIAbgBwADQALwAmADUAOQAbAA8ANwBaAFwAOQA9AGcAYgB1AE4APABDAFQASgAuABQAGAAxAC0ADQAAACAALgATABAACgA3ACoADQDu/wwALAAoABMAHABAAE8ASwAzABsASABKAEEAIgALADEAQgArAAAA9v8iADcAFQD9//3/DwANANn/zf/r/+X/6P/s/9j/6P8KAAsABQATADIARwBPADkASABoAIcAagA+ADsAWABQACoACgD+/xUACADo/9r/8/8NAAoADAACAAcALwA+ACMAFwAjADEAIwAVAAQADwAWACYAHQAoACkANQBAADkAPgApACMAKQAcABIA+//x//b/7P/d/9n/1v/s////9v/3/wMAIgArAB8ALwAmADEAPwAeACcALwArADEAIgAUACQAMAAjABMAGAAYAAYA+P/q/+P/3v/T/93/1//d/+r/9P8CABEAFQAjACsANgA6AEYAPQA7AEYARgA5ACsAOAAzAC0AKgAmACQALwAJAA4AGQALAAgA+//8/wcA7v/h/+P/5v/u/+T/4//3/wQACwADAAEAHAApACsAGQAjADQAKAAdABgAEQATABAA+P/m/9r/3//e/8X/u//N/9P/4v/Y/9f/9P8DAAcACAAHACcAHAAdACEAGAAcABkACwAFAPz/9P/5/+j/3f/T/9H/0f/f/8v/w//L/9H/0P/D/77/yP/U/8f/xv++/8z/yP+4/7v/vf+6/7//u//M/9j/2f/b/+j/+v/7//v//v/5//f/9//h/+P/1//Q/9L/zf/I/8D/wv/K/8L/yf/K/8H/v/+3/7L/rP+j/6j/rP+d/6r/pv+o/73/s/+0/8b/yP/F/8H/x//G/73/w/+7/7T/tP+o/6//pP+e/6r/oP+u/7X/qv+0/7//t/+7/8P/yP/M/8//yv/S/9X/2//P/9L/2P/H/8P/x/+4/6T/s/+s/5f/k/+Z/5j/hf9+/3n/eP+E/37/cf+J/4P/hv+V/5z/rP+6/77/0f/f/9n/3f/j/9P/1P/D/67/tf+y/5n/i/+S/5D/i/+P/4b/mv+c/5z/pf+p/6j/q/+w/63/sv+x/7r/r/+0/7//uf/J/9L/0P/e/+f/3f/q/+P/6f/n/9z/0v/Q/8L/u/+0/6n/o/+d/6H/mP+a/6H/n/+s/7L/tf/G/9f/7v/p//D/AQADAAkADAALABAAEAADAPz/AwDz//D/6f/o/+X/1//k/9v/xf/X/9n/z//V/83/1v/n/+f/4//r//b/AAD7//v/BQARAAwACQAQABEADAAOAAsACwAGAAMADAAHAAAACAAFAA0ABQAEABEACAAEAAkAAAAPAA4ACgANAAsAHQAYABUAFAAXABwAHgAXABMADgASABEA/P8AAAMA/f/7//T//f///wMABQAAAAcADwAOAAsAEgAbAB0AHAAhACsAKwArACoAKwAqACQAKwAgABwAIQAaABcADwAJABEADwAKAAMACAAOAAoACwAEAAoAEwANAAkAEQATABQAEgARABEAFwAVABYAGQAWABkAFgAXABYAEQARABYADgAKAAIABAAFAAMAAgAAAAcACAARABIADAAZABwAFwAZABgAEgAYABMAEgALAAkADgAKAAIAAwADAAsACQAGAAgACgANABEACQAHAAYABQAIAAAA+//6/wEA/f/8/wEA/v8MAAIAAwAFAAgADAADAAQABQADAAAABQADAPz/AgAHAAIAAAAFAAIACQAEAP//BwD9/wUABAD+/wMAAAADAAAA+P/9//r/9f/+//T/8P/2//P/9//z//r/AAD1/wAAAgADAAYAAAADAAMABgD///z/+/////j/9//1//n/+//4//j/AAD7//////8AAAEAAAACAAUAAQD8/wIA///6/wAA+//6//X/9//7//D/+f/6//L/+f/6//r/+v/4//v////8//3/AAABAAcAAAADAAkABgAAAAgABwAGAAoAAwAEAAQABQAFAAIAAwADAAMAAAAEAAEA/f8AAAMAAAABAAcAAAALAAwABwANAAoADwAPAAwADgAPABIADAAOABIAEAAUABkAEwASABcAHAAWABUAGQAYABgAGgASABUAGQAVABIAFwARABQAGAATABUAGAAbABwAGAAeAB8AIQAhABsAIgAlAB4AJQAgABsAIwAfABwAHAAfABsAHQAYABoAGwAdACAAFwAeAB0AGQAhABsAHAAgACIAHgAgACYAIQAiACYAIgAjACcAIwAnACgAIgAnACMAJwAjACIAJAAlACIAIwAiACEAKAAjACYAJAAlACgAJwAnACYAKAAlACQAKAAlACcAJgAlACsAKgArACsAKgArACwAKwApACsAKQAtACoAJgArACcAKAApACgAKQAnAC0AJQAnACkAKAApAC0ALAAsACgAMAApACsALAArACsALAAoACsALgApACoALgAoACoALAAsACcALwApACMAKwAnACgAJgAnACwAJgAnACwAKgApACkALAAqACwAKQApACUAKAAjACIAJwAaAB8AIgAgABoAGwAbABwAGwAYABsAFQAYABkAFgATABAAFQAXABIAEwAQABYAEgAVABMAFQAUABgAFgAVABUAFgAYABAAFAASABEAFQAPAA4ADQAPAAsACwAOAA8ADAAHAAsACgAOAAgACQALAA0ABwAFAAYABQAGAAMAAAAGAAQAAgAHAAUAAwAEAAMAAwABAP7/AAAAAPz//P/6//7/+//7//3/9f/8/wAA+P/9//7//P8CAPz/AAD+/////v/6/wAA9v/9//r/+//7//f/+f/6//v/+v/3//v/+f/7//r/9//6//P/+//3//b/9//4//n/+P/5//r/+v/7////+v/7//3/+v/+//n/+//+//z/+//7///////9//////8AAAAAAAD+/wAAAQD9/wMAAAD//wAAAAAAAP//AgACAAEAAgAFAAAABAACAAMAAwAEAAQACAABAAUABwABAAcABQAFAAYABAALAAMACAAJAAcACQAKAAcACgAMAAgACQALAAkADAAOAAsADQAOAAwAEAAOAAoADgAOAA0ACgALAA8ACgAMAA4ACwAOAA4ADwAQAAwADwAQAA4ADAAOABIACgAPAA0ADQARAA8ADQAPABIADwARAA4ADQAPAA8ADgAMAAsADQANAA4ABwAQAA0ACwAOAAkADQANAAsADgAMAAsADAAKAAoACQAHAAgABwAHAA4AAwAEAAsABwAJAAQAAgAHAAYAAgAEAAIAAgACAAMAAAAEAAcAAQAAAAoAAgAEAAMABQAEAAEAAQAEAAUAAAABAP//BAADAPr/AAAAAP3/AAD4/wAA/P/9//3/9//7//n/+v/3//H/+v/4//P/9P/2//L/9f/z//D/9v/w//H/9f/v//X/8f/x//T/9P/y//T/8f/y//H/8P/v/+//8//x/+3/8P/z/+//7//y//D/8f/v/+7/8P/w/+7/7v/u//H/7//t/+z/7//w/+3/7//u/+7/8f/u/+7/7//t//D/7//p//L/7P/s//L/6v/t//D/7v/u/+7/8P/u/+7/7//u//L/7//v//D/8f/y//D/8v/0//D/9P/0//X/8//4//X/8//2//f/9v/4//T/9//5//T/+f/3//r/+f/4//7/+v/9//7///////3//f8BAP3/AAAAAP7/BQAAAAEAAgADAAUABAABAAYABgADAAUABgAFAAcABQAGAAUACgAHAAYACwAHAAkACwAIAAoABwANAAkABwALAAoACwAKAAgACgAMAAwACAAMAAgADAANAAYADQALAAkADAAMAA8ACwAOAA4ADgAQAA8AEAAOABMAEQAPABIAEAASABMAEgAUABAAFQARABEAFAAQABIAEAAQABEAEQAQABMAEQANABAADwAQAA0ADwAQABMADwARABMAEAAQABEAEgARABIADQATABAAEQAQAA4AFQASAA4AEwATABEAEwARABEAEQASABIADgAQABEAEwAPABIADgASABMAEQAPABMAFAAQABMAEQAUAA8AEAARABMADwAQABIAEAAQABAADwAQABEADwANABEAEAAPAA8ADwATAA4ADwARABAAEgAPABAAEgARAA4AFAAQAA0AFAAMABMAEAAQABQADwARABEAEQAOABMADwASABIADwAUABEAEwASABEAEwASABIAFAAQABEAFgASABIAFAAVABUAFAAXABUAFQAUABUAFwAUABYAFgAZABUAFwAZABcAGgAXABoAGwAZABwAGQAbAB4AGgAdABsAGwAfABsAIAAeACAAHgAfACMAHgAkACAAIgAjACUAJAAkACcAJQAmACkAKAAoACkAKgAqACsAKwApACwALQAqACsALgAsACoALgAsADAALQAuADEALgAyADEALQAvADMAMgAwADIAMAAyADIAMwAxADIAMgAyADQAMQA1ADMAMgA2ADMAMgAzADIANgAyADIAMwA0ADIAMwAwADYAMgAzADcAMAAxADQAMQAzADIAMAAyAC8AMQAwADEAMQAvADAAMAAxAC8ALgAwADIAKwAvADAALgAsAC4ALwAsAC8ALAAtACwALAAuACkALAAsACwAKwAqACwAKgArACgAKQAqACUAKgAoACUAKgAlACcAJAAkACcAJAAlACMAIwAjACMAIwAeACIAIQAeACEAIAAgAB0AHgAcAB0AHgAcAB4AGgAdABwAGgAbABsAGwAZABwAGAAYABoAFgAZABgAFgAWABcAFgAYABcAFAAWABgAFAAUABQAFAAWABUAEwATABQAFgATABMAFgASABUAEgARABUAEgARABYAEQASABMAEgAUABIAEgARABUAEAATABQAEAAUABAAEgATABMAEgAQABMAFAARABIAEwATABMAFAAUABMAEwAUABIAFgAUABAAGAAPABMAFwARABUAEwAVABYAEAAWABUAEgAUABcAEwAWABMAFgAXABUAGQAUABYAFwAWABcAFwAXABgAGgAZABgAFwAaABgAGAAYABsAGQAYABYAHQAZABoAGgAZABsAGgAbABkAHwAXABoAHQAXABwAHQAaABkAGgAfABcAHAAfABgAHQAdABoAHgAaABkAHgAcABsAHAAZACAAGgAaAB8AGwAZAB0AHAAaABsAGgAdABoAGgAcABwAHAAcABoAGQAdABsAGgAaABwAGwAZABsAGAAbABwAFwAaABoAGAAZABcAGQAZABgAFQAXABoAFgAYABoAFwAWABYAGQAXABUAFwAWABgAFgAUABcAFgAVABMAGQATABMAFQAVABEAEwAUABIAEAASABAAEwASAAwAEQARAA0AEAAPAA0ADgANAAwACwAQAAkACwAKAAgADAAHAAsABwAKAAgABQAKAAYABgAHAAgAAwAEAAkAAgAFAAYAAQAEAAMAAQAFAAQAAAAEAAAAAwABAAAAAAABAAAA//////3/AAD+/wAA/f/9/wAA+//+//7//v/7//z//f/7//v//P/6//z/+v/5//v/+f/3//r/+P/4//r/9f/7//f/9P/3//f/9f/1//b/9P/1//f/8v/z//b/8v/1//T/8v/z//H/9P/x//L/8v/x//L/7//w/+//8P/w/+7/8P/v/+3/7//u/+v/8P/u/+n/7v/s/+3/6//r/+//6f/r/+v/6v/s/+n/7P/r/+f/7f/p/+X/7f/l/+f/6//l/+f/5//p/+b/6P/l/+f/6f/j/+j/5v/k/+n/5P/k/+b/5P/o/+f/5P/k/+b/5f/l/+X/5f/k/+X/5f/k/+T/5f/l/+P/5f/h/+b/5//i/+X/5P/k/+T/4//k/+f/4v/i/+b/4//m/+T/4//k/+X/5v/i/+T/5f/k/+L/5P/m/+L/5f/k/+X/4//j/+P/5f/k/+L/5f/l/+P/5v/k/+X/6P/i/+f/5P/k/+v/4f/m/+f/5f/p/+P/6P/n/+T/5v/m/+f/5v/o/+X/5//p/+T/5f/n/+b/6P/l/+f/6P/l/+j/5v/m/+f/5//k/+b/6v/j/+j/5P/l/+n/5f/l/+n/5v/m/+j/5v/n/+f/5//m/+j/5f/n/+r/5//k/+j/5//m/+j/5//m/+f/6P/m/+j/6P/l/+n/6f/n/+n/6P/p/+j/6v/p/+n/7P/o/+v/6v/r/+v/7P/q/+z/7P/p/+3/6//s/+3/6v/u/+v/7f/v/+r/7f/w/+z/7v/v/+7/7//u//D/7//x//H/8P/x//H/8//z//H/8//0//T/9f/y//f/9P/0//n/9P/2//j/9v/5//n/9//6//3/+P/7//7/+v/9//3//P/+/wAA+//9/wIAAAAAAAEAAgABAAIAAwABAAMABQADAAUABQAGAAYABwAHAAQACgAIAAoABwAIAAsACgAIAAwACwAKAA4ACQALABAADAALAA8ADgAQAA4ADQAQABEADwAQABEAEgAQABEAEQATABMAEgAOABUAFAATABIAFQAVABIAFgAUABUAFgAUABcAFwAWABQAFQAXABcAFQAUABkAFgAXABcAFQAYABYAGQAXABUAGQAYABgAFwAYABkAGgAYABoAGAAaABcAGgAZABwAGwAXABwAGwAZABwAGgAcABsAGQAcABsAHAAbABkAHgAcABkAGwAeABoAGwAcABoAHQAcABoAHAAaAB4AHAAbABoAHQAdABwAHgAbAB4AHQAeAB4AGwAdAB8AHQAaACAAHQAcACEAGwAdACEAHQAcAB0AHgAgABwAHwAbACIAIAAdACAAHwAfAB4AIAAfACAAHwAeACEAHwAfACAAHwAfACQAHgAiACIAIAAjACEAIgAjACEAIwAiACUAIgAlACIAJgAmACAAJAAnACIAJgAlACIAKAAkACMAJAAlACcAJAAlACYAJQAkACYAJAAlACYAJAAnACQAJwAlACIAKAAmACgAJQAmACkAJQAoACcAJwAnACoAKAAnACYAKAAoACgAJgApACUAKQArACUAKgApACoAKAApACsAJgArACgAKgAqACkAKQApACoAJwArACsAJwApACwAJwAqACkAKQAqACkAKQAoACgAKAAnACkAJgAnACkAKAAlACcAJwAmACYAJQAnACgAJgAoACUAKQAlACYAJgAlACcAJAAlACUAIwAkACIAJgAkACAAJAAiACIAJAAhACEAIgAiACIAHgAfACIAIQAdACEAHgAcACEAHwAbACAAHwAdAB4AGwAgABoAHAAcAB4AHQAbAB0AHAAbABoAGQAcABwAGgAZABwAGAAWABsAGAAaABgAFQAaABkAGAAWABcAGQAVABUAGgAWABIAFwATABcAEwAWABcAEwAVABQAFAASABUAEwAUABMAEwAUABMAEwASABIAEwASABEAFAAQAA8AFQARAA8AEgAQABMADwASABAAEQAQABEAEQAOABEAEQARAA8ADwASAA8AEQAOABEAEAAPABEADQAPABEADQAPABEADQAQAA4AEAARAA8ADgARAA8ADgASAA4AEAAPABMADwAPABQADQARABIAEQARABAAEgASABIAEQARABEAEgARABEAFAARABAAFAASABMAEAATABQAEQAUABIAEAASABQAEwARABQAEQAVABIAEwAVABIAFAASABUAEgAVABUAFAAVABUAFAAVABUAFwAUABcAFgAXABcAFgAWABkAFQAVABsAFgAUABgAFQAYABgAFgAXABcAGAAVABgAGQAWABcAFwAYABoAFQAXABoAFAAZABoAFwAYABgAGQAWABoAFwAYABgAFwAZABYAGAAYABgAFgAXABkAFwAYABUAGAAYABMAGQAWABYAGQATABgAFAAUABgAEwAVABUAFQAVABQAFQASABQAFQARABMAFQAUABIAEgATABEAFAASABQAEQASABMAEgASABIAFAARABQAEAARABQADwASABIAEQAPABEAEQASABIADgASABQAEAAQABEADwASABIAEAAQABEAEgAQAA8AEwAQABIAEQAOABIAEQAOABQADwARAA8ADwASABEAEAANABQADQAQABQACwAUAA4AEAAPABAAEgAMAA8AEQAQAAwAEQAPAA8AEAAPABAADgARAA4AEgAOAAwAEwAJAA8AEgANABAADQAQABAACgAOABEADAAOABEACwAQAA0ADgANAA8AEQAKAA4ADQANAA4ADwAOAA4ADgAQAA8ADQAQAA0ADgAPABEAEAANAAsAEQAOAA8ADQAPABAADgANABAAFQAMABAAEQANAA8AFAAOAA4AEAATAA8AEAATAA4AEwARABEAEwAPABEAEwARABMAEgAQABcAEQAPABYAEwAQABYAFAATABMAEwAUABQAEwAUABQAFwAUABMAEwAXABcAEwAUABYAFAAVABcAEgAWABkAEgAXABYAFgAXABUAFgAXABcAFAAWABkAFAAWABoAFwAVABYAGQAYABYAGQAXABkAGQAUABwAGQAZABkAHAAZABkAHAAYABoAGgAcAB0AGQAaABwAHAAaABgAHQAdABoAHQAcABgAHQAbABsAHAAfABkAHQAaABsAHgAZACEAGAAdABwAGQAcABsAHAAcAB8AFwAaACAAFwAcABsAGQAbABwAFwAdAB0AGAAcABkAHQAZABoAGgAbABoAGQAaABUAHgAZABkAGAAXAB4AFwAYABkAGgAXABgAGQAYABcAGAAXABgAGAAXABgAFwAUABcAFwAXABcAEgAaABUAEwAWABQAFgAUABIAEwAUABkAEQATABUAEAAUABUAEgARABIAEwAPABMAEQAQABIAEAAPABAAEgANAA8AEAAOAAoADwAOAAoADwAOAAYADQAJAAwACgAJAAoACAAHAAgABwAHAAgABwAGAAUABQAGAAIABwACAAQABQAAAAEAAgAEAAAAAAD+/wIAAQD7/wQA/v/+/wAA/P/+//3/+///////+//5//3/+//5//v/+//8//z/+P/3//n/+//7//f/+f/4//n/+v/4//j/9//6//j/9v/2//r/9//1//b/9v/7//f/8//1//j/+P/1//X/9v/1//T/9f/3//X/9P/1//j/8//0//b/8//1//T/9P/3//P/8v/z//X/+P/w//f/8P/z//r/7v/3//T/8f/2//P/9v/y//X/9P/y//X/9P/0//H/9v/1//P/8//y//b/9//x//X/8//0//j/9P/y//b/9f/z//b/9//0//b/8//0//j/9P/0//j/9v/1//b/9f/2//f/9//3//f/9f/1//v/9//2//j/9f/3//j/+f/1//j/+f/2//n/+P/3//n/+f/1//r/+f/4//j/+v/5//n//P/3//z/+f/7//n//P/5//r////1//7/+f/8//z/+v/8//n//f/8//r//P/8//3/+//9//r//P/7//v//f/8//3/+//9//z//f/8//3//f/6/wAA/f/7/////P/9//7//P/+/////f////3//f/+/wEA+v8AAP7//f8AAP3//v8AAAEA/f/9/wIA/f8BAP///f8AAAAAAAAAAPz/AAAAAAAA/f8AAAAAAAD///3/AAAAAAEA/P///wAA/v8AAP/////+/wAA/P/8/wEA/P/8/wEA/P8AAPv//P/+/////P/9//7/+v/9//3/+//8//7/+P/5//7/+v/9//r//f/7//j//P/7//z/+v/5//v/+v/8//b//P/5//j/+//3//n/+v/5//f/9//5//b/+//0//j/9v/2//j/9P/3//f/9//1//b/9f/1//X/9P/1//X/9//z//T/9v/0//f/9f/1//T/9P/1//T/+P/y//T/9//2//L/9f/2//X/9v/0//X/9v/1//T/9v/y//n/9f/0//T/9v/2//X/+f/1//b/9//3//j/9v/4//j/+P/z//v/+P/2//v/9//3//v/+//4//n/+//7//v//P/3/wAA/P/7////+v/+//v////8///////9/wEA////////AAAAAAMAAAABAAIAAQADAAAAAwAEAAIAAwAEAAcABAAHAAQACwAIAAIACQALAAgACwAHAAkADgAJAAwACQAMABAACgALAA8ADgANABAADgAQABAADgAQABEAEwAQABAAEQATABYAEgAVABcAFQAXABYAFQAZABkAGAAZABYAGQAaABsAFwAbABkAGgAcABoAHQAdAB4AHQAbACIAHAAeACAAHwAhAB8AHwAeACIAHwAiACMAIAAiACMAIAAhACMAIwAjACIAIgAfACMAIQAjACIAIAAkACIAIgAhACEAIgAgACMAHQAkACQAIgAjACEAJgAgACMAIQAjACQAIAAiACEAHwAhACAAIwAgAB0AIAAjABwAIgAeAB0AIAAhACEAGwAbACIAHwAbACEAHAAdACEAHAAbACAAHwAZACIAGAAgABgAHAAbAB4AGwAaAB8AFwAcABkAGQAZABsAGQAYABsAGAAWABkAFwAZABYAFQAZABcAFwAXABcAFgAWABYAGQAYABIAGAASABYAFgAUABYAFgAXABQAFQASABcAFgAUABUAFAAXABQAFAAUABQAGAAVABUAFgAUABMAGAAYABIAFgAVABcAEwAWABYAFgAVABUAGAATABQAGAAXABQAFwAYABYAFwAWABkAFgAXABgAFQAYABkAFQAXABcAGAAZABUAGwAaABcAGAAbABkAGAAaABkAGgAaAB0AHAAZACAAGQAdAB4AHgAcAB8AHgAdACAAHgAeAB4AIQAfAB8AIAAfABsAIgAfACIAHgAiACMAIAAiACEAHwAiACUAIgAkACEAJQAkACIAIwAmACIAJAAkACcAIwAmACQAKAAkACUAJQAmACcAJwAlACYAJwApACkAJgApACoAJgApACwAJwAqACcAKAAqACcAKQAqACcAKQAoACoAJwAqACYAKQApACkAKAAnACoAJgAqACgAKgAnACgAKgAnACsAKAAoACkAKAAoACcAKQAqACcAJwAoACkAKQApACcAKAApACMAJwAkACcAJgAkACcAJQAkACcAIQAlACQAIQAjACUAIQAcACIAIQAdAB4AIAAgABwAHgAeABsAHgAdAB0AFwAcAB0AGgAXABkAHAAWABkAFwAWABcAFQAWABUAEQAUABMAEAATABIADgAQABAADwAOAAsAEQAQAA8ADQAMAA4ADgAKAA4ADQAPAA4ACwALAAwADgAJAA0ACQALAAgABwALAAoABwAHAAsABAAKAAoABgAHAAkABwA=" + } ] + }, { + "name" : "model", + "matchingType" : "ANY", + "headers" : { + "Content-Disposition" : { + "equalTo" : "form-data; name=\"model\"" + }, + "Content-Type" : { + "equalTo" : "text/plain; charset=utf-8" + } + }, + "bodyPatterns" : [ { + "equalTo" : "gpt-4o-mini-transcribe" + } ] + }, { + "name" : "response_format", + "matchingType" : "ANY", + "headers" : { + "Content-Disposition" : { + "equalTo" : "form-data; name=\"response_format\"" + }, + "Content-Type" : { + "equalTo" : "text/plain; charset=utf-8" + } + }, + "bodyPatterns" : [ { + "equalTo" : "json" + } ] + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "audio_transcriptions-388cd2791495.json", + "headers" : { + "x-request-id" : "req_a14669a7953a4ae9b908f29839dcccbc", + "openai-organization" : "braintrust-data", + "CF-RAY" : "a56a0ca6fce7032e-SEA", + "Server" : "cloudflare", + "X-Content-Type-Options" : "nosniff", + "x-ratelimit-reset-requests" : "2ms", + "x-openai-proxy-wasm" : "v0.1", + "cf-cache-status" : "DYNAMIC", + "x-ratelimit-remaining-requests" : "29999", + "Date" : "Sat, 07 Nov 2026 05:48:31 GMT", + "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray" ], + "set-cookie" : "__cf_bm=3bOu_dhYqUnmmTylhrFWP79FhJELebpXv.emfrgoAZc-1794030511.2029018-1.0.1.1-y.VOc2k_EATkvqdlOQrYQorwywxB6nm3mQJbX.O4AXPuUQhvBnmDuPFhEkhoRuyeLenOXTC3RL2CXmZrHOm2zI368VqkyAOa3AUK8S1dJfVpK_ejCqZ.x3Rz2dBU4yXE; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:18:31 GMT", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", + "x-ratelimit-limit-requests" : "30000", + "openai-version" : "2020-10-01", + "openai-processing-ms" : "351", + "alt-svc" : "h3=\":443\"; ma=86400", + "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", + "Content-Type" : "application/json" + } + }, + "uuid" : "49eef658-ef99-374b-8811-6a73a1f80f28", + "persistent" : true, + "insertionIndex" : 46 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/batches-5a870393ae27.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/batches-5a870393ae27.json index 7ed949e6..00bbb6ac 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/batches-5a870393ae27.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/batches-5a870393ae27.json @@ -16,18 +16,18 @@ "status" : 200, "bodyFileName" : "batches-5a870393ae27.json", "headers" : { - "x-request-id" : "req_c05dbfe3c57a4f3a91cd409716a74540", + "x-request-id" : "req_08662094c6c9424cbfb4d17b4513c69c", "openai-organization" : "braintrust-data", - "CF-RAY" : "a4679bc5e975c723-SEA", + "CF-RAY" : "a56a0c2c3899ec58-SEA", "Server" : "cloudflare", "X-Content-Type-Options" : "nosniff", "x-openai-proxy-wasm" : "v0.1", "cf-cache-status" : "DYNAMIC", - "Date" : "Tue, 06 Oct 2026 21:02:41 GMT", + "Date" : "Sat, 07 Nov 2026 05:48:12 GMT", "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray" ], - "set-cookie" : "__cf_bm=4je4Bu5.ytAI1JMPMY032jXNrLF7iui8WhMRc_pz3H8-1791320561.5862432-1.0.1.1-VNn4sJMbG_kMmDjys8mecfQPkBWYlBy3xPHe7La18d0LY4xvv7OUGki7uJOvM08cqpgZPY94c4dmTuwjoP8RkLHOrXzRepagT29UIVRlML3ztvliOL1L1ZPC1ygCPmlN; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Tue, 06 Oct 2026 21:32:41 GMT", + "set-cookie" : "__cf_bm=NXWK6B3jk32bKKP7KG95Hjnj3roXSoqo3f33axOx.ko-1794030491.5611362-1.0.1.1-tiQGOxo7tBUy4O1d.vRR2YSlR0Gucpl3JPi7rRab6kJbbjo7jd09BFVY9l84gg8TtTyc9f.TLpaq9XIAMxVbEJ4eFH6NCzVqsxvRF3c9OOCdVcoZ98K40XvQDJo0vu34; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:18:12 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", - "openai-processing-ms" : "47", + "openai-processing-ms" : "50", "openai-version" : "2020-10-01", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", @@ -36,5 +36,5 @@ }, "uuid" : "51b97e3b-0988-379b-b8e6-c05880241124", "persistent" : true, - "insertionIndex" : 65 + "insertionIndex" : 53 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-03b1b9901179.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-03b1b9901179.json index 0861fba1..78eb7e69 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-03b1b9901179.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-03b1b9901179.json @@ -19,25 +19,25 @@ "status" : 200, "bodyFileName" : "chat_completions-03b1b9901179.txt", "headers" : { - "x-request-id" : "req_c5ec73f4f8a64a179828b00c401db31b", + "x-request-id" : "req_1c872099734f4e4f8e5b77819e5a44a2", "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dd83d3bf4c74a-SEA", + "CF-Ray" : "a56a0d109ddb6e7d-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", "x-ratelimit-remaining-tokens" : "149999990", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:44:42 GMT", + "Date" : "Sat, 07 Nov 2026 05:48:48 GMT", "x-ratelimit-reset-tokens" : "0s", "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=D0Tl.K4dmrYT6GnAIDv5VzGqEcltMLuWe0XO.WiBnxE-1788198281.8039925-1.0.1.1-N6Gn2CJzA4BoXCTF872gX4BRJmch.g0V4QxL3RlCMtEqoZsDj8Dz4gDYCExNecgyCYP1RjzhlOjExMtiV8WmoAZqXJapmagASCmiCdZw5TQLG7Cf4wI2jXAiuZNyXTGC; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:14:42 GMT", + "set-cookie" : "__cf_bm=nJWOg8.f7dA_8UvvYUUSboHXGviL7HvTFCCUKfCOzpc-1794030528.093965-1.0.1.1-gCAH9kanwWtl1jtMj3Hy9IpPIoW1Rz0TjdmQysWNuTAj6sO64CRacj0h_XRYvbG7rHKhSpvpUcB3t7bI7QFsFnyFQWb0IawneqjyTqU1J0m1.he4yBDeZ57k_sG26IT6; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:18:48 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "487", + "openai-processing-ms" : "316", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "text/event-stream; charset=utf-8" @@ -45,5 +45,5 @@ }, "uuid" : "9978eedb-87b6-33aa-8e01-1b5c7444e736", "persistent" : true, - "insertionIndex" : 58 + "insertionIndex" : 67 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-0639fddc10f8.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-0639fddc10f8.json index 8e091af7..8a8e01a2 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-0639fddc10f8.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-0639fddc10f8.json @@ -21,25 +21,25 @@ "headers" : { "Server" : "cloudflare", "x-ratelimit-reset-tokens" : "0s", - "set-cookie" : "__cf_bm=nTqEQqbhVVzoII0lobZQ78SbBmsmbyXrsi0PrjK5C4E-1788198221.0610769-1.0.1.1-Ezel9D1jFGh3whmK6lvBFla1wUpW04e6UMZsqWQ25S3NBl.PphvZ9fI8f1GAYhf0F11Rgnr6.ubADxe3Yj6tLc6Oiu03e8u_YFYZKBh9SMF6R.JAvXauWo8LIabwKS4W; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:13:41 GMT", + "set-cookie" : "__cf_bm=GU8NKIjAs2UgPItLjreQ3WSE0vPu1L8rKVUEBAELZfM-1794030443.2105496-1.0.1.1-QxHughWa45deTUKs_S.FZL04noC29ONLguNj1dAEuvsf8XwWRomgacOBjgmCq_u6xtDXE0qyK7zTAWu2Ao2kHnc2yiq1sx8EWQhngfRMoXqIlKZggZLb0hzg2Zzs71Jp; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:17:23 GMT", "Access-Control-Expose-Headers" : [ "CF-Ray", "X-Request-ID", "CF-Ray" ], "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json", - "x-request-id" : "req_98fda29f69d347f89026b0ec1fbb0e97", + "x-request-id" : "req_571ffa06ce0743719d51d027635ee46a", "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", - "CF-Ray" : "a33dd6c1994531b0-SEA", + "CF-Ray" : "a56a0afe0c4b2ee0-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", "x-ratelimit-remaining-tokens" : "149999982", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:43:41 GMT", + "Date" : "Sat, 07 Nov 2026 05:47:23 GMT", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "448", + "openai-processing-ms" : "384", "alt-svc" : "h3=\":443\"; ma=86400" } }, @@ -48,5 +48,5 @@ "scenarioName" : "scenario-3-chat-completions", "requiredScenarioState" : "Started", "newScenarioState" : "scenario-3-chat-completions-2", - "insertionIndex" : 55 + "insertionIndex" : 64 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-077545f3c696.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-077545f3c696.json deleted file mode 100644 index 5e81ebb1..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-077545f3c696.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "id" : "e5972138-a270-3bde-8713-91da16fbe492", - "name" : "chat_completions", - "request" : { - "url" : "/chat/completions", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\n \"model\" : \"gpt-4o\",\n \"messages\" : [ {\n \"role\" : \"system\",\n \"content\" : \"you are a helpful assistant\"\n }, {\n \"role\" : \"user\",\n \"content\" : [ {\n \"type\" : \"text\",\n \"text\" : \"Briefly describe these attachments\"\n }, {\n \"type\" : \"image_url\",\n \"image_url\" : {\n \"url\" : \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8DwHwAFBQIAX8jx0gAAAABJRU5ErkJggg==\"\n }\n }, {\n \"type\" : \"file\",\n \"file\" : {\n \"file_data\" : \"data:application/pdf;base64,JVBERi0xLjAKMSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgPj4KZW5kb2JqCjIgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9LaWRzIFszIDAgUl0gL0NvdW50IDEgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL1R5cGUgL1BhZ2UgL1BhcmVudCAyIDAgUiAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXSA+PgplbmRvYmoKeHJlZgowIDQKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDA5IDAwMDAwIG4gCjAwMDAwMDAwNTggMDAwMDAgbiAKMDAwMDAwMDExNSAwMDAwMCBuIAp0cmFpbGVyCjw8IC9TaXplIDQgL1Jvb3QgMSAwIFIgPj4Kc3RhcnR4cmVmCjE5MAolJUVPRgo=\",\n \"filename\" : \"blank.pdf\"\n }\n } ]\n } ],\n \"temperature\" : 0.0,\n \"stream\" : false\n}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "chat_completions-077545f3c696.json", - "headers" : { - "Server" : "cloudflare", - "x-ratelimit-reset-input-images" : "0s", - "x-ratelimit-reset-tokens" : "3ms", - "x-ratelimit-limit-input-images" : "250000", - "set-cookie" : "__cf_bm=tP8J8Z5BK2HN9.GoevLBAeLRZTK.C2QIuZsTsa1zFPo-1788197807.4215758-1.0.1.1-t.PUVTSO1Cp4ZneaDGrGY47hiaeOjNcIKD1ujMkO3qqDZ5HBrcS5ZGJdCh56C9ZeoMNVWMm8WLslptctoMc110.XlqRJ5A6WjX3c3kyahnIjOLuca3MLGLBg9Sd0xWoS; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:06:49 GMT", - "Access-Control-Expose-Headers" : [ "CF-Ray", "X-Request-ID", "CF-Ray" ], - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", - "x-ratelimit-remaining-input-images" : "249999", - "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", - "Content-Type" : "application/json", - "x-request-id" : "req_6bdd751602834bd5a64e463db22778f6", - "x-ratelimit-limit-tokens" : "30000000", - "openai-organization" : "braintrust-data", - "CF-Ray" : "a33dcca85b75252d-SEA", - "X-Content-Type-Options" : "nosniff", - "x-ratelimit-reset-requests" : "6ms", - "x-ratelimit-remaining-tokens" : "29998451", - "x-openai-proxy-wasm" : "v0.1", - "x-ratelimit-remaining-requests" : "9999", - "Date" : "Mon, 31 Aug 2026 17:36:49 GMT", - "CF-Cache-Status" : "DYNAMIC", - "x-ratelimit-limit-requests" : "10000", - "openai-version" : "2020-10-01", - "openai-processing-ms" : "1110", - "alt-svc" : "h3=\":443\"; ma=86400" - } - }, - "uuid" : "e5972138-a270-3bde-8713-91da16fbe492", - "persistent" : true, - "scenarioName" : "scenario-5-chat-completions", - "requiredScenarioState" : "Started", - "newScenarioState" : "scenario-5-chat-completions-2", - "insertionIndex" : 34 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-0cc26297bcc1.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-0cc26297bcc1.json deleted file mode 100644 index a414b039..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-0cc26297bcc1.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "id" : "e788905c-b9c7-385a-9bcf-df76876ff42d", - "name" : "chat_completions", - "request" : { - "url" : "/chat/completions", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\n \"model\" : \"gpt-4o\",\n \"messages\" : [ {\n \"role\" : \"user\",\n \"content\" : \"What is the weather like in Paris, France?\"\n } ],\n \"temperature\" : 0.0,\n \"stream\" : false,\n \"max_tokens\" : 500,\n \"tools\" : [ {\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"get_weather\",\n \"description\" : \"Get the current weather for a location\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"location\" : {\n \"type\" : \"string\",\n \"description\" : \"The city and state, e.g. San Francisco, CA\"\n },\n \"unit\" : {\n \"type\" : \"string\",\n \"enum\" : [ \"celsius\", \"fahrenheit\" ],\n \"description\" : \"The unit of temperature\"\n }\n },\n \"required\" : [ \"location\" ]\n }\n }\n } ]\n}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "chat_completions-0cc26297bcc1.json", - "headers" : { - "x-request-id" : "req_24068c5c109041cda4489a2e3cf96034", - "x-ratelimit-limit-tokens" : "30000000", - "openai-organization" : "braintrust-data", - "Server" : "cloudflare", - "CF-Ray" : "a33dcd671ddaa3b3-SEA", - "X-Content-Type-Options" : "nosniff", - "x-ratelimit-reset-requests" : "6ms", - "x-ratelimit-remaining-tokens" : "29999987", - "x-openai-proxy-wasm" : "v0.1", - "x-ratelimit-remaining-requests" : "9999", - "Date" : "Mon, 31 Aug 2026 17:37:18 GMT", - "x-ratelimit-reset-tokens" : "0s", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=wkWhuYTB1u5arKPJKhpjtGMzwdZiaI9KwlkSPrL7Y3E-1788197837.939905-1.0.1.1-qkF6CtiD8_KJq.N3MvoRzKHT1yqxZiroS3FaU_2iIGBZR_RSu22Un6_mWMTApYowVOx.SbL0e8QdS955JAJir2zBQgry25P3D1JgfuMK1XwaVSQcLlRNnVszFb5sTcaX; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:07:18 GMT", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", - "CF-Cache-Status" : "DYNAMIC", - "x-ratelimit-limit-requests" : "10000", - "openai-version" : "2020-10-01", - "openai-processing-ms" : "514", - "alt-svc" : "h3=\":443\"; ma=86400", - "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", - "Content-Type" : "application/json" - } - }, - "uuid" : "e788905c-b9c7-385a-9bcf-df76876ff42d", - "persistent" : true, - "scenarioName" : "scenario-4-chat-completions", - "requiredScenarioState" : "scenario-4-chat-completions-2", - "insertionIndex" : 17 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-1396042660a1.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-1396042660a1.json index cca287b0..27817ab7 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-1396042660a1.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-1396042660a1.json @@ -19,25 +19,25 @@ "status" : 200, "bodyFileName" : "chat_completions-1396042660a1.txt", "headers" : { - "x-request-id" : "req_06708ed9a9074502872f64efd7c2f1bf", + "x-request-id" : "req_d30ccfac37004be7a20686ed2d970035", "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dd8386e399304-SEA", + "CF-Ray" : "a56a0cf15a72595c-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", "x-ratelimit-remaining-tokens" : "149999987", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:44:41 GMT", + "Date" : "Sat, 07 Nov 2026 05:48:43 GMT", "x-ratelimit-reset-tokens" : "0s", "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=M3XUTEyJlrTWf.x_QFu8Vi9syU84WTA2hvrusdCJU1s-1788198281.0224748-1.0.1.1-1oHEXqbSWoK_VaDzq1qI0n8bKPQcoTANcuMa2kHUhucMJkpmqYE2H.IYl9T9VbeT80fNFkuD7Ef2Qz2OZB13Yx60X2HfwVIiuN2uIIu8P2JaD3WAL8yU1UGDd2xFWnb1; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:14:41 GMT", + "set-cookie" : "__cf_bm=QQcWientV.itUgc339mo0oI5zQjuuGkplD5lT5k5724-1794030523.092177-1.0.1.1-i.SuOU8gEEebFLzkIMxdhJtvKoHGPhJAcXlvEgQWA0_pHOHdFgB32GeOWjPhH.Vk1We0LLyouUGtlde3Wd.2r7wDeAoP7kfN2rLig2EBhkaho3GczQdK58fqsRMy5QRE; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:18:43 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "492", + "openai-processing-ms" : "421", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "text/event-stream; charset=utf-8" @@ -45,5 +45,5 @@ }, "uuid" : "53345a74-6b35-38d0-a840-77a7ee136e13", "persistent" : true, - "insertionIndex" : 59 + "insertionIndex" : 68 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-147f1d6ed0ae.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-147f1d6ed0ae.json index b49c8486..aad04999 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-147f1d6ed0ae.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-147f1d6ed0ae.json @@ -21,29 +21,29 @@ "headers" : { "Server" : "cloudflare", "x-ratelimit-reset-tokens" : "0s", - "set-cookie" : "__cf_bm=3EgOv_Rungc8XSoAR99SQJ6UmTw9H1sEjn1RG6KexeQ-1788198297.8077881-1.0.1.1-hkhy0dhcFyMkcbLV172dZL7IYDHFBbkZsGo3MqEg8erzT7LRKyisx1IOoRUQk0sz6CMHTJ8iBQr4iyUdpihY0h2Xa9_WuWRyJ31BJf1rnZveYWRmYM3Gy9KGNsl4YAMu; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:14:58 GMT", + "set-cookie" : "__cf_bm=x0K5FldkUACQcjWYsIvHvoFSdhfoJ9fCQDT0TQU8uf4-1794030540.2578056-1.0.1.1-px9oYFOHwCFgLqMcSbwIOYqvKLU325UmLizFUUrBS17A.jMm4CMhiPO6xrfQBE0pDGcerYIz6zlb.crdahGkeBV.s.VzTLWvJq5n7NYR5lEyZ0HkPbj95ypmvxwVs5jH; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:19:00 GMT", "Access-Control-Expose-Headers" : [ "CF-Ray", "X-Request-ID", "CF-Ray" ], "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json", - "x-request-id" : "req_342e9fb88efe40cbba913147cb971b39", + "x-request-id" : "req_7c8ccceff9de406f9c4f0cb06e6c6a71", "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", - "CF-Ray" : "a33dd8a14cfcb9f1-SEA", + "CF-Ray" : "a56a0d5c9e09f30e-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", "x-ratelimit-remaining-tokens" : "149999990", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:44:58 GMT", + "Date" : "Sat, 07 Nov 2026 05:49:00 GMT", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "486", + "openai-processing-ms" : "379", "alt-svc" : "h3=\":443\"; ma=86400" } }, "uuid" : "f41a9001-a38a-3d9b-b546-38d4751ec1ce", "persistent" : true, - "insertionIndex" : 63 + "insertionIndex" : 72 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-172e53c522a8.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-172e53c522a8.json new file mode 100644 index 00000000..a3d7ae70 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-172e53c522a8.json @@ -0,0 +1,54 @@ +{ + "id" : "91b89dfd-7e51-3d90-9fe9-a113d353d4ea", + "name" : "chat_completions", + "request" : { + "url" : "/chat/completions", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\n \"model\" : \"gpt-6-luna\",\n \"messages\" : [ {\n \"role\" : \"system\",\n \"content\" : \"you are a helpful assistant\"\n }, {\n \"role\" : \"user\",\n \"content\" : [ {\n \"type\" : \"text\",\n \"text\" : \"Briefly describe these attachments\"\n }, {\n \"type\" : \"image_url\",\n \"image_url\" : {\n \"url\" : \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8DwHwAFBQIAX8jx0gAAAABJRU5ErkJggg==\"\n }\n }, {\n \"type\" : \"file\",\n \"file\" : {\n \"file_data\" : \"data:application/pdf;base64,JVBERi0xLjAKMSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgPj4KZW5kb2JqCjIgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9LaWRzIFszIDAgUl0gL0NvdW50IDEgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL1R5cGUgL1BhZ2UgL1BhcmVudCAyIDAgUiAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXSA+PgplbmRvYmoKeHJlZgowIDQKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDA5IDAwMDAwIG4gCjAwMDAwMDAwNTggMDAwMDAgbiAKMDAwMDAwMDExNSAwMDAwMCBuIAp0cmFpbGVyCjw8IC9TaXplIDQgL1Jvb3QgMSAwIFIgPj4Kc3RhcnR4cmVmCjE5MAolJUVPRgo=\",\n \"filename\" : \"blank.pdf\"\n }\n } ]\n } ],\n \"temperature\" : 0.0,\n \"stream\" : false,\n \"reasoning_effort\" : \"none\"\n}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "chat_completions-172e53c522a8.json", + "headers" : { + "Server" : "cloudflare", + "x-ratelimit-reset-input-images" : "1ms", + "x-ratelimit-reset-tokens" : "0s", + "x-ratelimit-limit-input-images" : "50000", + "set-cookie" : "__cf_bm=L7BAWT_o8afrwEBiR7tlwDhaketIbmdOfh2scWqE5gw-1794030183.5484643-1.0.1.1-Lzg.8DkR2xHgYELcSOMM7q3Zu3kbid7BjIihsO53GGiCh60ta4UDw0VU1XBCv531Y2Wm8GmXahD7Qfm5HvFOEHsgbKmN.2qkYTe6SdlAY7cu1X6etu9O0L8fswU5Qj_t; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:04 GMT", + "Access-Control-Expose-Headers" : [ "CF-Ray", "X-Request-ID", "CF-Ray" ], + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", + "x-ratelimit-remaining-input-images" : "49999", + "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", + "Content-Type" : "application/json", + "x-request-id" : "req_7e988764946c4054a459cbfdb07d1f52", + "x-ratelimit-limit-tokens" : "180000000", + "openai-organization" : "braintrust-data", + "CF-Ray" : "a56a04a728c6dc9f-SEA", + "X-Content-Type-Options" : "nosniff", + "x-ratelimit-reset-requests" : "2ms", + "x-ratelimit-remaining-tokens" : "179998452", + "x-openai-proxy-wasm" : "v0.1", + "x-ratelimit-remaining-requests" : "29999", + "Date" : "Sat, 07 Nov 2026 05:43:04 GMT", + "CF-Cache-Status" : "DYNAMIC", + "x-ratelimit-limit-requests" : "30000", + "openai-version" : "2020-10-01", + "openai-processing-ms" : "820", + "alt-svc" : "h3=\":443\"; ma=86400" + } + }, + "uuid" : "91b89dfd-7e51-3d90-9fe9-a113d353d4ea", + "persistent" : true, + "scenarioName" : "scenario-6-chat-completions", + "requiredScenarioState" : "scenario-6-chat-completions-2", + "insertionIndex" : 28 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-834f2f4789ae.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-188be8d3cd9d.json similarity index 57% rename from test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-834f2f4789ae.json rename to test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-188be8d3cd9d.json index 3ca96bdc..e5c0bd4e 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-834f2f4789ae.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-188be8d3cd9d.json @@ -1,5 +1,5 @@ { - "id" : "d62ea05d-48c0-36af-a773-6cf92596ddb1", + "id" : "fe59d854-efb2-3e36-bc5e-e725595111f8", "name" : "chat_completions", "request" : { "url" : "/chat/completions", @@ -10,40 +10,40 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"messages\":[{\"content\":\"you are a helpful assistant\",\"role\":\"system\"},{\"content\":\"What is the capital of France?\",\"role\":\"user\"}],\"model\":\"gpt-4o-mini\",\"stream\":false,\"temperature\":0.0}", + "equalToJson" : "{\"messages\":[{\"content\":\"you are a helpful assistant\",\"role\":\"system\"},{\"content\":\"What is the capital of France?\",\"role\":\"user\"}],\"model\":\"gpt-6-luna\",\"reasoning_effort\":\"none\",\"temperature\":0.0}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "chat_completions-834f2f4789ae.json", + "bodyFileName" : "chat_completions-188be8d3cd9d.json", "headers" : { "Server" : "cloudflare", "x-ratelimit-reset-tokens" : "0s", - "set-cookie" : "__cf_bm=NmXUpabYOiqLYAyb9Nroh3vzTyO2s9li6_er3ICRUTE-1788197811.6605844-1.0.1.1-t8_X1MaQsy8Hzv0B.K8mjDMhAMZ4FPQOLM7q4JZmtjoBKnUs6yvvrH.Ow7Fwon0xAkadVF2R0vPtxBx5XN3tYMJv3msogpf_PEl_GxZUUbmT4DxUTzY2VX_nbRHORj1e; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:06:52 GMT", + "set-cookie" : "__cf_bm=.nzCHAqbSOdaDaRWksoN4HDyVHhPSaTluXHkOk7O8jk-1794030195.0487413-1.0.1.1-e91Rleo..zMp7NzLrHrrwN1icxQqBxQZzL_AOsnLUQUlFBkQ0f8nbgk3lkkQNnDv_z0RjT6wdcoBOSF5xucP8xX6sToxIvVKUqvUyKijNNt_BZY.SLU.rvcCNGxPzMoI; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:15 GMT", "Access-Control-Expose-Headers" : [ "CF-Ray", "X-Request-ID", "CF-Ray" ], "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json", - "x-request-id" : "req_5299c921a6a44fde8da42bd5ed3eb18c", - "x-ratelimit-limit-tokens" : "150000000", + "x-request-id" : "req_9c7e540ab1f84b049b895da08201c56f", + "x-ratelimit-limit-tokens" : "180000000", "openai-organization" : "braintrust-data", - "CF-Ray" : "a33dccc2d81c758c-SEA", + "CF-Ray" : "a56a04ef08a66c91-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", - "x-ratelimit-remaining-tokens" : "149999980", + "x-ratelimit-remaining-tokens" : "179999982", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:36:52 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:15 GMT", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "565", + "openai-processing-ms" : "598", "alt-svc" : "h3=\":443\"; ma=86400" } }, - "uuid" : "d62ea05d-48c0-36af-a773-6cf92596ddb1", + "uuid" : "fe59d854-efb2-3e36-bc5e-e725595111f8", "persistent" : true, - "insertionIndex" : 27 + "insertionIndex" : 8 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-90ff0ffd3a89.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-1e551e6c9590.json similarity index 54% rename from test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-90ff0ffd3a89.json rename to test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-1e551e6c9590.json index 69e38377..d3cc0f7f 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-90ff0ffd3a89.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-1e551e6c9590.json @@ -1,5 +1,5 @@ { - "id" : "c8119f3d-b288-3279-b313-4f39dbe08aa9", + "id" : "acab9150-b7be-3063-b6c9-e55dd7da2c54", "name" : "chat_completions", "request" : { "url" : "/chat/completions", @@ -10,40 +10,40 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"messages\":[{\"content\":\"you are a thoughtful assistant\",\"role\":\"system\"},{\"content\":\"Count from 1 to 10 slowly.\",\"role\":\"user\"}],\"model\":\"gpt-4o-mini\",\"max_tokens\":800,\"stream\":true,\"stream_options\":{\"include_usage\":true},\"temperature\":0.0}", + "equalToJson" : "{\"messages\":[{\"content\":\"you are a thoughtful assistant\",\"role\":\"system\"},{\"content\":\"Count from 1 to 10 slowly.\",\"role\":\"user\"}],\"model\":\"gpt-6-luna\",\"stream_options\":{\"include_obfuscation\":false,\"include_usage\":true},\"reasoning_effort\":\"none\",\"max_completion_tokens\":800,\"temperature\":0.0,\"stream\":true}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "chat_completions-90ff0ffd3a89.txt", + "bodyFileName" : "chat_completions-1e551e6c9590.txt", "headers" : { - "x-request-id" : "req_9c29c6dfa9904ffe82d16f9d90c261bf", - "x-ratelimit-limit-tokens" : "150000000", + "x-request-id" : "req_82640318c4b3460fbf558c5c22bfe259", + "x-ratelimit-limit-tokens" : "180000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dccc06e49fc2f-SEA", + "CF-Ray" : "a56a04c2dcc41d77-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", - "x-ratelimit-remaining-tokens" : "149999982", + "x-ratelimit-remaining-tokens" : "179999985", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:36:51 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:08 GMT", "x-ratelimit-reset-tokens" : "0s", "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=4RhDB2QpPSAy.uK9akInziespTms9_bNt5Yf7XEdho8-1788197811.2618935-1.0.1.1-Fh5UF9PtP9bcaUEZ.V4rRmdKdt28rDHHq3LHfssKplvaCgFGih7lM8AM.SU4S1e.zBexv0A9cUshGsDTPIoFnVySKa3.SsiKD4lSK21s_23mNjr7z3Asv8aRWdeq75ZJ; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:06:51 GMT", + "set-cookie" : "__cf_bm=iPefVjq8fRU9ZeGR4R6crVoDM5397HRmaU7UHWdDGQo-1794030187.980494-1.0.1.1-sGZAnt941zN1He7jKsMlZzR3cqhcqWPAv_1px1UUJkdV.XDPvo4rMcrIlKuIwya8boHsRaxPnwtur4h.HcVKNOPnHfnqXzMhUmCqTdCd3ySfLq9XKo2xlfiHVaEj1DQJ; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:08 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "368", + "openai-processing-ms" : "554", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "text/event-stream; charset=utf-8" } }, - "uuid" : "c8119f3d-b288-3279-b313-4f39dbe08aa9", + "uuid" : "acab9150-b7be-3063-b6c9-e55dd7da2c54", "persistent" : true, - "insertionIndex" : 28 + "insertionIndex" : 20 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-1f42b61b411c.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-1f42b61b411c.json index 66ec8b4b..b096825f 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-1f42b61b411c.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-1f42b61b411c.json @@ -21,25 +21,25 @@ "headers" : { "Server" : "cloudflare", "x-ratelimit-reset-tokens" : "0s", - "set-cookie" : "__cf_bm=Jqvy6CslhQ67XXp54chqJ7b3naDHhqyczmDd_yo21us-1788198251.5365825-1.0.1.1-sApWpD7mUhqB4yzaPYVyUTyltMNPq_ujoTMLDBZaBEoAaIBIshaCucApkmm7ouB3gII04KwQRo6y6f_8P8Qujjh.Ar5GbhsRDuT7OBtVnJmIvDSqSMH1uwT2ECkbFeTP; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:14:12 GMT", + "set-cookie" : "__cf_bm=ThfrE1kWX8oU1f4UNIAx2gR9zWfEGSuh43fFHL5xbIA-1794030503.3413775-1.0.1.1-Ea.je_LDBmFwzP54yak2lqNX4r7GaLSXFsQkhu4l3XqXvt45Hwx8xhVXm5FURCMkpT52AIIL9cnzkAUZymYR__pI_3Tn8EQu6imUZ4lMPQoKjjdmJFwuHiqlyiJy2KDa; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:18:24 GMT", "Access-Control-Expose-Headers" : [ "CF-Ray", "X-Request-ID", "CF-Ray" ], "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json", - "x-request-id" : "req_0f5e8cd1dd794a3eb001c4faef341fbf", + "x-request-id" : "req_f3de2bac5a0342f39690f8015039cc0d", "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", - "CF-Ray" : "a33dd7801aaa7609-SEA", + "CF-Ray" : "a56a0c75de52754a-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", "x-ratelimit-remaining-tokens" : "149999982", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:44:12 GMT", + "Date" : "Sat, 07 Nov 2026 05:48:24 GMT", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "457", + "openai-processing-ms" : "431", "alt-svc" : "h3=\":443\"; ma=86400" } }, @@ -48,5 +48,5 @@ "scenarioName" : "scenario-3-chat-completions", "requiredScenarioState" : "scenario-3-chat-completions-4", "newScenarioState" : "scenario-3-chat-completions-5", - "insertionIndex" : 46 + "insertionIndex" : 52 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-b9ecbd8616dd.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-222ad3ef70f9.json similarity index 52% rename from test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-b9ecbd8616dd.json rename to test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-222ad3ef70f9.json index 2c0e2fd5..8993f808 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-b9ecbd8616dd.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-222ad3ef70f9.json @@ -1,5 +1,5 @@ { - "id" : "e0236e27-8f65-3b57-b18d-abec0a2efd39", + "id" : "9846cf5c-9df4-32d3-bb9e-365108a69824", "name" : "chat_completions", "request" : { "url" : "/chat/completions", @@ -10,43 +10,43 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\n \"model\" : \"o4-mini\",\n \"messages\" : [ {\n \"role\" : \"user\",\n \"content\" : \"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\\n\"\n } ],\n \"stream\" : false,\n \"reasoning_effort\" : \"medium\"\n}", + "equalToJson" : "{\n \"model\" : \"gpt-6-luna\",\n \"messages\" : [ {\n \"role\" : \"user\",\n \"content\" : \"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\\n\"\n } ],\n \"stream\" : false,\n \"reasoning_effort\" : \"medium\"\n}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "chat_completions-b9ecbd8616dd.json", + "bodyFileName" : "chat_completions-222ad3ef70f9.json", "headers" : { - "x-request-id" : "req_bcb15a79086a45bb98a3a1309955f80e", - "x-ratelimit-limit-tokens" : "150000000", + "x-request-id" : "req_874df7d8abcc42baa0c481e2dbd2190c", + "x-ratelimit-limit-tokens" : "180000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dccfb4bcc08e7-SEA", + "CF-Ray" : "a56a04b76ab2e809-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", - "x-ratelimit-remaining-tokens" : "149999970", + "x-ratelimit-remaining-tokens" : "179999970", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:37:10 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:08 GMT", "x-ratelimit-reset-tokens" : "0s", "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=FvnRlJyqFtydbw1TE4s9Jeyd7.28z6hp9MY2EbtU5Z0-1788197820.68665-1.0.1.1-VUQpZ11p8P4B4np3dwK3Dk5gM5xEuxUYFDmTysTKUi4ThG6rkrmMIeRKp5EVESADbONU0Z6D4ObW_kyRrGKmuSvLVUwEvd_U8qV6Cpt6N2BkQBDu.lMSbyJs.ZLCJqZ3; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:07:10 GMT", + "set-cookie" : "__cf_bm=H7h8c7F.5eP4QjEee_etPFGb7Hc280fuSDdxWIHJDDQ-1794030186.1419752-1.0.1.1-jGWxBIALr4bocV.PXqvCLgY5I9pbP7SPaP24w.34E_7QZcaKv0tauUpMeXYZWvW7RQRFSg8OfvvDf63_YRI_pLQy8hWWzgbKE7PkbavgAJYdUTslsZefaq.tmRAcX0Es; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:08 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "9368", + "openai-processing-ms" : "1900", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json" } }, - "uuid" : "e0236e27-8f65-3b57-b18d-abec0a2efd39", + "uuid" : "9846cf5c-9df4-32d3-bb9e-365108a69824", "persistent" : true, "scenarioName" : "scenario-1-chat-completions", "requiredScenarioState" : "Started", "newScenarioState" : "scenario-1-chat-completions-2", - "insertionIndex" : 20 + "insertionIndex" : 21 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-279e71bec74d.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-279e71bec74d.json new file mode 100644 index 00000000..6b77672a --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-279e71bec74d.json @@ -0,0 +1,51 @@ +{ + "id" : "467105a2-5595-3f26-9bcb-17727236779d", + "name" : "chat_completions", + "request" : { + "url" : "/chat/completions", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\n \"model\" : \"gpt-6-luna\",\n \"messages\" : [ {\n \"role\" : \"system\",\n \"content\" : \"you are a concise assistant\"\n }, {\n \"role\" : \"user\",\n \"content\" : \"Say hello in one word.\"\n } ],\n \"temperature\" : 0.0,\n \"n\" : 2,\n \"stream\" : true,\n \"stream_options\" : {\n \"include_usage\" : true\n },\n \"max_completion_tokens\" : 100,\n \"reasoning_effort\" : \"none\"\n}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "chat_completions-279e71bec74d.txt", + "headers" : { + "x-request-id" : "req_603b7d2a57a74a469493d267ed39ee61", + "x-ratelimit-limit-tokens" : "180000000", + "openai-organization" : "braintrust-data", + "Server" : "cloudflare", + "CF-Ray" : "a56a04a8aa4d0712-SEA", + "X-Content-Type-Options" : "nosniff", + "x-ratelimit-reset-requests" : "2ms", + "x-ratelimit-remaining-tokens" : "179999985", + "x-openai-proxy-wasm" : "v0.1", + "x-ratelimit-remaining-requests" : "29999", + "Date" : "Sat, 07 Nov 2026 05:43:04 GMT", + "x-ratelimit-reset-tokens" : "0s", + "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=O8jr9jpvNwONT_hD1A8pxfUMhWb.lqa3Z2FZZTmsUzA-1794030183.7860951-1.0.1.1-Y9E8jre_B79Nko6XphDYS50ktTcbhaTAOTbUaxXxhuaFcRu1hPfYDSKEYEHXtUD1dbC1_6aZU.UmvxiINujzKsjP7yYyOqXp4IMCXysEMwBCfb208lmhsAh9sfQGGES7; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:04 GMT", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", + "CF-Cache-Status" : "DYNAMIC", + "x-ratelimit-limit-requests" : "30000", + "openai-version" : "2020-10-01", + "openai-processing-ms" : "471", + "alt-svc" : "h3=\":443\"; ma=86400", + "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", + "Content-Type" : "text/event-stream; charset=utf-8" + } + }, + "uuid" : "467105a2-5595-3f26-9bcb-17727236779d", + "persistent" : true, + "scenarioName" : "scenario-5-chat-completions", + "requiredScenarioState" : "scenario-5-chat-completions-2", + "insertionIndex" : 27 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-27f306b916ee.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-27f306b916ee.json new file mode 100644 index 00000000..5bdfaee3 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-27f306b916ee.json @@ -0,0 +1,52 @@ +{ + "id" : "21029fb2-ed7c-3b83-af36-35678cb04aa0", + "name" : "chat_completions", + "request" : { + "url" : "/chat/completions", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\n \"model\" : \"gpt-6-luna\",\n \"messages\" : [ {\n \"role\" : \"system\",\n \"content\" : \"you are a concise assistant\"\n }, {\n \"role\" : \"user\",\n \"content\" : \"Say hello in one word.\"\n } ],\n \"temperature\" : 0.0,\n \"n\" : 2,\n \"stream\" : true,\n \"stream_options\" : {\n \"include_usage\" : true\n },\n \"max_completion_tokens\" : 100,\n \"reasoning_effort\" : \"none\"\n}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "chat_completions-27f306b916ee.txt", + "headers" : { + "x-request-id" : "req_fb353ad3d0324ca8a5bb63ae3cdaa447", + "x-ratelimit-limit-tokens" : "180000000", + "openai-organization" : "braintrust-data", + "Server" : "cloudflare", + "CF-Ray" : "a56a049d2942703b-SEA", + "X-Content-Type-Options" : "nosniff", + "x-ratelimit-reset-requests" : "2ms", + "x-ratelimit-remaining-tokens" : "179999982", + "x-openai-proxy-wasm" : "v0.1", + "x-ratelimit-remaining-requests" : "29999", + "Date" : "Sat, 07 Nov 2026 05:43:02 GMT", + "x-ratelimit-reset-tokens" : "0s", + "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=3L4RUOSLob.InEmL8_n_9fQF1X.WmzMOjPSW3skukh0-1794030181.9483926-1.0.1.1-UrGvSk2_R3MdQ87Ia6dq3nx_KKvjeeBsA6_aDFeiWdxtMhbnrwGBMNgM0LDI9fcRCDfic2XXzNGW1dUswWYzVmh442CcKTV8wbOYoH9Uieqb.mJc.AJpc4phbaPq2bzP; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:02 GMT", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", + "CF-Cache-Status" : "DYNAMIC", + "x-ratelimit-limit-requests" : "30000", + "openai-version" : "2020-10-01", + "openai-processing-ms" : "505", + "alt-svc" : "h3=\":443\"; ma=86400", + "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", + "Content-Type" : "text/event-stream; charset=utf-8" + } + }, + "uuid" : "21029fb2-ed7c-3b83-af36-35678cb04aa0", + "persistent" : true, + "scenarioName" : "scenario-5-chat-completions", + "requiredScenarioState" : "Started", + "newScenarioState" : "scenario-5-chat-completions-2", + "insertionIndex" : 34 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-2bc496b1900f.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-2bc496b1900f.json index 341455b3..ba0b8605 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-2bc496b1900f.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-2bc496b1900f.json @@ -21,29 +21,29 @@ "headers" : { "Server" : "cloudflare", "x-ratelimit-reset-tokens" : "0s", - "set-cookie" : "__cf_bm=uYYpcwgytka7kypw5YHQ_v3l1qOW5aJvQHQ1S_oA66o-1788198293.4247925-1.0.1.1-eh6EC2OZytzkJuSky0s.mvbjK4PSfFeETTWkCYvoduS20zZ6RiwYtWn61lhuR_968ofH1wfOtmRu2rRboGAMEyxZbsB3B4un9JgXugnlm7hxLkHlA96t5FdljUsng._5; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:14:54 GMT", + "set-cookie" : "__cf_bm=T.yS7p0dmG_hPYdMg_Cz0WmN02Ki68Oj4yfHHrORNZY-1794030537.7403076-1.0.1.1-lYR4Mo.wh4insec1gf0hcqjdnmbd0EcNkXVGv0605xkQb8XjAIhBPLr0Yk1TT1FsEWVhs0snbT7njo0skoeninrP4B2PtYXNZIOFyBhl44arycobLiy4gObiEvQDYOg.; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:18:58 GMT", "Access-Control-Expose-Headers" : [ "CF-Ray", "X-Request-ID", "CF-Ray" ], "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json", - "x-request-id" : "req_96881f75a7a54c5db937ea02602b043f", + "x-request-id" : "req_9eb284a7cb044bdc96f2e21c5e62a71f", "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", - "CF-Ray" : "a33dd885eaab76ec-SEA", + "CF-Ray" : "a56a0d4cd85698bc-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", "x-ratelimit-remaining-tokens" : "149999980", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:44:54 GMT", + "Date" : "Sat, 07 Nov 2026 05:48:58 GMT", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "448", + "openai-processing-ms" : "474", "alt-svc" : "h3=\":443\"; ma=86400" } }, "uuid" : "2b4a7629-7448-3991-95e7-a41b235eb4b5", "persistent" : true, - "insertionIndex" : 64 + "insertionIndex" : 73 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-39f585d9410d.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-39f585d9410d.json deleted file mode 100644 index 82cf2446..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-39f585d9410d.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "id" : "cf14de64-7771-3442-ab57-f2643f3e2dfc", - "name" : "chat_completions", - "request" : { - "url" : "/chat/completions", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"messages\":[{\"content\":\"What is the weather like in Paris, France?\",\"role\":\"user\"}],\"model\":\"gpt-4o\",\"max_tokens\":500,\"temperature\":0.0,\"tools\":[{\"function\":{\"name\":\"get_weather\",\"description\":\"Get the current weather for a location\",\"parameters\":{\"type\":\"object\",\"properties\":{\"location\":{\"type\":\"string\",\"description\":\"The city and state, e.g. San Francisco, CA\"},\"unit\":{\"type\":\"string\",\"enum\":[\"celsius\",\"fahrenheit\"],\"description\":\"The unit of temperature\"}},\"required\":[\"location\"]}},\"type\":\"function\"}],\"stream\":false}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "chat_completions-39f585d9410d.json", - "headers" : { - "Server" : "cloudflare", - "x-ratelimit-reset-tokens" : "0s", - "set-cookie" : "__cf_bm=OVmp4iHp7gaMaxR8h0Tf5DaPZGYI36_yWYxnS2d03Y4-1788197836.9038897-1.0.1.1-VrwR3O.5eiwpoGSfXfCMOO9y7I1TvsciYFTaC9HftDWfz_aNO9PBjn9u4IfGHKxUM.lkh7IIbP2CSo4.SJGSiSrA2o6OZ3VUqs_2MKKbMmUYbkrqh2EQcn8X1VLT.Zb5; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:07:17 GMT", - "Access-Control-Expose-Headers" : [ "CF-Ray", "X-Request-ID", "CF-Ray" ], - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", - "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", - "Content-Type" : "application/json", - "x-request-id" : "req_47225fc805db4fc387554b6ba3295839", - "x-ratelimit-limit-tokens" : "30000000", - "openai-organization" : "braintrust-data", - "CF-Ray" : "a33dcd60ab8a12d4-SEA", - "X-Content-Type-Options" : "nosniff", - "x-ratelimit-reset-requests" : "6ms", - "x-ratelimit-remaining-tokens" : "29999986", - "x-openai-proxy-wasm" : "v0.1", - "x-ratelimit-remaining-requests" : "9999", - "Date" : "Mon, 31 Aug 2026 17:37:17 GMT", - "CF-Cache-Status" : "DYNAMIC", - "x-ratelimit-limit-requests" : "10000", - "openai-version" : "2020-10-01", - "openai-processing-ms" : "605", - "alt-svc" : "h3=\":443\"; ma=86400" - } - }, - "uuid" : "cf14de64-7771-3442-ab57-f2643f3e2dfc", - "persistent" : true, - "insertionIndex" : 18 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-3a0e595e4db7.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-3a0e595e4db7.json index 8ec33cef..95251a8e 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-3a0e595e4db7.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-3a0e595e4db7.json @@ -21,25 +21,25 @@ "headers" : { "Server" : "cloudflare", "x-ratelimit-reset-tokens" : "0s", - "set-cookie" : "__cf_bm=hZOvDXqCpnyNQVScSMReiRyWmwOU3JUafTyy7LbwGmE-1788198253.8808696-1.0.1.1-YvnDFauxz_L1q7SL7cwADk_NZfQurx1bweGjmtAknl3j6ftAlwxz.ZR.PfCsr7BqAS6aM3Wabol9bl23ze.ozHXdVGQSa1M.Ht4nVCBZpXE_rf59rCQ1CSfv.Vmy1iMm; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:14:14 GMT", + "set-cookie" : "__cf_bm=Nt4nyPuZSGp8tzYbeoa7uei2dK0KGBz1z0UYsX20cMI-1794030505.5841384-1.0.1.1-be6JE8pfskUQL9QaHHUkvlwacJ6h35ui5Yk28.2hXoYD7kk8ZVZ52_Dl10xg6TFAfyirmeVCzS7o.PiJEGJCPjg1hQBspJl7FiMKEu8y_zcHe.0VTU04e1NusFrLPUwK; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:18:26 GMT", "Access-Control-Expose-Headers" : [ "CF-Ray", "X-Request-ID", "CF-Ray" ], "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json", - "x-request-id" : "req_6e3fdd3791cc4e60b8bf3a219f40f5e0", + "x-request-id" : "req_25cfe05e99044698bdd9e02ed4641930", "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", - "CF-Ray" : "a33dd78ebc535705-SEA", + "CF-Ray" : "a56a0c83ebb5fcac-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", "x-ratelimit-remaining-tokens" : "149999982", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:44:14 GMT", + "Date" : "Sat, 07 Nov 2026 05:48:26 GMT", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "627", + "openai-processing-ms" : "374", "alt-svc" : "h3=\":443\"; ma=86400" } }, @@ -47,5 +47,5 @@ "persistent" : true, "scenarioName" : "scenario-3-chat-completions", "requiredScenarioState" : "scenario-3-chat-completions-5", - "insertionIndex" : 45 + "insertionIndex" : 51 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-40b67b7e07db.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-40b67b7e07db.json new file mode 100644 index 00000000..848c6b1f --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-40b67b7e07db.json @@ -0,0 +1,52 @@ +{ + "id" : "b215d874-711f-3673-b771-6f0ba5b4e0ee", + "name" : "chat_completions", + "request" : { + "url" : "/chat/completions", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\n \"model\" : \"gpt-6-luna\",\n \"messages\" : [ {\n \"role\" : \"system\",\n \"content\" : \"you are a thoughtful assistant\"\n }, {\n \"role\" : \"user\",\n \"content\" : \"Count from 1 to 10 slowly.\"\n } ],\n \"temperature\" : 0.0,\n \"stream\" : true,\n \"stream_options\" : {\n \"include_usage\" : true\n },\n \"max_completion_tokens\" : 800,\n \"reasoning_effort\" : \"none\"\n}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "chat_completions-40b67b7e07db.txt", + "headers" : { + "x-request-id" : "req_b24a804084bc45acaead5fda3373b4ff", + "x-ratelimit-limit-tokens" : "180000000", + "openai-organization" : "braintrust-data", + "Server" : "cloudflare", + "CF-Ray" : "a56a04aebf7e5ea8-SEA", + "X-Content-Type-Options" : "nosniff", + "x-ratelimit-reset-requests" : "2ms", + "x-ratelimit-remaining-tokens" : "179999982", + "x-openai-proxy-wasm" : "v0.1", + "x-ratelimit-remaining-requests" : "29999", + "Date" : "Sat, 07 Nov 2026 05:43:05 GMT", + "x-ratelimit-reset-tokens" : "0s", + "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=ztwBx3Rdz3o7SynBBBzA22xhz.kvId_nCuCG7pY7GlI-1794030184.7592905-1.0.1.1-LdvyUcM3NZFc.nxn5.X0PTiKZ9whhhg7sJJJqAZmr8ByNZsa.MMdf_jztJIoRwKWfDOMxJVmRn_vWQsy_zffsBw4AEEaVQCbVlCA5eArudyNwPGp0m4AKgS61y9NAQAQ; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:05 GMT", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", + "CF-Cache-Status" : "DYNAMIC", + "x-ratelimit-limit-requests" : "30000", + "openai-version" : "2020-10-01", + "openai-processing-ms" : "542", + "alt-svc" : "h3=\":443\"; ma=86400", + "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", + "Content-Type" : "text/event-stream; charset=utf-8" + } + }, + "uuid" : "b215d874-711f-3673-b771-6f0ba5b4e0ee", + "persistent" : true, + "scenarioName" : "scenario-4-chat-completions", + "requiredScenarioState" : "Started", + "newScenarioState" : "scenario-4-chat-completions-2", + "insertionIndex" : 25 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-41fec2dc517f.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-41fec2dc517f.json deleted file mode 100644 index b9a77995..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-41fec2dc517f.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "id" : "1353e449-1d1c-39d0-b1c8-f2536c0940ef", - "name" : "chat_completions", - "request" : { - "url" : "/chat/completions", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\n \"model\" : \"gpt-4o-mini\",\n \"messages\" : [ {\n \"role\" : \"system\",\n \"content\" : \"you are a thoughtful assistant\"\n }, {\n \"role\" : \"user\",\n \"content\" : \"Count from 1 to 10 slowly.\"\n } ],\n \"temperature\" : 0.0,\n \"stream\" : true,\n \"stream_options\" : {\n \"include_usage\" : true\n },\n \"max_tokens\" : 800\n}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "chat_completions-41fec2dc517f.txt", - "headers" : { - "x-request-id" : "req_0af097fcf9a144c18a1ff58d85b1916a", - "x-ratelimit-limit-tokens" : "150000000", - "openai-organization" : "braintrust-data", - "Server" : "cloudflare", - "CF-Ray" : "a33dccb74842a328-SEA", - "X-Content-Type-Options" : "nosniff", - "x-ratelimit-reset-requests" : "2ms", - "x-ratelimit-remaining-tokens" : "149999985", - "x-openai-proxy-wasm" : "v0.1", - "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:36:50 GMT", - "x-ratelimit-reset-tokens" : "0s", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=wowfqTPdgSVzUQspQfvbQAZ0UtNSPoRZIjmhGNETQxw-1788197809.810948-1.0.1.1-G9Vy..eiWlPfelaaRL8oXsYPO63lVFzBzbCQ0OPxg_aXGWRUYbNR5IGfZFOY_8cT4oydm4woqPmxdjvslrC43A.YplAB_rI51.vkSrWwfM8ADh1clLyQoOisTJ.erBMV; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:06:50 GMT", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", - "CF-Cache-Status" : "DYNAMIC", - "x-ratelimit-limit-requests" : "30000", - "openai-version" : "2020-10-01", - "openai-processing-ms" : "433", - "alt-svc" : "h3=\":443\"; ma=86400", - "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", - "Content-Type" : "text/event-stream; charset=utf-8" - } - }, - "uuid" : "1353e449-1d1c-39d0-b1c8-f2536c0940ef", - "persistent" : true, - "scenarioName" : "scenario-6-chat-completions", - "requiredScenarioState" : "Started", - "newScenarioState" : "scenario-6-chat-completions-2", - "insertionIndex" : 30 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-538b5ad9c2fe.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-538b5ad9c2fe.json index b4a09c88..9c703ea4 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-538b5ad9c2fe.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-538b5ad9c2fe.json @@ -19,25 +19,25 @@ "status" : 200, "bodyFileName" : "chat_completions-538b5ad9c2fe.txt", "headers" : { - "x-request-id" : "req_49751af677f545c8a83994cb2d3d20e2", + "x-request-id" : "req_c25fc3856f7642c9a4ff2aa17598551b", "x-ratelimit-limit-tokens" : "30000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dd6e7de4bc3ca-SEA", + "CF-Ray" : "a56a0b0cca4953dd-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "6ms", "x-ratelimit-remaining-tokens" : "29999988", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "9999", - "Date" : "Mon, 31 Aug 2026 17:43:47 GMT", + "Date" : "Sat, 07 Nov 2026 05:47:26 GMT", "x-ratelimit-reset-tokens" : "0s", "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=7STpxAjOdGcGPD9yOcXp_Pus..vAE0UCFvC5NHKG2yw-1788198227.174276-1.0.1.1-5PeWbKAMmfsqAYRlNM5Qbf5iAV2ULl7JxynE6xOMVZfwwQRZtxWiRaCMC6biOpOZ4McP_MW6quxgmydJpxahLERUsImLhy71uXVaNHGkauwCkY4MZ6zfNYOjo7GPaDTZ; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:13:47 GMT", + "set-cookie" : "__cf_bm=Ez3IzM27uUYmX6EqR5wCZrOqFjAYqpZonpa.HwtARis-1794030445.573184-1.0.1.1-M4hKUBxwlnp12vpV2PipsoZy70eNr0ehVeIE7t2ixeptOxe2RG7ejwxWETmiHXtqPyc5Ob1lzDWfKCe0g3nGvpNU35ng3TSjAFicXYl9dVplYQR3LrLHiiQhP9HdHIZA; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:17:26 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "10000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "357", + "openai-processing-ms" : "382", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "text/event-stream; charset=utf-8" @@ -45,5 +45,5 @@ }, "uuid" : "0b3f949e-8eed-3c3a-ba30-2d5a34244a85", "persistent" : true, - "insertionIndex" : 53 + "insertionIndex" : 62 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-114a3fe592b5.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-5411324c796f.json similarity index 54% rename from test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-114a3fe592b5.json rename to test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-5411324c796f.json index ccd1df18..0de8202a 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-114a3fe592b5.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-5411324c796f.json @@ -1,5 +1,5 @@ { - "id" : "50c9943b-632e-3dff-8453-f59bd1273f29", + "id" : "95dc8ed1-1344-3253-a37a-f659d35e4559", "name" : "chat_completions", "request" : { "url" : "/chat/completions", @@ -10,40 +10,40 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"messages\":[{\"content\":\"you are a concise assistant\",\"role\":\"system\"},{\"content\":\"Say hello in one word.\",\"role\":\"user\"}],\"model\":\"gpt-4o-mini\",\"max_tokens\":100,\"n\":2,\"stream\":true,\"stream_options\":{\"include_usage\":true},\"temperature\":0.0}", + "equalToJson" : "{\"messages\":[{\"content\":\"you are a concise assistant\",\"role\":\"system\"},{\"content\":\"Say hello in one word.\",\"role\":\"user\"}],\"model\":\"gpt-6-luna\",\"stream_options\":{\"include_obfuscation\":false,\"include_usage\":true},\"reasoning_effort\":\"none\",\"max_completion_tokens\":100,\"temperature\":0.0,\"n\":2,\"stream\":true}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "chat_completions-114a3fe592b5.txt", + "bodyFileName" : "chat_completions-5411324c796f.txt", "headers" : { - "x-request-id" : "req_49bda8f5c15e4397a63dd76bd76e4d0e", - "x-ratelimit-limit-tokens" : "150000000", + "x-request-id" : "req_386a3611245943cb8dca201fde2dda74", + "x-ratelimit-limit-tokens" : "180000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dcd70c88f9304-SEA", + "CF-Ray" : "a56a04c91f1fa49b-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", - "x-ratelimit-remaining-tokens" : "149999982", + "x-ratelimit-remaining-tokens" : "179999982", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:37:19 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:09 GMT", "x-ratelimit-reset-tokens" : "0s", "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=zxJrkumm460Rs7yhreIZ1YAabtR8nb8TiBWwBYh2tlY-1788197839.4902549-1.0.1.1-l3oW6w40rSQ4muwL8tHLebWUyodp14mv_gFZNPKkbO_KFu0GAEaQ0fYcrBagmlllGURgj9TjGP4fJRlagB7GVD4akIfYQUQzzP39tRh6zlD92TxUL07sB356.4fTE2qV; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:07:19 GMT", + "set-cookie" : "__cf_bm=wGpxLUqlwY_AwMdgEMYu27.ZvKdBRbSH0vZbK9HZbss-1794030188.9783545-1.0.1.1-fQ5PWLY7EZ85v8iboPBUsWDXJoYh0Cxrhn8rCeIqRS9aW8j0bWxcUd89gvWffGRoF6iSk5nfGIHxvlLXaGsDnTcqf.WT1MsPXGMzoM5oG7mxKyzeaA_0mU.CN.pU6BQX; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:09 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "334", + "openai-processing-ms" : "478", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "text/event-stream; charset=utf-8" } }, - "uuid" : "50c9943b-632e-3dff-8453-f59bd1273f29", + "uuid" : "95dc8ed1-1344-3253-a37a-f659d35e4559", "persistent" : true, - "insertionIndex" : 15 + "insertionIndex" : 19 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-7aec0dd2e530.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-5e84f11b9aa8.json similarity index 52% rename from test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-7aec0dd2e530.json rename to test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-5e84f11b9aa8.json index ab29c822..87a32ec0 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-7aec0dd2e530.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-5e84f11b9aa8.json @@ -1,5 +1,5 @@ { - "id" : "309e7d9a-af7f-308a-bdc7-612e51aa96f1", + "id" : "d6419088-ceae-3c9d-a13f-49818e4b35f7", "name" : "chat_completions", "request" : { "url" : "/chat/completions", @@ -10,42 +10,42 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\n \"model\" : \"o4-mini\",\n \"messages\" : [ {\n \"role\" : \"user\",\n \"content\" : \"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\\n\"\n } ],\n \"stream\" : false,\n \"reasoning_effort\" : \"medium\"\n}", + "equalToJson" : "{\n \"model\" : \"gpt-6-luna\",\n \"messages\" : [ {\n \"role\" : \"user\",\n \"content\" : \"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\\n\"\n } ],\n \"stream\" : false,\n \"reasoning_effort\" : \"medium\"\n}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "chat_completions-7aec0dd2e530.json", + "bodyFileName" : "chat_completions-5e84f11b9aa8.json", "headers" : { - "x-request-id" : "req_85ae7fc5c2414e7b9553e77e81f69eb9", - "x-ratelimit-limit-tokens" : "150000000", + "x-request-id" : "req_7920a6cd9a6e4c9eaf1a7bf61fb0f8f6", + "x-ratelimit-limit-tokens" : "180000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dce1fecf84224-SEA", + "CF-Ray" : "a56a05523e2f38c6-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", - "x-ratelimit-remaining-tokens" : "149999970", + "x-ratelimit-remaining-tokens" : "179999970", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:37:54 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:32 GMT", "x-ratelimit-reset-tokens" : "0s", "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=2.SCzQK3hzrmx0Nec_7BE1ENrUzcj6tT4QKroOcOdMg-1788197867.5061102-1.0.1.1-Ef9ZdUSY.UlW7v0eQtWzSJU1qj0Rx3VGkj7TfY1rlYitdvUndLG8Gb7aFqMPBcXhUaseajYETB0tM7e5I6siRGCru0YEaM__Bd4KK3GbbSUhIaMfAWLKHP2D_BGJSebM; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:07:54 GMT", + "set-cookie" : "__cf_bm=eELljlcevmZ_e9gu89.1vtOijP0yXouDXjrowlXuYng-1794030210.9151053-1.0.1.1-udDOgpUgfkyXM0dT.A3n_VimxNnPhOd6UZcmMhvgl4VDSZST6EONGNJ0APwVmylM7aZjgtcn.uPIuzAA6mN8TU2wkdPEYE3bIZ6BFm575y5OQnnhouqTr1mvXtzCfcG6; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:32 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "6871", + "openai-processing-ms" : "1886", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json" } }, - "uuid" : "309e7d9a-af7f-308a-bdc7-612e51aa96f1", + "uuid" : "d6419088-ceae-3c9d-a13f-49818e4b35f7", "persistent" : true, "scenarioName" : "scenario-1-chat-completions", "requiredScenarioState" : "scenario-1-chat-completions-2", - "insertionIndex" : 3 + "insertionIndex" : 1 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-5fc2cb6e67af.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-5fc2cb6e67af.json new file mode 100644 index 00000000..1c6d97ad --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-5fc2cb6e67af.json @@ -0,0 +1,51 @@ +{ + "id" : "1dbb0443-842a-37ea-a121-e0a0ba84c9bc", + "name" : "chat_completions", + "request" : { + "url" : "/chat/completions", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\n \"model\" : \"gpt-6-luna\",\n \"messages\" : [ {\n \"role\" : \"user\",\n \"content\" : \"What is the weather like in Paris, France?\"\n } ],\n \"temperature\" : 0.0,\n \"stream\" : false,\n \"max_completion_tokens\" : 500,\n \"tools\" : [ {\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"get_weather\",\n \"description\" : \"Get the current weather for a location\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"location\" : {\n \"type\" : \"string\",\n \"description\" : \"The city and state, e.g. San Francisco, CA\"\n },\n \"unit\" : {\n \"type\" : \"string\",\n \"enum\" : [ \"celsius\", \"fahrenheit\" ],\n \"description\" : \"The unit of temperature\"\n }\n },\n \"required\" : [ \"location\" ]\n }\n }\n } ],\n \"reasoning_effort\" : \"none\"\n}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "chat_completions-5fc2cb6e67af.json", + "headers" : { + "x-request-id" : "req_5137fa386906410e8f703565540a4e96", + "x-ratelimit-limit-tokens" : "180000000", + "openai-organization" : "braintrust-data", + "Server" : "cloudflare", + "CF-Ray" : "a56a04d2ed96e477-SEA", + "X-Content-Type-Options" : "nosniff", + "x-ratelimit-reset-requests" : "2ms", + "x-ratelimit-remaining-tokens" : "179999985", + "x-openai-proxy-wasm" : "v0.1", + "x-ratelimit-remaining-requests" : "29999", + "Date" : "Sat, 07 Nov 2026 05:43:11 GMT", + "x-ratelimit-reset-tokens" : "0s", + "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=iafTG_adpkwhvQByT.2DwnqxBY_fsVLJbnRQ2X6zpE8-1794030190.5426497-1.0.1.1-bhRMx4PwPz8N9NepCwavpsme16VdqBBBm1IkrPr48Ds_iZeTpGCHt1BZc3jW7WOx3n0vsTBLoe10O8DBHAYuKsdbBmzoMpfOdg5aakyNgCdpxhOktJ8nIIQpHNW22Yc6; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:11 GMT", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", + "CF-Cache-Status" : "DYNAMIC", + "x-ratelimit-limit-requests" : "30000", + "openai-version" : "2020-10-01", + "openai-processing-ms" : "640", + "alt-svc" : "h3=\":443\"; ma=86400", + "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", + "Content-Type" : "application/json" + } + }, + "uuid" : "1dbb0443-842a-37ea-a121-e0a0ba84c9bc", + "persistent" : true, + "scenarioName" : "scenario-3-chat-completions", + "requiredScenarioState" : "scenario-3-chat-completions-2", + "insertionIndex" : 14 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-e6c815d5be16.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-627aafbf4ba9.json similarity index 51% rename from test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-e6c815d5be16.json rename to test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-627aafbf4ba9.json index 2aa0b35d..b7e51434 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-e6c815d5be16.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-627aafbf4ba9.json @@ -1,5 +1,5 @@ { - "id" : "e8074629-00de-3926-9d37-43fdeb53ede2", + "id" : "04440e81-6f7e-330d-900a-d327a8d47b5f", "name" : "chat_completions", "request" : { "url" : "/chat/completions", @@ -10,40 +10,40 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\n \"model\" : \"gpt-4o-mini\",\n \"messages\" : [ {\n \"role\" : \"user\",\n \"content\" : \"is it hotter in Paris or New York right now?\"\n } ],\n \"temperature\" : 0.0,\n \"stream\" : false,\n \"tools\" : [ {\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"getWeather\",\n \"description\" : \"Get current weather for a location\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"arg0\" : {\n \"type\" : \"string\"\n }\n },\n \"required\" : [ \"arg0\" ]\n }\n }\n }, {\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"getForecast\",\n \"description\" : \"Get weather forecast for next N days\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"arg0\" : {\n \"type\" : \"string\"\n },\n \"arg1\" : {\n \"type\" : \"integer\"\n }\n },\n \"required\" : [ \"arg0\", \"arg1\" ]\n }\n }\n } ]\n}", + "equalToJson" : "{\n \"model\" : \"gpt-4o-mini\",\n \"messages\" : [ {\n \"role\" : \"user\",\n \"content\" : \"is it hotter in Paris or New York right now?\"\n } ],\n \"temperature\" : 0.0,\n \"stream\" : false,\n \"tools\" : [ {\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"getForecast\",\n \"description\" : \"Get weather forecast for next N days\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"arg0\" : {\n \"type\" : \"string\"\n },\n \"arg1\" : {\n \"type\" : \"integer\"\n }\n },\n \"required\" : [ \"arg0\", \"arg1\" ]\n }\n }\n }, {\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"getWeather\",\n \"description\" : \"Get current weather for a location\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"arg0\" : {\n \"type\" : \"string\"\n }\n },\n \"required\" : [ \"arg0\" ]\n }\n }\n } ]\n}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "chat_completions-e6c815d5be16.json", + "bodyFileName" : "chat_completions-627aafbf4ba9.json", "headers" : { - "x-request-id" : "req_ab7771f38f784b66b5a47fce823ea171", + "x-request-id" : "req_86c0db61dc8d47ce9c4264d61443caf1", "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dd3719a2a7598-SEA", + "CF-Ray" : "a56a0aa5eb1d2b03-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", "x-ratelimit-remaining-tokens" : "149999987", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:41:26 GMT", + "Date" : "Sat, 07 Nov 2026 05:47:09 GMT", "x-ratelimit-reset-tokens" : "0s", "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=1YnuYiJkyh8D2VAl7YHHRymUs0.jIjd0xtexSCT07mE-1788198085.3736076-1.0.1.1-U4nFfobiQjWyt1x0m6pFGgLj2gAhAhZ8l__NV0DMWhB2jXJy8DVwpZQmDAc8R5uSbtm5Tx4NqPKiD_ZAWqgaRkmAgeOvZ7zi.Euq1xc_Fejhh.BnR.qHKsn3OK9.U74b; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:11:26 GMT", + "set-cookie" : "__cf_bm=mEyDK4_VgUxz1MY4fVOihnCA5ANU2OmQakh3mv7XC3M-1794030429.1027172-1.0.1.1-T.uocc6sCzB6WujjqaxpEDjGWznIWNJnFuQX0dfPqF77wMjFQGgnRITnFZL9QyEwq.lJVFb84I0R3tR_Z_rwLCOma32hKoCpTG6Kl4RLgAHPFdwo.EuqjnPP_g69xM.S; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:17:09 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "823", + "openai-processing-ms" : "805", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json" } }, - "uuid" : "e8074629-00de-3926-9d37-43fdeb53ede2", + "uuid" : "04440e81-6f7e-330d-900a-d327a8d47b5f", "persistent" : true, - "insertionIndex" : 43 + "insertionIndex" : 47 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-94957db25a8e.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-6c17ece63fb3.json similarity index 60% rename from test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-94957db25a8e.json rename to test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-6c17ece63fb3.json index 4c49fcce..808abeb2 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-94957db25a8e.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-6c17ece63fb3.json @@ -1,5 +1,5 @@ { - "id" : "b4437717-d973-3833-bb0d-87425a0426e4", + "id" : "f821461a-6d14-38ca-8c51-cd94bae1eca9", "name" : "chat_completions", "request" : { "url" : "/chat/completions", @@ -10,40 +10,40 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"messages\":[{\"content\":\"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\\n\",\"role\":\"user\"}],\"model\":\"o4-mini\",\"reasoning_effort\":\"medium\"}", + "equalToJson" : "{\"messages\":[{\"content\":\"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\\n\",\"role\":\"user\"}],\"model\":\"gpt-6-luna\",\"reasoning_effort\":\"medium\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "chat_completions-94957db25a8e.json", + "bodyFileName" : "chat_completions-6c17ece63fb3.json", "headers" : { "Server" : "cloudflare", "x-ratelimit-reset-tokens" : "0s", - "set-cookie" : "__cf_bm=UjTbMUkoXXztYxVPuWZbWB9bqGxmLws25My.HtuIAtE-1788197830.8961456-1.0.1.1-mtDl2NkD2jbtcXx2iOIav6bCSia9EkYA8vYxuOfY76OyoPCYzDcCms9SA8EEgr0W8LXmYAj4cLh1o7vTgy0VTwbrVxWCcRuXEMSm511EB54o1ESffhywKgrrhe02nac0; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:07:20 GMT", + "set-cookie" : "__cf_bm=.kUaUH30gyxRiA0G28JS8n_2CZvz.yB1QTbCgsYbYMs-1794030188.2304943-1.0.1.1-QYd8PgvqF4NLqBKyBZNtpeGdMnXmcsgqVL2hs_wbRem.COlwQka72w1bzV1xdVmAPEl2gSlBZivaJpXRlQYU.9AVOdeGhjpI0PEbRICX0aaoHaA0Y_LpwkxJc2N6ZN8F; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:10 GMT", "Access-Control-Expose-Headers" : [ "CF-Ray", "X-Request-ID", "CF-Ray" ], "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json", - "x-request-id" : "req_98b5c7942be64564b02bea7c7eb7bb47", - "x-ratelimit-limit-tokens" : "150000000", + "x-request-id" : "req_f713a8cb8c7a45c29ff97e12d7fc52b8", + "x-ratelimit-limit-tokens" : "180000000", "openai-organization" : "braintrust-data", - "CF-Ray" : "a33dcd3b1b62df15-SEA", + "CF-Ray" : "a56a04c46ba1c96d-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", - "x-ratelimit-remaining-tokens" : "149999970", + "x-ratelimit-remaining-tokens" : "179999970", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:37:20 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:10 GMT", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "9733", + "openai-processing-ms" : "2071", "alt-svc" : "h3=\":443\"; ma=86400" } }, - "uuid" : "b4437717-d973-3833-bb0d-87425a0426e4", + "uuid" : "f821461a-6d14-38ca-8c51-cd94bae1eca9", "persistent" : true, - "insertionIndex" : 14 + "insertionIndex" : 17 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-6d5f19c8f2ab.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-6d5f19c8f2ab.json index 21f28bd7..1df42186 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-6d5f19c8f2ab.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-6d5f19c8f2ab.json @@ -21,29 +21,29 @@ "headers" : { "Server" : "cloudflare", "x-ratelimit-reset-tokens" : "0s", - "set-cookie" : "__cf_bm=zeSS5J6rCYoPBPmI_ADfYlsccthwXRyaX0Zxhx2ccsU-1788198275.9974582-1.0.1.1-A7ayZwmtZ4Dydfj5wJjXcNwfcMdn1uWe8jLcaod3vzpmZfrqEF_4VgwkfRL2z2EyLLdYndOXgOV8_zEavhDiJZdVEpvwk072bvK_3dut8XLFKo0KEf2Hvb_S11zs.mS9; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:14:36 GMT", + "set-cookie" : "__cf_bm=eqtJqEsL8gwJlnxsNgj6cDKoIHIWI8aIhT3aiHDzG6s-1794030519.1560042-1.0.1.1-rdpVLaciO6jU6.1OHy5xkkNvHfAhdyH1IstT2hXk28.7HlJsIP_I1sK0An3z4.UoEgtzoiz9LAYtwTHsFc0R.SwJT9VjXpA4xkb7pO6ZpPQhBw1JFJS6PHKEA7vNjQ9L; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:18:39 GMT", "Access-Control-Expose-Headers" : [ "CF-Ray", "X-Request-ID", "CF-Ray" ], "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json", - "x-request-id" : "req_ae2582e5665e44b5aa54d2410a0b1e92", + "x-request-id" : "req_e2133d0258064153aba6229284fccd73", "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", - "CF-Ray" : "a33dd818fa904f60-SEA", + "CF-Ray" : "a56a0cd8ba76756b-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", "x-ratelimit-remaining-tokens" : "149999990", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:44:36 GMT", + "Date" : "Sat, 07 Nov 2026 05:48:39 GMT", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "535", + "openai-processing-ms" : "480", "alt-svc" : "h3=\":443\"; ma=86400" } }, "uuid" : "742e3656-deb5-341a-a21b-9b64c8bdb40b", "persistent" : true, - "insertionIndex" : 60 + "insertionIndex" : 69 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-f9231c22ca2c.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-6f54f60e7b4a.json similarity index 51% rename from test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-f9231c22ca2c.json rename to test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-6f54f60e7b4a.json index 9450a84d..a349ced9 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-f9231c22ca2c.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-6f54f60e7b4a.json @@ -1,5 +1,5 @@ { - "id" : "5934fea7-30d8-33bf-8e17-6f35eeb1b1fb", + "id" : "776c2ec5-e7b9-348f-9200-f80b029f56aa", "name" : "chat_completions", "request" : { "url" : "/chat/completions", @@ -10,42 +10,42 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\n \"model\" : \"gpt-4o-mini\",\n \"messages\" : [ {\n \"role\" : \"system\",\n \"content\" : \"you are a helpful assistant\"\n }, {\n \"role\" : \"user\",\n \"content\" : \"What is the capital of France?\"\n } ],\n \"temperature\" : 0.0,\n \"stream\" : false\n}", + "equalToJson" : "{\n \"model\" : \"gpt-6-luna\",\n \"messages\" : [ {\n \"role\" : \"system\",\n \"content\" : \"you are a helpful assistant\"\n }, {\n \"role\" : \"user\",\n \"content\" : \"What is the capital of France?\"\n } ],\n \"temperature\" : 0.0,\n \"stream\" : false,\n \"reasoning_effort\" : \"none\"\n}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "chat_completions-f9231c22ca2c.json", + "bodyFileName" : "chat_completions-6f54f60e7b4a.json", "headers" : { - "x-request-id" : "req_aa66b81af82a47b5bf875b9b5cc87190", - "x-ratelimit-limit-tokens" : "150000000", + "x-request-id" : "req_2d736622460d4b0080c9f85a88892ef6", + "x-ratelimit-limit-tokens" : "180000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dcd8e1dad75d6-SEA", + "CF-Ray" : "a56a04e99d483295-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", - "x-ratelimit-remaining-tokens" : "149999980", + "x-ratelimit-remaining-tokens" : "179999982", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:37:24 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:14 GMT", "x-ratelimit-reset-tokens" : "0s", "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=BV2WDJflD99HRVKJRG8PtUpa9Emz8o7KvO2xflwDxwU-1788197844.1720397-1.0.1.1-Pmql5ICoIYZswqcvgPhW7_mN.ZPAhWsMGhSzwaNrxw30663g5zeKJt8OA5miBPUxCa_NQpAz712MWtB7JEp5J4E1jJfGex0XUAGKcPQlB94yhnJS1VSzTk1Sb9JM9coi; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:07:24 GMT", + "set-cookie" : "__cf_bm=ss1yRh5PqWk67oSwdhWbtHwmdVM.GqZFlmAPKtv1_kA-1794030194.1746323-1.0.1.1-ds0RegaeYQtUK3fW_RacBrETUYI7Vr4GCfNdVJuLyO4fRRNeDzJF0zmSlbWq631PgqriuaYujiZna_QD6CxBMauoYAO05Ecln_BDZytb7ZDSy0eEHXcai_eiW9Wd5vT1; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:14 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "692", + "openai-processing-ms" : "497", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json" } }, - "uuid" : "5934fea7-30d8-33bf-8e17-6f35eeb1b1fb", + "uuid" : "776c2ec5-e7b9-348f-9200-f80b029f56aa", "persistent" : true, "scenarioName" : "scenario-2-chat-completions", "requiredScenarioState" : "scenario-2-chat-completions-2", - "insertionIndex" : 8 + "insertionIndex" : 9 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-6f74c5653e73.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-6f74c5653e73.json index a16b35a7..9c7174d3 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-6f74c5653e73.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-6f74c5653e73.json @@ -19,13 +19,13 @@ "status" : 404, "bodyFileName" : "chat_completions-6f74c5653e73.json", "headers" : { - "x-request-id" : "req_030fafbd842f46f9ba160b07afe258bd", + "x-request-id" : "req_455c68067d504c1abf049037450a42fa", "Server" : "cloudflare", - "CF-Ray" : "a33dd70e1bea9917-SEA", + "CF-Ray" : "a56a0b7f7fc94d48-SEA", "X-Content-Type-Options" : "nosniff", "x-openai-proxy-wasm" : "v0.1", - "Date" : "Mon, 31 Aug 2026 17:43:53 GMT", - "set-cookie" : "__cf_bm=TJB9Gkry_6PQo8uNVS.tS8cxSowY0036H8ixtootQwA-1788198233.2963843-1.0.1.1-mKZ45vwZZ9IGbK3OEscJtNkQWO3nloZQT6r6_7lAdDzy1pyJFKgCJstgFRwsOY5iqhYqJht07.vpMxGqs93_wwsIzEPQCc.FxvTJH0iJCFh9IRupwUxRJbmlGz4xssBG; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:13:53 GMT", + "Date" : "Sat, 07 Nov 2026 05:47:44 GMT", + "set-cookie" : "__cf_bm=LmRz77yxpRfIrDS8qJOVgywTo2s98b8.g5MD1E9.o3E-1794030463.9174826-1.0.1.1-goj_fI.M6bGRi725Eyo4tQ26gmy5y__MZDxe94yyYZC3NIBqRBh4HtvyutgRhKRqJYg.a679nLDjQXdDhyxy80hULXuqDV9gGceS1CMgB8bCeg8IUdPuUuOfAak3Dzee; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:17:44 GMT", "Access-Control-Expose-Headers" : [ "CF-Ray", "CF-Ray" ], "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", @@ -36,5 +36,5 @@ }, "uuid" : "8644d738-98a1-3e0d-a6a1-a4be31ef694b", "persistent" : true, - "insertionIndex" : 51 + "insertionIndex" : 58 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-90442b2c483a.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-7062e2be5a4f.json similarity index 56% rename from test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-90442b2c483a.json rename to test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-7062e2be5a4f.json index 0c310c32..a468feb0 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-90442b2c483a.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-7062e2be5a4f.json @@ -1,5 +1,5 @@ { - "id" : "ff55e1d4-4ea9-3e7b-bda0-baf5fdf29949", + "id" : "bb27a1a8-de9b-3b58-b15d-7df38f369458", "name" : "chat_completions", "request" : { "url" : "/chat/completions", @@ -10,40 +10,40 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"messages\":[{\"content\":\"you are a helpful assistant\",\"role\":\"system\"},{\"content\":\"What is the capital of France?\",\"role\":\"user\"}],\"model\":\"gpt-4o-mini\",\"temperature\":0.0}", + "equalToJson" : "{\"messages\":[{\"content\":\"you are a helpful assistant\",\"role\":\"system\"},{\"content\":\"What is the capital of France?\",\"role\":\"user\"}],\"model\":\"gpt-6-luna\",\"stream\":false,\"temperature\":0.0,\"reasoning_effort\":\"none\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "chat_completions-90442b2c483a.json", + "bodyFileName" : "chat_completions-7062e2be5a4f.json", "headers" : { "Server" : "cloudflare", "x-ratelimit-reset-tokens" : "0s", - "set-cookie" : "__cf_bm=QG9lcMGDrLPYDCDwdVoWmUhwYhQYIKct8edB3k_LAM8-1788197845.0621397-1.0.1.1-rPJvNGjANo4dMPh1LY_QTqmm52hd_ACU2NXnfVTN1EnGy0X29I0HdR1vo00.wXso25jG_odYL4Bv8_SKq7c.CQdhSd4BJqI7D4Z367RdbM1U8FUMzxpdwnt2oVFRV2Vb; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:07:25 GMT", + "set-cookie" : "__cf_bm=qeKSw8Nsf6zj9ALPbFgNi6KOCUiQ.iqHVBwX0J.6I68-1794030193.314926-1.0.1.1-TqEVmbFPb7AdxnpBUbHb0O3oGd2c_XTVKaeT0h8SrEtmieeFbBoLwBmngru6IenOLDQNr_ikFJexezIIx.oPoQLYYpzXxCM4LWp9tCZc7c89CmbKNzXVXR8n0RsWaaP5; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:13 GMT", "Access-Control-Expose-Headers" : [ "CF-Ray", "X-Request-ID", "CF-Ray" ], "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json", - "x-request-id" : "req_cb8763dddd2c46e39adbf391b52e4a52", - "x-ratelimit-limit-tokens" : "150000000", + "x-request-id" : "req_4779af5bfece465aa517d52d429cfabc", + "x-ratelimit-limit-tokens" : "180000000", "openai-organization" : "braintrust-data", - "CF-Ray" : "a33dcd939df6758c-SEA", + "CF-Ray" : "a56a04e43f588383-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", - "x-ratelimit-remaining-tokens" : "149999982", + "x-ratelimit-remaining-tokens" : "179999982", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:37:25 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:13 GMT", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "554", + "openai-processing-ms" : "563", "alt-svc" : "h3=\":443\"; ma=86400" } }, - "uuid" : "ff55e1d4-4ea9-3e7b-bda0-baf5fdf29949", + "uuid" : "bb27a1a8-de9b-3b58-b15d-7df38f369458", "persistent" : true, - "insertionIndex" : 7 + "insertionIndex" : 10 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-70e93b55b322.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-70e93b55b322.json index 0d95c8a6..e708daac 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-70e93b55b322.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-70e93b55b322.json @@ -21,25 +21,25 @@ "headers" : { "Server" : "cloudflare", "x-ratelimit-reset-tokens" : "0s", - "set-cookie" : "__cf_bm=XR11KCF0UDJeYH5uG3j23imK.teWW9s0TKITvTV3dDE-1788198234.1338768-1.0.1.1-nydLeYfVXEsP0aoSfoqV7jcbTszD40bWUl5pVRnZnrRfcixeBENqjfPdVjtn8MONf7oNW5BnCwMiFuXKyq3vCOIpO5U19qy20Jspsk5Kh9Z_hqA8Q16TOESu6hvSukfl; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:13:54 GMT", + "set-cookie" : "__cf_bm=P3DQMYUGsrlYTOYir5gM4E1.gjSMpeSE4O1JegPr6rM-1794030465.5262873-1.0.1.1-W0b9XpweBJcHqMIHH7wGNdf.tmFKa3gmCAH7Q4WIYy7zp6c1bApoz57CMx5Z9ujFa6vjnBy2fl2oKlvIHoeHaTj1WrGK2XEXgb7MOJsZZZUVVdgofo2kxFO8syqYhWRz; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:17:46 GMT", "Access-Control-Expose-Headers" : [ "CF-Ray", "X-Request-ID", "CF-Ray" ], "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json", - "x-request-id" : "req_57cf8d888e6a484b82281e336013536a", + "x-request-id" : "req_59598504683e425aa371c09bb8410005", "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", - "CF-Ray" : "a33dd7135cbc1846-SEA", + "CF-Ray" : "a56a0b898a051c1b-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", "x-ratelimit-remaining-tokens" : "149999982", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:43:54 GMT", + "Date" : "Sat, 07 Nov 2026 05:47:46 GMT", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "494", + "openai-processing-ms" : "467", "alt-svc" : "h3=\":443\"; ma=86400" } }, @@ -48,5 +48,5 @@ "scenarioName" : "scenario-3-chat-completions", "requiredScenarioState" : "scenario-3-chat-completions-2", "newScenarioState" : "scenario-3-chat-completions-3", - "insertionIndex" : 50 + "insertionIndex" : 57 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-7183454301b7.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-7183454301b7.json new file mode 100644 index 00000000..e262c909 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-7183454301b7.json @@ -0,0 +1,55 @@ +{ + "id" : "e66c5208-2d5a-3b7f-8f44-435fda87157a", + "name" : "chat_completions", + "request" : { + "url" : "/chat/completions", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\n \"model\" : \"gpt-6-luna\",\n \"messages\" : [ {\n \"role\" : \"system\",\n \"content\" : \"you are a helpful assistant\"\n }, {\n \"role\" : \"user\",\n \"content\" : [ {\n \"type\" : \"text\",\n \"text\" : \"Briefly describe these attachments\"\n }, {\n \"type\" : \"image_url\",\n \"image_url\" : {\n \"url\" : \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8DwHwAFBQIAX8jx0gAAAABJRU5ErkJggg==\"\n }\n }, {\n \"type\" : \"file\",\n \"file\" : {\n \"file_data\" : \"data:application/pdf;base64,JVBERi0xLjAKMSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgPj4KZW5kb2JqCjIgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9LaWRzIFszIDAgUl0gL0NvdW50IDEgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL1R5cGUgL1BhZ2UgL1BhcmVudCAyIDAgUiAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXSA+PgplbmRvYmoKeHJlZgowIDQKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDA5IDAwMDAwIG4gCjAwMDAwMDAwNTggMDAwMDAgbiAKMDAwMDAwMDExNSAwMDAwMCBuIAp0cmFpbGVyCjw8IC9TaXplIDQgL1Jvb3QgMSAwIFIgPj4Kc3RhcnR4cmVmCjE5MAolJUVPRgo=\",\n \"filename\" : \"blank.pdf\"\n }\n } ]\n } ],\n \"temperature\" : 0.0,\n \"stream\" : false,\n \"reasoning_effort\" : \"none\"\n}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "chat_completions-7183454301b7.json", + "headers" : { + "Server" : "cloudflare", + "x-ratelimit-reset-input-images" : "1ms", + "x-ratelimit-reset-tokens" : "0s", + "x-ratelimit-limit-input-images" : "50000", + "set-cookie" : "__cf_bm=H.R7GWO8yfYYI0XdMeHxseY3RlIWtqs2U7_Bq3ZEaB8-1794030180.1857045-1.0.1.1-eDxJZ3JCF39TYRurHIEs19yEjpZvZTO_YFgZrH4EHuuY55tt8XkCXGbMg7fS1m0dhn8od1z1pIA8.3fDvDC0oNZqgFZRV6dMfwY.vUL4VmrdqhUt436B_iAdwUju_vXg; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:02 GMT", + "Access-Control-Expose-Headers" : [ "CF-Ray", "X-Request-ID", "CF-Ray" ], + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", + "x-ratelimit-remaining-input-images" : "49999", + "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", + "Content-Type" : "application/json", + "x-request-id" : "req_a5f334c805f54e65ac04ac233fcd6fae", + "x-ratelimit-limit-tokens" : "180000000", + "openai-organization" : "braintrust-data", + "CF-Ray" : "a56a04922fb0ec7c-SEA", + "X-Content-Type-Options" : "nosniff", + "x-ratelimit-reset-requests" : "2ms", + "x-ratelimit-remaining-tokens" : "179998452", + "x-openai-proxy-wasm" : "v0.1", + "x-ratelimit-remaining-requests" : "29999", + "Date" : "Sat, 07 Nov 2026 05:43:02 GMT", + "CF-Cache-Status" : "DYNAMIC", + "x-ratelimit-limit-requests" : "30000", + "openai-version" : "2020-10-01", + "openai-processing-ms" : "1020", + "alt-svc" : "h3=\":443\"; ma=86400" + } + }, + "uuid" : "e66c5208-2d5a-3b7f-8f44-435fda87157a", + "persistent" : true, + "scenarioName" : "scenario-6-chat-completions", + "requiredScenarioState" : "Started", + "newScenarioState" : "scenario-6-chat-completions-2", + "insertionIndex" : 35 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-72d686936d43.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-72d686936d43.json index f6e74c26..dd41c450 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-72d686936d43.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-72d686936d43.json @@ -19,25 +19,25 @@ "status" : 200, "bodyFileName" : "chat_completions-72d686936d43.txt", "headers" : { - "x-request-id" : "req_c0b86a9ef441438b90d7040378ade9ae", + "x-request-id" : "req_4289f86e66d74c74a7e7edbcc0b97674", "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dd7c3ec49767c-SEA", + "CF-Ray" : "a56a0c984d545829-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", "x-ratelimit-remaining-tokens" : "149999982", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:44:22 GMT", + "Date" : "Sat, 07 Nov 2026 05:48:29 GMT", "x-ratelimit-reset-tokens" : "0s", "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=VJGYhwuvQAq1cuiMaex5uulFSiF5H_mpyThmGRfV1UA-1788198262.3875618-1.0.1.1-yJ6OFRLx4iYtUd10xQFR_yigyDvk.MMd2V0siAI2vzE.9H2rHQzEBj1COAJyAv_UWMj11NuvcLj2p2QmsZTFPO5OKTTimFC3lEiz_bvA4mQGWYErhZtwSQt_bJuwcyt5; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:14:22 GMT", + "set-cookie" : "__cf_bm=N8RB4S0SmMFw9mece96u2InaQPUw4qxQjWNKBMBdYKk-1794030508.842355-1.0.1.1-ohdntfSogZn39H7TbdcPDVMVGlecAcwlDOOzvlvjOo5Am5ky97fXZ.l6f.WIQK0Q6vfT0bG.f867wtHbl5iJYu4DiijivzHl.9cw8d5PNVY1wGs.0TolgMXgSZJelv.Q; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:18:29 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "400", + "openai-processing-ms" : "258", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "text/event-stream; charset=utf-8" @@ -47,5 +47,5 @@ "persistent" : true, "scenarioName" : "scenario-1-chat-completions", "requiredScenarioState" : "scenario-1-chat-completions-2", - "insertionIndex" : 42 + "insertionIndex" : 48 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-7665ccbaa3f2.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-7665ccbaa3f2.json index d431ccaa..07d2de06 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-7665ccbaa3f2.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-7665ccbaa3f2.json @@ -19,25 +19,25 @@ "status" : 200, "bodyFileName" : "chat_completions-7665ccbaa3f2.txt", "headers" : { - "x-request-id" : "req_03a737778e434ac799fad07b27cefebb", + "x-request-id" : "req_64ab7c6886bd41e0af746023fe8575db", "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dd6db3c0c252d-SEA", + "CF-Ray" : "a56a0b06582aeb93-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", "x-ratelimit-remaining-tokens" : "149999982", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:43:45 GMT", + "Date" : "Sat, 07 Nov 2026 05:47:24 GMT", "x-ratelimit-reset-tokens" : "0s", "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=0fBZkwU8W5BpaptWf8.uzLIGddr3p3cpLVUyzQ6KVgc-1788198225.1590908-1.0.1.1-VctkQu.dmwsmys8fKDGnNhjyglgIjMwiK_A3HRDwkhF0idLSMC9Ea6DxBoII8UNbzvC2xplOZhXCSAbH.tJGq5LFR0_rxN6qEHPBd36aukD6aDv0FpsEr9LmKbKndNrG; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:13:45 GMT", + "set-cookie" : "__cf_bm=zwIouFkkruDZ7ZJ8DVxaRpFRUNJb2SDG7.2pU0IabAk-1794030444.539083-1.0.1.1-cVhXPXakURrX7DkJ2czzNn5gGqygYzkjlyt_VTaW7GPROJTrkwMaIIeumaTWjNCMpcluXwjsrdHYWhCUpqJxBZpf9XMeHdNaaImpgv1FqNlRvXXTLCqG5GuQGACWtFZl; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:17:24 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "440", + "openai-processing-ms" : "301", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "text/event-stream; charset=utf-8" @@ -48,5 +48,5 @@ "scenarioName" : "scenario-1-chat-completions", "requiredScenarioState" : "Started", "newScenarioState" : "scenario-1-chat-completions-2", - "insertionIndex" : 54 + "insertionIndex" : 63 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-7694b539a33b.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-7694b539a33b.json index 9ad0ff3d..0e74a352 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-7694b539a33b.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-7694b539a33b.json @@ -21,25 +21,25 @@ "headers" : { "Server" : "cloudflare", "x-ratelimit-reset-tokens" : "0s", - "set-cookie" : "__cf_bm=.JP1NIeQGdlHl__F8xOx5T2AO.TDl1BHdnGD3eaQSzs-1788198237.632514-1.0.1.1-6vwTieZDTG4waUIX1N0UX3ydXMInqlqRitlCCiedq_nfQ0.OExaZQwdsSNER3RGxo.D4V9nctxC9QMg2fYxpM42yd9LVBNNniPTiimdV9ZqORLib7ibVJc2RvMrI73in; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:13:58 GMT", + "set-cookie" : "__cf_bm=WTunvlYcOV7_6MdhyavITv38ZFIIA.bE_d.F9_MFwqE-1794030467.8246276-1.0.1.1-kRUmwp0oV6MFjIhMKLgvSWIL7cNpc98vkFTMpBGL5eNaIm55c55WnGBYGl4SipLb8GByrwrPE50Av8Dn.G14LQbQ2t9IAaH6peHyfsTA0TyDpjDYBiyKzjQGl6izYgn9; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:17:48 GMT", "Access-Control-Expose-Headers" : [ "CF-Ray", "X-Request-ID", "CF-Ray" ], "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json", - "x-request-id" : "req_b771fdf188994fcbbd4e91ff7911b1c3", + "x-request-id" : "req_3f3bc42d20af4c1aae7790ec600a7282", "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", - "CF-Ray" : "a33dd72938c1b9bb-SEA", + "CF-Ray" : "a56a0b97e8c9b12c-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", "x-ratelimit-remaining-tokens" : "149999982", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:43:58 GMT", + "Date" : "Sat, 07 Nov 2026 05:47:48 GMT", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "493", + "openai-processing-ms" : "392", "alt-svc" : "h3=\":443\"; ma=86400" } }, @@ -48,5 +48,5 @@ "scenarioName" : "scenario-3-chat-completions", "requiredScenarioState" : "scenario-3-chat-completions-3", "newScenarioState" : "scenario-3-chat-completions-4", - "insertionIndex" : 48 + "insertionIndex" : 55 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-8410b5fb4088.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-8410b5fb4088.json new file mode 100644 index 00000000..5e27a2b1 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-8410b5fb4088.json @@ -0,0 +1,51 @@ +{ + "id" : "c60c7889-b06d-3e7d-af5b-17d74a15a227", + "name" : "chat_completions", + "request" : { + "url" : "/chat/completions", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\n \"model\" : \"gpt-6-luna\",\n \"messages\" : [ {\n \"role\" : \"system\",\n \"content\" : \"you are a thoughtful assistant\"\n }, {\n \"role\" : \"user\",\n \"content\" : \"Count from 1 to 10 slowly.\"\n } ],\n \"temperature\" : 0.0,\n \"stream\" : true,\n \"stream_options\" : {\n \"include_usage\" : true\n },\n \"max_completion_tokens\" : 800,\n \"reasoning_effort\" : \"none\"\n}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "chat_completions-8410b5fb4088.txt", + "headers" : { + "x-request-id" : "req_715bc3f9f0234fe6a3237bdf17d96ea2", + "x-ratelimit-limit-tokens" : "180000000", + "openai-organization" : "braintrust-data", + "Server" : "cloudflare", + "CF-Ray" : "a56a04bc68234a0a-SEA", + "X-Content-Type-Options" : "nosniff", + "x-ratelimit-reset-requests" : "2ms", + "x-ratelimit-remaining-tokens" : "179999985", + "x-openai-proxy-wasm" : "v0.1", + "x-ratelimit-remaining-requests" : "29999", + "Date" : "Sat, 07 Nov 2026 05:43:07 GMT", + "x-ratelimit-reset-tokens" : "0s", + "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=L00YhU.1Xz_fE0xIvbXxvTH94AfpHTMJbE3XPCAhSgE-1794030186.9522033-1.0.1.1-zAuuILiD5oFpJgeNfCNN5urkW.Aroyuxchw4cB892UtqNUHG399wf0ZDSaeEvulqRdCHVVttgtdLUFOcEkUKhUglQJtiwfeEXJn2V3wjdyzPXdbZ8n18Ih7NkyVpOMGj; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:07 GMT", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", + "CF-Cache-Status" : "DYNAMIC", + "x-ratelimit-limit-requests" : "30000", + "openai-version" : "2020-10-01", + "openai-processing-ms" : "570", + "alt-svc" : "h3=\":443\"; ma=86400", + "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", + "Content-Type" : "text/event-stream; charset=utf-8" + } + }, + "uuid" : "c60c7889-b06d-3e7d-af5b-17d74a15a227", + "persistent" : true, + "scenarioName" : "scenario-4-chat-completions", + "requiredScenarioState" : "scenario-4-chat-completions-2", + "insertionIndex" : 22 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-a2986e43bb25.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-8af21027730b.json similarity index 55% rename from test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-a2986e43bb25.json rename to test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-8af21027730b.json index 1afd4b3e..7b32c0ad 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-a2986e43bb25.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-8af21027730b.json @@ -1,5 +1,5 @@ { - "id" : "7c1f0a33-265c-3052-ac2a-d4bf2c19279b", + "id" : "65e4fd15-c6fc-3e0a-a06b-c283a383cf05", "name" : "chat_completions", "request" : { "url" : "/chat/completions", @@ -10,40 +10,40 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"messages\":[{\"content\":\"you are a thoughtful assistant\",\"role\":\"system\"},{\"content\":\"Count from 1 to 10 slowly.\",\"role\":\"user\"}],\"model\":\"gpt-4o-mini\",\"stream_options\":{\"include_obfuscation\":false,\"include_usage\":true},\"max_tokens\":800,\"temperature\":0.0,\"stream\":true}", + "equalToJson" : "{\"messages\":[{\"content\":\"you are a thoughtful assistant\",\"role\":\"system\"},{\"content\":\"Count from 1 to 10 slowly.\",\"role\":\"user\"}],\"model\":\"gpt-6-luna\",\"max_completion_tokens\":800,\"reasoning_effort\":\"none\",\"stream_options\":{\"include_usage\":true},\"temperature\":0.0,\"stream\":true}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "chat_completions-a2986e43bb25.txt", + "bodyFileName" : "chat_completions-8af21027730b.txt", "headers" : { - "x-request-id" : "req_857fd1fb280e4286be76f1506aa791c3", - "x-ratelimit-limit-tokens" : "150000000", + "x-request-id" : "req_f95b36dfd671442eabea75b48040f439", + "x-ratelimit-limit-tokens" : "180000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dcd7e6c21ad8d-SEA", + "CF-Ray" : "a56a04a3acd2c723-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", - "x-ratelimit-remaining-tokens" : "149999982", + "x-ratelimit-remaining-tokens" : "179999982", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:37:22 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:03 GMT", "x-ratelimit-reset-tokens" : "0s", "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=l5ZB7BFJRN4BegGuRIcmz25HubFMpAmje24JaLUFC1c-1788197841.6684675-1.0.1.1-jhybPYi1kg2gdnSzIuUITFUpBEv9xaskRH.rOEquDUWUOglDePT9e.kqdmpZ3vn7H0QP66yn32npGDZd.Tsko5w3R54GtA0tCKjR.fKVEiVo5sAqexz68FzapQfvxxm0; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:07:22 GMT", + "set-cookie" : "__cf_bm=gT6g1mO6BtaUl9FTF6RWaycauy8YVRSTJlNkzq26csw-1794030182.9871979-1.0.1.1-3yQ82bc9VcfFA62WPj8KC4koufplSrEWeuvnNg.eGDNYZsqqUzs2s0y.RhzXjKB3kzbslfzEGbkYId_Xv0Lo4w8Th5K8I76pxJmR4aiB1NWKHEOdzoSVSd5FkOG91bsx; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:03 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "304", + "openai-processing-ms" : "585", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "text/event-stream; charset=utf-8" } }, - "uuid" : "7c1f0a33-265c-3052-ac2a-d4bf2c19279b", + "uuid" : "65e4fd15-c6fc-3e0a-a06b-c283a383cf05", "persistent" : true, - "insertionIndex" : 11 + "insertionIndex" : 29 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-96cfd62fa134.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-96cfd62fa134.json deleted file mode 100644 index d178d6bf..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-96cfd62fa134.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "id" : "22185e76-9e66-3800-b7f6-7dfd6f097ea8", - "name" : "chat_completions", - "request" : { - "url" : "/chat/completions", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\n \"model\" : \"gpt-4o\",\n \"messages\" : [ {\n \"role\" : \"user\",\n \"content\" : \"What is the weather like in Paris, France?\"\n } ],\n \"temperature\" : 0.0,\n \"stream\" : false,\n \"max_tokens\" : 500,\n \"tools\" : [ {\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"get_weather\",\n \"description\" : \"Get the current weather for a location\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"location\" : {\n \"type\" : \"string\",\n \"description\" : \"The city and state, e.g. San Francisco, CA\"\n },\n \"unit\" : {\n \"type\" : \"string\",\n \"enum\" : [ \"celsius\", \"fahrenheit\" ],\n \"description\" : \"The unit of temperature\"\n }\n },\n \"required\" : [ \"location\" ]\n }\n }\n } ]\n}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "chat_completions-96cfd62fa134.json", - "headers" : { - "x-request-id" : "req_22a4699c26ba47ef8d7123f2a4f50603", - "x-ratelimit-limit-tokens" : "30000000", - "openai-organization" : "braintrust-data", - "Server" : "cloudflare", - "CF-Ray" : "a33dcca85b8468f2-SEA", - "X-Content-Type-Options" : "nosniff", - "x-ratelimit-reset-requests" : "6ms", - "x-ratelimit-remaining-tokens" : "29999987", - "x-openai-proxy-wasm" : "v0.1", - "x-ratelimit-remaining-requests" : "9999", - "Date" : "Mon, 31 Aug 2026 17:36:48 GMT", - "x-ratelimit-reset-tokens" : "0s", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=mTC18XcPy0BLW1YCQ2ZRzxjSZiWRcX6.Lw.whQ3Sv7k-1788197807.411899-1.0.1.1-xOivG5SyjnThJM3UW3eWexw_4HC5R3UVyXvN2tJb7xrhaoKYc7Hd36Cct2QsH6nWQQqrEkSgjXZufcYyzbT23xSwpmqFjRXeiIhZiIoVAjBlyKLNOWZ0QzeIZd2C7BIw; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:06:48 GMT", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", - "CF-Cache-Status" : "DYNAMIC", - "x-ratelimit-limit-requests" : "10000", - "openai-version" : "2020-10-01", - "openai-processing-ms" : "496", - "alt-svc" : "h3=\":443\"; ma=86400", - "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", - "Content-Type" : "application/json" - } - }, - "uuid" : "22185e76-9e66-3800-b7f6-7dfd6f097ea8", - "persistent" : true, - "scenarioName" : "scenario-4-chat-completions", - "requiredScenarioState" : "Started", - "newScenarioState" : "scenario-4-chat-completions-2", - "insertionIndex" : 35 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-4d01f33ddf1d.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-9b047516da72.json similarity index 52% rename from test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-4d01f33ddf1d.json rename to test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-9b047516da72.json index 9653e92e..bccbad61 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-4d01f33ddf1d.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-9b047516da72.json @@ -1,5 +1,5 @@ { - "id" : "bd4ed7df-eaba-3cc6-bb88-0e14835711e2", + "id" : "390e83c2-7539-313d-8a45-59407414c1c2", "name" : "chat_completions", "request" : { "url" : "/chat/completions", @@ -10,43 +10,43 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\n \"model\" : \"gpt-4o-mini\",\n \"messages\" : [ {\n \"role\" : \"system\",\n \"content\" : \"you are a helpful assistant\"\n }, {\n \"role\" : \"user\",\n \"content\" : \"What is the capital of France?\"\n } ],\n \"temperature\" : 0.0,\n \"stream\" : false\n}", + "equalToJson" : "{\n \"model\" : \"gpt-6-luna\",\n \"messages\" : [ {\n \"role\" : \"system\",\n \"content\" : \"you are a helpful assistant\"\n }, {\n \"role\" : \"user\",\n \"content\" : \"What is the capital of France?\"\n } ],\n \"temperature\" : 0.0,\n \"stream\" : false,\n \"reasoning_effort\" : \"none\"\n}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "chat_completions-4d01f33ddf1d.json", + "bodyFileName" : "chat_completions-9b047516da72.json", "headers" : { - "x-request-id" : "req_5a9d76eb59aa40c0a0761509297770e7", - "x-ratelimit-limit-tokens" : "150000000", + "x-request-id" : "req_8a707183d5bf4c52820f7a4d112de369", + "x-ratelimit-limit-tokens" : "180000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dccbbcb22ec80-SEA", + "CF-Ray" : "a56a04dddda4f37f-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", - "x-ratelimit-remaining-tokens" : "149999982", + "x-ratelimit-remaining-tokens" : "179999982", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:36:51 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:13 GMT", "x-ratelimit-reset-tokens" : "0s", "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=1w0eBjDbEr8F4HekfbpJpnF070qamLvn_1qgeo8Di8E-1788197810.529692-1.0.1.1-ytxfKG11TG53ScKnVuVLqPscaUsh3nukU3UaNFsnOlp71bNE1ZAIjgRjSWU.XGNErG0rXCNhqFZ3mwDJi_wPa8gmhh_.T7RSYPSbcPaoDPnVRdsnmqhuGMr_LG3np8Aq; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:06:51 GMT", + "set-cookie" : "__cf_bm=4q2LCtRlsYYkQiZ6BdHT49kyp4b8h8kxsVO7UjB_iVw-1794030192.2925396-1.0.1.1-X6_GK_E3mEHfJq_zNjJ8FwMPeEJTktbbcEsyO4HKqEEYerDguN18TiPoOn33YMjnBn1dIAwFhtgO1VkDxvxFs.epxqZYRPBIvT4hU.lysBXOMPi5hHXhEo.pYTpnQECc; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:13 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "709", + "openai-processing-ms" : "654", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json" } }, - "uuid" : "bd4ed7df-eaba-3cc6-bb88-0e14835711e2", + "uuid" : "390e83c2-7539-313d-8a45-59407414c1c2", "persistent" : true, "scenarioName" : "scenario-2-chat-completions", "requiredScenarioState" : "Started", "newScenarioState" : "scenario-2-chat-completions-2", - "insertionIndex" : 29 + "insertionIndex" : 12 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-b5bcb38ce8df.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-9ce4f9f0e189.json similarity index 59% rename from test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-b5bcb38ce8df.json rename to test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-9ce4f9f0e189.json index 2c0f9327..53cf7b33 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-b5bcb38ce8df.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-9ce4f9f0e189.json @@ -1,5 +1,5 @@ { - "id" : "2c18cacf-35a1-374b-9f56-93255fa2c5ec", + "id" : "abde9297-125e-32d0-9a80-2bd99d87911a", "name" : "chat_completions", "request" : { "url" : "/chat/completions", @@ -10,40 +10,40 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"messages\":[{\"content\":\"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\\n\",\"role\":\"user\"}],\"model\":\"o4-mini\",\"reasoning_effort\":\"medium\",\"stream\":false}", + "equalToJson" : "{\"messages\":[{\"content\":\"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\\n\",\"role\":\"user\"}],\"model\":\"gpt-6-luna\",\"stream\":false,\"reasoning_effort\":\"medium\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "chat_completions-b5bcb38ce8df.json", + "bodyFileName" : "chat_completions-9ce4f9f0e189.json", "headers" : { "Server" : "cloudflare", "x-ratelimit-reset-tokens" : "0s", - "set-cookie" : "__cf_bm=JEdWw9VzOADEo_Eq54Kle4NiD5wr0DC0IkA1hzb9MXs-1788197855.2737541-1.0.1.1-FRoVeAoOUfZSPMWdHzVmZp.rtN8hPs.bN88BeQH0sMHz7BdbioQjRG8ofUDZduCMXmjGteUYSIhnc8NwAAQQHgDrIpeZnIVQElhWG.yIg7E.cBvWxrm7IxySXvC.ZK_V; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:07:47 GMT", + "set-cookie" : "__cf_bm=f7KxDjcWRQkHa.ZNwrVB5w8HBBlP.vDrxuJllTTp_C8-1794030184.182471-1.0.1.1-2eB07Yh5iv5EgVn_SLmB.1s7ZoEPnlvAaHzTwrA6ZdJRVCaetqVji0RRqh0V2OoAl7Yf1fvAr11aLiy4KNf0Xs5e8S.yZGSAXhpsR97GvHrwPGC1kbVffqFP3CshC3Yw; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:06 GMT", "Access-Control-Expose-Headers" : [ "CF-Ray", "X-Request-ID", "CF-Ray" ], "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json", - "x-request-id" : "req_94f766c967aa41a7b8b6c5fa0b60d629", - "x-ratelimit-limit-tokens" : "150000000", + "x-request-id" : "req_a43fe8ffca384c45832c56d4ba4fbd24", + "x-ratelimit-limit-tokens" : "180000000", "openai-organization" : "braintrust-data", - "CF-Ray" : "a33dcdd37c0a76ce-SEA", + "CF-Ray" : "a56a04ab293a31ba-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", - "x-ratelimit-remaining-tokens" : "149999970", + "x-ratelimit-remaining-tokens" : "179999970", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:37:47 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:06 GMT", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "11966", + "openai-processing-ms" : "1757", "alt-svc" : "h3=\":443\"; ma=86400" } }, - "uuid" : "2c18cacf-35a1-374b-9f56-93255fa2c5ec", + "uuid" : "abde9297-125e-32d0-9a80-2bd99d87911a", "persistent" : true, - "insertionIndex" : 4 + "insertionIndex" : 24 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-f65c86f95add.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-9f647557628e.json similarity index 51% rename from test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-f65c86f95add.json rename to test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-9f647557628e.json index ad31e757..65efef32 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-f65c86f95add.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-9f647557628e.json @@ -1,5 +1,5 @@ { - "id" : "60af42bb-e1c7-3b67-baa0-606b742395b5", + "id" : "e4a7e203-4e60-3f35-9de4-fb84444eb0e7", "name" : "chat_completions", "request" : { "url" : "/chat/completions", @@ -10,40 +10,40 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\n \"model\" : \"gpt-4o-mini\",\n \"messages\" : [ {\n \"role\" : \"user\",\n \"content\" : \"is it hotter in Paris or New York right now?\"\n }, {\n \"role\" : \"assistant\",\n \"tool_calls\" : [ {\n \"id\" : \"call_WnDl0negHmyHoZ0pBbLSqOj1\",\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"getWeather\",\n \"arguments\" : \"{\\\"arg0\\\": \\\"Paris\\\"}\"\n }\n }, {\n \"id\" : \"call_xKlHa4SOx8MfJ6OSbsAo7uI9\",\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"getWeather\",\n \"arguments\" : \"{\\\"arg0\\\": \\\"New York\\\"}\"\n }\n } ]\n }, {\n \"role\" : \"tool\",\n \"tool_call_id\" : \"call_WnDl0negHmyHoZ0pBbLSqOj1\",\n \"content\" : \"The weather in Paris is sunny with 72°F temperature.\"\n }, {\n \"role\" : \"tool\",\n \"tool_call_id\" : \"call_xKlHa4SOx8MfJ6OSbsAo7uI9\",\n \"content\" : \"The weather in New York is sunny with 72°F temperature.\"\n } ],\n \"temperature\" : 0.0,\n \"stream\" : false,\n \"tools\" : [ {\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"getWeather\",\n \"description\" : \"Get current weather for a location\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"arg0\" : {\n \"type\" : \"string\"\n }\n },\n \"required\" : [ \"arg0\" ]\n }\n }\n }, {\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"getForecast\",\n \"description\" : \"Get weather forecast for next N days\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"arg0\" : {\n \"type\" : \"string\"\n },\n \"arg1\" : {\n \"type\" : \"integer\"\n }\n },\n \"required\" : [ \"arg0\", \"arg1\" ]\n }\n }\n } ]\n}", + "equalToJson" : "{\n \"model\" : \"gpt-4o-mini\",\n \"messages\" : [ {\n \"role\" : \"user\",\n \"content\" : \"is it hotter in Paris or New York right now?\"\n }, {\n \"role\" : \"assistant\",\n \"tool_calls\" : [ {\n \"id\" : \"call_MnkflmdZfUALFOIcib64WJTJ\",\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"getWeather\",\n \"arguments\" : \"{\\\"arg0\\\": \\\"Paris\\\"}\"\n }\n }, {\n \"id\" : \"call_0ZjOrsUQ1gRrU6ZnddXTSj2Y\",\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"getWeather\",\n \"arguments\" : \"{\\\"arg0\\\": \\\"New York\\\"}\"\n }\n } ]\n }, {\n \"role\" : \"tool\",\n \"tool_call_id\" : \"call_MnkflmdZfUALFOIcib64WJTJ\",\n \"content\" : \"The weather in Paris is sunny with 72°F temperature.\"\n }, {\n \"role\" : \"tool\",\n \"tool_call_id\" : \"call_0ZjOrsUQ1gRrU6ZnddXTSj2Y\",\n \"content\" : \"The weather in New York is sunny with 72°F temperature.\"\n } ],\n \"temperature\" : 0.0,\n \"stream\" : false,\n \"tools\" : [ {\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"getForecast\",\n \"description\" : \"Get weather forecast for next N days\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"arg0\" : {\n \"type\" : \"string\"\n },\n \"arg1\" : {\n \"type\" : \"integer\"\n }\n },\n \"required\" : [ \"arg0\", \"arg1\" ]\n }\n }\n }, {\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"getWeather\",\n \"description\" : \"Get current weather for a location\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"arg0\" : {\n \"type\" : \"string\"\n }\n },\n \"required\" : [ \"arg0\" ]\n }\n }\n } ]\n}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "chat_completions-f65c86f95add.json", + "bodyFileName" : "chat_completions-9f647557628e.json", "headers" : { - "x-request-id" : "req_9d900820eb0c4c8cba9f818e90e4a655", + "x-request-id" : "req_29ce7a36aa564f53b43c1d9fb1be7b3d", "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dd3781e5bb455-SEA", + "CF-Ray" : "a56a0aad380716d3-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", - "x-ratelimit-remaining-tokens" : "149999957", + "x-ratelimit-remaining-tokens" : "149999955", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:41:27 GMT", + "Date" : "Sat, 07 Nov 2026 05:47:10 GMT", "x-ratelimit-reset-tokens" : "0s", "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=cFGHyeERaz1fnWA3Y8_siSZTyr0LqPGNOHCXea3D0cA-1788198086.4181957-1.0.1.1-nBG1BaUCSGq_muHiCemw34jKRTW4cqhlna3sWKX0Kpx3IlMvbyvZiY6C1VWxHN.UenpW4t48jOvQisrW9oZFPUFJISXKQwp9vM002UcTzVri038b32KGHLS0_tmwJI2s; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:11:27 GMT", + "set-cookie" : "__cf_bm=FJGVAfihX..ZLeVwLXSEHRCdC4UtQ6R0HBctqSqEm0U-1794030430.2819948-1.0.1.1-TThes53fUufT2izSrP.9do03eDmey_fxFE4g7OAtKQOuuGuo1fmb69hCDqwlCTsy6DzWgeDPC3X1eI2RiDi0fddNMwzCUrjGmwR1S0wFdZM3dztEm8M.QBOYd6IpWVNg; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:17:10 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "686", + "openai-processing-ms" : "549", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json" } }, - "uuid" : "60af42bb-e1c7-3b67-baa0-606b742395b5", + "uuid" : "e4a7e203-4e60-3f35-9de4-fb84444eb0e7", "persistent" : true, - "insertionIndex" : 42 + "insertionIndex" : 46 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-acc477a295ad.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-acc477a295ad.json index 11e1f39f..a7aa7330 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-acc477a295ad.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-acc477a295ad.json @@ -19,25 +19,25 @@ "status" : 200, "bodyFileName" : "chat_completions-acc477a295ad.txt", "headers" : { - "x-request-id" : "req_6ed871ed029b4f1d84004e496d197962", + "x-request-id" : "req_85566bd0229c47239211270be7fa8a77", "x-ratelimit-limit-tokens" : "30000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dd36c58a826b5-SEA", + "CF-Ray" : "a56a0a847c0befa2-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "6ms", "x-ratelimit-remaining-tokens" : "29999988", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "9999", - "Date" : "Mon, 31 Aug 2026 17:41:25 GMT", + "Date" : "Sat, 07 Nov 2026 05:47:04 GMT", "x-ratelimit-reset-tokens" : "0s", "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=jZPds2ABCvBsvcTN3O8QBPc1Kwpo16AsZ2nZFXRo2Es-1788198084.5365098-1.0.1.1-fEZg_PKkg8n5vkXtBvn.Iz9ATu0sKoCQvdD3zFbKwr0s69XWhZEUv62rwim72m8XWdpZ2iPPKmNilk4QgaqnI7O2o36lBCf2ZAySmA6MpE4PPDf9ZiXdZloNmnippoBy; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:11:25 GMT", + "set-cookie" : "__cf_bm=UNavZ25g7A_vWPE8p9AYs4054H0.8HYR.94E7TbFzI8-1794030423.752782-1.0.1.1-wGozOu7CqIoSR3EUS3oV35qvQZe7enQ2KnXNh8csqE3iXe1DuzBbuP.frfeO29zCojryEkBxjOlszBrTDnUupscwUl4dFZ31kUG8380Ra7Oj36qV1.2YQ4m1ckS7r_s2; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:17:04 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "10000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "430", + "openai-processing-ms" : "386", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "text/event-stream; charset=utf-8" @@ -45,5 +45,5 @@ }, "uuid" : "b401ee59-4b78-3f00-aaf8-7bed0d52cbad", "persistent" : true, - "insertionIndex" : 44 + "insertionIndex" : 48 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-b3799c77ab75.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-b3799c77ab75.json new file mode 100644 index 00000000..ab4da195 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-b3799c77ab75.json @@ -0,0 +1,49 @@ +{ + "id" : "68d55ac9-46f2-3080-89a9-30b8cca7f3b6", + "name" : "chat_completions", + "request" : { + "url" : "/chat/completions", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"messages\":[{\"content\":\"What is the weather like in Paris, France?\",\"role\":\"user\"}],\"model\":\"gpt-6-luna\",\"tools\":[{\"function\":{\"name\":\"get_weather\",\"description\":\"Get the current weather for a location\",\"parameters\":{\"type\":\"object\",\"properties\":{\"location\":{\"type\":\"string\",\"description\":\"The city and state, e.g. San Francisco, CA\"},\"unit\":{\"type\":\"string\",\"enum\":[\"celsius\",\"fahrenheit\"],\"description\":\"The unit of temperature\"}},\"required\":[\"location\"],\"strict\":true}},\"type\":\"function\"}],\"reasoning_effort\":\"none\",\"max_completion_tokens\":500,\"temperature\":0.0}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "chat_completions-b3799c77ab75.json", + "headers" : { + "Server" : "cloudflare", + "x-ratelimit-reset-tokens" : "0s", + "set-cookie" : "__cf_bm=d087GvIgyvUeqSvT55Q6uITADjqeZfKeQKUtn97wGH8-1794030181.7508175-1.0.1.1-kQ6OxMookg8gaU460DP70q37EIpIsrrUM6f42uTymbdLRgfgsFl3QC6CdBjejSnG5gnZfLew5eeI_xyhEmcS5k7ACH7WWeqkg7eFDm_FCXpPjfLtDtCzHVSswCoUZet_; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:02 GMT", + "Access-Control-Expose-Headers" : [ "CF-Ray", "X-Request-ID", "CF-Ray" ], + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", + "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", + "Content-Type" : "application/json", + "x-request-id" : "req_bcd32ddbbcb4436f99c2fd2611f0672b", + "x-ratelimit-limit-tokens" : "180000000", + "openai-organization" : "braintrust-data", + "CF-Ray" : "a56a049bed752dc6-SEA", + "X-Content-Type-Options" : "nosniff", + "x-ratelimit-reset-requests" : "2ms", + "x-ratelimit-remaining-tokens" : "179999988", + "x-openai-proxy-wasm" : "v0.1", + "x-ratelimit-remaining-requests" : "29999", + "Date" : "Sat, 07 Nov 2026 05:43:02 GMT", + "CF-Cache-Status" : "DYNAMIC", + "x-ratelimit-limit-requests" : "30000", + "openai-version" : "2020-10-01", + "openai-processing-ms" : "1009", + "alt-svc" : "h3=\":443\"; ma=86400" + } + }, + "uuid" : "68d55ac9-46f2-3080-89a9-30b8cca7f3b6", + "persistent" : true, + "insertionIndex" : 33 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-b37b5b6a1b4d.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-b37b5b6a1b4d.json deleted file mode 100644 index 484c9aed..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-b37b5b6a1b4d.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "id" : "5950b630-e52c-3a15-b90e-b89e1d5336d2", - "name" : "chat_completions", - "request" : { - "url" : "/chat/completions", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\n \"model\" : \"gpt-4o-mini\",\n \"messages\" : [ {\n \"role\" : \"system\",\n \"content\" : \"you are a concise assistant\"\n }, {\n \"role\" : \"user\",\n \"content\" : \"Say hello in one word.\"\n } ],\n \"temperature\" : 0.0,\n \"n\" : 2,\n \"stream\" : true,\n \"stream_options\" : {\n \"include_usage\" : true\n },\n \"max_tokens\" : 100\n}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "chat_completions-b37b5b6a1b4d.txt", - "headers" : { - "x-request-id" : "req_ac0d515775de496284417089fb47fe11", - "x-ratelimit-limit-tokens" : "150000000", - "openai-organization" : "braintrust-data", - "Server" : "cloudflare", - "CF-Ray" : "a33dcd89a8f0535a-SEA", - "X-Content-Type-Options" : "nosniff", - "x-ratelimit-reset-requests" : "2ms", - "x-ratelimit-remaining-tokens" : "149999982", - "x-openai-proxy-wasm" : "v0.1", - "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:37:23 GMT", - "x-ratelimit-reset-tokens" : "0s", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=Gry4GyHS1u.RGj56zVd.MHiHMwmhWHS5fr34Tdz3MVc-1788197843.4640207-1.0.1.1-wtAEd0CfGUcIZKUEPmFRtIwMYFXX01FCySJee9dV8iYUJhfA4PjelaHhmFhLFeYMpyyXrVjMEw.51uv9xuzsQ5JXnOM.MRN4Q7J9wGhU2nb1AAKivG1trbU6fBbJ6e7P; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:07:23 GMT", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", - "CF-Cache-Status" : "DYNAMIC", - "x-ratelimit-limit-requests" : "30000", - "openai-version" : "2020-10-01", - "openai-processing-ms" : "376", - "alt-svc" : "h3=\":443\"; ma=86400", - "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", - "Content-Type" : "text/event-stream; charset=utf-8" - } - }, - "uuid" : "5950b630-e52c-3a15-b90e-b89e1d5336d2", - "persistent" : true, - "scenarioName" : "scenario-3-chat-completions", - "requiredScenarioState" : "scenario-3-chat-completions-2", - "insertionIndex" : 9 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-b9d0ec1622b9.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-b9d0ec1622b9.json new file mode 100644 index 00000000..1cfe5fa0 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-b9d0ec1622b9.json @@ -0,0 +1,52 @@ +{ + "id" : "9a4611b1-a572-301d-be5b-93031c24e28d", + "name" : "chat_completions", + "request" : { + "url" : "/chat/completions", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"messages\":[{\"content\":\"you are a helpful assistant\",\"role\":\"system\"},{\"content\":[{\"text\":\"Briefly describe these attachments\",\"type\":\"text\"},{\"image_url\":{\"url\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8DwHwAFBQIAX8jx0gAAAABJRU5ErkJggg==\"},\"type\":\"image_url\"},{\"file\":{\"file_data\":\"data:application/pdf;base64,JVBERi0xLjAKMSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgPj4KZW5kb2JqCjIgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9LaWRzIFszIDAgUl0gL0NvdW50IDEgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL1R5cGUgL1BhZ2UgL1BhcmVudCAyIDAgUiAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXSA+PgplbmRvYmoKeHJlZgowIDQKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDA5IDAwMDAwIG4gCjAwMDAwMDAwNTggMDAwMDAgbiAKMDAwMDAwMDExNSAwMDAwMCBuIAp0cmFpbGVyCjw8IC9TaXplIDQgL1Jvb3QgMSAwIFIgPj4Kc3RhcnR4cmVmCjE5MAolJUVPRgo=\",\"filename\":\"blank.pdf\"},\"type\":\"file\"}],\"role\":\"user\"}],\"model\":\"gpt-6-luna\",\"reasoning_effort\":\"none\",\"temperature\":0.0,\"stream\":false}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "chat_completions-b9d0ec1622b9.json", + "headers" : { + "Server" : "cloudflare", + "x-ratelimit-reset-input-images" : "1ms", + "x-ratelimit-reset-tokens" : "0s", + "x-ratelimit-limit-input-images" : "50000", + "set-cookie" : "__cf_bm=FiKkZp1qv9k2FU4CryF2qdG92YX0pU5AWBJvNXVlnak-1794030195.4243965-1.0.1.1-k_C1PsnWFhxfeD8pn0lHEdLWiAdCudAq0YPO57N2AJO.7WPpBBK6EMTDPqRxyLNqLdBrmQCCL5rINm3uPTRHerpkiha2Yqxq2yHKpm8xknb8nBujEUScgbePX0GFlPuy; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:16 GMT", + "Access-Control-Expose-Headers" : [ "CF-Ray", "X-Request-ID", "CF-Ray" ], + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", + "x-ratelimit-remaining-input-images" : "49999", + "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", + "Content-Type" : "application/json", + "x-request-id" : "req_c5fb92f5ee704c978d7be25bd47dd8c7", + "x-ratelimit-limit-tokens" : "180000000", + "openai-organization" : "braintrust-data", + "CF-Ray" : "a56a04f16fa50d8d-SEA", + "X-Content-Type-Options" : "nosniff", + "x-ratelimit-reset-requests" : "2ms", + "x-ratelimit-remaining-tokens" : "179998449", + "x-openai-proxy-wasm" : "v0.1", + "x-ratelimit-remaining-requests" : "29999", + "Date" : "Sat, 07 Nov 2026 05:43:16 GMT", + "CF-Cache-Status" : "DYNAMIC", + "x-ratelimit-limit-requests" : "30000", + "openai-version" : "2020-10-01", + "openai-processing-ms" : "664", + "alt-svc" : "h3=\":443\"; ma=86400" + } + }, + "uuid" : "9a4611b1-a572-301d-be5b-93031c24e28d", + "persistent" : true, + "insertionIndex" : 7 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-ca2a7e5e08d0.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-ca2a7e5e08d0.json new file mode 100644 index 00000000..eb145dc8 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-ca2a7e5e08d0.json @@ -0,0 +1,52 @@ +{ + "id" : "57153ee4-211a-3ccf-bebe-e7a585040897", + "name" : "chat_completions", + "request" : { + "url" : "/chat/completions", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\n \"model\" : \"gpt-6-luna\",\n \"messages\" : [ {\n \"role\" : \"user\",\n \"content\" : \"What is the weather like in Paris, France?\"\n } ],\n \"temperature\" : 0.0,\n \"stream\" : false,\n \"max_completion_tokens\" : 500,\n \"tools\" : [ {\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"get_weather\",\n \"description\" : \"Get the current weather for a location\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"location\" : {\n \"type\" : \"string\",\n \"description\" : \"The city and state, e.g. San Francisco, CA\"\n },\n \"unit\" : {\n \"type\" : \"string\",\n \"enum\" : [ \"celsius\", \"fahrenheit\" ],\n \"description\" : \"The unit of temperature\"\n }\n },\n \"required\" : [ \"location\" ]\n }\n }\n } ],\n \"reasoning_effort\" : \"none\"\n}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "chat_completions-ca2a7e5e08d0.json", + "headers" : { + "x-request-id" : "req_425c6595035b42a0823e3f8bbc56dc3f", + "x-ratelimit-limit-tokens" : "180000000", + "openai-organization" : "braintrust-data", + "Server" : "cloudflare", + "CF-Ray" : "a56a04923811d455-SEA", + "X-Content-Type-Options" : "nosniff", + "x-ratelimit-reset-requests" : "2ms", + "x-ratelimit-remaining-tokens" : "179999988", + "x-openai-proxy-wasm" : "v0.1", + "x-ratelimit-remaining-requests" : "29999", + "Date" : "Sat, 07 Nov 2026 05:43:01 GMT", + "x-ratelimit-reset-tokens" : "0s", + "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=wN100sFoRpRKVN4UznN_0Vf6FK8vbN1FIUMkYZg.ghc-1794030180.1953561-1.0.1.1-R7VDsg903yLCyQYgRnAM5VFPzd_IAceAHZP0oa182Mv5FAmi4Dy44N7EnLSFwIVr6n9qgJssGAEOn674Yoo3WgUUXpVn8QK7Sge0LoGjuGEmJiz5C_Y_KWkcRKKZqc65; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:01 GMT", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", + "CF-Cache-Status" : "DYNAMIC", + "x-ratelimit-limit-requests" : "30000", + "openai-version" : "2020-10-01", + "openai-processing-ms" : "721", + "alt-svc" : "h3=\":443\"; ma=86400", + "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", + "Content-Type" : "application/json" + } + }, + "uuid" : "57153ee4-211a-3ccf-bebe-e7a585040897", + "persistent" : true, + "scenarioName" : "scenario-3-chat-completions", + "requiredScenarioState" : "Started", + "newScenarioState" : "scenario-3-chat-completions-2", + "insertionIndex" : 38 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-d105cf12ad90.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-d105cf12ad90.json deleted file mode 100644 index e4727f1d..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-d105cf12ad90.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "id" : "e8077a43-a9b3-3a41-839d-e7b742bc08bf", - "name" : "chat_completions", - "request" : { - "url" : "/chat/completions", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\n \"model\" : \"gpt-4o-mini\",\n \"messages\" : [ {\n \"role\" : \"system\",\n \"content\" : \"you are a thoughtful assistant\"\n }, {\n \"role\" : \"user\",\n \"content\" : \"Count from 1 to 10 slowly.\"\n } ],\n \"temperature\" : 0.0,\n \"stream\" : true,\n \"stream_options\" : {\n \"include_usage\" : true\n },\n \"max_tokens\" : 800\n}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "chat_completions-d105cf12ad90.txt", - "headers" : { - "x-request-id" : "req_c3793ec2f761492a9f70b209a0cc9d8c", - "x-ratelimit-limit-tokens" : "150000000", - "openai-organization" : "braintrust-data", - "Server" : "cloudflare", - "CF-Ray" : "a33dccc77d4a6818-SEA", - "X-Content-Type-Options" : "nosniff", - "x-ratelimit-reset-requests" : "2ms", - "x-ratelimit-remaining-tokens" : "149999982", - "x-openai-proxy-wasm" : "v0.1", - "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:36:52 GMT", - "x-ratelimit-reset-tokens" : "0s", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=8nP2kJ3K_jdY1qyrDDDIFU8UfVXEEl4gWeDep282IN0-1788197812.397107-1.0.1.1-lSb9e3X8JQrRi1DKM_n8fMQ.D759dC48D3csvvDQgYTGq64VI7no86LnzbdMihKWsSZr6FqXKYq3eEdqlTXynSJSt_D29a6zzgFs8P4Hf6V3J7KKOsNghlYteU0aT_4y; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:06:52 GMT", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", - "CF-Cache-Status" : "DYNAMIC", - "x-ratelimit-limit-requests" : "30000", - "openai-version" : "2020-10-01", - "openai-processing-ms" : "357", - "alt-svc" : "h3=\":443\"; ma=86400", - "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", - "Content-Type" : "text/event-stream; charset=utf-8" - } - }, - "uuid" : "e8077a43-a9b3-3a41-839d-e7b742bc08bf", - "persistent" : true, - "scenarioName" : "scenario-6-chat-completions", - "requiredScenarioState" : "scenario-6-chat-completions-2", - "insertionIndex" : 26 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-84ab36b6457e.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-d15b79dfd4a5.json similarity index 55% rename from test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-84ab36b6457e.json rename to test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-d15b79dfd4a5.json index c4be28a6..66463219 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-84ab36b6457e.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-d15b79dfd4a5.json @@ -1,5 +1,5 @@ { - "id" : "c1cfdd78-d78d-3a85-8d69-c3d20a303758", + "id" : "f06a128f-3463-37cc-876e-94c46bbe5833", "name" : "chat_completions", "request" : { "url" : "/chat/completions", @@ -10,40 +10,40 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"messages\":[{\"content\":\"you are a concise assistant\",\"role\":\"system\"},{\"content\":\"Say hello in one word.\",\"role\":\"user\"}],\"model\":\"gpt-4o-mini\",\"stream_options\":{\"include_obfuscation\":false,\"include_usage\":true},\"max_tokens\":100,\"temperature\":0.0,\"n\":2,\"stream\":true}", + "equalToJson" : "{\"messages\":[{\"content\":\"you are a concise assistant\",\"role\":\"system\"},{\"content\":\"Say hello in one word.\",\"role\":\"user\"}],\"model\":\"gpt-6-luna\",\"max_completion_tokens\":100,\"n\":2,\"stream\":true,\"stream_options\":{\"include_usage\":true},\"temperature\":0.0,\"reasoning_effort\":\"none\"}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "chat_completions-84ab36b6457e.txt", + "bodyFileName" : "chat_completions-d15b79dfd4a5.txt", "headers" : { - "x-request-id" : "req_61004a0f071e4a3cb2861cdebdf50c2a", - "x-ratelimit-limit-tokens" : "150000000", + "x-request-id" : "req_6226a8aed82149c9869ac3156b59e84c", + "x-ratelimit-limit-tokens" : "180000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dcd79fc547573-SEA", + "CF-Ray" : "a56a04a2b9566c91-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", - "x-ratelimit-remaining-tokens" : "149999982", + "x-ratelimit-remaining-tokens" : "179999982", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:37:21 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:03 GMT", "x-ratelimit-reset-tokens" : "0s", "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=wThe8gm6GINBe5H308A6hrXsTboSSrlsj2D2kSdEc.I-1788197840.9583812-1.0.1.1-YEGUQ8135tg95y.PDxm0iKfTmDmCxFuIH0uh4hGccGBQvU.Fk2Zs3oqSFCq.xlDfCYUKE42xF4GWGcpiXfmkxzh0siaFqLGgeFS326cns.sIMyRXoUezNQczdSx3bE1i; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:07:21 GMT", + "set-cookie" : "__cf_bm=l5f6kMpyqTP47SvOsaCqEoXVwfSyrayx2Pa9v_nmeOs-1794030182.833127-1.0.1.1-gGqLRRo9LYyf9HyXR_RPbTCGOuQSCX6VHVcY1Ny5vWsABirkZOJ_m0QkMXLRBT14AkywQJy7MswiGuMklARSLKQJsMetZcFxbDI_gOwuPBrETuU1GiYi5aRH6EFPkLsK; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:03 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "283", + "openai-processing-ms" : "509", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "text/event-stream; charset=utf-8" } }, - "uuid" : "c1cfdd78-d78d-3a85-8d69-c3d20a303758", + "uuid" : "f06a128f-3463-37cc-876e-94c46bbe5833", "persistent" : true, - "insertionIndex" : 12 + "insertionIndex" : 30 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-d46fc8497cd8.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-d46fc8497cd8.json deleted file mode 100644 index 2c5e0301..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-d46fc8497cd8.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "id" : "d73a7f8c-a663-3d59-a108-bbe741621321", - "name" : "chat_completions", - "request" : { - "url" : "/chat/completions", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\n \"model\" : \"gpt-4o\",\n \"messages\" : [ {\n \"role\" : \"system\",\n \"content\" : \"you are a helpful assistant\"\n }, {\n \"role\" : \"user\",\n \"content\" : [ {\n \"type\" : \"text\",\n \"text\" : \"Briefly describe these attachments\"\n }, {\n \"type\" : \"image_url\",\n \"image_url\" : {\n \"url\" : \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8DwHwAFBQIAX8jx0gAAAABJRU5ErkJggg==\"\n }\n }, {\n \"type\" : \"file\",\n \"file\" : {\n \"file_data\" : \"data:application/pdf;base64,JVBERi0xLjAKMSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgPj4KZW5kb2JqCjIgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9LaWRzIFszIDAgUl0gL0NvdW50IDEgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL1R5cGUgL1BhZ2UgL1BhcmVudCAyIDAgUiAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXSA+PgplbmRvYmoKeHJlZgowIDQKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDA5IDAwMDAwIG4gCjAwMDAwMDAwNTggMDAwMDAgbiAKMDAwMDAwMDExNSAwMDAwMCBuIAp0cmFpbGVyCjw8IC9TaXplIDQgL1Jvb3QgMSAwIFIgPj4Kc3RhcnR4cmVmCjE5MAolJUVPRgo=\",\n \"filename\" : \"blank.pdf\"\n }\n } ]\n } ],\n \"temperature\" : 0.0,\n \"stream\" : false\n}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "chat_completions-d46fc8497cd8.json", - "headers" : { - "Server" : "cloudflare", - "x-ratelimit-reset-input-images" : "0s", - "x-ratelimit-reset-tokens" : "3ms", - "x-ratelimit-limit-input-images" : "250000", - "set-cookie" : "__cf_bm=ootX.0Ee88VGOs9CNdHUvYWOOvVEyVRBFM4x12yMa_U-1788197813.9728928-1.0.1.1-V9evxqRnQGjk37JFBUfD8EHMTZp9B4zS40UbOYMRNaNjauvNKLr_e62QHC_6WGWlyfWHiDXBo_7MRJW4wwtGVSa9XTgOFLn9KqAHElP4UAhk4efU9CGqEvt8eAARyPgx; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:06:55 GMT", - "Access-Control-Expose-Headers" : [ "CF-Ray", "X-Request-ID", "CF-Ray" ], - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", - "x-ratelimit-remaining-input-images" : "249999", - "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", - "Content-Type" : "application/json", - "x-request-id" : "req_08fe8dae55224bfea6474e9cd3e1f12d", - "x-ratelimit-limit-tokens" : "30000000", - "openai-organization" : "braintrust-data", - "CF-Ray" : "a33dccd15a66766c-SEA", - "X-Content-Type-Options" : "nosniff", - "x-ratelimit-reset-requests" : "6ms", - "x-ratelimit-remaining-tokens" : "29998451", - "x-openai-proxy-wasm" : "v0.1", - "x-ratelimit-remaining-requests" : "9999", - "Date" : "Mon, 31 Aug 2026 17:36:55 GMT", - "CF-Cache-Status" : "DYNAMIC", - "x-ratelimit-limit-requests" : "10000", - "openai-version" : "2020-10-01", - "openai-processing-ms" : "985", - "alt-svc" : "h3=\":443\"; ma=86400" - } - }, - "uuid" : "d73a7f8c-a663-3d59-a108-bbe741621321", - "persistent" : true, - "scenarioName" : "scenario-5-chat-completions", - "requiredScenarioState" : "scenario-5-chat-completions-2", - "insertionIndex" : 24 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-d5e020458f20.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-d5e020458f20.json index c4896980..011b1211 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-d5e020458f20.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-d5e020458f20.json @@ -19,25 +19,25 @@ "status" : 200, "bodyFileName" : "chat_completions-d5e020458f20.json", "headers" : { - "x-request-id" : "req_6cc2b99605504a1cb02c3606d9ce5dcf", + "x-request-id" : "req_cb397b9ae2ec4cb6aed317c6b16b6cb3", "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dd37e1f37f3ea-SEA", + "CF-Ray" : "a56a0ab41c1298bf-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", "x-ratelimit-remaining-tokens" : "149999990", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:41:28 GMT", + "Date" : "Sat, 07 Nov 2026 05:47:11 GMT", "x-ratelimit-reset-tokens" : "0s", "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=7wWJNlt4FNZSJo2ZORqfrj8kDQhZmwxAkLkNicyGkGc-1788198087.3726146-1.0.1.1-8LCPvStXvuiVufkgVTLuNABBn9mMe3irDdxyH1Gujg5Re7tn03rPcfpkPOXlYbMdrMDcEa_lS5Z0Sryfxjj.CiZNf5u0q39TfQ8X153fJiijAEYnaY_hnui9sTZLMFKZ; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:11:28 GMT", + "set-cookie" : "__cf_bm=V1IZ3OHhVRNPxm_0vrAGB.eOyPv3C1gtklMwvaEEZKo-1794030431.3776596-1.0.1.1-EMKvpcq4KtJSDQR_wl9V6rIFUHl9sG46KsHQChj8O.re38qLETv3YAr1BwcCmrVt06EO5uOriWjImYeRrKoWJO40qgFtqk_FfHThabvcdUmYVP5MdRAVl7EURpqM0Fu9; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:17:11 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "599", + "openai-processing-ms" : "440", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json" @@ -45,5 +45,5 @@ }, "uuid" : "52b394af-90b1-3b73-aeca-4f5f26a4d505", "persistent" : true, - "insertionIndex" : 41 + "insertionIndex" : 45 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-d99c904d7981.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-d99c904d7981.json deleted file mode 100644 index a6801b8d..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-d99c904d7981.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "id" : "23fa042a-04b0-3791-bb79-003b00173c69", - "name" : "chat_completions", - "request" : { - "url" : "/chat/completions", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\n \"model\" : \"gpt-4o-mini\",\n \"messages\" : [ {\n \"role\" : \"system\",\n \"content\" : \"you are a concise assistant\"\n }, {\n \"role\" : \"user\",\n \"content\" : \"Say hello in one word.\"\n } ],\n \"temperature\" : 0.0,\n \"n\" : 2,\n \"stream\" : true,\n \"stream_options\" : {\n \"include_usage\" : true\n },\n \"max_tokens\" : 100\n}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "chat_completions-d99c904d7981.txt", - "headers" : { - "x-request-id" : "req_8044e637af404ae9b421762bc74bbcc4", - "x-ratelimit-limit-tokens" : "150000000", - "openai-organization" : "braintrust-data", - "Server" : "cloudflare", - "CF-Ray" : "a33dcd753c2257bc-SEA", - "X-Content-Type-Options" : "nosniff", - "x-ratelimit-reset-requests" : "2ms", - "x-ratelimit-remaining-tokens" : "149999982", - "x-openai-proxy-wasm" : "v0.1", - "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:37:20 GMT", - "x-ratelimit-reset-tokens" : "0s", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=tDzkyDOpLktV2OHULxaNP4R4fphjC3nuGv9ry8.6jIY-1788197840.1950989-1.0.1.1-WcA.THIIH0p6.Yd88Tnr5PwNHfbFxO1kyFCcewJmp02UT_1dyQnIb6wnQ8BO.utqzDiXgtoCCHiENIVLU9hvuj7J__8nznCvh6EDL.YT2H0r3tvEBGZS69ImsL_zx4t_; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:07:20 GMT", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", - "CF-Cache-Status" : "DYNAMIC", - "x-ratelimit-limit-requests" : "30000", - "openai-version" : "2020-10-01", - "openai-processing-ms" : "380", - "alt-svc" : "h3=\":443\"; ma=86400", - "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", - "Content-Type" : "text/event-stream; charset=utf-8" - } - }, - "uuid" : "23fa042a-04b0-3791-bb79-003b00173c69", - "persistent" : true, - "scenarioName" : "scenario-3-chat-completions", - "requiredScenarioState" : "Started", - "newScenarioState" : "scenario-3-chat-completions-2", - "insertionIndex" : 13 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-da9f72e19a5c.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-da9f72e19a5c.json index 783ffdf2..2f4b1844 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-da9f72e19a5c.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-da9f72e19a5c.json @@ -21,29 +21,29 @@ "headers" : { "Server" : "cloudflare", "x-ratelimit-reset-tokens" : "0s", - "set-cookie" : "__cf_bm=IUo4nrWlxoLG6_7Wqeg.al8TbbpOxFagTzm_KlMxXD8-1788198270.6457648-1.0.1.1-I19_7Zqej6lpQ39eRtCS8JApqLtf2HX6nngt6V16WvXLP3BNjVTVtoXeRoyZYCu_rOBcfsQX7E4dBwwchykr0f1iY2BmvQCrlAfcx1OfwljJQ9CVcD2Kor9XJE1CRG1U; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:14:31 GMT", + "set-cookie" : "__cf_bm=EoTavxdulzxNjPagP24_KgB0WCy9cMakClaG0.7q78I-1794030516.2385523-1.0.1.1-9IdhoNcbmruwHVKNivqeJAp0IcKQk5Q5.q_U2mc4ugX.5_7J6uK.rq6D9vAe0X0n6LdFVdFkxLRDyTpvK3Q3fu0XD4cT4PhoW7_bVsbT6To7WiQfZVSCATWbiHOh3Ujr; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:18:36 GMT", "Access-Control-Expose-Headers" : [ "CF-Ray", "X-Request-ID", "CF-Ray" ], "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json", - "x-request-id" : "req_1a77220fd83c4c6aba0a728a23ae9631", + "x-request-id" : "req_23d58e037edc4e9c93c357801f8ac861", "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", - "CF-Ray" : "a33dd7f78f4a76b6-SEA", + "CF-Ray" : "a56a0cc679eee2db-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", "x-ratelimit-remaining-tokens" : "149999980", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:44:31 GMT", + "Date" : "Sat, 07 Nov 2026 05:48:36 GMT", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "984", + "openai-processing-ms" : "474", "alt-svc" : "h3=\":443\"; ma=86400" } }, "uuid" : "77761a50-8676-326e-b094-73543f3813e4", "persistent" : true, - "insertionIndex" : 61 + "insertionIndex" : 70 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-e7e0dbcb72a1.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-dca65885c63b.json similarity index 51% rename from test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-e7e0dbcb72a1.json rename to test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-dca65885c63b.json index afcc5b94..b37419dc 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-e7e0dbcb72a1.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-dca65885c63b.json @@ -1,5 +1,5 @@ { - "id" : "fc6faf38-a5ea-3624-8f28-e4ed0b3f698f", + "id" : "a1ed0b9b-d410-31e6-872b-7ebb64bbc7c2", "name" : "chat_completions", "request" : { "url" : "/chat/completions", @@ -10,40 +10,40 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\n \"model\" : \"gpt-4o-mini\",\n \"messages\" : [ {\n \"role\" : \"user\",\n \"content\" : \"is it hotter in Paris or New York right now?\"\n }, {\n \"role\" : \"assistant\",\n \"tool_calls\" : [ {\n \"id\" : \"call_5SUiRIS3GwSZRIPRkMvzKcmP\",\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"getWeather\",\n \"arguments\" : \"{\\\"arg0\\\": \\\"Paris\\\"}\"\n }\n }, {\n \"id\" : \"call_XkjP4msnu33a72XsUOBg2Lts\",\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"getWeather\",\n \"arguments\" : \"{\\\"arg0\\\": \\\"New York\\\"}\"\n }\n } ]\n }, {\n \"role\" : \"tool\",\n \"tool_call_id\" : \"call_5SUiRIS3GwSZRIPRkMvzKcmP\",\n \"content\" : \"The weather in Paris is sunny with 72°F temperature.\"\n }, {\n \"role\" : \"tool\",\n \"tool_call_id\" : \"call_XkjP4msnu33a72XsUOBg2Lts\",\n \"content\" : \"The weather in New York is sunny with 72°F temperature.\"\n } ],\n \"temperature\" : 0.0,\n \"stream\" : false,\n \"tools\" : [ {\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"getWeather\",\n \"description\" : \"Get current weather for a location\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"arg0\" : {\n \"type\" : \"string\"\n }\n },\n \"required\" : [ \"arg0\" ]\n }\n }\n }, {\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"getForecast\",\n \"description\" : \"Get weather forecast for next N days\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"arg0\" : {\n \"type\" : \"string\"\n },\n \"arg1\" : {\n \"type\" : \"integer\"\n }\n },\n \"required\" : [ \"arg0\", \"arg1\" ]\n }\n }\n } ]\n}", + "equalToJson" : "{\n \"model\" : \"gpt-4o-mini\",\n \"messages\" : [ {\n \"role\" : \"user\",\n \"content\" : \"is it hotter in Paris or New York right now?\"\n }, {\n \"role\" : \"assistant\",\n \"tool_calls\" : [ {\n \"id\" : \"call_zwnKkNDpDE4u3sBnswA2SJ1U\",\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"getWeather\",\n \"arguments\" : \"{\\\"arg0\\\": \\\"Paris\\\"}\"\n }\n }, {\n \"id\" : \"call_XOIVFyTztNURFkmi1zHnOx0I\",\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"getWeather\",\n \"arguments\" : \"{\\\"arg0\\\": \\\"New York\\\"}\"\n }\n } ]\n }, {\n \"role\" : \"tool\",\n \"tool_call_id\" : \"call_zwnKkNDpDE4u3sBnswA2SJ1U\",\n \"content\" : \"The weather in Paris is sunny with 72°F temperature.\"\n }, {\n \"role\" : \"tool\",\n \"tool_call_id\" : \"call_XOIVFyTztNURFkmi1zHnOx0I\",\n \"content\" : \"The weather in New York is sunny with 72°F temperature.\"\n } ],\n \"temperature\" : 0.0,\n \"stream\" : false,\n \"tools\" : [ {\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"getForecast\",\n \"description\" : \"Get weather forecast for next N days\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"arg0\" : {\n \"type\" : \"string\"\n },\n \"arg1\" : {\n \"type\" : \"integer\"\n }\n },\n \"required\" : [ \"arg0\", \"arg1\" ]\n }\n }\n }, {\n \"type\" : \"function\",\n \"function\" : {\n \"name\" : \"getWeather\",\n \"description\" : \"Get current weather for a location\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"arg0\" : {\n \"type\" : \"string\"\n }\n },\n \"required\" : [ \"arg0\" ]\n }\n }\n } ]\n}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "chat_completions-e7e0dbcb72a1.json", + "bodyFileName" : "chat_completions-dca65885c63b.json", "headers" : { - "x-request-id" : "req_c46b02b3f78b46108aa0726673f5affb", + "x-request-id" : "req_ad32672f0b6a4f73bbd765096dac427d", "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dd3233e3675e5-SEA", + "CF-Ray" : "a56a0a46bd6552ff-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", - "x-ratelimit-remaining-tokens" : "149999957", + "x-ratelimit-remaining-tokens" : "149999955", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:41:13 GMT", + "Date" : "Sat, 07 Nov 2026 05:46:54 GMT", "x-ratelimit-reset-tokens" : "0s", "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=7jPJ86GBfDu19URPU_JRk3vaDn4uAsQU1.LSNthpUkM-1788198072.832617-1.0.1.1-_FZwawczb5M7ROr7UosE5qw.zWMpbsWQlkdeVhs.vKGv91o1b2LIuQXSaAdME9SDLo6Expl6ba8XwHLjy5gajJj.UgaZ1fWnrZ3BXn1amLU5bNyPDLus6BK56_DrtB0z; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:11:13 GMT", + "set-cookie" : "__cf_bm=bCOfaOfAOUo5kfozrsHTRrVgJn5B2KuqdH55ZJROoxw-1794030413.876814-1.0.1.1-fd96rPsvfg7ZWVqDKFBNidbzbP6t_z5V.5C7g_YvOuCZFAZaiSjnPoNEDPo_zSs_trJ01OWJrWEm__0XXjBIiBdPxfdny1vrw3asSxsriXFh56kB2qLBWr4dlFav4D62; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:16:54 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "818", + "openai-processing-ms" : "654", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json" } }, - "uuid" : "fc6faf38-a5ea-3624-8f28-e4ed0b3f698f", + "uuid" : "a1ed0b9b-d410-31e6-872b-7ebb64bbc7c2", "persistent" : true, - "insertionIndex" : 31 + "insertionIndex" : 35 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-e236e31e1cb4.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-e236e31e1cb4.json new file mode 100644 index 00000000..61e52928 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-e236e31e1cb4.json @@ -0,0 +1,49 @@ +{ + "id" : "fb6f88e7-6437-3b60-bef9-871ce69a94d8", + "name" : "chat_completions", + "request" : { + "url" : "/chat/completions", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"messages\":[{\"content\":\"What is the weather like in Paris, France?\",\"role\":\"user\"}],\"model\":\"gpt-6-luna\",\"max_completion_tokens\":500,\"reasoning_effort\":\"none\",\"temperature\":0.0,\"tools\":[{\"function\":{\"name\":\"get_weather\",\"description\":\"Get the current weather for a location\",\"parameters\":{\"type\":\"object\",\"properties\":{\"location\":{\"type\":\"string\",\"description\":\"The city and state, e.g. San Francisco, CA\"},\"unit\":{\"type\":\"string\",\"enum\":[\"celsius\",\"fahrenheit\"],\"description\":\"The unit of temperature\"}},\"required\":[\"location\"]}},\"type\":\"function\"}],\"stream\":false}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "chat_completions-e236e31e1cb4.json", + "headers" : { + "Server" : "cloudflare", + "x-ratelimit-reset-tokens" : "0s", + "set-cookie" : "__cf_bm=1CmCLpvFeHGTB6uNn9TqJ.sbzuZpSi6VnmZOG8SWUKE-1794030189.7411416-1.0.1.1-c8zcB1jDCDsGB8Iv.QpJHfJRp.xKSodI4MEyiElXtw2QQu8XNSUxm0KHyQHIcqQr5EltjphDOO.80DnVOU7_UBxkhcLkNVTWAogyF1Lrb6MZGUpi1u8ixPPFLvHRXFlG; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:10 GMT", + "Access-Control-Expose-Headers" : [ "CF-Ray", "X-Request-ID", "CF-Ray" ], + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", + "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", + "Content-Type" : "application/json", + "x-request-id" : "req_cd3b491758b845d281911209d9fbced2", + "x-ratelimit-limit-tokens" : "180000000", + "openai-organization" : "braintrust-data", + "CF-Ray" : "a56a04cdd827961b-SEA", + "X-Content-Type-Options" : "nosniff", + "x-ratelimit-reset-requests" : "2ms", + "x-ratelimit-remaining-tokens" : "179999985", + "x-openai-proxy-wasm" : "v0.1", + "x-ratelimit-remaining-requests" : "29999", + "Date" : "Sat, 07 Nov 2026 05:43:10 GMT", + "CF-Cache-Status" : "DYNAMIC", + "x-ratelimit-limit-requests" : "30000", + "openai-version" : "2020-10-01", + "openai-processing-ms" : "592", + "alt-svc" : "h3=\":443\"; ma=86400" + } + }, + "uuid" : "fb6f88e7-6437-3b60-bef9-871ce69a94d8", + "persistent" : true, + "insertionIndex" : 16 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-e2aaee62ff13.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-e2aaee62ff13.json index 66e95038..dbbdfa40 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-e2aaee62ff13.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-e2aaee62ff13.json @@ -19,25 +19,25 @@ "status" : 200, "bodyFileName" : "chat_completions-e2aaee62ff13.txt", "headers" : { - "x-request-id" : "req_27b0d235b46e4131bfc5ec642a199ca8", + "x-request-id" : "req_6063abc1f1fc4d96b04f272ff88d9791", "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dd8c30f93ba34-SEA", + "CF-Ray" : "a56a0d696c3e9bbc-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", "x-ratelimit-remaining-tokens" : "149999990", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:45:03 GMT", + "Date" : "Sat, 07 Nov 2026 05:49:02 GMT", "x-ratelimit-reset-tokens" : "0s", "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=dOxPPhmC5Ys9qkZfRtOGfy0k0U38zZjRunFNC85iuEc-1788198303.2098625-1.0.1.1-7gRsMdL.B.r.3rUCXsHrPRf9V3xB.3hKrxNfIgU.IG.emaZm21goM9VfHa6P_9_4GQU9W_lRh18Xe4fH6J8JdgAsNIp1dC1jwb1nubsXD3p0Oh3CHQfI12S5Qlnemx3s; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:15:03 GMT", + "set-cookie" : "__cf_bm=WRf_OaoqA71TwPIPnUzLtRt0C0b6rrEgL1DJAq0Wvh8-1794030542.3059325-1.0.1.1-Tz2KiKH2tNKlOJ3kvgE60mT9qSmrf3c3.26fTI.ccnIxmX9ENZtVuS2PKHaB_ZMn_WLIa0TNXLRjEADT5TqcZbPHTjSyGJZSpkOV3VT0XWyHNEIrnD4aQ7fgKfEuWgy6; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:19:02 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "437", + "openai-processing-ms" : "400", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "text/event-stream; charset=utf-8" @@ -45,5 +45,5 @@ }, "uuid" : "7e7a159b-863b-3748-b044-3682811962e5", "persistent" : true, - "insertionIndex" : 62 + "insertionIndex" : 71 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-e377d6681642.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-e377d6681642.json index 65cf806f..065882a2 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-e377d6681642.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-e377d6681642.json @@ -19,25 +19,25 @@ "status" : 200, "bodyFileName" : "chat_completions-e377d6681642.txt", "headers" : { - "x-request-id" : "req_25777fd91b464a858aa8025f3f4924d4", + "x-request-id" : "req_1e006cf1b9b343e68103d6b611a540ad", "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dd3675a740903-SEA", + "CF-Ray" : "a56a0a6548790d0f-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", - "x-ratelimit-remaining-tokens" : "149999987", + "x-ratelimit-remaining-tokens" : "149999990", "x-openai-proxy-wasm" : "v0.1", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:41:24 GMT", + "Date" : "Sat, 07 Nov 2026 05:46:59 GMT", "x-ratelimit-reset-tokens" : "0s", "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=HrsaqqJIQ1r8e1FaQ3s7suYii112L3GIICNt0VL9jR0-1788198083.7319853-1.0.1.1-TDQDe_LBUGLXP.mhXOvTY6Wwc9vlHjGuTg8PnPsHOCutuuQwHdxM5hSlFeq6RTyQg2dqRBG8AOE9Z0wistIFRzq0YAIk_a6UBAeYsI988z9s25b3vhd5VDsw2hY7.Nxb; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:11:24 GMT", + "set-cookie" : "__cf_bm=7vt2UDVLyBvwYSpMCxtpTi.Cxz3Rzj6.kRwFo0vLBi0-1794030418.7632291-1.0.1.1-9I9KpvW1DHjQZMOO8yGKu2pNoUOCBuYZnlPmxp8hx2FeC88hcTm.SItFnb1bCgqXzFvliL_ru.zReuR0zkkks3GHnToMS7wvEbKewvDxDdIPEcDtMf9PPH1_R1om8372; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:16:59 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "334", + "openai-processing-ms" : "310", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "text/event-stream; charset=utf-8" @@ -45,5 +45,5 @@ }, "uuid" : "d5772e73-ca9d-3382-84e3-e2a19405bf94", "persistent" : true, - "insertionIndex" : 45 + "insertionIndex" : 49 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-f76ff3cb2426.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-f76ff3cb2426.json deleted file mode 100644 index 3cdca4c9..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-f76ff3cb2426.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "id" : "d773bef0-e01d-3031-a380-4067d3738030", - "name" : "chat_completions", - "request" : { - "url" : "/chat/completions", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"messages\":[{\"content\":\"What is the weather like in Paris, France?\",\"role\":\"user\"}],\"model\":\"gpt-4o\",\"tools\":[{\"function\":{\"name\":\"get_weather\",\"description\":\"Get the current weather for a location\",\"parameters\":{\"type\":\"object\",\"properties\":{\"location\":{\"type\":\"string\",\"description\":\"The city and state, e.g. San Francisco, CA\"},\"unit\":{\"type\":\"string\",\"enum\":[\"celsius\",\"fahrenheit\"],\"description\":\"The unit of temperature\"}},\"required\":[\"location\"],\"strict\":true}},\"type\":\"function\"}],\"max_tokens\":500,\"temperature\":0.0}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "chat_completions-f76ff3cb2426.json", - "headers" : { - "Server" : "cloudflare", - "x-ratelimit-reset-tokens" : "0s", - "set-cookie" : "__cf_bm=Ztcksfqtm9QHDT.jY_vrQJatz.E8UFjWAI1eiObmF8Q-1788197809.3642948-1.0.1.1-SI.h190rF5DwmsB0v3Cn9fK.j1y5ZpL8p4LFsm98vWIc1nBpRHCoOBa9xHXKKIouH5sSyS..c9YqyOGb_EGAVjMpf0Fk7JtiqxiPsYG9DjjJpW.2WwTGSQs.cXayRHje; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:06:49 GMT", - "Access-Control-Expose-Headers" : [ "CF-Ray", "X-Request-ID", "CF-Ray" ], - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", - "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", - "Content-Type" : "application/json", - "x-request-id" : "req_dc7d1850ffcf4ef7ba4513038767e73e", - "x-ratelimit-limit-tokens" : "30000000", - "openai-organization" : "braintrust-data", - "CF-Ray" : "a33dccb48a2275b4-SEA", - "X-Content-Type-Options" : "nosniff", - "x-ratelimit-reset-requests" : "6ms", - "x-ratelimit-remaining-tokens" : "29999986", - "x-openai-proxy-wasm" : "v0.1", - "x-ratelimit-remaining-requests" : "9999", - "Date" : "Mon, 31 Aug 2026 17:36:49 GMT", - "CF-Cache-Status" : "DYNAMIC", - "x-ratelimit-limit-requests" : "10000", - "openai-version" : "2020-10-01", - "openai-processing-ms" : "494", - "alt-svc" : "h3=\":443\"; ma=86400" - } - }, - "uuid" : "d773bef0-e01d-3031-a380-4067d3738030", - "persistent" : true, - "insertionIndex" : 32 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-f8a5ac27188a.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-f8a5ac27188a.json deleted file mode 100644 index dd662931..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/chat_completions-f8a5ac27188a.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "id" : "59a604a9-a1d1-3dab-9f06-20e3d67d1d44", - "name" : "chat_completions", - "request" : { - "url" : "/chat/completions", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"messages\":[{\"content\":\"you are a helpful assistant\",\"role\":\"system\"},{\"content\":[{\"type\":\"text\",\"text\":\"Briefly describe these attachments\"},{\"type\":\"image_url\",\"image_url\":{\"url\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8DwHwAFBQIAX8jx0gAAAABJRU5ErkJggg==\"}},{\"type\":\"file\",\"file\":{\"filename\":\"blank.pdf\",\"file_data\":\"data:application/pdf;base64,JVBERi0xLjAKMSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgPj4KZW5kb2JqCjIgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9LaWRzIFszIDAgUl0gL0NvdW50IDEgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL1R5cGUgL1BhZ2UgL1BhcmVudCAyIDAgUiAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXSA+PgplbmRvYmoKeHJlZgowIDQKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDA5IDAwMDAwIG4gCjAwMDAwMDAwNTggMDAwMDAgbiAKMDAwMDAwMDExNSAwMDAwMCBuIAp0cmFpbGVyCjw8IC9TaXplIDQgL1Jvb3QgMSAwIFIgPj4Kc3RhcnR4cmVmCjE5MAolJUVPRgo=\"}}],\"role\":\"user\"}],\"model\":\"gpt-4o\",\"stream\":false,\"temperature\":0.0}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "chat_completions-f8a5ac27188a.json", - "headers" : { - "Server" : "cloudflare", - "x-ratelimit-reset-input-images" : "0s", - "x-ratelimit-reset-tokens" : "3ms", - "x-ratelimit-limit-input-images" : "250000", - "set-cookie" : "__cf_bm=lPTIewDHl7nmTaprV7OzOzFtLlxS.vpQ5cO60ZwPLs8-1788197815.1760187-1.0.1.1-eXKeYX3Tm5YvJKBnvXNV6NYwvhdgG30IYRFERzKAzPbNSu_PF7U9VwXPjAHBhY8QOxhJ.xhGvbgXq6HuAABrHy4PD6p7CenbryfTrIv_PmM2Z_Acu3BSp.QPBScazyPg; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:06:56 GMT", - "Access-Control-Expose-Headers" : [ "CF-Ray", "X-Request-ID", "CF-Ray" ], - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", - "x-ratelimit-remaining-input-images" : "249999", - "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", - "Content-Type" : "application/json", - "x-request-id" : "req_4e8a50f4083e4496845523e891d525fc", - "x-ratelimit-limit-tokens" : "30000000", - "openai-organization" : "braintrust-data", - "CF-Ray" : "a33dccd8d98fbd66-SEA", - "X-Content-Type-Options" : "nosniff", - "x-ratelimit-reset-requests" : "6ms", - "x-ratelimit-remaining-tokens" : "29998451", - "x-openai-proxy-wasm" : "v0.1", - "x-ratelimit-remaining-requests" : "9999", - "Date" : "Mon, 31 Aug 2026 17:36:56 GMT", - "CF-Cache-Status" : "DYNAMIC", - "x-ratelimit-limit-requests" : "10000", - "openai-version" : "2020-10-01", - "openai-processing-ms" : "1609", - "alt-svc" : "h3=\":443\"; ma=86400" - } - }, - "uuid" : "59a604a9-a1d1-3dab-9f06-20e3d67d1d44", - "persistent" : true, - "insertionIndex" : 23 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/images_generations-587a6f86c3df.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/images_generations-587a6f86c3df.json new file mode 100644 index 00000000..32395e73 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/images_generations-587a6f86c3df.json @@ -0,0 +1,42 @@ +{ + "id" : "a2d47e4f-6d96-399f-8e51-88f5a9b073a0", + "name" : "images_generations", + "request" : { + "url" : "/images/generations", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"prompt\":\"A small blue circle on a plain white background.\",\"model\":\"gpt-image-2.5-flare\",\"n\":1,\"output_format\":\"png\",\"quality\":\"low\",\"size\":\"1024x1024\"}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "images_generations-587a6f86c3df.json", + "headers" : { + "x-request-id" : "req_40e4515d1ca24470b1e694ecd99e2f74", + "openai-organization" : "braintrust-data", + "CF-RAY" : "a56a0b52ef744224-SEA", + "Server" : "cloudflare", + "X-Content-Type-Options" : "nosniff", + "cf-cache-status" : "DYNAMIC", + "Date" : "Sat, 07 Nov 2026 05:47:42 GMT", + "access-control-expose-headers" : [ "X-Request-ID, Server-Timing-Total", "CF-Ray" ], + "set-cookie" : "__cf_bm=_P7J0b3QFCA_QMmhTM5r0mCMagrJDz_NT5Rv4EKu6Ks-1794030456.7854686-1.0.1.1-3gtr29HE1KlehANVjPyfnbfaBVbkPeXH2sR.4GEGbTHILHSVtqYUQwU1afz8fP0wgcl8aCc5WuugN6V95KPxiyYrylR.HVapgtGldCJWwRB07iLiVCatVdCebS_ywIGN; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:17:42 GMT", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", + "openai-processing-ms" : "4907", + "openai-version" : "2020-10-01", + "alt-svc" : "h3=\":443\"; ma=86400", + "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", + "Content-Type" : "application/json" + } + }, + "uuid" : "a2d47e4f-6d96-399f-8e51-88f5a9b073a0", + "persistent" : true, + "insertionIndex" : 59 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/images_generations-b450a318cba9.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/images_generations-b450a318cba9.json deleted file mode 100644 index 3d62c022..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/images_generations-b450a318cba9.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "id" : "0f7fb6ae-e79f-32ab-906d-7ad1e776b279", - "name" : "images_generations", - "request" : { - "url" : "/images/generations", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"prompt\":\"A small blue circle on a plain white background.\",\"model\":\"gpt-image-1\",\"n\":1,\"output_format\":\"png\",\"quality\":\"low\",\"size\":\"1024x1024\"}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "images_generations-b450a318cba9.json", - "headers" : { - "x-request-id" : "req_678c520f32304c1ea32aa5408fe6ec7f", - "openai-organization" : "braintrust-data", - "CF-RAY" : "a46f19df1f0f0712-SEA", - "Server" : "cloudflare", - "X-Content-Type-Options" : "nosniff", - "cf-cache-status" : "DYNAMIC", - "Date" : "Wed, 07 Oct 2026 18:52:14 GMT", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray" ], - "set-cookie" : "__cf_bm=_ua6dGPvvqs_OSpzC_a_flxmE1YTpt7AOST6iMcFOg8-1791399126.8939307-1.0.1.1-bX95kg2ZMBm0UCyvkikC2I0leGfZ_MojTIx3HbiviEWRMwZzfF6_tJonevh2qwTq2p8yZ9Rj.Up.0wQ4QvXDLB0l4WnU0KiIflrQFxePqEfDoeQJCX5j_BWpHwJPs8va; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Wed, 07 Oct 2026 19:22:14 GMT", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", - "openai-processing-ms" : "7275", - "openai-version" : "2020-10-01", - "alt-svc" : "h3=\":443\"; ma=86400", - "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", - "Content-Type" : "application/json" - } - }, - "uuid" : "0f7fb6ae-e79f-32ab-906d-7ad1e776b279", - "persistent" : true, - "insertionIndex" : 68 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/moderations-c261ebe1078b.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/moderations-c261ebe1078b.json index 48409fb7..4719b9af 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/moderations-c261ebe1078b.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/moderations-c261ebe1078b.json @@ -19,18 +19,18 @@ "status" : 200, "bodyFileName" : "moderations-c261ebe1078b.json", "headers" : { - "x-request-id" : "req_2343968048404ebc8960e50e52a75ec0", + "x-request-id" : "req_bbfda7cbd01342e8b76cda06a91c8741", "openai-organization" : "braintrust-data", - "CF-RAY" : "a46f19d9b8d7fcac-SEA", + "CF-RAY" : "a56a0b13bd774f73-SEA", "Server" : "cloudflare", "X-Content-Type-Options" : "nosniff", "x-openai-proxy-wasm" : "v0.1", "cf-cache-status" : "DYNAMIC", - "Date" : "Wed, 07 Oct 2026 18:52:06 GMT", - "set-cookie" : "__cf_bm=A_Qpf1wOIjKNqNCDF3T4UavhNNZfr4qZlB9kS41pYLA-1791399126.0373695-1.0.1.1-HA3oOhiSK0xYcUjtYTOsAcjjzeMlaPHO8tS6QclhoMOZncFdTHpkeAwvnmPIXPsCNya7S4HTVeWYAF_AZamwtir2tu5hn8XhWYkku.C_OuZgU0SxrVa.DNJfZo8kQHIe; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Wed, 07 Oct 2026 19:22:06 GMT", + "Date" : "Sat, 07 Nov 2026 05:47:26 GMT", + "set-cookie" : "__cf_bm=SbGIvaa6Z8WPuhIhXKVhOnE7pTFmxa11FH2uBlIDizQ-1794030446.6786008-1.0.1.1-qX75d5LM72yfqRLnB6IfHSdzyPvG.wOViS8er61KSJw1HjIc2OnozuA0UFIXH40Q6zfcQ2r5NLDqOeHU.6R4PsXKnzYwMCQZOp.fgD2sWMjcaWKV_WgR.2xXeMrr_Oiv; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:17:26 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "Access-Control-Expose-Headers" : "CF-Ray", - "openai-processing-ms" : "42", + "openai-processing-ms" : "145", "openai-version" : "2020-10-01", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", @@ -39,5 +39,5 @@ }, "uuid" : "92b43ec7-9e81-30b9-8dbd-361b51de7003", "persistent" : true, - "insertionIndex" : 69 + "insertionIndex" : 61 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-baa09e3f6fdb.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-0118fcf006a8.json similarity index 57% rename from test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-baa09e3f6fdb.json rename to test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-0118fcf006a8.json index e21e13fb..ed2da513 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-baa09e3f6fdb.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-0118fcf006a8.json @@ -1,5 +1,5 @@ { - "id" : "1f8968cc-f8aa-3ef8-bb6e-38f1d42e01d1", + "id" : "d9475be0-8c01-36fd-88cf-281d3a953efc", "name" : "responses", "request" : { "url" : "/responses", @@ -17,34 +17,34 @@ }, "response" : { "status" : 200, - "bodyFileName" : "responses-baa09e3f6fdb.json", + "bodyFileName" : "responses-0118fcf006a8.json", "headers" : { - "x-request-id" : "req_c56257721db34539958fa3b24cb434ba", + "x-request-id" : "req_31b9a22d157245d892a4c9d36ee80468", "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a4b2a0639987c586-SEA", + "CF-Ray" : "a56a049f7ac4a0ed-SEA", "X-Content-Type-Options" : "nosniff", - "x-ratelimit-reset-requests" : "4ms", - "x-ratelimit-remaining-tokens" : "149999917", - "x-ratelimit-remaining-requests" : "29998", - "Date" : "Thu, 15 Oct 2026 23:33:03 GMT", + "x-ratelimit-reset-requests" : "2ms", + "x-ratelimit-remaining-tokens" : "149999957", + "x-ratelimit-remaining-requests" : "29999", + "Date" : "Sat, 07 Nov 2026 05:43:02 GMT", "x-ratelimit-reset-tokens" : "0s", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=EwAkkIukZUd4VPUPdanRC3hxFbcs9GYvzHLCljHnodI-1792107182.65643-1.0.1.1-MJJjwaFf5xoBDD9pV.mzdJB1UzAisRulE44YsjX3UQ68psL.tmi17YR5TRHPyaRZm61jE7XLv5LP6FTDGGv6zoO3uEMfyar.AJKMwnCaxrR8G6TkRbxjoBkor_Zp1f5v; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Fri, 16 Oct 2026 00:03:03 GMT", + "access-control-expose-headers" : [ "X-Request-ID, Server-Timing-Total", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=w56He4dpVUdm0zL1CKUZZfLsJPu622nD1z1xwGR0nHw-1794030182.316211-1.0.1.1-DqSnD7Vcyx2LM_Yf8I.bZFTM5ve5mN.qQg.Hb783WWMhwqY73.CFWbgfHrVZ2ulr3xb7KEgSGS1lZc4xPClZwKdewbaCfmQ13rVRdF5AacCnz.aVm9lnzLLSMumMaP3a; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:02 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "1122", + "openai-processing-ms" : "501", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json" } }, - "uuid" : "1f8968cc-f8aa-3ef8-bb6e-38f1d42e01d1", + "uuid" : "d9475be0-8c01-36fd-88cf-281d3a953efc", "persistent" : true, - "scenarioName" : "scenario-1-responses", - "requiredScenarioState" : "scenario-1-responses-2", - "insertionIndex" : 72 + "scenarioName" : "scenario-7-responses", + "requiredScenarioState" : "scenario-7-responses-2", + "insertionIndex" : 32 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-042a0738564d.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-042a0738564d.json deleted file mode 100644 index 035a26ee..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-042a0738564d.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "id" : "84ae5d6a-5cda-35bf-8bd6-18724c3f189b", - "name" : "responses", - "request" : { - "url" : "/responses", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\n \"model\" : \"o4-mini\",\n \"input\" : [ {\n \"type\" : \"message\",\n \"role\" : \"user\",\n \"content\" : [ {\n \"type\" : \"input_text\",\n \"text\" : \"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\\n\"\n } ]\n }, {\n \"type\" : \"reasoning\",\n \"encrypted_content\" : \"gAAAAABqlbvYExiVEN0PpKufywUbaup2cuEwH0bdepoaoOvuKkJxPF8FeJJOjVnJ5GXeeDWf4f_aKLwh5FuYHTm6tA-obuyqmOPkQjOYzIZhoJFxiPC0jaMR2wo0dDnjyifjoEwtxjubkgESbidVkpiOT1furUoAKw2fvUwkA6-B9d3ontlw4-IPGNl90PxaDR-4DpK9sDTnAg04W6P09xdhvlvNo80JbX6kuJROnVpUlthFEUtbq938i5Qu2OWDWQi_Zf6X02AteH5JjKhHGOKnnquapSe_fUJq-5XMnUZauKcY4HJ3QX7OVcMzd-wNBb8LVEIzH7Sb56-5ufu8tvzZXomqHoE9sMKFoAdPqA3rCTEUJIr0iXbFK34zmb-hZpmoNau1eIiE5SUVUUYqrY1IPSwKxuKWV9gtQeiPB3_Uctj19yohGplOcqWY1itcegVUMX9mdKA6jDQXAywEzgzGAneYapu5GOpyYZnNk_2Z9rZL8uw9Twc5YPowPm5lvtN4FIdqLjhRw7lsdshamzKwXXYcAu73BDDHTV0bxi6WFDQeMAw4KigfCL4kKPTPOEEABR1MFgo9FZ-vG7f4JzZWfibOmuNAe_MVNfXlrRk6fkaf11fBWEwlX24mCRZFtzvBaNawozP6c0NETtP22sOpzqR94Fpnk-v72AocHlDXOaNT6LTN4jOVqZgAU5b7pFKP3ZXVdU3jpjk3pglvjimeRLAM0HJm8li2CpR4NwJbZBZKVuARGJb3LWep7h2EDAUKKO5RQH5-VS9Es4AnEUjVED6j0dANEHCMvJjg0MtTvAf7WfsYSJDhuynm5jBLO023oUASn79HFI_UBt_m6RzlIEqGxggRBqMAZL7r-2giMzWvITGTAVf8r8MDf2JpTdaruTnDQFZwmkROghHNflGeP855i4cB3baAtGIcUFymzmNPRo-oI0GexuLBZilRXADIVtEXdpcK0F-oChIQfcX5jQloD5AIvIX14zmv3ji73rc4EegE1u8UEO9KyLDWMRUr_mrerCsQJ3VIVKjHcRCeJ-_R27msJrAKI6cnnazUt4igcxYAm-qNfN0XeNEL-PllSKDfjSdVS5eHgttK1lXjlh82bWyeN_9IP1foF2_NnxVNtZrWinrQiCBCQ1j-Bzdh3-GyQ0PLLUrNQIzDbndtqYRL4B_DtUw2EbNv5f8ypXM5H9sNyMMvJunHSPlj3hHWoGx5xyKCxBwVuJYG03dsAhfnNSmEZ4qK04c6hvWs7TE0iKWsymihBBCwcvUqQTAn83ACfPPMIGdbS9sWfcOrzqjOmo5GkWEw9Okn6VOZrRhsAbasFEOpVd9lebfu9mDZKUcafIhdxT3cFoUSLi4FhsgBF4E0tZ345asumwPEa5LkcOeYrjEl5MGzLmirxTM9q0BJZDjc5O4aAKpVL9JeTqE6bDty_AgNcTfKVlt8cnPTZkm5-oLxGSQft61pn44NB7h7hWXwY7JQVrhIdRDgY6B4z4FASrV6d1YOj4Yl9GXnk0TYyxxZ7Ih_FQOphXpxqvZNeiTWdVfwqv2dv8QbDOwfuHBIXGLQ-CYEtUfQl9RCZ0-YjzmEzdXF9evJTgdTm_C-x-j2IAQMHgZVeYCJvFGvt-qX2XepXduaaBOQFenPAN5cF7E7ic33eeUdqoHFiuj-1RMs0eYCsNH-Qb1cLvTQ_GbR_O6cm6F-RftLaJohXPjaY-885Fi3SPLhJxbAjpB4t9KrX1JB5MnyVmri9g8f8F6-_6_1ypPXOnoZZJ2hQ1xU8UksX53zwIiKPBWPXvUA4lj_uZzDbsLN3YFawBKg1tbD7ir3ZCLpsSpade_Zqlg3lHFKhLEOJu54mSM5E8r-wL9Se9dsgqKwsC6Fnl9TTS5R3KVS_n8Tf7U3MXjlSEyN3MR_C40kSTRBl5vwrKa2ZkitFRIykBkRhnv9m8SM0FTRjIjtVt7-_tFe_Kt1qgTgA-vdf4-hu6Y7L-Mav2Hr3-3xRt7IW4ZSz7QwQA3Rj1NoQY4cWhEzMWWguRQRSeeWQXF8g0XVGYNbaMUXafdP8p77wfEJIM87Y-opI7xCZMsstGnfk4zCVAsitL_R-6qGuYfVuvF-rrMV8_9qMYbdH1O_KFVn_Vi9jXICK3pFVtJCmDfuUf5QDzT_mtjcRfKYeO3rnat1BiurIVqyfZkA5HaSoySslJ_5gb4lFy2X_vye0fSeZ7cIqFvnF-l7he6SncvUbiZ2Ko0gSb5rCCEX6HAbk0ZTF7h4bpH54FNpV4wy045U_YFNXZ0IbilPcZig_TaF-aP2b74wS3id0mhOHndt2HBSd2ffNQTmj7XxJ4JPkTkL6chiXvTAQEqPnKCy05ZBy9xfn8bL4fCaiYhYv8v7ZFNUDUz6ZNerlyekMp40-eCerlkk39Hju2GE7jBkrzpGpuwGQynI20sXCfew6lWq-7c9dZYxrjsaH7QP_uariE8plG9GS1qEdH-VTC7H0Vcuv81uKu3s1wVf2eOR2Fvkbj7xCQUhNwA5ba-SsBJjSO21RycIcsr43UJzecwV5On51zZ689s7juFH65HtA1M-RqwO0jsC54nlQ2Vbp3fFu6_Dpu49fi0iaJyYfHGk8OxyFykwwUBDe1PRgk1yh2awE3Q6x2OManROmbsjxrxBKR0vuotLl1RcIkbqqr43FxORo3K-R0oCl1tg2RQ8eCVkq5di7gwttanLXAOKEGBQpD_3k4gOdKRM6knT0zuLmT4wOzqID_iKDtvb47vRvDFgIJEXl8jJdnApILoXki-Afw==\",\n \"summary\" : [ {\n \"type\" : \"summary_text\",\n \"text\" : \"**Identifying the sequence pattern**\\n\\nThe user asked about the sequence: 2, 6, 12, 20, 30. I see that these numbers can be expressed as n(n+1). For example, 2=1*2, 6=2*3, etc. I'm realizing they represent pronic numbers, which are products of consecutive integers. So, the nth term formula is a_n = n(n+1). This sequence’s differences are also revealing a pattern: 4, 6, 8, and 10—interesting how those connect!**Clarifying the formula**\\n\\nI see this is a second-order linear sequence, where a_n = n^2 + n, starting with a1 = 2 — that's good! The pattern shows that I'm adding even numbers, beginning at 4 and increasing by 2. Each term corresponds to the product of consecutive integers, confirming the formula as a_n = n(n+1). So for example, 2=1*2, 6=2*3, and so on. I've got it all summed up now—I've reached the end!\"\n } ]\n }, {\n \"type\" : \"message\",\n \"role\" : \"assistant\",\n \"content\" : [ {\n \"type\" : \"output_text\",\n \"text\" : \"Each term is the product of two consecutive integers:\\n • 2 = 1·2 \\n • 6 = 2·3 \\n • 12 = 3·4 \\n • 20 = 4·5 \\n • 30 = 5·6 \\n\\nThese are called “pronic” numbers. In general, the nth term is\\n\\n aₙ = n·(n + 1) = n² + n.\"\n } ]\n }, {\n \"type\" : \"message\",\n \"role\" : \"user\",\n \"content\" : [ {\n \"type\" : \"input_text\",\n \"text\" : \"Using the pattern you discovered, what would be the 10th term? And can you find the sum of the first 10 terms?\"\n } ]\n } ],\n \"stream\" : false,\n \"store\" : false,\n \"include\" : [ \"reasoning.encrypted_content\" ],\n \"reasoning\" : {\n \"effort\" : \"high\",\n \"summary\" : \"detailed\"\n }\n}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "responses-042a0738564d.json", - "headers" : { - "x-request-id" : "req_54775536912247dd82c8d9e71863888d", - "x-ratelimit-limit-tokens" : "150000000", - "openai-organization" : "braintrust-data", - "Server" : "cloudflare", - "CF-Ray" : "a33dcda7a8fa7606-SEA", - "X-Content-Type-Options" : "nosniff", - "x-ratelimit-reset-requests" : "2ms", - "x-ratelimit-remaining-tokens" : "149999617", - "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:37:35 GMT", - "x-ratelimit-reset-tokens" : "0s", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=mtMl54rYh6BF2G.nUGryJahmX1zjgpdMY.p9ol4NTWg-1788197848.2674417-1.0.1.1-L8yVJR3V8qTX6TvYFnPtrh3V8Tq.6z.9PENnX2UVvv5M895bvhv8AT4hgVPczy5LTy_quJy.qIBYnlXQkoJA.mmbX4ssSf8S2zcauj3fy.jVkiaTPhWiNltJ4mZJbd2w; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:07:35 GMT", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", - "CF-Cache-Status" : "DYNAMIC", - "x-ratelimit-limit-requests" : "30000", - "openai-version" : "2020-10-01", - "openai-processing-ms" : "6761", - "alt-svc" : "h3=\":443\"; ma=86400", - "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", - "Content-Type" : "application/json" - } - }, - "uuid" : "84ae5d6a-5cda-35bf-8bd6-18724c3f189b", - "persistent" : true, - "insertionIndex" : 5 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-0c37df81d2cf.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-0c37df81d2cf.json index 20942bd4..5bb25e30 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-0c37df81d2cf.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-0c37df81d2cf.json @@ -19,24 +19,24 @@ "status" : 200, "bodyFileName" : "responses-0c37df81d2cf.json", "headers" : { - "x-request-id" : "req_1d318236def3478983e87916819ca60e", + "x-request-id" : "req_61f4082f70714119a1a5d11f8a6e848e", "x-ratelimit-limit-tokens" : "30000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dd5a1ac612672-SEA", + "CF-Ray" : "a56a0ae7b9cadc73-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "6ms", "x-ratelimit-remaining-tokens" : "29999667", "x-ratelimit-remaining-requests" : "9999", - "Date" : "Mon, 31 Aug 2026 17:43:40 GMT", + "Date" : "Sat, 07 Nov 2026 05:47:22 GMT", "x-ratelimit-reset-tokens" : "0s", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=2M0GqUYqBC0JSmC4rCPKFF2OnKbeT5RbSsryzRYj6uE-1788198174.9836721-1.0.1.1-iE17FNyl4.Ify5.RS8lNIQOtVa1MEQQOEYey1..9kAQj0yNSId_SulqDMs.TDJV65SPjgX3eVf5YepnIcSjgYYJME6ZN0ZzIsa4kxswJs8v34JOSg6uj5UQSTpf5eLkE; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:13:40 GMT", + "access-control-expose-headers" : [ "X-Request-ID, Server-Timing-Total", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=p2XL4kWsO_jZkVX.ZuZ1NepwHWb9SU6LzLBMSaxXWTQ-1794030439.6439815-1.0.1.1-WkJsihVd6PREWmBJKKnCDsVk9zI5paShx28tPqfScLs..BCB_3iKlkKOo5k.qyd70EDwBOyLgiSI0dRnGTvLuA1h686.XCTvf7qDJTtNvGG3YXWnHhgwWfCTBUZbh99_; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:17:22 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "10000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "45284", + "openai-processing-ms" : "2798", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json" @@ -44,5 +44,5 @@ }, "uuid" : "281f816f-d189-3cf5-88f9-fd4fdc9fe66d", "persistent" : true, - "insertionIndex" : 56 + "insertionIndex" : 65 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-10f9231b8f69.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-10f9231b8f69.json deleted file mode 100644 index 7fa33931..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-10f9231b8f69.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "id" : "ec29ab00-2e62-3b18-89bc-81bc5de4272f", - "name" : "responses", - "request" : { - "url" : "/responses", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"input\":[{\"role\":\"user\",\"content\":\"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\\n\"},{\"id\":\"rs_0cdcf22d3808a85f006a95bbd7218887d09fb602e6a1419ef0\",\"summary\":[{\"text\":\"**Identifying the Sequence**\\n\\nThe user wants to explore the pattern in the sequence: 2, 6, 12, 20, 30. I see that it looks like these are double the triangular numbers, which are defined as T_n = n(n+1)/2. When I double these values, I indeed get the sequence: 2, 6, 12, 20, 30. So, the nth term is given by the formula a_n = n(n+1). This highlights that these numbers are pronic numbers, being products of consecutive integers.\",\"type\":\"summary_text\"},{\"text\":\"**Deriving the Formula**\\n\\nI can express the nth term as a_n = 2 times the triangular number or as a_n = 2*C(n+1, 2), but the simplest form is a_n = n(n+1). The sequence shows constant second differences, confirming it's quadratic. The differences between terms are even numbers: 4, 6, 8, and 10, with differences increasing by 2. After solving the equations formed, I found a_n = n^2 + n, identifying it as pronic numbers—products of consecutive integers starting from 1.\",\"type\":\"summary_text\"},{\"text\":\"**Finalizing the Answer**\\n\\nThe pattern I've identified consists of numbers in the form n(n+1). Therefore, I can express the nth term as a_n = n(n+1) or a_n = n^2 + n. These numbers are also twice the triangular numbers, since T_n = n(n+1)/2 leads to a_n = 2T_n. Notably, the first differences form an arithmetic progression: 4, 6, 8, 10. Given that the second difference is constant at 2, the general term simplifies to a quadratic equation: a_n = n^2 + n.\",\"type\":\"summary_text\"}],\"type\":\"reasoning\",\"encrypted_content\":\"gAAAAABqlbv0R1eufJtJbpIkOfSDwwyF5lQNyx50eyNFEAQYx630DXHxgoY9Jq3Tr-55UnSd6tmfLMfB-J6kUQ8cC4ou18k1bNH5wWN2tr8R6qRHS5_7b9ars4VkbJ9VOo4vEghADLo3XSZLVDqAxJPv17iLQXxfkTXgO-3SlFFYdFt-P8qQsW6eGGzQvZBSrN4E14vZPfPUleTkWwttsdlyA8Ma7Yio2rhmQOyflOhQfU2QVZ7s2JwvAPAbjF8_e5MHsD5jvhzvGWhHOKlNJrQ2Jd9tMQjkzWciwEzy1wjxP52x0m-in6cEHr2zhh_rKwHtOUSeC8DvqjeY76hOH4vLuuGe6GWxvQnhRZvu4MUdnPh0V9DiYiNwcaf2oawPKGQ81Ym3qwXRM2LC-qvYDJ2NHDkCNHZW7FSoJt8w-T7KhT-Bs-VaV4biMqs0sPHkJQ2Fs9yBSu8SqauxboASnx5ivXIsO4tI860xy4cW1B9-aWyqdFXSvi4QKYf7FuGU_aWbNr8-atpgj8Z_NITWh9z7XUXTgPHQ8I9wBoA4ThK1gicMnyG6HalA7lmeUeMhiSnfUMdOCAhp2_orJf4l0EZ3PMCxneIiFIXeoMIPq3YVQm6kswbEROUTFG3JlKchrTJ6Fed5sbtAGlN4vektll9l6U1iWgL8ZjAI995qSe6zcf0UhE75sR_KZNSS5W-jWFO1k-FzfrBouMzTYegfBmllfZ2DbA_iQz8chQoDQyb2-_9ALHs9Gq6F8ar5KY1jbnh1RV1jlRsXlAfjG9-4ibqyRHsHv7bMLe0M4SngpnEhpK-G-RCLk3L5ij4Jh3Vp_amD3o6LpLzcpANbLac-geQFzxUzImDO_Ior0CAGLyiMemXE0mBY5auEtsDny6SRKwZH98bluWH-U9PFB_nONLq07klJZuygho9BJ7Uc51jwXL279U74DjTaH0yfZhFckXfeIsEfOHRkJUVtXeiqUtKksgnzrZ-WHyg-2VLIvoLMEqcK1o3b9aHNi7nJvPoFd1rZRdEtjrnNF9Yr_qTq_Vl-qbPm7ufNt9ZKuD0pCpnY4XGwvoJdetmL5HQJDcrqBpPvuM4FfyPc8Fi_SUikd5cAdlXtB9bysGzSIgVQyxIHUVOnGUxSOHqnb644NPze_mGP1uI02ZhwK55FbCOQTbX30ltwzEJxt3KRIjLOiJIO5rU2ogodcY4kPqg-HgB7NupgzL_Q9JyQZIp1uD063kMOvWB6vldjVw3kDsMVNFtlUIO6oafPwxNf1zaK4RUan718ephxQA6iS-9S2RBfYRnuuNrGUaunRmg37_1ttH_qAOc4zxIC3HobJoAvEi64b9VMu30jF7P17nctX5p_B98fN_dJE_rrbALg9LzHFD8QjomJGiseBoumw4D2X73Bb1ocyAxt3MmUvbYzw4aYPWKl4-TRIOKK176SN24aQ9vF3V3_rcfvghjsyiGCiIoTXy1ubghm9oMRv2gorYMmywxfLv1sQ9mjkDUJYoarmzRzzJLCyBhi4Qdd4KpOGdBwe9_ONm-whwTTDU8yzrwoOQNnjNBDDwaRQA3xowTg_Qx1QjSTZ2sF0nqPYvU0V6co0Wpd_8rJIAhalAGmLDDxx-U2Cy7VSg6fc2pXLBkfaOU_34apCygjec0Ne2Wn6SOfhSYDb8w7ChD6fUow7Vt5dA8hT6NBpIcQhwLb5TNYdBbKznBH_UULjCu5m0qmoSND-YAe2j2SLLTuXs3QZ3eOTeKGaFt6A9xTiXDdGnqmTweP-UYP2q4H2UJVX3f2nJ6xn7quRekZVylpl-PgMA4Zq_sVe1ir1gKCgXttnQM_bQ1OG5FIquWogHWuU42iM2nOfzXnD7tl_ugmdtO3qfcOPcypMKl8t87fROLKkBHeuhnscyehdFIl0DUkpgJZy6Uw6K0pF_UmYrv5c7pQfcS04C_R1XpsjOQVo2r9otSQYN_MqRgAIp_zu6orJp1gCWEte7t81a6KdAjIc8ryqV9mW0Xru6UAENxgfH3CrZkSVvryZ7tC9uURDZCd1jAfyoOuqJHwN2sTOF5-JdXevibb4Thy9UQftBy1vjP1KDHHUqoea9NHZdLDZgwq_kA0qtKNiw5lYj9SWp1UaqNYKOSWiC4EzXQGJ9d5S296e4H4QFqe0x_a1cWLO3-lOQ84hiZeSGmXl_JlLnUe4J53EaEzglKLsQ9EhTgQIL9dtHSVeQQfCeUspWpj_SjlRKFUoc5Hr81xLSXoX-pyYDvTdvE6GY9Un5UvjtNbRAXqjAqSg6gObhogzGU0eVWjNCUW_JqXLlvbcGBxLaFoACjrQOUnW3Jrqmn2_zzp8hrBxV5a1xzlyXM8-gu82qDckyJo74KiXT-z85Vbs2QKWmX_j-NubamctY_mSqQYpn1ihSYM1vMDBKPKxiUV8iHr006ALqoW3gmJwHWeaNgexE8X4bb_pAdRqHCEmou1AqUHDvA7bnqE8V6zM09DEDCei0FKPScse73slv5KBgmxJd-m3DHVsV9iRzHgE5678nffXor0DDkbMb0KeZMOk-Op_rCvlQbeWnvjkCDuQqfa4G4rCwEdOoEfj8-D16znJe2NiZKgGkZyRBd7-zGfY1ktxxft9bjot9bsGFkAeMsrL2fWFB4uAyRJUDnsXjHxTQZZa7htnTUOuQyLsgBA514h4AFPqVVUSyilQiRUyRt8ew3fpNuJMEm1C9nX1HAmiBqYkLA7YRtbwym-MMKPyIOA1fdi5_aUNXA6ilyUUytG3Cqn1J36nD_05XdJT15_MOjtwKwMTLIlL_Zxr0GeMXreYPb71tMZmbm7nKjttWDgd6tdQ9xKr9H4RSHdhPGBZ4z_36brBzQPZmC5MwqHL5B4e1igeApdanOlM2WJGdYYvhzgy0NonSbuFirLCy-TivmI7Qj0et06oStbEX8C7LjMEpiGjiMjT3m0VYVRggZgYizsTUxoSFBMN0tpbbQvCyQsthM-UbToje7uDppG9yfQH9rw1__AmGa7S02kVOju4wwSy_CNwPaHmtLEnCpWoGKVWxPE9eGtvJPaPOG3kJ0K4KLTbSM50JRezjY59pw630JeZLes8E7m_3f0XRaxP4gQSXaM83HM001Ae0zYjZLtFeRTygw9kIXPms1sUtP7qtPDimAw4HG008e6CCEvZ7OdcLP80uhc16afDLyXJH7B4bpTI44WRvtunScyNgaKVTzPfCGqpeF-q-8IjokZbgaymFVuNcDRLyvwTq1b6L_m3TiScvrJpd1YtQmJXbipfpTDdDbbcgunMBX8mmfWcO8atngnOwek490LnBJH1y3088DGAfN8lfi7pABZno3P1ctdhZqMw15EoRkZCC48UZxWtAWmqIigDmZOyOVbPEjA-8v9aWQ9ys5ofC-7ecnx-RAUh9TsFHpCnk53Asl20QdyYdFA2ZmlREx2Q0POGQgjGbTT3zS7TDiMvCs98SipQoHh_bYBKLG3qCOWrsOk87k1rErBM-caf6GIZeRtn-TfYIbnb8sRto8micDjh7riRgUHs9X8VPqwnR3B3eKHyVrS_gLt9dkKQRLXDS-qFzKdUP80AOnR5V9tlNKBdsR2Y1fMaVRk0SV-UPlxEB3aGbUdfBhxzknQxnc0cd0HaNTe1Eak4Bm5uHNnP7oNdxoIJ2o9haMpXyLmnVbKxXFnZbq7om319NGkbYO6yYeLw-XquQvJ03Up-EKQN0OT70OR6CWfKgL2kQcXWp7kwQa8OTis-5ueWeE1pSea3WTT37NSvILEch3CvBJzavZAo-6YM0Avd4mV5EyenDn0kQbShpwc6Ep_s2TJPErn73EdcNqLWRXGN812HHV89yvkx5ikXG7aMGOkk8LZ77bVkJ6tanVteeL6e6ob0-_Tiolv_bNKdzcHGuX-2m_mjrkpF60TDlp95Cgq-6z6MEai8iVGmOekPNdk2zNqXQGdUocOg5XhHYbtgmhmFLpJoE0ZykyMPZ4YyPkn01juVQtH0UvULwO7cQpJEm21lkt9DB3nEtEqnuAT8JxetIvk3FZhSXpuSwi8UqEgiRind2U_4BCHTbx6PDtwuVC5DXjvxWg90v5vQihn5jRIi8-VpU7HgfYftg9gxmZxQXHcc7RQFUw18L_EktGmbIqb3HWrjBaZ8wgRL7iCKefKVved-dJhofx3u7N-yUZHK0Ko7GEc_aF4x-4CkxmSuSgjjzYQPwdCZ_EXYNtNngAeWCaUcrKi_qP11K4NEkbG5_QX5-5tJFxlsrOwUftNNOYGjZc_E8RcSjlJJz11tY27nwDy2-5N5TJPNPKJNsYsVZSgyqhRtls1bRN8UqGxdxntGbprGQVyLdtRRfifF24wTHHfkZlZ0LwBSupapvViaq6UwcXYL-ke05gM-Tp-g94qcP29ikhRc1-sHmtBu3cd90GE3zklc03rBG13P-DtNVaAG_N_kQyKeSVYAUYXj4LOpn79BrJusj5QCXlvQWLXq8xzdvqb4Yp7nAQRphCUMg9xiFbUs0EfmgFhipxX8Rw_9fb2N2QsCctaDlqLrE28msB93S3lLhPJfl22Wjqt9for2Poz8Tz8TcGs3yZ-qBfHFrbD8J2mTRWD1iaGktJqZ5MIEnK0CilO-zwPRHDkgBMUpdQEdytTHHge3dyxhtOYgipdnausN0H83XzhK266FrVgNHzBkyKdibsUrI_WiGpE62pO6QHvvcHhXxcVBuTEZGfiDIJpnZZ_QOf--DazVvMK4H3Jdt5LNYwHx_nm5ZtMye8isQUKOh5-LFUNFlXRSeVe0xTl_Ozj2knoYd2z5iXuWoeZjd-T_sa9n0CX_naFtxwKR3KiLe_Z4bwWTHR2yy15l0DKhK-wIDslG2qvyCBdf3D47tOTW6-Ffln4XYe5L9EudzzUJ2Qb_d3S8WnngUmkTZmeVy78t-QFqO_dQf8YY4TF3l0AL2QHMhT4VU9bvXtx6Zghx2Eb8mGXQ-cChufQSw252JyS1_l0VZmQvqGvTUm8pFkg0kz9JQ_WJiHDn5qM-q_FzEb5QLWjAVTzEG1aP6p7CufWDK6HJwzzkp3khLeRcLLvfbAHvU9C0A0rIrimhP94p_3MHv_v8gl-pa0VOX5CT8N7bKlDjfiya9q7_OWICcC_JPYaBCNgCZ1SKWfi4XaivfeRRuez7IvLOUSLyUAeN72dIECBKI5I6jth-c-LlTLadL-2jTXDVLRyo0gWnUfrnoz9l5tchixXwP9Kf0CRe7AaCz_qLG_1b-BAhjV2LDvSQfkOFh1mL_cI4bQTspUMizLkVy6UJOeqBCKvH-f9ElEPqQIfpVQeSHZjmzzDkT3bag667KPPsKJnmHKWGqNrk-nMAULOVrsvtD4O156wo_UpCuKN7-nNYhOexTaneNcobnCEnWlid-9ibJS7Bk9UyvA_Zu_SVh6iM3elesaQ4lK1MJrZ5yTSGuVcnVdZKTPfQxqVPC9_2L86XJivB7Odc_abxnTRM8LsoODSl_0FQWfnbU1-jIFggxFQiPfFP7u-KzFE1qmKOWtbIvcQH-eZ1AZ11Cbmy0RgeRkIXTCF7YIcoag277N1GXSspM_GU3uB7nTQ2p63GO_SDGSRh92c-6PM3gmJOdPffP0fcHlGDL-Lhzn-VPagk1Ib4iQZHMVAD2HQIZ1WBJC2cORqHRwjvcgYs2-xx9iu7AMQG1UlLho=\",\"content\":[]},{\"id\":\"msg_0cdcf22d3808a85f006a95bbf0c93087d0a6bcf30b13f4e166\",\"content\":[{\"annotations\":[],\"text\":\"The terms are the “pronic” (or oblong) numbers, i.e. products of two consecutive integers:\\n\\n 1·2 = 2, 2·3 = 6, 3·4 = 12, 4·5 = 20, 5·6 = 30, …\\n\\nHence if you start counting at n=1 the nth term is\\n\\n aₙ = n·(n + 1)\\n\\nor equivalently\\n\\n aₙ = n² + n.\",\"type\":\"output_text\",\"logprobs\":[]}],\"role\":\"assistant\",\"status\":\"completed\",\"type\":\"message\"},{\"role\":\"user\",\"content\":\"Using the pattern you discovered, what would be the 10th term? And can you find the sum of the first 10 terms?\"}],\"model\":\"o4-mini\",\"reasoning\":{\"effort\":\"high\",\"summary\":\"detailed\"}}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "responses-10f9231b8f69.json", - "headers" : { - "x-request-id" : "req_2543d397adc14b24978a0324f8def161", - "x-ratelimit-limit-tokens" : "150000000", - "openai-organization" : "braintrust-data", - "Server" : "cloudflare", - "CF-Ray" : "a33dce5dde937594-SEA", - "X-Content-Type-Options" : "nosniff", - "x-ratelimit-reset-requests" : "2ms", - "x-ratelimit-remaining-tokens" : "149999605", - "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:38:05 GMT", - "x-ratelimit-reset-tokens" : "0s", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=gi29rSdRz79qiDbr7Irrv.a2HE7xChRN.2iuqhEEK2M-1788197877.4162433-1.0.1.1-uOH3o5LxyEzNlw31vSxfecDXuaL4bFV9gJxPpN0.nK8amH7dgq1Mb1BsXPyOkcwftzUXCTGpjr795xdKX_daUkx8TilyEIw9Niq5YiiWb5kb0nm5ErbmxWzrBszZElS.; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:08:05 GMT", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", - "CF-Cache-Status" : "DYNAMIC", - "x-ratelimit-limit-requests" : "30000", - "openai-version" : "2020-10-01", - "openai-processing-ms" : "7694", - "alt-svc" : "h3=\":443\"; ma=86400", - "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", - "Content-Type" : "application/json" - } - }, - "uuid" : "ec29ab00-2e62-3b18-89bc-81bc5de4272f", - "persistent" : true, - "insertionIndex" : 1 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-1967c8c76482.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-1967c8c76482.json index afd6d08b..9448cc8c 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-1967c8c76482.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-1967c8c76482.json @@ -19,18 +19,24 @@ "status" : 200, "bodyFileName" : "responses-1967c8c76482.txt", "headers" : { - "x-request-id" : "req_7e041de13cae4d3a9b5c495a44cd3bd6", + "x-request-id" : "req_e02a596e8ec7460ca58d08b9e03129ec", + "x-ratelimit-limit-tokens" : "30000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dd29dbbd3fbea-SEA", + "CF-Ray" : "a56a09b7e8eeeb3e-SEA", "X-Content-Type-Options" : "nosniff", - "Date" : "Mon, 31 Aug 2026 17:40:51 GMT", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=e29idjq7pG4WsIc.AImnl2hd9hyw8rwME4cRJpqyn20-1788198051.4739542-1.0.1.1-0VRsTT1l.dqo30w3bsPj.sFDLdnQ6gdIhxAh66spBHYt4J1vE2ml2.YqXn5IKsHB8YPF818NiZRupoSY07Fj8PVe2RtNgPQgE_wP1SADRllEC6qkC8GMvZBXtYp8XTKO; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:10:51 GMT", + "x-ratelimit-reset-requests" : "6ms", + "x-ratelimit-remaining-tokens" : "29999664", + "x-ratelimit-remaining-requests" : "9999", + "Date" : "Sat, 07 Nov 2026 05:46:31 GMT", + "x-ratelimit-reset-tokens" : "0s", + "access-control-expose-headers" : [ "X-Request-ID, Server-Timing-Total", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=4ZYwixT94BGeTtiVlXfmwVPJJK3RjIwIY9ioz08QfdY-1794030391.031435-1.0.1.1-KO6JqQBjuxHMxOpnxklc3wDfMa_06wXLE.P9D6GnU_wGmqT2BJUfzV.4xUc4A.Rg7_4qmuy4bu62q17y5d7S1OkDmZyYYid9qpDd7fYKU2D.RyMCeAJZY5Ku0BIa.lOB; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:16:31 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", + "x-ratelimit-limit-requests" : "10000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "348", + "openai-processing-ms" : "592", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "text/event-stream; charset=utf-8" @@ -38,5 +44,5 @@ }, "uuid" : "1976c326-bdcd-31e2-950f-6eb1f62a39e8", "persistent" : true, - "insertionIndex" : 37 + "insertionIndex" : 41 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-1efe84680b53.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-1efe84680b53.json new file mode 100644 index 00000000..efef70de --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-1efe84680b53.json @@ -0,0 +1,48 @@ +{ + "id" : "58f8e3e0-5248-345d-8172-02cea694a5eb", + "name" : "responses", + "request" : { + "url" : "/responses", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\n \"model\" : \"gpt-6-luna\",\n \"input\" : [ {\n \"type\" : \"message\",\n \"role\" : \"user\",\n \"content\" : [ {\n \"type\" : \"input_text\",\n \"text\" : \"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\\n\"\n } ]\n }, {\n \"type\" : \"reasoning\",\n \"encrypted_content\" : \"gAAAAABq7rp8V169DIR2vw8iD-em5HSUno7PLyyXkMFHU7VQACtMvg2y4BjKzHC3wVKDeVx65LcQJehDa7tCTIDzdzsHBYvsXvs2kuMiAaq4y9etb10mYzUDWJEgK4eDGiLxzgyGJZ0NF9gZegMjOJHyr4EPxnhB7OeVn-zo7eZqSsIafvBA_KEmC2XPI77z6ey4xW8xSk54XyQ8sExI-V1xls_sB-giMelxL7cN1308Fu_9smnYRCiIeNbpSueElSxmjaw4x6WIEQuF8GNO7HLJ50rZGJhZAaMf0F7FbAMeJSpDwiKE-lcyxisMZI79QRiNVusiWLOJr7ThqnX3PDO5kagrfgZhqE9y4zcOGOLDafr3GP0DlWQXPvb0UNAcTckNdw78ZWIGY70oD_QAtIAcbD59UitlBs1c06jAfZnfaeWgDIXvJ3PuTd7E99LECSieDs3gOTYuyLCs-x_N0iaokzOzh4-D3CxrpSzwMg5Z-egt3K94NumlCC5BD6yCQ_q6mW7fYIhzUvVJZGj-7guDACPAUiiHoOgiD9lhLUF3Ike9BltIdLBSMdJk3j88mhhJCWkHjJjj86DIXW_l23ExiG_-8mUPGHBfIla3vgG7VfvAnQP577zt12-F9aqWiJvs3TXnsQX6RsPM5DmYK6DkyG_f0yXAzOhgkDNi4Fh3Jjuj8v3vEnMaMXxszK2NmwoF4dAWZBpGr7jOGB7F7Q05-D5flvatSA8sOZBkGX5bBTN4wLjkcQVT1MJ8Iq5o6z7xg0TLbbh53TVJnbZXwGPuQZ31gdKugqHbu-VnQJESew3czA3gviU42JQ_6CAbOnacfx6cH-Utdo0tG5jUla0Ql_ST8rP2nZPUVetWceO4IRnfP9INshOmQO6CiG9zFF49b_Iz6D7v5nZqYL_Whv53FwfODWG8P8ET4aW5RfbZ-6KxfHVa-01fFYlhzcESC4jsGjitV9ZOu6wA29kpZX2O_8ub08YZbGizabbZQiyw308bivC5MIMMGInhpjF0b5VzapkiH3q6XAnUTNNdqPulwFu6se3Q0DxX9ZguRK1-_QnRCaalctJIwyXbpYrTTgCGE7C_v5UBtRgE2NxF6EKGD0Mpsgu2CpH49ztJwwgOLpa-CYWOJvQ_x2WR-ec1w-GJhoXUHgX910-Dnj08YJWlfk54lHi0IJMQlDTaoLYufP4QPShmg6yTuG8zIiXNK6paBlY-qyJLQaZ5fFpPLtMBluNZM40FG4Vs_pLsFNCQJjhiieDZE2mvlX8toaqRRt5hFc3ux7mzXAoPfZanhVM-EPs2BTkLuUax3CBYbnhr8HYO5I2G3clBzM15yPsKEKaUNA-gFxk1QSnvvIivrCizN79r5RhsILEsfu26gfp_pxZ86VuBaDaooI7c-vKGqKHk4_LUjDGCIiH5ood2zR-C8k47KQLiq1iFYPnSZ6ABMVvfuCXP9Tq7owBQeEAlCxYsAwqpxrZNZL9Z9C-pOhl-m_xMIbU_-DpjZHj-Xoa0u_7IQOVOMh8oXydiB5WVkgaVzuldhgTr4g-HFnoK2KQKCldHDso4MOMPX6J69Z1toJeBJoTHL7TWiHMx8Px-zi5vC4sjxMIOpuWp0qxNA5TP6qovPpEQEU_bhKeFCyOm7_rT6i02qVCG5pQS71JAgajGMlRn2EmiVrOwPKaJESlLsameIKRbcrIqhYk4he-5g54X6WVjptNYhX5inzinz9EAKaf2ak8hfua2KJ3ClotLwQu9HSC1N_b2B7wadzytNV8E5O_aWNz9k0fmnsYd9DoDYkhnD0_m6U1LBORHU1yHAzB5JeMj5CdtewheTPEVd__iCSc321l0S5jXAvfSp_ICPKpwFYfIOM5Z1cvylMo1e3CZGiLPIU0D2g9YhSBNZhSnjjFOI8rdoSJn-O5H_mbnMnxIqD8Yv4I06NuHKPUNltD1rss4ti-cK-Mp_Hgfo89dVJjFL-urJLLTu6jrCnvyDZe-Yjxjn8zLcHg7_Jvhw65eWYYxDP_AF4ucYki85e4cys3uABHNneuBDh6EFgkSYl3zSUtLnwoZ5mDCvnXK5oCSTDi4vwRa-imdSPnavObnhIB7sAokvevYW-xKm86uPxgJoUlK8L6uWpXnsdzXRiM8WsvDTU6YiSzL8VhULnEp0hseCNYKRHJ30HBXRb6pFTR4ZcI1QJJuQKK8gOCth-siV19FEZNZMG5Bkw1UdsANcqk3IIg=\",\n \"summary\" : [ {\n \"type\" : \"summary_text\",\n \"text\" : \"**Evaluating sequence patterns**\\n\\nI'm thinking we need to explain the ambiguity in patterns like n(n+1). For instance, when n=1, it gives us 2, and with n=2, we get 6, leading to differences of 4, 6, 8, and 10. It seems I should mention that the sequence isn't unique, as it's based on certain assumptions, but it follows a natural progression. I’ll aim for a concise explanation of this.\"\n } ]\n }, {\n \"type\" : \"message\",\n \"role\" : \"assistant\",\n \"content\" : [ {\n \"type\" : \"output_text\",\n \"text\" : \"The differences are 4, 6, 8, 10, increasing by 2 each time. A natural pattern is the product of two consecutive integers:\\n\\n\\\\[\\na_n=n(n+1)\\n\\\\]\\n\\nStarting with \\\\(n=1\\\\), this gives \\\\(2, 6, 12, 20, 30,\\\\ldots\\\\). (Other formulas could fit the first five terms, but this is the simplest common pattern.)\"\n } ]\n }, {\n \"type\" : \"message\",\n \"role\" : \"user\",\n \"content\" : [ {\n \"type\" : \"input_text\",\n \"text\" : \"Using the pattern you discovered, what would be the 10th term? And can you find the sum of the first 10 terms?\"\n } ]\n } ],\n \"stream\" : false,\n \"store\" : false,\n \"include\" : [ \"reasoning.encrypted_content\" ],\n \"reasoning\" : {\n \"effort\" : \"high\",\n \"summary\" : \"detailed\"\n }\n}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "responses-1efe84680b53.json", + "headers" : { + "x-request-id" : "req_54d75f7e6cea41c08b8246f5f85a6a78", + "x-ratelimit-limit-tokens" : "180000000", + "openai-organization" : "braintrust-data", + "Server" : "cloudflare", + "CF-Ray" : "a56a052ca8711846-SEA", + "X-Content-Type-Options" : "nosniff", + "x-ratelimit-reset-requests" : "2ms", + "x-ratelimit-remaining-tokens" : "180000000", + "x-ratelimit-remaining-requests" : "29999", + "Date" : "Sat, 07 Nov 2026 05:43:28 GMT", + "x-ratelimit-reset-tokens" : "0s", + "access-control-expose-headers" : [ "X-Request-ID, Server-Timing-Total", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=rfoyByZs.akFluBz3zOjhGRN18WMPhvAw_96rpWYi3I-1794030204.9055037-1.0.1.1-37cPWYaP6CrA84mMqMnyLnqORJktnfHo7FCG0jt9Me1C51l_CP.CyAW3tZaSpl8jWTFBl9lvB4k_EhTcmFAnYZaZYmQ6x3VZULLkjzqfn9Q78EpdM4k2Az2Izalz_pWx; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:28 GMT", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", + "CF-Cache-Status" : "DYNAMIC", + "x-ratelimit-limit-requests" : "30000", + "openai-version" : "2020-10-01", + "openai-processing-ms" : "3724", + "alt-svc" : "h3=\":443\"; ma=86400", + "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", + "Content-Type" : "application/json" + } + }, + "uuid" : "58f8e3e0-5248-345d-8172-02cea694a5eb", + "persistent" : true, + "insertionIndex" : 3 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-2348ab6c9b2a.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-2348ab6c9b2a.json deleted file mode 100644 index 2d93c45c..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-2348ab6c9b2a.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "id" : "91f1b96e-0ad5-3ea0-b353-0594e11384ca", - "name" : "responses", - "request" : { - "url" : "/responses", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\n \"model\" : \"gpt-4o\",\n \"input\" : [ {\n \"type\" : \"message\",\n \"role\" : \"user\",\n \"content\" : [ {\n \"type\" : \"input_text\",\n \"text\" : \"Do a web search for news about Moderna. What are they up to lately?\"\n } ]\n } ],\n \"stream\" : false,\n \"store\" : false,\n \"temperature\" : 0.0,\n \"tools\" : [ {\n \"type\" : \"function\",\n \"name\" : \"getWeather\",\n \"description\" : \"Get current weather for a location\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"arg0\" : {\n \"type\" : \"string\"\n }\n },\n \"required\" : [ \"arg0\" ]\n }\n }, {\n \"type\" : \"function\",\n \"name\" : \"getForecast\",\n \"description\" : \"Get weather forecast for next N days\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"arg0\" : {\n \"type\" : \"string\"\n },\n \"arg1\" : {\n \"type\" : \"integer\"\n }\n },\n \"required\" : [ \"arg0\", \"arg1\" ]\n }\n }, {\n \"type\" : \"web_search_preview\"\n } ]\n}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "responses-2348ab6c9b2a.json", - "headers" : { - "x-request-id" : "req_d6f5470a3a86477cb85e1e629fc02e77", - "x-ratelimit-limit-tokens" : "30000000", - "openai-organization" : "braintrust-data", - "Server" : "cloudflare", - "CF-Ray" : "a33dd2dd4bd0a3b3-SEA", - "X-Content-Type-Options" : "nosniff", - "x-ratelimit-reset-requests" : "6ms", - "x-ratelimit-remaining-tokens" : "29998918", - "x-ratelimit-remaining-requests" : "9999", - "Date" : "Mon, 31 Aug 2026 17:41:11 GMT", - "x-ratelimit-reset-tokens" : "2ms", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=OTIeYzgQTk16nI6eW893wHarI2jm5rMfwzmwLZ3Uiu4-1788198061.6501687-1.0.1.1-34r_jv6fGnj5.PoeLjsq3XPFqe2ygVLPBGFiKcWVI4uQw.rF.wm4B2CS2j7fNRbvZHQ0N8xXn_kZqEbOSnTdy1dYNUmXIVr2nBFviQO3pLBtyQ2CAymvjnu3QUCLNdTY; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:11:11 GMT", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", - "CF-Cache-Status" : "DYNAMIC", - "x-ratelimit-limit-requests" : "10000", - "openai-version" : "2020-10-01", - "openai-processing-ms" : "9339", - "alt-svc" : "h3=\":443\"; ma=86400", - "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", - "Content-Type" : "application/json" - } - }, - "uuid" : "91f1b96e-0ad5-3ea0-b353-0594e11384ca", - "persistent" : true, - "insertionIndex" : 33 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-31d9a6eee624.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-31d9a6eee624.json index 145403e9..06589305 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-31d9a6eee624.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-31d9a6eee624.json @@ -19,18 +19,24 @@ "status" : 200, "bodyFileName" : "responses-31d9a6eee624.txt", "headers" : { - "x-request-id" : "req_decfce8cbd6f4d4082c2bae655649935", + "x-request-id" : "req_92fad0a3e3944a189ab6c1b623c1857c", + "x-ratelimit-limit-tokens" : "30000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dd3bb3efc3167-SEA", + "CF-Ray" : "a56a0acf5fe190db-SEA", "X-Content-Type-Options" : "nosniff", - "Date" : "Mon, 31 Aug 2026 17:41:42 GMT", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=VCWCC7NLTn67CJtRGxKTbG8DUlEWigQSAvb29xCTnqE-1788198097.162654-1.0.1.1-fiaU48sRavwASpCc2j3FzlbccpHbbUUOfs1Ek6xpsM8JbzXcciwm02e1YCYEVZVCCVa75C5TeTqdI99F2EPdyulq0j2QR1wROHlbY53ukBI15H09BLf6oCHp589VWXGq; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:11:42 GMT", + "x-ratelimit-reset-requests" : "6ms", + "x-ratelimit-remaining-tokens" : "29999667", + "x-ratelimit-remaining-requests" : "9999", + "Date" : "Sat, 07 Nov 2026 05:47:16 GMT", + "x-ratelimit-reset-tokens" : "0s", + "access-control-expose-headers" : [ "X-Request-ID, Server-Timing-Total", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=Nh.NSqD9RZtvil307T3mT5M89RjRCqVcq4wnb7kuF1g-1794030435.740261-1.0.1.1-mLkrCFdxHTduzEDmfkFl3CZI.NgS2xhXz2unz5RQiJ4khbR.db_HBjFwdne9VKn3F8WaHWe07HMJWMm_So7X0uExO6nUslX_rCZdLfJRPGyeKN0EGsrex9j3Isgaf4qY; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:17:16 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", + "x-ratelimit-limit-requests" : "10000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "5079", + "openai-processing-ms" : "489", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "text/event-stream; charset=utf-8" @@ -38,5 +44,5 @@ }, "uuid" : "4ecd239c-fa2c-3a94-9038-bb602a460baa", "persistent" : true, - "insertionIndex" : 57 + "insertionIndex" : 66 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-436628959a2b.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-436628959a2b.json new file mode 100644 index 00000000..c594b002 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-436628959a2b.json @@ -0,0 +1,48 @@ +{ + "id" : "8babb3da-ce1e-3387-8f47-746f84b32c92", + "name" : "responses", + "request" : { + "url" : "/responses", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\n \"model\" : \"gpt-4o\",\n \"input\" : [ {\n \"type\" : \"message\",\n \"role\" : \"user\",\n \"content\" : [ {\n \"type\" : \"input_text\",\n \"text\" : \"Do a web search for news about Moderna. What are they up to lately?\"\n } ]\n } ],\n \"stream\" : false,\n \"store\" : false,\n \"temperature\" : 0.0,\n \"tools\" : [ {\n \"type\" : \"function\",\n \"name\" : \"getForecast\",\n \"description\" : \"Get weather forecast for next N days\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"arg0\" : {\n \"type\" : \"string\"\n },\n \"arg1\" : {\n \"type\" : \"integer\"\n }\n },\n \"required\" : [ \"arg0\", \"arg1\" ]\n }\n }, {\n \"type\" : \"function\",\n \"name\" : \"getWeather\",\n \"description\" : \"Get current weather for a location\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"arg0\" : {\n \"type\" : \"string\"\n }\n },\n \"required\" : [ \"arg0\" ]\n }\n }, {\n \"type\" : \"web_search_preview\"\n } ]\n}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "responses-436628959a2b.json", + "headers" : { + "x-request-id" : "req_d0f0c50ef6cb43fb8b29d39590e62b1d", + "x-ratelimit-limit-tokens" : "30000000", + "openai-organization" : "braintrust-data", + "Server" : "cloudflare", + "CF-Ray" : "a56a0a0bfd947547-SEA", + "X-Content-Type-Options" : "nosniff", + "x-ratelimit-reset-requests" : "6ms", + "x-ratelimit-remaining-tokens" : "29998814", + "x-ratelimit-remaining-requests" : "9999", + "Date" : "Sat, 07 Nov 2026 05:46:50 GMT", + "x-ratelimit-reset-tokens" : "2ms", + "access-control-expose-headers" : [ "X-Request-ID, Server-Timing-Total", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=PoiD9_Alc2WmWmCN70555TADBNZ46Jmi4aC7vQbzbpI-1794030404.4761715-1.0.1.1-97tW62keCEbVKjmaeKEB16HpZqNYxM0HzwmVeiDRq8qS4ZbCRuKGa5i4aMnUeSdLsboMN5ij4kphYaeOsjZjJjr1dKu9QbPCcHtmkG8wavDFAYHRSfQxHI4bl0bwngDA; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:16:50 GMT", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", + "CF-Cache-Status" : "DYNAMIC", + "x-ratelimit-limit-requests" : "10000", + "openai-version" : "2020-10-01", + "openai-processing-ms" : "6071", + "alt-svc" : "h3=\":443\"; ma=86400", + "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", + "Content-Type" : "application/json" + } + }, + "uuid" : "8babb3da-ce1e-3387-8f47-746f84b32c92", + "persistent" : true, + "insertionIndex" : 37 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-7489309b5cdb.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-7489309b5cdb.json index 5bf4abbb..fce6be85 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-7489309b5cdb.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-7489309b5cdb.json @@ -19,24 +19,24 @@ "status" : 200, "bodyFileName" : "responses-7489309b5cdb.json", "headers" : { - "x-request-id" : "req_32b449f86a0f4f2388fcbbcb42023ec0", + "x-request-id" : "req_84f87cca3ece4bf6823a85c7a065957c", "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a4b2a06c3934ebc3-SEA", + "CF-Ray" : "a56a04968969a3a7-SEA", "X-Content-Type-Options" : "nosniff", - "x-ratelimit-reset-requests" : "8ms", - "x-ratelimit-remaining-tokens" : "149999830", - "x-ratelimit-remaining-requests" : "29996", - "Date" : "Thu, 15 Oct 2026 23:33:04 GMT", + "x-ratelimit-reset-requests" : "2ms", + "x-ratelimit-remaining-tokens" : "149999957", + "x-ratelimit-remaining-requests" : "29999", + "Date" : "Sat, 07 Nov 2026 05:43:02 GMT", "x-ratelimit-reset-tokens" : "0s", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=N5ri0IOT0yDsYn3jGyvFrU6T1jo7W78q9Ee.FCK3GT0-1792107184.0379653-1.0.1.1-XvL1tO00V5dr5HTl7DHiXbY5Hp8VY74snjj_ioYvd9uXXDy20blp6p_luf29SKaEYvVyVaVmsOqkdb7dBeZ837BkFFVsfpBS0mbpiaRLW6orYzdbHWBJedBvOuNC7FDh; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Fri, 16 Oct 2026 00:03:04 GMT", + "access-control-expose-headers" : [ "X-Request-ID, Server-Timing-Total", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=YFZYlZYDuvRoRU2h5RdPhMsi0tunuO6F6bWFoyE_h6g-1794030180.887509-1.0.1.1-0eGcHrm.VmLV_r8zcRJu9LkE028uRcZ0lyiw5dyN7qBPMt7drMsJJ3jEUKoaM_kXCe2Oc3A68R_eRXyN4FQn2fHx1irmGa6CVcq1bx0Vr2n2yXndoL2EU3q2eodPqrMH; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:02 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "625", + "openai-processing-ms" : "691", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json" @@ -44,5 +44,5 @@ }, "uuid" : "791670d5-6e0f-3127-b1dc-863a8dab02c0", "persistent" : true, - "insertionIndex" : 70 + "insertionIndex" : 36 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-7cc18a76d860.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-7cc18a76d860.json new file mode 100644 index 00000000..3ffb2f81 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-7cc18a76d860.json @@ -0,0 +1,48 @@ +{ + "id" : "a9c6ef38-fbad-320c-8c71-ae4c473e1b2c", + "name" : "responses", + "request" : { + "url" : "/responses", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"input\":[{\"role\":\"user\",\"content\":\"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\\n\"},{\"id\":\"rs_026623c3dff3fc15016aeeba7007e087d0acceb93d9cde9f0d\",\"summary\":[{\"text\":\"**Explaining patterns in sequences**\\n\\nI need to clarify the ambiguity in the sequence pattern, possibly looking at the formula n(n+1). For instance, when n=1, it results in 2, and for n=2, it gives 6, while n=3 yields 12, and so on. It’s also important to note that a finite sequence can have various patterns, with the simplest being the differences of 4, 6, 8, and 10, leading to a second difference of 2. I’ll break this down step-by-step!\",\"type\":\"summary_text\"}],\"type\":\"reasoning\",\"encrypted_content\":\"gAAAAABq7rp0E4XYBlQ1j-Ylhi1NNTsuACwfFTEqVmtQ6WEkJ6KB1jevd5BeZJkCHFzMSD5vZnWwERJ0VoXGy1dxCQYDF4PVZS7CkUD7JNB2vXLRQJQpStYVKn2ZbqryBLiyDBQtHGBq5Kk4SWO7ggO1vbBjLzHW0fSsqAIoV0HUU98_4A9S_XtU-8zhYCpIq14zUD-2jNWZKooGgnABS4vmZ5sUz_uhbI7o8CiigjGOf2OEBGdRjf_vTPNFs1bTcUyXFob_gSOWokAoi1pcGCnnW_fLHH64NTESWVYCWIPMzUs2HzPwKDCl78nzfPPTuvBoAapODOWFKC1gC-ZgLJNyrbWlffaGDKGaT0dv8I9b_FzvDPAjOJKgWMuMsnoZQ6IotH1zqUWbq6tVxSWQXOtHVeBzdNAjqX1zDzkI-_5Z7pda0ZfvxqZwZZdcHqvdCcWmRescoRuOly5FjiZw8ik6kaaZW84NKsX-pGr1cNQQxNhNqw15dHdRSTYtBz8NN8X5a-HZ1mr4fcFuUXKljvq0ONFELnopOVLJwIb7FbDxO0oq7u_03l-UbpzMObQUYJoDrPq3h9NY6Qgl-o-WH6lQIHLNOmQj62GY296tiXC87Udy3UcxAolp6-pxuZzt1MAZeIMX6bXuBo70McHXTlALKPjTsRPrXIRK2e8X1htAl5d9I429CTQ2oGRaZhSV-f3CA5vW4vkMlNw3H2iKY5bZ4MPwHMH0KTlF81xBVCZOMvvTxO2HGJ5IRkMQCBorFHheBz_nNOFH7N-kmuL73j835RlO3coebnhUYn9x8CMw8okwkveLh8RCShqaxKZEHt5dQ9mqpR_svTenUVsr4ubrU-gw0ODmaB1lP-PbQ7txRgvpkX9xkqpblZVeE_cSWpFbTaCx5fd3NOsZZTB1yvIw0yPi3KlxwcHDaxQNUnSOMpbhwRwEPN3lL-rJpRK_BLN4k0n6sTNpyv8Y3wYrvcGM4gg2obyK2hs1MLjA9qM7wIgN55HpA21CquvIo3zxVuME-aSqsUFyC1OisHLggs7aLC5oyHFtLxs8kxUqcSqU5hKsCzL51w4gxuvnqMKPeK276m_554od6pzImOLW3JFWbTRo44XoCGIS-2_cWfnpiwUkNQSLv-uB4FPkxCb0hDhPYSgjL7ZiORCnf8FA4lEe21C0N6nhoKDgvsdNDCftZvkIyuRYWBawTzLapAtEGo3PVcWXZyLLB11fRoqsMgEj2xIntW8c1sdXi8nonQniauirDATFz49QsL3fzUDkClGcMfHHKmR9IVrgEuhl-_wR86HiNH1xFRlHOIHwU8iwqVwRjaOv4VzCJ3LoKU4SeIKR0gAcaRU0wUHKZhNkvdK9DbOH7XzkMvHEAUpk9_2j1VQ65RyLy5s4mG4llCD1SscFA32Ll-RREgAEFr2ZbTg84s7vLk1pntLOM-A4qTq_qvT5AR1g7xgvOwAAoCzOMVwiBUbVrVSTksvzomTQE_YPFMajMZ8N-otXW8bIDcNXNchKcoJzB5PUOuoBgrNu-cEYeSeI82lB_ABK02wcwacTrA9LhOcQce3x0CQ38tfvhdLPkt37RJHXoTYMoOBQmedn1NnucK6e7CZ-8OnIjb5j-Fqw7jE9UEXT1OWu3NUA6nQe3W-vdHSFApgWlzbzdPiirUqWQnY4dhWxJZ4xPCskriSY9ABjIGIYAWtBMdGe_2AeJkZnx9ypil62VbxHyzMexg09BVn4tS3Bk7WmPFW_Xd8hfbmUgZgzsbUDGHKpfTMtb9NRK14Bf83-nRp5KhWZSQhV7rfUeb_d14XubEfhVxm3d6Wlpn8pZCLoVc33sgb7NJNoCWqs75_PcFXSj8zO5E_8lP6fUlqnFT-yswk_XlaELw-YFKJzGO52KbyZ4WBrEGza8hqfH0riHpPCTlI-n9fytdhcdgZ1HnPGLr-WKWVQsvRNEM8w7ECLsgmrTyGRpox5QZqwlwGB8TRqDTP0ybqbi7ks41-6_fZE-8zwM_f3kicSCdmUt7GW7BOfrDb0xx3qOmOEKlzzrBKz2bhF8S9vUzoAEVEG3fyW_FNx8boBxPh0Z8xmbVG2iOVkslvLKN3IXNaL2fFrnJZhaSdRiNJj5At47j5roeDPcVeLQTfLwJ-ZOi2kM5GTL-NYe-fw8s8VtRoygMAIfx2DGZ-DEpCnrp8TY2-GTQzRgClznBggClVLlNnSOO1jZyZMH_Zd5OChnhtJf0JSJlXnzp4sbzLs4cHC0h-tZCCe-d1tmE7lvdVRTVbgNkP99-LV6DM2ySbqO50=\",\"content\":[]},{\"id\":\"msg_026623c3dff3fc15016aeeba73cdac87d0867273acb007b26a\",\"content\":[{\"annotations\":[],\"text\":\"The terms are products of consecutive integers:\\n\\n\\\\(1\\\\cdot2=2,\\\\;2\\\\cdot3=6,\\\\;3\\\\cdot4=12,\\\\;4\\\\cdot5=20,\\\\;5\\\\cdot6=30.\\\\)\\n\\nSo, starting at \\\\(n=1\\\\), the formula is\\n\\\\[\\na_n=n(n+1).\\n\\\\]\\nLike any finite sequence, other patterns are possible, but this is the simplest one suggested by the terms.\",\"type\":\"output_text\",\"logprobs\":[]}],\"role\":\"assistant\",\"status\":\"completed\",\"type\":\"message\",\"phase\":\"final_answer\"},{\"role\":\"user\",\"content\":\"Using the pattern you discovered, what would be the 10th term? And can you find the sum of the first 10 terms?\"}],\"model\":\"gpt-6-luna\",\"reasoning\":{\"effort\":\"high\",\"summary\":\"detailed\"}}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "responses-7cc18a76d860.json", + "headers" : { + "x-request-id" : "req_4938930657d84e0eb615ac05b7897ef1", + "x-ratelimit-limit-tokens" : "180000000", + "openai-organization" : "braintrust-data", + "Server" : "cloudflare", + "CF-Ray" : "a56a04f88e94752f-SEA", + "X-Content-Type-Options" : "nosniff", + "x-ratelimit-reset-requests" : "2ms", + "x-ratelimit-remaining-tokens" : "180000000", + "x-ratelimit-remaining-requests" : "29999", + "Date" : "Sat, 07 Nov 2026 05:43:20 GMT", + "x-ratelimit-reset-tokens" : "0s", + "access-control-expose-headers" : [ "X-Request-ID, Server-Timing-Total", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=UVKu71o8UrK3y4V_kE9WR8RLvTKdBGpk8KSvhXjQBqE-1794030196.566843-1.0.1.1-6jqJMwMPVMmfNyA5FMoJMqZetUo7Ojd0sKe8W0WK0SUABF7xmdiG_GqbwN2h3tpA0FF7UDli5.Cw0PPhGL89zp5rlggCZkMwff2mW5WwbMxFAvsJO2OG_CxdsHXU7ZE_; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:20 GMT", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", + "CF-Cache-Status" : "DYNAMIC", + "x-ratelimit-limit-requests" : "30000", + "openai-version" : "2020-10-01", + "openai-processing-ms" : "4088", + "alt-svc" : "h3=\":443\"; ma=86400", + "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", + "Content-Type" : "application/json" + } + }, + "uuid" : "a9c6ef38-fbad-320c-8c71-ae4c473e1b2c", + "persistent" : true, + "insertionIndex" : 5 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-7fc8497bbe6a.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-7fc8497bbe6a.json deleted file mode 100644 index 8a781de8..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-7fc8497bbe6a.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "id" : "a609787f-ace8-3110-a131-eae3f56c8c70", - "name" : "responses", - "request" : { - "url" : "/responses", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\n \"model\" : \"gpt-4o\",\n \"input\" : [ {\n \"type\" : \"message\",\n \"role\" : \"user\",\n \"content\" : [ {\n \"type\" : \"input_text\",\n \"text\" : \"Search the web for a recent AI news headline and answer in one sentence.\"\n } ]\n } ],\n \"stream\" : false,\n \"store\" : false,\n \"tools\" : [ {\n \"type\" : \"web_search_preview\",\n \"search_context_size\" : \"low\"\n } ]\n}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "responses-7fc8497bbe6a.json", - "headers" : { - "x-request-id" : "req_40d0e21087b54dbf8c6e98b781d5e8c1", - "x-ratelimit-limit-tokens" : "30000000", - "openai-organization" : "braintrust-data", - "Server" : "cloudflare", - "CF-Ray" : "a33dcd298fef4759-SEA", - "X-Content-Type-Options" : "nosniff", - "x-ratelimit-reset-requests" : "6ms", - "x-ratelimit-remaining-tokens" : "29999665", - "x-ratelimit-remaining-requests" : "9999", - "Date" : "Mon, 31 Aug 2026 17:37:16 GMT", - "x-ratelimit-reset-tokens" : "0s", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=sUDZRSo.G_hhekUoe_sct1yVELmHlXSGyqC35ZLjYYM-1788197828.0930302-1.0.1.1-3hYfRtlPeHjhRz9ugR_C7OtEWFjw2wDrZUbXNIINmrQ78Qhk3pcT_46RzrpQMoSyHp1..UcNZjeXNKD9M3XWP0W43mi7QkmhZRNwVXESxMP7GVjWBYWmq5vpApKJrrp8; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:07:16 GMT", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", - "CF-Cache-Status" : "DYNAMIC", - "x-ratelimit-limit-requests" : "10000", - "openai-version" : "2020-10-01", - "openai-processing-ms" : "8280", - "alt-svc" : "h3=\":443\"; ma=86400", - "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", - "Content-Type" : "application/json" - } - }, - "uuid" : "a609787f-ace8-3110-a131-eae3f56c8c70", - "persistent" : true, - "insertionIndex" : 19 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-863a18378a48.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-863a18378a48.json deleted file mode 100644 index cc78fb01..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-863a18378a48.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "id" : "a5fb65e6-7334-3418-9d94-15a9941968b7", - "name" : "responses", - "request" : { - "url" : "/responses", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\n \"model\" : \"o4-mini\",\n \"input\" : [ {\n \"type\" : \"message\",\n \"role\" : \"user\",\n \"content\" : [ {\n \"type\" : \"input_text\",\n \"text\" : \"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\\n\"\n } ]\n } ],\n \"stream\" : false,\n \"store\" : false,\n \"include\" : [ \"reasoning.encrypted_content\" ],\n \"reasoning\" : {\n \"effort\" : \"high\",\n \"summary\" : \"detailed\"\n }\n}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "responses-863a18378a48.json", - "headers" : { - "x-request-id" : "req_b4d47d736e65471da4adc1e27e6018a1", - "x-ratelimit-limit-tokens" : "150000000", - "openai-organization" : "braintrust-data", - "Server" : "cloudflare", - "CF-Ray" : "a33dcd79687b9173-SEA", - "X-Content-Type-Options" : "nosniff", - "x-ratelimit-reset-requests" : "2ms", - "x-ratelimit-remaining-tokens" : "149999752", - "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:37:28 GMT", - "x-ratelimit-reset-tokens" : "0s", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=qf570L75dUDiG.u9T2pDZr.y3_WGfAzQJEBSD9I8Ues-1788197840.8691869-1.0.1.1-XyPyE1qMP_6_RurJqSaHUOYNTHn4YEwrgLi9qH4Am6y2Vw2f0tP5hQxjKJJ9mP_AEjPUoEUZNCV3QM2OHqntxa._.7keM3WKDQFbAly3BDeBaC4qSotjh7lozT_DwRmR; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:07:28 GMT", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", - "CF-Cache-Status" : "DYNAMIC", - "x-ratelimit-limit-requests" : "30000", - "openai-version" : "2020-10-01", - "openai-processing-ms" : "7129", - "alt-svc" : "h3=\":443\"; ma=86400", - "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", - "Content-Type" : "application/json" - } - }, - "uuid" : "a5fb65e6-7334-3418-9d94-15a9941968b7", - "persistent" : true, - "insertionIndex" : 6 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-892784bdb435.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-892784bdb435.json index 6b3f2ca4..232a9a63 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-892784bdb435.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-892784bdb435.json @@ -19,24 +19,24 @@ "status" : 200, "bodyFileName" : "responses-892784bdb435.json", "headers" : { - "x-request-id" : "req_91d9931929ca488eb2b81c48860be6cd", + "x-request-id" : "req_ca03d5d5179d4787a92e147344e49912", "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dd24b4d978389-SEA", + "CF-Ray" : "a56a096f595dc4cf-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", "x-ratelimit-remaining-tokens" : "149999967", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:40:41 GMT", + "Date" : "Sat, 07 Nov 2026 05:46:20 GMT", "x-ratelimit-reset-tokens" : "0s", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=s1XnRq7JapoKJ3LxnBGHad7icphhA1tOJsS2SnZb.jQ-1788198038.2886968-1.0.1.1-AWfJStDhFP2iZZv.lONZYyoaJLZ6XuLJgFEqPfBYX8JJk2Pz2FN_TXYGJuhSCh.p1ok8vKyyvLQgxbNifWIE9hWd9OVz4dt0W430.x9OW9nhPfiCEIyaOtmk9f35wSje; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:10:41 GMT", + "access-control-expose-headers" : [ "X-Request-ID, Server-Timing-Total", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=o5Dy5qxj3Hz8GfZRXSA1BkSRrAZ20mDehAA6xfaMxDk-1794030379.4168742-1.0.1.1-aYIGTLCfzCiSm..XbNDSWKWzK7IRB1orMGgQ5pkIOcIMPDMac3jWHPOB4lanupLFoPkoXcCm9K_IYytUi7FJ_IRkYQzQH8DnpSwYnZYjKXoTAtZ.mu1VtS.uVyLMjBaI; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:16:20 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "2826", + "openai-processing-ms" : "835", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json" @@ -44,5 +44,5 @@ }, "uuid" : "bbd3d5ab-69e7-3a37-9c5b-ff00f3acd4f5", "persistent" : true, - "insertionIndex" : 40 + "insertionIndex" : 44 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-36764bc7833a.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-8b68155b0050.json similarity index 53% rename from test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-36764bc7833a.json rename to test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-8b68155b0050.json index 4b6358b4..42a94fcf 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-36764bc7833a.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-8b68155b0050.json @@ -1,5 +1,5 @@ { - "id" : "df78db27-1293-3b56-be87-0cac4675363d", + "id" : "878a60e4-6d64-3a00-b397-955850c84355", "name" : "responses", "request" : { "url" : "/responses", @@ -10,39 +10,39 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"input\":[{\"content\":\"What is the capital of France? Reply in one word.\",\"role\":\"user\"}],\"model\":\"o4-mini\",\"reasoning\":{\"effort\":\"low\",\"summary\":\"auto\"}}", + "equalToJson" : "{\"input\":[{\"content\":\"What is the capital of France? Reply in one word.\",\"role\":\"user\"}],\"model\":\"gpt-6-luna\",\"reasoning\":{\"effort\":\"low\",\"summary\":\"auto\"}}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "responses-36764bc7833a.json", + "bodyFileName" : "responses-8b68155b0050.json", "headers" : { - "x-request-id" : "req_bf504dd9af8245e692971f1e9b642870", - "x-ratelimit-limit-tokens" : "150000000", + "x-request-id" : "req_267a02e26b2c4627bbb9ddc863d16e1b", + "x-ratelimit-limit-tokens" : "180000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dd6f66e49762a-SEA", + "CF-Ray" : "a56a0b18b99a90db-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", - "x-ratelimit-remaining-tokens" : "149999775", + "x-ratelimit-remaining-tokens" : "180000000", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:43:51 GMT", + "Date" : "Sat, 07 Nov 2026 05:47:28 GMT", "x-ratelimit-reset-tokens" : "0s", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=lDhgorQrJY9ouRnSPUuBU6wjtAqZJow1JDHaEod_OjA-1788198229.5072768-1.0.1.1-AUGrjbYIWllvtng9jUt4Dn5Yg9_6LKc94o_ZRpi8Nksad4ogV06HJLMLCJINamVtuXY2XJCRjCHdSZbgC7134jTVW3w.eDrjf.GQaReliT.vT_hdeSmSopx699uxPVYB; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:13:51 GMT", + "access-control-expose-headers" : [ "X-Request-ID, Server-Timing-Total", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=TaOhlVHWckeQmulqLXdClZWEAoy4B36uCL7aCobiSHA-1794030447.4766245-1.0.1.1-8oGy98XKtTAYF5A.5leDy3GADXMPzwjCdA51OY8p.zcRbAKOIK5RjHNDBouuwLw5taPvlufFX4xfngu5RMAfk817twFP5e2.VLlS.IHwK4UHgPiLjomxwnAEvFI_m_W_; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:17:28 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "1810", + "openai-processing-ms" : "716", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json" } }, - "uuid" : "df78db27-1293-3b56-be87-0cac4675363d", + "uuid" : "878a60e4-6d64-3a00-b397-955850c84355", "persistent" : true, - "insertionIndex" : 52 + "insertionIndex" : 60 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-8f3e88721b18.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-8f3e88721b18.json new file mode 100644 index 00000000..6ad2943c --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-8f3e88721b18.json @@ -0,0 +1,48 @@ +{ + "id" : "68482fd5-40bd-346d-bb55-0b19d8aeb5cb", + "name" : "responses", + "request" : { + "url" : "/responses", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\n \"model\" : \"gpt-6-luna\",\n \"input\" : [ {\n \"type\" : \"message\",\n \"role\" : \"user\",\n \"content\" : [ {\n \"type\" : \"input_text\",\n \"text\" : \"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\\n\"\n } ]\n } ],\n \"stream\" : false,\n \"store\" : false,\n \"include\" : [ \"reasoning.encrypted_content\" ],\n \"reasoning\" : {\n \"effort\" : \"high\",\n \"summary\" : \"detailed\"\n }\n}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "responses-8f3e88721b18.json", + "headers" : { + "x-request-id" : "req_3114f5403abf44b3ab8f972c47e68aae", + "x-ratelimit-limit-tokens" : "180000000", + "openai-organization" : "braintrust-data", + "Server" : "cloudflare", + "CF-Ray" : "a56a051368e9cb66-SEA", + "X-Content-Type-Options" : "nosniff", + "x-ratelimit-reset-requests" : "2ms", + "x-ratelimit-remaining-tokens" : "180000000", + "x-ratelimit-remaining-requests" : "29999", + "Date" : "Sat, 07 Nov 2026 05:43:24 GMT", + "x-ratelimit-reset-tokens" : "0s", + "access-control-expose-headers" : [ "X-Request-ID, Server-Timing-Total", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=GgP1b3a4hGhW0vRJyqUPfhXurzWKo0cO5BfvlpqVFGs-1794030200.8663378-1.0.1.1-vgs9HZOi04KWaD22Q11RYkFvgkk3_PKGMx0DxuAt5xfwtWxeRIjB2uvK.RtNkMqp20Sud20_fSt8juPf6EtvkzbWeKfNdmyJw1OetLDiZ3pAERi4oBzbD38EIeYyl4Sk; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:24 GMT", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", + "CF-Cache-Status" : "DYNAMIC", + "x-ratelimit-limit-requests" : "30000", + "openai-version" : "2020-10-01", + "openai-processing-ms" : "3825", + "alt-svc" : "h3=\":443\"; ma=86400", + "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", + "Content-Type" : "application/json" + } + }, + "uuid" : "68482fd5-40bd-346d-bb55-0b19d8aeb5cb", + "persistent" : true, + "insertionIndex" : 4 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-96490560b71c.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-96490560b71c.json index fd170a35..5ef05872 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-96490560b71c.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-96490560b71c.json @@ -19,18 +19,24 @@ "status" : 200, "bodyFileName" : "responses-96490560b71c.txt", "headers" : { - "x-request-id" : "req_e71160f5a23d479f9faa3a7c81612e31", + "x-request-id" : "req_20e4903105e74a3fb8e0966146a5a92f", + "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dd79c2af96e7d-SEA", + "CF-Ray" : "a56a0c89bbaf6e05-SEA", "X-Content-Type-Options" : "nosniff", - "Date" : "Mon, 31 Aug 2026 17:44:16 GMT", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=yxmg0IKGGsE1swq0VVowbr2wq.0hID_3W5_daiGaMp8-1788198256.0301173-1.0.1.1-VQxgWiJpsPFqy78pkel57kSQP5DsAYVYKjl4ww6OFJVpG4ja0wUXG3eFMNOQcljE_uwvWWezqrpgHNA0E4ofytfLj9M_BgUybQV0CYQSeNE1paO0ZS6_RIrZsm5JkSz5; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:14:16 GMT", + "x-ratelimit-reset-requests" : "2ms", + "x-ratelimit-remaining-tokens" : "149999957", + "x-ratelimit-remaining-requests" : "29999", + "Date" : "Sat, 07 Nov 2026 05:48:27 GMT", + "x-ratelimit-reset-tokens" : "0s", + "access-control-expose-headers" : [ "X-Request-ID, Server-Timing-Total", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=ENvhrwED2JO4m0bTbdbLK6VHkJ3OvpyZq_Q9J_szNN0-1794030506.5124137-1.0.1.1-EE8R.5WrAng0tiHMAjtfmO4I428XaNy3m79vPBaRABwvG2_hThOIiZDDCKf5xN94sSmlWHkElNi0ifVikP7YlxcZnibaUmcfba.SB4DZ.aInkx5HYBIKpkuqNRXlOz9B; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:18:27 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", + "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "166", + "openai-processing-ms" : "378", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "text/event-stream; charset=utf-8" @@ -41,5 +47,5 @@ "scenarioName" : "scenario-2-responses", "requiredScenarioState" : "Started", "newScenarioState" : "scenario-2-responses-2", - "insertionIndex" : 44 + "insertionIndex" : 50 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-9a580e94f540.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-9a580e94f540.json index 080f4aa2..3d4f147e 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-9a580e94f540.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-9a580e94f540.json @@ -19,18 +19,24 @@ "status" : 200, "bodyFileName" : "responses-9a580e94f540.txt", "headers" : { - "x-request-id" : "req_6ed617e520434a09aaef75e5aa7a0730", + "x-request-id" : "req_206a67f11617424dabef002a607d80f4", + "x-ratelimit-limit-tokens" : "30000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dd73aff85b9c7-SEA", + "CF-Ray" : "a56a0b9e5e78595c-SEA", "X-Content-Type-Options" : "nosniff", - "Date" : "Mon, 31 Aug 2026 17:44:00 GMT", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=P7L.5J41Pwq_zj.Dhy0Zlq5nbdBEB_P7KC06DrZgX7Y-1788198240.4748967-1.0.1.1-i0n1kHFxcCVWpmTIMffCoPDXriYZFlqtSeSY75dxBLf.ILUANU2XyLhjYZJOuxrveZMUJGMTP1TNm1ozvEFBsQPB_Evdij4IljBdf9gWx79K2cpJ6xYqi2xkg_gx3DxC; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:14:00 GMT", + "x-ratelimit-reset-requests" : "6ms", + "x-ratelimit-remaining-tokens" : "29999729", + "x-ratelimit-remaining-requests" : "9999", + "Date" : "Sat, 07 Nov 2026 05:48:02 GMT", + "x-ratelimit-reset-tokens" : "0s", + "access-control-expose-headers" : [ "X-Request-ID, Server-Timing-Total", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=j4qNo5W4ZGyDW9L0jOlhi_deEh8zEAM7b318x8cI9W4-1794030468.860536-1.0.1.1-DsWTNof5WQ8iXPtNBOQg8I2FADzZ1Emnb1rGCiuImrEjq6gorjtkbi8QtHAK6MyXux3WWtGZfKOC.5tLpCsb2FwqyIYlngsm3TkdRZR.YhVsNs2_jNF5N_uBo1qPGwiM; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:18:02 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", + "x-ratelimit-limit-requests" : "10000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "276", + "openai-processing-ms" : "13267", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "text/event-stream; charset=utf-8" @@ -38,5 +44,5 @@ }, "uuid" : "229a99a3-e268-3598-8770-2734af5feb68", "persistent" : true, - "insertionIndex" : 47 + "insertionIndex" : 54 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-9ec1c9b92ff9.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-9ec1c9b92ff9.json deleted file mode 100644 index e2e93da6..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-9ec1c9b92ff9.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "id" : "39f0d87b-178c-33a6-831e-c551fb849139", - "name" : "responses", - "request" : { - "url" : "/responses", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\n \"model\" : \"gpt-4o-mini\",\n \"input\" : [ {\n \"type\" : \"message\",\n \"role\" : \"user\",\n \"content\" : [ {\n \"type\" : \"input_text\",\n \"text\" : \"is it hotter in Paris or New York right now?\"\n } ]\n } ],\n \"stream\" : false,\n \"store\" : false,\n \"temperature\" : 0.0,\n \"tools\" : [ {\n \"type\" : \"function\",\n \"name\" : \"getWeather\",\n \"description\" : \"Get current weather for a location\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"arg0\" : {\n \"type\" : \"string\"\n }\n },\n \"required\" : [ \"arg0\" ]\n }\n }, {\n \"type\" : \"function\",\n \"name\" : \"getForecast\",\n \"description\" : \"Get weather forecast for next N days\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"arg0\" : {\n \"type\" : \"string\"\n },\n \"arg1\" : {\n \"type\" : \"integer\"\n }\n },\n \"required\" : [ \"arg0\", \"arg1\" ]\n }\n } ]\n}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "responses-9ec1c9b92ff9.json", - "headers" : { - "x-request-id" : "req_a848a68a3fdc4e79b7b311eb11318796", - "x-ratelimit-limit-tokens" : "150000000", - "openai-organization" : "braintrust-data", - "Server" : "cloudflare", - "CF-Ray" : "a33dd2c5c9595050-SEA", - "X-Content-Type-Options" : "nosniff", - "x-ratelimit-reset-requests" : "2ms", - "x-ratelimit-remaining-tokens" : "149999705", - "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:41:00 GMT", - "x-ratelimit-reset-tokens" : "0s", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=zVc8dyalU_4rNFh0oPVh2EMc.uUbKlCZJqYpHeHk3jI-1788198057.8819919-1.0.1.1-P3KvsLdKF4rjsyS_XhTmPQnc6kp8BBb6gyLA9QGBNYEWX8aR7VOR39wdd2xZthtKodm_Dc.pkNdFi8DqX1UT1d3WHTL3QC4DJuDPk7YKeE272.CLbfPEvbs214JJLfYo; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:11:00 GMT", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", - "CF-Cache-Status" : "DYNAMIC", - "x-ratelimit-limit-requests" : "30000", - "openai-version" : "2020-10-01", - "openai-processing-ms" : "1654", - "alt-svc" : "h3=\":443\"; ma=86400", - "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", - "Content-Type" : "application/json" - } - }, - "uuid" : "39f0d87b-178c-33a6-831e-c551fb849139", - "persistent" : true, - "insertionIndex" : 35 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-b6038b78fc83.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-b6038b78fc83.json deleted file mode 100644 index 1947e85b..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-b6038b78fc83.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "id" : "99350180-1411-3f51-b920-ea6d1aa6d65d", - "name" : "responses", - "request" : { - "url" : "/responses", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\n \"model\" : \"gpt-4o-mini\",\n \"input\" : [ {\n \"type\" : \"message\",\n \"role\" : \"user\",\n \"content\" : [ {\n \"type\" : \"input_text\",\n \"text\" : \"is it hotter in Paris or New York right now?\"\n } ]\n }, {\n \"type\" : \"function_call\",\n \"call_id\" : \"call_dlJJaeYbZqiLTojthEVSuD5f\",\n \"name\" : \"getWeather\",\n \"arguments\" : \"{\\\"arg0\\\":\\\"Paris\\\"}\"\n }, {\n \"type\" : \"function_call\",\n \"call_id\" : \"call_kLgnom9OZNcToRYj0vDlqYyN\",\n \"name\" : \"getWeather\",\n \"arguments\" : \"{\\\"arg0\\\":\\\"New York\\\"}\"\n }, {\n \"type\" : \"function_call_output\",\n \"call_id\" : \"call_dlJJaeYbZqiLTojthEVSuD5f\",\n \"output\" : \"The weather in Paris is sunny with 72°F temperature.\"\n }, {\n \"type\" : \"function_call_output\",\n \"call_id\" : \"call_kLgnom9OZNcToRYj0vDlqYyN\",\n \"output\" : \"The weather in New York is sunny with 72°F temperature.\"\n } ],\n \"stream\" : false,\n \"store\" : false,\n \"temperature\" : 0.0,\n \"tools\" : [ {\n \"type\" : \"function\",\n \"name\" : \"getWeather\",\n \"description\" : \"Get current weather for a location\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"arg0\" : {\n \"type\" : \"string\"\n }\n },\n \"required\" : [ \"arg0\" ]\n }\n }, {\n \"type\" : \"function\",\n \"name\" : \"getForecast\",\n \"description\" : \"Get weather forecast for next N days\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"arg0\" : {\n \"type\" : \"string\"\n },\n \"arg1\" : {\n \"type\" : \"integer\"\n }\n },\n \"required\" : [ \"arg0\", \"arg1\" ]\n }\n } ]\n}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "responses-b6038b78fc83.json", - "headers" : { - "x-request-id" : "req_1fe7d28cdda0467eaa1971476ce0491b", - "x-ratelimit-limit-tokens" : "150000000", - "openai-organization" : "braintrust-data", - "Server" : "cloudflare", - "CF-Ray" : "a33dd2d66848d43d-SEA", - "X-Content-Type-Options" : "nosniff", - "x-ratelimit-reset-requests" : "2ms", - "x-ratelimit-remaining-tokens" : "149999635", - "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:41:01 GMT", - "x-ratelimit-reset-tokens" : "0s", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=tR453vmhAqrhwGrt8jd83gUD09beUwvtSpZjVgoQArs-1788198060.5542707-1.0.1.1-T0L2UqxULDzqXhELhA.BSQDPHZNlnuZttxSiD_sSDetSbS8RWYUv8Nvzq4lo9nfN37B97aYJV9RWhl55jp45e31OAufaLVFmRvWEXTcG1541OUxDzDZpFUIUGoOTDdMf; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:11:01 GMT", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", - "CF-Cache-Status" : "DYNAMIC", - "x-ratelimit-limit-requests" : "30000", - "openai-version" : "2020-10-01", - "openai-processing-ms" : "870", - "alt-svc" : "h3=\":443\"; ma=86400", - "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", - "Content-Type" : "application/json" - } - }, - "uuid" : "99350180-1411-3f51-b920-ea6d1aa6d65d", - "persistent" : true, - "insertionIndex" : 34 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-b92f8c0d1cfe.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-b92f8c0d1cfe.json new file mode 100644 index 00000000..1bf60d26 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-b92f8c0d1cfe.json @@ -0,0 +1,48 @@ +{ + "id" : "63155cd7-3856-331d-9419-b0c46575827f", + "name" : "responses", + "request" : { + "url" : "/responses", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\n \"model\" : \"gpt-6-luna\",\n \"input\" : [ {\n \"type\" : \"message\",\n \"role\" : \"user\",\n \"content\" : [ {\n \"type\" : \"input_text\",\n \"text\" : \"Search the web for a recent AI news headline and answer in one sentence.\"\n } ]\n } ],\n \"stream\" : false,\n \"store\" : false,\n \"include\" : [ \"reasoning.encrypted_content\" ],\n \"reasoning\" : {\n \"effort\" : \"none\"\n },\n \"tools\" : [ {\n \"type\" : \"web_search_preview\",\n \"search_context_size\" : \"low\"\n } ]\n}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "responses-b92f8c0d1cfe.json", + "headers" : { + "x-request-id" : "req_5ce7bb97d594467aaeb8613109ebb37a", + "x-ratelimit-limit-tokens" : "180000000", + "openai-organization" : "braintrust-data", + "Server" : "cloudflare", + "CF-Ray" : "a56a04ce5a4314fa-SEA", + "X-Content-Type-Options" : "nosniff", + "x-ratelimit-reset-requests" : "2ms", + "x-ratelimit-remaining-tokens" : "179996076", + "x-ratelimit-remaining-requests" : "29999", + "Date" : "Sat, 07 Nov 2026 05:43:13 GMT", + "x-ratelimit-reset-tokens" : "1ms", + "access-control-expose-headers" : [ "X-Request-ID, Server-Timing-Total", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=GAjXT_yfEwu6bR057i0.1p_OjG3Sbg5POwDhGT9R6ng-1794030189.8214064-1.0.1.1-U3yGo_F_bs7x8v21lbJD7gAciuFpNDbcSfNdHH7i9Kvm5cjPvtiZN3kaaCYAtp9n8J2MPiEZ1jSWbQDg6onDLdQrCJDGqtF99eFWTOpkJmLRlBu6OASjlxd8.ojK_znL; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:13 GMT", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", + "CF-Cache-Status" : "DYNAMIC", + "x-ratelimit-limit-requests" : "30000", + "openai-version" : "2020-10-01", + "openai-processing-ms" : "3296", + "alt-svc" : "h3=\":443\"; ma=86400", + "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", + "Content-Type" : "application/json" + } + }, + "uuid" : "63155cd7-3856-331d-9419-b0c46575827f", + "persistent" : true, + "insertionIndex" : 11 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-b9d1173a9de6.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-b9d1173a9de6.json index 7e6730fa..53ecbb7d 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-b9d1173a9de6.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-b9d1173a9de6.json @@ -19,24 +19,24 @@ "status" : 200, "bodyFileName" : "responses-b9d1173a9de6.json", "headers" : { - "x-request-id" : "req_d787c66bb86343339264efa18ac55eb6", + "x-request-id" : "req_bef3a6cfb8a443dc92f56ee781ef7c60", "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dd718a801091f-SEA", + "CF-Ray" : "a56a0b90cfe519d7-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", - "x-ratelimit-remaining-tokens" : "149999955", + "x-ratelimit-remaining-tokens" : "149999952", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:43:56 GMT", + "Date" : "Sat, 07 Nov 2026 05:47:47 GMT", "x-ratelimit-reset-tokens" : "0s", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=d7nEQ8_oGwMqNrIVTpRzd_4z52Q_NDnPDrsJwuZ4aOI-1788198234.9879103-1.0.1.1-x7PD8RgmD6PI6rF2wgvBoau_BRkDMy6YFo6UOcx0r7q.R5JRUn3te_vqDedTBmcJ1_LAlQ8te1D3NMvy6cpFbk.jq.RlqdhIUYmqqhlm.3mz7yEs15LsUo.J7QmABr.f; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:13:56 GMT", + "access-control-expose-headers" : [ "X-Request-ID, Server-Timing-Total", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=xOtDP0tK_mW2fZAtq_7_pYlDykao_BPJHdvNKp.0J2Q-1794030466.6898382-1.0.1.1-RyN.6giPp3pkQLt7j5QHf3wD7DlV6fwR0ssYqx6.V3bW5_N32Yu.YEGLo08i9CTRRgbo2Rxk1jB.7zQe4WZ72s0kfQr0u9uc44aZXgr98pIXdniRuFjvJkFIfoo3th50; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:17:47 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "1159", + "openai-processing-ms" : "498", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json" @@ -44,5 +44,5 @@ }, "uuid" : "f8a5744d-b1b5-3a07-af58-9d924d3e424b", "persistent" : true, - "insertionIndex" : 49 + "insertionIndex" : 56 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-bdf9fabdc0f8.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-bdf9fabdc0f8.json new file mode 100644 index 00000000..0c5de816 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-bdf9fabdc0f8.json @@ -0,0 +1,48 @@ +{ + "id" : "883893ca-d5ec-3d91-858a-2c83c92692ca", + "name" : "responses", + "request" : { + "url" : "/responses", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\n \"model\" : \"gpt-4o-mini\",\n \"input\" : [ {\n \"type\" : \"message\",\n \"role\" : \"user\",\n \"content\" : [ {\n \"type\" : \"input_text\",\n \"text\" : \"is it hotter in Paris or New York right now?\"\n } ]\n } ],\n \"stream\" : false,\n \"store\" : false,\n \"temperature\" : 0.0,\n \"tools\" : [ {\n \"type\" : \"function\",\n \"name\" : \"getForecast\",\n \"description\" : \"Get weather forecast for next N days\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"arg0\" : {\n \"type\" : \"string\"\n },\n \"arg1\" : {\n \"type\" : \"integer\"\n }\n },\n \"required\" : [ \"arg0\", \"arg1\" ]\n }\n }, {\n \"type\" : \"function\",\n \"name\" : \"getWeather\",\n \"description\" : \"Get current weather for a location\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"arg0\" : {\n \"type\" : \"string\"\n }\n },\n \"required\" : [ \"arg0\" ]\n }\n } ]\n}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "responses-bdf9fabdc0f8.json", + "headers" : { + "x-request-id" : "req_2bd5e60a98df4f19bda69f86e6bf5213", + "x-ratelimit-limit-tokens" : "150000000", + "openai-organization" : "braintrust-data", + "Server" : "cloudflare", + "CF-Ray" : "a56a09f89c6c68f2-SEA", + "X-Content-Type-Options" : "nosniff", + "x-ratelimit-reset-requests" : "2ms", + "x-ratelimit-remaining-tokens" : "149999705", + "x-ratelimit-remaining-requests" : "29999", + "Date" : "Sat, 07 Nov 2026 05:46:42 GMT", + "x-ratelimit-reset-tokens" : "0s", + "access-control-expose-headers" : [ "X-Request-ID, Server-Timing-Total", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=fHDBks4.LKiYFdcRUtR5K2R7kc40xTlk2DAX9lU1N2Q-1794030401.3802834-1.0.1.1-h5wT7F2GKYAZGtFuZgaarrMcwNCoSA4lZK2gm5YgEShP0KHfOIJ_bwsL3NrIFNRrLQ7TdmpAZXDoNXmwbpGtn6sHS27XqqTy8mfVt2TlfTEJp_BwTRyfrXE3tAsyq8m_; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:16:42 GMT", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", + "CF-Cache-Status" : "DYNAMIC", + "x-ratelimit-limit-requests" : "30000", + "openai-version" : "2020-10-01", + "openai-processing-ms" : "1336", + "alt-svc" : "h3=\":443\"; ma=86400", + "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", + "Content-Type" : "application/json" + } + }, + "uuid" : "883893ca-d5ec-3d91-858a-2c83c92692ca", + "persistent" : true, + "insertionIndex" : 39 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-c1b40cd66fd7.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-c1b40cd66fd7.json index 5869916e..4776386b 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-c1b40cd66fd7.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-c1b40cd66fd7.json @@ -19,18 +19,24 @@ "status" : 200, "bodyFileName" : "responses-c1b40cd66fd7.txt", "headers" : { - "x-request-id" : "req_a02df17e2ea748409cd237762152d091", + "x-request-id" : "req_99b164700e5a4468819065723279cb80", + "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dd2694e6ddf2d-SEA", + "CF-Ray" : "a56a09791b6efbe6-SEA", "X-Content-Type-Options" : "nosniff", - "Date" : "Mon, 31 Aug 2026 17:40:47 GMT", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=Rsy2cwthsNjI0aKAwTdgD5CrSzg.K.NSPdbJOoX1e1g-1788198043.08776-1.0.1.1-_0RrUKKj76ZeKltzapghOAPsqKlwFc.mGWq2hDrHJnxDOqEsB9EQl9zPJjnybCUxobVOME43IMbaKb8532B_MaDDAFUcgSLA5tOBdTW0VR6PH1izbO66TOX0Dgp16pSt; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:10:47 GMT", + "x-ratelimit-reset-requests" : "2ms", + "x-ratelimit-remaining-tokens" : "149999967", + "x-ratelimit-remaining-requests" : "29999", + "Date" : "Sat, 07 Nov 2026 05:46:21 GMT", + "x-ratelimit-reset-tokens" : "0s", + "access-control-expose-headers" : [ "X-Request-ID, Server-Timing-Total", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=puGJEfvfBBNpoyzrnwpHKoS5EkgHuxkORDnydkvyP_4-1794030380.9757762-1.0.1.1-uN29uoXM216GtrZhTA9DmlfaG6Br06eLzUrj8d4oHUq94_ayBj3dbgONBi6DaI3ZNWfwGXvT1UTYEjG_78kBN91jQQeu1EQy5FbqOab35c6xKrWj1lQninQXBrU0y0.C; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:16:21 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", + "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "3472", + "openai-processing-ms" : "493", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "text/event-stream; charset=utf-8" @@ -38,5 +44,5 @@ }, "uuid" : "c2474bf5-50bc-3bbb-8eb0-7ce0526dc342", "persistent" : true, - "insertionIndex" : 39 + "insertionIndex" : 43 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-c2751be9bd77.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-c2751be9bd77.json index 94f5009b..748e8d2c 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-c2751be9bd77.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-c2751be9bd77.json @@ -19,24 +19,24 @@ "status" : 200, "bodyFileName" : "responses-c2751be9bd77.json", "headers" : { - "x-request-id" : "req_c4556d8d76b042c0ade7473ec63cc7ac", + "x-request-id" : "req_b2a94162f5694d3988cfef8536415373", "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a4b2a064daf9495d-SEA", + "CF-Ray" : "a56a04d2dc4669e8-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", "x-ratelimit-remaining-tokens" : "149999960", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Thu, 15 Oct 2026 23:33:03 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:11 GMT", "x-ratelimit-reset-tokens" : "0s", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=PMFVEryTmZ6BAWedgWfnbpkuTLL1BW9AlNzoShlOer0-1792107182.8542302-1.0.1.1-F5ekHiH6gKjV8PSvJ3D7oRBgZCiJ1s8PIujZeRewGKe79EKugLQ68CvNtW32raAOgb1pUzAsdzZpHrd6kaliC66dHV.trPq.vDelBzrm6qz_o6f2Mngelih5HzUFbw4I; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Fri, 16 Oct 2026 00:03:03 GMT", + "access-control-expose-headers" : [ "X-Request-ID, Server-Timing-Total", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=7bbv1CVTlGP0n3nDyK2jpjX.v0ZYoy7HOLLDTrLI5mI-1794030190.5349152-1.0.1.1-3lT9TcdiAD2zkace19OgncjAGnN5PlgI1Y8PGdu4_I6asDIVRMDSczBdH6_CFWyZhFKaH5JCflCKvZzxS3JPU.i4LV101mYKscwa_ByvQB.cpAu5mzC537xKQ84hGlDC; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:11 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "957", + "openai-processing-ms" : "596", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json" @@ -44,5 +44,5 @@ }, "uuid" : "1060ad4b-6b53-35b3-bed8-d12378ded8db", "persistent" : true, - "insertionIndex" : 71 + "insertionIndex" : 15 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-c3a0171636a4.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-c3a0171636a4.json new file mode 100644 index 00000000..6eb0beca --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-c3a0171636a4.json @@ -0,0 +1,48 @@ +{ + "id" : "4647d0dd-85a0-3ce7-b88d-a4074e2247c0", + "name" : "responses", + "request" : { + "url" : "/responses", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"input\":[{\"role\":\"user\",\"content\":\"Search the web for a recent AI news headline and answer in one sentence.\"}],\"model\":\"gpt-6-luna\",\"reasoning\":{\"effort\":\"none\"},\"tool_choice\":{\"type\":\"web_search_preview\"},\"tools\":[{\"type\":\"web_search_preview\",\"search_context_size\":\"low\"}]}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "responses-c3a0171636a4.json", + "headers" : { + "x-request-id" : "req_255cc39218f34f9abad671d29d16fee6", + "x-ratelimit-limit-tokens" : "180000000", + "openai-organization" : "braintrust-data", + "Server" : "cloudflare", + "CF-Ray" : "a56a04a3dab906ac-SEA", + "X-Content-Type-Options" : "nosniff", + "x-ratelimit-reset-requests" : "2ms", + "x-ratelimit-remaining-tokens" : "179996295", + "x-ratelimit-remaining-requests" : "29999", + "Date" : "Sat, 07 Nov 2026 05:43:09 GMT", + "x-ratelimit-reset-tokens" : "1ms", + "access-control-expose-headers" : [ "X-Request-ID, Server-Timing-Total", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=2kLdo2IO5077CyDxBW9FImMol45Gw7NRWIFktrSnEJ8-1794030183.0202255-1.0.1.1-Q8nCyrudp8KBmAfX9mJxp5hEGI5kD34a5KIQA5X5C8x8lxVsIfw64lheqDIPfZRA44.xgBwfPdseg6YVyJrLpepp9dYgOsw31bgJlk52QI85tsi6M6_wAiBKFs7jMpb.; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:09 GMT", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", + "CF-Cache-Status" : "DYNAMIC", + "x-ratelimit-limit-requests" : "30000", + "openai-version" : "2020-10-01", + "openai-processing-ms" : "6620", + "alt-svc" : "h3=\":443\"; ma=86400", + "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", + "Content-Type" : "application/json" + } + }, + "uuid" : "4647d0dd-85a0-3ce7-b88d-a4074e2247c0", + "persistent" : true, + "insertionIndex" : 18 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-bdae47d54959.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-d09245752873.json similarity index 54% rename from test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-bdae47d54959.json rename to test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-d09245752873.json index 1f74c5c5..bb12fe64 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-bdae47d54959.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-d09245752873.json @@ -1,5 +1,5 @@ { - "id" : "3ec1669f-6378-3bd4-b5cd-dc7acc2f8acd", + "id" : "10f9fe98-6c43-3ab2-af79-507245fcc486", "name" : "responses", "request" : { "url" : "/responses", @@ -10,39 +10,39 @@ } }, "bodyPatterns" : [ { - "equalToJson" : "{\"input\":[{\"role\":\"user\",\"content\":\"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\\n\"}],\"model\":\"o4-mini\",\"reasoning\":{\"effort\":\"high\",\"summary\":\"detailed\"}}", + "equalToJson" : "{\"input\":[{\"role\":\"user\",\"content\":\"Look at this sequence: 2, 6, 12, 20, 30. What is the pattern and what would be the formula for the nth term?\\n\"}],\"model\":\"gpt-6-luna\",\"reasoning\":{\"effort\":\"high\",\"summary\":\"detailed\"}}", "ignoreArrayOrder" : true, "ignoreExtraElements" : false } ] }, "response" : { "status" : 200, - "bodyFileName" : "responses-bdae47d54959.json", + "bodyFileName" : "responses-d09245752873.json", "headers" : { - "x-request-id" : "req_6675dcd1377a4e809468d792789229ca", - "x-ratelimit-limit-tokens" : "150000000", + "x-request-id" : "req_24f81632689c498a9ab1fbc0b283480b", + "x-ratelimit-limit-tokens" : "180000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dcd985bfc756b-SEA", + "CF-Ray" : "a56a04d7ca1f95e3-SEA", "X-Content-Type-Options" : "nosniff", "x-ratelimit-reset-requests" : "2ms", - "x-ratelimit-remaining-tokens" : "149999752", + "x-ratelimit-remaining-tokens" : "180000000", "x-ratelimit-remaining-requests" : "29999", - "Date" : "Mon, 31 Aug 2026 17:37:57 GMT", + "Date" : "Sat, 07 Nov 2026 05:43:16 GMT", "x-ratelimit-reset-tokens" : "0s", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=xW7H.V_80dDMQnoXQmuGkpARI9WcnfDIB1m2ZM6JovM-1788197845.8148537-1.0.1.1-bcUdqT.GsAI4nW6vI0lMPTlN7Mao_rHGMncXDTGLn5pYhzCUqQXqeQN2N8YTIpUPLI8GP7H4crriI4ty6csX8vHR9eLAJCL9vEzoUlAj0LNmbNdtWXguxT1gV76gjoTl; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:07:57 GMT", + "access-control-expose-headers" : [ "X-Request-ID, Server-Timing-Total", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=sY5SLxx6g_s9_gnfnAbJEYEh45Yb47HFHxPUkgkyJqY-1794030191.3313644-1.0.1.1-jU5l.odeTugqIWT70oNwjpPmrG9OCvnLjRPJes1a7lwckTFDlOPFoyqVA01turC3tNXOXoAQ8.yYCu71WBVKHPntxau.a4plDbIJ6c7ZDLP1JGLAfOVwWG1oodfB9DSM; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:16 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "31096", + "openai-processing-ms" : "5014", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json" } }, - "uuid" : "3ec1669f-6378-3bd4-b5cd-dc7acc2f8acd", + "uuid" : "10f9fe98-6c43-3ab2-af79-507245fcc486", "persistent" : true, - "insertionIndex" : 2 + "insertionIndex" : 6 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-d93cfca55488.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-d93cfca55488.json deleted file mode 100644 index ee8ebaa6..00000000 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-d93cfca55488.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "id" : "dde6da21-001f-3f62-a4e7-39705cf9371a", - "name" : "responses", - "request" : { - "url" : "/responses", - "method" : "POST", - "headers" : { - "Content-Type" : { - "equalTo" : "application/json" - } - }, - "bodyPatterns" : [ { - "equalToJson" : "{\"input\":[{\"role\":\"user\",\"content\":\"Search the web for a recent AI news headline and answer in one sentence.\"}],\"model\":\"gpt-4o\",\"tool_choice\":{\"type\":\"web_search_preview\"},\"tools\":[{\"type\":\"web_search_preview\",\"search_context_size\":\"low\"}]}", - "ignoreArrayOrder" : true, - "ignoreExtraElements" : false - } ] - }, - "response" : { - "status" : 200, - "bodyFileName" : "responses-d93cfca55488.json", - "headers" : { - "x-request-id" : "req_7938016ece674ca1bbe3a6ea5b51b7fe", - "openai-organization" : "braintrust-data", - "Server" : "cloudflare", - "CF-Ray" : "a33dccb9bda08157-SEA", - "X-Content-Type-Options" : "nosniff", - "Date" : "Mon, 31 Aug 2026 17:37:07 GMT", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=rUqwUFk178QEE_3ep17aEbhIagAZB30tweiMfsARcHU-1788197810.198201-1.0.1.1-GEJS0kSSM56IsCSd07oQdsYgvXwoU7qJjzsuYQ1XVoeWv3dbPC5ISPbtwOM6NnbZlfdxQdcZ17KDXu1coDiR6PcZlDVrE40HG1.CbcnHdbwJgcKZSjiidCv3K7XyuSof; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:07:07 GMT", - "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", - "CF-Cache-Status" : "DYNAMIC", - "openai-version" : "2020-10-01", - "openai-processing-ms" : "16828", - "alt-svc" : "h3=\":443\"; ma=86400", - "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", - "Content-Type" : "application/json" - } - }, - "uuid" : "dde6da21-001f-3f62-a4e7-39705cf9371a", - "persistent" : true, - "insertionIndex" : 21 -} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-dade10fddc15.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-dade10fddc15.json index d907a0b4..7d2901be 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-dade10fddc15.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-dade10fddc15.json @@ -19,18 +19,24 @@ "status" : 200, "bodyFileName" : "responses-dade10fddc15.txt", "headers" : { - "x-request-id" : "req_9ce71d4f888644a3a3b4bb3db9a6e6c3", + "x-request-id" : "req_30c4412841d2479d910ecfb778ab86b5", + "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a33dd7b00f27ec7c-SEA", + "CF-Ray" : "a56a0c90b8eb57bc-SEA", "X-Content-Type-Options" : "nosniff", - "Date" : "Mon, 31 Aug 2026 17:44:19 GMT", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=on4ezSN4OpsqqON3jGF.5k_6oG5PA30qdpYZkg2jFno-1788198259.2028723-1.0.1.1-jJr4HwKDfdfPxGPBVOGF1iCQ5eKJrNu_sLJgpMFCFjnqcBITpId5trQcHcKhrVC.iWKfNHuAZphlFSBjv_80QTdsVxegHvcJxpTGlvdiIHRfHtA4UbJjqVZS4OHWOBb6; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Mon, 31 Aug 2026 18:14:19 GMT", + "x-ratelimit-reset-requests" : "2ms", + "x-ratelimit-remaining-tokens" : "149999957", + "x-ratelimit-remaining-requests" : "29999", + "Date" : "Sat, 07 Nov 2026 05:48:28 GMT", + "x-ratelimit-reset-tokens" : "0s", + "access-control-expose-headers" : [ "X-Request-ID, Server-Timing-Total", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=Z62_QhgJRT_g3QG0OSEnMTMaTbUT_APfKWwuirsI1l0-1794030507.6371963-1.0.1.1-uiMg3jfjqwiCIBd.DdGEdjKmQ205gSu47zU95AWCxsRGmaRiwaalIFBQDsJHCGRXhfUnkOzYA__rwknENH13T01vDVdiutFN.q6r.3KfNesRpphrl67KYT.Ap5KOaFmF; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:18:28 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", + "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "184", + "openai-processing-ms" : "557", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "text/event-stream; charset=utf-8" @@ -40,5 +46,5 @@ "persistent" : true, "scenarioName" : "scenario-2-responses", "requiredScenarioState" : "scenario-2-responses-2", - "insertionIndex" : 43 + "insertionIndex" : 49 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-5cc928e690af.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-ef1cda21db95.json similarity index 58% rename from test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-5cc928e690af.json rename to test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-ef1cda21db95.json index f2e79821..21e14941 100644 --- a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-5cc928e690af.json +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-ef1cda21db95.json @@ -1,5 +1,5 @@ { - "id" : "38575537-ba0c-382b-afdd-83443de086f2", + "id" : "18031a6b-0280-3ffa-a9b1-18c922b09a3f", "name" : "responses", "request" : { "url" : "/responses", @@ -17,35 +17,35 @@ }, "response" : { "status" : 200, - "bodyFileName" : "responses-5cc928e690af.json", + "bodyFileName" : "responses-ef1cda21db95.json", "headers" : { - "x-request-id" : "req_ef3ffe857ddb4f56b365e6fbdf92d1b5", + "x-request-id" : "req_ec72bd76ce724e4291ba3cd4874ae2a3", "x-ratelimit-limit-tokens" : "150000000", "openai-organization" : "braintrust-data", "Server" : "cloudflare", - "CF-Ray" : "a4b2a0639ded9617-SEA", + "CF-Ray" : "a56a0492197d289b-SEA", "X-Content-Type-Options" : "nosniff", - "x-ratelimit-reset-requests" : "6ms", - "x-ratelimit-remaining-tokens" : "149999877", - "x-ratelimit-remaining-requests" : "29997", - "Date" : "Thu, 15 Oct 2026 23:33:03 GMT", + "x-ratelimit-reset-requests" : "2ms", + "x-ratelimit-remaining-tokens" : "149999960", + "x-ratelimit-remaining-requests" : "29999", + "Date" : "Sat, 07 Nov 2026 05:43:00 GMT", "x-ratelimit-reset-tokens" : "0s", - "access-control-expose-headers" : [ "X-Request-ID", "CF-Ray", "CF-Ray" ], - "set-cookie" : "__cf_bm=7F1yvnE57btP30cNIUnTlQLWAqenbf9k3NZ6NcT1CT8-1792107182.6617734-1.0.1.1-cmAOsbW.fTUJriHTIfF0ibVUATeaHuHc7iPAMrPdrTwXhjXj15YeuN9h0l886.3tthsOQxzwFBpwS80ryBm49THy8ja0hDdM497agd4B.yrpxKDsQX.MwD21xkOKjyvl; HttpOnly; SameSite=None; Secure; Path=/; Domain=api.openai.com; Expires=Fri, 16 Oct 2026 00:03:03 GMT", + "access-control-expose-headers" : [ "X-Request-ID, Server-Timing-Total", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=HwJZFHCaOig.tXB6Eg_LPoWjkoNK87fQ9oMmLkC0BU4-1794030180.176238-1.0.1.1-2TydZofsArhzY9xa0E8aFe4_f9FwRXEHhtFvn5xjj5UAbHWZmJTrtUcHEsUOu_Xl9eF7BJ0XFncd_qPumRse0pYe3.t31eq1pBokk5L0uiWTedFzqAYcqSrX8yfY9pZB; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:13:00 GMT", "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", "CF-Cache-Status" : "DYNAMIC", "x-ratelimit-limit-requests" : "30000", "openai-version" : "2020-10-01", - "openai-processing-ms" : "1112", + "openai-processing-ms" : "387", "alt-svc" : "h3=\":443\"; ma=86400", "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", "Content-Type" : "application/json" } }, - "uuid" : "38575537-ba0c-382b-afdd-83443de086f2", + "uuid" : "18031a6b-0280-3ffa-a9b1-18c922b09a3f", "persistent" : true, - "scenarioName" : "scenario-1-responses", + "scenarioName" : "scenario-7-responses", "requiredScenarioState" : "Started", - "newScenarioState" : "scenario-1-responses-2", - "insertionIndex" : 73 + "newScenarioState" : "scenario-7-responses-2", + "insertionIndex" : 39 } \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-fa90d3092662.json b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-fa90d3092662.json new file mode 100644 index 00000000..ce67fcce --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/openai/mappings/responses-fa90d3092662.json @@ -0,0 +1,48 @@ +{ + "id" : "54f1bdea-401f-36b0-a1d1-f88156830ec1", + "name" : "responses", + "request" : { + "url" : "/responses", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\n \"model\" : \"gpt-4o-mini\",\n \"input\" : [ {\n \"type\" : \"message\",\n \"role\" : \"user\",\n \"content\" : [ {\n \"type\" : \"input_text\",\n \"text\" : \"is it hotter in Paris or New York right now?\"\n } ]\n }, {\n \"type\" : \"function_call\",\n \"call_id\" : \"call_9L39XiHKqqwhSAq0lHcBEPJ7\",\n \"name\" : \"getWeather\",\n \"arguments\" : \"{\\\"arg0\\\":\\\"Paris\\\"}\"\n }, {\n \"type\" : \"function_call\",\n \"call_id\" : \"call_lLb5cLAhUnXvhuBYlyWFfF8y\",\n \"name\" : \"getWeather\",\n \"arguments\" : \"{\\\"arg0\\\":\\\"New York\\\"}\"\n }, {\n \"type\" : \"function_call_output\",\n \"call_id\" : \"call_9L39XiHKqqwhSAq0lHcBEPJ7\",\n \"output\" : \"The weather in Paris is sunny with 72°F temperature.\"\n }, {\n \"type\" : \"function_call_output\",\n \"call_id\" : \"call_lLb5cLAhUnXvhuBYlyWFfF8y\",\n \"output\" : \"The weather in New York is sunny with 72°F temperature.\"\n } ],\n \"stream\" : false,\n \"store\" : false,\n \"temperature\" : 0.0,\n \"tools\" : [ {\n \"type\" : \"function\",\n \"name\" : \"getForecast\",\n \"description\" : \"Get weather forecast for next N days\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"arg0\" : {\n \"type\" : \"string\"\n },\n \"arg1\" : {\n \"type\" : \"integer\"\n }\n },\n \"required\" : [ \"arg0\", \"arg1\" ]\n }\n }, {\n \"type\" : \"function\",\n \"name\" : \"getWeather\",\n \"description\" : \"Get current weather for a location\",\n \"parameters\" : {\n \"type\" : \"object\",\n \"properties\" : {\n \"arg0\" : {\n \"type\" : \"string\"\n }\n },\n \"required\" : [ \"arg0\" ]\n }\n } ]\n}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "responses-fa90d3092662.json", + "headers" : { + "x-request-id" : "req_d650687c8d1c400fb74d0793ac76b551", + "x-ratelimit-limit-tokens" : "150000000", + "openai-organization" : "braintrust-data", + "Server" : "cloudflare", + "CF-Ray" : "a56a0a021f00f8d9-SEA", + "X-Content-Type-Options" : "nosniff", + "x-ratelimit-reset-requests" : "2ms", + "x-ratelimit-remaining-tokens" : "149999635", + "x-ratelimit-remaining-requests" : "29999", + "Date" : "Sat, 07 Nov 2026 05:46:43 GMT", + "x-ratelimit-reset-tokens" : "0s", + "access-control-expose-headers" : [ "X-Request-ID, Server-Timing-Total", "CF-Ray", "CF-Ray" ], + "set-cookie" : "__cf_bm=j82VBKFeotqw3FgMSUtkFnY3cE9DQiiacDMUvkBgIJs-1794030402.8976483-1.0.1.1-P5PQXu3E1eD5k7gwdvuJ4vthnJkLGaVeKq4FDsKiADKEFkj7Or.0.E.UTeYsRCUZQzb1KvOUCXBXlQXHA8qQdM1LBwfio76rJM3okr6kC2zGfqqFjJYjBDwWQqbDPlee; HttpOnly; SameSite=None; Partitioned; Secure; Path=/; Domain=api.openai.com; Expires=Sat, 07 Nov 2026 06:16:43 GMT", + "Strict-Transport-Security" : "max-age=31536000; includeSubDomains; preload", + "CF-Cache-Status" : "DYNAMIC", + "x-ratelimit-limit-requests" : "30000", + "openai-version" : "2020-10-01", + "openai-processing-ms" : "893", + "alt-svc" : "h3=\":443\"; ma=86400", + "openai-project" : "proj_vsCSXafhhByzWOThMrJcZiw9", + "Content-Type" : "application/json" + } + }, + "uuid" : "54f1bdea-401f-36b0-a1d1-f88156830ec1", + "persistent" : true, + "insertionIndex" : 38 +} \ No newline at end of file