From 5efad402b001cd773faac204ae02976b32936c64 Mon Sep 17 00:00:00 2001 From: Katrina Rogan Date: Thu, 8 Jul 2021 09:55:19 -0700 Subject: [PATCH] Add core entity links to admin request structures (#197) Signed-off-by: Eduardo Apolinario --- .../pb-cpp/flyteidl/service/admin.grpc.pb.h | 132 ++++++++++++ .../gen/pb-go/flyteidl/admin/execution.pb.go | 3 + .../pb-go/flyteidl/admin/launch_plan.pb.go | 4 + .../flyteidl/admin/matchable_resource.pb.go | 2 + .../pb-go/flyteidl/admin/node_execution.pb.go | 4 + .../gen/pb-go/flyteidl/admin/project.pb.go | 8 + .../admin/project_domain_attributes.pb.go | 6 +- flyteidl/gen/pb-go/flyteidl/admin/task.pb.go | 2 + .../pb-go/flyteidl/admin/task_execution.pb.go | 4 + .../gen/pb-go/flyteidl/admin/workflow.pb.go | 2 + .../flyteidl/admin/workflow_attributes.pb.go | 5 +- .../gen/pb-go/flyteidl/service/admin.pb.go | 88 ++++++++ .../pb-go/flyteidl/service/admin.swagger.json | 94 +++++++-- .../flyteidl/service/flyteadmin/README.md | 94 ++++----- .../service/flyteadmin/api/swagger.yaml | 128 +++++++++--- .../service/flyteadmin/api_admin_service.go | 94 ++++----- .../flyteadmin/model_admin_execution_list.go | 1 - .../model_admin_launch_plan_list.go | 1 - .../model_admin_launch_plan_update_request.go | 1 - ...dmin_list_matchable_attributes_response.go | 1 - .../model_admin_node_execution_list.go | 1 - .../model_admin_project_domain_attributes.go | 1 - ...roject_domain_attributes_delete_request.go | 1 - ..._project_domain_attributes_get_response.go | 1 - ...roject_domain_attributes_update_request.go | 1 - .../model_admin_project_register_response.go | 1 + .../model_admin_project_update_response.go | 1 + .../model_admin_task_create_request.go | 1 - .../model_admin_task_execution_list.go | 1 - .../flyteadmin/model_admin_task_list.go | 1 - .../model_admin_workflow_attributes.go | 1 - ...dmin_workflow_attributes_delete_request.go | 1 - ...dmin_workflow_attributes_update_request.go | 1 - .../model_admin_workflow_create_request.go | 1 - .../flyteadmin/model_admin_workflow_list.go | 1 - .../gen/pb-go/flyteidl/service/openapi.go | 4 +- .../flyteidl/admin/ExecutionOuterClass.java | 6 + .../flyteidl/admin/LaunchPlanOuterClass.java | 8 + .../admin/MatchableResourceOuterClass.java | 4 + .../admin/NodeExecutionOuterClass.java | 8 + .../ProjectDomainAttributesOuterClass.java | 12 +- .../flyteidl/admin/ProjectOuterClass.java | 46 +++++ .../admin/TaskExecutionOuterClass.java | 8 + .../flyteidl/admin/TaskOuterClass.java | 4 + .../admin/WorkflowAttributesOuterClass.java | 10 +- .../flyteidl/admin/WorkflowOuterClass.java | 4 + .../flyteidl/service/admin_pb2_grpc.py | 175 ++++++++-------- .../flyteidl/service/flyteadmin/README.md | 95 ++++----- .../flyteadmin/api/admin_service_api.py | 188 +++++++++--------- .../flyteadmin/test/test_admin_service_api.py | 48 ++++- flyteidl/protos/docs/admin/admin.rst | 45 ++++- flyteidl/protos/docs/service/service.rst | 88 ++++---- .../protos/flyteidl/admin/execution.proto | 3 + .../protos/flyteidl/admin/launch_plan.proto | 4 + .../flyteidl/admin/matchable_resource.proto | 2 + .../flyteidl/admin/node_execution.proto | 4 + flyteidl/protos/flyteidl/admin/project.proto | 8 + .../admin/project_domain_attributes.proto | 6 +- flyteidl/protos/flyteidl/admin/task.proto | 2 + .../flyteidl/admin/task_execution.proto | 4 + flyteidl/protos/flyteidl/admin/workflow.proto | 2 + .../flyteidl/admin/workflow_attributes.proto | 5 +- flyteidl/protos/flyteidl/service/admin.proto | 45 ++++- 63 files changed, 1077 insertions(+), 450 deletions(-) diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/admin.grpc.pb.h b/flyteidl/gen/pb-cpp/flyteidl/service/admin.grpc.pb.h index ce7813470f8..ce4e2a74c40 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/admin.grpc.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/service/admin.grpc.pb.h @@ -50,6 +50,7 @@ class AdminService final { class StubInterface { public: virtual ~StubInterface() {} + // Create and upload a :ref:`ref_flyteidl.admin.Task` definition virtual ::grpc::Status CreateTask(::grpc::ClientContext* context, const ::flyteidl::admin::TaskCreateRequest& request, ::flyteidl::admin::TaskCreateResponse* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::TaskCreateResponse>> AsyncCreateTask(::grpc::ClientContext* context, const ::flyteidl::admin::TaskCreateRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::TaskCreateResponse>>(AsyncCreateTaskRaw(context, request, cq)); @@ -57,6 +58,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::TaskCreateResponse>> PrepareAsyncCreateTask(::grpc::ClientContext* context, const ::flyteidl::admin::TaskCreateRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::TaskCreateResponse>>(PrepareAsyncCreateTaskRaw(context, request, cq)); } + // Fetch a :ref:`ref_flyteidl.admin.Task` definition. virtual ::grpc::Status GetTask(::grpc::ClientContext* context, const ::flyteidl::admin::ObjectGetRequest& request, ::flyteidl::admin::Task* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::Task>> AsyncGetTask(::grpc::ClientContext* context, const ::flyteidl::admin::ObjectGetRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::Task>>(AsyncGetTaskRaw(context, request, cq)); @@ -64,6 +66,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::Task>> PrepareAsyncGetTask(::grpc::ClientContext* context, const ::flyteidl::admin::ObjectGetRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::Task>>(PrepareAsyncGetTaskRaw(context, request, cq)); } + // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. virtual ::grpc::Status ListTaskIds(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityIdentifierListRequest& request, ::flyteidl::admin::NamedEntityIdentifierList* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NamedEntityIdentifierList>> AsyncListTaskIds(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityIdentifierListRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NamedEntityIdentifierList>>(AsyncListTaskIdsRaw(context, request, cq)); @@ -71,6 +74,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NamedEntityIdentifierList>> PrepareAsyncListTaskIds(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityIdentifierListRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NamedEntityIdentifierList>>(PrepareAsyncListTaskIdsRaw(context, request, cq)); } + // Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. virtual ::grpc::Status ListTasks(::grpc::ClientContext* context, const ::flyteidl::admin::ResourceListRequest& request, ::flyteidl::admin::TaskList* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::TaskList>> AsyncListTasks(::grpc::ClientContext* context, const ::flyteidl::admin::ResourceListRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::TaskList>>(AsyncListTasksRaw(context, request, cq)); @@ -78,6 +82,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::TaskList>> PrepareAsyncListTasks(::grpc::ClientContext* context, const ::flyteidl::admin::ResourceListRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::TaskList>>(PrepareAsyncListTasksRaw(context, request, cq)); } + // Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition virtual ::grpc::Status CreateWorkflow(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowCreateRequest& request, ::flyteidl::admin::WorkflowCreateResponse* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowCreateResponse>> AsyncCreateWorkflow(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowCreateRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowCreateResponse>>(AsyncCreateWorkflowRaw(context, request, cq)); @@ -85,6 +90,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowCreateResponse>> PrepareAsyncCreateWorkflow(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowCreateRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowCreateResponse>>(PrepareAsyncCreateWorkflowRaw(context, request, cq)); } + // Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. virtual ::grpc::Status GetWorkflow(::grpc::ClientContext* context, const ::flyteidl::admin::ObjectGetRequest& request, ::flyteidl::admin::Workflow* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::Workflow>> AsyncGetWorkflow(::grpc::ClientContext* context, const ::flyteidl::admin::ObjectGetRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::Workflow>>(AsyncGetWorkflowRaw(context, request, cq)); @@ -92,6 +98,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::Workflow>> PrepareAsyncGetWorkflow(::grpc::ClientContext* context, const ::flyteidl::admin::ObjectGetRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::Workflow>>(PrepareAsyncGetWorkflowRaw(context, request, cq)); } + // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. virtual ::grpc::Status ListWorkflowIds(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityIdentifierListRequest& request, ::flyteidl::admin::NamedEntityIdentifierList* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NamedEntityIdentifierList>> AsyncListWorkflowIds(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityIdentifierListRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NamedEntityIdentifierList>>(AsyncListWorkflowIdsRaw(context, request, cq)); @@ -99,6 +106,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NamedEntityIdentifierList>> PrepareAsyncListWorkflowIds(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityIdentifierListRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NamedEntityIdentifierList>>(PrepareAsyncListWorkflowIdsRaw(context, request, cq)); } + // Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. virtual ::grpc::Status ListWorkflows(::grpc::ClientContext* context, const ::flyteidl::admin::ResourceListRequest& request, ::flyteidl::admin::WorkflowList* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowList>> AsyncListWorkflows(::grpc::ClientContext* context, const ::flyteidl::admin::ResourceListRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowList>>(AsyncListWorkflowsRaw(context, request, cq)); @@ -106,6 +114,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowList>> PrepareAsyncListWorkflows(::grpc::ClientContext* context, const ::flyteidl::admin::ResourceListRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowList>>(PrepareAsyncListWorkflowsRaw(context, request, cq)); } + // Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition virtual ::grpc::Status CreateLaunchPlan(::grpc::ClientContext* context, const ::flyteidl::admin::LaunchPlanCreateRequest& request, ::flyteidl::admin::LaunchPlanCreateResponse* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::LaunchPlanCreateResponse>> AsyncCreateLaunchPlan(::grpc::ClientContext* context, const ::flyteidl::admin::LaunchPlanCreateRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::LaunchPlanCreateResponse>>(AsyncCreateLaunchPlanRaw(context, request, cq)); @@ -113,6 +122,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::LaunchPlanCreateResponse>> PrepareAsyncCreateLaunchPlan(::grpc::ClientContext* context, const ::flyteidl::admin::LaunchPlanCreateRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::LaunchPlanCreateResponse>>(PrepareAsyncCreateLaunchPlanRaw(context, request, cq)); } + // Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. virtual ::grpc::Status GetLaunchPlan(::grpc::ClientContext* context, const ::flyteidl::admin::ObjectGetRequest& request, ::flyteidl::admin::LaunchPlan* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::LaunchPlan>> AsyncGetLaunchPlan(::grpc::ClientContext* context, const ::flyteidl::admin::ObjectGetRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::LaunchPlan>>(AsyncGetLaunchPlanRaw(context, request, cq)); @@ -120,6 +130,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::LaunchPlan>> PrepareAsyncGetLaunchPlan(::grpc::ClientContext* context, const ::flyteidl::admin::ObjectGetRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::LaunchPlan>>(PrepareAsyncGetLaunchPlanRaw(context, request, cq)); } + // Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. virtual ::grpc::Status GetActiveLaunchPlan(::grpc::ClientContext* context, const ::flyteidl::admin::ActiveLaunchPlanRequest& request, ::flyteidl::admin::LaunchPlan* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::LaunchPlan>> AsyncGetActiveLaunchPlan(::grpc::ClientContext* context, const ::flyteidl::admin::ActiveLaunchPlanRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::LaunchPlan>>(AsyncGetActiveLaunchPlanRaw(context, request, cq)); @@ -127,6 +138,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::LaunchPlan>> PrepareAsyncGetActiveLaunchPlan(::grpc::ClientContext* context, const ::flyteidl::admin::ActiveLaunchPlanRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::LaunchPlan>>(PrepareAsyncGetActiveLaunchPlanRaw(context, request, cq)); } + // List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. virtual ::grpc::Status ListActiveLaunchPlans(::grpc::ClientContext* context, const ::flyteidl::admin::ActiveLaunchPlanListRequest& request, ::flyteidl::admin::LaunchPlanList* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::LaunchPlanList>> AsyncListActiveLaunchPlans(::grpc::ClientContext* context, const ::flyteidl::admin::ActiveLaunchPlanListRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::LaunchPlanList>>(AsyncListActiveLaunchPlansRaw(context, request, cq)); @@ -134,6 +146,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::LaunchPlanList>> PrepareAsyncListActiveLaunchPlans(::grpc::ClientContext* context, const ::flyteidl::admin::ActiveLaunchPlanListRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::LaunchPlanList>>(PrepareAsyncListActiveLaunchPlansRaw(context, request, cq)); } + // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. virtual ::grpc::Status ListLaunchPlanIds(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityIdentifierListRequest& request, ::flyteidl::admin::NamedEntityIdentifierList* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NamedEntityIdentifierList>> AsyncListLaunchPlanIds(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityIdentifierListRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NamedEntityIdentifierList>>(AsyncListLaunchPlanIdsRaw(context, request, cq)); @@ -141,6 +154,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NamedEntityIdentifierList>> PrepareAsyncListLaunchPlanIds(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityIdentifierListRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NamedEntityIdentifierList>>(PrepareAsyncListLaunchPlanIdsRaw(context, request, cq)); } + // Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. virtual ::grpc::Status ListLaunchPlans(::grpc::ClientContext* context, const ::flyteidl::admin::ResourceListRequest& request, ::flyteidl::admin::LaunchPlanList* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::LaunchPlanList>> AsyncListLaunchPlans(::grpc::ClientContext* context, const ::flyteidl::admin::ResourceListRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::LaunchPlanList>>(AsyncListLaunchPlansRaw(context, request, cq)); @@ -148,6 +162,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::LaunchPlanList>> PrepareAsyncListLaunchPlans(::grpc::ClientContext* context, const ::flyteidl::admin::ResourceListRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::LaunchPlanList>>(PrepareAsyncListLaunchPlansRaw(context, request, cq)); } + // Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. virtual ::grpc::Status UpdateLaunchPlan(::grpc::ClientContext* context, const ::flyteidl::admin::LaunchPlanUpdateRequest& request, ::flyteidl::admin::LaunchPlanUpdateResponse* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::LaunchPlanUpdateResponse>> AsyncUpdateLaunchPlan(::grpc::ClientContext* context, const ::flyteidl::admin::LaunchPlanUpdateRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::LaunchPlanUpdateResponse>>(AsyncUpdateLaunchPlanRaw(context, request, cq)); @@ -155,6 +170,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::LaunchPlanUpdateResponse>> PrepareAsyncUpdateLaunchPlan(::grpc::ClientContext* context, const ::flyteidl::admin::LaunchPlanUpdateRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::LaunchPlanUpdateResponse>>(PrepareAsyncUpdateLaunchPlanRaw(context, request, cq)); } + // Triggers the creation of a :ref:`ref_flyteidl.admin.Execution` virtual ::grpc::Status CreateExecution(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionCreateRequest& request, ::flyteidl::admin::ExecutionCreateResponse* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ExecutionCreateResponse>> AsyncCreateExecution(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionCreateRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ExecutionCreateResponse>>(AsyncCreateExecutionRaw(context, request, cq)); @@ -162,6 +178,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ExecutionCreateResponse>> PrepareAsyncCreateExecution(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionCreateRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ExecutionCreateResponse>>(PrepareAsyncCreateExecutionRaw(context, request, cq)); } + // Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` virtual ::grpc::Status RelaunchExecution(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionRelaunchRequest& request, ::flyteidl::admin::ExecutionCreateResponse* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ExecutionCreateResponse>> AsyncRelaunchExecution(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionRelaunchRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ExecutionCreateResponse>>(AsyncRelaunchExecutionRaw(context, request, cq)); @@ -169,6 +186,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ExecutionCreateResponse>> PrepareAsyncRelaunchExecution(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionRelaunchRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ExecutionCreateResponse>>(PrepareAsyncRelaunchExecutionRaw(context, request, cq)); } + // Fetches a :ref:`ref_flyteidl.admin.Execution`. virtual ::grpc::Status GetExecution(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetRequest& request, ::flyteidl::admin::Execution* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::Execution>> AsyncGetExecution(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::Execution>>(AsyncGetExecutionRaw(context, request, cq)); @@ -176,6 +194,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::Execution>> PrepareAsyncGetExecution(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::Execution>>(PrepareAsyncGetExecutionRaw(context, request, cq)); } + // Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. virtual ::grpc::Status GetExecutionData(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetDataRequest& request, ::flyteidl::admin::WorkflowExecutionGetDataResponse* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowExecutionGetDataResponse>> AsyncGetExecutionData(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetDataRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowExecutionGetDataResponse>>(AsyncGetExecutionDataRaw(context, request, cq)); @@ -183,6 +202,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowExecutionGetDataResponse>> PrepareAsyncGetExecutionData(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetDataRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowExecutionGetDataResponse>>(PrepareAsyncGetExecutionDataRaw(context, request, cq)); } + // Fetch a list of :ref:`ref_flyteidl.admin.Execution`. virtual ::grpc::Status ListExecutions(::grpc::ClientContext* context, const ::flyteidl::admin::ResourceListRequest& request, ::flyteidl::admin::ExecutionList* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ExecutionList>> AsyncListExecutions(::grpc::ClientContext* context, const ::flyteidl::admin::ResourceListRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ExecutionList>>(AsyncListExecutionsRaw(context, request, cq)); @@ -190,6 +210,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ExecutionList>> PrepareAsyncListExecutions(::grpc::ClientContext* context, const ::flyteidl::admin::ResourceListRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ExecutionList>>(PrepareAsyncListExecutionsRaw(context, request, cq)); } + // Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. virtual ::grpc::Status TerminateExecution(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionTerminateRequest& request, ::flyteidl::admin::ExecutionTerminateResponse* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ExecutionTerminateResponse>> AsyncTerminateExecution(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionTerminateRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ExecutionTerminateResponse>>(AsyncTerminateExecutionRaw(context, request, cq)); @@ -197,6 +218,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ExecutionTerminateResponse>> PrepareAsyncTerminateExecution(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionTerminateRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ExecutionTerminateResponse>>(PrepareAsyncTerminateExecutionRaw(context, request, cq)); } + // Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. virtual ::grpc::Status GetNodeExecution(::grpc::ClientContext* context, const ::flyteidl::admin::NodeExecutionGetRequest& request, ::flyteidl::admin::NodeExecution* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NodeExecution>> AsyncGetNodeExecution(::grpc::ClientContext* context, const ::flyteidl::admin::NodeExecutionGetRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NodeExecution>>(AsyncGetNodeExecutionRaw(context, request, cq)); @@ -204,6 +226,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NodeExecution>> PrepareAsyncGetNodeExecution(::grpc::ClientContext* context, const ::flyteidl::admin::NodeExecutionGetRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NodeExecution>>(PrepareAsyncGetNodeExecutionRaw(context, request, cq)); } + // Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. virtual ::grpc::Status ListNodeExecutions(::grpc::ClientContext* context, const ::flyteidl::admin::NodeExecutionListRequest& request, ::flyteidl::admin::NodeExecutionList* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NodeExecutionList>> AsyncListNodeExecutions(::grpc::ClientContext* context, const ::flyteidl::admin::NodeExecutionListRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NodeExecutionList>>(AsyncListNodeExecutionsRaw(context, request, cq)); @@ -211,6 +234,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NodeExecutionList>> PrepareAsyncListNodeExecutions(::grpc::ClientContext* context, const ::flyteidl::admin::NodeExecutionListRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NodeExecutionList>>(PrepareAsyncListNodeExecutionsRaw(context, request, cq)); } + // Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. virtual ::grpc::Status ListNodeExecutionsForTask(::grpc::ClientContext* context, const ::flyteidl::admin::NodeExecutionForTaskListRequest& request, ::flyteidl::admin::NodeExecutionList* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NodeExecutionList>> AsyncListNodeExecutionsForTask(::grpc::ClientContext* context, const ::flyteidl::admin::NodeExecutionForTaskListRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NodeExecutionList>>(AsyncListNodeExecutionsForTaskRaw(context, request, cq)); @@ -218,6 +242,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NodeExecutionList>> PrepareAsyncListNodeExecutionsForTask(::grpc::ClientContext* context, const ::flyteidl::admin::NodeExecutionForTaskListRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NodeExecutionList>>(PrepareAsyncListNodeExecutionsForTaskRaw(context, request, cq)); } + // Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. virtual ::grpc::Status GetNodeExecutionData(::grpc::ClientContext* context, const ::flyteidl::admin::NodeExecutionGetDataRequest& request, ::flyteidl::admin::NodeExecutionGetDataResponse* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NodeExecutionGetDataResponse>> AsyncGetNodeExecutionData(::grpc::ClientContext* context, const ::flyteidl::admin::NodeExecutionGetDataRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NodeExecutionGetDataResponse>>(AsyncGetNodeExecutionDataRaw(context, request, cq)); @@ -225,6 +250,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NodeExecutionGetDataResponse>> PrepareAsyncGetNodeExecutionData(::grpc::ClientContext* context, const ::flyteidl::admin::NodeExecutionGetDataRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NodeExecutionGetDataResponse>>(PrepareAsyncGetNodeExecutionDataRaw(context, request, cq)); } + // Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. virtual ::grpc::Status RegisterProject(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectRegisterRequest& request, ::flyteidl::admin::ProjectRegisterResponse* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectRegisterResponse>> AsyncRegisterProject(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectRegisterRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectRegisterResponse>>(AsyncRegisterProjectRaw(context, request, cq)); @@ -232,6 +258,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectRegisterResponse>> PrepareAsyncRegisterProject(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectRegisterRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectRegisterResponse>>(PrepareAsyncRegisterProjectRaw(context, request, cq)); } + // Updates an existing :ref:`ref_flyteidl.admin.Project` // flyteidl.admin.Project should be passed but the domains property should be empty; // it will be ignored in the handler as domains cannot be updated via this API. virtual ::grpc::Status UpdateProject(::grpc::ClientContext* context, const ::flyteidl::admin::Project& request, ::flyteidl::admin::ProjectUpdateResponse* response) = 0; @@ -241,6 +268,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectUpdateResponse>> PrepareAsyncUpdateProject(::grpc::ClientContext* context, const ::flyteidl::admin::Project& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectUpdateResponse>>(PrepareAsyncUpdateProjectRaw(context, request, cq)); } + // Fetches a list of :ref:`ref_flyteidl.admin.Project` virtual ::grpc::Status ListProjects(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectListRequest& request, ::flyteidl::admin::Projects* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::Projects>> AsyncListProjects(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectListRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::Projects>>(AsyncListProjectsRaw(context, request, cq)); @@ -248,6 +276,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::Projects>> PrepareAsyncListProjects(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectListRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::Projects>>(PrepareAsyncListProjectsRaw(context, request, cq)); } + // Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. virtual ::grpc::Status CreateWorkflowEvent(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionEventRequest& request, ::flyteidl::admin::WorkflowExecutionEventResponse* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowExecutionEventResponse>> AsyncCreateWorkflowEvent(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionEventRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowExecutionEventResponse>>(AsyncCreateWorkflowEventRaw(context, request, cq)); @@ -255,6 +284,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowExecutionEventResponse>> PrepareAsyncCreateWorkflowEvent(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionEventRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowExecutionEventResponse>>(PrepareAsyncCreateWorkflowEventRaw(context, request, cq)); } + // Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. virtual ::grpc::Status CreateNodeEvent(::grpc::ClientContext* context, const ::flyteidl::admin::NodeExecutionEventRequest& request, ::flyteidl::admin::NodeExecutionEventResponse* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NodeExecutionEventResponse>> AsyncCreateNodeEvent(::grpc::ClientContext* context, const ::flyteidl::admin::NodeExecutionEventRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NodeExecutionEventResponse>>(AsyncCreateNodeEventRaw(context, request, cq)); @@ -262,6 +292,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NodeExecutionEventResponse>> PrepareAsyncCreateNodeEvent(::grpc::ClientContext* context, const ::flyteidl::admin::NodeExecutionEventRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NodeExecutionEventResponse>>(PrepareAsyncCreateNodeEventRaw(context, request, cq)); } + // Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. virtual ::grpc::Status CreateTaskEvent(::grpc::ClientContext* context, const ::flyteidl::admin::TaskExecutionEventRequest& request, ::flyteidl::admin::TaskExecutionEventResponse* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::TaskExecutionEventResponse>> AsyncCreateTaskEvent(::grpc::ClientContext* context, const ::flyteidl::admin::TaskExecutionEventRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::TaskExecutionEventResponse>>(AsyncCreateTaskEventRaw(context, request, cq)); @@ -269,6 +300,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::TaskExecutionEventResponse>> PrepareAsyncCreateTaskEvent(::grpc::ClientContext* context, const ::flyteidl::admin::TaskExecutionEventRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::TaskExecutionEventResponse>>(PrepareAsyncCreateTaskEventRaw(context, request, cq)); } + // Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. virtual ::grpc::Status GetTaskExecution(::grpc::ClientContext* context, const ::flyteidl::admin::TaskExecutionGetRequest& request, ::flyteidl::admin::TaskExecution* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::TaskExecution>> AsyncGetTaskExecution(::grpc::ClientContext* context, const ::flyteidl::admin::TaskExecutionGetRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::TaskExecution>>(AsyncGetTaskExecutionRaw(context, request, cq)); @@ -276,6 +308,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::TaskExecution>> PrepareAsyncGetTaskExecution(::grpc::ClientContext* context, const ::flyteidl::admin::TaskExecutionGetRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::TaskExecution>>(PrepareAsyncGetTaskExecutionRaw(context, request, cq)); } + // Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. virtual ::grpc::Status ListTaskExecutions(::grpc::ClientContext* context, const ::flyteidl::admin::TaskExecutionListRequest& request, ::flyteidl::admin::TaskExecutionList* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::TaskExecutionList>> AsyncListTaskExecutions(::grpc::ClientContext* context, const ::flyteidl::admin::TaskExecutionListRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::TaskExecutionList>>(AsyncListTaskExecutionsRaw(context, request, cq)); @@ -283,6 +316,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::TaskExecutionList>> PrepareAsyncListTaskExecutions(::grpc::ClientContext* context, const ::flyteidl::admin::TaskExecutionListRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::TaskExecutionList>>(PrepareAsyncListTaskExecutionsRaw(context, request, cq)); } + // Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. virtual ::grpc::Status GetTaskExecutionData(::grpc::ClientContext* context, const ::flyteidl::admin::TaskExecutionGetDataRequest& request, ::flyteidl::admin::TaskExecutionGetDataResponse* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::TaskExecutionGetDataResponse>> AsyncGetTaskExecutionData(::grpc::ClientContext* context, const ::flyteidl::admin::TaskExecutionGetDataRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::TaskExecutionGetDataResponse>>(AsyncGetTaskExecutionDataRaw(context, request, cq)); @@ -290,6 +324,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::TaskExecutionGetDataResponse>> PrepareAsyncGetTaskExecutionData(::grpc::ClientContext* context, const ::flyteidl::admin::TaskExecutionGetDataRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::TaskExecutionGetDataResponse>>(PrepareAsyncGetTaskExecutionDataRaw(context, request, cq)); } + // Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. virtual ::grpc::Status UpdateProjectDomainAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectDomainAttributesUpdateRequest& request, ::flyteidl::admin::ProjectDomainAttributesUpdateResponse* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectDomainAttributesUpdateResponse>> AsyncUpdateProjectDomainAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectDomainAttributesUpdateRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectDomainAttributesUpdateResponse>>(AsyncUpdateProjectDomainAttributesRaw(context, request, cq)); @@ -297,6 +332,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectDomainAttributesUpdateResponse>> PrepareAsyncUpdateProjectDomainAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectDomainAttributesUpdateRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectDomainAttributesUpdateResponse>>(PrepareAsyncUpdateProjectDomainAttributesRaw(context, request, cq)); } + // Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. virtual ::grpc::Status GetProjectDomainAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectDomainAttributesGetRequest& request, ::flyteidl::admin::ProjectDomainAttributesGetResponse* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectDomainAttributesGetResponse>> AsyncGetProjectDomainAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectDomainAttributesGetRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectDomainAttributesGetResponse>>(AsyncGetProjectDomainAttributesRaw(context, request, cq)); @@ -304,6 +340,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectDomainAttributesGetResponse>> PrepareAsyncGetProjectDomainAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectDomainAttributesGetRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectDomainAttributesGetResponse>>(PrepareAsyncGetProjectDomainAttributesRaw(context, request, cq)); } + // Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. virtual ::grpc::Status DeleteProjectDomainAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectDomainAttributesDeleteRequest& request, ::flyteidl::admin::ProjectDomainAttributesDeleteResponse* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectDomainAttributesDeleteResponse>> AsyncDeleteProjectDomainAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectDomainAttributesDeleteRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectDomainAttributesDeleteResponse>>(AsyncDeleteProjectDomainAttributesRaw(context, request, cq)); @@ -311,6 +348,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectDomainAttributesDeleteResponse>> PrepareAsyncDeleteProjectDomainAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectDomainAttributesDeleteRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectDomainAttributesDeleteResponse>>(PrepareAsyncDeleteProjectDomainAttributesRaw(context, request, cq)); } + // Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. virtual ::grpc::Status UpdateWorkflowAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowAttributesUpdateRequest& request, ::flyteidl::admin::WorkflowAttributesUpdateResponse* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowAttributesUpdateResponse>> AsyncUpdateWorkflowAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowAttributesUpdateRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowAttributesUpdateResponse>>(AsyncUpdateWorkflowAttributesRaw(context, request, cq)); @@ -318,6 +356,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowAttributesUpdateResponse>> PrepareAsyncUpdateWorkflowAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowAttributesUpdateRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowAttributesUpdateResponse>>(PrepareAsyncUpdateWorkflowAttributesRaw(context, request, cq)); } + // Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. virtual ::grpc::Status GetWorkflowAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowAttributesGetRequest& request, ::flyteidl::admin::WorkflowAttributesGetResponse* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowAttributesGetResponse>> AsyncGetWorkflowAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowAttributesGetRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowAttributesGetResponse>>(AsyncGetWorkflowAttributesRaw(context, request, cq)); @@ -325,6 +364,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowAttributesGetResponse>> PrepareAsyncGetWorkflowAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowAttributesGetRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowAttributesGetResponse>>(PrepareAsyncGetWorkflowAttributesRaw(context, request, cq)); } + // Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. virtual ::grpc::Status DeleteWorkflowAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowAttributesDeleteRequest& request, ::flyteidl::admin::WorkflowAttributesDeleteResponse* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowAttributesDeleteResponse>> AsyncDeleteWorkflowAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowAttributesDeleteRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowAttributesDeleteResponse>>(AsyncDeleteWorkflowAttributesRaw(context, request, cq)); @@ -332,6 +372,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowAttributesDeleteResponse>> PrepareAsyncDeleteWorkflowAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowAttributesDeleteRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowAttributesDeleteResponse>>(PrepareAsyncDeleteWorkflowAttributesRaw(context, request, cq)); } + // Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. virtual ::grpc::Status ListMatchableAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ListMatchableAttributesRequest& request, ::flyteidl::admin::ListMatchableAttributesResponse* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ListMatchableAttributesResponse>> AsyncListMatchableAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ListMatchableAttributesRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ListMatchableAttributesResponse>>(AsyncListMatchableAttributesRaw(context, request, cq)); @@ -339,6 +380,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ListMatchableAttributesResponse>> PrepareAsyncListMatchableAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ListMatchableAttributesRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ListMatchableAttributesResponse>>(PrepareAsyncListMatchableAttributesRaw(context, request, cq)); } + // Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. virtual ::grpc::Status ListNamedEntities(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityListRequest& request, ::flyteidl::admin::NamedEntityList* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NamedEntityList>> AsyncListNamedEntities(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityListRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NamedEntityList>>(AsyncListNamedEntitiesRaw(context, request, cq)); @@ -346,6 +388,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NamedEntityList>> PrepareAsyncListNamedEntities(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityListRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NamedEntityList>>(PrepareAsyncListNamedEntitiesRaw(context, request, cq)); } + // Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. virtual ::grpc::Status GetNamedEntity(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityGetRequest& request, ::flyteidl::admin::NamedEntity* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NamedEntity>> AsyncGetNamedEntity(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityGetRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NamedEntity>>(AsyncGetNamedEntityRaw(context, request, cq)); @@ -353,6 +396,7 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NamedEntity>> PrepareAsyncGetNamedEntity(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityGetRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NamedEntity>>(PrepareAsyncGetNamedEntityRaw(context, request, cq)); } + // Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. virtual ::grpc::Status UpdateNamedEntity(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityUpdateRequest& request, ::flyteidl::admin::NamedEntityUpdateResponse* response) = 0; std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NamedEntityUpdateResponse>> AsyncUpdateNamedEntity(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityUpdateRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::NamedEntityUpdateResponse>>(AsyncUpdateNamedEntityRaw(context, request, cq)); @@ -370,180 +414,224 @@ class AdminService final { class experimental_async_interface { public: virtual ~experimental_async_interface() {} + // Create and upload a :ref:`ref_flyteidl.admin.Task` definition virtual void CreateTask(::grpc::ClientContext* context, const ::flyteidl::admin::TaskCreateRequest* request, ::flyteidl::admin::TaskCreateResponse* response, std::function) = 0; virtual void CreateTask(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::TaskCreateResponse* response, std::function) = 0; virtual void CreateTask(::grpc::ClientContext* context, const ::flyteidl::admin::TaskCreateRequest* request, ::flyteidl::admin::TaskCreateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void CreateTask(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::TaskCreateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Fetch a :ref:`ref_flyteidl.admin.Task` definition. virtual void GetTask(::grpc::ClientContext* context, const ::flyteidl::admin::ObjectGetRequest* request, ::flyteidl::admin::Task* response, std::function) = 0; virtual void GetTask(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::Task* response, std::function) = 0; virtual void GetTask(::grpc::ClientContext* context, const ::flyteidl::admin::ObjectGetRequest* request, ::flyteidl::admin::Task* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void GetTask(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::Task* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. virtual void ListTaskIds(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityIdentifierListRequest* request, ::flyteidl::admin::NamedEntityIdentifierList* response, std::function) = 0; virtual void ListTaskIds(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::NamedEntityIdentifierList* response, std::function) = 0; virtual void ListTaskIds(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityIdentifierListRequest* request, ::flyteidl::admin::NamedEntityIdentifierList* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void ListTaskIds(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::NamedEntityIdentifierList* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. virtual void ListTasks(::grpc::ClientContext* context, const ::flyteidl::admin::ResourceListRequest* request, ::flyteidl::admin::TaskList* response, std::function) = 0; virtual void ListTasks(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::TaskList* response, std::function) = 0; virtual void ListTasks(::grpc::ClientContext* context, const ::flyteidl::admin::ResourceListRequest* request, ::flyteidl::admin::TaskList* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void ListTasks(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::TaskList* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition virtual void CreateWorkflow(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowCreateRequest* request, ::flyteidl::admin::WorkflowCreateResponse* response, std::function) = 0; virtual void CreateWorkflow(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::WorkflowCreateResponse* response, std::function) = 0; virtual void CreateWorkflow(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowCreateRequest* request, ::flyteidl::admin::WorkflowCreateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void CreateWorkflow(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::WorkflowCreateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. virtual void GetWorkflow(::grpc::ClientContext* context, const ::flyteidl::admin::ObjectGetRequest* request, ::flyteidl::admin::Workflow* response, std::function) = 0; virtual void GetWorkflow(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::Workflow* response, std::function) = 0; virtual void GetWorkflow(::grpc::ClientContext* context, const ::flyteidl::admin::ObjectGetRequest* request, ::flyteidl::admin::Workflow* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void GetWorkflow(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::Workflow* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. virtual void ListWorkflowIds(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityIdentifierListRequest* request, ::flyteidl::admin::NamedEntityIdentifierList* response, std::function) = 0; virtual void ListWorkflowIds(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::NamedEntityIdentifierList* response, std::function) = 0; virtual void ListWorkflowIds(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityIdentifierListRequest* request, ::flyteidl::admin::NamedEntityIdentifierList* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void ListWorkflowIds(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::NamedEntityIdentifierList* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. virtual void ListWorkflows(::grpc::ClientContext* context, const ::flyteidl::admin::ResourceListRequest* request, ::flyteidl::admin::WorkflowList* response, std::function) = 0; virtual void ListWorkflows(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::WorkflowList* response, std::function) = 0; virtual void ListWorkflows(::grpc::ClientContext* context, const ::flyteidl::admin::ResourceListRequest* request, ::flyteidl::admin::WorkflowList* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void ListWorkflows(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::WorkflowList* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition virtual void CreateLaunchPlan(::grpc::ClientContext* context, const ::flyteidl::admin::LaunchPlanCreateRequest* request, ::flyteidl::admin::LaunchPlanCreateResponse* response, std::function) = 0; virtual void CreateLaunchPlan(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::LaunchPlanCreateResponse* response, std::function) = 0; virtual void CreateLaunchPlan(::grpc::ClientContext* context, const ::flyteidl::admin::LaunchPlanCreateRequest* request, ::flyteidl::admin::LaunchPlanCreateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void CreateLaunchPlan(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::LaunchPlanCreateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. virtual void GetLaunchPlan(::grpc::ClientContext* context, const ::flyteidl::admin::ObjectGetRequest* request, ::flyteidl::admin::LaunchPlan* response, std::function) = 0; virtual void GetLaunchPlan(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::LaunchPlan* response, std::function) = 0; virtual void GetLaunchPlan(::grpc::ClientContext* context, const ::flyteidl::admin::ObjectGetRequest* request, ::flyteidl::admin::LaunchPlan* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void GetLaunchPlan(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::LaunchPlan* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. virtual void GetActiveLaunchPlan(::grpc::ClientContext* context, const ::flyteidl::admin::ActiveLaunchPlanRequest* request, ::flyteidl::admin::LaunchPlan* response, std::function) = 0; virtual void GetActiveLaunchPlan(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::LaunchPlan* response, std::function) = 0; virtual void GetActiveLaunchPlan(::grpc::ClientContext* context, const ::flyteidl::admin::ActiveLaunchPlanRequest* request, ::flyteidl::admin::LaunchPlan* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void GetActiveLaunchPlan(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::LaunchPlan* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. virtual void ListActiveLaunchPlans(::grpc::ClientContext* context, const ::flyteidl::admin::ActiveLaunchPlanListRequest* request, ::flyteidl::admin::LaunchPlanList* response, std::function) = 0; virtual void ListActiveLaunchPlans(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::LaunchPlanList* response, std::function) = 0; virtual void ListActiveLaunchPlans(::grpc::ClientContext* context, const ::flyteidl::admin::ActiveLaunchPlanListRequest* request, ::flyteidl::admin::LaunchPlanList* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void ListActiveLaunchPlans(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::LaunchPlanList* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. virtual void ListLaunchPlanIds(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityIdentifierListRequest* request, ::flyteidl::admin::NamedEntityIdentifierList* response, std::function) = 0; virtual void ListLaunchPlanIds(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::NamedEntityIdentifierList* response, std::function) = 0; virtual void ListLaunchPlanIds(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityIdentifierListRequest* request, ::flyteidl::admin::NamedEntityIdentifierList* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void ListLaunchPlanIds(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::NamedEntityIdentifierList* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. virtual void ListLaunchPlans(::grpc::ClientContext* context, const ::flyteidl::admin::ResourceListRequest* request, ::flyteidl::admin::LaunchPlanList* response, std::function) = 0; virtual void ListLaunchPlans(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::LaunchPlanList* response, std::function) = 0; virtual void ListLaunchPlans(::grpc::ClientContext* context, const ::flyteidl::admin::ResourceListRequest* request, ::flyteidl::admin::LaunchPlanList* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void ListLaunchPlans(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::LaunchPlanList* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. virtual void UpdateLaunchPlan(::grpc::ClientContext* context, const ::flyteidl::admin::LaunchPlanUpdateRequest* request, ::flyteidl::admin::LaunchPlanUpdateResponse* response, std::function) = 0; virtual void UpdateLaunchPlan(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::LaunchPlanUpdateResponse* response, std::function) = 0; virtual void UpdateLaunchPlan(::grpc::ClientContext* context, const ::flyteidl::admin::LaunchPlanUpdateRequest* request, ::flyteidl::admin::LaunchPlanUpdateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void UpdateLaunchPlan(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::LaunchPlanUpdateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Triggers the creation of a :ref:`ref_flyteidl.admin.Execution` virtual void CreateExecution(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionCreateRequest* request, ::flyteidl::admin::ExecutionCreateResponse* response, std::function) = 0; virtual void CreateExecution(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ExecutionCreateResponse* response, std::function) = 0; virtual void CreateExecution(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionCreateRequest* request, ::flyteidl::admin::ExecutionCreateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void CreateExecution(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ExecutionCreateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` virtual void RelaunchExecution(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionRelaunchRequest* request, ::flyteidl::admin::ExecutionCreateResponse* response, std::function) = 0; virtual void RelaunchExecution(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ExecutionCreateResponse* response, std::function) = 0; virtual void RelaunchExecution(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionRelaunchRequest* request, ::flyteidl::admin::ExecutionCreateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void RelaunchExecution(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ExecutionCreateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Fetches a :ref:`ref_flyteidl.admin.Execution`. virtual void GetExecution(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetRequest* request, ::flyteidl::admin::Execution* response, std::function) = 0; virtual void GetExecution(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::Execution* response, std::function) = 0; virtual void GetExecution(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetRequest* request, ::flyteidl::admin::Execution* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void GetExecution(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::Execution* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. virtual void GetExecutionData(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetDataRequest* request, ::flyteidl::admin::WorkflowExecutionGetDataResponse* response, std::function) = 0; virtual void GetExecutionData(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::WorkflowExecutionGetDataResponse* response, std::function) = 0; virtual void GetExecutionData(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionGetDataRequest* request, ::flyteidl::admin::WorkflowExecutionGetDataResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void GetExecutionData(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::WorkflowExecutionGetDataResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Fetch a list of :ref:`ref_flyteidl.admin.Execution`. virtual void ListExecutions(::grpc::ClientContext* context, const ::flyteidl::admin::ResourceListRequest* request, ::flyteidl::admin::ExecutionList* response, std::function) = 0; virtual void ListExecutions(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ExecutionList* response, std::function) = 0; virtual void ListExecutions(::grpc::ClientContext* context, const ::flyteidl::admin::ResourceListRequest* request, ::flyteidl::admin::ExecutionList* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void ListExecutions(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ExecutionList* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. virtual void TerminateExecution(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionTerminateRequest* request, ::flyteidl::admin::ExecutionTerminateResponse* response, std::function) = 0; virtual void TerminateExecution(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ExecutionTerminateResponse* response, std::function) = 0; virtual void TerminateExecution(::grpc::ClientContext* context, const ::flyteidl::admin::ExecutionTerminateRequest* request, ::flyteidl::admin::ExecutionTerminateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void TerminateExecution(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ExecutionTerminateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. virtual void GetNodeExecution(::grpc::ClientContext* context, const ::flyteidl::admin::NodeExecutionGetRequest* request, ::flyteidl::admin::NodeExecution* response, std::function) = 0; virtual void GetNodeExecution(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::NodeExecution* response, std::function) = 0; virtual void GetNodeExecution(::grpc::ClientContext* context, const ::flyteidl::admin::NodeExecutionGetRequest* request, ::flyteidl::admin::NodeExecution* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void GetNodeExecution(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::NodeExecution* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. virtual void ListNodeExecutions(::grpc::ClientContext* context, const ::flyteidl::admin::NodeExecutionListRequest* request, ::flyteidl::admin::NodeExecutionList* response, std::function) = 0; virtual void ListNodeExecutions(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::NodeExecutionList* response, std::function) = 0; virtual void ListNodeExecutions(::grpc::ClientContext* context, const ::flyteidl::admin::NodeExecutionListRequest* request, ::flyteidl::admin::NodeExecutionList* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void ListNodeExecutions(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::NodeExecutionList* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. virtual void ListNodeExecutionsForTask(::grpc::ClientContext* context, const ::flyteidl::admin::NodeExecutionForTaskListRequest* request, ::flyteidl::admin::NodeExecutionList* response, std::function) = 0; virtual void ListNodeExecutionsForTask(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::NodeExecutionList* response, std::function) = 0; virtual void ListNodeExecutionsForTask(::grpc::ClientContext* context, const ::flyteidl::admin::NodeExecutionForTaskListRequest* request, ::flyteidl::admin::NodeExecutionList* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void ListNodeExecutionsForTask(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::NodeExecutionList* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. virtual void GetNodeExecutionData(::grpc::ClientContext* context, const ::flyteidl::admin::NodeExecutionGetDataRequest* request, ::flyteidl::admin::NodeExecutionGetDataResponse* response, std::function) = 0; virtual void GetNodeExecutionData(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::NodeExecutionGetDataResponse* response, std::function) = 0; virtual void GetNodeExecutionData(::grpc::ClientContext* context, const ::flyteidl::admin::NodeExecutionGetDataRequest* request, ::flyteidl::admin::NodeExecutionGetDataResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void GetNodeExecutionData(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::NodeExecutionGetDataResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. virtual void RegisterProject(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectRegisterRequest* request, ::flyteidl::admin::ProjectRegisterResponse* response, std::function) = 0; virtual void RegisterProject(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectRegisterResponse* response, std::function) = 0; virtual void RegisterProject(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectRegisterRequest* request, ::flyteidl::admin::ProjectRegisterResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void RegisterProject(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectRegisterResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Updates an existing :ref:`ref_flyteidl.admin.Project` // flyteidl.admin.Project should be passed but the domains property should be empty; // it will be ignored in the handler as domains cannot be updated via this API. virtual void UpdateProject(::grpc::ClientContext* context, const ::flyteidl::admin::Project* request, ::flyteidl::admin::ProjectUpdateResponse* response, std::function) = 0; virtual void UpdateProject(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectUpdateResponse* response, std::function) = 0; virtual void UpdateProject(::grpc::ClientContext* context, const ::flyteidl::admin::Project* request, ::flyteidl::admin::ProjectUpdateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void UpdateProject(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectUpdateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Fetches a list of :ref:`ref_flyteidl.admin.Project` virtual void ListProjects(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectListRequest* request, ::flyteidl::admin::Projects* response, std::function) = 0; virtual void ListProjects(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::Projects* response, std::function) = 0; virtual void ListProjects(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectListRequest* request, ::flyteidl::admin::Projects* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void ListProjects(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::Projects* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. virtual void CreateWorkflowEvent(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionEventRequest* request, ::flyteidl::admin::WorkflowExecutionEventResponse* response, std::function) = 0; virtual void CreateWorkflowEvent(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::WorkflowExecutionEventResponse* response, std::function) = 0; virtual void CreateWorkflowEvent(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowExecutionEventRequest* request, ::flyteidl::admin::WorkflowExecutionEventResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void CreateWorkflowEvent(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::WorkflowExecutionEventResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. virtual void CreateNodeEvent(::grpc::ClientContext* context, const ::flyteidl::admin::NodeExecutionEventRequest* request, ::flyteidl::admin::NodeExecutionEventResponse* response, std::function) = 0; virtual void CreateNodeEvent(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::NodeExecutionEventResponse* response, std::function) = 0; virtual void CreateNodeEvent(::grpc::ClientContext* context, const ::flyteidl::admin::NodeExecutionEventRequest* request, ::flyteidl::admin::NodeExecutionEventResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void CreateNodeEvent(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::NodeExecutionEventResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. virtual void CreateTaskEvent(::grpc::ClientContext* context, const ::flyteidl::admin::TaskExecutionEventRequest* request, ::flyteidl::admin::TaskExecutionEventResponse* response, std::function) = 0; virtual void CreateTaskEvent(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::TaskExecutionEventResponse* response, std::function) = 0; virtual void CreateTaskEvent(::grpc::ClientContext* context, const ::flyteidl::admin::TaskExecutionEventRequest* request, ::flyteidl::admin::TaskExecutionEventResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void CreateTaskEvent(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::TaskExecutionEventResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. virtual void GetTaskExecution(::grpc::ClientContext* context, const ::flyteidl::admin::TaskExecutionGetRequest* request, ::flyteidl::admin::TaskExecution* response, std::function) = 0; virtual void GetTaskExecution(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::TaskExecution* response, std::function) = 0; virtual void GetTaskExecution(::grpc::ClientContext* context, const ::flyteidl::admin::TaskExecutionGetRequest* request, ::flyteidl::admin::TaskExecution* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void GetTaskExecution(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::TaskExecution* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. virtual void ListTaskExecutions(::grpc::ClientContext* context, const ::flyteidl::admin::TaskExecutionListRequest* request, ::flyteidl::admin::TaskExecutionList* response, std::function) = 0; virtual void ListTaskExecutions(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::TaskExecutionList* response, std::function) = 0; virtual void ListTaskExecutions(::grpc::ClientContext* context, const ::flyteidl::admin::TaskExecutionListRequest* request, ::flyteidl::admin::TaskExecutionList* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void ListTaskExecutions(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::TaskExecutionList* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. virtual void GetTaskExecutionData(::grpc::ClientContext* context, const ::flyteidl::admin::TaskExecutionGetDataRequest* request, ::flyteidl::admin::TaskExecutionGetDataResponse* response, std::function) = 0; virtual void GetTaskExecutionData(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::TaskExecutionGetDataResponse* response, std::function) = 0; virtual void GetTaskExecutionData(::grpc::ClientContext* context, const ::flyteidl::admin::TaskExecutionGetDataRequest* request, ::flyteidl::admin::TaskExecutionGetDataResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void GetTaskExecutionData(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::TaskExecutionGetDataResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. virtual void UpdateProjectDomainAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectDomainAttributesUpdateRequest* request, ::flyteidl::admin::ProjectDomainAttributesUpdateResponse* response, std::function) = 0; virtual void UpdateProjectDomainAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectDomainAttributesUpdateResponse* response, std::function) = 0; virtual void UpdateProjectDomainAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectDomainAttributesUpdateRequest* request, ::flyteidl::admin::ProjectDomainAttributesUpdateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void UpdateProjectDomainAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectDomainAttributesUpdateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. virtual void GetProjectDomainAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectDomainAttributesGetRequest* request, ::flyteidl::admin::ProjectDomainAttributesGetResponse* response, std::function) = 0; virtual void GetProjectDomainAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectDomainAttributesGetResponse* response, std::function) = 0; virtual void GetProjectDomainAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectDomainAttributesGetRequest* request, ::flyteidl::admin::ProjectDomainAttributesGetResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void GetProjectDomainAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectDomainAttributesGetResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. virtual void DeleteProjectDomainAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectDomainAttributesDeleteRequest* request, ::flyteidl::admin::ProjectDomainAttributesDeleteResponse* response, std::function) = 0; virtual void DeleteProjectDomainAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectDomainAttributesDeleteResponse* response, std::function) = 0; virtual void DeleteProjectDomainAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectDomainAttributesDeleteRequest* request, ::flyteidl::admin::ProjectDomainAttributesDeleteResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void DeleteProjectDomainAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectDomainAttributesDeleteResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. virtual void UpdateWorkflowAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowAttributesUpdateRequest* request, ::flyteidl::admin::WorkflowAttributesUpdateResponse* response, std::function) = 0; virtual void UpdateWorkflowAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::WorkflowAttributesUpdateResponse* response, std::function) = 0; virtual void UpdateWorkflowAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowAttributesUpdateRequest* request, ::flyteidl::admin::WorkflowAttributesUpdateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void UpdateWorkflowAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::WorkflowAttributesUpdateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. virtual void GetWorkflowAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowAttributesGetRequest* request, ::flyteidl::admin::WorkflowAttributesGetResponse* response, std::function) = 0; virtual void GetWorkflowAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::WorkflowAttributesGetResponse* response, std::function) = 0; virtual void GetWorkflowAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowAttributesGetRequest* request, ::flyteidl::admin::WorkflowAttributesGetResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void GetWorkflowAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::WorkflowAttributesGetResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. virtual void DeleteWorkflowAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowAttributesDeleteRequest* request, ::flyteidl::admin::WorkflowAttributesDeleteResponse* response, std::function) = 0; virtual void DeleteWorkflowAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::WorkflowAttributesDeleteResponse* response, std::function) = 0; virtual void DeleteWorkflowAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowAttributesDeleteRequest* request, ::flyteidl::admin::WorkflowAttributesDeleteResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void DeleteWorkflowAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::WorkflowAttributesDeleteResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. virtual void ListMatchableAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ListMatchableAttributesRequest* request, ::flyteidl::admin::ListMatchableAttributesResponse* response, std::function) = 0; virtual void ListMatchableAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ListMatchableAttributesResponse* response, std::function) = 0; virtual void ListMatchableAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ListMatchableAttributesRequest* request, ::flyteidl::admin::ListMatchableAttributesResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void ListMatchableAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ListMatchableAttributesResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. virtual void ListNamedEntities(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityListRequest* request, ::flyteidl::admin::NamedEntityList* response, std::function) = 0; virtual void ListNamedEntities(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::NamedEntityList* response, std::function) = 0; virtual void ListNamedEntities(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityListRequest* request, ::flyteidl::admin::NamedEntityList* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void ListNamedEntities(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::NamedEntityList* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. virtual void GetNamedEntity(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityGetRequest* request, ::flyteidl::admin::NamedEntity* response, std::function) = 0; virtual void GetNamedEntity(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::NamedEntity* response, std::function) = 0; virtual void GetNamedEntity(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityGetRequest* request, ::flyteidl::admin::NamedEntity* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; virtual void GetNamedEntity(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::NamedEntity* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. virtual void UpdateNamedEntity(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityUpdateRequest* request, ::flyteidl::admin::NamedEntityUpdateResponse* response, std::function) = 0; virtual void UpdateNamedEntity(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::NamedEntityUpdateResponse* response, std::function) = 0; virtual void UpdateNamedEntity(::grpc::ClientContext* context, const ::flyteidl::admin::NamedEntityUpdateRequest* request, ::flyteidl::admin::NamedEntityUpdateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; @@ -1300,51 +1388,95 @@ class AdminService final { public: Service(); virtual ~Service(); + // Create and upload a :ref:`ref_flyteidl.admin.Task` definition virtual ::grpc::Status CreateTask(::grpc::ServerContext* context, const ::flyteidl::admin::TaskCreateRequest* request, ::flyteidl::admin::TaskCreateResponse* response); + // Fetch a :ref:`ref_flyteidl.admin.Task` definition. virtual ::grpc::Status GetTask(::grpc::ServerContext* context, const ::flyteidl::admin::ObjectGetRequest* request, ::flyteidl::admin::Task* response); + // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. virtual ::grpc::Status ListTaskIds(::grpc::ServerContext* context, const ::flyteidl::admin::NamedEntityIdentifierListRequest* request, ::flyteidl::admin::NamedEntityIdentifierList* response); + // Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. virtual ::grpc::Status ListTasks(::grpc::ServerContext* context, const ::flyteidl::admin::ResourceListRequest* request, ::flyteidl::admin::TaskList* response); + // Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition virtual ::grpc::Status CreateWorkflow(::grpc::ServerContext* context, const ::flyteidl::admin::WorkflowCreateRequest* request, ::flyteidl::admin::WorkflowCreateResponse* response); + // Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. virtual ::grpc::Status GetWorkflow(::grpc::ServerContext* context, const ::flyteidl::admin::ObjectGetRequest* request, ::flyteidl::admin::Workflow* response); + // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. virtual ::grpc::Status ListWorkflowIds(::grpc::ServerContext* context, const ::flyteidl::admin::NamedEntityIdentifierListRequest* request, ::flyteidl::admin::NamedEntityIdentifierList* response); + // Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. virtual ::grpc::Status ListWorkflows(::grpc::ServerContext* context, const ::flyteidl::admin::ResourceListRequest* request, ::flyteidl::admin::WorkflowList* response); + // Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition virtual ::grpc::Status CreateLaunchPlan(::grpc::ServerContext* context, const ::flyteidl::admin::LaunchPlanCreateRequest* request, ::flyteidl::admin::LaunchPlanCreateResponse* response); + // Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. virtual ::grpc::Status GetLaunchPlan(::grpc::ServerContext* context, const ::flyteidl::admin::ObjectGetRequest* request, ::flyteidl::admin::LaunchPlan* response); + // Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. virtual ::grpc::Status GetActiveLaunchPlan(::grpc::ServerContext* context, const ::flyteidl::admin::ActiveLaunchPlanRequest* request, ::flyteidl::admin::LaunchPlan* response); + // List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. virtual ::grpc::Status ListActiveLaunchPlans(::grpc::ServerContext* context, const ::flyteidl::admin::ActiveLaunchPlanListRequest* request, ::flyteidl::admin::LaunchPlanList* response); + // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. virtual ::grpc::Status ListLaunchPlanIds(::grpc::ServerContext* context, const ::flyteidl::admin::NamedEntityIdentifierListRequest* request, ::flyteidl::admin::NamedEntityIdentifierList* response); + // Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. virtual ::grpc::Status ListLaunchPlans(::grpc::ServerContext* context, const ::flyteidl::admin::ResourceListRequest* request, ::flyteidl::admin::LaunchPlanList* response); + // Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. virtual ::grpc::Status UpdateLaunchPlan(::grpc::ServerContext* context, const ::flyteidl::admin::LaunchPlanUpdateRequest* request, ::flyteidl::admin::LaunchPlanUpdateResponse* response); + // Triggers the creation of a :ref:`ref_flyteidl.admin.Execution` virtual ::grpc::Status CreateExecution(::grpc::ServerContext* context, const ::flyteidl::admin::ExecutionCreateRequest* request, ::flyteidl::admin::ExecutionCreateResponse* response); + // Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` virtual ::grpc::Status RelaunchExecution(::grpc::ServerContext* context, const ::flyteidl::admin::ExecutionRelaunchRequest* request, ::flyteidl::admin::ExecutionCreateResponse* response); + // Fetches a :ref:`ref_flyteidl.admin.Execution`. virtual ::grpc::Status GetExecution(::grpc::ServerContext* context, const ::flyteidl::admin::WorkflowExecutionGetRequest* request, ::flyteidl::admin::Execution* response); + // Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. virtual ::grpc::Status GetExecutionData(::grpc::ServerContext* context, const ::flyteidl::admin::WorkflowExecutionGetDataRequest* request, ::flyteidl::admin::WorkflowExecutionGetDataResponse* response); + // Fetch a list of :ref:`ref_flyteidl.admin.Execution`. virtual ::grpc::Status ListExecutions(::grpc::ServerContext* context, const ::flyteidl::admin::ResourceListRequest* request, ::flyteidl::admin::ExecutionList* response); + // Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. virtual ::grpc::Status TerminateExecution(::grpc::ServerContext* context, const ::flyteidl::admin::ExecutionTerminateRequest* request, ::flyteidl::admin::ExecutionTerminateResponse* response); + // Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. virtual ::grpc::Status GetNodeExecution(::grpc::ServerContext* context, const ::flyteidl::admin::NodeExecutionGetRequest* request, ::flyteidl::admin::NodeExecution* response); + // Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. virtual ::grpc::Status ListNodeExecutions(::grpc::ServerContext* context, const ::flyteidl::admin::NodeExecutionListRequest* request, ::flyteidl::admin::NodeExecutionList* response); + // Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. virtual ::grpc::Status ListNodeExecutionsForTask(::grpc::ServerContext* context, const ::flyteidl::admin::NodeExecutionForTaskListRequest* request, ::flyteidl::admin::NodeExecutionList* response); + // Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. virtual ::grpc::Status GetNodeExecutionData(::grpc::ServerContext* context, const ::flyteidl::admin::NodeExecutionGetDataRequest* request, ::flyteidl::admin::NodeExecutionGetDataResponse* response); + // Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. virtual ::grpc::Status RegisterProject(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectRegisterRequest* request, ::flyteidl::admin::ProjectRegisterResponse* response); + // Updates an existing :ref:`ref_flyteidl.admin.Project` // flyteidl.admin.Project should be passed but the domains property should be empty; // it will be ignored in the handler as domains cannot be updated via this API. virtual ::grpc::Status UpdateProject(::grpc::ServerContext* context, const ::flyteidl::admin::Project* request, ::flyteidl::admin::ProjectUpdateResponse* response); + // Fetches a list of :ref:`ref_flyteidl.admin.Project` virtual ::grpc::Status ListProjects(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectListRequest* request, ::flyteidl::admin::Projects* response); + // Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. virtual ::grpc::Status CreateWorkflowEvent(::grpc::ServerContext* context, const ::flyteidl::admin::WorkflowExecutionEventRequest* request, ::flyteidl::admin::WorkflowExecutionEventResponse* response); + // Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. virtual ::grpc::Status CreateNodeEvent(::grpc::ServerContext* context, const ::flyteidl::admin::NodeExecutionEventRequest* request, ::flyteidl::admin::NodeExecutionEventResponse* response); + // Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. virtual ::grpc::Status CreateTaskEvent(::grpc::ServerContext* context, const ::flyteidl::admin::TaskExecutionEventRequest* request, ::flyteidl::admin::TaskExecutionEventResponse* response); + // Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. virtual ::grpc::Status GetTaskExecution(::grpc::ServerContext* context, const ::flyteidl::admin::TaskExecutionGetRequest* request, ::flyteidl::admin::TaskExecution* response); + // Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. virtual ::grpc::Status ListTaskExecutions(::grpc::ServerContext* context, const ::flyteidl::admin::TaskExecutionListRequest* request, ::flyteidl::admin::TaskExecutionList* response); + // Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. virtual ::grpc::Status GetTaskExecutionData(::grpc::ServerContext* context, const ::flyteidl::admin::TaskExecutionGetDataRequest* request, ::flyteidl::admin::TaskExecutionGetDataResponse* response); + // Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. virtual ::grpc::Status UpdateProjectDomainAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectDomainAttributesUpdateRequest* request, ::flyteidl::admin::ProjectDomainAttributesUpdateResponse* response); + // Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. virtual ::grpc::Status GetProjectDomainAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectDomainAttributesGetRequest* request, ::flyteidl::admin::ProjectDomainAttributesGetResponse* response); + // Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. virtual ::grpc::Status DeleteProjectDomainAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectDomainAttributesDeleteRequest* request, ::flyteidl::admin::ProjectDomainAttributesDeleteResponse* response); + // Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. virtual ::grpc::Status UpdateWorkflowAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::WorkflowAttributesUpdateRequest* request, ::flyteidl::admin::WorkflowAttributesUpdateResponse* response); + // Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. virtual ::grpc::Status GetWorkflowAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::WorkflowAttributesGetRequest* request, ::flyteidl::admin::WorkflowAttributesGetResponse* response); + // Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. virtual ::grpc::Status DeleteWorkflowAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::WorkflowAttributesDeleteRequest* request, ::flyteidl::admin::WorkflowAttributesDeleteResponse* response); + // Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. virtual ::grpc::Status ListMatchableAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ListMatchableAttributesRequest* request, ::flyteidl::admin::ListMatchableAttributesResponse* response); + // Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. virtual ::grpc::Status ListNamedEntities(::grpc::ServerContext* context, const ::flyteidl::admin::NamedEntityListRequest* request, ::flyteidl::admin::NamedEntityList* response); + // Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. virtual ::grpc::Status GetNamedEntity(::grpc::ServerContext* context, const ::flyteidl::admin::NamedEntityGetRequest* request, ::flyteidl::admin::NamedEntity* response); + // Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. virtual ::grpc::Status UpdateNamedEntity(::grpc::ServerContext* context, const ::flyteidl::admin::NamedEntityUpdateRequest* request, ::flyteidl::admin::NamedEntityUpdateResponse* response); virtual ::grpc::Status GetVersion(::grpc::ServerContext* context, const ::flyteidl::admin::GetVersionRequest* request, ::flyteidl::admin::GetVersionResponse* response); }; diff --git a/flyteidl/gen/pb-go/flyteidl/admin/execution.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/execution.pb.go index 922ab89d13a..88fe9225e09 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/execution.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/execution.pb.go @@ -243,6 +243,7 @@ func (m *ExecutionCreateResponse) GetId() *core.WorkflowExecutionIdentifier { } // A message used to fetch a single workflow execution entity. +// See :ref:`ref_flyteidl.admin.Execution` for more details type WorkflowExecutionGetRequest struct { // Uniquely identifies an individual workflow execution. Id *core.WorkflowExecutionIdentifier `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` @@ -345,6 +346,7 @@ func (m *Execution) GetClosure() *ExecutionClosure { } // Used as a response for request to list executions. +// See :ref:`ref_flyteidl.admin.Execution` for more details type ExecutionList struct { Executions []*Execution `protobuf:"bytes,1,rep,name=executions,proto3" json:"executions,omitempty"` // In the case of multiple pages of results, the server-provided token can be used to fetch the next page @@ -1153,6 +1155,7 @@ func (m *ExecutionTerminateResponse) XXX_DiscardUnknown() { var xxx_messageInfo_ExecutionTerminateResponse proto.InternalMessageInfo // Request structure to fetch inputs, output and other data produced by an execution. +// By default this data is not returned inline in :ref:`ref_flyteidl.admin.WorkflowExecutionGetRequest` type WorkflowExecutionGetDataRequest struct { // The identifier of the execution for which to fetch inputs and outputs. Id *core.WorkflowExecutionIdentifier `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` diff --git a/flyteidl/gen/pb-go/flyteidl/admin/launch_plan.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/launch_plan.pb.go index 707ceb75298..f0b7dddbf31 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/launch_plan.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/launch_plan.pb.go @@ -198,6 +198,7 @@ func (m *LaunchPlan) GetClosure() *LaunchPlanClosure { } // Response object for list launch plan requests. +// See :ref:`ref_flyteidl.admin.LaunchPlan` for more details type LaunchPlanList struct { LaunchPlans []*LaunchPlan `protobuf:"bytes,1,rep,name=launch_plans,json=launchPlans,proto3" json:"launch_plans,omitempty"` // In the case of multiple pages of results, the server-provided token can be used to fetch the next page @@ -587,6 +588,7 @@ func (m *LaunchPlanMetadata) GetNotifications() []*Notification { } // Request to set the referenced launch plan state to the configured value. +// See :ref:`ref_flyteidl.admin.LaunchPlan` for more details type LaunchPlanUpdateRequest struct { // Identifier of launch plan for which to change state. // +required. @@ -671,6 +673,7 @@ func (m *LaunchPlanUpdateResponse) XXX_DiscardUnknown() { var xxx_messageInfo_LaunchPlanUpdateResponse proto.InternalMessageInfo // Represents a request struct for finding an active launch plan for a given NamedEntityIdentifier +// See :ref:`ref_flyteidl.admin.LaunchPlan` for more details type ActiveLaunchPlanRequest struct { // +required. Id *NamedEntityIdentifier `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` @@ -712,6 +715,7 @@ func (m *ActiveLaunchPlanRequest) GetId() *NamedEntityIdentifier { } // Represents a request structure to list active launch plans within a project/domain. +// See :ref:`ref_flyteidl.admin.LaunchPlan` for more details type ActiveLaunchPlanListRequest struct { // Name of the project that contains the identifiers. // +required. diff --git a/flyteidl/gen/pb-go/flyteidl/admin/matchable_resource.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/matchable_resource.pb.go index e9c223acab4..c6d3fd16625 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/matchable_resource.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/matchable_resource.pb.go @@ -704,6 +704,7 @@ func (m *MatchableAttributesConfiguration) GetLaunchPlan() string { } // Request all matching resource attributes for a resource type. +// See :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for more details type ListMatchableAttributesRequest struct { // +required ResourceType MatchableResource `protobuf:"varint,1,opt,name=resource_type,json=resourceType,proto3,enum=flyteidl.admin.MatchableResource" json:"resource_type,omitempty"` @@ -745,6 +746,7 @@ func (m *ListMatchableAttributesRequest) GetResourceType() MatchableResource { } // Response for a request for all matching resource attributes for a resource type. +// See :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for more details type ListMatchableAttributesResponse struct { Configurations []*MatchableAttributesConfiguration `protobuf:"bytes,1,rep,name=configurations,proto3" json:"configurations,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` diff --git a/flyteidl/gen/pb-go/flyteidl/admin/node_execution.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/node_execution.pb.go index 8c31c200b13..ac4218c10ed 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/node_execution.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/node_execution.pb.go @@ -24,6 +24,7 @@ var _ = math.Inf const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package // A message used to fetch a single node execution entity. +// See :ref:`ref_flyteidl.admin.NodeExecution` for more details type NodeExecutionGetRequest struct { // Uniquely identifies an individual node execution. // +required @@ -66,6 +67,7 @@ func (m *NodeExecutionGetRequest) GetId() *core.NodeExecutionIdentifier { } // Represents a request structure to retrieve a list of node execution entities. +// See :ref:`ref_flyteidl.admin.NodeExecution` for more details type NodeExecutionListRequest struct { // Indicates the workflow execution to filter by. // +required @@ -376,6 +378,7 @@ func (m *NodeExecutionMetaData) GetSpecNodeId() string { } // Request structure to retrieve a list of node execution entities. +// See :ref:`ref_flyteidl.admin.NodeExecution` for more details type NodeExecutionList struct { NodeExecutions []*NodeExecution `protobuf:"bytes,1,rep,name=node_executions,json=nodeExecutions,proto3" json:"node_executions,omitempty"` // In the case of multiple pages of results, the server-provided token can be used to fetch the next page @@ -741,6 +744,7 @@ func (m *DynamicWorkflowNodeMetadata) GetCompiledWorkflow() *core.CompiledWorkfl } // Request structure to fetch inputs and output for a node execution. +// By default, these are not returned in :ref:`ref_flyteidl.admin.NodeExecutionGetRequest` type NodeExecutionGetDataRequest struct { // The identifier of the node execution for which to fetch inputs and outputs. Id *core.NodeExecutionIdentifier `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` diff --git a/flyteidl/gen/pb-go/flyteidl/admin/project.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/project.pb.go index 6fc0308e33b..5de7fd77b7c 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/project.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/project.pb.go @@ -187,6 +187,8 @@ func (m *Project) GetState() Project_ProjectState { return Project_ACTIVE } +// Represents a list of projects. +// See :ref:`ref_flyteidl.admin.Project` for more details type Projects struct { Projects []*Project `protobuf:"bytes,1,rep,name=projects,proto3" json:"projects,omitempty"` // In the case of multiple pages of results, the server-provided token can be used to fetch the next page @@ -236,6 +238,8 @@ func (m *Projects) GetToken() string { return "" } +// Request to retrieve a list of projects matching specified filters. +// See :ref:`ref_flyteidl.admin.Project` for more details type ProjectListRequest struct { // Indicates the number of projects to be returned. // +required @@ -309,6 +313,8 @@ func (m *ProjectListRequest) GetSortBy() *Sort { return nil } +// Adds a new user-project within the Flyte deployment. +// See :ref:`ref_flyteidl.admin.Project` for more details type ProjectRegisterRequest struct { // +required Project *Project `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` @@ -349,6 +355,7 @@ func (m *ProjectRegisterRequest) GetProject() *Project { return nil } +// Purposefully empty, may be updated in the future. type ProjectRegisterResponse struct { XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -380,6 +387,7 @@ func (m *ProjectRegisterResponse) XXX_DiscardUnknown() { var xxx_messageInfo_ProjectRegisterResponse proto.InternalMessageInfo +// Purposefully empty, may be updated in the future. type ProjectUpdateResponse struct { XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` diff --git a/flyteidl/gen/pb-go/flyteidl/admin/project_domain_attributes.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/project_domain_attributes.pb.go index 5e99faa2799..3fc2bdc3f3d 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/project_domain_attributes.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/project_domain_attributes.pb.go @@ -21,7 +21,7 @@ var _ = math.Inf const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package // Defines a set of custom matching attributes which defines resource defaults for a project and domain. -// For more info on matchable attributes, see - :ref:`ref_flyteidl/admin/matchable_resource.proto`. +// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` type ProjectDomainAttributes struct { // Unique project id for which this set of attributes will be applied. Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` @@ -80,6 +80,7 @@ func (m *ProjectDomainAttributes) GetMatchingAttributes() *MatchingAttributes { } // Sets custom attributes for a project-domain combination. +// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` type ProjectDomainAttributesUpdateRequest struct { // +required Attributes *ProjectDomainAttributes `protobuf:"bytes,1,opt,name=attributes,proto3" json:"attributes,omitempty"` @@ -153,6 +154,7 @@ func (m *ProjectDomainAttributesUpdateResponse) XXX_DiscardUnknown() { var xxx_messageInfo_ProjectDomainAttributesUpdateResponse proto.InternalMessageInfo // Request to get an individual project domain attribute override. +// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` type ProjectDomainAttributesGetRequest struct { // Unique project id which this set of attributes references. // +required @@ -215,6 +217,7 @@ func (m *ProjectDomainAttributesGetRequest) GetResourceType() MatchableResource } // Response to get an individual project domain attribute override. +// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` type ProjectDomainAttributesGetResponse struct { Attributes *ProjectDomainAttributes `protobuf:"bytes,1,opt,name=attributes,proto3" json:"attributes,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -255,6 +258,7 @@ func (m *ProjectDomainAttributesGetResponse) GetAttributes() *ProjectDomainAttri } // Request to delete a set matchable project domain attribute override. +// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` type ProjectDomainAttributesDeleteRequest struct { // Unique project id which this set of attributes references. // +required diff --git a/flyteidl/gen/pb-go/flyteidl/admin/task.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/task.pb.go index 2a9f6bb66a3..2bf2aaf948a 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/task.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/task.pb.go @@ -23,6 +23,7 @@ var _ = math.Inf const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package // Represents a request structure to create a revision of a task. +// See :ref:`ref_flyteidl.admin.Task` for more details type TaskCreateRequest struct { // id represents the unique identifier of the task. // +required @@ -159,6 +160,7 @@ func (m *Task) GetClosure() *TaskClosure { } // Represents a list of tasks returned from the admin. +// See :ref:`ref_flyteidl.admin.Task` for more details type TaskList struct { // A list of tasks returned based on the request. Tasks []*Task `protobuf:"bytes,1,rep,name=tasks,proto3" json:"tasks,omitempty"` diff --git a/flyteidl/gen/pb-go/flyteidl/admin/task_execution.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/task_execution.pb.go index a2c5faaf536..2ed789e1ba6 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/task_execution.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/task_execution.pb.go @@ -26,6 +26,7 @@ var _ = math.Inf const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package // A message used to fetch a single task execution entity. +// See :ref:`ref_flyteidl.admin.TaskExecution` for more details type TaskExecutionGetRequest struct { // Unique identifier for the task execution. // +required @@ -68,6 +69,7 @@ func (m *TaskExecutionGetRequest) GetId() *core.TaskExecutionIdentifier { } // Represents a request structure to retrieve a list of task execution entities yielded by a specific node execution. +// See :ref:`ref_flyteidl.admin.TaskExecution` for more details type TaskExecutionListRequest struct { // Indicates the node execution to filter by. // +required @@ -222,6 +224,7 @@ func (m *TaskExecution) GetIsParent() bool { } // Response structure for a query to list of task execution entities. +// See :ref:`ref_flyteidl.admin.TaskExecution` for more details type TaskExecutionList struct { TaskExecutions []*TaskExecution `protobuf:"bytes,1,rep,name=task_executions,json=taskExecutions,proto3" json:"task_executions,omitempty"` // In the case of multiple pages of results, the server-provided token can be used to fetch the next page @@ -443,6 +446,7 @@ func (*TaskExecutionClosure) XXX_OneofWrappers() []interface{} { } // Request structure to fetch inputs and output for a task execution. +// By default this data is not returned inline in :ref:`ref_flyteidl.admin.TaskExecutionGetRequest` type TaskExecutionGetDataRequest struct { // The identifier of the task execution for which to fetch inputs and outputs. // +required diff --git a/flyteidl/gen/pb-go/flyteidl/admin/workflow.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/workflow.pb.go index abddf7e910d..c2f723d921f 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/workflow.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/workflow.pb.go @@ -23,6 +23,7 @@ var _ = math.Inf const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package // Represents a request structure to create a revision of a workflow. +// See :ref:`ref_flyteidl.admin.Workflow` for more details type WorkflowCreateRequest struct { // id represents the unique identifier of the workflow. // +required @@ -158,6 +159,7 @@ func (m *Workflow) GetClosure() *WorkflowClosure { } // Represents a list of workflows returned from the admin. +// See :ref:`ref_flyteidl.admin.Workflow` for more details type WorkflowList struct { // A list of workflows returned based on the request. Workflows []*Workflow `protobuf:"bytes,1,rep,name=workflows,proto3" json:"workflows,omitempty"` diff --git a/flyteidl/gen/pb-go/flyteidl/admin/workflow_attributes.pb.go b/flyteidl/gen/pb-go/flyteidl/admin/workflow_attributes.pb.go index d5531fe401a..3d5ef8bd62a 100644 --- a/flyteidl/gen/pb-go/flyteidl/admin/workflow_attributes.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/admin/workflow_attributes.pb.go @@ -21,7 +21,7 @@ var _ = math.Inf const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package // Defines a set of custom matching attributes which defines resource defaults for a project, domain and workflow. -// For more info on matchable attributes, see - :ref:`ref_flyteidl/admin/matchable_resource.proto`. +// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` type WorkflowAttributes struct { // Unique project id for which this set of attributes will be applied. Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` @@ -89,6 +89,7 @@ func (m *WorkflowAttributes) GetMatchingAttributes() *MatchingAttributes { } // Sets custom attributes for a project, domain and workflow combination. +// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` type WorkflowAttributesUpdateRequest struct { Attributes *WorkflowAttributes `protobuf:"bytes,1,opt,name=attributes,proto3" json:"attributes,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -161,6 +162,7 @@ func (m *WorkflowAttributesUpdateResponse) XXX_DiscardUnknown() { var xxx_messageInfo_WorkflowAttributesUpdateResponse proto.InternalMessageInfo // Request to get an individual workflow attribute override. +// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` type WorkflowAttributesGetRequest struct { // Unique project id which this set of attributes references. // +required @@ -273,6 +275,7 @@ func (m *WorkflowAttributesGetResponse) GetAttributes() *WorkflowAttributes { } // Request to delete a set matchable workflow attribute override. +// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` type WorkflowAttributesDeleteRequest struct { // Unique project id which this set of attributes references. // +required diff --git a/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go b/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go index ffeb7541d20..ef99ff21155 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go +++ b/flyteidl/gen/pb-go/flyteidl/service/admin.pb.go @@ -229,51 +229,95 @@ const _ = grpc.SupportPackageIsVersion4 // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type AdminServiceClient interface { + // Create and upload a :ref:`ref_flyteidl.admin.Task` definition CreateTask(ctx context.Context, in *admin.TaskCreateRequest, opts ...grpc.CallOption) (*admin.TaskCreateResponse, error) + // Fetch a :ref:`ref_flyteidl.admin.Task` definition. GetTask(ctx context.Context, in *admin.ObjectGetRequest, opts ...grpc.CallOption) (*admin.Task, error) + // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. ListTaskIds(ctx context.Context, in *admin.NamedEntityIdentifierListRequest, opts ...grpc.CallOption) (*admin.NamedEntityIdentifierList, error) + // Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. ListTasks(ctx context.Context, in *admin.ResourceListRequest, opts ...grpc.CallOption) (*admin.TaskList, error) + // Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition CreateWorkflow(ctx context.Context, in *admin.WorkflowCreateRequest, opts ...grpc.CallOption) (*admin.WorkflowCreateResponse, error) + // Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. GetWorkflow(ctx context.Context, in *admin.ObjectGetRequest, opts ...grpc.CallOption) (*admin.Workflow, error) + // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. ListWorkflowIds(ctx context.Context, in *admin.NamedEntityIdentifierListRequest, opts ...grpc.CallOption) (*admin.NamedEntityIdentifierList, error) + // Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. ListWorkflows(ctx context.Context, in *admin.ResourceListRequest, opts ...grpc.CallOption) (*admin.WorkflowList, error) + // Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition CreateLaunchPlan(ctx context.Context, in *admin.LaunchPlanCreateRequest, opts ...grpc.CallOption) (*admin.LaunchPlanCreateResponse, error) + // Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. GetLaunchPlan(ctx context.Context, in *admin.ObjectGetRequest, opts ...grpc.CallOption) (*admin.LaunchPlan, error) + // Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. GetActiveLaunchPlan(ctx context.Context, in *admin.ActiveLaunchPlanRequest, opts ...grpc.CallOption) (*admin.LaunchPlan, error) + // List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. ListActiveLaunchPlans(ctx context.Context, in *admin.ActiveLaunchPlanListRequest, opts ...grpc.CallOption) (*admin.LaunchPlanList, error) + // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. ListLaunchPlanIds(ctx context.Context, in *admin.NamedEntityIdentifierListRequest, opts ...grpc.CallOption) (*admin.NamedEntityIdentifierList, error) + // Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. ListLaunchPlans(ctx context.Context, in *admin.ResourceListRequest, opts ...grpc.CallOption) (*admin.LaunchPlanList, error) + // Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. UpdateLaunchPlan(ctx context.Context, in *admin.LaunchPlanUpdateRequest, opts ...grpc.CallOption) (*admin.LaunchPlanUpdateResponse, error) + // Triggers the creation of a :ref:`ref_flyteidl.admin.Execution` CreateExecution(ctx context.Context, in *admin.ExecutionCreateRequest, opts ...grpc.CallOption) (*admin.ExecutionCreateResponse, error) + // Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` RelaunchExecution(ctx context.Context, in *admin.ExecutionRelaunchRequest, opts ...grpc.CallOption) (*admin.ExecutionCreateResponse, error) + // Fetches a :ref:`ref_flyteidl.admin.Execution`. GetExecution(ctx context.Context, in *admin.WorkflowExecutionGetRequest, opts ...grpc.CallOption) (*admin.Execution, error) + // Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. GetExecutionData(ctx context.Context, in *admin.WorkflowExecutionGetDataRequest, opts ...grpc.CallOption) (*admin.WorkflowExecutionGetDataResponse, error) + // Fetch a list of :ref:`ref_flyteidl.admin.Execution`. ListExecutions(ctx context.Context, in *admin.ResourceListRequest, opts ...grpc.CallOption) (*admin.ExecutionList, error) + // Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. TerminateExecution(ctx context.Context, in *admin.ExecutionTerminateRequest, opts ...grpc.CallOption) (*admin.ExecutionTerminateResponse, error) + // Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. GetNodeExecution(ctx context.Context, in *admin.NodeExecutionGetRequest, opts ...grpc.CallOption) (*admin.NodeExecution, error) + // Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. ListNodeExecutions(ctx context.Context, in *admin.NodeExecutionListRequest, opts ...grpc.CallOption) (*admin.NodeExecutionList, error) + // Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. ListNodeExecutionsForTask(ctx context.Context, in *admin.NodeExecutionForTaskListRequest, opts ...grpc.CallOption) (*admin.NodeExecutionList, error) + // Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. GetNodeExecutionData(ctx context.Context, in *admin.NodeExecutionGetDataRequest, opts ...grpc.CallOption) (*admin.NodeExecutionGetDataResponse, error) + // Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. RegisterProject(ctx context.Context, in *admin.ProjectRegisterRequest, opts ...grpc.CallOption) (*admin.ProjectRegisterResponse, error) + // Updates an existing :ref:`ref_flyteidl.admin.Project` // flyteidl.admin.Project should be passed but the domains property should be empty; // it will be ignored in the handler as domains cannot be updated via this API. UpdateProject(ctx context.Context, in *admin.Project, opts ...grpc.CallOption) (*admin.ProjectUpdateResponse, error) + // Fetches a list of :ref:`ref_flyteidl.admin.Project` ListProjects(ctx context.Context, in *admin.ProjectListRequest, opts ...grpc.CallOption) (*admin.Projects, error) + // Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. CreateWorkflowEvent(ctx context.Context, in *admin.WorkflowExecutionEventRequest, opts ...grpc.CallOption) (*admin.WorkflowExecutionEventResponse, error) + // Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. CreateNodeEvent(ctx context.Context, in *admin.NodeExecutionEventRequest, opts ...grpc.CallOption) (*admin.NodeExecutionEventResponse, error) + // Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. CreateTaskEvent(ctx context.Context, in *admin.TaskExecutionEventRequest, opts ...grpc.CallOption) (*admin.TaskExecutionEventResponse, error) + // Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. GetTaskExecution(ctx context.Context, in *admin.TaskExecutionGetRequest, opts ...grpc.CallOption) (*admin.TaskExecution, error) + // Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. ListTaskExecutions(ctx context.Context, in *admin.TaskExecutionListRequest, opts ...grpc.CallOption) (*admin.TaskExecutionList, error) + // Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. GetTaskExecutionData(ctx context.Context, in *admin.TaskExecutionGetDataRequest, opts ...grpc.CallOption) (*admin.TaskExecutionGetDataResponse, error) + // Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. UpdateProjectDomainAttributes(ctx context.Context, in *admin.ProjectDomainAttributesUpdateRequest, opts ...grpc.CallOption) (*admin.ProjectDomainAttributesUpdateResponse, error) + // Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. GetProjectDomainAttributes(ctx context.Context, in *admin.ProjectDomainAttributesGetRequest, opts ...grpc.CallOption) (*admin.ProjectDomainAttributesGetResponse, error) + // Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. DeleteProjectDomainAttributes(ctx context.Context, in *admin.ProjectDomainAttributesDeleteRequest, opts ...grpc.CallOption) (*admin.ProjectDomainAttributesDeleteResponse, error) + // Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. UpdateWorkflowAttributes(ctx context.Context, in *admin.WorkflowAttributesUpdateRequest, opts ...grpc.CallOption) (*admin.WorkflowAttributesUpdateResponse, error) + // Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. GetWorkflowAttributes(ctx context.Context, in *admin.WorkflowAttributesGetRequest, opts ...grpc.CallOption) (*admin.WorkflowAttributesGetResponse, error) + // Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. DeleteWorkflowAttributes(ctx context.Context, in *admin.WorkflowAttributesDeleteRequest, opts ...grpc.CallOption) (*admin.WorkflowAttributesDeleteResponse, error) + // Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. ListMatchableAttributes(ctx context.Context, in *admin.ListMatchableAttributesRequest, opts ...grpc.CallOption) (*admin.ListMatchableAttributesResponse, error) + // Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. ListNamedEntities(ctx context.Context, in *admin.NamedEntityListRequest, opts ...grpc.CallOption) (*admin.NamedEntityList, error) + // Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. GetNamedEntity(ctx context.Context, in *admin.NamedEntityGetRequest, opts ...grpc.CallOption) (*admin.NamedEntity, error) + // Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. UpdateNamedEntity(ctx context.Context, in *admin.NamedEntityUpdateRequest, opts ...grpc.CallOption) (*admin.NamedEntityUpdateResponse, error) GetVersion(ctx context.Context, in *admin.GetVersionRequest, opts ...grpc.CallOption) (*admin.GetVersionResponse, error) } @@ -693,51 +737,95 @@ func (c *adminServiceClient) GetVersion(ctx context.Context, in *admin.GetVersio // AdminServiceServer is the server API for AdminService service. type AdminServiceServer interface { + // Create and upload a :ref:`ref_flyteidl.admin.Task` definition CreateTask(context.Context, *admin.TaskCreateRequest) (*admin.TaskCreateResponse, error) + // Fetch a :ref:`ref_flyteidl.admin.Task` definition. GetTask(context.Context, *admin.ObjectGetRequest) (*admin.Task, error) + // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. ListTaskIds(context.Context, *admin.NamedEntityIdentifierListRequest) (*admin.NamedEntityIdentifierList, error) + // Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. ListTasks(context.Context, *admin.ResourceListRequest) (*admin.TaskList, error) + // Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition CreateWorkflow(context.Context, *admin.WorkflowCreateRequest) (*admin.WorkflowCreateResponse, error) + // Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. GetWorkflow(context.Context, *admin.ObjectGetRequest) (*admin.Workflow, error) + // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. ListWorkflowIds(context.Context, *admin.NamedEntityIdentifierListRequest) (*admin.NamedEntityIdentifierList, error) + // Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. ListWorkflows(context.Context, *admin.ResourceListRequest) (*admin.WorkflowList, error) + // Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition CreateLaunchPlan(context.Context, *admin.LaunchPlanCreateRequest) (*admin.LaunchPlanCreateResponse, error) + // Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. GetLaunchPlan(context.Context, *admin.ObjectGetRequest) (*admin.LaunchPlan, error) + // Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. GetActiveLaunchPlan(context.Context, *admin.ActiveLaunchPlanRequest) (*admin.LaunchPlan, error) + // List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. ListActiveLaunchPlans(context.Context, *admin.ActiveLaunchPlanListRequest) (*admin.LaunchPlanList, error) + // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. ListLaunchPlanIds(context.Context, *admin.NamedEntityIdentifierListRequest) (*admin.NamedEntityIdentifierList, error) + // Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. ListLaunchPlans(context.Context, *admin.ResourceListRequest) (*admin.LaunchPlanList, error) + // Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. UpdateLaunchPlan(context.Context, *admin.LaunchPlanUpdateRequest) (*admin.LaunchPlanUpdateResponse, error) + // Triggers the creation of a :ref:`ref_flyteidl.admin.Execution` CreateExecution(context.Context, *admin.ExecutionCreateRequest) (*admin.ExecutionCreateResponse, error) + // Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` RelaunchExecution(context.Context, *admin.ExecutionRelaunchRequest) (*admin.ExecutionCreateResponse, error) + // Fetches a :ref:`ref_flyteidl.admin.Execution`. GetExecution(context.Context, *admin.WorkflowExecutionGetRequest) (*admin.Execution, error) + // Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. GetExecutionData(context.Context, *admin.WorkflowExecutionGetDataRequest) (*admin.WorkflowExecutionGetDataResponse, error) + // Fetch a list of :ref:`ref_flyteidl.admin.Execution`. ListExecutions(context.Context, *admin.ResourceListRequest) (*admin.ExecutionList, error) + // Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. TerminateExecution(context.Context, *admin.ExecutionTerminateRequest) (*admin.ExecutionTerminateResponse, error) + // Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. GetNodeExecution(context.Context, *admin.NodeExecutionGetRequest) (*admin.NodeExecution, error) + // Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. ListNodeExecutions(context.Context, *admin.NodeExecutionListRequest) (*admin.NodeExecutionList, error) + // Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. ListNodeExecutionsForTask(context.Context, *admin.NodeExecutionForTaskListRequest) (*admin.NodeExecutionList, error) + // Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. GetNodeExecutionData(context.Context, *admin.NodeExecutionGetDataRequest) (*admin.NodeExecutionGetDataResponse, error) + // Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. RegisterProject(context.Context, *admin.ProjectRegisterRequest) (*admin.ProjectRegisterResponse, error) + // Updates an existing :ref:`ref_flyteidl.admin.Project` // flyteidl.admin.Project should be passed but the domains property should be empty; // it will be ignored in the handler as domains cannot be updated via this API. UpdateProject(context.Context, *admin.Project) (*admin.ProjectUpdateResponse, error) + // Fetches a list of :ref:`ref_flyteidl.admin.Project` ListProjects(context.Context, *admin.ProjectListRequest) (*admin.Projects, error) + // Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. CreateWorkflowEvent(context.Context, *admin.WorkflowExecutionEventRequest) (*admin.WorkflowExecutionEventResponse, error) + // Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. CreateNodeEvent(context.Context, *admin.NodeExecutionEventRequest) (*admin.NodeExecutionEventResponse, error) + // Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. CreateTaskEvent(context.Context, *admin.TaskExecutionEventRequest) (*admin.TaskExecutionEventResponse, error) + // Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. GetTaskExecution(context.Context, *admin.TaskExecutionGetRequest) (*admin.TaskExecution, error) + // Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. ListTaskExecutions(context.Context, *admin.TaskExecutionListRequest) (*admin.TaskExecutionList, error) + // Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. GetTaskExecutionData(context.Context, *admin.TaskExecutionGetDataRequest) (*admin.TaskExecutionGetDataResponse, error) + // Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. UpdateProjectDomainAttributes(context.Context, *admin.ProjectDomainAttributesUpdateRequest) (*admin.ProjectDomainAttributesUpdateResponse, error) + // Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. GetProjectDomainAttributes(context.Context, *admin.ProjectDomainAttributesGetRequest) (*admin.ProjectDomainAttributesGetResponse, error) + // Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. DeleteProjectDomainAttributes(context.Context, *admin.ProjectDomainAttributesDeleteRequest) (*admin.ProjectDomainAttributesDeleteResponse, error) + // Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. UpdateWorkflowAttributes(context.Context, *admin.WorkflowAttributesUpdateRequest) (*admin.WorkflowAttributesUpdateResponse, error) + // Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. GetWorkflowAttributes(context.Context, *admin.WorkflowAttributesGetRequest) (*admin.WorkflowAttributesGetResponse, error) + // Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. DeleteWorkflowAttributes(context.Context, *admin.WorkflowAttributesDeleteRequest) (*admin.WorkflowAttributesDeleteResponse, error) + // Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. ListMatchableAttributes(context.Context, *admin.ListMatchableAttributesRequest) (*admin.ListMatchableAttributesResponse, error) + // Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. ListNamedEntities(context.Context, *admin.NamedEntityListRequest) (*admin.NamedEntityList, error) + // Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. GetNamedEntity(context.Context, *admin.NamedEntityGetRequest) (*admin.NamedEntity, error) + // Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. UpdateNamedEntity(context.Context, *admin.NamedEntityUpdateRequest) (*admin.NamedEntityUpdateResponse, error) GetVersion(context.Context, *admin.GetVersionRequest) (*admin.GetVersionResponse, error) } diff --git a/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json b/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json index 0525c048d97..288cf344936 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json +++ b/flyteidl/gen/pb-go/flyteidl/service/admin.swagger.json @@ -17,6 +17,7 @@ "paths": { "/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}": { "get": { + "summary": "Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`.", "description": "Retrieve the active launch plan version specified by input request filters.", "operationId": "GetActiveLaunchPlan", "responses": { @@ -57,6 +58,7 @@ }, "/api/v1/active_launch_plans/{project}/{domain}": { "get": { + "summary": "List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`.", "description": "Fetch the active launch plan versions specified by input request filters.", "operationId": "ListActiveLaunchPlans", "responses": { @@ -124,6 +126,7 @@ }, "/api/v1/children/task_executions/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt}": { "get": { + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`.", "description": "Fetch child node executions launched by the specified task execution.", "operationId": "ListNodeExecutionsForTask", "responses": { @@ -261,6 +264,7 @@ }, "/api/v1/data/executions/{id.project}/{id.domain}/{id.name}": { "get": { + "summary": "Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`.", "description": "Retrieve input and output data from an existing workflow execution.", "operationId": "GetExecutionData", "responses": { @@ -301,6 +305,7 @@ }, "/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}": { "get": { + "summary": "Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`.", "description": "Retrieve input and output data from an existing node execution.", "operationId": "GetNodeExecutionData", "responses": { @@ -347,6 +352,7 @@ }, "/api/v1/data/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}": { "get": { + "summary": "Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`.", "description": "Retrieve input and output data from an existing task execution.", "operationId": "GetTaskExecutionData", "responses": { @@ -443,6 +449,7 @@ }, "/api/v1/events/nodes": { "post": { + "summary": "Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred.", "description": "Create a node execution event recording a phase transition.", "operationId": "CreateNodeEvent", "responses": { @@ -470,6 +477,7 @@ }, "/api/v1/events/tasks": { "post": { + "summary": "Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred.", "description": "Create a task execution event recording a phase transition.", "operationId": "CreateTaskEvent", "responses": { @@ -497,6 +505,7 @@ }, "/api/v1/events/workflows": { "post": { + "summary": "Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred.", "description": "Create a workflow execution event recording a phase transition.", "operationId": "CreateWorkflowEvent", "responses": { @@ -524,6 +533,7 @@ }, "/api/v1/executions": { "post": { + "summary": "Triggers the creation of a :ref:`ref_flyteidl.admin.Execution`", "description": "Create a workflow execution.", "operationId": "CreateExecution", "responses": { @@ -551,6 +561,7 @@ }, "/api/v1/executions/relaunch": { "post": { + "summary": "Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution`", "description": "Relaunch a workflow execution.", "operationId": "RelaunchExecution", "responses": { @@ -578,6 +589,7 @@ }, "/api/v1/executions/{id.project}/{id.domain}": { "get": { + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.Execution`.", "description": "Fetch existing workflow executions matching input filters.", "operationId": "ListExecutions", "responses": { @@ -659,6 +671,7 @@ }, "/api/v1/executions/{id.project}/{id.domain}/{id.name}": { "get": { + "summary": "Fetches a :ref:`ref_flyteidl.admin.Execution`.", "description": "Retrieve an existing workflow execution.", "operationId": "GetExecution", "responses": { @@ -697,6 +710,7 @@ ] }, "delete": { + "summary": "Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`.", "description": "Terminate the active workflow execution specified in the request.", "operationId": "TerminateExecution", "responses": { @@ -745,6 +759,7 @@ }, "/api/v1/launch_plan_ids/{project}/{domain}": { "get": { + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects.", "description": "Fetch existing launch plan definition identifiers matching input filters.", "operationId": "ListLaunchPlanIds", "responses": { @@ -819,6 +834,7 @@ }, "/api/v1/launch_plans": { "post": { + "summary": "Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition", "description": "Create and register a launch plan definition.", "operationId": "CreateLaunchPlan", "responses": { @@ -854,6 +870,7 @@ }, "/api/v1/launch_plans/{id.project}/{id.domain}": { "get": { + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions.", "description": "Fetch existing launch plan definitions matching input filters.", "operationId": "ListLaunchPlans2", "responses": { @@ -935,6 +952,7 @@ }, "/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}": { "get": { + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions.", "description": "Fetch existing launch plan definitions matching input filters.", "operationId": "ListLaunchPlans", "responses": { @@ -1016,6 +1034,7 @@ }, "/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}": { "get": { + "summary": "Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition.", "description": "Retrieve an existing launch plan definition.", "operationId": "GetLaunchPlan", "responses": { @@ -1076,6 +1095,7 @@ ] }, "put": { + "summary": "Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`.", "description": "Update the status of an existing launch plan definition. At most one launch plan version for a given {project, domain, name} can be active at a time. If this call sets a launch plan to active and existing version is already active, the result of this call will be that the formerly active launch plan will be made inactive and specified launch plan in this request will be made active. In the event that the formerly active launch plan had a schedule associated it with it, this schedule will be disabled. If the reference launch plan in this request is being set to active and has a schedule associated with it, the schedule will be enabled.", "operationId": "UpdateLaunchPlan", "responses": { @@ -1131,6 +1151,7 @@ }, "/api/v1/matchable_attributes": { "get": { + "summary": "Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type.", "description": "Retrieve a list of MatchableAttributesConfiguration objects.", "operationId": "ListMatchableAttributes", "responses": { @@ -1167,6 +1188,7 @@ }, "/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}": { "get": { + "summary": "Returns a :ref:`ref_flyteidl.admin.NamedEntity` object.", "description": "Retrieve a NamedEntity object.", "operationId": "GetNamedEntity", "responses": { @@ -1219,6 +1241,7 @@ ] }, "put": { + "summary": "Updates a :ref:`ref_flyteidl.admin.NamedEntity` object.", "description": "Update the fields associated with a NamedEntity", "operationId": "UpdateNamedEntity", "responses": { @@ -1281,6 +1304,7 @@ }, "/api/v1/named_entities/{resource_type}/{project}/{domain}": { "get": { + "summary": "Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects.", "description": "Retrieve a list of NamedEntity objects sharing a common resource type, project, and domain.", "operationId": "ListNamedEntities", "responses": { @@ -1369,6 +1393,7 @@ }, "/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}": { "get": { + "summary": "Fetches a :ref:`ref_flyteidl.admin.NodeExecution`.", "description": "Retrieve an existing node execution.", "operationId": "GetNodeExecution", "responses": { @@ -1415,6 +1440,7 @@ }, "/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}": { "get": { + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`.", "description": "Fetch existing node executions matching input filters.", "operationId": "ListNodeExecutions", "responses": { @@ -1502,6 +1528,7 @@ }, "/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}": { "put": { + "summary": "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain.", "description": "Update the customized resource attributes associated with a project-domain combination", "operationId": "UpdateProjectDomainAttributes", "responses": { @@ -1543,6 +1570,7 @@ }, "/api/v1/project_domain_attributes/{project}/{domain}": { "get": { + "summary": "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain.", "description": "Retrieve the customized resource attributes associated with a project-domain combination", "operationId": "GetProjectDomainAttributes", "responses": { @@ -1591,6 +1619,7 @@ ] }, "delete": { + "summary": "Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain.", "description": "Delete the customized resource attributes associated with a project-domain combination", "operationId": "DeleteProjectDomainAttributes", "responses": { @@ -1632,6 +1661,7 @@ }, "/api/v1/projects": { "get": { + "summary": "Fetches a list of :ref:`ref_flyteidl.admin.Project`", "description": "Fetch registered projects.", "operationId": "ListProjects", "responses": { @@ -1690,6 +1720,7 @@ ] }, "post": { + "summary": "Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment.", "description": "Register a project.", "operationId": "RegisterProject", "responses": { @@ -1717,7 +1748,7 @@ }, "/api/v1/projects/{id}": { "put": { - "summary": "flyteidl.admin.Project should be passed but the domains property should be empty;\nit will be ignored in the handler as domains cannot be updated via this API.", + "summary": "Updates an existing :ref:`ref_flyteidl.admin.Project` \nflyteidl.admin.Project should be passed but the domains property should be empty;\nit will be ignored in the handler as domains cannot be updated via this API.", "description": "Update a project.", "operationId": "UpdateProject", "responses": { @@ -1752,6 +1783,7 @@ }, "/api/v1/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}": { "get": { + "summary": "Fetches a :ref:`ref_flyteidl.admin.TaskExecution`.", "description": "Retrieve an existing task execution.", "operationId": "GetTaskExecution", "responses": { @@ -1848,6 +1880,7 @@ }, "/api/v1/task_executions/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}": { "get": { + "summary": "Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`.", "description": "Fetch existing task executions matching input filters.", "operationId": "ListTaskExecutions", "responses": { @@ -1935,6 +1968,7 @@ }, "/api/v1/task_ids/{project}/{domain}": { "get": { + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects.", "description": "Fetch existing task definition identifiers matching input filters.", "operationId": "ListTaskIds", "responses": { @@ -2009,6 +2043,7 @@ }, "/api/v1/tasks": { "post": { + "summary": "Create and upload a :ref:`ref_flyteidl.admin.Task` definition", "description": "Create and register a task definition.", "operationId": "CreateTask", "responses": { @@ -2044,6 +2079,7 @@ }, "/api/v1/tasks/{id.project}/{id.domain}": { "get": { + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions.", "description": "Fetch existing task definitions matching input filters.", "operationId": "ListTasks2", "responses": { @@ -2125,6 +2161,7 @@ }, "/api/v1/tasks/{id.project}/{id.domain}/{id.name}": { "get": { + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions.", "description": "Fetch existing task definitions matching input filters.", "operationId": "ListTasks", "responses": { @@ -2206,6 +2243,7 @@ }, "/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}": { "get": { + "summary": "Fetch a :ref:`ref_flyteidl.admin.Task` definition.", "description": "Retrieve an existing task definition.", "operationId": "GetTask", "responses": { @@ -2285,6 +2323,7 @@ }, "/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}": { "put": { + "summary": "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow.", "description": "Update the customized resource attributes associated with a project, domain and workflow combination", "operationId": "UpdateWorkflowAttributes", "responses": { @@ -2333,6 +2372,7 @@ }, "/api/v1/workflow_attributes/{project}/{domain}/{workflow}": { "get": { + "summary": "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow.", "description": "Retrieve the customized resource attributes associated with a project, domain and workflow combination", "operationId": "GetWorkflowAttributes", "responses": { @@ -2388,6 +2428,7 @@ ] }, "delete": { + "summary": "Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow.", "description": "Delete the customized resource attributes associated with a project, domain and workflow combination", "operationId": "DeleteWorkflowAttributes", "responses": { @@ -2436,6 +2477,7 @@ }, "/api/v1/workflow_ids/{project}/{domain}": { "get": { + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects.", "description": "Fetch an existing workflow definition identifiers matching input filters.", "operationId": "ListWorkflowIds", "responses": { @@ -2510,6 +2552,7 @@ }, "/api/v1/workflows": { "post": { + "summary": "Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition", "description": "Create and register a workflow definition.", "operationId": "CreateWorkflow", "responses": { @@ -2545,6 +2588,7 @@ }, "/api/v1/workflows/{id.project}/{id.domain}": { "get": { + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions.", "description": "Fetch existing workflow definitions matching input filters.", "operationId": "ListWorkflows2", "responses": { @@ -2626,6 +2670,7 @@ }, "/api/v1/workflows/{id.project}/{id.domain}/{id.name}": { "get": { + "summary": "Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions.", "description": "Fetch existing workflow definitions matching input filters.", "operationId": "ListWorkflows", "responses": { @@ -2707,6 +2752,7 @@ }, "/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}": { "get": { + "summary": "Fetch a :ref:`ref_flyteidl.admin.Workflow` definition.", "description": "Retrieve an existing workflow definition.", "operationId": "GetWorkflow", "responses": { @@ -3247,7 +3293,7 @@ "description": "In the case of multiple pages of results, the server-provided token can be used to fetch the next page\nin a query. If there are no more results, this value will be empty." } }, - "description": "Used as a response for request to list executions." + "title": "Used as a response for request to list executions.\nSee :ref:`ref_flyteidl.admin.Execution` for more details" }, "adminExecutionMetadata": { "type": "object", @@ -3502,7 +3548,7 @@ "description": "In the case of multiple pages of results, the server-provided token can be used to fetch the next page\nin a query. If there are no more results, this value will be empty." } }, - "description": "Response object for list launch plan requests." + "title": "Response object for list launch plan requests.\nSee :ref:`ref_flyteidl.admin.LaunchPlan` for more details" }, "adminLaunchPlanMetadata": { "type": "object", @@ -3600,7 +3646,7 @@ "description": "Desired state to apply to the launch plan.\n+required." } }, - "description": "Request to set the referenced launch plan state to the configured value." + "title": "Request to set the referenced launch plan state to the configured value.\nSee :ref:`ref_flyteidl.admin.LaunchPlan` for more details" }, "adminLaunchPlanUpdateResponse": { "type": "object", @@ -3616,7 +3662,7 @@ } } }, - "description": "Response for a request for all matching resource attributes for a resource type." + "title": "Response for a request for all matching resource attributes for a resource type.\nSee :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for more details" }, "adminLiteralMapBlob": { "type": "object", @@ -3909,7 +3955,7 @@ "description": "In the case of multiple pages of results, the server-provided token can be used to fetch the next page\nin a query. If there are no more results, this value will be empty." } }, - "description": "Request structure to retrieve a list of node execution entities." + "title": "Request structure to retrieve a list of node execution entities.\nSee :ref:`ref_flyteidl.admin.NodeExecution` for more details" }, "adminNodeExecutionMetaData": { "type": "object", @@ -4053,7 +4099,7 @@ "$ref": "#/definitions/adminMatchingAttributes" } }, - "description": "Defines a set of custom matching attributes which defines resource defaults for a project and domain.\nFor more info on matchable attributes, see - :ref:`ref_flyteidl/admin/matchable_resource.proto`." + "title": "Defines a set of custom matching attributes which defines resource defaults for a project and domain.\nFor more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`" }, "adminProjectDomainAttributesDeleteRequest": { "type": "object", @@ -4071,7 +4117,7 @@ "title": "Which type of matchable attributes to delete.\n+required" } }, - "description": "Request to delete a set matchable project domain attribute override." + "title": "Request to delete a set matchable project domain attribute override.\nFor more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`" }, "adminProjectDomainAttributesDeleteResponse": { "type": "object", @@ -4084,7 +4130,7 @@ "$ref": "#/definitions/adminProjectDomainAttributes" } }, - "description": "Response to get an individual project domain attribute override." + "title": "Response to get an individual project domain attribute override.\nFor more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`" }, "adminProjectDomainAttributesUpdateRequest": { "type": "object", @@ -4094,7 +4140,7 @@ "title": "+required" } }, - "description": "Sets custom attributes for a project-domain combination." + "title": "Sets custom attributes for a project-domain combination.\nFor more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`" }, "adminProjectDomainAttributesUpdateResponse": { "type": "object", @@ -4107,13 +4153,16 @@ "$ref": "#/definitions/adminProject", "title": "+required" } - } + }, + "title": "Adds a new user-project within the Flyte deployment.\nSee :ref:`ref_flyteidl.admin.Project` for more details" }, "adminProjectRegisterResponse": { - "type": "object" + "type": "object", + "description": "Purposefully empty, may be updated in the future." }, "adminProjectUpdateResponse": { - "type": "object" + "type": "object", + "description": "Purposefully empty, may be updated in the future." }, "adminProjects": { "type": "object", @@ -4128,7 +4177,8 @@ "type": "string", "description": "In the case of multiple pages of results, the server-provided token can be used to fetch the next page\nin a query. If there are no more results, this value will be empty." } - } + }, + "title": "Represents a list of projects.\nSee :ref:`ref_flyteidl.admin.Project` for more details" }, "adminRawOutputDataConfig": { "type": "object", @@ -4238,7 +4288,7 @@ "title": "Represents the specification for task.\n+required" } }, - "description": "Represents a request structure to create a revision of a task." + "title": "Represents a request structure to create a revision of a task.\nSee :ref:`ref_flyteidl.admin.Task` for more details" }, "adminTaskCreateResponse": { "type": "object", @@ -4357,7 +4407,7 @@ "description": "In the case of multiple pages of results, the server-provided token can be used to fetch the next page\nin a query. If there are no more results, this value will be empty." } }, - "description": "Response structure for a query to list of task execution entities." + "title": "Response structure for a query to list of task execution entities.\nSee :ref:`ref_flyteidl.admin.TaskExecution` for more details" }, "adminTaskList": { "type": "object", @@ -4374,7 +4424,7 @@ "description": "In the case of multiple pages of results, the server-provided token can be used to fetch the next page\nin a query. If there are no more results, this value will be empty." } }, - "description": "Represents a list of tasks returned from the admin." + "title": "Represents a list of tasks returned from the admin.\nSee :ref:`ref_flyteidl.admin.Task` for more details" }, "adminTaskResourceAttributes": { "type": "object", @@ -4482,7 +4532,7 @@ "$ref": "#/definitions/adminMatchingAttributes" } }, - "description": "Defines a set of custom matching attributes which defines resource defaults for a project, domain and workflow.\nFor more info on matchable attributes, see - :ref:`ref_flyteidl/admin/matchable_resource.proto`." + "title": "Defines a set of custom matching attributes which defines resource defaults for a project, domain and workflow.\nFor more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`" }, "adminWorkflowAttributesDeleteRequest": { "type": "object", @@ -4504,7 +4554,7 @@ "title": "Which type of matchable attributes to delete.\n+required" } }, - "description": "Request to delete a set matchable workflow attribute override." + "title": "Request to delete a set matchable workflow attribute override.\nFor more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`" }, "adminWorkflowAttributesDeleteResponse": { "type": "object", @@ -4526,7 +4576,7 @@ "$ref": "#/definitions/adminWorkflowAttributes" } }, - "description": "Sets custom attributes for a project, domain and workflow combination." + "title": "Sets custom attributes for a project, domain and workflow combination.\nFor more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`" }, "adminWorkflowAttributesUpdateResponse": { "type": "object", @@ -4559,7 +4609,7 @@ "title": "Represents the specification for workflow.\n+required" } }, - "description": "Represents a request structure to create a revision of a workflow." + "title": "Represents a request structure to create a revision of a workflow.\nSee :ref:`ref_flyteidl.admin.Workflow` for more details" }, "adminWorkflowCreateResponse": { "type": "object" @@ -4629,7 +4679,7 @@ "description": "In the case of multiple pages of results, the server-provided token can be used to fetch the next page\nin a query. If there are no more results, this value will be empty." } }, - "description": "Represents a list of workflows returned from the admin." + "title": "Represents a list of workflows returned from the admin.\nSee :ref:`ref_flyteidl.admin.Workflow` for more details" }, "adminWorkflowSpec": { "type": "object", diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/README.md b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/README.md index fd730bd8cfc..124870c5e1a 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/README.md +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/README.md @@ -21,54 +21,54 @@ All URIs are relative to *http://localhost* Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- -*AdminServiceApi* | [**CreateExecution**](docs/AdminServiceApi.md#createexecution) | **Post** /api/v1/executions | -*AdminServiceApi* | [**CreateLaunchPlan**](docs/AdminServiceApi.md#createlaunchplan) | **Post** /api/v1/launch_plans | -*AdminServiceApi* | [**CreateNodeEvent**](docs/AdminServiceApi.md#createnodeevent) | **Post** /api/v1/events/nodes | -*AdminServiceApi* | [**CreateTask**](docs/AdminServiceApi.md#createtask) | **Post** /api/v1/tasks | -*AdminServiceApi* | [**CreateTaskEvent**](docs/AdminServiceApi.md#createtaskevent) | **Post** /api/v1/events/tasks | -*AdminServiceApi* | [**CreateWorkflow**](docs/AdminServiceApi.md#createworkflow) | **Post** /api/v1/workflows | -*AdminServiceApi* | [**CreateWorkflowEvent**](docs/AdminServiceApi.md#createworkflowevent) | **Post** /api/v1/events/workflows | -*AdminServiceApi* | [**DeleteProjectDomainAttributes**](docs/AdminServiceApi.md#deleteprojectdomainattributes) | **Delete** /api/v1/project_domain_attributes/{project}/{domain} | -*AdminServiceApi* | [**DeleteWorkflowAttributes**](docs/AdminServiceApi.md#deleteworkflowattributes) | **Delete** /api/v1/workflow_attributes/{project}/{domain}/{workflow} | -*AdminServiceApi* | [**GetActiveLaunchPlan**](docs/AdminServiceApi.md#getactivelaunchplan) | **Get** /api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name} | -*AdminServiceApi* | [**GetExecution**](docs/AdminServiceApi.md#getexecution) | **Get** /api/v1/executions/{id.project}/{id.domain}/{id.name} | -*AdminServiceApi* | [**GetExecutionData**](docs/AdminServiceApi.md#getexecutiondata) | **Get** /api/v1/data/executions/{id.project}/{id.domain}/{id.name} | -*AdminServiceApi* | [**GetLaunchPlan**](docs/AdminServiceApi.md#getlaunchplan) | **Get** /api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version} | -*AdminServiceApi* | [**GetNamedEntity**](docs/AdminServiceApi.md#getnamedentity) | **Get** /api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name} | -*AdminServiceApi* | [**GetNodeExecution**](docs/AdminServiceApi.md#getnodeexecution) | **Get** /api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id} | -*AdminServiceApi* | [**GetNodeExecutionData**](docs/AdminServiceApi.md#getnodeexecutiondata) | **Get** /api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id} | -*AdminServiceApi* | [**GetProjectDomainAttributes**](docs/AdminServiceApi.md#getprojectdomainattributes) | **Get** /api/v1/project_domain_attributes/{project}/{domain} | -*AdminServiceApi* | [**GetTask**](docs/AdminServiceApi.md#gettask) | **Get** /api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version} | -*AdminServiceApi* | [**GetTaskExecution**](docs/AdminServiceApi.md#gettaskexecution) | **Get** /api/v1/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt} | -*AdminServiceApi* | [**GetTaskExecutionData**](docs/AdminServiceApi.md#gettaskexecutiondata) | **Get** /api/v1/data/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt} | +*AdminServiceApi* | [**CreateExecution**](docs/AdminServiceApi.md#createexecution) | **Post** /api/v1/executions | Triggers the creation of a :ref:`ref_flyteidl.admin.Execution` +*AdminServiceApi* | [**CreateLaunchPlan**](docs/AdminServiceApi.md#createlaunchplan) | **Post** /api/v1/launch_plans | Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition +*AdminServiceApi* | [**CreateNodeEvent**](docs/AdminServiceApi.md#createnodeevent) | **Post** /api/v1/events/nodes | Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. +*AdminServiceApi* | [**CreateTask**](docs/AdminServiceApi.md#createtask) | **Post** /api/v1/tasks | Create and upload a :ref:`ref_flyteidl.admin.Task` definition +*AdminServiceApi* | [**CreateTaskEvent**](docs/AdminServiceApi.md#createtaskevent) | **Post** /api/v1/events/tasks | Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. +*AdminServiceApi* | [**CreateWorkflow**](docs/AdminServiceApi.md#createworkflow) | **Post** /api/v1/workflows | Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition +*AdminServiceApi* | [**CreateWorkflowEvent**](docs/AdminServiceApi.md#createworkflowevent) | **Post** /api/v1/events/workflows | Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. +*AdminServiceApi* | [**DeleteProjectDomainAttributes**](docs/AdminServiceApi.md#deleteprojectdomainattributes) | **Delete** /api/v1/project_domain_attributes/{project}/{domain} | Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. +*AdminServiceApi* | [**DeleteWorkflowAttributes**](docs/AdminServiceApi.md#deleteworkflowattributes) | **Delete** /api/v1/workflow_attributes/{project}/{domain}/{workflow} | Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. +*AdminServiceApi* | [**GetActiveLaunchPlan**](docs/AdminServiceApi.md#getactivelaunchplan) | **Get** /api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name} | Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. +*AdminServiceApi* | [**GetExecution**](docs/AdminServiceApi.md#getexecution) | **Get** /api/v1/executions/{id.project}/{id.domain}/{id.name} | Fetches a :ref:`ref_flyteidl.admin.Execution`. +*AdminServiceApi* | [**GetExecutionData**](docs/AdminServiceApi.md#getexecutiondata) | **Get** /api/v1/data/executions/{id.project}/{id.domain}/{id.name} | Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. +*AdminServiceApi* | [**GetLaunchPlan**](docs/AdminServiceApi.md#getlaunchplan) | **Get** /api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version} | Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. +*AdminServiceApi* | [**GetNamedEntity**](docs/AdminServiceApi.md#getnamedentity) | **Get** /api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name} | Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. +*AdminServiceApi* | [**GetNodeExecution**](docs/AdminServiceApi.md#getnodeexecution) | **Get** /api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id} | Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. +*AdminServiceApi* | [**GetNodeExecutionData**](docs/AdminServiceApi.md#getnodeexecutiondata) | **Get** /api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id} | Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. +*AdminServiceApi* | [**GetProjectDomainAttributes**](docs/AdminServiceApi.md#getprojectdomainattributes) | **Get** /api/v1/project_domain_attributes/{project}/{domain} | Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. +*AdminServiceApi* | [**GetTask**](docs/AdminServiceApi.md#gettask) | **Get** /api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version} | Fetch a :ref:`ref_flyteidl.admin.Task` definition. +*AdminServiceApi* | [**GetTaskExecution**](docs/AdminServiceApi.md#gettaskexecution) | **Get** /api/v1/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt} | Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. +*AdminServiceApi* | [**GetTaskExecutionData**](docs/AdminServiceApi.md#gettaskexecutiondata) | **Get** /api/v1/data/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt} | Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. *AdminServiceApi* | [**GetVersion**](docs/AdminServiceApi.md#getversion) | **Get** /api/v1/version | -*AdminServiceApi* | [**GetWorkflow**](docs/AdminServiceApi.md#getworkflow) | **Get** /api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version} | -*AdminServiceApi* | [**GetWorkflowAttributes**](docs/AdminServiceApi.md#getworkflowattributes) | **Get** /api/v1/workflow_attributes/{project}/{domain}/{workflow} | -*AdminServiceApi* | [**ListActiveLaunchPlans**](docs/AdminServiceApi.md#listactivelaunchplans) | **Get** /api/v1/active_launch_plans/{project}/{domain} | -*AdminServiceApi* | [**ListExecutions**](docs/AdminServiceApi.md#listexecutions) | **Get** /api/v1/executions/{id.project}/{id.domain} | -*AdminServiceApi* | [**ListLaunchPlanIds**](docs/AdminServiceApi.md#listlaunchplanids) | **Get** /api/v1/launch_plan_ids/{project}/{domain} | -*AdminServiceApi* | [**ListLaunchPlans**](docs/AdminServiceApi.md#listlaunchplans) | **Get** /api/v1/launch_plans/{id.project}/{id.domain}/{id.name} | -*AdminServiceApi* | [**ListLaunchPlans2**](docs/AdminServiceApi.md#listlaunchplans2) | **Get** /api/v1/launch_plans/{id.project}/{id.domain} | -*AdminServiceApi* | [**ListMatchableAttributes**](docs/AdminServiceApi.md#listmatchableattributes) | **Get** /api/v1/matchable_attributes | -*AdminServiceApi* | [**ListNamedEntities**](docs/AdminServiceApi.md#listnamedentities) | **Get** /api/v1/named_entities/{resource_type}/{project}/{domain} | -*AdminServiceApi* | [**ListNodeExecutions**](docs/AdminServiceApi.md#listnodeexecutions) | **Get** /api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name} | -*AdminServiceApi* | [**ListNodeExecutionsForTask**](docs/AdminServiceApi.md#listnodeexecutionsfortask) | **Get** /api/v1/children/task_executions/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt} | -*AdminServiceApi* | [**ListProjects**](docs/AdminServiceApi.md#listprojects) | **Get** /api/v1/projects | -*AdminServiceApi* | [**ListTaskExecutions**](docs/AdminServiceApi.md#listtaskexecutions) | **Get** /api/v1/task_executions/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id} | -*AdminServiceApi* | [**ListTaskIds**](docs/AdminServiceApi.md#listtaskids) | **Get** /api/v1/task_ids/{project}/{domain} | -*AdminServiceApi* | [**ListTasks**](docs/AdminServiceApi.md#listtasks) | **Get** /api/v1/tasks/{id.project}/{id.domain}/{id.name} | -*AdminServiceApi* | [**ListTasks2**](docs/AdminServiceApi.md#listtasks2) | **Get** /api/v1/tasks/{id.project}/{id.domain} | -*AdminServiceApi* | [**ListWorkflowIds**](docs/AdminServiceApi.md#listworkflowids) | **Get** /api/v1/workflow_ids/{project}/{domain} | -*AdminServiceApi* | [**ListWorkflows**](docs/AdminServiceApi.md#listworkflows) | **Get** /api/v1/workflows/{id.project}/{id.domain}/{id.name} | -*AdminServiceApi* | [**ListWorkflows2**](docs/AdminServiceApi.md#listworkflows2) | **Get** /api/v1/workflows/{id.project}/{id.domain} | -*AdminServiceApi* | [**RegisterProject**](docs/AdminServiceApi.md#registerproject) | **Post** /api/v1/projects | -*AdminServiceApi* | [**RelaunchExecution**](docs/AdminServiceApi.md#relaunchexecution) | **Post** /api/v1/executions/relaunch | -*AdminServiceApi* | [**TerminateExecution**](docs/AdminServiceApi.md#terminateexecution) | **Delete** /api/v1/executions/{id.project}/{id.domain}/{id.name} | -*AdminServiceApi* | [**UpdateLaunchPlan**](docs/AdminServiceApi.md#updatelaunchplan) | **Put** /api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version} | -*AdminServiceApi* | [**UpdateNamedEntity**](docs/AdminServiceApi.md#updatenamedentity) | **Put** /api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name} | -*AdminServiceApi* | [**UpdateProject**](docs/AdminServiceApi.md#updateproject) | **Put** /api/v1/projects/{id} | flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. -*AdminServiceApi* | [**UpdateProjectDomainAttributes**](docs/AdminServiceApi.md#updateprojectdomainattributes) | **Put** /api/v1/project_domain_attributes/{attributes.project}/{attributes.domain} | -*AdminServiceApi* | [**UpdateWorkflowAttributes**](docs/AdminServiceApi.md#updateworkflowattributes) | **Put** /api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow} | +*AdminServiceApi* | [**GetWorkflow**](docs/AdminServiceApi.md#getworkflow) | **Get** /api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version} | Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. +*AdminServiceApi* | [**GetWorkflowAttributes**](docs/AdminServiceApi.md#getworkflowattributes) | **Get** /api/v1/workflow_attributes/{project}/{domain}/{workflow} | Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. +*AdminServiceApi* | [**ListActiveLaunchPlans**](docs/AdminServiceApi.md#listactivelaunchplans) | **Get** /api/v1/active_launch_plans/{project}/{domain} | List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. +*AdminServiceApi* | [**ListExecutions**](docs/AdminServiceApi.md#listexecutions) | **Get** /api/v1/executions/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.Execution`. +*AdminServiceApi* | [**ListLaunchPlanIds**](docs/AdminServiceApi.md#listlaunchplanids) | **Get** /api/v1/launch_plan_ids/{project}/{domain} | Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. +*AdminServiceApi* | [**ListLaunchPlans**](docs/AdminServiceApi.md#listlaunchplans) | **Get** /api/v1/launch_plans/{id.project}/{id.domain}/{id.name} | Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. +*AdminServiceApi* | [**ListLaunchPlans2**](docs/AdminServiceApi.md#listlaunchplans2) | **Get** /api/v1/launch_plans/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. +*AdminServiceApi* | [**ListMatchableAttributes**](docs/AdminServiceApi.md#listmatchableattributes) | **Get** /api/v1/matchable_attributes | Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. +*AdminServiceApi* | [**ListNamedEntities**](docs/AdminServiceApi.md#listnamedentities) | **Get** /api/v1/named_entities/{resource_type}/{project}/{domain} | Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. +*AdminServiceApi* | [**ListNodeExecutions**](docs/AdminServiceApi.md#listnodeexecutions) | **Get** /api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name} | Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. +*AdminServiceApi* | [**ListNodeExecutionsForTask**](docs/AdminServiceApi.md#listnodeexecutionsfortask) | **Get** /api/v1/children/task_executions/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt} | Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. +*AdminServiceApi* | [**ListProjects**](docs/AdminServiceApi.md#listprojects) | **Get** /api/v1/projects | Fetches a list of :ref:`ref_flyteidl.admin.Project` +*AdminServiceApi* | [**ListTaskExecutions**](docs/AdminServiceApi.md#listtaskexecutions) | **Get** /api/v1/task_executions/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id} | Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. +*AdminServiceApi* | [**ListTaskIds**](docs/AdminServiceApi.md#listtaskids) | **Get** /api/v1/task_ids/{project}/{domain} | Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. +*AdminServiceApi* | [**ListTasks**](docs/AdminServiceApi.md#listtasks) | **Get** /api/v1/tasks/{id.project}/{id.domain}/{id.name} | Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. +*AdminServiceApi* | [**ListTasks2**](docs/AdminServiceApi.md#listtasks2) | **Get** /api/v1/tasks/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. +*AdminServiceApi* | [**ListWorkflowIds**](docs/AdminServiceApi.md#listworkflowids) | **Get** /api/v1/workflow_ids/{project}/{domain} | Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. +*AdminServiceApi* | [**ListWorkflows**](docs/AdminServiceApi.md#listworkflows) | **Get** /api/v1/workflows/{id.project}/{id.domain}/{id.name} | Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. +*AdminServiceApi* | [**ListWorkflows2**](docs/AdminServiceApi.md#listworkflows2) | **Get** /api/v1/workflows/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. +*AdminServiceApi* | [**RegisterProject**](docs/AdminServiceApi.md#registerproject) | **Post** /api/v1/projects | Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. +*AdminServiceApi* | [**RelaunchExecution**](docs/AdminServiceApi.md#relaunchexecution) | **Post** /api/v1/executions/relaunch | Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` +*AdminServiceApi* | [**TerminateExecution**](docs/AdminServiceApi.md#terminateexecution) | **Delete** /api/v1/executions/{id.project}/{id.domain}/{id.name} | Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. +*AdminServiceApi* | [**UpdateLaunchPlan**](docs/AdminServiceApi.md#updatelaunchplan) | **Put** /api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version} | Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. +*AdminServiceApi* | [**UpdateNamedEntity**](docs/AdminServiceApi.md#updatenamedentity) | **Put** /api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name} | Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. +*AdminServiceApi* | [**UpdateProject**](docs/AdminServiceApi.md#updateproject) | **Put** /api/v1/projects/{id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. +*AdminServiceApi* | [**UpdateProjectDomainAttributes**](docs/AdminServiceApi.md#updateprojectdomainattributes) | **Put** /api/v1/project_domain_attributes/{attributes.project}/{attributes.domain} | Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. +*AdminServiceApi* | [**UpdateWorkflowAttributes**](docs/AdminServiceApi.md#updateworkflowattributes) | **Put** /api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow} | Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. ## Documentation For Models diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml index feef0bc89c8..7b2ae6a3fde 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api/swagger.yaml @@ -15,6 +15,7 @@ paths: get: tags: - "AdminService" + summary: "Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`." description: "Retrieve the active launch plan version specified by input request\ \ filters." operationId: "GetActiveLaunchPlan" @@ -49,6 +50,7 @@ paths: get: tags: - "AdminService" + summary: "List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`." description: "Fetch the active launch plan versions specified by input request\ \ filters." operationId: "ListActiveLaunchPlans" @@ -111,6 +113,8 @@ paths: : get: tags: - "AdminService" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by\ + \ the reference :ref:`ref_flyteidl.admin.TaskExecution`." description: "Fetch child node executions launched by the specified task execution." operationId: "ListNodeExecutionsForTask" parameters: @@ -242,6 +246,7 @@ paths: get: tags: - "AdminService" + summary: "Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`." description: "Retrieve input and output data from an existing workflow execution." operationId: "GetExecutionData" parameters: @@ -273,6 +278,7 @@ paths: get: tags: - "AdminService" + summary: "Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`." description: "Retrieve input and output data from an existing node execution." operationId: "GetNodeExecutionData" parameters: @@ -309,6 +315,7 @@ paths: : get: tags: - "AdminService" + summary: "Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`." description: "Retrieve input and output data from an existing task execution." operationId: "GetTaskExecutionData" parameters: @@ -396,6 +403,7 @@ paths: post: tags: - "AdminService" + summary: "Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred." description: "Create a node execution event recording a phase transition." operationId: "CreateNodeEvent" parameters: @@ -414,6 +422,7 @@ paths: post: tags: - "AdminService" + summary: "Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred." description: "Create a task execution event recording a phase transition." operationId: "CreateTaskEvent" parameters: @@ -432,6 +441,7 @@ paths: post: tags: - "AdminService" + summary: "Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred." description: "Create a workflow execution event recording a phase transition." operationId: "CreateWorkflowEvent" parameters: @@ -450,6 +460,7 @@ paths: post: tags: - "AdminService" + summary: "Triggers the creation of a :ref:`ref_flyteidl.admin.Execution`" description: "Create a workflow execution." operationId: "CreateExecution" parameters: @@ -468,6 +479,7 @@ paths: post: tags: - "AdminService" + summary: "Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution`" description: "Relaunch a workflow execution." operationId: "RelaunchExecution" parameters: @@ -486,6 +498,7 @@ paths: get: tags: - "AdminService" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.Execution`." description: "Fetch existing workflow executions matching input filters." operationId: "ListExecutions" parameters: @@ -564,6 +577,7 @@ paths: get: tags: - "AdminService" + summary: "Fetches a :ref:`ref_flyteidl.admin.Execution`." description: "Retrieve an existing workflow execution." operationId: "GetExecution" parameters: @@ -594,6 +608,7 @@ paths: delete: tags: - "AdminService" + summary: "Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`." description: "Terminate the active workflow execution specified in the request." operationId: "TerminateExecution" parameters: @@ -631,6 +646,8 @@ paths: get: tags: - "AdminService" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of\ + \ launch plan objects." description: "Fetch existing launch plan definition identifiers matching input\ \ filters." operationId: "ListLaunchPlanIds" @@ -700,6 +717,7 @@ paths: post: tags: - "AdminService" + summary: "Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition" description: "Create and register a launch plan definition." operationId: "CreateLaunchPlan" parameters: @@ -725,6 +743,7 @@ paths: get: tags: - "AdminService" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions." description: "Fetch existing launch plan definitions matching input filters." operationId: "ListLaunchPlans2" parameters: @@ -803,6 +822,7 @@ paths: get: tags: - "AdminService" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions." description: "Fetch existing launch plan definitions matching input filters." operationId: "ListLaunchPlans" parameters: @@ -880,6 +900,7 @@ paths: get: tags: - "AdminService" + summary: "Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition." description: "Retrieve an existing launch plan definition." operationId: "GetLaunchPlan" parameters: @@ -936,6 +957,7 @@ paths: put: tags: - "AdminService" + summary: "Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`." description: "Update the status of an existing launch plan definition. At most\ \ one launch plan version for a given {project, domain, name} can be active\ \ at a time. If this call sets a launch plan to active and existing version\ @@ -987,6 +1009,8 @@ paths: get: tags: - "AdminService" + summary: "Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ + \ for a specific resource type." description: "Retrieve a list of MatchableAttributesConfiguration objects." operationId: "ListMatchableAttributes" parameters: @@ -1023,6 +1047,7 @@ paths: get: tags: - "AdminService" + summary: "Returns a :ref:`ref_flyteidl.admin.NamedEntity` object." description: "Retrieve a NamedEntity object." operationId: "GetNamedEntity" parameters: @@ -1068,6 +1093,7 @@ paths: put: tags: - "AdminService" + summary: "Updates a :ref:`ref_flyteidl.admin.NamedEntity` object." description: "Update the fields associated with a NamedEntity" operationId: "UpdateNamedEntity" parameters: @@ -1119,6 +1145,7 @@ paths: get: tags: - "AdminService" + summary: "Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects." description: "Retrieve a list of NamedEntity objects sharing a common resource\ \ type, project, and domain." operationId: "ListNamedEntities" @@ -1200,6 +1227,7 @@ paths: get: tags: - "AdminService" + summary: "Fetches a :ref:`ref_flyteidl.admin.NodeExecution`." description: "Retrieve an existing node execution." operationId: "GetNodeExecution" parameters: @@ -1236,6 +1264,7 @@ paths: get: tags: - "AdminService" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`." description: "Fetch existing node executions matching input filters." operationId: "ListNodeExecutions" parameters: @@ -1316,6 +1345,8 @@ paths: put: tags: - "AdminService" + summary: "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ + \ for a project and domain." description: "Update the customized resource attributes associated with a project-domain\ \ combination" operationId: "UpdateProjectDomainAttributes" @@ -1347,6 +1378,8 @@ paths: get: tags: - "AdminService" + summary: "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ + \ for a project and domain." description: "Retrieve the customized resource attributes associated with a\ \ project-domain combination" operationId: "GetProjectDomainAttributes" @@ -1398,6 +1431,8 @@ paths: delete: tags: - "AdminService" + summary: "Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ + \ for a project and domain." description: "Delete the customized resource attributes associated with a project-domain\ \ combination" operationId: "DeleteProjectDomainAttributes" @@ -1431,6 +1466,7 @@ paths: get: tags: - "AdminService" + summary: "Fetches a list of :ref:`ref_flyteidl.admin.Project`" description: "Fetch registered projects." operationId: "ListProjects" parameters: @@ -1486,6 +1522,7 @@ paths: post: tags: - "AdminService" + summary: "Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment." description: "Register a project." operationId: "RegisterProject" parameters: @@ -1504,9 +1541,9 @@ paths: put: tags: - "AdminService" - summary: "flyteidl.admin.Project should be passed but the domains property should\ - \ be empty;\nit will be ignored in the handler as domains cannot be updated\ - \ via this API." + summary: "Updates an existing :ref:`ref_flyteidl.admin.Project` \nflyteidl.admin.Project\ + \ should be passed but the domains property should be empty;\nit will be ignored\ + \ in the handler as domains cannot be updated via this API." description: "Update a project." operationId: "UpdateProject" parameters: @@ -1531,6 +1568,7 @@ paths: : get: tags: - "AdminService" + summary: "Fetches a :ref:`ref_flyteidl.admin.TaskExecution`." description: "Retrieve an existing task execution." operationId: "GetTaskExecution" parameters: @@ -1618,6 +1656,7 @@ paths: : get: tags: - "AdminService" + summary: "Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`." description: "Fetch existing task executions matching input filters." operationId: "ListTaskExecutions" parameters: @@ -1698,6 +1737,8 @@ paths: get: tags: - "AdminService" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of\ + \ task objects." description: "Fetch existing task definition identifiers matching input filters." operationId: "ListTaskIds" parameters: @@ -1766,6 +1807,7 @@ paths: post: tags: - "AdminService" + summary: "Create and upload a :ref:`ref_flyteidl.admin.Task` definition" description: "Create and register a task definition." operationId: "CreateTask" parameters: @@ -1791,6 +1833,7 @@ paths: get: tags: - "AdminService" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions." description: "Fetch existing task definitions matching input filters." operationId: "ListTasks2" parameters: @@ -1869,6 +1912,7 @@ paths: get: tags: - "AdminService" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions." description: "Fetch existing task definitions matching input filters." operationId: "ListTasks" parameters: @@ -1946,6 +1990,7 @@ paths: get: tags: - "AdminService" + summary: "Fetch a :ref:`ref_flyteidl.admin.Task` definition." description: "Retrieve an existing task definition." operationId: "GetTask" parameters: @@ -2016,6 +2061,8 @@ paths: put: tags: - "AdminService" + summary: "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ + \ for a project, domain and workflow." description: "Update the customized resource attributes associated with a project,\ \ domain and workflow combination" operationId: "UpdateWorkflowAttributes" @@ -2053,6 +2100,8 @@ paths: get: tags: - "AdminService" + summary: "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ + \ for a project, domain and workflow." description: "Retrieve the customized resource attributes associated with a\ \ project, domain and workflow combination" operationId: "GetWorkflowAttributes" @@ -2110,6 +2159,8 @@ paths: delete: tags: - "AdminService" + summary: "Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`\ + \ for a project, domain and workflow." description: "Delete the customized resource attributes associated with a project,\ \ domain and workflow combination" operationId: "DeleteWorkflowAttributes" @@ -2149,6 +2200,8 @@ paths: get: tags: - "AdminService" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of\ + \ workflow objects." description: "Fetch an existing workflow definition identifiers matching input\ \ filters." operationId: "ListWorkflowIds" @@ -2218,6 +2271,7 @@ paths: post: tags: - "AdminService" + summary: "Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition" description: "Create and register a workflow definition." operationId: "CreateWorkflow" parameters: @@ -2243,6 +2297,7 @@ paths: get: tags: - "AdminService" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions." description: "Fetch existing workflow definitions matching input filters." operationId: "ListWorkflows2" parameters: @@ -2321,6 +2376,7 @@ paths: get: tags: - "AdminService" + summary: "Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions." description: "Fetch existing workflow definitions matching input filters." operationId: "ListWorkflows" parameters: @@ -2398,6 +2454,7 @@ paths: get: tags: - "AdminService" + summary: "Fetch a :ref:`ref_flyteidl.admin.Workflow` definition." description: "Retrieve an existing workflow definition." operationId: "GetWorkflow" parameters: @@ -3167,7 +3224,8 @@ definitions: description: "In the case of multiple pages of results, the server-provided\ \ token can be used to fetch the next page\nin a query. If there are no\ \ more results, this value will be empty." - description: "Used as a response for request to list executions." + title: "Used as a response for request to list executions.\nSee :ref:`ref_flyteidl.admin.Execution`\ + \ for more details" example: executions: - id: @@ -4331,7 +4389,8 @@ definitions: description: "In the case of multiple pages of results, the server-provided\ \ token can be used to fetch the next page\nin a query. If there are no\ \ more results, this value will be empty." - description: "Response object for list launch plan requests." + title: "Response object for list launch plan requests.\nSee :ref:`ref_flyteidl.admin.LaunchPlan`\ + \ for more details" example: launch_plans: - id: @@ -5275,8 +5334,8 @@ definitions: state: description: "Desired state to apply to the launch plan.\n+required." $ref: "#/definitions/adminLaunchPlanState" - description: "Request to set the referenced launch plan state to the configured\ - \ value." + title: "Request to set the referenced launch plan state to the configured value.\n\ + See :ref:`ref_flyteidl.admin.LaunchPlan` for more details" adminLaunchPlanUpdateResponse: type: "object" description: "Purposefully empty, may be populated in the future." @@ -5287,8 +5346,9 @@ definitions: type: "array" items: $ref: "#/definitions/adminMatchableAttributesConfiguration" - description: "Response for a request for all matching resource attributes for\ - \ a resource type." + title: "Response for a request for all matching resource attributes for a resource\ + \ type.\nSee :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for\ + \ more details" example: configurations: - launch_plan: "launch_plan" @@ -8826,7 +8886,8 @@ definitions: description: "In the case of multiple pages of results, the server-provided\ \ token can be used to fetch the next page\nin a query. If there are no\ \ more results, this value will be empty." - description: "Request structure to retrieve a list of node execution entities." + title: "Request structure to retrieve a list of node execution entities.\nSee\ + \ :ref:`ref_flyteidl.admin.NodeExecution` for more details" example: node_executions: - metadata: @@ -9140,9 +9201,8 @@ definitions: description: "Unique domain id for which this set of attributes will be applied." matching_attributes: $ref: "#/definitions/adminMatchingAttributes" - description: "Defines a set of custom matching attributes which defines resource\ - \ defaults for a project and domain.\nFor more info on matchable attributes,\ - \ see - :ref:`ref_flyteidl/admin/matchable_resource.proto`." + title: "Defines a set of custom matching attributes which defines resource defaults\ + \ for a project and domain.\nFor more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`" example: domain: "domain" project: "project" @@ -9197,7 +9257,8 @@ definitions: resource_type: title: "Which type of matchable attributes to delete.\n+required" $ref: "#/definitions/adminMatchableResource" - description: "Request to delete a set matchable project domain attribute override." + title: "Request to delete a set matchable project domain attribute override.\n\ + For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`" adminProjectDomainAttributesDeleteResponse: type: "object" description: "Purposefully empty, may be populated in the future." @@ -9206,7 +9267,8 @@ definitions: properties: attributes: $ref: "#/definitions/adminProjectDomainAttributes" - description: "Response to get an individual project domain attribute override." + title: "Response to get an individual project domain attribute override.\nFor\ + \ more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`" example: attributes: domain: "domain" @@ -9256,7 +9318,8 @@ definitions: attributes: title: "+required" $ref: "#/definitions/adminProjectDomainAttributes" - description: "Sets custom attributes for a project-domain combination." + title: "Sets custom attributes for a project-domain combination.\nFor more info\ + \ on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`" adminProjectDomainAttributesUpdateResponse: type: "object" description: "Purposefully empty, may be populated in the future." @@ -9266,10 +9329,14 @@ definitions: project: title: "+required" $ref: "#/definitions/adminProject" + title: "Adds a new user-project within the Flyte deployment.\nSee :ref:`ref_flyteidl.admin.Project`\ + \ for more details" adminProjectRegisterResponse: type: "object" + description: "Purposefully empty, may be updated in the future." adminProjectUpdateResponse: type: "object" + description: "Purposefully empty, may be updated in the future." adminProjects: type: "object" properties: @@ -9282,6 +9349,8 @@ definitions: description: "In the case of multiple pages of results, the server-provided\ \ token can be used to fetch the next page\nin a query. If there are no\ \ more results, this value will be empty." + title: "Represents a list of projects.\nSee :ref:`ref_flyteidl.admin.Project`\ + \ for more details" example: projects: - name: "name" @@ -9819,7 +9888,8 @@ definitions: spec: title: "Represents the specification for task.\n+required" $ref: "#/definitions/adminTaskSpec" - description: "Represents a request structure to create a revision of a task." + title: "Represents a request structure to create a revision of a task.\nSee :ref:`ref_flyteidl.admin.Task`\ + \ for more details" adminTaskCreateResponse: type: "object" description: "Represents a response structure if task creation succeeds." @@ -9973,7 +10043,8 @@ definitions: description: "In the case of multiple pages of results, the server-provided\ \ token can be used to fetch the next page\nin a query. If there are no\ \ more results, this value will be empty." - description: "Response structure for a query to list of task execution entities." + title: "Response structure for a query to list of task execution entities.\nSee\ + \ :ref:`ref_flyteidl.admin.TaskExecution` for more details" example: task_executions: - input_uri: "input_uri" @@ -10114,7 +10185,8 @@ definitions: description: "In the case of multiple pages of results, the server-provided\ \ token can be used to fetch the next page\nin a query. If there are no\ \ more results, this value will be empty." - description: "Represents a list of tasks returned from the admin." + title: "Represents a list of tasks returned from the admin.\nSee :ref:`ref_flyteidl.admin.Task`\ + \ for more details" example: tasks: - id: @@ -13645,9 +13717,9 @@ definitions: description: "Workflow name for which this set of attributes will be applied." matching_attributes: $ref: "#/definitions/adminMatchingAttributes" - description: "Defines a set of custom matching attributes which defines resource\ - \ defaults for a project, domain and workflow.\nFor more info on matchable attributes,\ - \ see - :ref:`ref_flyteidl/admin/matchable_resource.proto`." + title: "Defines a set of custom matching attributes which defines resource defaults\ + \ for a project, domain and workflow.\nFor more info on matchable attributes,\ + \ see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`" example: workflow: "workflow" domain: "domain" @@ -13706,7 +13778,8 @@ definitions: resource_type: title: "Which type of matchable attributes to delete.\n+required" $ref: "#/definitions/adminMatchableResource" - description: "Request to delete a set matchable workflow attribute override." + title: "Request to delete a set matchable workflow attribute override.\nFor more\ + \ info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`" adminWorkflowAttributesDeleteResponse: type: "object" description: "Purposefully empty, may be populated in the future." @@ -13765,7 +13838,8 @@ definitions: properties: attributes: $ref: "#/definitions/adminWorkflowAttributes" - description: "Sets custom attributes for a project, domain and workflow combination." + title: "Sets custom attributes for a project, domain and workflow combination.\n\ + For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`" adminWorkflowAttributesUpdateResponse: type: "object" description: "Purposefully empty, may be populated in the future." @@ -16797,7 +16871,8 @@ definitions: spec: title: "Represents the specification for workflow.\n+required" $ref: "#/definitions/adminWorkflowSpec" - description: "Represents a request structure to create a revision of a workflow." + title: "Represents a request structure to create a revision of a workflow.\nSee\ + \ :ref:`ref_flyteidl.admin.Workflow` for more details" adminWorkflowCreateResponse: type: "object" adminWorkflowExecutionConfig: @@ -16870,7 +16945,8 @@ definitions: description: "In the case of multiple pages of results, the server-provided\ \ token can be used to fetch the next page\nin a query. If there are no\ \ more results, this value will be empty." - description: "Represents a list of workflows returned from the admin." + title: "Represents a list of workflows returned from the admin.\nSee :ref:`ref_flyteidl.admin.Workflow`\ + \ for more details" example: workflows: - id: diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api_admin_service.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api_admin_service.go index 2d3493138b9..53626ab470e 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api_admin_service.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/api_admin_service.go @@ -27,7 +27,7 @@ var ( type AdminServiceApiService service /* -AdminServiceApiService +AdminServiceApiService Triggers the creation of a :ref:`ref_flyteidl.admin.Execution` Create a workflow execution. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param body @@ -117,7 +117,7 @@ func (a *AdminServiceApiService) CreateExecution(ctx context.Context, body Admin } /* -AdminServiceApiService +AdminServiceApiService Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition Create and register a launch plan definition. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param body @@ -229,7 +229,7 @@ func (a *AdminServiceApiService) CreateLaunchPlan(ctx context.Context, body Admi } /* -AdminServiceApiService +AdminServiceApiService Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. Create a node execution event recording a phase transition. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param body @@ -319,7 +319,7 @@ func (a *AdminServiceApiService) CreateNodeEvent(ctx context.Context, body Admin } /* -AdminServiceApiService +AdminServiceApiService Create and upload a :ref:`ref_flyteidl.admin.Task` definition Create and register a task definition. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param body @@ -431,7 +431,7 @@ func (a *AdminServiceApiService) CreateTask(ctx context.Context, body AdminTaskC } /* -AdminServiceApiService +AdminServiceApiService Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. Create a task execution event recording a phase transition. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param body @@ -521,7 +521,7 @@ func (a *AdminServiceApiService) CreateTaskEvent(ctx context.Context, body Admin } /* -AdminServiceApiService +AdminServiceApiService Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition Create and register a workflow definition. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param body @@ -633,7 +633,7 @@ func (a *AdminServiceApiService) CreateWorkflow(ctx context.Context, body AdminW } /* -AdminServiceApiService +AdminServiceApiService Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. Create a workflow execution event recording a phase transition. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param body @@ -723,7 +723,7 @@ func (a *AdminServiceApiService) CreateWorkflowEvent(ctx context.Context, body A } /* -AdminServiceApiService +AdminServiceApiService Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. Delete the customized resource attributes associated with a project-domain combination * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param project Unique project id which this set of attributes references. +required @@ -817,7 +817,7 @@ func (a *AdminServiceApiService) DeleteProjectDomainAttributes(ctx context.Conte } /* -AdminServiceApiService +AdminServiceApiService Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. Delete the customized resource attributes associated with a project, domain and workflow combination * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param project Unique project id which this set of attributes references. +required @@ -913,7 +913,7 @@ func (a *AdminServiceApiService) DeleteWorkflowAttributes(ctx context.Context, p } /* -AdminServiceApiService +AdminServiceApiService Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. Retrieve the active launch plan version specified by input request filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. @@ -1006,7 +1006,7 @@ func (a *AdminServiceApiService) GetActiveLaunchPlan(ctx context.Context, idProj } /* -AdminServiceApiService +AdminServiceApiService Fetches a :ref:`ref_flyteidl.admin.Execution`. Retrieve an existing workflow execution. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. @@ -1099,7 +1099,7 @@ func (a *AdminServiceApiService) GetExecution(ctx context.Context, idProject str } /* -AdminServiceApiService +AdminServiceApiService Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. Retrieve input and output data from an existing workflow execution. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. @@ -1192,7 +1192,7 @@ func (a *AdminServiceApiService) GetExecutionData(ctx context.Context, idProject } /* -AdminServiceApiService +AdminServiceApiService Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. Retrieve an existing launch plan definition. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. @@ -1297,7 +1297,7 @@ func (a *AdminServiceApiService) GetLaunchPlan(ctx context.Context, idProject st } /* -AdminServiceApiService +AdminServiceApiService Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. Retrieve a NamedEntity object. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param resourceType Resource type of the metadata to get. One of Task, Workflow or LaunchPlan. +required @@ -1392,7 +1392,7 @@ func (a *AdminServiceApiService) GetNamedEntity(ctx context.Context, resourceTyp } /* -AdminServiceApiService +AdminServiceApiService Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. Retrieve an existing node execution. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idExecutionIdProject Name of the project the resource belongs to. @@ -1487,7 +1487,7 @@ func (a *AdminServiceApiService) GetNodeExecution(ctx context.Context, idExecuti } /* -AdminServiceApiService +AdminServiceApiService Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. Retrieve input and output data from an existing node execution. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idExecutionIdProject Name of the project the resource belongs to. @@ -1582,7 +1582,7 @@ func (a *AdminServiceApiService) GetNodeExecutionData(ctx context.Context, idExe } /* -AdminServiceApiService +AdminServiceApiService Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. Retrieve the customized resource attributes associated with a project-domain combination * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param project Unique project id which this set of attributes references. +required @@ -1683,7 +1683,7 @@ func (a *AdminServiceApiService) GetProjectDomainAttributes(ctx context.Context, } /* -AdminServiceApiService +AdminServiceApiService Fetch a :ref:`ref_flyteidl.admin.Task` definition. Retrieve an existing task definition. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. @@ -1788,7 +1788,7 @@ func (a *AdminServiceApiService) GetTask(ctx context.Context, idProject string, } /* -AdminServiceApiService +AdminServiceApiService Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. Retrieve an existing task execution. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idNodeExecutionIdExecutionIdProject Name of the project the resource belongs to. @@ -1903,7 +1903,7 @@ func (a *AdminServiceApiService) GetTaskExecution(ctx context.Context, idNodeExe } /* -AdminServiceApiService +AdminServiceApiService Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. Retrieve input and output data from an existing task execution. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idNodeExecutionIdExecutionIdProject Name of the project the resource belongs to. @@ -2105,7 +2105,7 @@ func (a *AdminServiceApiService) GetVersion(ctx context.Context) (AdminGetVersio } /* -AdminServiceApiService +AdminServiceApiService Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. Retrieve an existing workflow definition. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. @@ -2210,7 +2210,7 @@ func (a *AdminServiceApiService) GetWorkflow(ctx context.Context, idProject stri } /* -AdminServiceApiService +AdminServiceApiService Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. Retrieve the customized resource attributes associated with a project, domain and workflow combination * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param project Unique project id which this set of attributes references. +required @@ -2313,7 +2313,7 @@ func (a *AdminServiceApiService) GetWorkflowAttributes(ctx context.Context, proj } /* -AdminServiceApiService +AdminServiceApiService List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. Fetch the active launch plan versions specified by input request filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param project Name of the project that contains the identifiers. +required. @@ -2429,7 +2429,7 @@ func (a *AdminServiceApiService) ListActiveLaunchPlans(ctx context.Context, proj } /* -AdminServiceApiService +AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.Execution`. Fetch existing workflow executions matching input filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. @@ -2555,7 +2555,7 @@ func (a *AdminServiceApiService) ListExecutions(ctx context.Context, idProject s } /* -AdminServiceApiService +AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. Fetch existing launch plan definition identifiers matching input filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param project Name of the project that contains the identifiers. +required @@ -2676,7 +2676,7 @@ func (a *AdminServiceApiService) ListLaunchPlanIds(ctx context.Context, project } /* -AdminServiceApiService +AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. Fetch existing launch plan definitions matching input filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. @@ -2799,7 +2799,7 @@ func (a *AdminServiceApiService) ListLaunchPlans(ctx context.Context, idProject } /* -AdminServiceApiService +AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. Fetch existing launch plan definitions matching input filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. @@ -2925,7 +2925,7 @@ func (a *AdminServiceApiService) ListLaunchPlans2(ctx context.Context, idProject } /* -AdminServiceApiService +AdminServiceApiService Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. Retrieve a list of MatchableAttributesConfiguration objects. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param optional nil or *ListMatchableAttributesOpts - Optional Parameters: @@ -3022,7 +3022,7 @@ func (a *AdminServiceApiService) ListMatchableAttributes(ctx context.Context, lo } /* -AdminServiceApiService +AdminServiceApiService Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. Retrieve a list of NamedEntity objects sharing a common resource type, project, and domain. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param resourceType Resource type of the metadata to query. One of Task, Workflow or LaunchPlan. +required @@ -3145,7 +3145,7 @@ func (a *AdminServiceApiService) ListNamedEntities(ctx context.Context, resource } /* -AdminServiceApiService +AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. Fetch existing node executions matching input filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param workflowExecutionIdProject Name of the project the resource belongs to. @@ -3273,7 +3273,7 @@ func (a *AdminServiceApiService) ListNodeExecutions(ctx context.Context, workflo } /* -AdminServiceApiService +AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. Fetch child node executions launched by the specified task execution. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param taskExecutionIdNodeExecutionIdExecutionIdProject Name of the project the resource belongs to. @@ -3413,7 +3413,7 @@ func (a *AdminServiceApiService) ListNodeExecutionsForTask(ctx context.Context, } /* -AdminServiceApiService +AdminServiceApiService Fetches a list of :ref:`ref_flyteidl.admin.Project` Fetch registered projects. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param optional nil or *ListProjectsOpts - Optional Parameters: @@ -3530,7 +3530,7 @@ func (a *AdminServiceApiService) ListProjects(ctx context.Context, localVarOptio } /* -AdminServiceApiService +AdminServiceApiService Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. Fetch existing task executions matching input filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param nodeExecutionIdExecutionIdProject Name of the project the resource belongs to. @@ -3655,7 +3655,7 @@ func (a *AdminServiceApiService) ListTaskExecutions(ctx context.Context, nodeExe } /* -AdminServiceApiService +AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. Fetch existing task definition identifiers matching input filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param project Name of the project that contains the identifiers. +required @@ -3776,7 +3776,7 @@ func (a *AdminServiceApiService) ListTaskIds(ctx context.Context, project string } /* -AdminServiceApiService +AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. Fetch existing task definitions matching input filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. @@ -3899,7 +3899,7 @@ func (a *AdminServiceApiService) ListTasks(ctx context.Context, idProject string } /* -AdminServiceApiService +AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. Fetch existing task definitions matching input filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. @@ -4025,7 +4025,7 @@ func (a *AdminServiceApiService) ListTasks2(ctx context.Context, idProject strin } /* -AdminServiceApiService +AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. Fetch an existing workflow definition identifiers matching input filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param project Name of the project that contains the identifiers. +required @@ -4146,7 +4146,7 @@ func (a *AdminServiceApiService) ListWorkflowIds(ctx context.Context, project st } /* -AdminServiceApiService +AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. Fetch existing workflow definitions matching input filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. @@ -4269,7 +4269,7 @@ func (a *AdminServiceApiService) ListWorkflows(ctx context.Context, idProject st } /* -AdminServiceApiService +AdminServiceApiService Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. Fetch existing workflow definitions matching input filters. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. @@ -4395,7 +4395,7 @@ func (a *AdminServiceApiService) ListWorkflows2(ctx context.Context, idProject s } /* -AdminServiceApiService +AdminServiceApiService Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. Register a project. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param body @@ -4485,7 +4485,7 @@ func (a *AdminServiceApiService) RegisterProject(ctx context.Context, body Admin } /* -AdminServiceApiService +AdminServiceApiService Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` Relaunch a workflow execution. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param body @@ -4575,7 +4575,7 @@ func (a *AdminServiceApiService) RelaunchExecution(ctx context.Context, body Adm } /* -AdminServiceApiService +AdminServiceApiService Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. Terminate the active workflow execution specified in the request. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. @@ -4671,7 +4671,7 @@ func (a *AdminServiceApiService) TerminateExecution(ctx context.Context, idProje } /* -AdminServiceApiService +AdminServiceApiService Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. Update the status of an existing launch plan definition. At most one launch plan version for a given {project, domain, name} can be active at a time. If this call sets a launch plan to active and existing version is already active, the result of this call will be that the formerly active launch plan will be made inactive and specified launch plan in this request will be made active. In the event that the formerly active launch plan had a schedule associated it with it, this schedule will be disabled. If the reference launch plan in this request is being set to active and has a schedule associated with it, the schedule will be enabled. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param idProject Name of the project the resource belongs to. @@ -4769,7 +4769,7 @@ func (a *AdminServiceApiService) UpdateLaunchPlan(ctx context.Context, idProject } /* -AdminServiceApiService +AdminServiceApiService Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. Update the fields associated with a NamedEntity * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param resourceType Resource type of the metadata to update +required @@ -4867,7 +4867,7 @@ func (a *AdminServiceApiService) UpdateNamedEntity(ctx context.Context, resource } /* -AdminServiceApiService flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. +AdminServiceApiService Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. Update a project. * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param id Globally unique project name. @@ -4959,7 +4959,7 @@ func (a *AdminServiceApiService) UpdateProject(ctx context.Context, id string, b } /* -AdminServiceApiService +AdminServiceApiService Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. Update the customized resource attributes associated with a project-domain combination * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param attributesProject Unique project id for which this set of attributes will be applied. @@ -5053,7 +5053,7 @@ func (a *AdminServiceApiService) UpdateProjectDomainAttributes(ctx context.Conte } /* -AdminServiceApiService +AdminServiceApiService Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. Update the customized resource attributes associated with a project, domain and workflow combination * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). * @param attributesProject Unique project id for which this set of attributes will be applied. diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_execution_list.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_execution_list.go index 2d3390aa716..bffe0c3a0b1 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_execution_list.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_execution_list.go @@ -9,7 +9,6 @@ package flyteadmin -// Used as a response for request to list executions. type AdminExecutionList struct { Executions []AdminExecution `json:"executions,omitempty"` // In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. If there are no more results, this value will be empty. diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_launch_plan_list.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_launch_plan_list.go index 26cd09de616..3e91d5a0b95 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_launch_plan_list.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_launch_plan_list.go @@ -9,7 +9,6 @@ package flyteadmin -// Response object for list launch plan requests. type AdminLaunchPlanList struct { LaunchPlans []AdminLaunchPlan `json:"launch_plans,omitempty"` // In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. If there are no more results, this value will be empty. diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_launch_plan_update_request.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_launch_plan_update_request.go index b0037de64fa..bda31c28a12 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_launch_plan_update_request.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_launch_plan_update_request.go @@ -9,7 +9,6 @@ package flyteadmin -// Request to set the referenced launch plan state to the configured value. type AdminLaunchPlanUpdateRequest struct { // Identifier of launch plan for which to change state. +required. Id *CoreIdentifier `json:"id,omitempty"` diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_list_matchable_attributes_response.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_list_matchable_attributes_response.go index 874ff8eff81..92b56e3124f 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_list_matchable_attributes_response.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_list_matchable_attributes_response.go @@ -9,7 +9,6 @@ package flyteadmin -// Response for a request for all matching resource attributes for a resource type. type AdminListMatchableAttributesResponse struct { Configurations []AdminMatchableAttributesConfiguration `json:"configurations,omitempty"` } diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_node_execution_list.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_node_execution_list.go index 426c4eaf25d..6ee23b657e2 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_node_execution_list.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_node_execution_list.go @@ -9,7 +9,6 @@ package flyteadmin -// Request structure to retrieve a list of node execution entities. type AdminNodeExecutionList struct { NodeExecutions []FlyteidladminNodeExecution `json:"node_executions,omitempty"` // In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. If there are no more results, this value will be empty. diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_domain_attributes.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_domain_attributes.go index 3f6bde9e00c..8cc141bc426 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_domain_attributes.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_domain_attributes.go @@ -9,7 +9,6 @@ package flyteadmin -// Defines a set of custom matching attributes which defines resource defaults for a project and domain. For more info on matchable attributes, see - :ref:`ref_flyteidl/admin/matchable_resource.proto`. type AdminProjectDomainAttributes struct { // Unique project id for which this set of attributes will be applied. Project string `json:"project,omitempty"` diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_domain_attributes_delete_request.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_domain_attributes_delete_request.go index 6c5bac223e4..00b251417de 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_domain_attributes_delete_request.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_domain_attributes_delete_request.go @@ -9,7 +9,6 @@ package flyteadmin -// Request to delete a set matchable project domain attribute override. type AdminProjectDomainAttributesDeleteRequest struct { Project string `json:"project,omitempty"` Domain string `json:"domain,omitempty"` diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_domain_attributes_get_response.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_domain_attributes_get_response.go index 8b21c3564b6..b0a90f48372 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_domain_attributes_get_response.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_domain_attributes_get_response.go @@ -9,7 +9,6 @@ package flyteadmin -// Response to get an individual project domain attribute override. type AdminProjectDomainAttributesGetResponse struct { Attributes *AdminProjectDomainAttributes `json:"attributes,omitempty"` } diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_domain_attributes_update_request.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_domain_attributes_update_request.go index b1a3c00ff4f..ffb143d7837 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_domain_attributes_update_request.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_domain_attributes_update_request.go @@ -9,7 +9,6 @@ package flyteadmin -// Sets custom attributes for a project-domain combination. type AdminProjectDomainAttributesUpdateRequest struct { Attributes *AdminProjectDomainAttributes `json:"attributes,omitempty"` } diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_register_response.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_register_response.go index 05f45a1d026..beae16e4a45 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_register_response.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_register_response.go @@ -9,5 +9,6 @@ package flyteadmin +// Purposefully empty, may be updated in the future. type AdminProjectRegisterResponse struct { } diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_update_response.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_update_response.go index 10617a77429..ca1f7fb47c2 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_update_response.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_update_response.go @@ -9,5 +9,6 @@ package flyteadmin +// Purposefully empty, may be updated in the future. type AdminProjectUpdateResponse struct { } diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_task_create_request.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_task_create_request.go index 755d8fc7258..0c36189c4db 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_task_create_request.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_task_create_request.go @@ -9,7 +9,6 @@ package flyteadmin -// Represents a request structure to create a revision of a task. type AdminTaskCreateRequest struct { Id *CoreIdentifier `json:"id,omitempty"` Spec *AdminTaskSpec `json:"spec,omitempty"` diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_task_execution_list.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_task_execution_list.go index 7a80ddfacb5..e5c42e9d01f 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_task_execution_list.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_task_execution_list.go @@ -9,7 +9,6 @@ package flyteadmin -// Response structure for a query to list of task execution entities. type AdminTaskExecutionList struct { TaskExecutions []FlyteidladminTaskExecution `json:"task_executions,omitempty"` // In the case of multiple pages of results, the server-provided token can be used to fetch the next page in a query. If there are no more results, this value will be empty. diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_task_list.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_task_list.go index 7f56211650a..32baeb53159 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_task_list.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_task_list.go @@ -9,7 +9,6 @@ package flyteadmin -// Represents a list of tasks returned from the admin. type AdminTaskList struct { // A list of tasks returned based on the request. Tasks []AdminTask `json:"tasks,omitempty"` diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_workflow_attributes.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_workflow_attributes.go index aa1a401fa65..dba5c88346d 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_workflow_attributes.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_workflow_attributes.go @@ -9,7 +9,6 @@ package flyteadmin -// Defines a set of custom matching attributes which defines resource defaults for a project, domain and workflow. For more info on matchable attributes, see - :ref:`ref_flyteidl/admin/matchable_resource.proto`. type AdminWorkflowAttributes struct { // Unique project id for which this set of attributes will be applied. Project string `json:"project,omitempty"` diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_workflow_attributes_delete_request.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_workflow_attributes_delete_request.go index b7019a10bde..31bca658dbe 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_workflow_attributes_delete_request.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_workflow_attributes_delete_request.go @@ -9,7 +9,6 @@ package flyteadmin -// Request to delete a set matchable workflow attribute override. type AdminWorkflowAttributesDeleteRequest struct { Project string `json:"project,omitempty"` Domain string `json:"domain,omitempty"` diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_workflow_attributes_update_request.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_workflow_attributes_update_request.go index a989ff9e5d4..eb28b94d0d2 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_workflow_attributes_update_request.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_workflow_attributes_update_request.go @@ -9,7 +9,6 @@ package flyteadmin -// Sets custom attributes for a project, domain and workflow combination. type AdminWorkflowAttributesUpdateRequest struct { Attributes *AdminWorkflowAttributes `json:"attributes,omitempty"` } diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_workflow_create_request.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_workflow_create_request.go index 76a01871cc2..53b4cbbb081 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_workflow_create_request.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_workflow_create_request.go @@ -9,7 +9,6 @@ package flyteadmin -// Represents a request structure to create a revision of a workflow. type AdminWorkflowCreateRequest struct { Id *CoreIdentifier `json:"id,omitempty"` Spec *AdminWorkflowSpec `json:"spec,omitempty"` diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_workflow_list.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_workflow_list.go index 608863927c0..8f6b9947b32 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_workflow_list.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_workflow_list.go @@ -9,7 +9,6 @@ package flyteadmin -// Represents a list of workflows returned from the admin. type AdminWorkflowList struct { // A list of workflows returned based on the request. Workflows []AdminWorkflow `json:"workflows,omitempty"` diff --git a/flyteidl/gen/pb-go/flyteidl/service/openapi.go b/flyteidl/gen/pb-go/flyteidl/service/openapi.go index bccff61da44..d7539fee2f4 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/openapi.go +++ b/flyteidl/gen/pb-go/flyteidl/service/openapi.go @@ -78,7 +78,7 @@ func (fi bindataFileInfo) Sys() interface{} { return nil } -var _adminSwaggerJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfd\x7d\x73\x23\xb7\x95\x2f\x8e\xff\x9f\x57\x81\x3b\xb9\x55\xb6\x13\x89\xb2\x9d\xdd\x54\x56\x5b\xb7\x7e\x3f\x8e\xc4\x19\xf3\x5a\x23\x29\x12\x35\xb3\xbe\xcb\x14\x17\xec\x06\x49\x44\x4d\x80\x6e\xa0\xa5\x61\x52\x79\xef\xdf\xc2\x39\x00\x1a\xfd\x44\xb2\x49\x4a\x23\x8d\xb9\x5b\x15\x8f\xd8\xdd\x78\x3c\x38\x38\x8f\x9f\xf3\xcf\xdf\x11\xf2\x46\x3d\xd2\xe9\x94\xa5\x6f\x4e\xc9\x9b\x1f\x3b\xdf\xbf\x39\x32\xbf\x71\x31\x91\x6f\x4e\x89\x79\x4e\xc8\x1b\xcd\x75\xc2\xcc\xf3\x49\xb2\xd4\x8c\xc7\xc9\x89\x62\xe9\x03\x8f\xd8\x09\x8d\xe7\x5c\x74\x16\xa9\xd4\x12\x3e\x24\xe4\xcd\x03\x4b\x15\x97\xc2\xbc\x6e\xff\x49\x84\xd4\x44\x31\xfd\xe6\x77\x84\xfc\x0b\x9a\x57\xd1\x8c\xcd\x99\x7a\x73\x4a\xfe\x1b\x3f\x9a\x69\xbd\x70\x0d\x98\x7f\x2b\xf3\xee\xdf\xe0\xdd\x48\x0a\x95\x15\x5e\xa6\x8b\x45\xc2\x23\xaa\xb9\x14\x27\x7f\x57\x52\xe4\xef\x2e\x52\x19\x67\xd1\x86\xef\x52\x3d\x53\xf9\x1c\x4f\xe8\x82\x9f\x3c\xfc\x70\x42\x23\xcd\x1f\xd8\x28\xa1\x99\x88\x66\xa3\x45\x42\x85\x3a\xf9\x27\x8f\xcd\x1c\xff\xce\x22\xfd\x2f\xf8\x23\x96\x73\xca\x05\xfe\x5b\xd0\x39\xfb\x97\x6f\x87\x90\x37\x53\xa6\x83\x3f\x09\x79\x13\x33\x15\xa5\x7c\xa1\xed\xaa\xdc\x30\x9d\x72\xf6\xc0\x88\x9e\x31\x82\xdd\x11\xec\x8e\x98\xee\x88\x5b\x35\xb5\x60\x11\x9f\x70\x16\x93\xf1\x92\x70\xb1\xc8\x34\x49\xd9\xaf\x19\x53\x9a\x4c\x78\xa2\x59\xaa\x3a\x76\xc9\xa0\x17\xb9\x60\x29\xcc\xb3\x1f\x9b\x5e\xde\x33\xdd\x85\xb6\x2f\xa0\xe9\xeb\x84\x8a\xf0\xed\x94\xa9\x85\x14\x8a\xa9\xc2\x50\x09\x79\xf3\xe3\xf7\xdf\x97\x7e\xaa\xce\xa0\x4b\x54\x16\x45\x4c\xa9\x49\x96\x10\xd7\x52\x38\x18\xf8\x08\x36\x99\x56\x1a\x23\xe4\xcd\xff\x4e\xd9\xc4\xb4\xf3\xfb\x93\x98\x4d\xb8\xe0\xa6\x5d\x85\xb4\x14\x8c\xb6\xf0\xd5\xbf\x7e\x57\xf7\xef\x7f\x05\x33\x5a\xd0\x94\xce\x99\x59\x16\xbf\xfb\xf8\x7f\xa5\xb9\x98\xfd\x32\x9d\xe7\x7b\x5a\x1e\x78\x69\xb6\x97\x74\xce\x88\x9c\xc0\x76\xd9\x2f\xe0\xdf\x29\x53\x32\x4b\x23\x46\xc6\x2c\x91\x62\xaa\x88\x96\x95\x35\xe0\xd0\x82\x21\xb5\xf2\x13\xb3\x95\x3c\x65\x66\xaf\x74\x9a\xb1\xd2\x53\xbd\x5c\xc0\x20\x95\x4e\xb9\x98\x86\x4b\xf1\xaf\xa3\x8d\xa6\x86\x14\xda\x62\x66\xf8\x41\xe3\xc4\x86\xa2\xeb\x5e\x89\xa8\x20\x63\x46\xcc\xb9\xe4\x31\x4b\x59\x4c\xa8\x22\x94\xa8\x6c\xac\x98\x26\x8f\x5c\xcf\xb8\x30\x7f\x23\xf9\x46\x6e\xcd\x5e\xce\xda\xc0\x3f\x57\xaf\xcc\x9d\x62\xa9\x19\xf8\x03\x8f\x59\x4c\x1e\x68\x92\x31\x32\x91\x69\x61\x79\x3a\x43\x31\x98\x99\x75\x98\x8f\xb9\x80\x93\x67\xd6\xd2\x51\xc8\x1f\xdd\x72\xfd\x91\x98\xfe\x48\x26\xf8\xaf\x19\x4b\x96\x84\xc7\x4c\x68\x73\xae\x55\xb9\xb5\x3f\x4a\xe8\x9f\x26\xe4\x98\x98\x75\x66\xa9\x86\xf5\x96\x42\xb3\xcf\x5a\x91\x63\x92\xf0\x7b\x46\xbe\xb9\xe0\x4a\x93\xee\x75\xff\x9b\x23\xf2\xcd\x45\xce\x38\xd4\x37\xcf\xb0\xc2\xfe\xdf\x7f\x0b\x8e\x9e\xa6\xd3\xf2\xa1\x7b\xd3\x35\xa7\xf9\x16\xaf\x89\xbc\x85\xbf\xfd\x2e\x6c\xc7\xee\xd7\x6a\xde\x9b\x33\x5e\xcb\x75\xdb\xf0\xda\x77\x4c\x47\xb3\x35\x8c\x56\xed\xc8\x69\xcd\x76\x94\x59\xad\x7a\x5d\xbc\xd6\x4c\xe1\xa9\xf9\xed\x2e\xcc\x96\x6a\x38\x05\x94\x0b\x3c\x34\xfe\x0c\xa5\xca\x9c\x1b\x47\xcd\x2f\x84\xc5\xec\xc2\x7b\x83\x99\x05\xec\xd7\x71\xd5\x60\x55\x5e\xe0\xbc\x13\x3e\xe7\xeb\xf6\xb7\x2f\x62\x23\x8e\x59\xe6\x27\xb2\xf9\x98\xa5\x66\x19\x1c\x1b\x84\xd9\x8e\x0d\x5b\xd4\x59\x2a\x58\xbc\xc1\x34\x7f\xcd\x58\xba\x5c\x31\xcf\x09\x4d\x54\xd3\x44\xb9\xd0\xcc\xc8\xbe\xa5\xc7\x13\x99\xce\xa9\xb6\x2f\xfc\xf9\xdf\xda\x2e\x84\x96\xf7\x6c\xdd\xfe\xf7\x71\x37\x23\xaa\x80\x0c\xe6\x59\xa2\xf9\x22\x61\x64\x41\xa7\x4c\xd9\x15\xc9\x12\xad\x8e\xe0\x35\x23\x6f\xb3\xf4\xd8\xdf\x48\xd0\x83\xbb\x89\x33\x05\xbf\x90\x89\x67\x76\x82\x7d\xd6\xd0\xd2\x50\xc0\x5d\x0c\x4b\x14\xde\x30\x4f\xb0\x94\xdb\xd1\x8c\x92\xa9\x1e\x8d\x97\x9d\x7b\x56\xe9\xb7\x91\x72\xa8\x20\x54\xeb\x94\x8f\x33\xcd\xcc\xbc\x4d\x1b\xee\x2e\x05\xf6\x88\x17\xf6\x26\xac\xe1\xcb\x4d\x38\xe6\x29\x8b\x60\x6e\x6d\x0e\x8c\xff\xca\xcc\xdb\xe8\x36\x4b\x9c\xfd\x3d\x5b\x82\x7c\x52\xb3\x02\x7e\xcb\x87\x62\x28\xc8\x31\x39\xef\xdd\x9e\xf5\x2e\xcf\xfb\x97\xef\x4f\xc9\xdb\x25\x89\xd9\x84\x66\x89\x3e\x22\x13\xce\x92\x58\x11\x9a\x32\x68\x92\xc5\x46\x06\x31\x83\x61\x22\xe6\x62\x4a\x64\x1a\xb3\xf4\xe9\x96\xb1\xf4\x94\x89\x6c\x5e\xba\x57\xe0\xf7\x7c\xf4\xa5\x2f\x8c\xc8\xe1\x1f\x15\x9e\xfc\xad\xb2\xc0\x30\x63\xd3\x77\xd0\xda\xb3\x09\x39\xd1\x8c\x27\x71\xca\xc4\x89\xa6\xea\x7e\xc4\x3e\xb3\x28\xc3\x3b\xf9\x9f\xc5\x1f\x46\x46\x52\x95\x31\x2b\xfe\x52\xf8\x23\x17\x8d\x5a\x7f\xea\x35\xd8\xd6\x5f\x82\xbe\xbb\xd9\x77\xf0\x0b\x8f\x6b\xdf\x86\x5f\xd6\xcc\xc1\xbd\xb3\x62\xb0\xee\x95\xc6\x51\xb9\x17\xac\xb0\x57\xfb\x4e\xca\x74\xba\x1c\x51\xad\xd9\x7c\xa1\xb7\x90\x2f\x61\x4b\x89\x99\x2d\xc9\xf7\xd3\x8a\x9a\x28\x54\x02\x0f\xf7\x52\xa6\x19\x41\xfe\xe6\x3a\xd9\xf2\x52\xc6\xac\xe7\x9b\x7d\x27\xd3\x01\x55\xf7\xaf\x41\xbe\x2c\x0c\xfc\x39\x44\xcc\x6d\x0f\xd0\x57\x67\x00\xd8\x92\x1d\x1c\xcc\x05\xbb\xaf\xe4\xa6\xc6\x05\x99\x12\xb5\x54\x9a\xcd\xd7\x9a\x19\x5e\xcf\x42\x58\x7e\xff\x52\x07\x5c\xba\x72\x7e\x03\xa7\xbe\x78\x81\x1e\x8e\x77\x8b\x25\xdb\x97\x91\xf0\xa5\xcf\xd3\xb9\x6b\x56\x4f\xf5\xd6\x6d\x9f\x73\x4e\x58\x3a\x79\xf1\xd3\x2c\x88\x76\xfb\x1e\xe4\x13\x59\x0f\x1a\xf7\xca\xad\xf6\x08\x06\xb0\x46\x6f\x2c\x9a\x99\xfd\xf9\x33\x9f\x86\x06\x17\xb4\xae\xe9\x19\x57\xce\xf6\xc4\x52\x12\xc9\x14\x45\xc1\xd8\x1e\x77\xd4\x1c\xbb\x83\xee\x6d\x6f\x70\x4a\xba\x24\xa6\x9a\x9a\xf3\x9d\xb2\x45\xca\x14\x13\x1a\xb4\x72\xf3\xb9\x5e\x92\xb9\x8c\x59\x82\xfa\xe3\xbb\x64\xa9\x19\x39\xa7\x9a\x9e\x51\x4d\x13\x39\xed\x90\x2e\xfc\x69\x3e\xe6\x8a\xd0\x44\x49\x42\x1d\x55\xb1\xd8\x35\x41\x45\xec\x38\x0b\x25\x91\x9c\x2f\x78\xe2\x2d\xec\xde\x54\xc2\x45\xcc\x1f\x78\x9c\xd1\x84\xc8\xb1\x61\x2a\x46\xdf\xed\x3d\x30\xa1\x33\x9a\x24\x4b\x42\x93\x84\xd8\x6e\xdd\x0b\x44\xcd\x64\x96\xc4\xa6\x5d\x37\x4a\xc5\xe7\x3c\xa1\xa9\x51\xa8\x71\xb4\x57\xb6\x2d\x32\x98\x31\x3f\x56\x18\x97\x59\xcc\x39\xbd\x67\x8a\x70\x4d\x16\x52\x29\x3e\x4e\xf2\x23\x7f\xd7\x27\x30\xee\xb3\x8b\x3e\x68\xe7\x91\x26\x12\x59\xa8\xeb\xdc\x5a\x63\x5c\x8f\x73\x2a\x04\x83\x8e\xa5\x9e\xb1\xd4\x76\x6f\x5f\xfe\xd2\x8a\xf6\xdd\xe5\xed\x75\xef\xac\xff\xae\xdf\x3b\xaf\x6a\xda\x83\xee\xed\xcf\xd5\x5f\x3f\x5d\xdd\xfc\xfc\xee\xe2\xea\x53\xf5\xc9\x45\xf7\xee\xf2\xec\xa7\xd1\xf5\x45\xf7\xb2\xfa\xd0\x92\xd5\xc6\x4a\x7b\x38\xb2\x96\x47\xeb\x60\xa1\x7c\x2a\x0b\xe5\xd1\xd7\x6b\xa2\xb4\x2e\xa0\xcd\xcd\x93\x24\xe1\x4a\x9b\x05\xb2\x5f\x92\x05\x55\x0a\x05\x23\x1c\x41\x67\x28\x3e\xc8\xd4\x30\xb0\x89\x34\x3c\xc2\x08\x4f\x3a\xcd\x22\xcd\xc5\xd4\x7f\x74\x4a\x86\xd9\xf7\xdf\xff\x29\xba\xe0\xe2\x1e\xfe\xc5\x5e\xe2\xe2\x1c\xec\xb7\x07\xfb\xed\x6f\xcb\x7e\x6b\x44\x9f\x93\xd0\x6c\xfb\x34\xc1\x41\xe8\x86\x36\xf2\x84\xcc\xb4\xf9\xa7\xe9\x97\x4c\x52\x39\x07\x49\xeb\x33\x57\xc0\x2d\x1e\x65\x7a\x3f\x49\xe4\xe3\x66\xe6\xc4\xf7\x4c\x7b\x83\x9c\x91\x6c\x5e\x83\x15\xf1\x93\x9d\xa1\x1f\xf8\x7b\xa6\xcd\xd8\x6f\x6c\x2f\x87\x38\xa1\x43\x9c\xd0\x97\x8d\x13\x7a\x51\xa6\xbc\xa7\xe7\x7d\x45\xbb\x1f\x32\xc0\x06\xb7\x54\xa3\xd7\xa9\xc1\xa9\x14\xf8\x8c\x9e\x92\x69\x16\x3d\x35\x6b\x18\x66\xc1\x8b\xf1\x5a\x98\x66\x61\xd0\xcf\xcf\x30\x7f\x13\x4e\x96\x83\x0f\x65\xcb\x85\x7a\x95\x7c\x75\xc3\x2b\xe3\xd9\x3c\x20\x4f\xcf\xe7\x2b\xf1\x09\x6d\x02\x12\x5a\x44\x20\x6c\x1c\x72\xb0\x26\xc6\xa0\x36\xa8\xa0\x2e\x8a\xa0\x1a\x36\x50\x1b\x27\xb0\x53\x60\x40\xdb\x2b\x69\xf3\x90\x80\xf7\x4c\x0f\xa8\xba\x7f\x75\x57\x52\x61\xd0\xcf\x7f\x25\xfd\x46\x23\x01\x0e\xae\xff\x27\x5c\xba\xaf\xfd\x22\x7b\xb9\xce\xfd\xdf\x80\x37\xff\xe0\xbe\x6f\xb5\x46\x5f\x97\xbf\xfe\x6b\x75\xd0\xbf\x4e\x8f\xfc\xc1\x05\x7f\x70\xc1\x1f\x5c\xf0\x1b\xb8\xe0\x9f\x54\x29\x65\x86\xac\x14\x98\x1f\x43\xdd\xe6\xcd\x42\xaa\xd5\xba\xd8\x59\xca\xa8\x36\x54\x5c\xb4\xfb\x11\x68\x90\xa4\x2c\x92\x29\x78\xc8\x28\x59\xcc\xa8\x62\x44\xa7\x54\x28\xbe\x4e\x0f\xc3\x56\xc1\xd0\x66\xda\x79\x0d\x2a\x58\xc1\x2a\x08\xa3\x7e\x2e\x05\x6c\x2c\xe3\xca\x99\xc1\xe3\x54\xf7\x64\x35\xaf\xdf\xdb\xd4\x21\xc3\x73\x93\x99\x3f\x21\x35\x9b\x7b\x65\x4b\x6a\x2e\x9a\x0c\xf6\x42\xcd\xa0\xa3\xbf\x16\x6a\x2e\x18\x14\x7e\x5b\xd4\x5c\x37\xf5\x97\x40\xcd\xce\x1b\xbd\x25\x45\x57\x9d\xd9\x7b\xa1\x6a\xef\x41\x7e\x2d\x94\x5d\x71\x79\xff\xb6\xa8\xbb\x69\xfa\x5f\x96\xc2\xbd\x21\x7c\x5f\xb4\xbd\x9e\x70\xfd\x02\xbc\x06\xa2\xf5\x83\xc5\xb1\xff\x66\xa8\xb5\x32\xef\x17\x42\xa6\x27\x29\xc3\x0c\xc4\x56\xf4\x7a\x63\x3f\x6a\x4d\xb1\xee\xc3\x03\xcd\xbe\x26\x9a\x75\xbb\xf6\x72\xa8\xb6\x29\x9c\xae\x7d\x56\xee\x8a\x18\x39\x45\xe6\x54\x47\x33\xf3\x10\xfd\x73\x1b\xc2\xbc\xe4\x69\xb8\xaf\x8a\xba\x9f\x23\xf7\xf6\xeb\xb6\xc4\x1f\x2c\xf0\xbf\x41\x38\xad\x17\x13\x73\x7e\x48\x5b\x79\xa2\xb4\x15\xae\x0e\x69\x2b\x87\xb4\x95\x4d\x17\xe8\x90\xb6\x72\x48\x5b\x79\xb5\x69\x2b\x4f\x9f\xb1\xb2\x9f\xb4\x94\x57\x25\x58\x1f\x84\xea\x83\x50\x7d\xc8\x3d\xf1\x53\xdb\x17\x03\x73\x5f\xbf\x89\x59\xc2\x34\x5b\xc9\x7e\x06\x2c\x9d\x1b\x7d\xa1\x00\xa7\x5d\xe3\x48\xc8\xd1\xb7\x3c\x05\x81\xc9\x63\x15\x5f\xf2\x6d\xbf\x4e\xee\xe4\x87\x7f\x48\x95\x3b\xb0\xab\x03\xbb\xda\x66\x6a\x2f\xc7\x52\x1b\x1c\xe6\x2f\x6a\xaa\x0d\xc0\xb9\x47\x3c\xde\x0f\x3e\xb7\x17\x1b\x43\x74\xee\x7c\x29\x0a\xa0\xc8\xdb\x19\x6e\x73\xa8\xeb\x7e\xfc\x2a\x6c\xb7\x86\x8f\xc4\x3d\x88\xc4\xf3\x61\x84\xe9\x57\x02\xd3\xfd\x32\x8e\xf6\xb3\xa3\x74\xbf\x8c\x69\x1f\x6c\x89\x07\x90\xee\x83\xb5\x6c\xc3\x09\x1f\xac\x65\x2f\xd7\x5a\xf6\xa5\x4c\xe0\xcf\x7c\x3c\x9f\x4b\x98\xdb\x2e\xac\x49\xc4\x24\x65\x53\xae\x34\x4b\xcd\xea\xd5\x8a\x6f\xeb\xe3\x9c\x5e\x6b\x89\xaa\x8d\xa3\x46\xc2\x6e\xdf\xfc\xdb\x06\xc3\xbf\xb1\x37\x2b\xf0\x8b\x31\x8d\x7d\x3d\x1a\x10\xb2\xe6\x74\x49\x66\xf4\x81\x91\x09\xe5\x09\xaa\x50\x3c\xa6\xe5\xb5\x2e\xcd\x70\xd5\x80\xfe\xa3\xdd\x80\x68\x71\x38\x29\x9b\xb0\x94\x89\x08\xb9\x3e\xca\x46\x11\x4d\x5c\x22\x09\xbc\x33\x33\x0a\x6d\x92\x32\x1a\x2f\xc9\x98\x31\xe1\xc9\xa6\x86\xeb\x37\x8c\x79\x2f\xe2\xed\x17\x57\xe8\xaa\xd4\xf3\x52\xd4\xb9\x27\x89\xbd\xa9\x67\x09\xbb\xab\x71\xea\xc7\xd7\xc5\x2a\x0e\x21\x38\x07\xf3\xdb\x97\x37\xbf\x1d\x42\x70\x0e\x6a\xf3\x0b\x53\x9b\x0f\x21\x38\x87\x10\x9c\x83\x51\x61\xf5\xb4\x0f\x46\x85\xaf\x22\x04\xe7\x09\x6b\x4a\x3f\x97\xd4\x7d\x10\xba\xdd\x7b\x07\xa1\xfb\x20\x74\x7f\xa5\x42\xf7\xcb\x58\xe1\x83\xc4\x7d\x90\xb8\x0f\x12\xf7\x41\xe2\x3e\x48\xdc\x7b\x5f\xc6\x83\xc4\x5d\x2f\x71\xc3\xbf\x1c\x00\xec\xce\x31\xf0\xed\xbd\x61\xef\x99\x7e\xad\xae\xb0\x83\x98\x7d\x10\xb3\x5f\xb6\x98\xfd\x62\x26\xf4\xf5\x01\x3a\x1e\x20\x11\x0f\x90\x88\x07\x48\xc4\xa7\x85\x44\x74\x5f\xbf\x59\x64\xab\x65\x91\xbb\x45\xec\xb2\x61\x94\xa6\x3a\x03\xf5\x6f\x03\xb9\x84\x74\x35\x99\x4b\xa3\x0c\x09\x56\x78\xc7\x31\x20\x8c\xfc\x98\xf2\x07\x26\x88\x8b\xfa\x3e\xb2\xd7\xcc\x11\x58\x27\xfe\xe5\x4f\x07\xa6\xe1\x50\x4d\x28\xd1\x7c\xce\x3a\xa4\x3f\xc1\xd3\x1c\x19\xf2\x57\x4c\xab\x52\xb8\x10\x92\x26\x7c\x24\xe2\x7c\xac\xae\x6f\x9e\x47\x8f\xe0\x6b\x47\x8e\x19\x66\x89\x46\xd6\xe8\x1a\x7f\xe4\x49\x62\xc6\x60\x39\x08\x9c\x84\x39\x4b\x13\xf7\x65\xa1\x5b\xf7\xf2\x9c\xc6\xe6\xe4\x06\x43\xc8\xf3\x85\xc2\xf7\xe1\xce\xe5\xca\xc7\xbf\x14\xbe\xc7\xaf\x3b\xc4\x2a\xe3\x08\x5d\xb6\xd1\x30\x66\x34\x36\x27\x30\x9a\xb1\x38\x4b\x18\xa1\x4a\xc9\x88\x53\xd0\x0b\xf0\x8e\x26\x5c\x3b\xd5\xdd\xbd\xe4\xba\x8e\xb9\xa2\xe3\x84\xc5\x76\x8d\x59\x1e\x8e\xb3\x72\xe4\x5c\x91\x31\x33\x4b\x6c\xf8\x48\x71\xf5\x67\x28\x21\xd4\x8c\x26\x18\x0a\xab\x8e\x84\x09\x1c\xc8\x0a\x09\x17\x89\xf3\xb5\x0a\xb9\x38\xfa\x43\x36\xd5\x41\xe4\x3d\x88\xbc\xad\x26\xf4\x55\x89\xbc\x2f\x28\x84\xd0\x31\xa4\x2f\x1a\x42\x08\x4e\x45\xc3\xf9\x47\xde\x52\xa8\xb6\x33\x9e\x78\x63\xec\x07\xd7\x64\xd7\xb7\x78\x26\xc5\x84\x4f\xb3\xd4\x0a\xdc\x56\x1a\x5e\xe3\xb9\xac\x69\xe7\x55\xdc\x38\xf5\x43\x7f\xae\x8b\xa7\x8d\x42\x97\x1b\x7d\xad\x3a\x66\x84\xf0\xd1\x4d\xef\xf6\xea\xee\xe6\xac\x77\x4a\xba\x8b\x45\xc2\xd1\x0f\x13\x65\x4a\xcb\x39\xff\x87\x99\x14\x82\x17\x7b\x3e\x6e\x85\x12\x05\xe2\x07\x38\x7e\x8c\xd2\x44\x8e\xc9\xd9\xc5\xdd\xed\xa0\x77\xd3\xd0\xa0\x25\x09\xa8\x9f\xc4\xe6\x8b\x04\x64\x94\xfb\x6c\xcc\x52\xc1\x34\x53\x24\x4a\x32\x88\x4c\xf7\xee\x20\x6c\xb4\xf7\x5f\xbd\xb3\xbb\x41\xff\xea\x72\xf4\xd7\xbb\xde\x5d\xef\x94\x38\xda\x32\xcd\x9a\x71\x99\x51\xc4\x4b\x41\xe7\x46\x33\x2d\xa2\x2c\xff\x9a\xb1\x0c\x44\x22\x3e\x15\x73\x26\x74\xb9\x45\x37\xe0\x8b\xee\xdb\xde\x45\xb1\xe5\x19\x23\x3f\xff\x25\x1f\x54\x42\xc7\x2c\xb1\xfe\x29\x70\xb9\x18\xf6\x9d\x77\x64\x1d\x57\x19\xae\xea\x5f\xef\xba\x17\xfd\xc1\x2f\xa3\xab\x77\xa3\xdb\xde\xcd\xc7\xfe\x59\x6f\x64\xd5\x8d\xb3\xae\xe9\xb7\xd0\x93\xd5\x4a\xc8\xaf\x19\x4d\x8c\xda\x2a\x27\xe0\xf0\xe1\x11\x23\x8f\x33\x26\x48\x26\x80\xe2\x50\x17\x06\xcd\x20\x4c\x92\xc7\x19\x5d\x5f\xdc\xbd\xef\x5f\x8e\xae\x3e\xf6\x6e\x6e\xfa\xe7\xbd\x53\x72\xcb\x12\xd0\x16\xdd\xa2\xc3\x2e\x2e\x92\x6c\xca\x05\xe1\xf3\x45\xc2\xcc\x6a\xe0\xe1\x1c\xb3\x19\x7d\xe0\x32\x2d\x68\x0c\xb0\x8e\x86\xa0\xb0\x7d\xa7\x95\x8d\x82\xa5\xbb\xba\x7c\xd7\x7f\x7f\x4a\xba\x71\xec\xe7\xa0\xa0\x8d\x02\xe5\xb8\xdc\xfe\xe3\x4a\x6e\x7f\x44\x31\xca\x01\x8a\x6d\x3d\xb0\x34\xe5\x31\x53\x5f\xdc\x8a\x5e\x38\x10\x55\x3d\xb3\x4c\xe1\xd5\x37\x4a\xe4\xba\xea\x85\x02\xf5\x55\x5f\x5c\x47\x45\xd5\x2f\x4a\x64\xd0\xac\x5d\x57\xf6\x71\x63\xc5\xb9\xb8\x3e\xcf\x76\x6b\x19\x66\x17\x8f\x9c\x01\xe5\xe4\x9f\x05\xa6\xf7\xaf\x27\xc3\xc8\x21\x41\x62\xaf\xbd\xc5\xd6\xd5\x1f\xcd\x3f\x78\x0d\x77\x57\x38\xdc\x17\x74\x4f\xdd\x78\xc3\xa2\xb5\x34\x1a\x76\x3c\x67\x9a\x42\x39\x3e\x2d\xc9\x94\xe9\x0e\xb9\x12\xf0\x6c\x40\xd5\xfd\x11\x71\x30\xd4\x44\xa6\x24\x17\xb9\x9e\x21\xa3\xf7\x95\xd8\xc2\xda\xab\x01\x07\x75\xf6\xa0\xce\xd6\xaf\xcc\x21\x50\xaa\x61\x85\xf7\x75\x07\x6e\x63\x3e\x76\x51\x0a\x25\xfb\x5f\xe1\x0e\x5b\x6b\xeb\x7b\xbd\xd7\xd7\xf3\x5a\xfb\xf6\x7a\x99\x65\x30\xf4\xc3\x4d\x85\xff\x77\xb8\xa9\x0e\x37\xd5\xe1\xa6\x7a\x01\x2b\xfc\xc5\x2d\xa7\x35\xdc\xfd\x8b\x9a\x4e\xd7\x29\xa1\x3b\x61\x6b\xd5\xd8\x55\xab\xca\xa7\x22\x6a\x46\x53\xac\xac\x14\xc9\xf9\x5c\x8a\x20\x06\x63\xb9\x60\x47\xc4\x7b\x7a\xc1\x2a\x06\xc3\x58\x67\x76\xcd\xbb\xe1\xaf\xc3\xe0\x1a\xac\xcb\x73\xe4\x8c\xec\xf5\xae\xc7\x60\xec\x83\xea\xfa\x84\x02\xc1\x01\x13\x6d\xaf\x98\x68\x2f\x63\xae\x4f\x92\x5f\xb2\x7f\x63\xf3\xeb\xc8\x29\x39\x80\x9f\x1d\xb2\x26\x0e\x59\x13\xf0\xfb\x01\xfc\x6c\x7f\xd4\xfa\xb4\xc2\xb7\x8c\xd9\xa8\x54\x16\xc1\xff\x39\x2a\xfb\x7f\x0a\x4f\x42\x67\x50\xe1\x41\x9e\x46\x02\xad\xf3\x78\xf7\x34\x92\x62\xd1\xea\x75\xce\xa2\xb0\xcc\xf1\x0b\x97\xbc\x27\xc9\x52\x33\x1e\x27\xd5\xfa\xcc\xcf\x10\x59\x57\xb7\xd1\x5f\xa3\xb5\xa7\x86\x6c\x0f\xa6\x9f\xb5\x0b\xf5\xb5\xc2\x99\xe7\x7c\xe9\x15\xb9\x2e\x36\x63\xde\x2e\x2c\x64\xd4\xc0\xc2\xeb\x9f\x7b\x46\x5e\xff\x78\x57\x1c\x8e\x22\xef\xde\x16\x7f\xa3\xc0\x1b\x5f\x87\x3d\x25\x1c\xf1\x73\x58\x54\x56\xee\xfe\x57\xc7\xd7\x57\xd1\xf2\x81\xbb\x6f\xb8\x5c\x5f\x2b\x8f\x3f\xe0\x66\xac\xb2\x71\x1c\x80\x29\x0e\x26\x96\x97\x33\xe1\x83\x89\xe5\x55\x9b\x58\xd0\x73\x3b\x5a\xd0\x94\x09\x5d\x23\x54\x97\xaf\x13\x78\x3d\x30\x94\x7b\xa9\x03\x1a\x40\x69\xd1\x5e\xc8\xfe\xaa\xfa\xba\x6c\x2e\x56\x30\x18\xa1\x5c\x11\x24\x8c\x9c\xfc\x33\xff\x77\x20\xb5\x07\x3f\xd6\x78\x40\x5b\xc4\x32\xb9\x10\x72\x16\xe7\xb2\x4e\xde\x78\x4d\x8c\x93\x1d\xc3\xb1\x93\x80\x72\x5f\xfe\xda\x90\xa7\x6b\xfc\xf4\x1c\xbe\x7c\x5d\x99\x27\x0d\x43\x7f\xde\x50\xa8\x2a\x25\x6c\x76\xb0\x9c\xf0\xce\x31\x97\xe2\x71\xc6\xc1\xd9\x00\x78\x57\x70\x95\x06\x1b\xee\x72\x56\x29\xa4\x93\x34\xdd\x0c\xcf\x2d\xbb\x55\xc8\x7d\xb3\x89\x5b\x1a\x7d\xbd\xf3\xfe\xe2\x81\x21\x6b\xe8\xfe\x8b\x06\x89\xac\xe0\x99\xfb\x89\x0f\x79\x3e\xfe\xf8\x9e\xe9\xaf\x8f\x39\xbe\x67\xfa\xb9\x38\xe3\xb6\xec\x70\x25\x4b\xc8\xcb\x77\xbc\xd2\x80\x84\x0a\x17\x7c\xb5\xd3\x6d\x13\x18\xf4\x09\x27\x69\xa3\x82\x7c\x12\x6e\x38\x55\x2d\xad\x06\x5f\x50\x82\x0e\x89\x9a\x87\x44\xcd\x43\xa2\xe6\x21\x51\xf3\xe5\x25\x6a\xba\xaf\x37\xa9\xfb\x7d\x0e\xaf\x3c\xa3\xec\x82\x1d\x7e\x7d\xe2\x0b\xce\xeb\x20\xc1\x1c\x24\x98\x7d\x4c\xf7\xa5\x6a\x72\x8e\xca\x5f\x82\x26\xd7\x0a\x1d\x05\x3d\xca\x79\xb5\x3c\x77\x28\xd6\x7a\x8d\xaf\x5d\x67\xaf\x87\x35\xa9\xa7\xe6\x3e\xbb\xf8\xc6\xdc\xba\x7f\xb5\xae\xb1\x03\xa4\x7c\xed\x5a\x1d\x3c\x77\x2b\x16\xe7\xe0\xb9\x3b\x78\xee\x5e\x9c\xe7\x6e\xef\xea\xc8\xda\x72\xc8\x37\x79\x0d\xe4\x9a\xd0\x97\xf2\xed\xec\xde\xbe\xae\xc8\xc2\x2f\xfd\x82\x76\x23\x7f\x2e\x6d\xe1\xa5\x48\x93\xf9\xbc\x5f\x84\xfc\x78\xf2\xcf\x52\x60\x79\xc5\x11\xaa\xb2\xf9\x9c\xa6\x4b\xb8\xbf\x6c\x98\x75\x07\x26\xd4\xb1\x33\x0a\x20\xa7\xed\xf5\x34\xce\x74\x10\x15\xa6\x0c\x21\x2f\x58\xaa\x97\xc1\x9b\x6c\xbe\xd0\xcb\xff\x1c\x0a\x9e\x03\xdf\xf2\xa9\x90\x29\x32\x1b\xf3\xf1\x8c\x8a\x38\x31\xe7\x40\xf9\x76\x22\x2a\x84\xd4\x20\x05\x80\x37\x25\x26\x0f\x9c\xa2\xcc\xd0\xbd\xee\x17\xce\x49\xbd\xfb\x76\xa3\x33\x55\xf0\xbc\xbe\xa2\x13\xf5\xdc\x90\xb2\x6b\xae\xab\xf7\x89\x1c\x03\x4a\x79\x56\xd4\xc0\x4d\x03\x07\x5f\x61\x61\xe7\xbe\x14\x13\xd0\x54\xdd\x97\xd3\x56\x8a\xd1\xd0\xa3\x95\x89\x2c\x6b\xde\x2d\xe0\x9c\xad\x7e\xb5\x94\xec\x52\x7c\x66\xd3\x5f\xe0\x31\x0c\xb9\x3c\x0e\xf7\x63\xd8\xa1\xfb\x2d\x6f\xd9\xfd\xe2\xaa\xb2\xc0\x8f\x29\xd3\xe9\x72\x44\xb5\x36\x0c\x69\xf7\x0c\x9b\xa2\xe7\x60\x4d\x86\xcd\x80\xaa\xfb\x57\x99\x61\x53\x1c\xf8\x93\x33\x9a\x0d\x69\xf2\xab\x8b\xcd\xde\xf4\x84\x1d\xe2\xb4\xb7\x58\xba\xaf\x35\x66\x7b\x15\x0b\x7d\x31\x23\x2c\x71\xf1\xaf\xf1\xe4\x16\xef\xa4\xc3\x11\x5d\xb5\x46\x5f\x1d\x48\x7d\x49\xd4\x58\x33\xb7\x57\x02\x56\x5f\x96\x96\xf6\x3d\xaa\xa7\xb1\x4f\x07\xbb\x71\xa8\x2e\x75\xa8\x2e\x75\xa8\x2e\xf5\xd4\xd5\xa5\x36\xd3\x34\x37\x56\x33\x37\xd5\x31\x37\x53\x30\x9b\xb5\xcb\x1d\x52\x73\x8b\x4a\xdf\xb6\xa9\xb9\x05\xa5\xea\x55\xb8\x5a\x0b\x23\x7e\x8e\xd4\xdc\xdf\xa8\x1e\x78\x50\x02\x9f\x64\xdd\xbe\x56\x0d\xf0\x85\xab\x7f\x87\xa4\xe2\x03\x70\xda\x21\x70\x62\x8f\x8b\x73\x08\x9c\x38\x04\x4e\x7c\xb5\x81\x13\xcd\xda\x04\x8f\x77\xcd\x5a\xab\x13\xe3\x73\x21\xb7\x80\x42\xba\xbd\x48\xdf\x8f\x5f\x85\x2c\x1f\xc0\x16\x7b\xd3\x47\xfa\x1c\x32\xfd\x01\x10\x77\xaf\x80\xb8\x2f\x6e\xda\x07\x71\xef\x20\xee\x1d\x24\x9a\x0d\x27\x7c\x90\x68\x5e\xae\x44\xf3\xa5\xd4\x94\xaf\x09\xb3\xc5\x88\x58\x85\x94\x95\xb5\xe1\xb0\x67\x29\x83\xc0\x3d\x11\xfb\xc4\x15\x42\xcb\xa2\xda\x2a\x39\x0c\x1b\x30\x92\xd8\x6b\x10\xc3\xcc\x38\x71\xc4\x1b\xc4\xf1\x85\x1d\xbe\xf9\xb7\x0d\x06\x7e\x63\xef\x4f\xe0\x0a\x63\x1a\xfb\x0a\xfe\x20\x4a\xcd\xe9\x92\xcc\xe8\x03\x23\x13\xca\x13\x34\x72\xf1\x98\x96\xd7\xb7\x34\xb7\x55\x03\xfa\x8f\x76\x03\xa2\xc5\xe1\xe4\xa9\x69\x86\xb7\xa3\x04\x14\xd1\xc4\xb9\xb8\xe0\x9d\x19\x55\x84\x26\x29\xa3\xf1\x92\x8c\x19\x13\x41\x72\xd3\xa6\x63\xde\x8b\x10\xfb\xc5\x03\x09\x43\xba\xf9\xa2\x71\xc5\x70\xc2\x1b\x4b\x9e\xee\x4f\x3b\xdb\x45\x25\x53\x3f\xbe\x16\x56\xf0\x1c\x0a\xd8\x57\xec\x38\x39\x38\x47\x7e\x9b\x25\xca\x5e\x8c\x5c\x7f\x50\x7e\x0f\x59\xa2\x07\x67\xc7\xc1\x34\x70\x30\x0d\xec\x7d\x19\x5f\x92\x69\xe0\x0b\x4a\xd4\x98\x33\xb3\x63\x6d\x81\x7d\xca\xd6\x07\xd1\xfa\x20\x5a\x1f\x44\xeb\xaf\x56\xb4\x7e\x19\x2b\x7c\x90\xab\x0f\x72\xf5\x41\xae\x3e\xc8\xd5\x07\xb9\x7a\xef\xcb\x78\x90\xab\x4b\x72\x35\xfc\xcb\xe5\x8c\xef\x27\x41\x7c\x33\xcf\x95\xcd\x10\x7f\x2d\x02\xf5\x41\x98\x3e\x08\xd3\x2f\x5b\x98\x7e\x31\x13\xfa\xfa\xd2\x42\x0f\x89\x95\x87\xc4\xca\x43\x62\xe5\x17\x48\xac\x74\xac\x64\xdb\x62\x1d\x1f\x2d\x6f\xf9\x96\x8b\x28\xc9\x40\xc0\x34\x3f\xbf\xcd\x78\x12\x13\x50\x6c\x8c\x7e\xca\xa5\xf8\x0e\xe8\x09\x48\x01\xc6\xe9\xe0\xe5\x57\x0b\x30\x1f\x2b\x9c\xee\xc5\xca\x30\xf9\x68\xb7\x85\xd0\xda\xd7\x9e\xfa\x22\x93\x5b\xd4\xb4\x2a\xfc\xe6\x1a\x7a\xee\x4a\x57\x47\x4e\xf4\x30\x6c\xc7\x0d\xa2\x55\xdd\xab\x4f\xf6\xa3\xd7\x05\x8b\x5e\x1d\xf5\xa1\xda\x15\x09\x76\xed\x50\xed\xea\x09\xe7\xed\xce\xd9\x9a\x99\x3b\x1a\x45\x93\xf1\x2b\x9d\xf6\x17\x8f\xb7\x6b\x3e\xe9\x5f\x34\xfa\xae\xf6\xe6\xa8\xe4\x48\xe5\x25\xca\x9f\xbf\xc8\xd7\x2e\x57\xc3\x7b\xa6\xbf\x96\x7b\xe1\x50\xe8\xeb\x50\x26\x63\x4f\xd3\xdd\x8a\xef\xbf\xda\xd9\x1e\xca\x9a\x1d\xca\x9a\x1d\xca\x9a\x15\x8e\xe0\xa1\xac\xd9\xa1\xac\x19\xa9\x61\x7f\x7b\x28\x6b\xb6\x8b\xb4\x86\xdd\x7f\x2d\x02\xdb\xa1\xb4\xd9\x41\x66\xdb\xdf\x74\x7f\x5b\x32\xdb\x0b\xd4\xd6\x5f\x44\x0d\x37\xaf\xad\xef\x0b\xca\x24\x0c\x34\xf0\xdc\x7a\xaf\x88\x26\x6e\x25\x0f\xa8\x26\xf6\xff\x0e\xa8\x26\x07\x54\x93\x86\x59\x1f\x02\x50\x0f\xa8\x26\xe4\x10\x62\x79\x08\xb1\x7c\xc9\x21\x96\x1b\x6c\xe3\x01\xd5\x64\x43\x39\x6e\x1f\xc8\x26\x35\x62\xdb\x7a\x74\x93\x4f\x55\x75\xe2\xc5\x8a\x64\x6e\xac\x07\x94\x93\x03\xca\xc9\xae\xb4\xf3\x22\xb4\xb7\x27\x41\x3b\xa9\x61\x03\xbb\xaa\x6c\xaf\x03\xf5\xc4\x8d\xf6\x90\x9e\x79\x88\x28\x7f\xf9\x11\xe5\x2f\x2e\x3d\xf3\xc5\xc8\xfe\x07\x05\xf9\x90\xa1\x79\xc8\xd0\x3c\x98\x0f\x0e\xe6\x83\xbd\x2f\xe3\x4b\x32\x1f\x7c\x61\x09\x7b\x2f\xe8\x27\x4f\x21\x6b\x1f\x44\x6d\x7c\xef\x20\x6a\x1f\x44\xed\xaf\x54\xd4\x7e\x19\x2b\x7c\x90\xb3\x0f\x72\xf6\x41\xce\x3e\xc8\xd9\x07\x39\x7b\xef\xcb\x78\x90\xb3\x9f\x1c\x0d\xa5\xa5\xb7\x2b\x48\x00\x7a\x4d\x02\xf6\x41\xb8\x3e\x08\xd7\x2f\x5b\xb8\x7e\x31\x13\x3a\x20\xa3\x1c\x90\x51\x0e\xc8\x28\x07\x64\x94\x6d\xa4\x9a\xdf\xd9\x53\xf9\x26\xb8\x88\xfd\x8d\xfd\xe6\x6d\x22\xc7\x83\xe5\x82\x99\xff\x9e\xf3\x39\x13\x0a\x64\x50\xae\x97\xa1\x14\xd3\xb0\xf2\xd5\x35\x7f\x73\xdb\xbf\x7c\x7f\x11\x66\x11\xbd\xf9\x70\x77\x31\xe8\x5f\x77\x6f\xfc\xba\xf8\x59\x85\x6b\x61\xbf\x2b\x08\x62\x67\x72\xbe\xa0\x29\x57\x52\xf4\x3e\x9b\xd3\x69\x86\x76\x05\xa2\x8f\x4c\xb7\x1b\x5d\xef\xaf\xe1\xc8\x2e\x8b\x7f\xbe\x1f\x14\xff\x2a\xcc\xe2\x62\x50\xfc\xab\xb7\x72\x36\x41\xc3\x65\x76\x76\x4c\xde\x0f\x4e\xc9\x7b\x08\xd5\x48\xc9\x60\x46\x91\x25\x5d\x0c\x4e\xc9\x05\x53\x0a\x7e\xc9\x3f\xd6\x5c\x27\x30\xb7\xb7\x5c\xd0\x74\x49\xdc\xf4\x31\x95\x90\x82\xbd\xd6\x2d\x4d\x79\xf1\xc4\xdf\x33\x01\x2a\x48\xbe\x7a\x17\x72\xca\x23\x9a\xec\xb6\x88\xdd\xcb\xf0\x20\xbd\xb9\xba\x59\xb9\x14\xe1\xdb\xd5\xb5\xe8\x5e\x9e\x43\x62\xa3\x1b\x6a\xcd\xcc\x2f\x99\x32\x3a\x4e\x24\x45\x8c\xc4\x0b\xfc\x6c\x19\x48\x29\x7f\x97\x90\xea\x98\x29\x23\x3b\x77\x2f\xcf\xc9\x09\xb9\xba\x19\x8a\x2b\xa3\x07\x19\x3e\xcb\xcc\xf5\x8e\x5c\x97\x2b\x22\xa4\x26\x7c\xbe\x90\xa9\xa6\x42\x1b\xc9\x06\x18\x9b\x5d\x11\x54\xab\xce\xe4\x7c\x9e\x69\xaa\xf9\x03\xab\x2c\xaa\x40\xb5\xee\x96\xe9\x7e\x0c\x26\xe2\x9a\x35\x44\xce\x97\xcf\x65\x91\x9a\xf6\x0d\xd7\x2d\xea\x02\x3c\xae\xc8\xe6\xae\x09\x9a\xa6\xb4\xc8\x1f\xdf\x70\xcd\xe6\xe5\xf7\x37\x0c\xef\xfb\x57\xad\xa2\x63\xae\x84\x0b\x49\x8d\xd2\x88\xb9\xa5\x17\x5c\xb3\x94\x26\x1f\xe8\xe2\x9d\xb3\x3a\x6d\x41\x1f\xff\xf7\xb6\x90\x67\xf8\xe6\x97\xee\x87\x30\x53\xf1\xcd\xf5\xcd\xd5\xe0\x6a\x25\xcd\x14\x5a\xa8\x12\x8d\x79\x7c\x0a\xff\x4b\x4e\x88\x69\xdd\xdf\x5c\x73\xa6\xa9\xb9\xd1\xc9\xb7\x98\x15\xe4\x13\x06\xb8\x48\x80\x46\x16\x29\x9f\x73\xb3\xaf\x56\xef\xfe\x0e\x2f\x47\x7f\xfb\x7b\x2a\xc1\x0f\x30\xef\x0f\xc4\x0e\x4d\x45\x4c\xd3\x98\xfc\x5d\x95\xd3\x51\xc1\xdc\x83\x3f\xb0\x98\x1c\x93\x99\xd6\x0b\x75\x7a\x72\xf2\xf8\xf8\xd8\x31\x6f\x77\x64\x3a\x3d\x31\xff\x38\x66\xa2\x33\xd3\xf3\x04\xd3\x6f\xcd\x2a\x9c\x92\xeb\x54\x6a\x09\x02\x04\x51\x2c\xe5\x34\x81\x6c\xc4\x31\x9e\x76\x39\x21\xff\x13\xc9\x94\x75\xf2\x8d\xf9\x1f\x12\x64\xf6\x4e\xcc\x3d\xcb\xe3\xe4\xc4\xbc\x54\x73\x74\xca\xfb\x49\x62\x16\xf1\xd8\x0a\x52\x4c\x44\x12\xec\x05\x68\x61\x34\xed\xb9\x54\x2a\x66\xdd\x3b\x7e\x39\x03\x61\x83\xc6\x8c\xd0\x07\xca\x13\x4c\xf2\x96\x68\x3a\xc4\x75\xc6\x54\x8c\x3e\x4a\x9d\x99\x91\xb0\x21\x46\x0f\xf4\x48\xf7\xea\xc2\x4c\x38\x92\x09\x19\x67\x13\x23\xa1\x05\xb7\xd2\x91\x91\x46\xb8\x22\x29\x8b\xe4\x7c\xce\x04\x1a\x17\x4d\x43\xf0\x25\xac\x98\x1d\x6d\x67\x28\x60\xff\x8d\x98\x02\x14\x10\x4b\x38\xd8\x82\x19\x6d\x45\x2c\xb1\x9b\x71\x36\x29\x78\xaf\x20\xad\x9d\xc6\x84\xeb\xa1\xe8\x26\x46\xaf\x9d\x4b\xcd\xc2\x60\x43\x30\x75\x17\x16\x1c\x18\x42\xca\x16\x09\x8d\x5c\x1e\x68\x22\x23\x9a\x90\x09\x4f\x98\x5a\x2a\xcd\xe6\x61\x03\xdf\x82\xaa\x65\xd6\x8c\x2b\x12\xcb\x47\x91\x48\x6a\xe7\x51\xfe\xec\xbb\x22\x6f\xe9\xb9\x64\xe7\x5e\x9a\xca\x14\xfe\xe7\x67\x2e\xe2\xed\xce\xe0\xdd\xe5\xcf\x97\x57\x9f\x0a\xc7\xf0\xee\xb6\x77\x13\xfe\x7d\xfb\xcb\xed\xa0\xf7\x61\xe5\x39\x2c\xb7\x92\x53\x16\x0c\x0f\x44\xf0\x53\x72\x8b\x8b\x20\x53\x62\x94\xaa\x86\x49\x7d\xb0\xa4\x94\xff\x20\x63\xb6\xdd\xdc\x3e\x74\x2f\xef\xba\x05\x8e\x72\x7b\xf6\x53\xef\xfc\xee\xa2\x20\xe0\xb9\xf9\x05\xbf\xdc\xf4\x50\x7c\x0b\x7f\x3b\xfb\xa9\x7f\x71\x3e\xf2\x02\xdf\xaa\xd5\x28\xf5\x5b\xe6\x4b\x03\xe4\x3f\x33\x19\x93\xf1\x32\xcc\x4a\xcc\xb3\xd8\x1f\xa9\x22\x09\x38\x4b\x72\x34\x05\x6c\xf5\x14\xd8\x90\x4b\xeb\xcf\xbf\x30\xb2\xfd\x91\x7d\x07\x92\xf0\x51\x0d\xa2\xba\x98\xd5\x1f\x36\x6c\x7a\xa7\x22\xd0\x29\x30\x1d\xdf\xaf\x91\xd1\x7a\x94\x79\x31\x33\xe7\x37\xe5\xd3\x29\xa8\xf8\xa5\xa1\x62\x6b\xf6\x53\x58\x49\xf8\x0e\xb7\x7a\x91\x4a\x38\xd2\xa6\x5b\x6b\x1b\xf2\x0a\x04\x7e\x88\x80\x79\x85\x16\x53\x0a\xba\x41\xcd\xd0\xdc\xbe\x98\x45\x68\x5c\x2f\x3c\x7a\x79\x24\x30\x70\x28\x85\x96\x89\x45\xca\x1e\xb8\xcc\x82\x4f\x2d\xb6\x44\x61\x73\x6b\x9b\xcf\x17\x00\x96\x0d\xf5\x97\xbc\x99\x22\x35\xf7\xaf\x6e\x75\x4a\x35\x9b\x2e\xcf\xed\xc9\xde\x9e\x8a\xcf\xaf\x3e\x5d\x5e\x5c\x75\xcf\x47\xbd\xee\xfb\xe2\xc1\xf4\x4f\x6e\x07\x37\xbd\xee\x87\xe2\xa3\xd1\xe5\xd5\x60\xe4\xde\x58\x49\xae\x0d\x1d\x54\xaf\xd3\xe2\x8b\xa7\xc4\x70\x46\xe0\x60\x0e\xe4\x2a\x60\x63\x63\x36\x91\x29\xb2\xe3\xb9\xf3\x0b\x02\xe3\x27\x7e\x65\x59\x8c\x3a\x76\x71\x16\xa7\xa0\x80\xd6\x35\x89\xb6\x25\x9d\x32\x3a\x07\x76\x4e\x05\xe9\x89\xf8\xf8\x6a\x72\x7c\x8b\x3f\xce\x69\x7a\xcf\x52\xff\xe9\x63\xca\xb5\x66\x60\x57\xe7\xd6\xe4\x0e\x0a\x32\x0c\xd9\xdc\x37\x10\x0b\x9e\x77\xd0\x21\x37\x86\x3d\x9b\xf7\xfd\xdd\x63\x08\x35\x66\x9a\xf2\x44\xd9\xc1\x16\xd6\xf5\x94\x5c\xd0\x74\x9a\xab\xbb\xdf\xca\xc9\x04\x1b\xfb\x0e\x87\x61\xae\x9a\xc2\x2c\x6a\x58\xa4\x21\x0d\x77\x7d\x41\x7f\xf6\x65\x2f\xa4\x55\xa9\xea\x6e\xb1\x1b\x4d\xdd\x5d\xc3\x8a\x5f\x5d\x8e\x7a\xff\xd5\x2f\x28\x2c\xf6\x49\x0d\xad\xc1\xc4\xf1\xf1\xea\xbb\xa0\xbe\xed\x2a\x39\x15\x5f\xac\x21\xa7\x6c\xe1\x76\x7e\x62\x54\xa0\x1a\x5a\x62\x9f\xb9\xc6\x8d\x09\xc7\x5d\x22\xa1\xbc\x19\xb0\x62\xd0\xc5\x82\xd1\x54\xd5\xed\x76\x51\x5a\x6b\xd8\x7b\xec\x29\xec\xc3\x6e\xb2\xeb\xe7\x88\x48\x91\x2c\xc3\xbb\xbe\x44\x91\x1b\xd0\x00\xb6\x55\xa1\x80\x6b\x00\x59\xb9\xb2\x80\x26\x1f\xb8\x32\x9a\x0c\xfe\xf8\xd6\x22\xad\x6c\x47\x10\xef\xba\xfd\x8b\x92\x0c\x30\x3a\xef\xbd\xeb\xde\x5d\xac\xd6\xc6\x0b\xdf\x95\xb7\x98\x1c\x13\xf3\xbc\xe8\x94\xe2\x13\xe4\xf7\x0e\x2f\x06\xf5\x2c\x26\x8c\x94\xe8\x32\x3c\xd0\x2c\x14\xb3\x45\x22\x97\x73\x26\xc0\xc8\x5e\xb8\xc5\xcc\x7a\x4e\x28\xb7\xd7\x42\x30\xd8\x53\x23\x5a\x58\xfb\x1f\x5c\x41\xc7\x0e\xa4\x86\xc5\xfe\xd6\x2c\x62\xd4\x94\x58\xf7\x35\xda\xa8\xed\x7f\x6e\x35\xd5\x5b\x9e\xb1\xee\xd9\xa0\xff\xb1\x60\x1a\xe8\xde\x9c\xfd\xd4\xff\x58\x27\x7c\x8c\xde\xf7\x2e\x7b\x37\xdd\x41\x6f\xf5\xd1\x2a\x35\x59\x27\x58\x28\x33\xe0\xb2\x8f\x82\x2b\xef\x6e\x37\x67\x27\x95\x09\xe1\x5a\x91\x07\xae\xf8\x98\x03\x2e\x90\xb5\xf7\xdf\xf5\x81\xb3\x42\x4e\x0f\xd7\x4b\x27\x7a\x60\xbf\xc5\x7d\x34\x9c\xd4\xb6\x8f\xba\x70\xe8\x05\x88\x8c\xe6\x84\x9b\xe3\x26\x7d\x4a\xba\x69\x34\xe3\x0f\xa0\x5b\x05\x9f\x09\x23\xef\x8a\x29\x4b\x71\x38\x60\xe4\x0c\xc7\x12\x3c\x37\xa3\x0a\x05\x8d\x7c\xd5\xbc\x6c\x39\x65\xc2\xe8\xe7\x61\x27\x28\x04\xa5\x4c\x7c\x63\xe4\xa5\x45\xc2\x23\xae\x93\x25\x89\xc0\xb0\x12\x1b\x69\x74\x4e\x05\x9d\xda\x8b\x1d\xb4\x91\x12\x49\xfc\x15\xc1\x93\xae\x26\xd6\x82\x36\xe0\x6c\xcb\x63\x76\x77\x79\xde\x7b\xd7\xbf\x2c\x92\xc0\x4f\xfd\xf7\x05\x49\xf3\x43\xef\xbc\x7f\x57\xb8\xcd\xd7\x09\x9c\xd5\x66\x6b\x8e\xa2\x7f\xe9\x94\x9c\xe3\xa7\xa7\x66\x71\x6b\x90\xa1\xbc\x8e\x5a\x5a\x87\x1b\x17\xef\xe2\xfe\xd1\x13\x3a\xad\x35\xff\x6d\x6a\xd7\xb0\x96\xfe\x82\x61\xa3\xde\x21\x58\xe9\xfb\xb2\xec\xba\xa9\x3a\x4c\xad\xb9\xdf\x74\xd2\xc9\xcd\x1d\xa1\xa7\x10\x74\xfb\x26\xcb\x4a\x8d\xf5\x38\x67\xd8\x1f\xc1\x11\x34\xcf\x94\x46\x8b\x3d\x10\x27\xb9\xff\x8b\x32\x0b\x0a\x16\xfd\x0e\xb9\x65\x6c\x28\x9c\x92\x3f\xe5\x7a\x96\x8d\x3b\x91\x9c\x9f\xe4\xb0\x64\x27\x74\xc1\xe7\xd4\x48\xc1\x2c\x5d\x9e\x8c\x13\x39\x3e\x99\x53\xa5\x59\x7a\xb2\xb8\x9f\x82\x7b\xd9\x39\x2d\x4e\x7c\xb3\x53\xf9\xfb\x8b\x3f\x7d\x7f\x7c\xf1\x97\xef\xdf\x54\xcd\x36\x4d\xfb\xdf\x13\x11\x5d\xa8\x2c\xb1\xe1\x28\x69\xb8\x36\xee\xc8\x67\x6c\xdd\x7e\x5f\x16\xb7\x6b\x37\x35\xf3\xec\xfa\xae\x60\x46\x2d\xfe\xf9\xa1\xf7\xe1\xea\xe6\x97\x02\xa7\x1c\x5c\xdd\x74\xdf\xaf\x36\xa7\x56\xf4\xd0\xd2\x32\xfc\x2c\xe4\xa3\x28\xce\x5e\x95\x27\x9d\x09\xcd\xe7\xcc\xa9\xa1\xf6\xcf\x01\xce\x74\x8b\x99\x5f\x0d\x7e\x2a\x4a\x52\xef\x2e\x7e\x19\xf4\x46\xb7\xe7\x3f\xaf\x9c\x09\x7e\x56\x18\xd9\x2d\xf8\xd0\xcf\x64\x92\xcd\x45\xf8\xef\xed\xc7\xd6\xbf\x1c\xf4\xde\x97\x47\x77\xd5\x1d\x14\x97\xfd\xa6\x18\x9a\xf1\xe6\xed\xd5\xd5\x45\xaf\xe0\xd6\x78\x73\xde\x1d\xf4\x06\xfd\x0f\x85\xdb\xee\xfc\xee\x06\x91\xc4\x56\x4d\xd3\x8d\xa0\x66\xa2\x66\x5a\xe1\x34\xf7\xcd\x67\x36\x3a\xe6\x5d\x1b\x0a\x89\x07\xe5\x38\x80\xd6\xc0\x88\x06\xb0\x6c\x1c\x7b\xb3\x62\x84\x23\xad\xe5\x35\xba\xb8\x4d\xa4\x99\xd7\xad\xdc\xe8\x55\x2c\x6f\xe0\x87\x80\xf0\x7a\xa8\xc7\xd2\x24\x91\x8f\x18\x84\x36\xe7\xe6\xca\xb3\xe8\x47\xe6\x15\x45\xa2\x2c\x4d\x99\xd0\xc9\xb2\x53\xc3\x4e\x8a\xdb\xc2\xa2\x94\xe9\x0f\x32\x13\x7a\x7b\x92\xeb\x5e\x16\x0e\x75\xef\xf2\xe3\xe8\x63\xb7\x48\x81\xfd\x8b\xd5\x87\x3c\x6c\xa2\xe6\x9e\xeb\x5e\xfe\xe2\x6f\x38\x08\x55\x3c\xf2\xea\x1f\x0a\x86\x51\xc2\x8d\x4c\x19\x51\xa3\x1a\x26\x20\x2e\x10\xc6\x41\x9f\x9f\x9b\xc9\x41\x68\xd4\x02\x3d\x08\x08\xe9\x88\x83\x3c\x75\xff\x28\xb5\xa7\x60\x5d\xc0\xa2\xe8\x22\x41\xa1\x1d\xab\xb2\x0a\xc2\xc4\x03\x4f\x25\x60\x44\x92\x07\x9a\x72\x23\xea\x62\xcb\x66\xae\xa7\xf0\xbf\xed\xda\x04\xe3\x60\x89\x71\xdd\xca\x54\x9f\xfb\x10\xb4\xed\x4c\x0d\x75\xa1\x58\xd5\x20\xac\x7a\x2b\x42\xf5\xdb\x9a\xcd\xd9\x31\x54\xad\x30\xe1\x01\x55\xf7\x15\xb3\x61\x5f\x28\x4d\x45\xc4\xce\x12\xaa\xd4\xb6\xab\x80\x7a\xcf\x51\x91\x51\xde\xdc\xdc\x5d\x0f\xfa\x6f\xd7\x10\x67\xf9\xe3\x6a\xf0\x5f\x94\x64\xce\xb2\x3e\x4e\x25\x8d\x89\xd9\x75\x39\x45\x2b\xbe\x15\x06\x72\x14\x50\x0c\xa4\xf5\xa1\x0c\x05\x04\xd2\x3c\xfe\xcf\xea\x3e\xa1\x69\x90\xdb\x85\x20\x91\x59\x09\x12\xa8\x41\x8e\x59\x81\x53\x00\x81\xc9\xad\xc6\xbb\x48\xa8\x9e\xc8\x74\x8e\xc4\x59\x98\x34\x36\xbe\xba\x51\x2e\x34\x4b\xd3\x6c\xa1\xb9\x83\x75\x2d\x5f\xae\x50\x38\x56\x4e\x3f\x30\xa5\xe8\x94\xed\xe2\x3b\xaa\x13\x28\x6e\x3f\x86\x7f\x82\x6f\x68\x13\x61\xa1\x30\x42\x17\x73\xe6\xe8\xe9\x4a\xbc\xa3\x3c\xc9\x52\x76\x2d\x13\x1e\x6d\xe9\xeb\x36\x5a\xf0\xa8\xff\xc1\x08\xf6\xdd\x41\xef\xa2\xc0\x01\xe1\x59\xf7\xdd\xa0\x77\x63\x71\x33\xbb\x6f\x2f\x7a\xa3\xcb\xab\xf3\xde\xed\xe8\xec\xea\xc3\xf5\x45\x6f\x8d\x0b\xb9\xb1\xf1\xaa\xc5\xa5\xfc\xea\x69\xe5\x17\xd8\xe1\x34\x43\xbd\xc9\xe9\xd0\x10\xa6\x4d\x79\x02\xfe\x2b\x89\x7e\x2c\x4a\x84\x8c\x11\x04\x42\x39\x8d\xcd\x45\x23\x76\x48\x5f\x7f\x93\x24\x84\x66\x5a\xce\x29\x58\x61\x93\xe5\x50\xd0\xb1\x4c\x35\xe8\x8d\xfe\xce\x21\x69\x26\x84\x39\xdf\xa6\x31\x44\x6b\x8d\x12\x46\x05\xc9\x16\x41\x74\xbd\xb5\x25\x4e\xb8\x80\x20\x97\x39\x4d\xef\x5d\x9d\x15\x1f\x00\xe9\x0f\x85\x22\x54\x0d\x05\x82\x53\x58\x26\xbb\xc1\x0a\x9f\x6e\xf4\x56\xe3\xea\xcc\xe9\x3d\x33\xab\x32\xcf\xa2\x99\xd1\x3c\xa7\x29\x53\xca\xda\x9b\x22\x2a\xd0\x77\x68\x5f\x7f\xe4\x49\x32\x14\x42\x9a\xa5\x70\x66\xad\x98\x2d\x98\x88\x99\x88\x38\xc6\xd1\x83\xdb\xcd\x9b\x3b\xa6\x29\x5d\xcc\x88\x92\xe0\xaf\x82\x65\x07\x9d\x16\x3f\x72\x11\x37\x16\x8e\x03\x1e\x87\x56\xa9\x34\x33\x7c\xe2\x0a\xae\x37\x5c\x65\xf8\xd8\x99\xa4\x9c\x29\x16\x6d\x03\xf3\x45\xc2\x34\xe2\xf6\xc2\x92\xc3\x66\x98\xb5\x2e\xec\x87\xd9\xa6\xba\x4d\x18\x8a\x7c\xcc\x54\xd9\x11\x75\x6a\xac\x5d\xf6\x48\x91\x9f\xa8\x88\x13\xd3\x8a\xb3\x6b\x16\xcf\x22\x04\x81\x76\x0d\xd5\xb8\xd3\xb8\x8b\x0c\x18\xd1\x4c\xb5\x12\x02\x57\x27\x3f\xa0\xa5\xe0\x38\xf7\xe7\x02\x79\xdb\xcc\x07\x58\xdd\x85\x61\x91\x34\x91\x76\x95\xf0\xf5\x0c\xeb\x40\x10\x18\x4d\x83\x56\xba\x48\xb9\x88\xf8\x82\x26\x5b\x89\xac\xa5\x30\x38\x1b\x5e\xf6\x2d\x9f\x18\xf2\xf9\xae\xe2\x86\xd1\x2c\x9d\x43\x46\x90\x1d\xa6\xdf\xc2\x16\xda\xa5\x8d\x27\x64\x2a\x77\x04\xd3\x54\x66\x68\xa3\x87\x75\x61\x71\xcd\x51\xed\xd4\x6d\xb7\x39\x19\xb4\x18\x7b\xb4\xc5\x66\xa3\xd3\xbe\x69\xfd\x4a\xad\xd8\xde\x31\x6a\x84\x26\xd7\xf5\x6d\xd6\xed\x40\xf0\xf0\x5f\xab\x68\xe7\x03\x5d\x18\x9a\x41\x18\x61\x42\xf3\x39\x5a\xd9\xce\x56\x07\x71\xae\xef\xc0\x17\xe6\x23\x32\x37\xdf\x8d\x7c\x09\x6d\xec\x42\xb5\x93\x82\x4f\x30\x48\xea\xb2\x34\x3e\xc9\xb4\x39\x9e\x14\xbc\x8a\xe4\x5b\xd6\x99\x76\x88\xc3\x7d\x3e\x22\xdd\xeb\xeb\xde\xe5\xf9\x11\x61\x3a\xfa\xce\x05\xd7\xd8\x58\x83\xa1\xd0\xd2\x4a\x2b\x4b\x32\x93\x8f\xc0\x1b\x59\x3a\x65\x85\x39\xbb\xc0\x04\x80\xef\x99\x72\xa5\x53\x1b\x1e\x21\xe2\x10\xf5\x9c\xcf\xcb\x22\x2e\x52\x48\xa6\x67\xbb\x90\x06\x55\x2a\x9b\x1b\x11\x7c\xc4\xe9\x7c\x94\xca\x64\x17\xa6\x70\x0e\x53\x01\x29\xdf\xe7\xc3\x71\x3a\x27\xa6\x59\xeb\xda\xf5\x6e\x08\x2f\xd2\x19\xc1\xc8\xf0\x65\x73\x6f\x06\xf7\x96\xb3\x48\xda\x50\x12\xee\x5c\x9a\x90\x2f\xd7\xc0\x2a\x72\x53\xd2\xc8\x5a\xef\x46\x34\x8a\x8c\xa6\xb0\xe7\x49\x05\x50\xfa\xce\x4c\x68\x3b\x7a\xb2\x69\xae\xa3\x73\x37\xcc\x85\xe1\x60\x10\xb5\x56\x45\xe2\xae\xe9\x77\xbc\xac\xf4\xea\xc0\xee\xef\x94\xd7\x04\xf1\x12\x56\x0c\x76\x52\x21\x58\xbe\x9e\x31\x8b\x7d\x15\x76\xe9\x62\x51\x4d\xc3\x4b\x99\xa5\x75\x8c\x6e\x28\xce\xd9\x22\x65\x46\xd2\x2f\x1b\x55\x3d\x4d\xdf\x14\x29\xf1\x40\xd7\x07\xba\x7e\xf5\x74\x7d\x86\x05\x2e\x9c\xfd\x38\x00\xb1\xdf\x85\xd0\xeb\x5a\x59\xd5\x12\x79\xf2\xfb\xfd\x0c\x2f\xf6\xba\xda\x00\x45\x2a\x72\x77\x30\x17\x95\x8a\x24\xb8\x91\x50\x4b\x12\x2e\xdc\x5f\x33\xa9\xa9\xfa\xae\x33\x14\x46\x7a\xb8\x67\x4b\x34\x8f\x98\xfb\xf9\x0f\x46\x08\x3d\x56\x4c\x28\x08\x51\xfc\x03\x1a\xb2\xcd\xde\x3a\xf3\x12\xea\x64\x58\x08\xa5\x58\xb6\x00\xc2\xca\x6c\xa3\x56\x3c\xc8\x83\xf6\xf2\x5a\x07\xee\x19\x0e\x7f\xca\x34\x64\xf5\x68\xae\x41\x59\x88\xb1\xd2\x4a\x65\xe8\x6b\x6d\x88\x48\x15\xa9\x04\xbb\x66\x9c\xed\xc6\xf1\x54\xb5\x8d\xb5\x2c\xc1\x8b\xc9\xb7\x36\x4e\xf3\xc4\x19\x4c\xa2\x54\x56\xca\x97\x50\x45\x70\xa7\xc7\x78\x0e\x9c\x33\x87\x89\xce\x23\xbf\xe7\x0b\x16\x73\x0a\x51\x9b\xe6\xaf\x13\x33\xaf\xdf\x9f\xdd\x5c\x5d\x8e\xf2\x58\xeb\xff\x1c\x8a\x6e\xa2\x24\x31\x82\xbf\x4c\xb5\x22\x42\x0a\x1f\x22\xba\x48\x99\x93\x85\xec\x5c\xcc\xaa\x06\xa6\xe0\xa1\x68\x1a\x41\x2c\x23\xd5\xa1\x8f\xaa\x43\xe7\xf4\x1f\x52\x80\x5f\xa9\x0b\xff\x3c\x4b\x64\x16\x7f\xa2\x3a\x9a\x9d\x80\xbb\x47\x9f\xb0\x07\x26\x34\x9a\x95\xcd\x72\xc5\x90\x30\xa2\x20\xc2\xf4\xf7\x66\xcc\x79\xd8\xb7\x32\x2a\x5c\xc4\x16\x9a\xfc\xff\x53\x36\x96\x52\xd7\x73\x67\x39\x99\x28\xd6\x8a\x13\xe7\xda\xc9\xed\x15\xf9\xcb\x9f\xbf\xff\xc1\x90\xd0\x36\x6b\xdc\xbf\xbd\x1a\x99\xef\x7f\x7f\x6e\xbf\x57\x2d\x38\xeb\x15\x5a\x75\x81\x8d\x3b\xe2\xc1\x60\xcf\x4c\x00\xdb\x4f\xb1\x80\xab\x24\x14\xc9\x21\xdf\xc7\x3a\xee\x76\x8e\x99\x75\x3b\xc5\x75\xef\x70\x9d\xbd\x4f\xe4\x18\x0c\x22\x59\xa1\xae\xc3\x0a\x77\x67\x5b\x37\x48\xf9\x62\xe2\x6a\x91\xd0\x65\xa5\x87\x75\xcb\x7e\x69\xb8\xd3\x82\x46\x2c\x4f\x09\x74\x91\x09\x91\x9c\xcf\x21\x5a\xc6\xc5\x27\xc4\x7c\x02\x61\x33\xda\x5c\x76\x64\xcc\xf4\x23\x04\x69\xb9\x5f\xfd\x25\xed\x2c\x91\x86\x95\x01\xbb\x1c\x9a\x45\x8e\x33\xb0\x7e\x0f\xdf\x1c\x91\xe1\x9b\x98\x3d\xb0\x44\x2e\xcc\x69\x36\x3f\x30\x1d\xd5\x6d\x62\x6f\x4e\x79\x72\x29\xb5\x8f\xfb\xd9\x65\x3f\x53\x16\xf1\x05\x37\xa7\x6b\xc4\x4c\xbb\x4f\x1a\xb4\x5f\x7f\xc0\x06\x33\xe6\xd1\x06\x60\x0c\x84\xc6\xb1\x21\x62\x28\x72\xe1\x86\x97\xdb\x96\x45\x30\xf5\x02\x4e\x7c\x7b\x81\xc5\x68\x95\xd0\x63\xd8\x66\x31\xa8\xaa\x76\x07\xbc\xc5\x61\xaf\x27\xa9\xde\xb7\x16\xc9\xd4\xc3\xfd\xfa\x8e\xf3\xda\x06\x2b\xe9\xdf\xd6\x4f\xc9\x61\xf7\x9d\xa9\xae\xd1\xb4\x51\x3e\x80\x66\x2d\x36\x1b\x67\x71\x65\x6e\xcd\x77\x2b\x87\xa6\x42\xa0\x0d\x5f\x98\xcb\xab\xd5\x36\x08\xb6\x1c\x77\xcb\xd6\x8e\x38\x4a\xa4\xca\xd2\x0d\x1d\x97\xc5\x41\x9f\xd9\x4f\x57\x8d\xbb\x17\x5a\x21\xb2\x44\xab\x56\x86\x8e\x9a\x85\x2f\xe5\x67\x22\x9b\xd0\x56\x72\xb6\x6f\x1f\x91\xbc\x58\x37\x4d\xf2\x08\x61\x11\x93\x5c\x4a\x1c\x8a\xdc\x96\xa5\xc8\x23\x4b\xc0\xfc\x1d\xc9\xf9\x02\x24\x20\x3b\x5c\xdb\x92\xb9\xc0\x35\xd5\xec\x88\xc8\x4c\x9b\xc6\x8e\xb0\x70\x9c\xdd\x82\xe3\x31\x05\xb4\x8f\xbc\xd8\x2c\xc8\xe4\xd6\x97\xe7\x11\x1e\x90\xd6\x91\x15\x72\x41\xde\x33\x0d\xad\x00\x82\x4e\x38\x41\x2c\x90\xb7\xf2\x28\x9d\x55\xb6\xad\xf5\x89\xb2\x33\x69\xb1\xf3\x79\x2e\xc4\xdb\x44\x8e\x57\xee\xfb\x15\x34\x4e\xee\x6e\xfa\xce\x79\x90\xdb\x55\x03\x3c\x81\x75\xd4\xc9\xd2\xb4\x10\xf1\xb8\xe6\xe0\x17\x33\x27\x56\x13\x26\xe4\x2d\x04\xf5\xdb\xab\xe3\xb4\x16\xf7\x75\x63\x04\xfb\xe7\xe8\xf5\x58\x9f\x71\xbc\xf3\xaa\xc5\x7d\xdd\xf6\x17\x2d\xf5\x4f\x3d\x19\x38\x1a\x7a\xc6\x78\x4a\x36\x9a\x96\x3b\xb9\x23\x3c\xed\x9b\x13\x4d\x4e\xd5\x4d\x22\x2d\xb2\x0f\xcf\x1a\xcc\xc0\x2c\xbe\x4f\xa1\x8e\x63\x67\x28\x4a\x83\xb0\x2e\x1c\x45\x80\xbc\xe0\x17\x2e\x48\x81\xeb\x1f\x91\x09\xff\x6c\x1b\xcd\x5d\xbb\xee\xd5\x40\xd7\x6f\x70\x25\xcc\x68\x95\xec\x5a\xdc\x8c\xd7\xf0\xfd\x4a\xd3\xb6\x54\xda\x08\x16\x46\x38\x4b\x99\x11\xa1\x59\x4c\xa0\x5b\xef\x68\x5e\x7b\x2b\x6a\x9a\x9a\x45\xa1\xad\x54\x8a\x1c\xef\x2a\xa6\x9a\x1d\x6b\xbe\x36\x1e\x70\x81\x8e\x08\xf3\x26\xa1\x3a\x48\x62\xcb\x99\xeb\x98\x4d\xa9\x70\x5e\xc9\x86\xe1\x3a\xae\xbe\xc3\x69\x36\x42\x1a\x85\x80\x0e\x10\x21\xcc\x80\x8a\xe3\x50\x0b\x58\xcf\x95\xe3\xb0\x86\x9f\x97\xb0\x6c\x8f\xd4\xdb\xa1\x1a\x06\x9b\x41\x79\xef\x17\x33\xd8\x84\x2a\x4d\xec\x98\x9a\x94\xa5\x40\x88\xdd\x43\xf6\xed\xaa\x2a\x5b\xa1\xf6\xb1\xa9\xc9\xc9\x90\x50\x51\xce\x66\x5a\x73\x5b\x02\x2a\x53\xcc\x26\x4d\xcc\x59\x3a\x75\xb2\x1e\xc2\xfe\xfb\xb3\x6d\xf1\xff\x1d\x23\x0d\x99\x09\xf8\xa7\xab\x4d\x77\x48\x57\x54\x52\xbf\x9c\x49\xb2\xb0\x5e\xc8\xb6\x69\xf2\x48\x97\x8a\x2c\x52\xcc\xb4\x40\xa7\xb5\x9b\x3c\xf8\x8a\x8a\x1f\x79\x63\x88\x76\x51\x03\x50\x96\x76\x03\x7b\x71\x50\x0a\x6e\x73\x6e\xb7\xa1\xd8\x5f\x72\xa8\xd6\x15\x86\xf3\xda\x54\x2d\xab\xab\xc8\xb1\x79\x76\x64\x18\x96\x6b\x11\x58\x40\xac\xb4\x8a\x45\xaf\xe8\x8c\x6d\x92\xf5\xc0\x90\x78\x41\xc7\x2c\xd9\xd9\x67\xba\x95\x51\x07\xba\xb6\xd8\x38\x46\x87\x67\xe8\x54\x86\x1a\xc3\x69\x99\xb5\x39\x53\x68\x9a\xd5\xb9\x98\x57\xcd\xb3\x50\xb5\x62\x87\x89\x3a\xb0\xa7\x6d\xa6\xda\x04\x01\x15\x5e\x21\x01\x54\x52\x9d\x3a\x1d\x5e\x25\x65\x0b\xd2\x76\x03\x09\x10\x9b\x1a\xc6\xb1\x33\x64\xd3\xda\xa9\x6c\x1d\x62\xbb\x21\x7a\x69\x7f\x42\x84\x14\x8c\x70\x95\xbf\xac\x8b\x51\x35\x3e\xfb\xc3\x48\x94\xa8\xab\x57\xeb\x25\x3d\xb5\x62\x9e\x87\x0e\x7b\x55\xd2\x45\x37\x0a\x66\xf4\x1a\x9a\x2e\x21\xc9\x1b\x79\x5a\x51\x3e\x5a\x3b\xce\xbd\x0b\xaf\x03\x97\xc3\x1f\x38\x7c\xb4\x24\x20\x92\x95\x06\x47\x30\x13\xde\xbe\x64\x3f\xb2\x19\x10\x43\xe1\x15\x61\x20\x44\xae\xc8\x9c\x2e\x3a\x04\x76\x4d\xe7\x5f\x61\x46\x8f\xf6\x5b\x78\x94\x57\xf7\x06\xec\xc3\x86\x15\x58\x67\x09\x70\x57\x59\xbe\xae\xc5\xac\x67\x07\xce\x80\xf5\xc7\xeb\x8a\x33\xbb\x4e\x93\xe5\x31\x56\x74\x67\x71\x68\xe7\x5c\xcd\x91\x6c\x0d\xa6\x17\x60\xbe\xda\x7c\xc9\xcc\xc6\x67\x15\x83\x16\xe6\xdf\xe5\x1a\x78\x90\x28\x15\x52\xa9\x45\x6e\xc0\xb2\xba\x54\x91\x3f\x08\xa9\xff\x10\x60\x5b\x38\x5d\x19\x4b\x74\x59\x8b\xc5\x51\x01\x73\x8b\xbb\x4c\x5d\x4b\x38\x84\x06\xc9\x5b\x6b\x57\x7e\x57\x40\x95\xdc\x7f\xfa\xa4\x92\x5d\xaf\x1a\x4c\xd5\x04\x5a\x88\xf8\xbb\x7b\x33\x10\x3c\x47\x91\x48\x82\x64\x90\x32\x97\xc8\x37\x97\x29\x2b\x61\x00\x23\x3f\xf7\xd1\x86\xf3\x85\xae\x4d\x34\x68\xa2\xd2\x1a\x2b\x19\x82\xa2\xe6\xe7\xbd\x60\x1d\x5b\x6d\x15\xdb\x47\x18\xe1\xbc\x98\x74\xbd\x82\x02\xd6\x40\x5a\xd4\xeb\xeb\xdb\x84\xfe\x35\xc9\xab\xde\x3e\x1d\x16\x43\x6b\x02\x72\xe8\x0c\xc5\x3b\x99\xda\xeb\x54\x59\x8c\xa4\x31\x8d\xee\x8f\x99\x88\x09\xcd\xf4\x0c\x01\x15\xac\x49\x79\x69\x77\xd6\x48\x0d\x40\x02\x3e\x61\x9f\xab\x88\xa6\xf6\x22\x98\xd0\x07\xe9\x46\x31\x14\x41\x23\x80\xc2\x04\xb0\x7b\x00\x17\xde\xa4\x82\x31\x80\x39\x6d\x5a\x8b\x3a\x20\xec\x0a\x0c\xf6\xea\x33\x53\x00\xf6\x06\xfc\x28\xc1\x94\x15\xbf\x4b\xab\xd3\x77\x86\x2a\xa7\xf7\xa8\xb0\xdc\xa0\x7f\xf3\xc8\x06\xf4\xa2\xa9\xc6\xce\xc0\x48\x2d\xdf\x3b\xbe\x59\x80\x96\x98\x64\x29\xc4\x65\xd4\xb5\xf9\x6d\x34\xe3\x49\x6e\xb6\xfe\xee\xc8\x0f\xd3\x34\x99\xb0\x07\x96\x20\x02\x51\x94\x82\xcf\x1a\xfd\xa7\xdf\x93\xff\x83\xe0\xd0\xe4\x87\xa1\x78\x0f\x2c\x35\x49\x96\x90\x78\xed\x5b\xa6\xba\xd4\xcc\x7d\xed\x00\xb4\x8d\x0e\x21\xc5\x81\xe0\x5e\xcf\xe8\x03\x1b\x0a\xd7\xcc\xff\x21\xf7\xe4\x8f\xe4\x87\x26\x0b\x8f\x73\x3d\x3f\xb1\xfe\xff\x2e\x70\xec\x06\x37\x96\x65\x7a\x96\x6b\x38\xf3\x40\xc1\x38\x57\x93\x6c\xe1\xb1\x4f\xb8\x78\x90\x51\x25\xbe\x21\x3c\xb5\x34\x65\x42\x8f\x84\x8c\xd9\x88\xd5\x78\xb3\x56\x30\x09\x73\xa1\x5f\xca\x98\xad\xf5\x45\x79\x89\xed\x13\x98\x34\x54\x36\xf6\xdb\x01\x31\xdf\x3e\xc0\xd7\x6b\xe5\x45\x4a\xab\x1f\xb9\x07\x29\xd8\x66\xdc\xdb\xfa\xd1\xae\xac\xac\x75\x04\x6c\xdd\x0e\xa0\xde\x97\x93\x50\xed\xc2\x62\xcb\xc7\xb1\x6c\x43\x36\x2f\x9b\x99\xdb\x8b\x27\x80\x5f\x00\xdc\xb6\x94\x4f\xb9\x91\xc5\x37\xf7\xd5\x01\x27\xdc\xc6\x10\x8e\xb9\xe8\x1b\x59\xc2\xf3\xa5\x70\xb9\x37\xc7\x9e\xfe\x72\xff\xd3\x58\x66\x65\x61\xdc\x2e\x00\x57\x61\xc0\xae\x95\xbb\x97\x86\x0f\x4f\x31\x28\x8c\xcd\x38\x86\x61\x77\xcf\x2e\x88\x39\x1d\x72\x8e\x29\x56\xb0\x68\x99\x9e\xc9\x94\xff\xa3\x31\x76\xa7\x59\xde\xce\x9d\x6c\x79\xa8\x13\x8e\xb3\x28\x79\x03\xb1\xa2\x78\xa0\x0b\x1a\x46\x9d\xfe\x43\xc6\x19\xa4\xea\x1b\x36\x3b\xc9\x12\x84\xe1\x8a\x64\x1a\x63\xf5\x0a\x55\x08\xac\x32\xef\x79\x51\x9d\x6a\xdf\x20\xb7\x19\xcd\x16\xe8\x2b\x9a\x51\x31\x5d\x2d\x4c\xfe\x35\x63\xd9\x9e\x62\xd3\x2c\xf8\xe6\x33\x39\xfd\xcb\x22\x3d\x9d\xaa\x3c\x4e\x11\xd7\xc6\xf0\xe6\x7c\x7d\x7f\x35\x33\x55\x41\x18\xa3\xb3\xb8\xf9\xc4\x56\x54\xaf\x11\xa5\xb9\x95\x75\xe6\xc6\x1e\xbf\x3d\xd8\x67\x9e\xc4\x97\x5f\xcd\x8f\x58\xe1\xbe\x47\xca\xf3\xd0\x56\x5f\xc6\xf4\xe1\x19\x79\x49\x0a\xd9\xb7\x19\xa4\x85\x72\xed\x06\x65\x47\x68\x39\x6c\xd5\x07\x5a\x4f\x22\xb7\x45\x23\x4b\x6b\xba\xc0\xbe\x47\xe0\xed\xda\xd9\xc8\x1b\x18\x2f\xf3\x78\x59\x4c\x94\x70\x39\x51\xcf\x64\x82\x01\xff\x61\x31\x55\x23\x70\x1f\x36\xe5\xe4\x04\x23\xda\xe2\x8a\xaa\xaa\x44\xf5\x63\x73\x8f\x37\x1d\xca\x4a\xa7\xc9\x86\x2e\x10\xd0\xed\x57\xf1\xb9\x0b\x1b\xde\x54\x74\x1e\x60\x8c\x85\x0c\xfc\xa7\xe0\x47\xc8\x14\xd1\x29\x85\x48\x59\x88\x6f\xfc\x84\x32\x2d\x57\xa8\x39\x3a\xfc\x21\xa3\x98\x5a\x54\x49\xe0\xa0\x16\x84\x4e\xcf\xa8\xb0\x69\x77\x75\x8e\x0a\x0f\x93\xef\x4f\x42\xe8\xaa\xa8\xeb\x0c\x3a\xb2\x82\x7c\x6d\x93\x6e\xa1\xc3\x30\xee\x52\xf4\x70\x93\x5f\x92\x2b\x08\xff\xa7\x49\xa3\xf6\x38\x96\x32\x61\x54\x34\x09\xd9\xb5\x8f\x2b\x76\x23\x1e\x46\x0c\x1b\xfd\xcf\x88\x67\x69\xc6\x8c\x86\x41\x93\xa4\x34\x2f\x0a\x55\x6d\xb4\x07\xe9\x44\x15\x31\x47\x7b\x6a\x76\x9b\x1c\x85\x27\x7f\xcc\x92\x56\xa1\x28\xf8\xc1\x4a\x2a\x82\x57\xf2\xaa\x2b\x1b\xe5\x5e\x85\x71\x12\xb5\x99\x6a\xeb\x06\x16\xe6\xb7\xad\x1a\x5d\xb7\x98\x23\xb6\xdd\x10\x15\x8b\xb2\x94\xeb\xe5\xc8\xaa\xd9\x9b\x33\xad\x5b\xfb\xe5\x99\xfd\x70\x13\x19\xf6\x94\xb8\xfe\x9c\x5a\x4f\xa4\x45\x2a\x0b\xa6\xb0\xc9\x76\x1b\xb9\xb4\x36\x83\x65\xd5\xc2\xba\x14\x9a\xcd\x86\x6a\xba\xd8\x76\x78\x16\x32\x69\x24\x27\x2e\x39\x65\xf3\x85\x2d\x63\x49\xb5\xb0\x4f\xa4\x08\x45\x43\x16\x29\x97\xa9\x85\x6c\xda\x24\xbc\x62\x4e\x3f\x8f\x16\x34\xa5\x49\xc2\x12\xae\xe6\xdb\x5b\x53\xfe\xf4\xe3\xca\xd1\x9e\x21\xb4\x98\xb2\x40\x7d\x9f\xf9\x3c\x9b\x07\xd5\xd2\x00\xbb\x20\xc8\x40\xb6\xc6\x46\x9b\x48\xe3\x06\x98\x5f\x34\x42\xf3\x34\xc8\x29\x37\x1a\x00\x57\x96\x3f\x5b\xe5\x80\x46\x33\x28\x89\x33\xa1\x3c\x15\x4c\xa9\x0e\xb9\x94\x9a\x9d\x92\x0f\x74\x31\x00\xf1\x16\x21\x79\xa7\x68\x8f\xa2\x8a\x18\xc9\x29\x13\x5c\x1f\x0d\x05\x46\xe9\xf8\x55\x39\x89\xa4\xc0\xb4\xf4\x08\x16\xd6\x37\x01\x06\x16\x97\x9f\xad\xc9\x24\x95\x73\xa0\x92\x76\x19\x99\xc5\xa0\x1e\x80\x54\x9e\xc3\x25\xaf\x72\x48\x4a\x67\x76\xf5\x22\x56\x81\x14\x21\x85\x1c\x3e\x8e\x25\x53\x81\x6a\x03\x54\x8c\x57\x06\x9f\x30\x43\x21\x43\x61\x74\xbb\x50\x0d\xc3\x4c\x74\x97\x98\x6e\x3a\x8d\x52\xa9\x94\x8d\xd3\xc1\x76\x56\x9b\x4e\x07\x36\x4d\x78\x1f\xfe\xd7\xe7\x8b\xd5\xad\x56\x30\x0c\x2a\x68\xd4\x8b\xfd\x63\xe6\x53\xa2\x1b\x6f\xda\x5d\x83\xf9\x1c\x1b\x22\x29\xa3\xca\xda\x9e\x20\xe6\xad\x14\xec\xd3\x42\x32\xf7\x63\xc6\xa8\xd7\x63\x0f\x42\x10\x50\x90\x85\x03\xc2\x6a\x63\x86\xae\xd3\x94\x41\x1d\x12\xc4\xa3\xe9\x97\x88\x06\xa0\x83\x52\x46\xe3\x65\xb0\x22\xde\xba\x82\x3d\x83\x64\xa2\xf8\xdc\xf0\x4e\xc0\x41\x13\xf2\x58\x2e\xdc\x61\x2d\xbc\x05\x08\x12\x7c\x62\x08\x31\xb0\xcd\x98\x2f\xc4\x31\x14\xb4\x32\xc7\xab\xc6\xc9\xe4\x1a\x01\xa7\x14\xc0\xe1\xcc\x98\x25\xdc\xe1\x9b\xee\xdb\xab\x9b\x41\xef\x7c\xf8\x26\x0f\x2b\x70\x31\x68\x8e\x91\xf8\x04\x77\x29\x86\xc2\x7b\x02\x7d\x02\x20\xec\x25\xa1\x71\x9c\xa7\x5f\x63\xe4\xeb\x08\x1d\x19\x9b\x9e\x8a\xb5\x3e\xc0\x6a\x33\xef\xf8\x67\x16\xdf\x34\x00\x4c\xee\x25\x6a\x63\x23\x0b\x79\x2d\x89\x1b\x2e\xd9\xe2\xf6\xf5\x53\xb9\x33\xdf\x6d\x4e\xc1\x78\x12\x4a\x09\x39\x90\x8d\xa3\x09\xf5\x45\x45\x27\x40\x03\x86\x33\x43\xaa\x87\x21\xda\x25\xf9\x91\xcc\xb9\x80\x60\xea\x55\x4b\x7b\x57\x9c\x47\x1b\xf4\xf0\xfe\xe5\x5d\xb1\xb4\xc7\x4f\x57\x77\x45\x4c\xdc\xee\x2f\xab\x71\xc0\x8b\x2d\xac\x32\xa2\x05\x53\xcc\xa3\xd6\x6c\x5e\x92\x5f\x99\xba\x89\xbe\x67\xfa\x23\x96\x12\xda\x87\x1b\xda\xa2\x83\x82\x8a\xcd\x46\xae\x98\xd4\xe6\x64\xf0\xb1\xa6\xfc\x54\x31\xd6\xc0\xe1\x8f\x42\x0f\xbe\xfe\x54\x10\x67\xdd\x41\xf4\x57\xa8\x58\x03\x76\x3c\x67\x04\x36\x37\xa6\x14\x66\xb9\x86\xf0\xb6\xaf\x27\x90\x37\x27\x27\xf8\xf1\x46\xb1\x57\x37\xa1\x43\xd1\xb4\x95\x2f\x25\xe9\x5e\xf7\x6b\xd6\xfa\xa2\xac\x85\x7c\x5d\xb0\x14\x89\x57\x88\xf6\x8d\x48\x11\xc4\x87\xbd\x08\x30\x0a\x3b\xd3\xdd\x70\x28\xd0\x6e\x74\x5d\x34\x46\x3d\xa9\x2c\xb4\x83\xe8\x53\x88\xa1\xb4\xfe\xe0\xfd\xe4\x28\xe5\xcb\xd0\x32\x49\x29\x1c\x90\x85\xd9\x0e\x13\x73\xaa\x8e\xa1\xa3\x30\x51\x07\xf1\xf7\x9d\xe5\x6b\x6f\xc9\x4b\xf9\x6c\x36\xc9\x5e\xfa\x88\x14\xed\x23\xff\x21\x05\xdf\x01\xab\x39\x87\x8e\x0d\xc4\x0d\xa7\x1b\x52\x5b\xbb\x84\xa7\x7c\x7c\xce\xfc\x6b\x31\x0d\xe9\x82\x5a\x28\x67\x10\x06\x5d\xe2\x77\x1d\x40\x56\x67\x28\xc2\x42\xdc\x28\xbe\x99\x33\xe2\x40\x06\x00\x70\xcf\xb0\xd3\x14\x23\x3a\xfc\xcd\x5c\xd8\x81\x72\xbc\xaf\x9e\x15\x61\x02\x2a\xfd\xd8\xd3\xa9\x66\xd4\x45\x82\x39\x8d\xc7\xc6\x24\x84\xa8\x06\xd0\x5e\x90\x1f\x6d\x3b\x66\x0f\x4c\x20\x68\x01\x0d\x60\xa7\x82\x48\x5c\xa3\x1c\x89\x6f\xb4\x8f\xb5\xe3\x89\x85\x36\xa0\xde\x27\x9f\xdb\xd9\x15\xe5\xb6\xe5\xd5\x07\x7c\x0f\xd9\x54\xaa\x04\x24\xde\xe2\x58\xc1\x97\x9b\x98\x09\x80\x12\x42\x73\x36\x74\xda\x94\x3a\xf5\x79\xc1\xa2\x6d\xf2\x61\xae\x5d\x75\xd5\x55\x16\xed\x22\x96\x25\x58\x6b\xdd\x0e\xda\x7e\x71\x17\x11\x38\x40\x4c\x1b\xe2\xf5\x2e\xd6\xe5\xb7\xf8\x59\xb4\xca\x56\x33\xd3\xf8\x68\x91\x12\x5a\xce\xc2\xf6\x93\x4f\xc3\x1a\xec\x21\xf7\x18\x59\xc0\xae\x73\x7a\x9e\xbc\x8e\x41\x25\x43\xa2\x60\x71\x7e\x21\x09\x1d\xeb\x47\xd9\x94\xc9\xb1\x8e\x97\xee\x85\x77\x3b\xb7\xb4\x8b\x61\x2c\x1d\xaa\x82\xc3\x1b\xa8\x04\xe4\x7d\x4c\x6a\xa8\xcf\xc6\x00\xa1\xa5\xce\xc9\x16\x04\xef\xd8\x74\x54\xb3\x78\x4a\xd3\xb9\xc7\xf1\x28\x83\xc4\x94\x96\x6b\x0d\x8f\xdb\x57\x74\xfd\x41\xa2\xd9\xb7\x44\xd3\xc2\x0c\x84\xd4\xc9\xd2\x52\xd2\x8c\x05\x6f\xb5\x11\xda\xc5\x09\x42\xc0\x88\xbd\x22\x2d\x02\x24\x5c\xfd\x5c\xf8\xbf\x8a\x1c\xdc\x11\x75\x48\xaa\x75\x91\x70\x9d\x00\xe1\x17\xac\x9c\x49\x28\x0d\x58\xd3\x2c\x8c\x16\x3d\x69\x58\xba\xa2\x7f\x89\xd5\x26\x20\xba\x74\x29\x33\xf2\xc8\x95\xd1\x85\x87\x02\x5c\x4d\xbe\xc4\x85\x96\xb6\x2c\xc5\x11\xbc\x05\x71\xe8\x2a\x1b\xcf\xb9\x26\x34\x98\xe1\x1d\x70\x86\x1b\x17\x81\x8c\xe7\xd9\x7c\x00\x33\xae\x0d\x74\xae\xcb\x37\x5a\x73\x68\xb6\x30\xfe\xe4\x8d\xec\x1a\xcb\x1c\xb8\xc5\x9f\x36\x9a\x39\xd0\x78\x42\x0d\xb3\xf6\xcc\x1d\xc2\x99\xeb\x4f\x6a\x31\xd5\x1f\xf0\x18\xb8\xd2\xa5\x1b\xa6\x39\xc1\x3f\xdf\x82\x7d\xc4\x32\x37\x01\x28\xad\x8a\x6d\x73\x9f\xd4\xcb\x4c\xb7\xbe\x5e\x9c\x74\x61\x14\xa1\xd0\x73\xdd\x28\xf4\xbc\xb4\x6c\xcb\xa0\x34\xe6\xd6\xc1\x06\x6d\x34\xbb\x3c\x59\x28\x24\x85\x20\xdc\xad\x98\x5f\xc3\xca\x4c\x5c\x48\x0d\x51\x3e\x11\xa0\x2a\x57\xe2\xec\x86\xa2\x5e\x98\x58\x4d\x63\xbb\x06\xec\xec\x35\x2b\x33\x30\xdc\xb9\x59\x58\xe3\xd4\x27\x1f\xaf\x8c\x7a\xaf\xaf\xf0\xce\x4a\xe7\xca\x79\x1d\x1a\x74\x09\x90\x21\xb6\x09\xf8\xac\x39\x95\x1b\x86\xd3\xac\x3d\x17\xf6\xfe\xdc\xa3\x96\x56\x61\xb4\x1b\x47\x1f\x79\x71\xd7\x32\x56\xe7\x3e\x77\x1a\x79\xc9\x79\xb4\x0d\xee\x23\x80\x1d\xec\x0d\xa2\xa1\x1c\x1d\x6e\x1a\x3f\x02\x87\x93\x1d\x3a\xc5\x7a\x53\x1e\x1b\xa7\xb4\x25\x85\x09\x5b\x3c\xed\x27\x98\x74\x5b\xac\xce\x00\xc3\x2e\xb5\x78\x65\x3c\x34\x01\x00\x48\xa7\xab\x87\x5b\xe4\xc3\x5e\x4a\xcb\x44\xcc\x52\xc1\xa8\x9e\x3d\x5f\xc4\xcd\xd9\xae\x76\xe6\x67\x8b\xbe\x39\xdb\x0b\x50\x73\x29\xa2\xa5\x65\x30\x4b\x8b\xc8\x90\x1c\xb6\xb3\xa2\x03\xd6\x01\xe4\xe7\x29\x40\x6d\xa8\x74\xa7\xa0\x9c\x7a\xbd\xec\x69\xc2\x93\x6a\x0c\x38\x95\xc0\x24\x73\xd8\x43\xb0\xd3\x35\x4b\xf2\x55\xc4\x01\xa5\xf4\xd1\x9a\xc9\x46\xe6\x0e\x1a\x21\x4a\x58\x8b\xdd\xbc\xa1\x8f\x88\xdb\x74\x4e\x35\xc5\x42\xf0\xab\x31\x94\x42\x74\x03\xc8\x9c\xf2\x18\x15\x0b\xf4\xec\x5a\xee\xe5\xab\xa6\x62\x20\xcc\xb7\xbc\xc3\x3a\xe4\x6d\x22\xc7\xea\x88\x60\x01\xa4\x23\x94\xd1\xe1\x39\x42\xf9\x7d\xf7\xf2\xa3\x9d\x7e\x9b\xc1\x4e\xab\x6c\x22\xde\x4c\x0f\x95\x3e\x0a\x28\x75\x28\x81\xac\x91\x47\xb7\xaf\xc6\xe9\xcc\x0a\xa1\xff\xde\xfe\x62\x7f\x68\xa8\x4f\xb6\xa6\xe6\x66\x68\xe2\x10\xcb\xb2\xa5\x90\xa6\x71\x62\xf3\x09\xd1\x6a\x51\x52\x49\x57\x59\x4f\x86\xe2\x27\xf9\xc8\x1e\x58\x7a\x44\xa8\x26\x73\x69\xd4\x90\xc0\x65\x0e\x39\x4f\x05\xc8\x16\x74\x8d\x52\x72\x49\xe7\x2c\xee\x81\x30\x1b\xe4\x3a\x58\x1b\x8e\xf5\xbe\xd4\xa5\xc0\x43\x36\x37\x6e\x83\x73\xa5\x0e\x05\x96\xf2\xc4\x70\x0c\xe0\x3a\xdc\x4d\x0c\xae\xc4\x3f\x78\xdf\xd0\x1f\x3a\x64\x60\x28\x9d\xab\xe2\x78\x83\x2c\xba\xa6\xb1\x0d\xc5\x34\x95\xd9\xc2\xab\xd5\x72\x0c\xfa\x3c\xfa\x88\x6a\x7c\x43\x30\x18\xe7\x18\x8a\x68\x6c\x64\xfa\xd5\x84\x53\xb0\x02\xbd\x30\xe3\x66\x31\x1f\x25\x24\x20\xc3\x1d\x7c\x28\x88\x0d\xf6\x43\x97\x4e\x90\x92\xd2\x8c\xa9\xf5\x64\xfe\xa6\x73\xa6\x40\xbb\xf4\x86\xb8\x42\x74\x72\x31\x02\xbe\x76\x9c\x2d\x0c\x9a\xce\xe8\x57\x1f\x62\x9f\x0f\xc1\x06\x83\xb8\x72\x54\x75\xe5\x2c\x1b\x68\x62\xf3\xa8\x99\xd2\x28\xaf\xb3\x74\x21\x81\x3d\x27\x4b\x17\xd7\x6f\x93\xef\x16\x72\x91\x61\xd4\x0a\x0f\x83\x18\x6a\x07\xc4\x95\xfe\x40\x75\x34\x33\xba\x48\x9e\x84\xb6\xa7\x68\x9e\x9c\xc1\x3e\xad\x51\xa5\x66\x06\x67\x61\xef\x0d\x06\xc3\x8d\xed\x65\x88\x4b\xe1\x42\x01\xe1\xaf\x24\x21\x73\xd3\x6b\x01\x88\x3c\x30\x98\xb8\x4f\xec\x13\x28\x88\x58\xbb\xfe\x05\xd0\xca\xbd\x07\xf7\xec\x90\x18\x04\x15\xc6\xb9\x20\xf9\x8b\xc4\x4a\x28\xb5\x47\x3e\x4b\xf9\x56\x5a\xa4\x35\xb5\x02\x4a\x78\x6e\x39\x99\xd3\x85\x11\x07\xb4\x34\xb7\x54\x3a\x65\x47\xe4\xd1\x9c\x42\x9d\xa5\x86\x8f\x67\x29\x77\xa7\x0e\xcc\x1d\x2b\xb6\xb4\x98\xe7\x74\x82\x12\x28\x0a\x7a\x11\x0d\xf0\x5a\x6d\x01\xe6\x48\x67\xd4\xc7\x0a\xc1\x16\x26\x5c\xdc\x9b\xce\x10\x4c\xca\xf9\xba\x52\xc3\x0b\xa5\xcf\xc9\x2b\xec\xe9\x5a\x6a\xdc\x61\x97\x9b\xab\x0f\xac\x3b\x1e\x5c\x4c\x83\x24\xd3\x7a\x6b\xcf\x26\x78\x50\xb5\x5f\x6e\x86\x69\x55\xfb\xa9\x93\x3d\xb6\xf9\x76\x45\x4a\x5e\xe3\xe7\xeb\x0f\x7d\x10\x17\x69\x63\xd3\xac\xf4\x12\xa6\xff\x5a\x4d\x1c\xb2\xf8\xb1\xb6\x05\xb5\xd2\xcc\x7f\xfa\x7f\x21\x16\x27\x2e\xcd\x7f\x12\x99\x0e\x05\xfe\x7e\xe4\xb1\xbb\xcc\x0b\x79\x22\x3d\x9d\xb3\x3c\xd5\x38\xcd\xe5\x34\x9f\x28\x62\xd3\x2c\x11\x34\xc1\x43\x17\x99\x31\x04\x85\x44\x2a\x95\x1d\xb0\xc0\xf8\x9c\x09\x23\x8b\x3b\x71\x31\xb7\x1d\x20\x49\x23\x64\x30\xf8\x1c\x0c\x6f\xb3\x11\xfa\x39\xf2\x39\xf4\x89\xa2\xa4\xcd\x10\xcf\x3d\x9e\xf5\xd4\xef\xca\x6e\x6c\x27\x31\x0f\xba\xb7\x3f\x8f\x6e\x7a\xb7\x57\x77\x37\x67\x05\xb1\xf9\xec\xe2\xee\x76\xd0\xbb\xa9\x7d\x86\xa5\xf3\xfa\x57\x97\xa3\xbf\xde\xf5\xee\x1a\x1e\xb9\x06\x2e\xba\x6f\x7b\x17\xe1\x2b\x7f\xbd\xeb\x5e\xf4\x07\xbf\x8c\xae\xde\x8d\x6e\x7b\x37\x1f\xfb\x67\xbd\xd1\xed\x75\xef\xac\xff\xae\x7f\x86\xa5\x84\x83\x77\xaf\x2f\xee\xde\xf7\x2f\x47\x2e\x12\x30\x7c\xf4\xe9\xea\xe6\xe7\x77\x17\x57\x9f\x46\x41\x97\x57\x97\xef\xfa\xab\x0b\x98\xd6\xcf\xb7\x11\xeb\x3c\xb8\x59\x02\x05\x2f\x10\x41\xc6\x4b\x4b\xbc\xfc\x1f\x60\x66\xbc\x46\x8a\x3b\x3e\x72\xff\xc2\xf2\x01\xc7\x86\xc9\x39\x0b\x76\xce\x1f\x86\xc2\xbb\x18\xfc\x2d\xa7\xe9\x54\xb9\x9a\x9f\x85\xd1\x9e\x92\x2e\x9c\x06\x10\xc9\x0b\x9d\x42\xd2\x8d\x1f\xa9\xf3\x2c\x01\xa5\x41\x35\x60\x5b\xe1\xb6\xbc\xa5\xc5\x06\xed\x9c\x60\x08\xd6\xc2\x1e\xaf\xa2\x77\x57\x36\xb7\x48\x0b\xa7\xc4\xf1\x60\xd3\xac\x19\x17\x64\xe9\x2f\x05\x9d\x57\x2a\x9b\x62\xa2\xba\x4d\x61\x37\xe7\xa6\xdc\x62\x81\x84\x8a\x2d\xcf\x18\xf9\xf9\x2f\xf9\xa0\xc0\xda\x68\xad\x77\x59\x05\x93\xd7\x3e\x48\x33\x5c\xd5\x75\x04\x58\xe8\xc9\x1d\xe4\x9a\x0a\xfa\x60\x1a\xce\x44\x90\x26\x5a\xb0\x13\xdb\xb2\x3c\xe4\x98\x94\xa8\xf8\x94\xdc\xb2\x84\x45\x3a\x2f\xad\x0a\xbb\xb8\x48\xb2\x29\xaf\x14\x27\x19\xb3\x19\x7d\xe0\xd2\x81\x76\x21\xb6\x19\xac\x23\xc8\x3a\xd0\x7e\xe3\x51\x38\x25\xdd\x38\x56\x45\x16\x56\xa0\x1c\xc7\x14\x8f\x8b\xc3\x0e\x33\x3b\x45\xec\x19\x63\xad\xe2\x5e\x73\xeb\xed\x04\xad\xa0\xee\x47\x8e\xc4\x46\x5b\x5d\xc3\x03\xaa\xee\x6b\x6a\x11\xd5\xde\x6c\x96\x7e\x76\xec\xb1\xb9\x00\x52\x6d\xa7\x7e\xad\x47\x70\x00\xb6\xeb\xb3\x11\xd7\x62\x4d\x97\x6e\xc6\x49\x09\x48\x74\xe3\xfe\x0a\x40\xa4\x4f\x6f\x31\xad\x97\x83\xe0\xa8\x8c\x3c\x5d\xb6\x98\xc7\x35\x7c\x7a\xe5\xbf\x5c\x29\x2c\x8d\x82\x75\x6b\x6b\x47\xad\xe4\xb4\x59\x5b\xea\xe6\x22\x12\xc0\x3a\xf1\x08\xcc\xd9\x94\x0b\x0b\xdc\xc7\xbc\xbd\xd5\x55\x36\xc0\x12\xef\xd6\x3e\x4c\xc7\xf2\xa1\xa0\x21\xcd\xb1\x0c\x73\xed\xd9\x0d\x0c\x35\xbb\x1c\x5a\x7f\x7a\x36\xaf\x7e\x6f\xf6\xda\x9d\x97\xb5\x15\xef\x6f\x42\xf5\xce\x4d\xd4\x88\x71\xb1\x0b\x09\x23\x57\x98\x18\x62\xce\xfe\x51\xee\x2a\x96\x69\xe0\x41\x6f\xb0\xa1\x6c\x6a\xec\x29\x2f\x58\x2d\x1e\x63\x68\xa2\x6e\xef\x61\x0e\x5a\xdf\x08\x57\x28\x88\x27\xa8\x94\x64\x2d\xae\x4f\x0b\xaa\x2b\xd8\xf3\xc3\xd2\x08\x58\xc5\x07\xeb\x26\x05\x23\x3d\x22\x14\xf3\x71\x72\x09\x44\x65\xd1\x0c\xf1\xfc\x0c\x3b\x3f\x1a\x8a\xc7\x60\x43\x0a\x11\x6b\xdd\xb0\x25\x40\x4e\xf8\x6c\x18\x14\x7f\x28\xc4\x01\x82\x98\xc5\x21\x28\x2d\x20\x04\x34\x78\xe7\x40\x93\x6b\x08\x3c\xd8\xaf\x1d\x48\x7d\x0b\x54\xe1\x9a\x3a\x49\x75\xd8\xc2\x7e\x6e\x01\xa4\xef\xbe\xf0\x84\x57\x0c\x21\x40\x15\xae\x1b\xc1\x1e\x40\x85\xbf\x0c\x92\x30\xa6\xa1\xcd\xc7\x36\x29\xd4\x4c\xd7\xad\xf6\x1f\xdd\x8c\xfe\x88\xd6\xf0\xac\x21\x8b\x38\x68\xcd\x23\xea\x90\x63\xa8\xea\x67\x53\x16\xad\xa3\x51\x91\x63\x92\xf0\x7b\x46\xbe\x81\x38\xa2\xee\x75\xff\x9b\x23\xf2\x4d\x98\x16\xf1\xcd\x56\x07\xd0\x8e\xdb\x02\x0b\x83\x06\x52\x88\x8d\x2d\x1e\x3b\xd8\xab\xd2\x49\xb4\x7b\x66\x0f\x22\x69\x3a\x87\xe6\xcb\xc2\x37\x50\xe4\x1f\x0b\xb1\x43\x08\xa5\x8f\xcc\xb3\x8e\x09\x94\x0b\xb9\xaa\x59\xbb\x78\x28\xc6\xcb\xb2\xeb\xe1\xc8\xfb\x1e\x36\x3e\xa5\x3b\x83\xbf\x9a\xf6\xaa\x79\x74\x7b\x0e\x33\x5b\x7d\x1f\xac\xc9\xcc\xeb\xfa\x1a\x5e\x39\x17\x53\x0d\xe7\xe5\x10\x6a\x59\x37\xab\x82\x15\xc9\x2d\x66\xed\xa6\xac\x93\x7f\x5e\x1b\xb9\x6d\x10\xd4\xd8\xad\x5b\x11\x1b\x94\xda\x20\xf8\x1e\xa8\xec\x69\xa9\x6c\x1f\xf1\xbc\xc5\xc1\xb5\xbf\x40\xcf\x50\x8e\x0b\x9a\x71\x66\x48\xa3\x4c\x78\x06\x5f\x40\x15\x5e\x0f\xad\xdf\xd2\x13\x19\xac\xc9\x7a\x57\xe4\x2d\xba\xb3\xd1\x0d\x58\x1d\x6b\x79\xa8\x5d\x6d\x21\x0e\x25\xc7\x34\x1c\xcd\xe7\xec\x88\x40\x05\xca\xdc\x05\x6f\xcf\x2b\x90\x1b\xdc\x71\xb6\xcc\x14\x76\x92\x46\x33\xfe\xd0\xce\x9f\xd9\x56\x1a\x6f\xa2\x91\x1d\xe2\x1f\x2e\xbb\x1f\x7a\xe7\xa3\xde\xe5\xa0\x3f\xf8\x65\x54\x0d\x85\x28\x3e\xbe\x39\xfb\xa9\xff\xb1\x77\x1e\xbe\x70\xfb\xcb\xed\xa0\xf7\x61\xf4\xbe\x77\xd9\xbb\xe9\x0e\x7a\xe7\x2b\x4d\xa9\xab\x3a\xab\xc3\xa1\xb7\xa1\xd3\x35\xea\x9b\xc7\x63\x43\x3b\x24\xe4\xfa\x1b\x71\xff\x81\x2b\x6e\xf3\x5d\xad\x88\x7a\xd7\x77\xa6\xd1\x9a\xde\x4f\x83\x54\x94\x23\x04\x29\xcb\x3b\xe1\xd6\x9d\x14\x8a\xaf\x36\xea\x41\xc4\x18\x28\x49\x82\x5a\xa2\x9d\x9a\x4e\xec\x82\x9d\x92\xae\xa5\x8e\xba\xf6\x85\x24\x46\x78\x66\x29\x8e\x1e\x43\x22\xfc\xd0\xc9\x31\x29\xaf\xf1\x29\x41\x24\xd9\x00\x18\xdf\x37\x08\x22\x1f\x4d\x99\xf8\x46\x13\xf6\x79\x91\xf0\x88\xeb\x20\x87\x45\xa6\xd6\xe9\x80\x4e\x35\x88\xbe\x5a\x43\x5c\x7b\x8b\x91\xd8\xbb\xce\x1f\x42\x36\x54\xb5\x7d\x7f\xa2\xb4\xb4\x79\x80\x6b\x01\x3b\xf7\xa0\xd8\x37\xb8\x52\x2b\xd8\xa2\x5b\x8c\xee\x29\xcc\x03\xd5\x08\x74\x9b\x81\x62\x43\x2c\xa8\x83\x40\x7f\xc4\x1b\x71\xbb\x42\xb0\xab\xe3\x36\x0a\xe7\xba\x75\xe0\x46\x0d\xa5\x7e\xe1\xc8\x8d\x02\x6c\xf7\xde\x0a\x6e\x8e\x5a\xba\xf1\x2b\xd8\x98\xe2\x1e\x11\x03\x49\xca\xe6\x52\x1b\x05\x0c\xfd\xe4\x47\x46\xa8\xe2\x34\x81\x72\xf0\xe6\xc0\x75\x82\xb8\x02\x48\x70\x89\xc3\x80\x66\x9b\xe8\xfc\xf4\x85\x37\xf3\x62\x58\x95\x92\x9b\x4e\x79\xbf\x6c\xae\x97\xd0\xae\xbe\x61\x61\xcb\xd6\xd7\x36\x84\x5a\xca\x54\x35\x14\x36\x04\xe8\xd0\xf8\xa5\x94\x37\xac\x66\x4a\x97\x36\xf4\xcb\x96\x36\x2c\x0d\xe6\xe5\xd4\x37\x5c\xbb\x6e\x2f\x37\x15\xbe\x66\xa0\x1b\xd4\x35\xf4\x1e\x0c\x28\x57\xd0\xee\xb2\x81\xec\x78\x1e\x27\x05\x37\x86\x39\x54\xfe\xd6\xa9\xd7\x1d\xa9\xba\xdf\xb9\xbb\x01\x55\xf7\x0d\x5d\xad\xbb\x97\xce\x0a\x6e\x92\xd2\xb2\xd9\x4c\x6d\x8b\x35\x15\x16\xa1\x6e\xe6\xf6\xbd\x07\x26\xf4\x5e\x44\x25\x68\xa2\x26\x3f\x6e\x33\x83\x27\xa2\x7b\xf7\xcf\x73\x8e\xe4\x2b\xe3\x04\x41\x09\x3a\xa5\x00\x4d\x61\x8b\xe9\x5b\xcf\x5b\x93\x3f\xd0\x4c\x6d\xb3\xed\x81\x57\xab\xeb\xb2\x26\x76\xd4\xae\x76\x5e\xd3\x20\x8f\x3b\x93\x11\x44\xa5\x6f\x1f\x2b\x8a\x0a\x55\x58\xba\x12\xe5\xe4\xf2\x9e\x63\x9f\x33\xaa\xca\x5d\xae\xdd\xf2\x2d\x32\xbd\x0b\xcd\xbc\x67\x90\x3d\xb1\x97\x9a\x61\x2d\xb2\xe4\x60\x20\x77\x69\xb2\xb6\x30\xf7\x2d\xd6\x53\xc8\xd2\x24\xb7\xb0\xd0\x0d\xc4\x05\x1c\x4c\x67\x28\xce\xd9\x22\x65\x50\xe1\xe7\x94\x5c\x27\xcc\x5c\x97\x99\xb9\x32\xb3\x24\x19\xf9\xc2\xc5\x4a\x33\xda\xc4\x9f\xda\xd7\x1d\x7f\xca\x79\x39\x31\x68\xf5\xc4\x1c\x2a\xcc\xea\x99\x05\x6b\xb0\xff\xdc\xc6\x60\x7d\xc1\x9a\x05\x36\x8d\xa2\x40\x0b\x1a\xc9\x12\x03\xdb\x40\xab\xa5\xa1\xe4\xad\xf8\x3f\xcc\x55\x9d\x32\x35\x93\xc9\xca\x29\xb4\xc6\xda\x69\x33\x07\xb7\x94\x4f\x38\x09\x1b\x73\x34\x6a\x0a\x7c\xdc\xe0\x32\x3a\xc7\x26\x6a\xaf\xc0\x55\x53\xf4\xc8\xaf\xde\x11\x6d\x31\xca\x6c\x10\x8f\x1d\x1a\xb8\x57\x72\xad\x3f\xc4\x0b\xc9\xad\xa8\xb9\x04\xba\x44\x37\x90\xff\x3c\xa8\xd4\xe4\x63\x76\xb9\x56\x44\xe9\x34\x8b\x00\x4d\x6f\xc6\xd2\x56\x08\x7e\x3e\x10\x3b\x6f\xc2\x0c\xb8\x9e\xb5\x59\xd0\x57\x90\x53\x6c\x84\x82\x2a\x20\x9d\xd8\x2d\xc6\x29\xd7\xca\xd0\xcd\x0c\x74\x57\x6b\x7c\xb1\x48\xd3\x93\x19\xe5\x0b\xd4\x52\x98\xc0\x01\x3b\x63\x5b\x53\xbb\xc5\x01\xf6\x14\x08\x78\x37\x3a\x85\xac\xb8\xdc\xfa\x5e\xbe\xea\xad\xc5\x6c\x2d\x61\x99\xf3\x7b\xbe\xa3\x01\xde\x0c\x67\x39\x82\x6c\xa6\x5d\x9c\xf0\x85\x19\xa0\xf1\x10\xda\x64\x31\xc1\xe4\x3c\x44\xe8\xb3\xb3\xf7\x86\x53\x2c\x43\x36\x14\x37\x66\x14\xf8\x45\xee\x88\xcd\x4b\xfc\xb0\x1c\x9e\x7f\x42\xa8\xfd\x0a\x96\xad\x29\x0e\x46\x8d\x82\x0a\x67\x4d\x13\xdb\x43\x6d\x89\xb7\xf8\x0e\x99\x24\x74\xea\x52\xda\xa1\x7a\xde\x24\xd7\x77\x8c\xd0\x86\xe5\xe8\x30\xbd\x12\x2f\x01\xae\x6d\xca\xa4\x17\x79\x33\xe6\x70\x02\xe1\x33\xcf\x87\xea\x98\xa4\xd3\xa8\x84\xc3\x71\x53\x43\x11\xf4\xb1\x02\x56\x0a\xb5\x9a\x2d\xc5\x77\xd8\x67\x1e\x7b\xbb\x37\xfc\x29\xea\xcb\x95\xd9\xe9\xcd\xe9\x02\xac\x3b\x78\x96\xe4\xc4\xdf\x23\x03\x1b\x98\xdb\x81\x11\xff\xf7\x7f\xfd\xad\xc3\x57\x5a\xee\x02\x9b\x6a\xee\xc1\xca\xdd\x14\x41\x94\x58\x50\x84\x8d\x02\xc3\x5f\x59\x95\xbc\x80\xae\xb2\x4b\x34\xcd\x8c\xaa\xa7\x73\x99\xd6\x22\xcb\xa3\x3d\x28\xe4\xce\xeb\x9c\xa7\x38\x48\xcc\x4d\x31\x24\x94\x29\x96\x22\x09\xfa\x34\xfc\x9a\x4a\x2f\x9b\x14\x06\x67\x73\xca\x5b\xc5\x60\x9a\xf7\xeb\x91\x6d\x0a\xe6\x32\x3a\x65\xe9\x28\xce\x0a\x41\x7d\xeb\xda\xbe\x36\x1f\x9d\x67\x7a\xb9\xbe\x7d\x95\xd0\xe8\xbe\x0d\x9a\x90\x79\xbf\xa1\xd9\xf5\xf7\x41\xe0\x7a\x2d\x8a\x25\x0d\x58\x3d\xac\x84\xd5\x63\x63\x81\x0a\xfa\x22\xb0\x46\x01\xa5\x7a\x02\xb1\xd2\xf2\x4e\x04\x07\x84\x91\x43\xa9\x3a\xc7\x6c\x3c\xdc\x6a\xdc\x19\x8a\x77\x88\x57\x0c\x22\x2f\x0e\x20\x82\x62\x39\xec\xf3\x42\x2a\x56\x88\xa6\xaf\x81\x50\xb5\xf9\x2e\x76\x18\xf5\x97\x56\xa9\x54\xd2\x4e\xc2\xd0\x17\x47\x5d\xaa\x6e\x78\x75\xca\xf5\x14\xb8\xd3\x3d\x1d\xf1\x05\x37\xb4\x33\xaa\x3d\x69\x4f\x57\xb2\x2f\xf7\xb5\x43\xfe\xbd\x4e\x96\x47\xc4\x4f\xaf\x44\x10\x09\x7b\x60\x29\x9d\x1a\x59\x89\xf2\x24\x04\xca\x2d\x1a\x39\x1a\xd8\xc9\xba\x03\x94\xa7\xb2\x00\x5b\x20\x71\x79\x04\xc5\x80\xff\x3a\x5a\x2c\x86\x4c\xef\x1c\xdd\x5f\xe7\x30\x6c\x21\x37\x75\x43\xc0\xe0\x25\xd3\x84\x7d\xd6\x4c\xa0\xab\x75\xe0\xf2\x22\xaa\x61\xa1\xa4\x3e\x84\xbc\xf9\x52\x7f\xf2\x42\x8e\x5d\x97\xef\xe6\x12\x3f\x62\x65\x6f\x18\x5b\x78\x6b\x46\x45\x6c\xb3\x7b\xf2\x62\xc5\x38\x3b\xb4\x40\xf8\x18\x4e\x9b\xa3\x12\x20\x2d\x62\x9b\x08\x09\x09\x17\x99\x93\xc8\x8d\x2c\x09\x6e\x2f\x99\x1a\x91\x2a\x13\x9a\x27\x86\x38\xec\x18\x8c\xbe\x96\x09\x0f\x90\x02\x11\x87\x4d\x18\x1c\x5c\x29\x2e\xa6\x23\xbb\x92\x2e\x51\x65\xb3\x8b\xa1\x48\x53\x1f\xb0\x29\xfc\xf1\xad\x6b\x68\xb5\x85\x11\xc9\xda\x4c\xdf\xa7\xc8\x80\x28\x28\xa4\x9b\x8c\x05\xb6\x70\x99\x35\x23\x1e\x17\xaa\xc1\xc1\x44\xdb\xe8\x26\x20\x9b\x55\xb3\x4e\xf3\x2b\x44\x11\x05\x89\x3d\x18\x98\x0f\x11\x94\xba\x21\xaf\x47\x35\xe6\xf3\xf4\x85\x17\xd1\x2c\x6e\xbe\xcf\x4b\x2c\xa5\x06\x51\xd7\x9d\x0d\x13\xa5\x49\x32\xa6\xd1\xbd\x17\x8f\xbd\xb2\x27\x53\x87\x3b\x6a\xc4\x46\x28\xac\x80\xc4\x65\x06\x1a\x81\x74\x83\x69\xb7\x48\x4c\x98\xf7\x6f\x87\x9d\x77\x6e\x6b\xe8\x09\xac\xea\x06\x6a\x21\x8e\x1e\x63\x4e\x63\xb6\x48\xe4\x72\xde\x70\x9f\x95\xd3\x2e\x76\xf1\xa0\x36\x65\x7d\xec\xf5\x2a\x2b\x31\xbd\xd6\x97\x59\x25\x4e\x7c\x0f\x28\x14\x2d\xb8\xe4\xfb\x44\x8e\xc1\xbe\x64\xf5\x42\x17\xfb\x1c\x84\xe0\x96\xcf\x73\xdb\x88\xec\xf2\x89\xe4\x6a\x91\xd0\xe5\xaa\x1e\x30\x16\xf8\x69\xf7\x0d\xf3\x2d\xd7\x9b\x5f\x36\x8f\xa2\xab\xfd\xfc\x49\x6a\x15\x3a\x49\xc0\x16\x2d\x04\xfe\x65\x4d\x4c\x2c\xe9\x40\x33\x1d\xcc\xc2\xe8\x2c\x52\x69\x24\x05\x39\x14\x9a\x4e\xdd\xee\x5a\xe9\x52\x3e\x0a\x96\xaa\x19\x5f\x14\x2a\xae\xec\x1c\xb7\x67\x49\xda\xfe\x07\xa3\xd4\x5a\x30\x4f\xb9\x38\xc6\x84\x6a\x43\x20\x6a\x41\xa3\xdc\xee\x14\x25\x54\x29\x3e\x59\x06\x79\xd0\x3e\x04\x0a\xe2\xea\x7d\xb5\x81\x62\xd5\x8e\x5a\x73\x4f\x21\xef\x76\x3f\x49\x89\xbb\x27\x7d\xdc\x15\x4f\x21\x8f\x43\xd8\x17\xa8\xb5\x59\x49\x7d\xdf\xb0\x1c\xe8\xae\xb9\x20\x76\x64\x36\x23\x62\x7f\x03\x73\xf9\xcc\xdb\x65\x37\xae\x84\x52\xd8\x5c\xe4\xb5\x83\xb7\xea\x96\x4f\xb1\x0e\x27\x03\x33\x8d\xed\x17\x3e\x07\xa2\x90\x31\x4b\x0b\x38\x02\xb8\x52\x46\x05\x74\x95\x33\xcc\x29\xf3\x29\xdc\x90\x56\x9b\x77\x70\x44\x14\x63\xe4\x98\x9c\xa6\x6c\x72\xfa\x3f\x29\x9b\x8c\x9c\xcd\x18\x27\x7a\xe2\x3f\xf2\x39\xa8\x78\xb6\xff\xa7\x05\x6d\x9f\xb3\x84\xed\x25\xa8\x6f\x0b\x42\x2f\xbb\xa9\x03\x12\x5f\x49\x45\x39\x4e\xeb\x7a\x3b\x49\x7b\x22\x2f\x8f\x2a\x27\xef\xbd\x0d\x6a\x8b\x00\xc8\x06\xe0\x86\xfa\x91\x7f\xc2\x81\xda\x18\xc8\x3a\xda\x32\xac\x33\x86\xad\xdf\x52\x37\x0c\xbc\xea\xd8\x8e\x3d\x32\x79\x67\x6e\x37\x1d\xd0\x86\x97\x79\x9d\x10\xb6\x05\x95\x7e\xe1\x80\xbe\x86\xd1\xbd\x67\x9b\xf8\xfd\xd7\x9e\xa0\xad\xb8\x5d\xd3\x95\xd5\x66\x27\xad\xe7\x4e\x4b\x32\x65\x1a\xcb\x43\xfa\x1a\x98\xfb\xdc\xc5\xbd\x05\x10\xef\x75\xa5\xea\x8f\xd0\x36\x67\xe2\x96\x69\xe5\x2e\x8c\x0a\xce\x94\x5d\xc8\x63\x97\x11\x99\xe7\x17\x6e\xb1\x82\x2f\xe3\x1c\xdc\x58\x9b\xc1\xd3\xdd\x1e\xeb\xb7\x73\x8b\xed\xdb\x60\x3e\x5b\x04\xf1\xd8\x36\x36\xde\xa1\xc6\x16\xf6\x21\x6e\x3e\xb1\x7e\x6b\x97\x7e\xad\xa2\xf4\xdb\xf6\x53\x57\x77\xb8\x0e\x1f\x77\xf7\x78\xf0\x44\xa2\xfd\x75\xb4\x48\xd9\x84\x7f\xde\x4a\xd6\xb9\x86\x4f\xad\x00\x6f\x66\x5f\x42\xdc\x05\x7d\x12\x10\x7a\x73\x7d\xca\x2d\xc0\x63\xca\xb5\x66\x62\x28\x00\x5e\x54\xfd\xe9\xf4\xe4\x64\x9c\x45\xf7\x4c\x9f\xdc\xb3\x25\x91\x69\xe1\xa7\x6d\xd1\x04\xf6\x8f\x0e\x3c\x14\xb7\x8c\x91\x99\xd6\x0b\x75\x7a\x72\x32\xe5\x7a\x96\x8d\x8d\x8a\x8c\x91\x19\x32\x9d\xe2\x3f\x4e\xb8\x52\x19\x53\x27\x3f\xfe\xf0\x03\x2c\x0f\xd0\xc3\x98\x46\xf7\x53\xcc\xcf\xaa\xea\xc9\x85\x2d\xbf\xad\x56\xd0\x68\x0f\xd3\x98\x4a\x31\x62\x9f\x17\x29\x53\x75\xe5\x56\x37\x4d\x7d\x57\xa4\xfb\xe9\x96\xa8\xa5\xd0\xf4\xf3\x29\xf9\x80\xb5\x71\xc9\x4f\x32\x4b\x15\x39\xa7\xcb\x63\x39\x39\x9e\x4b\xa1\x67\xe4\x03\xfc\xaf\xfd\xe9\x91\xb1\x7b\xf2\x0b\xa3\xa9\xdd\x5f\xbc\xcd\x3c\x68\x2b\xd8\x79\xd3\x4c\x28\x5b\x74\xf7\x87\x7f\x77\x55\x77\x4f\xc9\xf7\x27\x3f\xfc\x3b\xf9\x03\xfc\xff\xff\x8f\xfc\xa1\x09\x73\xba\x55\xee\x5f\x5e\x11\xb9\xb6\x35\x58\xa9\x2d\x8a\x96\x9c\xa5\x32\xdf\xa9\xda\x96\xef\x79\x74\x2f\x27\x93\x91\xe6\x73\x86\x61\x74\x23\x9a\x56\x30\x5d\xb6\x04\x52\xe0\xb6\xc4\x02\x16\x9c\xcb\x21\x16\x6d\xa7\x18\x24\xef\x8e\x9b\xca\x72\x88\x79\xb0\x5a\x17\x60\xfb\xb9\x82\xaf\x58\x6c\x4e\x45\x1b\x0b\xb5\xd3\x7c\xab\x35\x9d\xf2\x74\x8b\xb0\x6c\x88\xf7\x34\x85\x6e\x53\xb9\xae\x1a\x71\xd5\x9f\xfb\xd5\x38\xe9\x60\x6a\x5f\xca\x41\xa7\x2a\x9d\xaf\xf7\xcd\xdd\xca\x74\x27\x99\xed\x9e\x55\x82\x04\x36\x84\x13\x75\x60\xf5\x61\x01\x1b\x88\xcf\x96\xa9\x07\x34\x41\x9d\xc4\x82\x7e\xaf\x57\xf3\x79\x8a\xde\x8c\xcd\x0e\xbd\x99\xfa\xb9\xff\x64\xdd\x30\xc1\xb5\xe1\xde\xce\xe1\x8c\x61\xb4\xe6\x8a\x33\x2c\xb1\x66\xc4\x35\x59\xcf\x6b\x35\x08\xdc\x33\xa6\xb0\x71\xf0\xb3\x41\x7c\x93\x70\xf1\x6b\x36\x7c\xbf\x76\x3f\x21\x17\x74\x1f\x69\xe2\x15\xc8\xaf\x1d\xf8\x1c\xda\x22\x72\x16\xe1\x60\xf7\x40\x92\x0a\xca\x63\x50\xc3\x3d\xb6\xcc\xac\x47\xd0\xcd\x23\x92\x52\x70\x55\xe9\x19\x15\x20\x30\x1c\x4f\x68\xc4\xc5\xf4\x28\x48\xaa\x86\xac\x82\x90\x67\xd5\xad\xe4\x80\xaa\xfb\xfd\xba\x5f\x76\x06\x01\xe7\x71\x0e\x84\x8b\x14\x69\xbd\x33\xbc\x92\x51\xaa\xa9\xba\xdf\x5b\xbd\x63\xb3\x14\x9b\x54\x3a\x76\x51\xca\x2c\x14\xda\x00\x61\xcc\x68\x92\x01\x0a\x8d\x0b\x50\xc3\x5a\x82\x3c\x61\x71\x39\x17\xbf\x3c\xfe\x75\x84\x80\x3e\xc4\xc0\xce\x0f\xa9\xda\x73\xa3\xe7\xc6\x68\xff\x12\x4b\x3c\x4a\xe6\xe6\xa2\xea\x5e\x79\x24\x7a\xa2\xe6\x34\x49\x8e\x48\xca\x32\x65\xae\xde\x23\xa2\x58\x32\x39\x76\xa8\x69\x31\x49\xe4\x94\x47\x34\x21\xe3\x44\x46\xf7\x6a\x28\xcc\x55\x22\xa6\x78\x03\x2e\x52\x19\x31\xa5\x82\xbb\x37\x8f\x60\xb6\x61\x82\x00\x43\xaf\x59\x3a\xe7\x82\x2b\xcd\xa3\x52\x91\xd8\xce\x50\x60\x59\x05\xa3\xa4\x44\x12\xc1\xf3\x61\xb8\x46\x16\x60\x98\xc7\x9d\x09\x8b\x49\x09\x0c\xdd\xa6\x67\x3a\xbf\x75\x13\xf5\xee\x21\xdb\xd4\x6d\xcf\x48\x17\x4f\xc3\x1a\x7a\x3e\xb3\x9f\xc1\x19\x5a\x45\x31\x37\x45\x72\xf6\xd4\xe0\xc9\xdc\x83\x18\x39\xa2\xc8\xbd\xf2\x85\xbb\xcd\x3b\xab\x5f\x58\x9a\x20\x0c\xb9\x21\x39\x70\x1d\x4d\x9f\x61\xd5\x59\x0b\x83\x5a\xf6\x39\xb8\x6a\xb2\x16\xea\xda\x5c\x12\x0f\x86\x48\xdc\xf2\x98\xb5\x37\x57\xc9\x91\x2f\x05\x4b\x95\x75\xca\x1f\x7b\x8c\x2d\xc3\x0f\x11\x07\x0d\x3a\x29\xd5\x15\xad\x52\xd4\x4b\x2a\xff\xea\x2f\xe9\xb6\x6c\x71\xad\x20\xd1\xb2\x14\xac\x5b\xe9\x46\x3c\x82\xc2\xd8\x8a\x64\x0b\x29\x79\xcd\x83\x6a\x71\xff\xe5\xc0\xf7\x85\xd8\x77\xa4\x3b\x78\xfa\xc0\xf3\x9a\x20\x01\x7f\x6d\xdc\xe5\xad\x0d\x8c\xa5\x51\x55\x92\x42\x38\x56\xbe\xb1\x35\xb0\x8d\x98\x9a\x45\x11\x63\x71\xad\x3f\xd6\x8c\xe8\xc5\x25\xd0\x5f\x53\x3d\xc3\xcc\x82\xb9\xd4\x88\x6e\x8f\x09\xf4\xce\x72\x82\xf8\xf5\xe3\x44\x8e\xe1\x86\x81\xdc\x7a\x17\xa1\x1e\x44\x98\xe2\xbc\x59\x4c\xbe\x0d\x2e\x0c\x9f\xfb\xd2\x54\xbd\x68\x8f\x79\xf5\x65\x73\x4b\x63\x76\x7d\x11\x7a\xb9\x43\xae\x4b\xc9\x56\xc1\xac\x26\xd4\xf0\xf0\xa6\xb8\xb9\x76\xb9\xf8\x85\xdd\xdf\x43\x2e\x7e\x69\x1a\x0d\xc1\x19\x72\xfa\xa4\x41\xe5\x66\x52\x17\x72\xf3\x48\x3f\x4c\x87\x45\x49\xa4\xb0\x39\x8e\xcc\x96\x75\x5b\xf4\xb2\x70\x06\x4a\xd0\xdd\x5f\x16\x67\xa0\x34\x98\x97\x8c\x33\x50\x1a\xea\xcb\xc5\x19\xa8\x19\xe8\x06\x38\x03\xe8\x29\x1b\x19\xa2\xde\x8c\x29\x40\x70\xc3\x38\x9b\xdc\xc2\x6d\xb2\x72\x8c\xb6\x3e\x23\x32\x67\x27\xf1\x58\x30\x19\x18\xad\x0d\x72\x6d\xf2\xcf\x53\xb5\x13\xed\x79\x27\x02\x57\xa8\x6c\x2e\x12\x2a\x8a\x4c\x15\xea\x5f\xa5\x2c\x32\xe4\x87\x8c\x2a\x2f\x0c\x7c\x64\x8d\x20\x66\x14\x68\xf7\x8b\xe8\xc2\x26\x0d\x34\x61\x3c\xbe\x9c\xf0\xe8\x76\x10\x0e\x90\x69\x5f\x60\xf5\x1b\xe5\xc9\x7e\x28\xc1\xa4\xcd\xe4\xa3\x15\x6d\x80\xfc\x6c\x49\xd3\x96\x32\x77\x08\x02\x51\xa2\xe9\x0d\x41\x20\x0a\x13\x39\x80\x40\xd4\x6f\xf0\x8b\x05\x81\x28\xed\xf9\x66\x20\x10\x75\x5b\xbe\x85\xf7\xb7\xd0\xcc\x57\x03\x02\x51\x5a\xd1\xaf\x06\x04\xa2\x34\xaf\x03\x08\xc4\x57\x02\x02\xb1\x9e\x8f\xd4\xc2\x1c\xd4\x1f\xde\x76\x30\x07\xb5\x22\x7c\x33\x8b\xd8\x35\xb3\x0f\x04\x86\x67\x86\x39\x28\x4c\xe0\x10\x3e\xb2\x2d\xcc\x41\x2d\x09\xda\x11\x40\xd1\x58\x9b\x7d\x5c\xbe\xce\x56\x00\x1d\x80\x5a\xba\x07\x8a\x7a\xda\xc0\x23\xb0\x29\x6f\xaa\x39\x77\x0b\xeb\xa0\x2c\xcc\x89\x91\x70\x5c\xba\x2f\x0a\xd9\xa1\x3f\xed\x40\x81\xad\x2d\x8f\x0d\x8b\xec\x6d\xd1\x98\x7a\xd2\x40\x72\x35\x65\x8f\x76\x20\x40\x17\x79\xdf\xd2\x7e\xeb\x06\x01\x76\xdc\x7a\xa3\x10\x54\x42\xdb\x4f\xb3\xeb\x16\xd7\x67\x27\x16\x0a\xb3\xf9\xa4\x82\xbc\x30\x1b\x0a\xad\xa5\x8c\x0a\xa3\x97\xdb\x2f\xa7\x5c\xe9\xb4\xd1\xf9\x5f\x19\xe1\x2e\x9e\xa2\x45\xb6\x4d\x1e\xd4\x74\xbb\xcf\xe6\x6c\x2e\xd3\x75\x91\x07\xb5\x5f\x2a\x2d\x53\x3a\x5d\xa7\x21\xb7\xdf\x2a\x9f\x2c\x62\x63\xa2\x6b\x0a\xeb\x05\x2e\x1c\xf3\x6e\x6c\x8b\xe5\x6d\xba\x53\xbb\xee\x90\xab\xca\xd7\xce\xf8\xea\x20\x43\x56\x5b\x83\xec\x4b\x05\x47\x1d\x90\x66\xad\x2b\xd8\x7b\xe2\xb7\x74\xf6\x36\x80\x3a\x54\x3b\x04\x5f\x90\x62\xe9\x71\x28\xf7\x15\xfc\x2f\xd5\x11\x14\xd6\xdd\xe9\x0b\x3b\x2c\x7b\x96\x36\xc6\x24\x6d\x62\x8e\xc1\x4a\xb7\x46\x19\x09\x41\x8f\xcb\x54\x3d\x5e\xd6\xc4\xc1\x6f\x66\xef\xe3\x42\xff\xf9\xdf\xda\x38\x69\x41\x70\xb6\xeb\x36\xe1\x09\x23\x34\x8a\x98\x42\x0b\x91\x8d\x59\xc3\x22\x62\x59\x9a\xec\xb2\xab\xe6\x70\x98\x79\x1b\x6e\xe7\x91\x52\xe2\x9c\x78\xf0\x32\x9c\xa5\x32\x9b\xce\x9c\x85\xc0\x50\xa1\x99\x5a\xdd\x5e\x7e\xc4\x08\x83\x5d\xf6\xf2\x6d\xc6\x93\xed\xec\x2f\x79\x50\x8f\x19\xe6\xfb\xfe\x80\xa8\x99\xa7\xff\x31\x34\x5b\xbb\xb1\xd5\x41\x6f\xde\xa7\xfd\xd6\x5b\x1b\xa1\x9b\x23\x87\x0e\x30\x91\x49\x02\xf6\x32\xc5\xe6\x0f\x4d\x45\xc8\x60\xc2\x03\xbe\x65\xa9\x25\xf8\x1a\xac\xee\x4a\xd3\xf9\x62\x23\xa4\xa1\x6b\x14\x7c\x14\x71\xa3\x2f\x3b\xa3\x30\x66\x44\x0a\x26\xea\x2c\x28\x9f\xaa\x68\x7d\xaf\x2c\x72\xc7\x45\x92\xec\x2d\x7a\xc7\x2d\xc9\x33\x47\xf0\xd4\xcd\xa3\x05\x0b\x28\x04\xb4\xe6\x3c\xde\x79\x52\x51\xa6\xee\x9a\xf9\x0d\x45\xb7\x10\xfa\xea\xaa\x1b\x8c\x97\x79\xec\x1c\x0a\xa6\x21\x27\x01\x70\x34\xab\x7b\x6b\x69\x35\x72\x10\xa2\x11\xd8\x02\x63\x7b\x5c\xfc\x0e\x04\xfe\xb1\xf8\x98\x46\xcb\x28\xe1\x51\xa0\x50\x4d\x53\xba\x98\xd5\xb1\x9b\x6a\xb5\xde\x43\x0a\xf1\xca\x91\xed\x3d\x85\x78\xc3\x92\xe5\x2b\x03\x17\xc3\xa2\xdf\x87\xd4\xe6\xe6\xd4\xe6\xa3\xb0\x96\xba\x3f\xfa\x5f\x24\xc9\xb9\x7a\xf0\x0e\xf9\xcd\x5f\x20\xbf\x79\x9b\xd3\x97\x27\x2f\x17\xce\xdd\x21\xe7\xba\x4d\xce\xb5\xbf\x0b\x37\xcb\xd3\x6d\x3e\x2e\x5f\x38\xc1\xb4\x3a\xb0\x2f\x99\x63\x5d\x73\x9d\xb7\xd9\xb4\x55\xe9\xd5\x3b\x6f\xd8\x97\xcd\xa9\xde\x69\x65\x36\x49\x97\xae\xbd\x5b\xd6\x25\x4f\x37\xaf\xd2\x0b\x21\xeb\x7d\x46\x67\xb7\xc3\x28\x0f\x23\xb4\xdb\x28\x07\xed\x82\xb5\xfd\x46\xbd\xae\x80\xed\x1c\xef\x77\xbb\xa0\xed\x6e\x50\x6e\x7d\x26\x13\x00\x61\x2e\xac\x96\xef\xc0\x47\x7b\xfa\x05\x72\x9b\x71\xbb\x60\x11\x2a\x2b\xd5\x92\x80\x2b\x49\xea\xb5\x87\x67\x07\x82\xe3\x7e\x43\xb4\xc3\x95\xdd\x36\x4c\x7b\xcd\xe0\x5a\xe8\xb6\xed\x42\xb5\x4b\x8a\xf4\xca\x9d\xdf\x22\xe6\xa4\x82\x70\xbc\x7b\x4e\xfa\x9c\x7e\x1e\x2d\x68\x4a\x93\x84\x25\x5c\xcd\x9b\x0e\x30\x17\x9a\x4d\xcb\x64\x53\x30\x4c\xfe\xe9\xc7\xd5\x01\x7e\x45\xaf\x98\x2b\xfd\x08\x7e\xb1\x6c\x3e\x46\xba\x72\x03\xb1\x48\xe0\x5a\x92\x34\x13\x21\xce\xb9\x5f\x5f\x02\x00\x8d\x58\x4b\x72\x92\x41\xf4\x07\x8d\x66\x00\x1c\x3f\xa1\x3c\x15\x4c\xa9\x96\xf5\x3c\x55\x51\x5b\xc2\x7b\x8e\xff\xa3\x20\xa6\x1d\x17\xe2\x50\xa3\x20\x71\x14\xc2\x03\x1c\x58\xe1\xaa\xdd\x3f\x04\x9b\x55\x83\xcd\xea\xd7\xe6\x25\x06\x9c\xe5\x25\x65\x5b\x06\x9d\x35\x6d\xff\x3e\x98\xc0\x1e\x83\xcf\xbe\x70\x94\xd6\xd3\x04\x68\x7d\xd9\x88\xba\xa7\x08\xa6\x3b\x84\x9c\xbd\xbe\x90\xb3\xe6\x63\xdb\x2a\xec\x6c\x4d\x26\xb4\xeb\x65\xd7\xd8\x20\x9f\x9d\xfb\xa4\xf1\x41\xde\x03\x14\x7c\xb1\x61\x8c\x50\x9e\x3e\x7c\x88\x13\x7a\xd2\x38\xa1\x9a\x85\x5e\x1f\x2b\x54\x90\xe1\x9f\x35\x0e\xa2\x5c\x3e\xe5\x29\x63\x21\xd6\xb8\xff\x54\x36\x1e\x3d\xf9\x39\xaa\x9d\xf3\xa6\xc7\xe9\x93\xdf\x5b\x57\x7d\x9c\xb0\xf9\x98\xc5\x31\x18\x47\xb4\xb4\x50\xe2\x39\x09\x08\x86\xc4\x6a\x38\x29\x55\x86\x72\x69\x22\xc5\x54\xf1\x98\x05\x05\x8b\x72\x31\x09\x33\x78\x86\x02\xf6\x37\x49\x58\xea\x74\xeb\x94\x7c\xab\xb8\x88\x58\xa8\x6f\xa7\x24\x96\x4c\x89\x6f\x34\xd6\xe8\xa7\x62\x49\xee\x85\x7c\x4c\x58\x3c\x85\x1d\x2a\x0f\xe6\x98\x70\x76\x44\xb8\xf6\x9f\xa5\x8c\x46\x33\xc3\x2e\x87\x66\xec\xe0\x70\x44\x79\x8e\xd9\x6f\x03\xd0\x7c\xdf\xcc\x77\x1d\x42\xfa\x82\x4c\x68\xa4\x8f\x88\xca\xc6\x79\xfb\xb1\x44\x14\xf4\x07\x26\xc2\x89\xe7\x8d\x3c\x59\x1c\x4c\x6d\xdc\x4b\x83\x6e\x69\x08\xa0\x9b\x70\xba\x93\xcb\xf2\x81\xee\x02\x19\xf2\x21\x53\xd6\xa8\x4d\xa4\xf0\x87\xc9\x26\x3c\x7a\x94\x24\xc0\x82\x46\xc4\xa1\x15\xa5\xa9\x68\x69\x2a\x6d\xc7\x92\xfb\x97\x2d\x04\xb5\x35\x60\x40\xbb\xb8\xdc\xb1\x7c\x14\x4a\xa7\x8c\xce\xad\x9e\x69\x38\x31\xb8\x26\xd0\xbb\x6c\x46\xcf\x53\xbc\x81\xdb\x6c\x31\x56\xea\xa6\x01\x2e\x14\x40\xfa\x43\xcf\x35\x9b\xf6\x96\x0b\x5a\x88\x8b\xdb\x62\xd7\x92\xac\x55\xb4\x47\x50\xbc\x6b\xd9\x04\xc9\xa5\xe9\x3a\x94\xac\x36\x06\x36\x05\x75\x0c\xc8\x18\xca\xec\x18\x56\x87\xb0\xe5\x94\x68\x0a\x50\x70\x33\x96\x2c\x02\x28\xf0\x05\x4d\xb5\xaf\x7e\x86\x28\x31\x86\x3b\xcc\x33\x01\xd0\x3e\x56\xdd\x7b\xb4\x60\x20\xd6\x28\x90\x37\xde\x19\x8a\xbe\xfe\x06\xca\x22\x4a\x31\x4d\x96\x84\xc6\x0f\x5c\xe5\x18\x5d\x91\x14\x2a\x9b\xb3\xb4\x54\x62\x03\xfd\xa6\x84\x3a\x5a\x31\x63\x33\x82\xd7\x03\x4d\x78\xec\x4a\x3e\x99\x1f\xc7\x6c\x62\x2e\xdd\x05\x4d\x95\xb3\x15\xd6\xd8\xf9\xec\xe6\xc6\x66\xad\xbe\xd8\x99\xfc\x18\x1e\x3b\x32\xcf\x4f\x28\xb5\x8a\xc8\x49\xf9\x7c\x06\x45\xcb\x9a\x22\xd7\x2a\x93\x22\xab\x2f\x26\xbb\x0a\xe7\xeb\x92\x03\xcd\x0b\x86\x1a\x32\x74\xbb\x98\x7e\x9c\x40\x83\x83\x6b\x65\xcb\x29\x4d\xd0\x8e\x1a\x0d\x74\xe1\xd9\x64\x1c\x2e\x05\xa5\xa9\xe6\x91\x2b\xc0\xe6\x0b\x58\xe2\xd7\xcd\x5b\xbb\x6b\x65\x41\x15\xd1\xa4\xba\xc3\xcd\x6b\x79\x8b\xef\xaf\xe6\x7d\xf6\xb8\x61\xdb\x2b\xa3\x10\x23\x99\x24\x6d\x10\xb8\x4a\x33\x3f\xcb\x3f\x5f\x3d\xa2\xbc\x1f\xb3\x01\x6e\x2f\xe0\xd4\xa0\x0d\x8f\x26\x56\xb2\x50\xda\xee\x52\xf8\x12\xf2\xd0\xa5\xb5\x11\x0e\x85\x9c\x00\x46\x5b\xd2\x54\xc2\x6f\x91\xca\x39\x6f\x03\x5a\x80\xf8\x9e\x37\xce\x31\xbd\xc6\xa9\xe2\xdc\xd7\x50\xaa\x05\xc9\xcb\xf6\x08\x31\x4c\x54\xa0\x9c\xb1\xe2\x0c\xcd\x69\xa5\x90\xe4\x46\x0b\xbe\x4e\xe5\xed\x92\x39\xda\x1b\xec\xea\x29\xac\x07\x74\xcf\x96\x90\xd3\x9c\x3c\xd2\x65\x1e\xab\xd9\xe6\x38\xe5\xd1\x90\xf6\xbc\x50\x47\x65\xc1\x89\xf1\x8e\x7d\xdc\x2f\x5c\x85\x4d\x4e\xd0\x59\x1d\x19\xb6\x3e\x4b\x6e\xce\x4f\x29\x64\x87\xc7\x3e\x94\xaf\xdb\xdc\x86\xc5\xc3\x10\xb4\x48\x60\x38\xab\x97\xea\x43\x81\x72\xf6\xbe\x46\xa5\x76\x08\xea\x72\xce\xa7\x75\x5d\xdf\xea\x33\xac\x99\x25\xeb\x8d\x16\x6b\xc7\xf0\xef\x76\x89\xf0\xae\x47\x9f\xfe\x5e\x7b\xde\xd7\x63\xd7\xb4\xd1\x21\x26\x46\x76\xb1\x95\xa2\x3c\x88\xae\x8d\xb3\x99\xf0\x84\xa9\x0e\xe9\xd7\xe8\x13\x2e\xca\x05\xa4\x2a\x80\xbe\x01\x8f\xa5\x93\x77\xb2\x94\x07\x48\xc2\x4e\xaa\x21\xdc\xd6\x53\xcc\x4d\x0e\x29\x33\x63\x8e\xd0\xe5\x21\x05\x24\xf1\x83\x93\x30\xe5\x58\x4e\xcc\x88\x97\x1a\xac\x67\x86\x17\x70\x9b\xee\x82\x25\x6e\xfd\x07\x46\xc6\xd6\x2c\xa5\x91\x76\xa5\xc7\xec\xa8\x1a\xb6\x74\x1f\x08\x89\x9b\x07\x11\xb9\x5e\x07\xe6\x8b\xea\xde\xd4\x8e\x70\x50\x6c\xbd\xf5\xe8\xbc\x5c\xde\xde\x7f\xf3\x0e\x3e\x75\xc6\x24\x4a\x26\x29\x03\x7b\xe3\xdc\x87\xe5\x8b\x98\xa5\x4a\x4b\x09\x37\xd4\xed\xf9\xcf\x27\x77\x7d\xc2\x74\x04\xd5\x76\x86\x22\x52\x0f\x47\x46\xa0\xfd\x35\x63\xda\xfc\xdc\x10\xb5\xc6\xe7\x4c\x28\xe0\x04\x7c\xd3\x52\xa3\x6e\x61\xcc\x7f\xcf\x8b\xdf\xaf\x20\x79\x3f\x31\x9f\x57\x65\x68\xd7\x97\x7d\x33\x64\x0a\x48\x4d\xb8\xb4\xaa\x86\x62\xb0\xe4\x70\xaf\x0e\x7e\x79\x8b\xa8\x0d\xf1\xf7\x4c\xb4\x14\x93\xce\xf2\x8f\x82\x51\x34\x48\x61\xf3\x05\x4d\x79\x0d\x78\xc9\xea\x70\x10\xfc\xa6\xb6\xf5\x75\x4c\x24\x0f\x2b\xb5\x05\x9c\x49\x8e\x54\x4d\x74\xca\x18\xb0\x10\x4f\x4f\xf6\xae\xb7\xc1\xfc\x7e\x62\xc1\x47\x9d\xa1\xf8\xe0\xec\x9f\xf9\xaf\xbe\x32\x1d\xc6\xfe\xb0\x98\x64\xa0\x33\x15\x5b\xc1\x12\xf9\x5c\xf9\x1f\x00\xa7\x4b\x65\x89\x46\x08\xd5\x09\x94\x4c\x76\x03\xc5\x27\x75\x5c\x22\xa5\x22\x9a\x5d\xca\xdd\x2a\x56\xf2\xc9\x88\x25\x6d\x64\xc7\xfe\xa4\x97\x28\x43\xdf\xd1\x7d\xc3\xe9\xdc\x26\xf8\x20\x9f\x0c\x48\x6e\x0e\x46\x12\xb5\x12\xb4\xd3\x25\x08\xc8\xca\x08\x18\xd9\xca\x41\x3c\x18\xe6\x6e\x76\xd1\xca\xd6\xae\x42\x78\x2a\x13\xe2\xcc\x72\x63\xe8\x85\x50\x3d\x14\x69\x26\x00\x6d\xc9\xdb\xcf\x29\x51\xcc\x95\x21\x8f\xa4\x40\x19\xc0\x1a\x4f\xa6\x86\x4d\x18\xc9\x0f\x9c\x28\x52\x80\x46\x25\x33\x05\xbe\xfb\x39\xd3\xe6\x82\xfa\x16\x80\xc7\xd1\x83\x71\x44\x16\x29\x9f\x6b\xfe\xc0\x3c\x44\x5a\xb8\x73\x67\x54\xd3\x44\x4e\xbb\xa9\xe6\x13\x1a\xe9\x01\xdd\x49\x65\xa6\xb6\x99\x6d\x9d\xe1\x6e\x18\xa4\x7f\x6e\xd6\x7e\xca\x04\x4b\x61\x9e\x50\x2f\xaf\xf6\x04\xb7\xad\xa4\x97\x33\x6e\x40\x41\x8d\x10\x37\x52\x79\x13\x03\xcd\xb4\x9c\x1b\x85\x94\x26\xc9\x12\xf0\x20\xcd\x93\x19\x55\x33\xb7\xcf\x08\x22\xb9\xc9\xd5\x64\x17\xf7\x8c\x46\x33\x76\x0b\x05\x92\xeb\x16\xb7\x34\xca\x37\x4c\x64\xf3\x37\xa7\xe4\xbf\xf3\x39\x9e\x75\xcf\x7e\xea\x8d\xce\xfb\xb7\xdd\xb7\x17\xbd\xf3\x60\x3e\xf6\xc9\x87\xfe\xed\x6d\xf5\xd7\x9f\xfa\x83\xea\x8f\xd7\x57\xd7\x77\x17\xdd\x41\x5d\x2b\x17\x57\x57\x3f\xdf\x5d\x8f\xde\x75\xfb\x17\x77\x37\xbd\x9a\x4f\xef\x06\xfe\xa1\x7d\xf6\xb7\xe0\x0c\x41\xec\x06\x44\x9a\xd4\x8f\xb6\x7c\xcc\x8e\x49\xf1\xc5\x53\x72\x67\x3d\x31\xb6\x4e\xbd\xb3\x19\x51\x8c\xb6\x7f\xa4\xca\x70\x2a\xa8\x88\x39\x14\xc4\x7d\x6e\xe6\xde\xf4\x29\xba\x88\xa2\x19\x23\x89\x94\xf7\xd9\xc2\x32\x30\x8c\x3c\x14\x12\x0d\x32\x4c\x05\xad\xfd\xd4\x1f\x9c\x7a\x8f\x50\xb5\xb1\x20\xb5\xce\x91\x3a\x8c\x8b\x3a\xa6\x89\xf5\xff\x53\xf6\x00\x47\xd2\x7b\x0a\x83\x1e\xfc\x06\xac\xea\x07\x5b\xa3\x42\x97\xba\x89\x63\x8b\x25\xef\x26\x16\x34\x5c\xdc\xbe\x55\xab\xe9\x97\x03\xc1\x07\xc9\x98\x45\x34\x43\x47\x9a\xb9\x8d\xd2\x54\xa6\xe1\x80\xf3\x6d\xdf\xb1\xd1\x37\x55\x21\xa3\x88\x19\x8e\x45\xc4\xcd\x27\xc1\xc9\x31\xea\x32\xa8\xd2\x0e\xde\x6b\xb6\x44\xdb\x94\x2b\x92\x3a\x1f\x33\xf4\x97\x00\xaa\x88\xe1\xdb\x1e\xeb\x8a\x83\x63\x8e\x6a\xf2\xc8\x20\xfa\x34\xb3\xf0\x86\xa8\x1f\x9b\x03\x08\xbd\xa1\x15\xda\x41\xbf\x16\xa2\x52\x1b\x39\xe6\x3e\x84\x62\xf3\xbd\x62\x75\xdc\x72\x87\x10\xc2\x73\x6c\x14\x58\xa8\xf3\x92\xc2\x88\x1b\xec\xfd\x8e\x65\xd7\xd8\x9d\x57\xc8\x40\xd5\x6b\x63\x0d\x47\x37\xbc\x75\x93\xf1\xb8\xa4\x83\x02\xda\x4a\xbb\x34\x6c\xef\xe1\x5f\xbb\x56\x03\x19\xd3\xa5\x21\x0e\x08\x4f\x50\xd9\x62\x21\x53\x4d\x1a\xda\x20\x70\xd0\x71\x7c\x70\x31\xd8\x79\x78\x0e\x05\x8d\x18\x29\x40\xd5\x00\xa2\xad\x0c\xf4\xce\xcb\x23\xd8\x26\xfd\xb1\x0f\x33\x3a\x41\x59\xf3\xe0\x7c\xf3\x82\xda\x5b\xa0\xd0\x3a\x01\x75\x97\xa0\xa4\x85\xb9\x85\x37\x45\x51\xad\xeb\xfd\xca\xb5\x50\xbb\xe5\x09\x9b\xe8\x51\xad\x2f\x65\x85\xd9\xd0\xb4\x28\x9a\x52\x57\xf8\x74\xb6\x87\x16\x37\x97\xe4\x7f\xb4\xbe\x2e\x23\xbe\x07\x5a\x7c\x2a\xa5\x46\x19\x32\xd7\x33\x88\x5b\x4d\x30\x01\xd8\x4e\x11\x83\xdd\x08\x6a\x1c\x24\x35\x23\x97\xdf\x0b\xf9\x28\xbc\xbd\x5c\x75\x86\xa2\x47\xa1\x30\x80\x57\x16\x6c\xec\x01\x4a\xea\x6b\x65\xf4\x02\xce\xf8\x0b\x81\x46\xc8\xe9\xde\x16\x51\x49\x96\x24\xc7\x92\x2f\x7c\xb7\xc9\xe9\x41\x5b\xb2\x93\xd3\x70\xc2\x16\x34\x59\xb3\x85\xb5\x77\xe3\x3c\xf3\x30\x6b\x70\x99\x9a\xae\x3a\xe4\x93\xb3\xce\x40\x68\x47\x5e\x03\x41\xe3\x85\x93\xd0\xa5\xcb\xfd\xae\x5b\xd8\x7d\xa4\x53\xef\x3b\xde\x62\xf5\x02\xfb\xcc\xb1\x9a\x55\x2e\x28\xc9\x42\xa0\xd5\xb4\x45\xa4\xd8\x99\xff\xe8\x96\xad\x0e\x25\x7d\x07\x28\xca\x50\xc1\x3d\x81\x1b\xda\xf0\xd1\xff\x85\x9b\x05\x69\xd4\x36\xcc\x38\x76\xd8\xbd\xd6\x2f\x69\xce\x0f\xf8\xd5\x8c\x14\x30\x06\x7c\x05\x2c\x96\xde\x21\x5d\xa8\x08\x00\x58\xef\xe6\x2a\x74\x01\x39\x7c\x2a\xe4\xba\xb0\x81\x06\x62\x8a\x02\x62\xba\x6d\x26\x26\x05\xd4\x94\x47\x49\xef\x87\xa2\xf6\x90\xfe\x62\x78\x0b\xad\xa2\xc0\x6c\x9e\xf4\xd2\x42\xc1\xfe\x12\x21\x38\x95\xe1\x06\x1f\xfe\xab\x7e\xe8\xef\x33\x9a\x52\xa1\x21\xb0\xc4\x0a\xde\x29\x0b\xa2\x15\xd9\x67\x88\xc0\x12\x68\xac\x85\x9f\xc2\xcd\x75\x8e\x74\xac\xcb\xcf\xe3\x23\xc2\x3b\xac\x73\x64\xcb\x7a\xa9\x6c\x9c\xbf\x39\x33\x92\xc3\x50\x54\x52\x39\x3a\xa4\x9b\x28\x69\xbf\x60\x22\x4a\xa0\x02\x47\x10\x03\xe3\x29\xdf\xba\x7e\xc6\x4b\x50\x2f\x60\x2b\xf3\xe6\xa5\x7d\x10\x7c\x38\x14\x54\xa1\xa7\x39\x81\x93\x9e\xff\x5e\x57\x65\xa7\x10\x7d\xf0\x84\x98\x64\x95\x6b\xe8\xc9\x36\x09\x71\x6d\x57\x6d\x10\xbc\x01\x1b\x93\xa7\xd8\x04\xc9\x2a\xe4\x5b\xaa\x13\x46\x95\x26\x3f\x7c\xd7\x2a\xe0\xc2\xcd\x2f\x67\xae\xf6\xf4\xe6\xa1\xa5\x2e\x9c\xad\xa9\x52\x18\xc0\x8e\x13\x4a\x04\x0b\xe2\xdc\x8f\xcc\x36\x6b\x49\x1e\xb8\xca\xa0\xa6\x49\x10\x0d\x8f\x55\x29\xb8\x56\x0e\x75\x17\x15\xa6\x06\x36\xe2\x40\x4d\xac\x4f\xd2\x0e\xab\x86\xb0\xac\xee\xc4\x51\x39\x83\xac\xc2\x3c\xb0\x6c\x46\xf5\x50\x58\xc6\xea\x62\x31\x02\xc8\xfb\x6e\x92\x14\x83\xb9\x8c\x80\x13\x33\x61\x26\x0c\x15\x59\x3a\x7e\x81\x2e\x41\xfb\xf2\xf1\x3f\xc5\xea\x6c\xfe\xac\x18\x45\x6d\x28\x7c\x66\x58\xd8\x76\xad\xb0\x53\x67\x02\x7e\x46\x19\xb8\xa6\xfb\x0b\x2c\x8d\xb3\x81\x2c\xdc\x5c\xba\x70\x85\xcb\xa4\x62\x76\x5f\x21\x1a\xef\xbb\x83\xcd\x25\xe5\x7a\x13\x36\xdc\xb2\x8f\xb2\xc6\x22\xde\xb0\xb9\x81\x68\xb1\x8b\xfe\xed\x03\xd1\x9e\xcb\x29\x5b\x18\x7a\x3f\x86\x28\xf1\xf5\x4c\x30\x8f\xba\x76\xac\x03\x6c\xd1\x3c\x0e\xe2\x46\x83\xa0\x3a\x08\x0f\x76\x7c\xcf\xbe\xd9\xe0\x1c\x5d\xbc\xee\xe9\x1f\xe5\xf3\x77\x53\xf1\x91\x65\xd5\x89\x37\xcb\x7a\xdd\xf8\xef\x34\x62\x22\x5a\x62\x4f\x0e\x04\xaa\x9a\xed\xe6\xf0\x72\x28\xd8\xdb\x6b\xa5\x43\x5b\xe5\xaa\x43\x7a\x70\xcf\xb8\xa2\x57\x74\xe2\x7c\x06\xc1\xcb\x43\x61\x14\x13\x73\xc5\x2b\x1c\xb4\x6b\xbf\x48\xe2\x75\x27\x00\xd3\x66\x77\x72\xb7\xcc\xd7\x63\xfb\x35\x29\x13\x2e\x6b\x17\xda\x00\xf0\x32\xd2\x9b\x9e\x92\x58\x46\xf7\x2c\x3d\x49\x59\xcc\xd5\x29\xb8\xbf\x75\xa3\xdf\x6d\x6e\x94\xed\x9d\x05\x8d\x4d\x0b\x50\x56\xcb\x45\xcd\xa1\x92\x13\x44\x14\x3b\xf0\xfb\x23\xc2\x27\xa0\x4d\xb8\x4c\x01\x4c\x1f\xb0\xb6\x6d\xc2\x84\x4e\x97\x0b\xc9\x85\xf6\x96\xac\xd2\x42\x38\x45\xc3\xc8\x6c\x4d\xf1\xb5\xe9\x3e\xc2\x64\xb6\x9c\xf6\x60\xc6\x14\x73\x31\x01\x38\x29\x2d\x09\x7a\x42\x90\x5d\x2c\xa8\x9e\x29\xc8\x75\x28\xae\x81\xd5\xb9\xe0\x53\xb3\x42\x74\x01\x21\x05\x68\xa4\xc8\x3f\xf2\x41\xfc\x4a\xf3\x24\x19\x0a\xc1\x58\xac\x08\x20\xd4\x7c\x53\x9b\x53\x63\x3e\x3d\x22\x34\x8e\xc9\xff\xfe\xf6\xdd\xc5\x2f\x83\xde\xa8\x7f\x09\x16\xe7\xfe\x45\xef\xbb\x23\xff\xe3\xd5\xdd\xc0\xff\x8a\x06\x96\x07\x96\x92\x39\xbd\x07\x0d\x4f\x28\x14\xff\x20\xd4\x3d\x1c\xa9\xcb\x36\x32\x4f\x14\x73\xe1\xa3\x56\x4c\xf1\xc9\xe6\x76\x0f\x1b\x6b\x5b\xa0\xc9\xaf\x85\xee\x7b\xe3\x3f\x59\x4d\x83\x8e\x78\x7c\x17\x4e\x0c\x9c\x33\xa1\x0d\x8f\xb1\xc6\xbe\x5c\xf5\xcd\x09\x8e\x89\x29\x17\x4d\x41\x6e\x4c\x3c\x3c\xa5\x0c\xff\x33\x5b\x7e\x34\xda\xf5\x35\xe5\xe9\xc6\xb4\xd7\x13\x0f\x3c\x95\x02\xa6\xe6\xad\x5a\x79\x91\x5e\xa6\x9d\xaf\x2d\x38\x54\x0a\x65\x61\x08\xa3\x58\x34\x06\x52\x96\x52\xb0\x5f\xc6\x74\xbb\xe8\xfa\x65\x9f\x75\xea\xf2\xda\x94\x65\x37\xf4\x81\xf2\x04\x82\x60\xdd\x45\x93\xd3\xe0\x50\x0c\xae\xce\xaf\x4e\x09\x4b\xe8\x58\xa6\x90\x1a\x83\x51\x3b\xae\x09\xbb\x60\x50\xfc\xd0\x37\x54\xc8\x69\x3c\x22\x8b\x3c\xa7\x31\xb4\xa1\x75\xb0\x8d\x35\xb9\x8d\x0b\x99\x3e\x5d\x39\xfc\xc2\xe5\x75\x2d\xd3\x4d\xae\x7f\xf3\x1a\x2c\x9d\x5c\x18\x3d\xae\xc4\x79\xed\xdd\x3c\x61\x14\xeb\xbd\xa0\x53\xc8\x9a\xf2\x6d\x54\x68\x92\x14\x50\xbd\xcd\xc1\x51\x1d\xeb\x25\xcf\xdf\x94\x82\xfc\xfc\x17\x45\xc6\x99\x1e\x8a\x62\x1b\x52\x40\x25\xf0\xb7\x54\x47\xb3\xef\x86\xe2\xca\x68\x99\x3f\xff\xa5\x21\xf9\x3a\xa6\x9a\x8e\xea\x89\xb2\x79\x4d\xce\xa9\xa6\x17\x92\xc6\x5c\x4c\x2d\xa4\x40\xfd\x5a\xbc\xed\x0d\xba\xa7\xe4\xca\xaa\xf0\x3e\x5f\x32\x07\x5e\x08\x1a\x02\x86\x0c\x13\x71\x5c\x04\x58\xb9\xf0\xac\xdf\x5a\xc8\x40\x7a\x32\x17\xd6\x50\xc0\x52\x22\x57\xe5\x9a\x2c\xa4\x45\x2a\x35\x5a\x19\x42\x01\x50\x5f\xee\x3a\x59\x12\xb3\x3a\x40\xc6\x7e\x33\xac\x3c\x06\xf2\x4c\x95\xd9\x0f\x05\xe8\xe7\x3e\x7b\x2d\x91\x11\x4d\x20\x6c\xee\x38\x30\xe9\x19\xad\x5d\x66\x90\x83\x04\xf1\x2a\x62\x59\x8c\x6e\x75\x70\x67\xb9\x50\x16\x6e\x14\xe8\xff\xb0\x8f\xd6\x95\x3a\x97\x86\xe3\x74\x86\xa2\x3f\xc1\xa8\xba\x04\x57\xc7\x7c\xc8\x04\x78\x93\xdd\xb2\x98\xa7\x8e\x1f\x41\x1d\x2c\xf4\x2a\xd2\x08\xac\xf7\x62\x09\x31\xd1\x80\x6e\x28\x21\x3a\x23\xe7\xce\x96\x28\x2b\xbb\xe8\xef\xc4\xe0\xb3\xa1\xc0\x60\xbe\xc2\xbe\x84\xf9\xbe\x41\xef\x52\x40\xac\x61\x7e\x5d\x7a\x01\x63\x61\x63\x0f\xad\xac\xbf\x48\xd9\xb1\x2b\x9c\x6a\x7e\x0d\xd6\xd4\xdc\xb0\x1d\x72\x13\xaa\xd7\xb1\x8c\xb2\xb9\xc3\xa0\x81\x5c\x2d\x1b\xa4\x66\x2f\x51\x4f\x21\x78\xb1\xd7\x52\xfc\xef\xc2\xff\xd6\xca\xa6\xd7\x3b\x96\xcb\xf6\x54\x35\x5a\x14\x5b\x2a\xb4\xb6\x1e\x18\x63\x0d\x62\xef\x65\x8e\x7e\x01\xd5\xb4\xa5\xd1\x3e\x25\x98\xa1\x31\xa5\x4e\xc6\xdf\x28\xd2\xbf\x36\x42\x8a\x51\x4a\xfd\x31\xc9\x94\xc6\x10\x2d\x48\x53\xc1\xaf\x31\x4c\xfe\x88\x7c\x4f\x86\xd9\xf7\xdf\xff\x29\x22\x9f\xdd\x3f\xfe\xfc\xef\xff\xfe\xa7\x3f\x6f\x53\x5f\x1e\xda\xcd\xd7\xc8\xe3\xba\x16\xa5\x96\x70\x07\xaa\xcc\x64\x87\x5d\xb0\x67\xa4\x69\xf9\xad\xc6\xde\x98\xe6\x54\xf7\x38\x08\xc1\xa1\x53\x7b\x08\x55\x78\x78\x48\xe1\xf4\xe4\xae\x7e\xc5\xf4\x51\xf1\x10\x7b\x79\xd4\x0a\xdd\xff\x6b\x05\x02\xc1\xc8\x50\xf3\x76\xa1\x42\x3c\xf1\x12\xb0\x69\x84\x7c\x6b\x4d\x74\x1a\x5c\x7c\xdf\xb9\x3b\x48\x26\x31\x4b\x6d\xfd\x31\x67\x55\xf3\xb6\x3e\x38\xbf\xec\xf3\x22\x91\x36\x88\x83\x12\xc5\x16\x14\xee\x78\x73\x5e\x3b\x43\xd1\xfb\x4c\x0d\x73\x3d\x72\x65\x22\xe1\x23\xf4\x8d\x4c\x68\xc4\x08\x4a\xd3\xdf\x7e\x3e\x35\xbf\x1d\x91\xe5\x29\x84\x62\x1e\x91\x7f\x9c\xda\x0c\x68\x9a\xea\x91\xf9\xe9\x3b\x27\x0e\xdb\x26\x60\xd0\x5c\x91\xe1\x9b\x93\x07\x9a\x62\x8d\x91\x13\x0b\xe3\xfa\xc6\xb2\x3f\x0f\x51\x1d\x0a\xd0\x89\x94\xf7\x36\x50\xb5\xf2\xe5\x89\xc3\x53\x00\x02\xf7\xbe\x0d\xdc\x7c\x1b\x73\x6c\x84\xbd\x63\x78\x81\x91\xce\x62\x4c\x3a\x7f\x57\x52\x90\xce\x92\xce\x13\xfb\xab\x7b\x6a\xe3\x68\xa9\x22\xae\xa0\x9a\x0b\xa3\x49\x96\x68\xce\x7c\x9b\xc8\x31\xcc\xeb\x83\x9b\x2b\x46\xa2\xc2\x40\xf3\x2b\x22\xbf\x55\xec\x44\xac\xb8\x83\x59\xe1\x50\x82\xd4\xbc\x02\x77\x6f\xdd\xac\x3e\xfb\x21\xfd\x17\xfa\x6e\x61\x51\x5c\xfa\x1a\x5a\x70\x7d\x18\x98\x69\xf4\x33\xf9\xd6\x32\xa1\xef\xcc\x45\x60\xc3\x7e\x71\x19\xea\x3a\x58\xfa\x0e\x7e\x09\x3a\xe0\x82\x60\x42\xe2\x8a\x2f\xff\x71\xd2\xe9\x74\xfc\xd7\x97\x66\x2a\xff\x8f\x70\xad\x58\x32\xc1\x96\xdc\x35\xb3\x1c\x8a\x0f\x0e\x48\xd4\x59\x98\x73\xa4\x16\x80\x03\x8d\x64\x42\x8e\x73\xab\x6b\x2c\x23\x45\x7e\x6f\x64\xcf\x60\x29\xe1\x47\xa3\x6c\xd5\x9f\x2a\x5b\x1d\xf6\x99\x8e\x95\xb5\x5a\x97\x0f\x56\x08\xce\xe0\xb5\x4f\xaa\x42\xcc\x40\xa0\x05\x43\x39\x27\x16\xc0\x01\x0a\xb7\x6a\xf6\x59\xc3\xa3\x06\x7c\x8c\xda\x90\xf0\x7a\x09\xae\xc2\x70\x73\x98\x0c\x24\xeb\x86\x05\xb0\x28\x06\x96\x37\xe0\x3c\x8f\x42\x17\x87\xb9\x5e\x44\x88\x6c\xa6\xb2\xf9\x9c\xa6\xcb\x93\xfc\xb4\x55\x89\x33\x07\xf9\x04\x2e\x93\xb8\x05\x00\x37\x6b\x62\x8f\x96\x8d\x34\xb0\x32\xa0\xbb\xd3\xfc\xd9\x8d\x00\x56\x1c\x42\xde\x10\x54\x9f\x89\x48\xc6\x96\xae\xf3\xbc\xcb\xa2\x58\xe1\xdf\xa9\x0a\x14\x2e\x6a\x45\xe5\x16\x33\xa1\x31\x19\xdb\xbe\xe1\x3e\x6e\x60\xe0\x72\x04\x25\x1f\xd8\xb4\x85\x0b\xb3\x7f\x75\xeb\xbe\xd9\xfc\xda\x85\x75\x28\xca\xd5\xd4\xa9\x72\xce\x6c\x90\xd2\xc7\xfc\x02\x86\xf8\x0b\x34\xa1\x64\x3e\x2b\x15\xff\x3e\x93\xd7\x3c\x31\xf7\x16\xd0\x78\x67\x28\x0a\x3f\x1f\x11\x96\xf0\x39\x17\x3e\xfc\x0d\xd9\xbb\x9c\xa0\x88\x7b\xcf\xb5\xd9\x32\x15\xdf\x1b\x0e\xe6\x12\xfc\x03\xbd\xa7\x2b\x96\x8e\x74\xbc\xf7\xc8\x9a\x09\x32\x65\xc6\x95\x2b\xd2\x46\xe2\x34\x4d\x1c\x5b\xa9\x91\x07\x84\x07\xe7\x77\x28\x4c\x6b\xee\x2c\xe5\x71\xb7\x41\x7b\x41\x73\xc7\x0e\x12\x2c\xe0\x00\xd0\x47\x21\x78\xd6\x0b\xa9\x35\x22\x4a\x4f\x64\xf3\x5d\x93\x36\x6c\x1c\xee\x97\xb2\xa5\x5d\xe7\xa5\x3f\x6d\x02\x10\x13\xd9\xdc\x1d\xa8\x16\x14\xd7\xb3\x02\x50\xcc\xa2\x84\xc2\xdd\x01\x0d\x41\x74\xe2\x11\x3a\x31\x83\x32\xa3\xf6\x7a\xc1\x6e\x10\x33\x3a\x61\xe2\x5b\xfc\xfb\x3b\x62\xef\x86\xef\x8f\xec\x7d\x9e\x2a\xab\xe7\xb9\x3d\x07\xc4\x76\x16\xa3\xa1\x1b\xc0\xc6\xa6\x14\x8a\x3f\x5b\xeb\x4b\x41\x39\x04\x09\x6c\x29\x33\xf2\xc8\xd5\x6c\x28\x06\xd2\x59\x05\x89\x90\x1e\xae\xed\x08\x34\xc6\x4a\x7f\x54\x01\x13\x80\x51\xd7\x51\x40\xa9\x2e\x77\xfb\x9c\x1d\x88\x33\x1d\x09\x19\xb3\x96\xe1\xe6\x35\x75\x8f\xad\xb3\xc0\xf9\x98\x53\x86\x79\x55\x70\x53\x34\x56\x6d\x55\xaa\xa5\x01\xbd\xb6\x80\xb8\x6d\x07\xaa\x73\x3c\x8a\x6d\x21\x2d\xfc\xad\x06\xad\x38\xb5\x30\xc8\x83\x2d\xac\x7d\xb1\xc8\xf9\x4e\x3a\x5a\xbc\x9d\x0b\x01\xe7\x1e\xc1\xb2\xfb\x18\x60\x4a\xa6\xa9\xcc\x16\x3e\x59\xdc\xa5\xcd\xe1\x36\x58\x99\xa6\x2f\x26\xf2\xd4\x6a\x55\x17\x5c\xdc\x23\xc5\x3f\xd5\x1e\xf9\x72\xe2\xc1\xef\xee\x0e\xc3\x15\x3f\x26\x5c\x44\x49\x06\x17\x9f\xd2\x34\xba\x47\xac\xbe\x55\xe5\xe8\xdb\x16\xd4\xcf\x25\xa6\x2c\x49\x6c\xb7\xf9\x05\x9a\x57\x94\x79\xe0\x94\x50\x72\x77\xd3\xaf\xef\xfb\x9e\x57\x3d\x2e\xf5\xb7\x67\x91\x40\xe0\x7f\x7e\xe6\xad\x62\x23\x4b\x08\xa1\xac\x40\xea\xde\x02\xd4\x04\xa5\x55\xba\xbd\x77\x74\xf1\x9a\x5b\x68\x34\xaf\xa1\xd4\xfa\xc9\xe7\x1d\x9f\xdb\x8f\x3f\x98\x6f\xeb\x77\xe4\x03\x24\x05\x79\xe4\x84\x39\x15\x66\x82\xae\xd7\x06\x13\x21\x5e\x8c\x5b\x0d\xe9\x6e\xb1\xd5\x80\xb0\xc7\xcd\x62\x90\x5d\x57\xae\x95\x47\xb4\x19\xd2\x04\x15\x6e\x3d\x03\x4d\xec\x88\xdc\x46\x33\x36\xa7\x10\x97\x32\x2f\x6a\x64\x20\x99\x7e\x9b\xd0\x74\x8a\x72\xa2\x62\x5a\x7d\x57\xb3\xc3\x79\x78\xf6\x0e\x3b\xbc\x05\x4e\x7d\xe8\xa3\x01\x29\x64\x15\x07\xf0\xa3\x2c\x42\x03\x79\xe6\xe4\x8b\x3d\xd8\xbb\x83\x2b\x17\xb5\x02\x32\x53\x9a\x02\x1c\x5d\x6c\x84\xf1\x66\xcc\x84\x1d\xeb\x95\x5c\xd2\xb9\xcf\x2f\x76\x45\x13\x6c\x1e\x09\x8e\x6d\xcc\x00\x26\xaa\x79\x0c\x3b\x17\x26\x09\x87\x60\x21\xc8\x9b\x46\x30\x14\x5d\xf7\x8a\xcf\x51\x04\x09\x37\x45\x31\x04\x22\xd9\x30\x6e\x13\xa4\xcc\xa0\x22\xbd\x9d\x5c\xc3\x24\xda\xe6\x82\x95\x6b\xab\x18\x29\xd7\x83\xc4\xa1\x14\xe3\xd4\x1d\x5f\x4b\xa3\xbe\xe7\x87\xf6\xa5\xa7\xea\x61\x1e\xa2\x72\x69\xa0\xba\x8e\xd7\x4b\x94\x2e\xff\xdc\x36\x14\x56\x23\xc2\x68\xb7\x64\x99\xc7\x56\x99\x15\x47\xcd\xa4\xd4\x59\xf5\xb0\xea\x9d\x98\x31\xa7\xf3\x51\x2a\x93\x5d\xf6\xc8\x35\x51\xd0\x72\x67\x88\xdd\xb9\x24\xbf\x66\x34\x41\x8b\xbc\xb0\xe4\xe8\x86\x0d\x02\xc3\x8f\x7f\x26\x5d\xb8\x2d\xc9\x07\x60\x8b\xe0\x8b\x84\xd6\xb4\x24\x7c\xbe\x60\xa9\x92\x46\x1d\x6b\xd8\xe4\xfb\xbf\xa8\x91\x05\xde\x1d\xd1\x28\x92\x59\x15\x64\xb7\xc5\x4c\x6a\x5a\x0b\x27\x45\xc9\x7d\x36\x66\xa9\x60\x58\x02\x11\xde\x23\xee\xbd\x8d\x86\x2b\x69\xa6\x67\x3f\x8e\xa2\x84\x6f\x8c\x06\x0c\x79\x10\x5d\xf3\xd9\x19\x7e\xb5\x6a\x02\x85\xf6\x0b\x43\x17\x04\x9f\x11\x7c\xd6\x21\x6f\x69\x74\xcf\x44\x4c\x16\x49\x36\xe5\x36\x35\x19\x2e\x28\xe0\x96\x81\x91\xaa\x38\x31\xd4\x78\xb1\x7d\x73\x0b\x0d\xc5\x9c\xde\x83\x82\xf4\xd9\x86\x8b\x1b\x45\xb3\x95\xb2\xe5\xe9\xa1\x82\xd1\xe0\xf2\x68\x15\x8b\xb2\xd4\xbc\x81\xe7\x43\xe3\xf9\x00\xb3\x12\xe0\x94\x65\x82\x50\x80\x79\xf8\x46\x91\x6c\xe1\x6c\x1f\x60\xef\x48\xc0\x45\x84\x93\x84\xa2\x58\xdc\x48\x83\x33\x36\x14\x10\x76\xe7\x5a\x5c\x7a\xae\x12\x7a\x25\xbd\x77\xbc\xee\xf0\x4d\x30\xc9\x79\x37\x6f\x0a\x5a\x91\xf6\x1e\x52\xa8\x67\x4c\x80\x1a\xb6\x79\xcb\x90\x29\xbe\xf9\xa6\x15\xc2\x07\x71\x16\xb9\xdd\xc8\x2f\x61\x26\xb8\xc5\x9f\xb6\xa6\xc2\x20\xb2\xc7\x59\xd4\xf3\xef\xb9\x22\x8a\x6a\xae\x26\xbc\x56\x3d\x0d\x53\xcb\x77\x59\x75\xda\x2e\x9f\xbd\x26\x97\xbd\xb4\x16\x3e\x42\xb9\x43\xde\x81\xb6\x9d\x4f\x49\x4b\x9f\x19\xde\xc4\x12\xf4\x8c\x35\x82\x9a\xed\xc3\xb7\xef\x66\xb0\xa9\x11\xc5\x47\xa3\x77\x48\x37\xb7\x72\x62\x6e\x3c\xda\x2f\xd7\xcc\x88\x25\x8a\x6d\x43\x7c\x1b\x19\x04\xc0\x17\x08\x04\x44\x40\x56\x51\xe6\xf7\x1c\x60\xd1\x0f\xf3\x11\x12\xbe\xe8\x3d\x13\xab\xb4\xbe\xcd\x47\xd8\x2b\x64\xcb\xd6\x0d\xb1\xeb\xf5\x7d\x89\x2a\xff\x36\x03\xdc\xfc\xd8\xe5\x70\x04\x7c\x72\x62\x96\xdc\xc8\xf9\xd1\xbd\x8d\x33\x47\xab\x8f\x05\x34\x78\x9c\x49\x15\x9e\x33\xb7\x7f\xb0\x99\x3a\xcd\x98\x8b\x27\x87\x30\x7d\xbf\xc0\xe8\xa0\x17\x32\xc4\x3b\x80\x51\xfb\x43\x8a\x16\x2d\xbf\xdf\xc4\xb1\x50\x58\x06\xb0\x96\xbb\xa6\xaa\xa7\xf9\xe7\xbf\xa8\x2b\x38\xb1\xfb\xc8\xda\x4d\xe8\x98\x25\x4f\x00\xe3\xb4\xa5\x1d\xd2\x07\x83\xe0\xb8\xc0\xe6\x1f\xfb\x2c\xf1\x85\x8c\x49\x4e\x5e\x4d\x31\x89\x42\x48\x0c\x06\x78\x81\xd3\x0a\x06\xb7\xf1\xdc\xd6\x51\xf6\x87\xc0\x59\x89\xa5\x5e\x11\x1a\x25\x10\xb9\x6c\x66\x17\x28\xbf\xf6\xfa\xe7\xca\xdf\x27\xf5\x34\x76\x2d\xe3\x5d\x08\xab\x3d\xfc\x55\x95\xae\x37\x08\x38\x54\x75\xa5\x72\x56\xac\xc4\x42\x36\x87\x8a\xc5\xa3\xcd\x8b\xcb\x80\xdb\x71\x9c\x4d\x6e\x01\x7c\xb7\x29\x7b\xdd\xa1\x0e\xcd\x98\xcf\x47\x31\xfb\x6c\xba\xf1\xd1\xd1\x4d\x9b\x62\xbd\x58\xf9\xf5\x4f\xc9\xff\xbd\xbd\xba\x3c\x9e\xd3\x54\xcd\x28\x64\x07\xba\xb6\x8e\x1c\xde\x3b\x2a\xa0\xce\xba\xce\x05\x19\x8a\x63\x32\x95\x47\xe8\xcc\x39\x25\x33\xad\x17\xea\xf4\xe4\x64\xca\xf5\x2c\x1b\x77\x22\x39\x3f\xc9\xd7\xe6\x84\x2e\xf8\xc9\x38\x91\xe3\x93\x94\x41\xcc\xdd\xf1\x0f\x9d\x1f\x7f\x80\xad\x39\x79\xf8\xe1\x04\x4c\xf8\x9d\xa9\xfc\xfd\xc5\x8f\xff\xf1\xa7\x3f\x9b\x86\x17\x4b\x3d\x93\xe2\xd4\x7a\x8a\x56\xb6\x7d\x8c\x82\xef\x09\x7e\x52\xea\xe5\x3f\x3a\xdf\x87\xc3\xb0\xaf\xce\x65\xcc\x12\x75\xf2\xf0\xc3\xc8\xed\x4c\x67\xd1\xc6\xf7\x95\x33\x7c\xbf\xe4\xa5\xca\x4a\xe6\x77\x4f\x32\x2e\x3b\x68\xdd\xb6\xd4\x9c\x95\x30\xa2\x72\x87\x13\x73\xcf\xd6\xd5\xb5\x5f\x75\x1e\xbc\x24\xd5\xa0\xd3\xb7\x45\xf7\x6d\x94\x6d\x5a\x25\x90\x81\xf3\x8d\x47\x80\x1c\x89\x36\x88\x05\xe5\x75\x61\x3e\xd6\xc9\xbc\xcb\xfa\x3d\x25\x06\xea\xbe\xc1\x4f\xed\x74\xb7\x04\x3e\x4d\xf0\x6b\xe7\x12\x97\x8f\x0e\xf0\x74\x1f\x30\xa1\x1b\x56\xc5\xf0\x58\x8a\x48\x3c\x30\x16\x37\xae\x76\x34\x52\x58\x62\x8c\x92\xb0\x41\x90\x0a\x02\x26\x11\x8d\x40\x4e\x3c\xaa\x2b\xc6\xba\x22\x00\xb4\x9c\xd4\xfc\xe3\x6d\x22\xc7\xea\x3b\x8f\x81\x42\x95\xeb\x23\x07\x25\x68\x26\xc1\xfd\x80\x88\xba\xa5\x78\x4a\xfd\xc4\x9d\x99\x50\x0a\x69\xb3\xf0\xf5\x44\x95\x87\xa2\x62\x4e\x26\x4d\x65\x26\x1c\x08\xa3\x14\x4c\x4e\x20\x48\x00\x2e\x40\xe7\x04\x01\x23\x88\x90\x3a\xc8\xbf\x4c\xd9\x02\x19\x29\x98\xeb\x9a\x97\x7b\x47\x20\xd2\x75\xeb\xfc\x14\x40\xa4\xbb\xae\xbb\x3d\x38\x5f\x68\xc1\x77\x8d\x54\xc0\xa3\xd4\x82\xcd\xc2\xfb\x6b\x3d\x13\x9e\x0f\x80\x2b\x22\xac\x16\x86\x70\x23\x10\x40\xcc\x8e\xb5\x3c\x86\xbc\x75\xc8\x86\x46\x68\xe0\xa6\x82\x19\xe0\xd1\x69\x73\x1d\x98\xf7\x37\x18\x27\x06\x8d\x7f\x0e\x06\x6a\xef\x5e\x95\x57\xd3\x36\xca\xa5\x10\x2c\xb5\xc6\xea\xb5\x37\x47\x4b\x7f\x4f\xb8\x95\xab\x1d\xbe\xb9\x00\x1a\xc2\xb6\xfa\x70\x3f\x1a\x30\x81\x0e\x81\xc8\xe8\x99\x9c\x4b\x73\x6d\xcb\x4c\x05\x0f\x31\xb2\x1e\x2e\x9b\x15\xe5\xcd\x17\x88\x53\xf3\xe5\x66\x63\x8e\x96\x79\x84\xba\x7c\xf8\xd2\x7a\xec\xea\x60\x26\xe3\x22\xf6\xef\x9a\xf1\x7b\xd0\xd6\xd5\x74\x03\xde\xc4\x39\xd8\x4e\xa1\x24\x89\x85\x62\xe4\xff\x30\xa2\xba\x21\x29\x1f\xc5\xee\x32\xdf\x6d\xdc\x29\xc2\x31\x85\x78\x6d\xa5\x9a\xa0\xe5\xe1\x33\x91\xcd\x5b\xee\x81\x8f\x61\xda\x64\x03\xa8\xc0\xa8\x1e\x17\xce\x73\x5c\x1b\xcf\xd3\x18\x6a\xd2\x46\x31\x5c\xa5\x67\xd5\x05\xbb\x21\xc6\x4a\x1e\xdb\x6a\x28\xa0\x22\xe3\xfb\x0f\x1f\xf2\x62\x3d\xcb\x05\x3b\x22\xe3\x0c\x9e\x5f\x5e\x0d\x42\x2f\x1e\x17\xf0\xf8\x38\x9a\xb1\xe8\x1e\x72\x51\x90\x63\xe3\x5e\xba\xaa\x4b\xe3\xe5\x50\xe4\x25\x21\xb4\x74\x2e\xa9\xa5\xc7\xdc\xf4\xb8\xb3\x32\x25\x31\x57\x8b\x84\x2e\xc1\xf8\x2f\x30\x8a\x2d\x77\x1c\xf8\xf0\x4f\x43\xc9\xdb\xd9\xb8\xa0\x66\x85\x65\x51\x4e\x48\x84\xbf\xdc\x24\x7c\xf5\x45\x1f\x91\x5d\x27\x13\xed\x8c\x82\xba\x4b\x2c\x53\x53\xf5\x95\xa0\x7c\x2c\xee\x68\xe8\xd4\xf6\xc9\xd2\xe5\x1a\x9f\xc3\x37\x2e\x46\x1c\xf4\xc0\xa1\x2b\x4f\x68\xfe\xc6\xda\x57\x2c\x7d\x60\xf1\x50\x14\xd3\xd1\xed\x3d\x9b\xef\x32\xc9\x51\xf9\xf7\x43\xe2\x6e\x9d\x37\x32\x7b\xf4\x20\x05\x2f\xc7\xde\xf1\x71\xd0\x2b\xaa\x04\xd4\xd7\xf6\x7b\x02\x38\xfb\x8d\xed\x61\x79\x19\x00\x8b\xe1\x6d\x8b\x74\x14\x5c\x4f\x9e\x30\x7d\xb2\x2d\x22\x71\xf8\xf8\x50\x1b\x2f\x5a\xc9\x5c\xaa\x6b\x63\x28\x5c\x8a\xcb\x24\x4b\x12\x44\x57\x6a\x58\x2e\x97\x7c\xef\xa2\xf1\xbe\x5c\x54\xa6\x57\xba\x49\x50\x37\xc1\xbb\x88\x62\xb6\x88\x21\x2b\x21\x5a\xe6\xe5\x56\x81\x78\x99\x50\x19\x30\x62\x87\x99\x0e\xa9\x64\x53\xa6\x89\x11\x8a\xe2\x2c\xc1\x9c\x0d\xf0\xfe\x41\x26\x3f\x4d\x12\xc2\xb5\x1a\x0a\x0f\x3c\x80\x28\x92\x70\x4f\xb9\x24\xb9\xd8\x0a\xaa\xd0\x05\x34\x6b\x2b\x6b\xc1\xed\xc5\x23\xae\x0b\x43\x02\xb7\xd6\x32\x04\x1a\x5e\x2c\x18\xc5\x08\x63\x7b\x12\x45\x28\xaa\x96\xb7\xc1\x86\xe3\x42\xc1\xa3\x7d\x44\xc6\x36\x53\x2f\x16\xbc\x6a\xbd\x29\x1d\xd2\xc5\xd9\x19\x39\xd5\x55\xfd\xc1\xd1\xda\xbc\x26\x1b\xf9\x61\x84\x41\xad\x7c\x15\x52\x2f\xee\x2f\x68\xaa\x79\x94\x25\x34\x4d\x96\xae\xf4\x30\x9f\x04\x05\x8c\x60\x13\x30\xef\xdc\x96\x39\x06\x2c\x76\x6b\x31\x56\x74\xce\x82\x7c\x1a\xab\x15\x27\x81\xc7\x09\xb1\xf4\xd0\x95\x61\xda\xfa\xae\x43\xce\xcb\xe5\xaa\xe0\x58\x04\x78\x35\x5c\x21\x07\xf4\xe3\x0d\x02\xc1\xb1\xec\x15\x9f\x18\x49\xfc\x9b\xe0\xe0\x35\xd5\x45\xa4\xea\xbe\xa5\x3b\xcb\x81\x9e\xae\x0e\x62\xaa\x4d\x04\x19\x40\xb9\xbd\x82\x93\xcb\x9f\x88\x86\x01\xba\xcb\xa1\xe5\x20\x43\xac\x9f\x2d\x06\xfa\x29\xa8\x67\x57\x1e\xec\x7c\x45\xbd\x24\xd8\xc7\x96\x43\x0d\xb0\xcc\xdb\x0f\x34\xa0\x9c\xd0\x79\xd9\xb8\xb2\xeb\x35\xdf\x4f\x05\x54\x71\x62\xc6\x65\xb4\x0e\x86\xee\xee\x52\x7d\x5b\x18\x83\x85\x1f\x07\xb4\x48\x7f\xd8\xc6\x8c\x24\x5c\xdc\xbb\xcc\x33\xb3\xf3\x47\x84\xe6\xad\xc3\xe1\xc3\xd1\x23\x31\x37\x48\x36\x75\xd8\xaa\x3b\x08\x3b\x9b\x45\x6f\xd7\x4b\xec\x6e\x24\xad\xe0\x73\x2b\x55\x60\x83\x79\x6c\xbe\x2d\x2b\x03\xac\xbc\x10\xeb\xa2\xaa\xf0\x82\x09\x42\x3d\x34\xf7\x75\x41\x1b\xd7\xf7\x7a\x46\xeb\x4b\x49\xaf\x87\x0b\xbf\xbb\x3c\xef\xbd\xeb\x5f\x16\x31\xbe\xff\x7a\xd7\xbb\x2b\xfe\x72\x73\x77\x79\xd9\xbf\x7c\x1f\xfe\x74\x7b\x77\x76\xd6\xeb\x9d\x17\xdf\x7b\xd7\xed\x5f\x94\xde\x33\x3f\x15\x5f\xea\xbe\xbd\xba\x29\xa1\x8a\xdf\xfe\xdc\xbf\xbe\x2e\xfe\x34\xe8\x7f\xe8\x9d\x8f\xae\xee\x0a\xc0\xe4\xe7\xbf\x5c\x76\x3f\xf4\xcf\x46\x6e\x3c\xf6\x49\x2d\xb6\x78\x3e\xb5\xda\xd5\xdb\x87\x7b\x77\x6b\x40\xf9\x2e\x99\xa4\x9c\x89\x38\x59\x62\xf4\x99\x53\x49\x4a\xc1\x2e\x21\xb7\xe7\x73\x26\xb3\x5d\x82\xc8\x8c\xca\x2e\x1f\x58\x0a\xd9\x70\xd8\x9a\x0d\x9d\xa7\xea\xbe\x11\xd0\x44\xa7\x55\xf3\xdd\xca\x50\x59\x9d\x2e\x7d\x30\xf6\xca\x20\x50\x9f\x4b\x6d\x3b\x21\x0b\x96\xae\x1a\x0b\xdc\xc5\x69\xb6\xd0\x7c\xdc\x1c\x16\xb8\x61\x8e\x71\x7b\xa5\x0f\xc1\x39\xea\x93\x24\x2f\xeb\x79\x60\x21\x3a\x6e\x97\xc0\x20\x68\x61\xdb\x3a\x09\xfe\x6b\x17\x4c\xb1\xc8\xc6\x09\x8f\x08\x8f\x73\x48\x11\x0c\x9b\xc3\x18\x6e\xb4\xed\x94\x31\x7c\x16\x2c\x05\xe1\xc8\xc8\x9c\x8b\x94\x1d\xd3\x4c\xcf\x5c\xcd\x45\x5f\x73\x1f\x31\x75\x58\x94\x32\xed\x6a\x3a\xb3\xd8\x21\xe7\x07\x3d\xc1\x60\x6c\x26\x47\x0c\x49\xa3\x9d\x00\x4e\xb1\xc1\x98\x87\x5f\x62\xeb\x2d\xcc\x8e\xf8\xfe\xca\xa5\xb1\x23\xe6\xaa\x5c\x1c\x0d\xc4\x40\x7c\xe8\xf0\xf7\xcd\xbc\x0d\x53\x8e\x5c\xc8\x21\x6e\xb2\x8b\x5e\xac\x9f\xc6\x3a\x1a\x0b\x09\xa5\x18\x6c\x68\x5b\xb7\x8f\xce\x52\x06\xf7\x85\xf5\x4d\x39\xa5\x19\x7c\xa9\x36\xda\x11\x82\x1c\x8d\x72\x30\x66\x33\x9a\x4c\xd0\xfe\x62\xb6\x26\x3f\x57\x55\x12\x1d\xc8\x7b\x26\x6c\x6d\xf3\x2f\xc2\x0e\x05\xca\xda\x79\x6e\x8f\x37\x45\xe4\xc6\x1a\xa8\xc3\x9d\xba\x02\xec\x18\xed\x8d\x65\x41\x51\x32\x0d\x1e\x63\xc8\x65\x0e\xaf\xe5\x02\xc5\x27\x13\xfe\xd9\x34\x38\x14\xac\x16\x60\x08\x1c\xd8\x2e\xcb\xda\xf3\x65\x00\xd8\xc0\x54\xd5\x7b\x26\x00\xfb\x1f\xcb\x77\xad\xa5\xd9\x76\x36\xc2\xea\x5e\x54\x2d\x86\x7e\xc5\xc0\xd8\xc4\x0b\x15\x11\x42\x73\xac\x5b\x27\xc8\xea\xb8\x67\x1d\x72\x6e\x13\xf0\xcc\x2f\x67\x17\xfd\xde\xe5\x60\x74\x76\xd3\x3b\xef\x5d\x0e\xfa\xdd\x8b\xdb\x4d\x8f\xdf\x3e\x22\x83\x4b\xa7\xaf\x1c\x9c\xed\x39\xc4\x89\x3d\x79\x79\x7e\x8a\x9f\x54\x7e\xec\x60\x4b\xd6\x8f\x9e\xc7\x8b\x51\xcc\x55\x64\xae\xbf\xe5\x88\x89\x18\x90\xd9\xb6\x22\xd5\xfa\xa6\xca\xb3\xf0\x6f\x10\xff\x86\xe3\x20\x78\xdb\x3d\x38\x8a\xf6\xcf\x01\xba\xc5\x56\xbe\x36\x87\x3f\x1e\x8a\xe0\xb6\xe9\xac\x47\xe3\x35\xcd\xed\x36\xb7\x62\x13\xe5\x39\xe1\x78\xb9\x52\x19\x35\xfc\xd1\xbd\x06\x79\x9f\x0d\xab\x62\xb1\x38\x42\x78\x38\x1e\x54\x1f\x22\x46\x1b\x9e\x53\x11\x53\x2d\xd3\x65\xc3\x14\x37\x63\x9e\xe1\xb1\x29\xb2\xd0\xf0\xca\x36\xaa\xbe\xdb\x05\x7c\x95\x8a\x32\x29\x21\x88\xdc\xe0\xea\xe7\xde\xe5\xed\xa8\x77\xf9\x71\x74\x7d\xd3\x7b\xd7\xff\x2f\x9f\x64\x6f\x6b\xa9\x17\x0b\x9b\x30\x73\x29\x1a\xee\xe2\xd2\xfd\x6a\xf9\x0b\x96\x17\x71\xed\x58\x48\x79\x3e\x19\x0a\xc7\x59\xd2\xbc\xf9\x59\x2a\xb3\xe9\xac\xbe\xa1\xf2\x28\xaf\xbb\x83\x9f\xb6\x1a\x26\x24\x63\x63\x0d\x02\x3c\x6d\x55\x58\x21\x3e\xb1\x7c\x0f\xb1\x88\x4a\xc3\x03\x48\x01\x78\xb5\xce\xbc\xdd\xc0\xd1\xb6\x52\x54\xaa\x4c\x6b\xa5\xf0\x5f\xf3\x7a\x13\x01\x0d\x02\xbe\x59\xb8\x46\x20\x4a\x0c\xab\xdb\x54\x5a\x3b\xad\xf9\xad\x70\x83\xfd\x78\x9c\xb0\xe9\x94\xc5\x48\x5e\xe5\x86\xad\xd5\xc7\xb2\xc0\x28\xbf\xd7\xeb\x56\xd1\x16\x9b\xd8\xe1\x62\xf6\x81\x19\x9b\x33\xf0\x6b\xff\x49\x3d\xaf\x38\x73\x45\xe7\x22\x29\x94\xa6\xa2\x01\xbc\xb3\x65\x61\xec\x1c\x51\x3f\xcd\xcb\xd3\x5b\x5b\x88\xb3\x53\xe7\xe7\x60\x1b\xdf\x8d\x2d\xaa\x21\xac\x71\x23\x28\xb6\x11\x54\xc9\xab\xd9\x84\x52\xe9\xe1\x27\xb7\x63\xac\x54\x9d\x6c\x06\x3a\x18\x17\x11\xd5\xdc\x22\x98\xa1\xe1\x07\x4a\x05\x34\x46\xaa\xed\xb9\x52\xb9\x37\x6e\xe6\x65\x96\x7d\xe1\x6e\x27\xbc\xb5\x37\x65\x95\x8a\x14\x07\x05\x9c\xe3\x2c\xb2\x50\x7d\xd8\x6c\xee\x8a\xb6\xb6\x2b\x77\xc1\xc6\xe4\x38\x2c\x0c\x1f\x1f\x43\x2e\xf1\x50\x34\xf9\x30\x6a\x8a\xaa\x87\x14\x70\xed\x6e\xad\xdd\x70\x28\x5a\x44\xd0\xb9\xc5\xde\x2c\xc7\x83\xb8\xd7\x41\xd8\x6b\xf0\xe4\xdb\x7d\x19\x53\x74\x52\x16\xaf\xe3\xa6\x74\x4f\xcf\x55\xdb\x05\x1c\x6c\xe6\xeb\x2e\x82\x48\xe0\x15\x39\xa3\x0a\x25\x57\x1d\xcd\x8a\x03\x87\xd9\x14\x81\x22\xca\xc3\xf5\x92\xe0\x6e\x16\x82\x8d\x7c\x14\x47\xa8\x53\x43\xf1\x7b\x33\xfa\x10\x99\xdf\x57\x19\x69\x47\xf8\xa1\x70\xe4\x95\x17\xe4\x7b\xc0\xb0\x12\x9a\x89\x68\x46\x16\x09\xc5\xbc\xa6\x19\x55\x48\xd2\xce\x0d\x4e\xc7\x3c\xe1\x1a\x32\xb2\xd1\x81\x54\x5a\x61\xa3\xd1\xd0\xf4\xde\x61\x41\xd1\x1c\x11\x66\x15\xd1\xef\x18\x47\x96\x17\x9c\x7c\xce\x48\xb2\xfc\xc8\x06\x5f\xac\xf4\x3e\xe5\x64\x69\xa3\xc8\xf2\xed\x30\x1c\x0f\xc8\x32\x9f\x4b\xbb\x9d\xb5\x2d\x5e\x97\x3f\x2f\xac\x77\xcd\x45\xdd\x3e\x2a\xc0\xc2\x1c\xb6\x60\xf3\x65\x10\xc4\xda\x93\x35\x49\x24\x6d\x28\x95\xe5\xda\x46\x4c\xc3\xa6\xb6\x63\x99\x8d\x9b\x30\xb4\x70\x54\xab\x5b\x5f\x65\xe2\x77\xe7\x76\x5f\x76\xc1\x90\x01\x52\xcd\x34\x6f\x67\xda\x08\x26\x4d\x35\x3b\x86\xcf\xeb\x1b\xb7\xc8\x51\x1b\xcf\xb9\x42\x68\x39\xf8\xad\x47\xea\x32\x22\x6d\x4d\xb9\xe5\xbf\x66\x50\xd2\xf9\x6a\x72\x8b\x39\xc2\xbb\x10\x99\xe6\x55\x0a\xab\x3f\x89\xe5\x5e\x07\x45\xff\x49\x48\x03\x1b\xe7\x87\xd4\xcd\xe6\xd6\x7c\xbd\xf9\x81\x2c\x96\x93\x5c\xa4\x5c\x42\x26\xaf\xad\x41\xb9\x02\x6c\xa4\xb6\xdf\x1d\x56\xf2\xd7\x8c\x65\xcc\xd0\xfe\x38\x8b\xa7\x55\xdb\x66\x0b\xe9\x2c\x9f\xd2\x4c\x3e\x92\x79\x16\xcd\x88\x6b\x9c\xc4\x2c\xa1\xcb\xc2\xd4\x40\x5e\xd2\x32\x01\xf8\xae\x2d\xb1\x84\xa2\x4c\x69\x39\x87\x18\xbb\xbc\xdd\x34\x13\x40\xf0\x84\x6a\x9d\xf2\x71\xa6\x6b\x63\x9f\x0a\xa0\x1a\x5b\xfa\xae\x6e\xaf\x7b\x67\xfd\x77\xfd\x92\xe3\xa8\x7b\xfb\x73\xf8\xf7\xa7\xab\x9b\x9f\xdf\x5d\x5c\x7d\x0a\x7f\xbb\xe8\xde\x5d\x9e\xfd\x34\xba\xbe\xe8\x5e\x16\xdc\x4b\xdd\x41\xf7\xb6\x37\x58\xe3\x56\xaa\xf6\xda\xbc\x11\x34\xc0\xfc\x30\xb2\x8b\x35\x5c\x82\xb3\xcf\x69\x97\xb6\xd7\x53\xd2\x75\x08\x28\x61\x91\x30\xea\xbc\x80\xe0\xbd\xc6\xaa\x65\xd6\x59\x78\x4e\x35\xb5\x55\x20\x3b\xa4\x4b\x5c\x35\x4f\x88\xc3\x54\x46\x58\xb0\xf8\x10\x66\x77\xb0\x09\x23\x31\x44\xb9\xe6\x96\x57\xa2\x90\x13\x0b\xcc\x92\xb0\x10\x0e\xd1\x56\x6e\xef\x0c\x45\xef\x81\x09\x9d\x01\x56\x1b\x4d\x12\x57\x74\xd5\xbd\x10\xe4\x51\xb9\x51\x2a\x3e\xe7\x09\x4d\xf3\xa2\x01\x57\xb6\x2d\x10\xd8\xdd\x58\x7d\xda\x7c\x15\x49\xda\x29\x0f\x77\x7d\x02\xe3\x3e\xbb\xe8\x83\x08\x14\x69\x07\xb7\xeb\x3a\x1f\x0a\x44\xfe\xb0\x3d\xce\x29\xc4\x06\x6b\x69\xed\x69\xd8\x7d\x63\x11\xfa\x9b\x1a\xd0\xfe\x2d\x90\x65\xd0\xf2\xfc\x54\x81\x34\x7e\x90\xee\x1f\x3d\xa1\xd3\xe5\xc6\x72\xcd\x00\xd0\xda\x14\xc8\xa6\x36\x66\xa6\x58\x48\x00\xcd\x1d\xc4\xb5\x7e\x09\xc2\x8e\x8b\xe9\xb2\xd6\x78\x6f\x74\x67\x80\x08\xd7\x20\x7f\x27\xe6\x12\x7a\xa9\xeb\x10\xa6\x29\xc3\x2a\x8c\x65\x26\x62\x57\x05\x7d\xce\xc5\xc9\x9c\x7e\xfe\xce\xcd\x14\xd3\xfe\x3c\x52\x28\x40\x3a\xb0\xc4\x68\x22\x4b\xc3\xe4\x56\x2f\xd7\x50\xac\x58\xaf\xf5\xd2\xa2\xe3\xac\xa0\xf6\xe4\x3a\x2a\xc6\x29\x3d\xb0\x65\xdd\xfe\x55\xf0\x9e\x31\x16\xca\x1e\x78\x68\x64\x91\x32\x6d\xde\xf4\x51\x50\x09\x46\xb7\xf9\xbf\x21\xca\xb6\x50\x37\xa2\x9e\x79\x87\x6e\xde\x9d\xce\x4d\xad\x83\xf9\x09\x10\xbb\x6d\x4f\x66\xd3\xd0\xdd\xec\x2c\x9d\x36\xaa\xd8\xfa\xd1\xcc\x6e\xfd\x5d\x8e\xa1\x34\xb5\x72\x65\xe1\x52\x06\x96\x6d\xd8\x0b\x07\x30\x07\x99\xff\x15\x1f\xb6\xa3\x81\x84\x29\xb0\xf7\x0a\xa3\x6f\xb1\x5f\x33\xeb\xb2\xfb\xe1\xfb\x76\x17\xad\x4e\x97\xc4\x81\x99\x86\x11\xea\x36\x41\xc3\x5e\xba\x30\xae\x4c\xf0\x3a\x38\x90\x9b\x4c\x98\xbb\x78\x1f\xd1\x0e\x9b\xbb\xb3\x4a\x9d\xda\x3f\xd7\x06\xc0\x3b\x4b\x6c\x8a\xef\x3f\x19\x7e\xd2\xc7\x12\x6c\x92\xed\x0e\xc2\x5f\x6d\xeb\xe1\x8d\x36\xa6\xd1\xfd\x23\x4d\x63\x34\x16\x42\xf8\x41\x87\xfc\x24\x1f\xd9\x03\x4b\x8f\x48\xc4\x52\x4d\x2d\xa2\x82\x02\xff\x2b\x1c\x28\xdb\xce\x50\x40\x44\x38\xc2\x53\x08\x28\xa9\xa7\xf9\x74\x66\x14\xca\xc0\x7b\x2e\x53\xc3\x8f\x34\xc2\xd5\x2c\x58\x64\x73\xd8\x1b\x16\x60\x92\xd0\x87\x2a\x44\xc4\x36\xd9\xa6\xa4\xef\xd3\x80\x9c\x7b\xca\x81\x76\xae\x8a\x77\xb0\x0b\x66\xb9\x26\x26\x1d\x1f\x91\xa9\x4c\xa8\x98\x76\x3a\x1d\xc2\x74\xd4\xf9\xae\x15\xa1\xdb\x06\x43\x87\x97\x8f\xe3\x4c\xa4\x62\xc9\xd2\xa7\x5d\xfb\x78\x7b\xb3\xca\x10\xdf\xaf\x38\x9a\x3c\x6a\xa8\xff\xb6\x9c\xb4\xfa\xbc\xa6\xf3\x7a\x4d\xb5\x75\xf6\x4b\x43\x3b\x00\x01\xde\xa2\x25\x7c\xbf\x5e\xf3\x6a\x91\xcd\xe5\x8a\x6a\xe4\x59\x5d\x0d\x08\x6b\x52\xb4\x4d\x55\xfa\x28\x9b\xaa\xcf\x6d\x85\x8a\x52\xdb\x92\xcd\x99\xde\x2a\x3f\xa6\x4a\xd1\x35\x14\xe7\xf3\xdc\x76\x09\xf9\x91\x49\x36\x6f\x46\xd8\xd8\x55\x8a\xca\x07\x89\xff\x3a\x83\xee\x36\x96\xa2\xf2\x22\x7b\x0e\x21\xd8\x8e\x17\x6d\xa1\x48\x4c\xc0\x2d\x53\xae\x00\x0b\x66\x9b\x34\x1b\xdf\x0c\x36\x0d\x2e\x9b\xe5\x02\x6d\x70\x98\x80\x93\x2c\x31\x73\xc8\x99\xf8\xed\x27\x0a\x45\x1d\xf0\xf3\x34\x73\x86\x72\x20\x51\xeb\x3d\x02\xfc\xd9\xad\x9c\x5b\x20\x3a\x04\x18\x88\x36\xd2\x01\x1a\x74\x25\xe1\x25\x99\xb8\xa4\x8d\x7b\x16\x94\xb5\x89\x01\x1d\xf1\xb1\x43\xde\xc9\x14\x6a\xd7\x58\xc7\xad\xf5\xad\xe7\xb7\x96\xce\x3b\x41\x03\xf1\xc3\x0f\x2e\xa4\x02\x67\x88\x4d\x00\x08\x7d\x4c\x85\xae\x6d\x20\x8f\x38\x82\xb6\xf0\x93\x8f\x46\x15\xae\x7d\xdd\xb6\x0f\xaf\x22\xde\x74\xf7\xd3\x2d\xc1\xa5\xb6\x38\x7a\xe9\xaa\x81\x06\x8d\xac\x0f\xea\x80\xe5\x1a\x6d\x21\x0d\x14\xf6\x01\x17\xdd\x01\x29\x9a\x65\x67\x3a\x9a\xe5\xb7\x4f\xb1\xba\x93\x2d\x26\x60\xe7\x39\xcf\x91\x01\x31\x5e\x2e\x0c\x3c\xb2\x05\xc4\xbd\x1a\x2b\x05\x03\x4b\x3d\xd5\x24\x96\x61\xb3\x84\xeb\xf5\xd1\x1d\x2d\xd1\x2b\xd6\x91\x9a\x96\xe8\xb5\xb7\xf3\x2c\x38\x5c\x40\xac\xe4\x88\x05\xe0\x42\xe3\x50\x2e\xb6\xd8\xf4\x65\x3c\xbb\x62\x76\xe5\x50\x14\xbb\xaa\x2c\x92\x0b\xbf\xe0\x29\x43\x18\x2a\x65\xae\x70\xcd\x1f\xcc\x41\xad\x92\xb5\x27\x50\xe0\x00\x55\xda\x1b\x0a\x1c\x76\x80\x65\x75\xcf\x96\x2a\x04\xc2\xb7\x14\x45\x9a\x08\x92\x9b\xf9\xb8\x82\xef\x6b\xb7\x02\x16\x6e\x14\x54\xdf\xdb\xec\x2a\xc1\x4e\x3f\x98\x8f\x57\xc4\x75\x55\x1a\x37\x34\x98\xa7\xc4\xe4\x86\x25\xcb\x26\xf2\x75\xb6\x7b\x98\x87\x6e\xd4\x54\x66\xcc\x6d\x74\xa0\xfc\x18\x1d\x67\x28\x2c\xdc\x5d\xe0\x12\x35\x0c\xa7\xba\x6d\x36\x55\x0f\x41\xb6\x96\x85\xd4\x6c\x80\x22\x74\x25\xc4\xea\x0b\x62\xba\x3a\x2a\xb6\x10\x34\xa6\xde\x3a\x43\x4e\x6d\x87\x5b\xc6\x03\xd9\xcd\x6d\x8c\x01\xca\xc5\x58\xbb\x70\x16\x85\x06\x2b\x2a\xa0\x04\x1c\x31\xb3\x7c\x5d\x51\x1b\x7e\xe3\x82\x6f\x6e\x7b\x67\x37\xbd\xc1\xb3\xc5\x08\xb9\x00\x9d\xd6\x41\x42\x6e\x9c\xe7\xbd\x77\xdd\xbb\x8b\xc1\xe8\xbc\x7f\xf3\x14\x51\x42\xf6\xd1\x16\x61\x42\xb7\x16\x45\xf3\x4c\x0a\xcd\x3e\xef\x74\x27\xa7\x99\x18\xd1\x16\xe1\xea\x1e\xa9\x76\x95\xb8\x83\x8d\x56\x51\x40\x3d\x44\xa7\xc5\x40\xc2\x1b\xcd\x83\x7e\x06\x15\x4e\x27\x3c\x49\x20\x5f\xcc\xdb\x58\x6d\x12\x88\x59\x54\xe0\x3f\xae\x54\x9b\xe5\xa9\x43\x31\x2e\xc0\xa0\x82\xdd\x67\x26\xa5\xc2\xfd\xa1\x0b\xb3\x00\x29\x87\x74\xa1\x55\x40\xa1\x53\x2e\x58\x3e\x0c\xac\x7e\x94\x09\xd2\x88\xee\x66\x37\xf1\x29\xd3\x01\xad\xe0\xb5\xa9\xac\xe9\x28\xae\x40\x9f\x4e\xfc\x74\x0f\xfd\x0c\xf1\x10\x73\x81\x82\x69\xe1\x34\xdf\xd6\x93\xee\x49\x7e\x04\x60\xdd\xcd\x4e\x52\x30\x44\x43\x81\xa1\x7c\x23\xed\x46\x20\x44\x77\x6e\xa1\xbe\xe7\x18\x4a\x21\x27\xa5\x75\x36\xac\xd0\xac\x35\x07\x73\x35\xc5\x42\x2d\x24\x4a\x32\x65\x94\x7f\x54\x9d\xbb\x9f\x6e\x87\x02\x4b\x45\xda\x5b\xc8\xc2\x38\x63\x17\xe8\xc8\x97\x85\xfe\x9d\x84\x12\x72\xb0\x6f\xd1\x50\x39\x67\x54\x28\x2c\xff\x96\x24\x2c\xcd\x29\x03\xc7\xc3\x58\x6c\x0b\x00\x40\x19\xbf\xfc\x7b\x5b\x01\x4c\xc2\xa9\x35\xe3\xb5\x4f\x6d\x05\xac\x32\x3d\x35\xa5\x23\x42\x94\xe0\x53\x52\x4e\x4d\xb0\xfa\xa6\x54\x64\x03\x2c\x6b\x89\xa8\x18\x3a\xbe\x11\x2d\x0d\xb0\xb9\x03\x29\xed\x91\x94\x36\xb8\xd7\xc3\x5b\x82\xcc\xa4\x61\xa0\x1e\x81\x39\xf7\x35\xfa\x74\xe8\x04\x82\x60\xcc\x32\xd6\xde\x3a\x39\x70\xce\x56\xde\xc7\xcb\xab\xcb\x5e\xe8\x3b\xec\x5f\x0e\x7a\xef\x7b\x37\x85\xd4\xb7\x8b\xab\x6e\x21\x7d\xed\x76\x70\x53\xca\x8e\x7b\x7b\x75\x75\xd1\xab\x38\x21\x7b\x83\xfe\x87\x42\xe3\xe7\x77\x37\xdd\x41\xff\xaa\xf0\xde\xdb\xfe\x65\xf7\xe6\x97\xf0\x97\xde\xcd\xcd\xd5\x4d\xa9\xbf\xbb\xb3\xd5\xee\xcc\xc2\x34\xea\x55\xf1\xdc\x5b\x12\x60\x08\xd5\x2d\xe9\x80\xaa\xfb\x3d\x27\x7d\x42\x92\x73\x9b\xa4\xcd\xda\x1c\xcd\x82\x55\x2a\x66\xa3\xed\xf2\x41\x9b\x72\x5a\x6b\xfb\x49\x99\x4e\x97\x23\xaa\x35\x9b\x2f\x76\x2b\x48\xba\xf9\x11\x69\x97\x6a\x0a\xfc\x65\x83\x54\xd3\xc2\xae\xbe\x9c\x54\xd3\x9a\x2c\xd2\x6a\xaa\x69\xff\xb2\x3f\xe8\x77\x2f\xfa\xff\xaf\xd4\xe2\xa7\x6e\x7f\xd0\xbf\x7c\x3f\x7a\x77\x75\x33\xba\xe9\xdd\x5e\xdd\xdd\x9c\xf5\x56\x07\x94\x57\x47\x9f\x2b\x6d\xc7\x24\xec\xe7\x94\x0c\x02\x71\x1a\xdd\x02\x56\x5b\xb3\x68\x97\x40\x55\x34\xe1\xff\xe0\x62\x7a\x04\x25\x33\x4f\x49\x2f\x4d\xfb\x73\x3a\x65\xd7\x59\x92\x80\xd2\x8b\x3e\xb8\xb3\x94\x51\x0d\xaf\x5d\xcb\xb8\x1f\x7c\x07\x91\x03\xb5\xd3\x80\xfe\x6d\x01\x5a\xec\xfe\xc8\xf6\x1f\xa8\x78\x3e\x2a\xc1\x9a\x38\x7c\x79\xf0\x53\x00\xe0\x97\x13\x5b\x49\xe9\xc8\xfb\x38\xc9\xaf\x99\xd4\x94\xb0\xcf\x11\x24\x51\xd4\xd3\xc9\x85\xdc\xa9\x80\xec\xfa\x5a\x47\xf5\x67\x7a\x7d\xde\x59\xbd\x26\x8f\x68\x6f\xa3\x36\xf5\x1b\xed\x2c\x3f\xe0\xa7\xb6\x64\x63\xbd\x40\xa4\x93\x3d\x04\x75\x5d\xc8\x69\x3d\x78\x11\x64\xbd\x59\xc4\xa5\xbc\xd0\x0c\x84\x88\xca\x29\x51\x5c\xdc\x0f\xc5\xa7\x19\x13\x44\x66\x29\xfe\xa4\x65\x0a\x20\x5d\x93\x24\x53\x33\x06\x85\xa2\x8f\xc8\x23\x23\x73\xba\xc4\x50\xd1\xb9\x4c\xff\x3f\xf6\xae\xad\xc7\x6d\xe4\x4a\xbf\xcf\xaf\x20\xe6\xc5\x36\xc0\x6e\x23\x09\x02\x2c\xf2\xd6\x6b\x7b\x90\x1e\x38\x1e\xaf\x6f\xb3\x40\x18\xa8\x4b\x64\x49\xe2\xba\x54\xa5\x14\xc9\xee\x51\x80\xfd\xef\x8b\x3a\xe7\xd4\x8d\x77\x4a\x6a\xdb\x3b\xf1\xc3\x60\x80\xb6\x48\xd6\xf5\xdc\xcf\xf7\x05\x70\x4e\x70\x64\xcc\xe1\x84\xa7\x45\x29\x8d\xb4\x38\x94\x36\x85\xd0\xde\xfa\x4b\x64\x18\x6d\x0b\x11\x3b\xbf\xc3\x77\x5e\x9d\xd4\xc3\x8e\x43\x89\x88\x8f\x6e\x59\x37\x8e\x24\x37\xe0\x6e\x2a\xf5\xd9\x78\x66\xb6\xd9\xf0\x89\x05\xef\x80\xe5\xbe\x57\x65\x91\x14\xcd\x41\x94\xb9\x93\xbb\x0f\x4a\x0f\x76\x54\x63\xaa\x6b\x41\x47\x75\x2b\x81\x3b\x36\xb1\x9e\x3c\x5a\x10\xef\x18\xe9\xad\x7e\xe4\xee\xf2\x80\xf6\xac\xa9\xb8\xbe\xaa\x75\xb9\xdd\x42\xe2\xc0\x66\xe5\xbf\xfd\xf6\x73\xdf\xde\x76\x7e\x02\x3a\xac\x0f\x13\x6a\x5b\xe6\x4c\x84\x21\x68\x6f\xbb\xba\xfe\x56\x7b\xed\x0f\x8d\x46\xc2\xf1\x8d\xef\x31\x1c\xac\xdb\x3f\x68\x0e\x2d\xd6\x2b\x64\x92\x3b\x9f\xe1\xee\x76\x83\xbc\xda\xc4\xc5\xe2\x0b\x28\x2d\x9b\x95\xd5\x70\xfe\xdb\x16\xcd\x0d\x51\xf7\x81\xbe\x32\x51\x0f\xc0\x85\x6a\xbc\x11\x63\x9c\x9b\x99\x4a\x05\xb6\x89\x43\x78\x73\x51\x64\x0b\xd0\xb7\x71\xe1\x72\x2c\x72\xd9\x96\xf7\x5c\x7e\x03\x70\x01\x3e\xd2\x6e\xa6\xee\x6e\x69\xaf\x88\x3c\x17\xee\xcd\x25\x81\x4e\xb5\x88\xc7\x93\x7a\x5b\xa1\xd6\x48\xc6\xda\x01\x82\x0b\xb5\xce\x10\xa0\xd4\x3d\xd7\xba\x2c\x96\xdc\x56\xbb\x26\xbf\xb8\x47\xc7\x06\xe8\x50\xfe\xdd\x97\xe0\xa2\x94\xc6\x17\xad\xdb\xd6\x6c\xbb\x7e\x64\xca\x74\x86\xce\xae\xca\xba\xab\x5e\xb9\x5a\x78\x07\x68\xf4\x50\x23\xb4\x11\xdd\xb9\x9c\xb5\xd1\xdd\x92\xc4\x89\xb5\xf4\x55\x8c\xe3\x9b\x7c\x46\x5d\x19\x16\xc1\xb9\xe2\xb2\x25\x3d\xba\x76\xeb\x30\xb0\x02\x94\x1c\x6e\x13\xa3\x88\xf7\xac\x1d\x6d\xaf\xfb\x07\xbe\x3f\x08\x56\x5f\x18\x4a\xf1\xfc\x1b\xd5\xd4\x2a\xe0\x47\x36\xf3\xb9\x75\x34\xc9\x36\x97\x06\x62\xe3\xb6\xe8\xa5\x5a\xf3\x22\xd5\x5e\xcd\x21\xf5\xdd\x53\x65\xb1\x08\x09\x32\x20\x0d\x3e\xf2\xda\x95\xd5\x08\x8b\xfb\x05\x68\x03\x6e\xd6\x71\x5d\xa1\xad\x1c\x72\xb5\xe0\x00\x12\xe2\xb8\xbb\xf7\x07\x25\xb9\xa4\xe8\x97\x54\x99\xa4\x97\x5b\xd0\x5b\x47\xa2\x17\x25\x19\x53\x72\x52\x89\xb0\xbf\x52\xe2\x9e\x02\xd9\x01\xe4\x03\xe0\xbe\x99\x01\xbe\x30\xfa\xde\x58\xb7\x4c\x16\x2e\xe3\x04\x31\xb8\x16\xf2\xab\xe6\xdb\xb2\xaa\x79\x98\x97\x0d\x9f\xbf\x18\xe0\x64\x64\x10\x8f\x2d\xfd\x20\xe0\xe4\x94\x66\x33\xb7\x76\xc1\x78\x8e\x07\x5e\xdc\xba\xe7\xc6\x0f\x43\x54\x5c\x51\x04\x42\x22\xd2\x02\x78\x06\x38\x11\x52\x43\xa5\x75\xe5\xc0\x1a\xdc\x26\x39\x5a\x46\x0b\x06\x07\x5b\xb4\x65\x0d\xd3\x4c\xd6\x9c\x57\x99\xc4\x32\x74\xec\x91\x89\x8a\xe2\x36\x11\xc4\xa8\x37\xb6\x73\x55\xd5\x58\x81\x0b\x8f\x6c\x58\x29\x1a\x3d\x68\x43\xe2\xb1\x3c\xa9\xdc\x67\x6c\x99\x5e\xc0\x6b\x93\xbe\x5d\x73\xb5\x03\xc1\x35\x72\x55\x6b\x96\x3a\xce\xd2\xdb\xc5\xa9\xf5\x81\x29\x58\x99\x3b\x7f\xc3\x5d\x00\x61\xa0\x9c\xe0\x3f\xaa\xd5\x41\x2d\x10\x79\xc4\x58\xd3\x2f\x7d\x58\xf5\x19\x0a\xbd\xa6\x2c\xe3\xe9\x70\xd7\x9f\xfe\x38\xe1\x64\x8c\x89\x1d\x38\x70\x3b\x26\x0b\x60\x9f\x65\x75\x4b\x79\xb8\xe3\x0b\xc8\x8e\xb5\x95\x6b\xc3\x99\x30\x08\x2c\xaf\xf2\x4e\x56\x72\x62\xa9\xda\xe9\xcc\x89\xec\x56\xf4\x95\x38\xc9\xd8\x17\xdc\xf6\x4a\x99\x20\x46\xdd\x5d\x1b\x3e\x3c\x9b\x72\x7b\xf9\xb6\xcb\xb9\xa0\xab\x9e\x6d\xb8\x2b\xe4\x72\xba\x44\xa4\x7a\x1c\xcc\xea\x99\xd7\x08\x92\x12\x46\x0e\x85\xcd\xad\x99\x24\x0c\x62\xf8\x21\x02\x59\x63\xfd\x76\x95\xfc\xc1\x65\xaa\xff\xf0\x67\x5b\xbd\x7b\x4c\x36\xb0\xd6\x50\x22\xaf\xf2\xbc\xd1\x80\xf9\x6a\x79\xa9\x39\xaa\x95\x25\x18\x04\x37\xa8\x4c\x2b\x10\x2e\x50\x09\x3c\xcc\xb1\x4a\x5e\x73\x34\xa9\x0f\xe0\x2c\x21\x9a\xb2\x53\x63\x84\x57\xa4\xab\x3a\xa9\x6a\x7e\xe8\x95\x27\x91\xbd\x14\x6b\x82\xb3\xda\x4c\xfb\x70\x8f\xa7\xdb\xd9\xff\xc6\x0e\x63\x90\xb4\x67\xbf\x71\x6a\x1b\x5c\x7d\x61\x5b\xcd\x01\x1c\x2b\xc0\xf0\x10\x94\x6c\x77\xf5\x5c\x4b\xfe\x17\x29\xa3\x5f\x82\xde\xef\x90\x19\x88\xf7\x62\x4c\xb6\xc5\x8f\x2e\x2f\x2a\xf3\xf5\xe3\x84\x48\x8f\x2f\x5c\x23\x9c\x42\x88\x00\x71\x0a\x42\x47\x7b\x63\xec\xbb\x46\xb6\xe3\xcc\xee\x74\x0f\x28\xf2\x05\x9b\xd3\x3f\x75\x96\x68\x69\x6f\xfa\x7d\x08\xc6\x01\xb6\x97\x2f\xfe\x99\x15\xb2\x70\x3d\xe9\x9f\x62\x44\x95\x68\x89\x55\x39\x0b\x7a\xa6\xcb\x8f\x0d\x1a\xaa\xe0\x52\xd5\x3c\x61\x89\x2c\xc5\x73\xd9\x08\xf1\xfc\x8d\x92\x46\x30\x57\xe5\x16\x0b\x96\x20\x64\x8d\xe4\x52\x9e\xa4\x28\xca\x55\x04\x57\x00\x84\xb3\x19\x12\xa6\x51\x6a\x23\x31\xcd\x16\x88\x63\x26\xcd\x13\xc4\x93\x00\xdc\x2e\xa5\xeb\x6d\xc0\xaf\x59\x3c\x5b\xfa\x16\x34\xfa\x1e\xc3\x97\xf7\x1c\xb0\x31\x08\xd8\xb3\x9a\x0a\xbe\xb3\xb8\x7f\x33\x2c\xee\x4a\xdb\xd0\xff\x02\x3e\xf7\xe1\x4b\x75\x32\xa1\xba\x73\x74\x9c\xd9\x3a\xe3\x3c\x7e\xcd\x7c\xec\x63\x02\x02\x7b\xf4\x5f\xfa\xdb\x52\x88\x5f\xbb\x52\x97\x48\x4b\xfd\x13\x3b\xfe\x57\x6a\x63\x59\xd8\x4f\x47\x29\x98\x99\x17\x08\xdb\xac\x42\x6c\x82\xee\x21\x19\xf2\x7b\x95\x5c\x91\x67\x3c\x6f\xb0\xed\x05\xfb\x45\xfe\x84\x8f\xbf\x55\xa2\xcc\xc7\x93\x29\x56\x35\x01\xdd\x44\x27\x95\x06\xc4\x2c\xdc\x52\x3e\xd2\xa0\x30\x4b\x50\xf3\xbc\xf6\xa1\x9f\xee\xe4\x96\x04\x19\xad\xbb\xe0\xde\x02\x30\x58\x9e\xcc\xc7\xa8\x15\xa8\x36\x87\x46\x3b\x34\xa4\x81\xb9\x01\x62\x8e\x39\x23\xff\x22\x1a\x08\xc8\xa6\x87\x9d\x12\x3c\xc5\xd8\x12\x64\x2a\x32\x79\xe0\x3a\x57\xc6\x49\x4b\x0a\xf5\x40\xd5\x99\xa5\x28\x7c\x3b\xfb\x53\x48\x9c\x42\x7a\xe3\x19\x61\xf6\x70\x17\xfb\x73\xac\x29\xd3\xc7\xd6\xe2\x76\x9e\x8b\x07\x73\xa9\x4c\xc8\xd8\x29\xf8\x95\x92\xa9\xb8\x14\xc4\x72\xd0\x0a\xe2\x98\x45\x8f\xc6\xb3\x6c\x87\xb9\x6b\x54\x06\x05\x83\x14\x3b\x75\x6b\x5f\xa9\x6d\xa6\xbd\x94\xd0\x81\x81\x80\x4d\x18\xd8\x37\x0e\x22\x24\xbc\x19\x9a\x21\xbe\x1e\x9a\x36\x35\x93\x3e\x6e\xf5\xa4\x0a\x4d\x92\xde\x7d\xc6\x06\x83\x12\xe0\xf0\x72\x9e\x26\x4f\xa2\x89\x3e\x81\x0a\x7d\xa9\xe0\x7b\x14\xa0\x88\x96\x06\x8e\x6b\x9a\x94\x75\x26\xcb\x0a\x4f\xa6\xe6\x82\xdf\x9b\xd1\x85\x74\xa9\x94\x83\x20\x20\x05\x37\x6d\x48\xd7\x33\xea\x09\x28\x1c\xdc\x2b\xd4\xc2\xe9\xb0\xd2\x9b\x41\x45\x21\x50\x5f\x34\x12\xfa\x94\xf9\x6f\x48\x30\x62\x1c\x5d\x0c\xcb\x17\xe6\x73\x9e\xf9\x86\x10\xe5\x80\x77\xfb\xa8\x1a\x24\x2b\x2b\x88\xfe\xd7\x76\xae\xba\xb2\xbb\x12\x8d\xd1\xb5\xaa\x77\xd1\x46\x10\xe4\x14\xde\x24\x6e\x5c\xec\x1a\xd8\xdc\x60\x5d\x25\x67\xf5\x2e\x29\xeb\x14\xea\x25\xad\xe0\xc8\x24\x2b\x08\xb1\x93\x5e\x57\x3a\xba\xe5\xe1\x7d\xa6\x7f\x5f\xab\xfb\x31\x9b\xee\xdc\x6c\x1c\xde\xea\x83\x60\x72\x85\x02\xf5\x2b\xe4\xe3\x02\x34\xb0\xa1\x38\x56\xb3\x5e\x39\x22\x8e\x8b\x8c\xd3\x59\x3a\xef\x22\x8c\x3e\x63\xc2\xd9\x0f\xa5\x78\x18\x7c\x8f\x97\xb5\xcc\xa1\x6f\xdd\xe6\x05\x4a\x61\x84\x05\x45\xc9\xe6\x4b\x01\x9f\xaa\x63\xad\x00\xb1\x3d\xad\x53\xb9\x3a\x7b\x02\xbe\xd5\xbc\xd1\x9c\x9d\x6f\xe9\x90\xf6\xb6\x2f\x4f\x59\x74\x0c\xa6\x93\xd2\x16\x13\xc3\x7a\xdc\xd4\xc5\x60\x08\xa1\x9b\xc2\xf8\xd5\x11\x97\xb9\x98\x32\xd6\xa8\xf0\xa4\x52\xc6\xaf\xb1\x11\x8e\x7e\xb4\xb7\xd0\x05\x51\x3d\x39\xef\x4b\x96\xbd\xc7\x9c\x10\xb3\x5b\x73\x91\x41\x2d\xb9\x95\x8e\x93\x3b\x4d\xb2\x1f\xf1\x64\x55\xd9\x8f\x08\x77\x6f\x41\x03\x2d\x3d\x1b\xdd\x9f\x22\x62\x08\x75\x91\x76\x2c\xce\xf0\x17\x8e\x68\xc3\x16\x45\xf3\xbe\x26\x2f\x5a\xd0\xb7\x8c\xf5\x5b\x6b\x7c\x01\xa9\x49\xf4\x39\x8f\x96\x34\x0d\x80\x6d\x75\x93\xd7\x7e\xc2\x8e\x63\xea\x3f\xed\x83\x66\x89\x0e\x0d\x69\x54\xc7\xe9\xa4\x74\x26\xed\xdb\x3c\x0f\xed\x8d\x10\x9d\x57\x75\xe9\xd5\x82\xb3\x0a\x31\x6a\x8b\x28\x02\x48\x35\xbe\x1d\xa1\x2d\x07\x20\xe6\xbd\xe6\x1e\xee\xf4\x3a\xf1\x04\x7f\x60\x7a\xb4\x98\xc4\x42\x22\x31\x21\x2c\x8b\x16\x5a\x6d\x01\x75\x52\xd5\x40\x9d\xff\xa6\x31\xe2\x28\x68\x86\xc8\x24\x90\xca\x6d\x4a\xa8\xc8\xa0\x75\xc9\xe4\xdf\x14\x35\x55\x80\x79\x65\x27\x69\xb3\xfb\xb4\x6c\x4f\x1c\xb0\x0a\xfd\xe1\x25\xa8\xed\x0d\xe6\x99\x5b\x50\xbb\x50\x40\x04\x65\x8e\xa9\xb1\x3d\xb4\x9f\x54\xce\x64\x26\xff\xc7\x2c\x8f\x65\x4a\xa3\x6d\x55\x1b\xbc\xc4\x16\x9a\x38\x79\x7a\x87\x2f\x7d\xfa\xe7\x67\x77\xcf\x90\x87\xb2\xa9\x00\xcc\x2a\x8d\x55\x88\xeb\x8b\x6b\x84\x80\x22\x5b\x3b\x83\x8d\x56\x7b\x6c\xe3\x75\x9f\x18\x25\x4e\x21\x2f\x67\x21\x9f\xd4\x24\x93\x94\x8f\xbc\xde\x24\x39\xab\xf3\xdd\x95\xb5\xe6\x42\xf6\xb8\x80\x50\x1f\x2c\x47\x63\x6b\xf5\xb7\x86\x19\x0f\x4c\xef\x1d\x58\x6c\x74\x5e\xcc\x14\x20\x6f\xf2\x21\x3a\x95\x21\x24\x33\x1e\x4e\x8f\xd3\xea\x2d\x3d\xf7\x73\x8b\x54\xe3\xc3\xa5\x14\x22\x96\x6c\xcf\x8b\x24\x43\x64\x87\xec\x47\xbb\xfd\x99\x3c\xac\xaf\xc5\x71\x53\x5f\x43\x97\xcb\xb5\x59\x96\x6b\x80\x73\x98\xd0\x74\xab\xa2\xeb\x2a\x4d\x2c\xf7\xa0\xb3\xd5\x6f\xef\xb8\xd5\x71\x5f\x9a\x6f\xb4\x60\x88\xc7\xad\xcf\xfb\x38\x07\x14\xb7\x16\x02\xdf\x16\xb1\x83\x19\x23\x37\x30\xac\xfc\xfd\x44\x36\x96\xa4\xaa\x59\x5d\xe6\x08\xcb\x26\x99\x38\x42\x5d\x4f\x9a\xc9\xa2\xd4\xe8\x5a\xb3\xfc\x98\x8b\x32\x27\xa6\xaf\xd8\x16\xe2\xf7\x5c\xd6\xaf\x7e\xab\xb9\x96\x4c\xd8\x02\xa2\x5b\xb9\x51\xe7\x18\x44\x9c\xde\x77\x1e\xc4\xf5\x6d\x6c\xf1\x40\x4f\x3a\xbe\xd7\x07\x18\x73\x8d\x8c\xdc\xe0\x55\xdb\x82\x03\x77\xc4\x53\x02\x88\x61\xd0\xb2\xf2\x5f\xcd\x5a\x09\x9e\xfc\xb3\xe1\xfa\x98\xdc\xbe\x4c\x94\x86\xe6\xda\x5a\xd1\x9f\xca\x62\x11\x9a\x2b\x12\xd4\x52\x2a\xd0\xd1\xe1\xb6\xec\xa1\xce\x88\x2b\x8f\x5f\xad\xb4\x23\x3c\x0d\x82\x9d\xf1\x0c\xfa\x76\x2b\xea\x41\x01\x4c\xbe\x2f\x65\xbc\x0e\x75\xbf\xf4\xdf\x95\x8f\x03\x86\xab\xe3\xd0\x8c\x63\x9c\xed\x4b\x4d\xeb\xa4\x4f\x25\x3d\xc2\xf6\x5c\x1b\x7d\x50\xba\xdc\x96\x92\xd5\x4a\x27\x4f\xdf\xda\x9e\xb6\x67\xae\x0f\x1b\x56\xb1\x7f\x18\xad\xe8\xea\x92\x25\xc2\xc8\x6c\xbf\x69\x04\xd9\x64\x5e\xac\xba\x4d\x07\x4b\x31\x65\x27\xab\x25\xcc\xaf\xaa\x9a\xed\x0f\x21\xa6\xa4\x43\x3a\xa3\x95\x11\xb8\x08\x89\x1d\x18\x38\xe1\x65\xe5\x8b\xd7\x32\x49\xa1\x2b\xdc\x37\xa5\x7b\xc0\xd2\xdb\xb3\x04\x31\xbf\x3a\xb1\xa5\x83\xe8\x49\xa7\x9f\x1e\x0d\xef\xbf\x7b\x6d\x23\x7a\x5e\x6d\x47\x7a\x10\x26\xca\x65\x0e\x52\x15\x4a\xd7\x77\x51\xf5\x7c\x26\x7d\xe5\xfa\x0b\xa1\x9a\x22\x21\xd9\x43\xa9\x02\x7d\x9d\x94\xfc\x3a\x4d\xaa\x3f\xfd\xe5\xf9\xf3\xeb\xeb\x21\xc2\xf0\x85\xe0\x45\xee\x7e\xc3\x73\xfd\x27\x1c\xfe\xad\xb7\x33\x64\xe2\x6a\x45\xac\x9c\xab\x65\x7e\xa2\x85\x7e\x82\xd3\x12\xc6\x51\xe2\xba\xe7\xf6\x27\x1d\x53\xe9\x39\x9f\xb3\x05\xb6\xe3\x9f\x3a\x30\xcd\x65\xbd\x82\x2f\x2e\xfb\x18\x7c\xe4\x2d\x3c\x1e\x75\xbc\xcd\xf2\x87\xff\xfe\x41\x61\x98\xc3\x96\xbd\xff\x23\xe0\x14\x26\x18\x49\x23\xdb\x9f\x96\x90\x75\x0c\x42\xc2\x53\x24\xaa\x34\xa1\x13\x56\x2f\x98\x50\x24\x98\x66\x4d\xc8\x8f\x1e\x11\x20\x1c\x61\xae\x2b\xec\x34\x82\xc2\xfe\xcd\xab\x2c\x2c\x96\xf6\xc9\x89\x84\xd5\x09\xb2\x8b\xff\x8b\x6b\xe5\xdb\x99\x09\x9a\x3e\x78\xf1\x48\x0b\xc8\x71\x75\x3a\xd6\x12\x62\x28\x22\xca\x4f\x08\x73\x01\x7f\xa1\xce\x02\x34\xaa\xd6\x47\xdb\x0a\x32\x8c\x4e\xbd\x3a\x81\xbc\xc3\x0d\x25\xb0\x69\x02\xe9\x69\xfd\x3e\x27\x8a\xed\x05\x7d\x0e\x26\x9b\x31\xbf\x8d\xad\xc1\x0e\x94\xe1\x07\x0c\xff\x4d\xd2\x8e\x61\x5d\xc3\x24\xfe\xfe\xdf\xff\xb8\x1e\x82\x50\x83\xa1\x9f\x4c\xd1\xf6\x93\xe5\xab\xd4\x9c\x15\x9e\x02\x24\x64\xf8\x98\x82\x47\x9b\x3c\x90\x67\x58\x32\xe7\xec\x4b\xd7\x56\x71\xc0\x27\xfe\x88\x97\x45\x88\x7f\xeb\x0e\x38\x6d\x8f\x63\x80\x50\x9b\x04\x3c\x96\x01\x6b\xe9\x9a\xc6\xd9\xf3\x85\x05\xab\xd7\x2f\x9f\xbe\x90\x1d\x38\xd4\xe4\x3d\x67\xf8\xd6\xc7\x78\xab\x94\x38\xd7\xcf\x60\xc2\x42\x0a\xad\x00\xc1\xe1\x1c\x3b\x01\x0f\x80\x73\x2c\x6e\x5f\xba\x98\x97\xeb\x9a\x06\x39\x1d\xe0\x27\x41\x42\x86\x86\x00\x69\x10\xe4\x0f\x1b\x2e\x53\xa8\x0e\x3d\x61\xcf\x85\xe5\x16\xf0\x0e\xcc\x97\x38\x70\xe2\x8e\xe3\x13\x94\x88\x32\x3f\x46\xe8\x2c\x6b\x8d\x70\x91\x97\x83\x78\x0b\xad\x4f\x39\x8f\x27\xec\x40\x75\xeb\x18\x7c\xdb\xae\x27\xa2\x3c\x19\x97\x89\x14\x48\x26\x03\x65\x81\x7d\x26\xb6\x9e\xc5\xad\x5a\x9f\x23\x14\x1d\xc3\xb3\x1d\xa1\x73\x60\x06\x46\xdd\xd8\x97\x21\x9a\x07\x44\x63\x73\xb5\x5f\x1b\x67\x04\x51\xb8\x28\x1d\x02\x5a\xee\xc6\xb6\x9c\xba\x7e\x39\xab\xad\x10\xc0\xaf\xb5\xf6\xae\x96\x24\x6c\x88\x0b\x45\x56\x6f\x16\x7d\xc0\xb4\xb8\x2c\x22\x42\xbf\x9c\xbd\x69\xcf\x00\x80\xea\x1f\xd8\xb1\x02\xe8\x13\xe3\x15\x6f\x36\x9e\xd9\x29\xb4\xd2\x9d\x9f\xe6\x3a\x04\x09\x47\xac\x21\x44\x24\x9a\x4b\x49\xe4\x7e\xc2\x82\xbc\xf8\x4e\x91\x27\x55\xff\xe2\x3c\x36\x7c\x43\xff\x5a\xc0\xfb\x5d\x93\x31\xe1\x48\x47\xf5\xcf\x29\x7a\x16\x7f\xf4\x65\xeb\x3c\x57\xd2\x35\x26\x5f\xc4\x61\xed\x81\x76\xe8\x1f\x2e\xfc\x5b\x07\x80\x7a\xca\x7b\x3e\xd3\x89\x0f\xd4\xa4\x56\x39\x01\x6a\xd7\x09\x20\xa2\xa1\x38\x36\xdf\x4e\x93\x3d\x2b\x25\x5d\x83\x5a\x1b\x01\x59\xf0\x75\xb3\xdd\x0e\xfa\x96\x42\x6d\x1f\x35\x2d\x61\x81\x10\x82\xdf\x0f\x94\xc4\x8b\xb1\xe6\xfe\x89\x13\xfa\x3b\x0a\x22\x8c\xf6\x3a\x5d\x22\x0c\x70\x6b\xbf\x84\xa1\xe7\x4d\x29\xf8\x97\xf1\xfc\x2f\x14\xc6\xb8\x9d\x13\xc6\xb0\xb9\x0b\xa8\x9f\xc4\x79\xb8\xe8\xf2\xbf\x51\x7c\x03\x7b\x4a\x56\x65\x6c\x5e\x8e\x0c\xe9\xc4\xa6\x2f\xd7\x1e\x0c\x97\x95\x20\xb5\x2a\x2e\x8b\x0a\x00\xe3\x2f\xdf\x05\x06\xb2\xfd\xfc\x16\xab\x09\xc2\x84\xf7\x6a\xcf\x13\xf8\x54\x85\xd0\x34\x09\x15\x80\xa6\x90\xeb\x34\x13\xf4\x28\x86\x70\xe1\x29\x99\x97\xef\x98\xdc\xf2\xc2\x9b\x84\x4f\x25\x7f\x48\x8c\xac\x4d\xc3\xe4\x4f\xb0\x3d\x69\xc2\xeb\xfc\x19\x61\xe2\xfa\x5a\x11\xcd\x73\xa5\x0b\xc0\x86\xd8\x32\x5d\x40\x85\x12\x1d\x78\xc1\xf2\xcf\xc0\xca\x06\xea\x08\xbf\x48\x09\x2a\x0b\x9f\x80\x49\x53\xff\xb6\x52\xe6\x88\x4f\xea\x88\xd2\xed\xf8\xf0\xf1\x2a\x61\xb9\x56\x15\xd1\x36\x13\x19\x17\xb1\x40\x05\x44\x38\xf0\xc5\xc1\x10\x05\xab\xce\x82\x83\xb8\x91\xbe\xde\x80\xff\x76\x10\x4c\xc6\x27\x1e\xa7\x5b\x6b\x06\x38\xb9\x83\xf6\x9c\xeb\xc3\xfb\xa2\xad\xc0\x21\xce\xa5\xbf\x56\x68\xdb\x69\xce\x8a\x63\xd8\xad\x54\x4a\x02\xaf\x63\xc5\xbe\x94\x66\xeb\x8d\x76\x41\x62\x24\x92\x5e\x05\xd2\xeb\x0b\x4c\xd3\x02\x36\x91\x10\x2d\x8d\x58\x25\x92\x1b\x83\x80\xe9\x52\x1c\xc1\x06\x3c\x68\x7e\x15\x7c\x27\xb8\xdf\x54\x27\x56\x56\x99\xc4\xb1\x03\xad\xe2\xa6\x11\x68\x29\x82\x2f\xe5\x26\x40\xf7\xf0\xe3\x6d\x6a\x94\x44\x4d\x88\x20\xc1\x87\xe1\xcc\x5e\xa4\xe6\xa6\xeb\xc5\xcc\x0a\xcc\xf9\x2e\x3a\x0d\x05\x01\x3b\xf5\x60\x0b\x03\x1f\x98\xcf\xfb\x2e\x71\xf3\xde\x92\xec\xb2\x2e\x5c\x90\x25\x06\x85\x1e\xb1\x32\xfc\xa4\x34\xa1\x76\x80\x70\x78\x4b\xe4\x0f\x7f\x2d\xef\x79\x9a\xbc\x3f\x30\xfd\x39\x4d\x5e\x1e\x25\xdb\x97\xf9\xcf\x6a\x3d\xe9\xb9\x5d\x22\x7a\xe1\x0c\x8c\xc5\xd1\xad\xde\x38\x40\x1a\xf4\xec\x07\x31\xae\xae\x9f\x6d\x13\x78\xe6\xc4\x10\x5c\xeb\x90\x82\xb4\x39\xd1\x41\x60\x87\x4b\xd9\x9f\xc3\x29\xdd\x41\x6b\xb4\x2d\x01\xbc\xac\xa6\xaa\xd9\xbe\x44\xa6\x91\x91\x50\xec\x6b\x26\x7e\x05\x5a\x4f\xe9\xe4\x20\x58\x6d\xce\x8a\x25\x54\xc2\x53\x81\xb9\x57\x94\xf6\xad\x5a\xe8\xce\xa2\x0e\x8a\x58\xfc\xf0\xea\xa0\x94\xe8\xd5\xed\x17\x5d\xc0\x4e\x9c\x6a\xee\xe2\xdd\x62\x0d\x59\x15\x6a\x3c\xbb\x8a\x3e\xe6\xe1\x23\x24\x01\xe8\x35\x9c\xa6\xa2\xd1\x48\x02\x63\x97\xe3\xda\x07\x18\x99\x31\xbe\x31\xe3\x8d\x4a\x6e\xcd\x73\x06\x5d\xae\xd6\xfa\x40\x82\x2a\x24\xb6\x77\x3a\xba\x27\x1a\x53\x75\xbf\x33\x60\x72\xc0\x7b\x57\x65\x5f\xd3\xd3\xd2\xcb\xf5\x61\xd7\x1b\x62\xc5\x91\xdb\xf0\x90\xad\x3a\x9a\x6a\x6a\xb6\x45\xd6\xab\x5c\xb0\x6a\x66\xc5\x47\xaf\xdc\xb9\xa5\x17\xbd\x80\xf7\xcc\x97\x99\x7f\x85\x68\xd8\x7e\xa6\x30\xce\xe4\x8d\x6b\xea\xf5\x6a\xdc\x99\x1e\x28\x66\xd1\xe8\xea\x6c\x0d\x96\x32\xf9\x0e\xf0\x34\xa9\x9a\x7c\x07\xc5\x5a\xb1\x9c\x0a\xe5\x56\xf7\xc6\xa6\x99\x34\x8a\x10\x21\xde\x18\x64\x44\x1e\x8c\xba\xab\xca\x7f\x71\xa7\x69\xd1\x24\x8a\x94\xeb\x9a\x99\xad\x21\x9c\xf6\xb6\x21\x62\xeb\xe6\x98\xfe\xcc\x8b\x20\x48\xd3\x1c\x8c\x73\x79\x9d\xb9\x65\xc6\xf3\xeb\x99\xc5\xc8\xb2\xa9\xc2\x89\x85\x86\x58\x4b\xd2\x8a\x72\xc3\xf3\x63\xde\xe9\x01\x8d\xf2\x90\x97\x8b\x06\x9e\x16\x0c\x1b\xeb\x15\xec\xf7\x71\x7e\xed\xf4\xbb\x24\x43\xc9\x9b\xff\x9f\x05\x11\x03\xed\x6a\xbf\xf7\x78\xc6\x44\x11\xf4\xf7\xda\x86\x8b\xfa\xfe\x3f\x84\xff\xb7\x92\xc1\x96\x0e\x80\x9f\x41\xf6\x68\x6f\xc1\xc2\xb7\x55\xfa\x5f\x16\xe1\x89\xac\x77\xbc\xa7\x03\x60\xde\x21\xa3\x06\x8b\xc2\x35\x7f\x2c\xc1\x8e\xc1\x47\xed\x7a\xbd\x10\xaa\x6a\xf4\xf8\xb5\x7a\x17\x8f\xda\x7e\xdd\xcf\x26\xc2\xf4\xe1\xfb\x35\x87\xbe\x9e\x02\x77\xa6\x77\x32\x53\x2a\xd8\x78\x22\xed\xe7\x29\x95\xff\xc0\x93\x9c\x1d\xa0\xbe\xb2\x1f\x0a\xb3\xf3\x5c\xe0\xb9\x82\x4e\xdb\xf2\x50\xbf\xb6\xd4\x4e\x74\xb8\xa2\x1c\xc8\x37\x55\x8c\xd7\xeb\xdd\xb4\x7a\x8f\xa3\x20\xc7\xac\xac\xd1\x25\x22\xb2\x6f\x59\xbd\x43\xf7\x1b\x60\xe1\x31\x83\x58\x1b\xd3\x04\x81\x8a\x31\x4c\xbb\x16\x6a\x0d\xe8\xb6\x35\x10\xf3\x0c\x9c\x73\x3a\x9c\xb3\x96\xae\xbb\x61\x73\xce\xb6\xb9\x0f\x50\x4b\xad\x79\x05\x4d\x75\xdd\x3c\x48\xa7\xac\xf1\x22\x21\x82\xee\x70\x8d\xd8\x7a\xd9\x09\x11\x74\x21\x76\x8c\xbc\x84\x4a\x9c\x57\x23\x02\x73\xe8\x62\xbd\x0a\xab\x91\x19\x90\xf5\xd4\xc0\x86\x8a\x89\xc6\xaa\x94\x5b\xc1\x5b\xf3\xb5\xf0\xe1\x99\xbc\xc1\x7f\x09\x19\xac\x3d\x0a\x9c\x2b\x76\x21\xa4\x58\x77\xff\xb0\x3c\x39\xb9\xb1\xed\x86\xd0\xd6\xc6\x28\x11\xe6\x7c\x19\x08\x3c\xa4\x96\x12\x5b\x1b\x4b\xb5\x02\x45\x5c\x35\xeb\x2b\xdf\x7c\xa6\x34\xa8\x6e\xe8\x4d\x3c\x30\x0d\x30\xdc\xbb\x52\x14\x57\x3d\x0d\xc6\x18\x3d\xf4\x90\x50\x16\x9f\x80\x09\x12\x5f\xe0\x71\x61\xef\x83\x9b\xbb\x7b\x8f\x31\x9c\x39\xcb\x77\xae\xee\x1e\xc5\xf5\x98\xbc\x88\xdc\x90\xaf\x5d\xb4\x31\xa3\x2a\x62\x00\x05\xf4\xf7\x2f\x27\xa2\x35\x9b\x23\x27\x3e\xc4\x4e\x8b\xbd\x35\xc6\xed\x22\xc9\x31\xb4\x54\xd5\x0a\x53\xd3\x5f\xa0\x39\xdb\xc7\x5c\xaa\x03\x7b\x90\xd4\xf2\xb5\xa8\xf8\x7d\x9e\x7c\xe8\xa7\x17\x30\xf2\xa1\x53\xae\x12\x72\xdd\xa3\x67\x5f\x97\x0e\x32\x33\x0d\xc0\xa3\x99\x10\x21\x4e\x93\x0f\xb2\x64\xd2\xbb\xe2\x46\xfd\x0b\x61\xfe\x9f\xb7\x05\x37\xb5\xf8\x15\xd0\x36\xc1\x53\xdb\x9f\x44\xbd\xfd\x14\xfc\xbf\x42\x97\xd7\x3b\xa6\x53\xb7\xf9\x52\xf6\x64\xce\xf2\x1d\x5f\x99\xa1\x35\x0b\x9a\x58\x88\x89\xff\x85\x79\xf8\x3d\x3e\x3b\xaa\xcc\xd0\x2e\x42\x33\x0d\xbf\x05\x45\x6b\x2c\x87\x5e\x6c\x17\xeb\x9c\xba\xde\x39\x7e\x76\xd5\x43\x4c\x38\x39\xd6\xfe\x40\x77\xc0\x59\x08\x97\xd9\x76\xc8\xe4\x4c\x6b\x5b\x88\x4a\x5f\x4d\x98\xae\xcb\x0d\xcb\xa3\xd8\xf4\x2c\x74\x96\x48\x43\xe2\x1b\x2b\x48\x99\x7a\xae\x77\x2b\xca\x59\xe2\x30\x9b\x87\xf7\xff\xd2\x3e\x05\xf7\x42\xfa\x11\x22\x0f\xe3\x21\x39\xbc\xbe\x5d\x1d\x19\xc5\x6c\x59\xa7\x58\x77\xe6\x62\xb3\x24\x6a\xbc\xef\x5d\xd2\x80\x52\xf8\x8c\x35\x3c\xb1\xe5\x60\x19\x2e\x5b\xc0\xf3\x3b\x5f\x72\x76\xb0\x55\x89\xe3\x16\x59\x41\xa9\x7b\xb9\x6e\xb7\xdb\xc1\x12\x62\x69\xf2\x3d\x2f\x7c\x2b\x62\x80\x47\x61\x54\x1f\xdb\xf2\x64\xcf\x8b\xb2\x69\xc3\xfe\x45\x65\xf4\xdf\x7d\xe1\x7f\x3f\x5f\x18\x92\xf6\x8f\xe9\x08\xf7\x37\x68\x7c\x57\x85\xdf\x80\x2a\x0c\xc6\x49\x7b\xbd\xf0\x16\xcc\x96\x1e\xe3\x79\x31\xaf\x6c\xbd\x05\xea\xf4\x0a\xeb\x9e\xc3\x30\x84\x53\x87\x6b\x60\x0c\xff\xbe\xab\x31\x7c\x30\x1f\x4d\x47\x5f\x2c\x3d\x30\x47\x99\x9a\x2b\xee\x12\x06\x6f\xec\xd5\x06\x2a\xbe\x5a\x8d\x5d\xf1\x00\x1f\x85\xd5\x4f\x2a\xb7\xea\xf1\x55\xb6\x55\x50\xaf\xcb\xaa\xfe\xc4\x44\x73\x16\x28\x0a\xf4\x42\x3c\x5a\x8e\xdb\x0e\x15\x87\x19\x3c\x31\x9a\x9a\x7d\x17\x27\x4f\x8d\x5e\xc5\x33\x07\xcd\xd3\x16\x6a\xd4\x8c\x7b\x89\xe0\xbd\x73\xeb\x75\x87\x36\xe3\x83\x66\x87\x03\xd7\x36\x23\xd8\x49\xda\x02\x6e\x27\x7c\x25\x93\x18\x7b\xf8\xf9\xfd\x2f\x6f\xda\xba\xc1\xc8\x9e\xd6\xab\xe1\x67\xb0\x74\xd7\xfd\x3b\xf7\xa6\x11\x62\x70\xe7\x66\xf0\x19\x7e\x7c\xfd\x7a\xf5\xe9\xe6\xf5\xc7\x57\xa3\x90\x7b\xc1\xcf\x06\xd7\xc4\x8d\x84\xd6\x04\x3d\xc2\x1a\xbc\xc0\x66\xcf\xb5\x6d\x47\xf0\xb3\x46\xc3\xbb\x11\x22\x86\x5e\xcc\xe4\x1d\xbd\x07\x4a\x77\x1a\x89\x11\x9b\x4c\x26\xa3\x0b\x17\x7f\x1f\x7e\x76\x67\x5e\x7e\x87\xcf\x5e\x25\x7e\x12\x7f\x49\xde\xb8\xaf\x0e\xac\x2b\xd5\x05\x9e\x71\x1d\x10\x01\x72\xe8\x3a\x5c\x1a\x5c\xf6\xb4\xeb\xf1\x51\x02\xb2\x07\x2f\x2c\x26\xec\x45\x6e\x07\xae\xdd\x5d\x1c\x0d\x74\xb2\xbc\x40\xd3\x16\xde\x9b\x22\x24\x28\xd2\xce\x3b\xd4\xcc\x4c\x12\x1f\x29\x83\xee\xbd\xc1\x31\x25\xb7\x94\x27\x17\x4c\x6e\x1b\xb6\xe5\x55\x9a\xd8\x8f\x67\x72\x5f\x6e\x77\x80\xa1\xe2\x89\xfc\xd1\x93\x61\x75\x79\xcf\x5b\x47\x08\x4b\x9c\x08\x37\x20\x4d\x4a\x99\x49\x9a\x93\xdc\xfa\xd7\x63\xf5\xd3\xcf\xef\xdd\x74\xcc\x49\x73\x2f\x22\x54\x53\x99\x49\xdc\x5c\x84\x6a\xb3\x61\x12\x30\xfc\x80\x3c\x3d\x3a\xba\x4c\x73\x0b\xa4\x0c\x32\x7d\x0b\x01\x9b\x4c\xba\x52\x7b\xd8\xd8\x88\x06\x09\x6b\x22\x71\x48\xd3\xf2\xc4\x6e\x86\xbd\x13\x34\xb6\xfe\x53\x7f\xb6\x0e\x30\x17\x6e\x75\xdf\x7a\xcb\x8c\x63\xeb\xc5\xd8\x4c\x1b\x9b\x05\x82\x63\xa8\xff\x0a\xfa\x2b\xfa\x47\x63\xe7\x85\xbf\x19\x4c\x2e\xab\x66\x2d\x16\x0c\x09\x7f\x3f\x3a\x28\x14\xc9\xe3\x83\x9a\x11\x23\x7d\xd7\xba\x5a\xe6\x98\x8e\x7d\x76\xad\xd4\xc0\xbe\x5c\x30\xda\x18\x0d\x8a\x1e\x98\x5a\x8c\x26\xaf\x4f\x39\x2f\x33\xca\xb6\xdb\x4b\x64\xa5\xcf\xd8\x80\x44\x59\x9d\x34\x1c\x6f\x3f\xcd\x1e\x91\xb3\x10\x48\xd9\x2d\x92\xb0\xa4\xe7\x22\x01\x3b\x20\x26\x29\xc6\x45\x19\x0e\x5e\xa2\x78\x91\x40\x38\xca\xa8\x07\x29\x75\x87\x28\xf5\x3b\x97\xc2\x20\xf3\x46\x57\x46\x5c\x92\xbc\x23\xa9\xad\x74\xc2\x32\x69\x71\xb5\xac\x38\xbe\xb1\x48\x27\xda\xfd\x15\x4b\xe1\x0f\x88\x4a\x03\x16\x6b\x9d\x28\xc9\xad\x34\xcc\x24\x80\x97\x4b\x88\xc6\xae\x2b\x80\x15\x24\x88\x6e\xfa\x87\x80\x70\x8e\x49\x64\x27\x9d\x96\x79\x2d\x33\x20\xd2\xf3\x3f\x98\xff\xfe\xf7\x87\xff\x0b\x00\x00\xff\xff\xe4\xe3\x3b\xbd\xfc\xbf\x03\x00") +var _adminSwaggerJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xbd\x79\x73\x23\xb9\x95\x2f\xfa\xff\x7c\x0a\xdc\xf2\x8d\xe8\x6e\x8f\x96\xee\xf6\x8c\xc3\xa3\x89\x1b\xef\xb1\x24\x56\x35\x6f\xab\x24\x59\x4b\xd7\xf4\x1b\x4e\xd0\x60\x26\x48\xc2\x4a\x02\x74\x02\x29\x15\xed\xf0\x77\x7f\x81\x73\x00\x24\x72\x23\x33\x49\x6a\xab\xe6\x4c\x84\xbb\xc4\xcc\xc4\x7a\x70\x70\xd6\xdf\xf9\xc7\xbf\x10\xf2\x4e\x3d\xd2\xe9\x94\xa5\xef\x4e\xc8\xbb\x1f\x8f\xbe\x7f\x77\x60\x7e\xe3\x62\x22\xdf\x9d\x10\xf3\x9c\x90\x77\x9a\xeb\x84\x99\xe7\x93\x64\xa9\x19\x8f\x93\x63\xc5\xd2\x07\x1e\xb1\x63\x1a\xcf\xb9\x38\x5a\xa4\x52\x4b\xf8\x90\x90\x77\x0f\x2c\x55\x5c\x0a\xf3\xba\xfd\x27\x11\x52\x13\xc5\xf4\xbb\x7f\x21\xe4\x9f\xd0\xbc\x8a\x66\x6c\xce\xd4\xbb\x13\xf2\xdf\xf8\xd1\x4c\xeb\x85\x6b\xc0\xfc\x5b\x99\x77\xff\x07\xde\x8d\xa4\x50\x59\xe1\x65\xba\x58\x24\x3c\xa2\x9a\x4b\x71\xfc\x57\x25\x45\xfe\xee\x22\x95\x71\x16\xb5\x7c\x97\xea\x99\xca\xe7\x78\x4c\x17\xfc\xf8\xe1\x87\x63\x1a\x69\xfe\xc0\x46\x09\xcd\x44\x34\x1b\x2d\x12\x2a\xd4\xf1\x3f\x78\x6c\xe6\xf8\x57\x16\xe9\x7f\xc2\x1f\xb1\x9c\x53\x2e\xf0\xdf\x82\xce\xd9\x3f\x7d\x3b\x84\xbc\x9b\x32\x1d\xfc\x69\x66\x9b\xcd\xe7\x34\x5d\x9a\x15\xf9\xc0\x74\x34\x23\x7a\xc6\x08\xf6\x43\xdc\x12\xc9\x09\xa1\xe4\x24\x65\x93\x93\xbf\xa4\x6c\x32\x72\x0b\x7d\x84\x0b\x7c\x0e\xa3\xb9\x4a\xa8\xf8\xcb\x91\x5d\x26\x68\x39\x66\x2a\x4a\xf9\x42\xdb\xf5\xbe\x66\x3a\xe5\xec\x81\x85\x1d\xe0\x44\x88\x99\x88\xef\x4c\x2d\x58\xc4\x27\x9c\xc5\x64\xbc\x24\x5c\x2c\x32\x4d\x52\xf6\xb7\x8c\x29\x4d\x26\x3c\xd1\x2c\x55\x85\x5e\xe4\x82\xa5\xb0\x82\x83\xd8\xf4\xf2\x91\xe9\x1e\xb4\x9d\x8f\x2a\x7c\x3b\x65\x6a\x21\x85\x62\xaa\xb0\x08\x84\xbc\xfb\xf1\xfb\xef\x4b\x3f\x55\x67\xd0\x23\x2a\x8b\x22\xa6\xd4\x24\x4b\x88\x6b\x29\x1c\x0c\x2e\xa8\x21\x1f\x5a\x69\x8c\x90\x77\xff\x3b\x65\x13\xd3\xce\xef\x8e\x63\x36\xe1\x82\x9b\x76\x15\x52\x69\x30\xda\xc2\x57\xff\xfc\x97\xba\x7f\xff\x33\x98\xd1\x82\xa6\x74\xce\xcc\xb2\x78\xba\xc2\xff\x2b\xcd\xc5\x50\x82\xe9\x3c\xa7\x96\xf2\xc0\x4b\xb3\xbd\xa0\x73\x66\x76\xde\x6c\x97\xfd\x02\xfe\x9d\x32\x25\xb3\x34\x62\x64\xcc\x12\x29\xa6\x8a\x68\x59\x59\x03\x0e\x2d\x18\x22\x2e\x3f\x31\x5b\xc9\x53\x66\xf6\x4a\xa7\x19\x2b\x3d\xd5\xcb\x05\x0c\x52\xe9\x94\x8b\x69\xb8\x14\xff\x3c\x68\x35\x35\xa4\xfd\x0e\x33\xc3\x0f\x1a\x27\x36\x14\x3d\xf7\x4a\x44\x05\x19\x33\x62\x4e\x3c\x8f\x59\xca\x62\x42\x15\xa1\x44\x65\x63\xc5\x34\x79\xe4\x7a\xc6\x85\xf9\x1b\xc9\x37\x72\x6b\xf6\x7a\xd6\x06\xfe\xb9\x7a\x65\xee\x14\x4b\xcd\xc0\x1f\x78\xcc\x62\xf2\x40\x93\x8c\x91\x89\x4c\x0b\xcb\x73\x34\x14\xb7\x33\xb3\x0e\xf3\x31\x17\x70\xf2\xcc\x5a\x3a\x0a\xf9\x57\xb7\x5c\xff\x4a\x4c\x7f\x24\x13\xfc\x6f\x19\x4b\x96\x84\xc7\x4c\x68\x73\xae\x55\xb9\xb5\x7f\x95\xd0\x3f\x4d\xc8\x21\x31\xeb\xcc\x52\x0d\xeb\x2d\x85\x66\x5f\xb4\x22\x87\x24\xe1\xf7\x8c\x7c\x73\xce\x95\x26\xbd\xab\xc1\x37\x07\xe4\x9b\xf3\x9c\x71\xa8\x6f\x9e\x61\x85\xfd\xbf\xff\x27\x38\x7a\x9a\x4e\xcb\x87\xee\x5d\xcf\x9c\xe6\x1b\xbc\x80\xf2\x16\xfe\xe7\x5f\xc2\x76\xec\x7e\xad\xe6\xea\x39\x4b\xb7\xfc\xbc\x2d\x17\x87\x65\x2a\x32\x70\x65\x76\x68\x5b\xfe\x5d\xb9\x1d\x6a\x98\xb7\xda\x92\x7b\x9b\xb1\x97\xd9\xb7\x7a\x5b\xfc\xdb\x4c\xe1\xa9\x79\xf8\x36\x0c\x9c\x6a\x38\x59\x94\x0b\x3c\x88\xfe\x5c\xa6\xca\x9c\x45\x77\x42\x5e\x09\xdb\xda\x86\x9f\x07\x33\x0b\x58\xba\xe3\xd4\xc1\xaa\xbc\xc2\x79\x27\x7c\xce\xd7\xed\xef\x40\xc4\x46\x78\xb4\x0c\x55\x64\xf3\x31\x4b\xcd\x32\x38\xd6\x0a\xb3\x1d\x1b\x56\xab\xb3\x54\xb0\xb8\xc5\x34\xff\x96\xb1\x74\xb9\x62\x9e\x13\x9a\xa8\xa6\x89\x72\xa1\x99\x91\xd4\x4b\x8f\x27\x32\x9d\x53\x6d\x5f\xf8\xe3\xbf\x75\x5d\x08\x2d\xef\xd9\xba\xfd\x1f\xe0\x6e\x46\x54\x01\x19\xcc\xb3\x44\xf3\x45\xc2\xc8\x82\x4e\x99\xb2\x2b\x92\x25\x5a\x1d\xc0\x6b\x46\x3b\x60\xe9\xa1\xbf\xe5\xa0\x07\x77\xbb\x67\x0a\x7e\x21\x13\xcf\xec\x04\xfb\xa2\xa1\xa5\xa1\x80\xfb\x1d\x96\x28\xbc\xb5\x9e\x60\x29\x37\xa3\x19\x25\x53\x3d\x1a\x2f\x8f\xee\x59\xa5\xdf\x46\xca\xa1\x82\x50\xad\x53\x3e\xce\x34\x33\xf3\x36\x6d\xb8\xfb\x19\xd8\x23\x0a\x01\x6d\x58\xc3\xcb\x4d\x38\xe6\x29\x8b\x60\x6e\x5d\x0e\x8c\xff\xca\xcc\xdb\x68\x62\x4b\x9c\xfd\x3d\x5b\x82\xcc\x53\xb3\x02\x7e\xcb\x87\x62\x28\xc8\x21\x39\xeb\xdf\x9c\xf6\x2f\xce\x06\x17\x1f\x4f\xc8\xfb\x25\x89\xd9\x84\x66\x89\x3e\x20\x13\xce\x92\x58\x11\x9a\x32\x68\x92\xc5\x46\xae\x31\x83\x61\x22\xe6\x62\x4a\x64\x1a\xb3\xf4\xe9\x96\xb1\xf4\x94\x89\x6c\x5e\xba\x57\xe0\xf7\x7c\xf4\xa5\x2f\x8c\x18\xe3\x1f\x15\x9e\xfc\x4f\x65\x81\x61\xc6\xa6\xef\xa0\xb5\x67\x13\x9c\xa2\x19\x4f\xe2\x94\x89\x63\x4d\xd5\xfd\x88\x7d\x61\x51\x86\x77\xf2\x3f\x8a\x3f\x8c\x8c\xf4\x2b\x63\x56\xfc\xa5\xf0\x47\x2e\x6e\x75\xfe\xd4\xeb\xdb\x9d\xbf\x04\xed\xbc\xdd\x77\xf0\x0b\x8f\x6b\xdf\x86\x5f\xd6\xcc\xc1\xbd\xb3\x62\xb0\xee\x95\xc6\x51\xb9\x17\xac\xb0\x57\xfb\x4e\xca\x74\xba\x1c\x51\xad\xd9\x7c\xa1\x3b\x5a\x1e\x28\x49\x8c\xec\xba\x4a\x56\xbd\x90\x31\xeb\xbb\xfe\xfe\x62\x45\x50\x14\x36\x91\x6b\x4d\x58\xca\x44\xc4\x9a\x5b\xb8\xa5\xea\x3e\x6f\x61\xbd\xc0\x0b\x34\x46\xcc\xf2\x93\x9c\xc0\x2a\x1d\xe7\x62\xaf\x59\x92\xfc\xcd\x75\xc2\x6e\x61\x3e\xea\x83\x4c\xcd\xf0\xde\x82\xc0\x5b\x18\xf8\x73\xc8\xbc\x9b\x9e\xe8\xaf\xce\xca\xb1\x21\x7f\xda\xdb\x44\xb6\x5f\xc9\xb6\x16\x14\x99\x12\xb5\x54\x9a\xcd\xd7\xda\x52\xde\xce\x42\xd8\x0b\xe8\xb5\x0e\xb8\x74\x07\xfe\x06\x4e\x7d\xf1\x46\xdf\x1f\xef\x0e\x4b\xb6\x2b\x4b\xe8\x6b\x9f\xa7\xf3\x76\xad\x9e\xea\x8d\xdb\xbe\xc0\xdd\xf3\x26\xa6\x59\x90\x35\x77\x3d\xc8\x27\x32\x67\x34\xee\x95\x5b\xed\x11\x0c\x60\x8d\x22\x5b\xb4\xa5\xfb\xf3\x67\x3e\x0d\x2d\x40\x68\xee\xd3\x33\xae\x9c\x31\x8c\xa5\x24\x92\x29\x8a\x82\xb1\x3d\xee\xa8\xca\xf6\x6e\x7b\x37\xfd\xdb\x13\xd2\x23\x31\xd5\xd4\x9c\xef\x94\x2d\x52\xa6\x98\xd0\x60\x26\x30\x9f\xeb\x25\x99\xcb\x98\x25\xa8\xd0\x7e\x30\x82\x35\x39\xa3\x9a\x9e\x52\x4d\x13\x39\x3d\x22\x3d\xf8\xd3\x7c\xcc\x15\xa1\x89\x92\x84\x3a\xaa\x62\xb1\x6b\x82\x8a\xd8\x71\x16\x4a\x22\x39\x5f\xf0\xc4\xbb\x11\xbc\xed\x86\x8b\x98\x3f\xf0\x38\xa3\x09\x91\x63\xc3\x54\x8c\x02\xde\x7f\x60\x42\x67\x34\x49\x96\x84\x26\x09\xb1\xdd\xba\x17\x88\x9a\xc9\x2c\x89\x4d\xbb\x6e\x94\x8a\xcf\x79\x42\x53\xa3\xe1\xe3\x68\x2f\x6d\x5b\xe4\x76\xc6\xfc\x58\x61\x5c\x66\x31\xe7\xf4\x9e\x29\xc2\x35\x59\x48\xa5\xf8\x38\xc9\x8f\xfc\xdd\x80\xc0\xb8\x4f\xcf\x07\x60\x2e\x88\x34\x91\xc8\x42\x5d\xe7\xd6\x3c\xe4\x7a\x9c\x53\x21\x18\x74\x2c\xf5\x8c\xa5\xb6\x7b\xfb\xf2\x4b\x6b\xfe\x77\x17\x37\x57\xfd\xd3\xc1\x87\x41\xff\xac\xaa\xfa\xdf\xf6\x6e\x7e\xae\xfe\xfa\xf9\xf2\xfa\xe7\x0f\xe7\x97\x9f\xab\x4f\xce\x7b\x77\x17\xa7\x3f\x8d\xae\xce\x7b\x17\xd5\x87\x96\xac\x5a\x5b\x11\xc2\x91\x75\x3c\x5a\x7b\x93\xe9\x53\x99\x4c\x0f\xbe\x5e\x9b\xa9\xf5\x49\xb5\xb7\x97\x7a\x13\x85\xfd\x92\x2c\xa8\x52\x28\x18\xe1\x08\x8e\x86\xe2\x93\x4c\x0d\x03\x9b\x48\xc3\x23\x8c\xf0\xa4\xd3\x2c\xd2\x5c\x4c\xfd\x47\x27\x64\x98\x7d\xff\xfd\x1f\xa2\x73\x2e\xee\xe1\x5f\xec\x35\x2e\xce\xde\xa0\xbc\x37\x28\xff\xb6\x0c\xca\x46\xf4\x39\x0e\xed\xc8\xbb\x8d\xad\x32\xc2\x05\xb8\xc4\x8d\x28\x21\x33\x6d\xfe\x69\xba\x04\xf2\x58\x11\x61\xd5\xce\x5e\xe9\x03\xac\x1a\xfa\x48\xe5\x1c\x04\xb9\x2f\x5c\x01\x33\x7a\x94\xe9\xfd\x24\x91\x8f\xed\xac\x95\x1f\x99\xf6\xc3\x30\x82\xd3\x5b\x30\x52\x7e\xb6\x33\xf4\x03\xff\xc8\xb4\x19\xfb\xb5\xed\x65\x1f\x6b\xb5\x8f\xb5\x7a\xd9\x58\xab\x57\x65\x29\x7c\x7a\xd6\x5a\x34\x2b\x22\x7f\x6d\x70\xc3\x35\x7a\xd9\x1a\x9c\x68\x81\x8f\xec\x59\x78\x72\xd1\x13\xb5\x4b\xbe\x5c\xf4\x35\xad\xe1\xc9\x85\x61\xbc\x15\xbe\x5c\x18\xf4\xf3\xf3\xe4\xdf\x84\x9b\x68\xef\x05\xda\x70\xa1\xde\x24\xeb\x6e\x79\x2b\x3d\x9b\x0f\xe7\xe9\xaf\x92\x4a\xc8\x47\x97\x18\x8f\x0e\x41\x1d\xad\xa3\x38\xd6\x84\x6d\xd4\xc6\x69\xd4\x05\x66\x54\x23\x31\x6a\x43\x2f\xb6\x8b\xb5\xd8\xf4\xd6\x6b\x1f\x3d\xd1\xf5\xd6\x6b\x1f\x37\xf1\x91\xe9\xc2\x30\xde\xca\xad\x57\x18\xf4\xf3\xdf\x7a\xbf\xd1\x70\x89\x7d\x7c\xc4\x13\x2e\xdd\xd7\x7e\x57\xbe\xde\x08\x88\xdf\x40\xc8\xc3\x3e\xc6\xa1\xd3\x1a\x7d\x5d\x41\x0d\x5f\x6b\x14\xc3\xdb\x0c\x5b\xd8\xc7\x29\xec\xe3\x14\xf6\x71\x0a\x2d\xe2\x14\x9e\x54\xef\x65\x86\xac\x14\x18\x51\x43\xdd\xe6\xdd\x42\xaa\x66\x75\x2f\xf4\x5d\xd7\xa8\x75\xd0\x66\xd1\x98\x09\xd4\xfb\x17\x32\xa3\x8a\xc8\x28\xca\xd2\x92\x87\xb6\x7c\xc8\x4f\x53\x46\xb5\x39\x22\x45\xbb\x25\x81\x96\x49\xca\x22\x99\x82\x8f\x92\x92\xc5\x8c\x2a\x46\x74\x4a\x85\xe2\xeb\x94\x3c\x6c\x15\xc6\x65\xda\x79\x0b\xfa\x5d\x75\x11\x9f\x4b\xbb\x1b\xcb\xb8\x72\x20\xf1\xac\xd6\x3d\x59\x7d\x91\xec\x6c\xea\x90\xf4\xdb\x66\xe6\x4f\x78\x54\xcc\xa5\xb5\xe3\xa3\x52\xd0\xe2\x37\x3d\x2a\x45\x63\xc7\x4e\x8e\x0a\x8c\xeb\xad\x1c\x95\xea\x22\xfe\x66\x8e\x4a\xdd\xd4\x5f\xc3\x51\x71\xd1\x00\x3b\x3e\x2e\x15\x17\xfc\xa6\x47\xa6\x1a\xad\xb0\x93\x63\xe3\xc7\xf7\x56\x8e\x4e\xfd\x82\xfe\x66\x8e\x4f\xd3\xf4\x5f\xf6\x08\x79\x37\x44\xeb\xc3\x73\x9b\xf2\xe9\x94\xa5\xa8\x18\x45\x86\x14\xd7\x03\x2d\xe5\x86\xf7\xcd\x0e\xcc\xfa\xd3\xe0\x7b\x78\x0b\x27\xc1\x0f\x16\xc7\xfe\x9b\x39\x02\x95\x79\xbf\x12\xda\x3f\x4e\x19\xa6\xc5\xee\xe0\x10\x08\x6b\x08\x88\x68\xb2\xe5\x79\xb8\xb6\x83\xea\x7c\x22\xdc\x87\xfb\x33\xf1\x96\xce\x84\xdb\xb5\xd7\x73\x2a\x9a\x62\x48\x77\x9e\x1b\xdf\x25\xab\x7d\x45\x10\xa8\x22\x73\xaa\xa3\x99\x79\x88\xae\xdb\x96\xb8\x4d\x79\x1a\xfb\x9b\x3a\x28\xcf\x91\xbb\xfe\x75\x3b\x69\xf6\xce\x99\xdf\x20\xe6\xde\xab\xc9\xd9\xd8\xa7\x7d\x3d\x51\xda\x17\x57\xfb\xb4\xaf\x7d\xda\x57\xdb\x05\xda\xa7\x7d\xed\xd3\xbe\xde\x6c\xda\xd7\x93\x66\x7c\xed\x2e\xaf\x6b\x37\xc9\x5b\x6f\x4a\x3a\xdf\x4b\xe6\x7b\xc9\x7c\x9f\xa1\xe5\xa7\xb6\x2b\x2e\xe8\xbe\x7e\x17\xb3\x84\x69\xd6\x6c\xa0\x63\xe9\xdc\x28\x1c\x78\xc3\x73\x61\x44\xc1\x69\xca\x94\xda\x96\xa7\xf9\x86\x43\x40\xe9\x1a\x17\x4f\x8e\xab\xe7\xc9\x12\xec\x3a\xab\x98\x9d\x6f\xfb\x6d\xb2\x3c\x3f\xfc\x7d\x96\xea\x9e\x07\xee\x79\xe0\x26\x53\x7b\x3d\xe6\xe8\xe0\x30\xbf\xa8\x3d\x3a\xa8\x2d\x30\xe2\xf1\x36\xe5\x05\xda\x43\xb5\xd2\x39\x8b\xfb\x10\x4a\xe9\xe3\x40\xd3\xbf\x98\x4f\xc2\xc2\x01\x2e\x68\xb2\xbd\xc5\x3a\xfc\x3a\x5f\xf8\x02\xda\xfb\x66\x06\xec\x1c\xc3\x7f\x10\xbf\x09\x1b\x76\xed\x0a\x7f\x25\xf5\x07\x5e\x07\x23\x79\xf6\xf2\x03\xaf\x63\xda\x7b\x9b\xea\xbe\xfa\xc0\xde\x6a\xd8\x72\xc2\x7b\xab\xe1\xeb\xb5\x1a\xbe\x94\x2b\xe0\x99\x8f\xe7\x73\x89\x8e\xed\xc3\xdb\x5c\x14\x9a\x88\x49\xb6\x48\x24\x8d\x5b\x16\x10\x0c\x24\xba\x16\x31\x6e\x22\x26\x29\x9b\x72\xa5\x59\x6a\xf6\xa5\x56\x30\x5c\x1f\xf4\xf6\x56\x2b\x05\xb6\x0e\xf1\x09\xbb\x7d\xf7\x6f\x2d\x86\x7f\x6d\xef\x6c\xe0\x44\x63\x1a\xfb\x12\x5e\x20\xbe\xcd\xe9\x92\xcc\xe8\x03\x23\x13\xca\x13\x54\x05\x79\x4c\xcb\x6b\x5d\x9a\xe1\xaa\x01\xfd\x47\xb7\x01\xd1\xe2\x70\x7c\xcd\x07\x55\x0c\x1b\xb3\x59\x5c\xf0\xce\xcc\x28\xe6\x49\xca\x68\xbc\x24\x63\xc6\x84\x27\x9b\x9a\xfb\xa4\x61\xcc\x3b\x11\x9c\x5f\x5c\x31\xad\x52\xcf\x6b\x51\x4b\x9f\x31\x50\xaa\x9e\xdf\x6c\xaf\x83\x6e\xaf\x78\xaa\x1f\xdf\x16\x0b\xda\x07\x4f\xed\xcd\x93\x2f\x6f\x9e\xdc\x07\x4f\xed\x15\xfd\x57\xa6\xe8\xef\x83\xa7\xf6\xc1\x53\x7b\x33\xc8\xea\x69\xef\xcd\x20\x5f\x45\xf0\x54\x2b\x19\x7e\xc3\xf0\xa9\x37\x2e\xcd\xef\x85\x79\xf7\xde\x5e\x98\xdf\x0b\xf3\x5f\xa9\x30\xff\x3a\x56\x78\x2f\xc9\xef\x25\xf9\xbd\x24\xbf\x97\xe4\xf7\x92\xfc\xce\x97\x71\x2f\xc9\xd7\x4b\xf2\xf0\x2f\x07\x48\xdd\x55\xac\xef\x28\xce\x77\xce\x8f\xe8\xee\x0c\xfc\xc8\xf4\x5b\xf5\x04\xee\xa5\xf6\xbd\xd4\xfe\xba\xa5\xf6\x57\x33\xa1\xaf\x0f\x4c\x76\x0f\xc7\xba\x87\x63\xdd\xc3\xb1\x3e\x2d\x1c\xab\xfb\xfa\xdd\x22\x6b\x16\x6d\xee\x16\xb1\x97\x86\x95\xa6\x3a\x53\x88\xe7\x95\xc7\x9a\xb4\x92\x7a\x56\x89\x3a\xd8\x45\xb9\x87\xf5\x62\x0f\xe9\x69\x32\x97\x46\x75\x13\xac\xf0\x8e\xe3\x6f\x18\x57\x33\xe5\x0f\x4c\x10\x97\x1b\x70\x60\x6f\xb1\x03\xb0\xa5\xfc\xd3\x1f\x3e\x4c\xd6\xa2\x9a\x50\xa2\xf9\x9c\x1d\x91\xc1\x04\x99\x45\x64\x4e\x97\x62\x5a\x95\x82\xb1\x90\xf2\xe1\x23\x11\xe7\x63\x75\x7d\xf3\x3c\x36\x07\x5f\x3b\x70\xbc\x36\x4b\x34\x72\x5e\xd7\xf8\x23\x4f\x12\x33\x06\xcb\xa0\xe0\xa0\xcd\x59\x9a\xb8\x2f\x0b\xdd\xba\x97\xe7\x34\x36\x8c\x21\x18\x42\x9e\x55\x16\xbe\x0f\x57\x3a\x57\x3e\xba\xa8\xf0\x3d\x7e\x7d\x44\xac\xe9\x00\xa1\x07\x5b\x0d\x63\x06\xc1\x6f\x46\xc2\x8b\xb3\x84\x11\xaa\x94\x8c\x38\x05\x2d\x06\x45\x00\xc2\xb5\x33\x34\xb8\x97\x5c\xd7\x31\x57\x74\x9c\xb0\xd8\xae\x31\xcb\x83\x9d\x56\x8e\x9c\x2b\x32\x66\x66\x89\x0d\x9b\x2a\xae\xfe\x0c\x05\x90\x9a\xd1\x04\x43\x61\xd5\x91\x30\x81\x03\x59\x21\x40\x23\x71\xbe\x55\x19\x1a\x47\xbf\xcf\xb9\xdb\x4b\xd4\x7b\x89\xba\xd3\x84\xbe\x2a\x89\xfa\x15\x05\x68\x3a\x86\xf4\xa2\x01\x9a\xe0\x02\x35\x9c\x7f\xe4\xed\x9a\xaa\xad\xa9\xe7\x9c\x2b\xad\x48\x94\x29\x2d\xe7\xcd\x92\xcf\x27\xd7\x43\xcf\x77\x70\x2a\xc5\x84\x4f\x33\xbc\x5b\xfe\x62\x65\x13\x7f\xa2\x73\x2d\x65\xb9\x60\xed\xec\x42\xde\x6c\xbd\xae\xb3\xda\x74\xc4\x1a\x1f\x6f\x4d\x3b\x6f\xe2\xb6\xab\x1f\xfa\x73\x5d\x7a\x5d\x74\xd5\xdc\x3c\x6e\x35\x4d\xa3\x5f\x8c\xae\xfb\x37\x97\x77\xd7\xa7\xfd\x13\xd2\x5b\x2c\x12\x8e\x1e\x2b\xa4\x30\xfe\x77\x33\x29\x44\x56\xf7\x24\x62\x05\x22\x05\xa2\x0f\xb8\xc8\x8c\x3e\x48\x0e\xc9\xe9\xf9\xdd\xcd\x6d\xff\xba\xa1\x41\x4b\x12\x50\x96\x8e\xcd\x17\x09\xc8\x47\xf7\xd9\x98\xa5\x82\x19\x09\x3f\x4a\x32\xc8\x39\xf0\x8e\x33\x6c\xb4\xff\x5f\xfd\xd3\xbb\xdb\xc1\xe5\xc5\xe8\xcf\x77\xfd\xbb\xfe\x09\x71\xb4\x65\x9a\x35\xe3\x32\xa3\x88\x97\x82\xce\x8d\xd2\x5d\x84\x80\xff\x5b\xc6\x32\x10\xc7\xf8\x54\xcc\x99\xd0\xe5\x16\xdd\x80\xcf\x7b\xef\xfb\xe7\xc5\x96\x67\x8c\xfc\xfc\xa7\x7c\x50\x09\x1d\xb3\xc4\x7a\xf2\xc0\x39\x65\xce\x4f\xde\x91\x75\xf1\x65\xb8\xaa\x7f\xbe\xeb\x9d\x0f\x6e\x7f\x1d\x5d\x7e\x18\xdd\xf4\xaf\x7f\x19\x9c\xf6\x47\x56\x93\x3a\xed\x99\x7e\x0b\x3d\x59\x85\x8b\xfc\x2d\xa3\x89\xd1\xc8\xe5\x04\x5c\x63\x3c\x62\xe4\x71\xc6\x04\xc9\x04\x50\x1c\xaa\xf9\xa0\x95\x84\x30\x0e\x38\xa3\xab\xf3\xbb\x8f\x83\x8b\xd1\xe5\x2f\xfd\xeb\xeb\xc1\x59\xff\x84\xdc\xb0\x04\x14\x61\xb7\xe8\xb0\x8b\x8b\x24\x9b\x72\x41\xf8\x7c\x91\x30\xb3\x1a\x78\x38\xc7\x6c\x46\x1f\xb8\x4c\x0b\xda\x0a\xac\x23\xb0\x02\x68\xdf\x29\x9c\xa3\x60\xe9\x2e\x2f\x3e\x0c\x3e\x9e\x90\x5e\x1c\xfb\x39\x28\x68\xa3\x40\x39\x0e\x7d\xe2\xb0\x82\x3e\x11\x51\x8c\x07\x81\x1a\x86\x0f\x2c\x4d\x79\xcc\xd4\x8b\xfb\x1b\x0a\x07\xa2\xaa\x42\x97\x29\xbc\xfa\x46\x89\x5c\x57\xbd\x50\xa0\xbe\xea\x8b\xeb\xa8\xa8\xfa\x45\x89\x0c\x9a\x0d\x07\x95\x7d\x6c\x6d\x13\x28\xae\xcf\xb3\xdd\x98\x86\xd9\xc5\x23\x67\x1b\x3a\xfe\x47\x81\xe9\xfd\x73\x87\x01\x52\x98\x13\xb3\x12\x5f\x2a\x48\x10\xff\x8b\xbd\xda\x5a\x5e\x98\xc1\x97\x75\x1f\xd6\xd4\xa1\xce\x3f\x78\x0b\x37\x61\x38\xdc\x57\x74\xeb\x5d\x87\xb2\x8d\x13\x91\xe7\x4c\x53\xa8\x99\xaa\x25\x99\x32\x7d\x44\x2e\x05\x3c\xbb\xa5\xea\xfe\x80\x38\x40\x7c\x22\x53\x92\x0b\x8f\xcf\x90\x53\xfe\x46\x8c\x86\xdd\x15\x9a\xbd\x62\xbe\x57\xcc\xeb\x57\x66\x1f\xa0\xd6\xb0\xc2\xbb\xba\x51\x3b\xd9\xd9\x77\x77\xf1\x05\x66\x75\x17\x6b\x52\xb2\x8b\x16\x6e\xc4\xb5\x36\xd0\xb7\x7b\x19\x3e\xaf\x15\x74\xa7\x57\x63\x06\x43\xdf\xdf\x7b\xf8\x7f\xfb\x7b\x6f\x7f\xef\xed\xef\xbd\x57\xb0\xc2\x2f\x6e\x51\xae\xe1\xee\x2f\x6a\x52\x5e\xa7\x20\x6f\x8c\x4c\x97\x2b\xc4\x5d\xb0\xe9\xfe\xd2\x06\x82\xae\xc6\x94\x5c\xd5\x90\x15\x51\x33\x9a\x62\x21\xba\x48\xce\xe7\x52\x14\x6d\xd5\x07\xc4\x3b\xd6\xc1\x10\x08\xb3\x5b\x67\x69\xce\xbb\xe1\x6f\xc3\xc6\x1c\xac\xcb\x73\x24\x14\xed\x54\x84\xc0\x48\xfd\xbd\x7e\xfd\x84\x72\xc6\x1e\x3a\x70\xa7\xd0\x81\xaf\x63\xae\x4f\x92\x7c\xb4\x7b\xfb\xfa\xdb\x48\x38\xda\x63\x04\xee\x53\x6a\xf6\x29\x35\xf0\xfb\x1e\x23\x70\x77\xd4\xfa\xb4\x32\xbd\x8c\xd9\xa8\x54\x45\xc5\xff\x39\x2a\xbb\xbc\x0a\x4f\x42\xff\x57\xe1\x41\x9e\x63\x04\xad\xf3\x78\x97\x95\x57\x0a\x05\xeb\xbb\x57\x5f\x31\x23\x6a\x5d\x79\xa5\xd0\xd7\x2b\x17\xe1\xdd\x32\x55\xab\xfa\x3f\x43\x44\x64\x1d\xc5\x7c\x8d\xd6\xa8\x1a\xfa\xdf\x9b\xa6\xd6\x2e\xd4\xd7\x5a\xac\x20\x67\x70\x6f\xc8\x51\xd3\xee\x16\x70\x21\x35\xa3\x86\xbb\xa0\xfe\xb9\xbf\x11\xea\x1f\x3f\x0d\x8a\x4c\xfb\x0b\xa1\x04\x1e\x53\xbc\x0a\x36\x05\x8d\x29\x74\xff\x36\xec\x3c\xe1\x88\x9f\xc3\xd2\xb3\x92\x98\xbe\xba\x6b\x62\xd5\xd1\xd8\x5f\x16\x2d\x97\xeb\x6b\xbd\x32\xf6\x60\x2f\xab\x6c\x2f\x7b\x34\x95\xbd\xe9\xe7\xf5\x4c\x78\x6f\xfa\x79\xd3\xa6\x1f\x74\x54\x8f\x16\x34\x65\x42\xd7\xc8\xe8\xe5\xeb\x04\x5e\x0f\x0c\xf8\x5e\xea\x80\x06\x50\x5a\xb4\x17\xb2\xbf\xaa\xbe\x2e\x5b\x90\x15\x0c\x46\x28\x57\x04\x79\x43\xc7\xff\xc8\xff\x1d\x28\x01\xc1\x8f\x35\x0e\xdf\x55\x81\x60\x08\x61\xaf\xcc\xf5\x9d\xd9\x98\xb0\x5d\x65\x1b\x39\x21\xb1\xc1\x51\xdb\x1c\x3f\xe6\x52\x0a\x58\x9c\x0b\x5c\xf9\x0c\x6b\xe2\xca\x6c\x4f\x87\x4e\x0c\xcb\xe3\x27\xd6\x86\x99\x5d\xe1\xa7\x67\xf0\xe5\xdb\xca\x44\x6a\x18\xfa\xf3\x86\x9f\x55\xc9\xb1\xdd\xe9\x76\xc4\xc1\x31\xb7\xe6\x71\xc6\xc1\x13\x03\x48\x71\x70\x9f\x07\x1b\xee\xf2\xa7\x29\xa4\x17\x35\x5d\x4f\xcf\x2d\x40\x56\xce\x5c\xbb\x89\x5b\x1a\x7d\xbb\xf3\x7e\xf1\x60\x9c\x35\x74\xff\xa2\x81\x39\x2b\x18\xf7\x76\xd5\x22\x5f\x8c\x2f\x7b\xdb\xfd\xf3\x71\xe6\x8f\x4c\x7f\x7d\x6c\xf9\x23\xd3\xcf\xc5\x93\x37\x65\xc4\x2b\x99\x51\x5e\x22\xe8\x8d\xc6\x89\x54\xf8\xef\x9b\x9d\x6e\x97\x78\xad\xcf\x38\x49\x1b\xac\xe5\x53\xd1\xc3\xa9\x6a\x69\x0d\x18\x05\x1d\x70\x9f\x32\xbc\x4f\x19\xde\xa7\x0c\xef\x53\x86\x5f\x5f\xca\xb0\xfb\xfa\x5d\xcc\x12\xa6\x59\xa3\xdc\x74\x06\x8f\x5f\x4a\x6e\xc2\xde\x9f\x51\x6a\xc2\x0e\xbf\x3e\xc1\x09\xe7\xb5\x97\x9d\xf6\xb2\xd3\x2e\xa6\xfb\x5a\xb5\x57\x47\xe5\xaf\x41\x7b\x6d\x8d\x4e\x94\x07\x89\xad\x8d\x0d\xb0\xd3\xfe\xcb\xda\xa0\x80\x00\xe9\xd1\x0d\x67\x9d\xe3\xff\xca\x0d\xfb\xed\x30\x39\xf5\xd4\x7c\x6c\x1b\xf7\xa6\x5b\xf7\xaf\xd6\xbb\xb9\x2f\x65\x51\xbb\x56\x7b\xe7\xeb\x8a\xc5\xd9\x3b\x5f\xf7\xce\xd7\x57\xe7\x7c\xdd\xb9\x4a\xb5\xb2\x20\xfd\xb5\xbd\x9a\x57\x46\x85\xbb\x8b\x1e\x75\x19\x43\x0a\x88\xbf\x1d\xb3\x45\x22\x97\x60\x63\x59\x69\x6d\xf6\xa5\xe8\x6b\x82\xa3\xca\x97\xbf\x7b\xfb\xaa\x22\xb4\xbf\xf6\xfb\xdf\x8d\xfc\xb9\xd4\x9a\xd7\x22\xf6\xe6\xf3\x7e\x15\x82\xee\xf1\x3f\x4a\x29\x11\xad\x30\x53\x82\x24\x86\xf5\xc7\x60\x28\xea\x9f\x04\x90\xf9\xf6\xd6\x1c\x67\x3a\x88\x37\x54\xe6\x00\x2c\x58\xaa\x97\xc1\x9b\x6c\xbe\xd0\xcb\xff\x1c\x0a\x9e\x23\x6b\xf3\xa9\x90\x29\xf2\x40\xf3\xf1\x8c\x8a\x38\x31\xe7\x47\xf9\x76\x22\x2a\x84\xd4\x20\x9c\xc0\x0c\x62\xf2\xc0\x29\x8a\x32\xbd\xab\x41\x0b\x9f\x7c\xab\xb3\x58\x70\xa7\xbf\xa1\x93\xf8\xdc\x98\xd5\x6b\x6e\xd1\x8f\x89\x1c\x43\x95\x85\xac\x68\x62\x30\x0d\xec\x1d\xc0\x85\x9d\x7b\x29\xe6\xa1\xa9\xba\x2f\x27\x6a\x15\xc3\xf6\x47\x2b\x53\xb7\xd6\xbc\x5b\x00\x33\x5c\xfd\x6a\x29\xbd\xab\xf8\xcc\x26\x7c\xc1\x63\x18\x72\x79\x1c\xee\xc7\xb0\x43\xf7\x5b\xde\xb2\xfb\xc5\x15\xa9\x82\x1f\x53\xa6\xd3\xe5\x88\x6a\x6d\x18\xd2\x2e\x73\xca\x6e\xa9\xba\xdf\x22\xa7\xac\xe8\xdd\x59\x93\x53\x56\xe8\xeb\x95\x73\xac\x42\x4e\x59\x71\xe0\x4f\xce\xb1\x5a\x12\xf7\x57\x97\x3e\xd0\xf6\xa8\xee\x53\x09\x36\x58\xba\xaf\x35\xad\x60\x15\x2f\x7e\x35\x23\x2c\x5d\x07\x5f\xe3\xc9\x2d\x5e\x6e\xfb\x23\xba\x6a\x8d\xbe\xba\x72\x1a\x25\x99\x65\xcd\xdc\xde\x48\x59\x8d\xb2\xd8\xb5\xeb\x51\x3d\x8d\xfd\x3d\xd8\x8d\x7d\x99\xbd\x7d\x99\xbd\x7d\x99\xbd\xa7\x2e\xb3\xd7\x4e\x65\x6d\xad\xaf\xb6\x55\x56\xdb\x69\xaa\xcd\x6a\xea\x13\xb8\x9c\xdb\xeb\x92\xa5\x74\xf4\xa2\x16\xb9\x69\x3a\x7a\xa1\xfb\x37\xe1\x9b\x2e\x8c\xf8\x39\xd2\xd1\x7f\xa3\x8a\xe5\x5e\xab\x7c\x92\x75\xfb\x5a\x55\xca\x57\xae\x4f\xee\x13\xe9\xf7\x20\x86\xfb\x48\x93\x1d\x2e\xce\x3e\xd2\x64\x1f\x69\xf2\xd5\x46\x9a\x34\xab\x27\x3c\xde\x3a\x49\xb2\x23\x6c\xb9\x37\x32\xa4\x7f\x01\x51\xca\x88\xfd\x2d\x80\xcc\xeb\xb4\x85\x5c\x96\x2e\x00\x0f\x6f\xae\x39\x0c\xe2\x37\xa1\x32\xd4\xae\xe6\x73\xa8\x0e\x7b\x0c\xec\x9d\x62\x60\xbf\xba\x69\xef\xa5\xca\xbd\x54\xb9\x17\x9c\x5a\x4e\x78\x2f\x38\xbd\x5e\xc1\xe9\xa5\xb4\xa1\xaf\x09\x0e\xc9\x88\x58\x85\xa4\xa4\x95\x61\xca\x08\x69\x04\xce\x8c\x6c\x91\x48\x1a\xaf\x0b\x38\xfa\x4b\x20\xbe\xad\x90\xfb\x82\x76\xd3\x3c\x4c\xb9\x24\xfe\xad\x92\xed\xb0\x01\xd3\xe3\x5b\x10\xed\xcc\x38\x71\xc4\x2d\x82\x23\xc3\x0e\xdf\xfd\x5b\x8b\x81\x5f\xdb\x3b\x19\x38\xcd\x98\xc6\x0e\x33\x00\xc5\xb3\x39\x5d\x92\x19\x7d\x60\x64\x42\x79\x82\xf6\x39\x1e\xd3\xf2\xfa\x96\xe6\xb6\x6a\x40\xff\xd1\x6d\x40\xb4\x38\x9c\x3c\xa1\xd1\xdc\x17\x28\x55\x45\x34\x71\xee\x3e\x78\x67\x46\x15\xa1\x49\xca\x68\xbc\x24\x63\xc6\x44\x90\xc8\xd6\x76\xcc\x3b\x11\x8c\x5f\x3c\x3a\x33\xa4\x9b\x17\x0d\xf2\x06\xae\xd1\x58\x2c\x7a\xe7\x8a\x65\x99\x93\x6c\xa1\x43\x6e\xa3\x38\xaa\x1f\xdf\x0a\x73\x79\x0e\x35\xf1\x2b\xf6\x22\xed\x3d\x45\xbf\xcd\x92\x8c\xaf\x46\xfb\xd8\xab\xe8\xfb\x1c\xe3\xbd\xe7\x67\x6f\xc0\xd8\x1b\x30\x76\xbe\x8c\xaf\xc9\x80\xf1\x82\x32\x3a\xa6\x36\x3d\x49\xad\x92\xd7\x22\xad\xef\x85\xf5\xbd\xb0\xbe\x17\xd6\xbf\x5a\x61\xfd\x75\xac\xf0\x5e\x52\xdf\x4b\xea\x7b\x49\x7d\x2f\xa9\xef\x25\xf5\x9d\x2f\xe3\x5e\x52\x2f\x49\xea\xf0\x2f\x07\x16\xd0\x55\x6c\x6f\x2d\xae\x6f\x86\x0c\xd0\xce\x4d\x67\xa1\x01\xde\x8a\x64\xbe\x97\xca\xf7\x52\xf9\xeb\x96\xca\x5f\xcd\x84\xbe\xbe\x7c\xe0\x7d\x46\xed\x3e\xa3\x76\x9f\x51\xfb\x02\x19\xb5\x8e\x95\xac\x12\x70\x56\x55\xd2\xf9\xc5\xf2\x96\x6f\xb9\x88\x92\x0c\x24\x55\xf3\xf3\xfb\x8c\x27\x31\x01\x0d\xc9\x28\xba\x5c\x8a\xef\x80\x9e\x80\x14\x60\x9c\xae\xf6\xc3\x6a\x01\xe6\x97\x0a\xa7\x7b\xb5\x32\x4c\x3e\xda\x4d\x41\xd8\x76\xb5\xa7\xbe\x00\xee\x06\xf5\xf6\x0a\xbf\xb9\x86\x5e\x51\x15\xbe\x03\x27\x95\x18\x8e\xe4\xc6\xf7\xc4\xf5\xf8\x6a\xfb\xec\x54\x9d\xef\xb3\xfd\xe8\x6d\x15\x32\xa8\x8e\x7a\x5f\x93\x8f\x04\xbb\xb6\xaf\xc9\xf7\x84\xf3\x76\xe7\x6c\xcd\xcc\x1d\x8d\xa2\x29\xfc\x8d\x4e\xfb\xc5\x63\x1d\x9b\x4f\xfa\x8b\x46\x3e\xd6\x5e\x64\x95\xd4\xba\xe3\x7f\xd4\xde\x53\x2f\x50\x8a\xb0\xf3\xe5\xb4\x93\xa2\x84\xdb\x5c\x4f\x1f\x99\xfe\x5a\xee\xa6\x7d\x61\xc2\x7d\x71\x9d\x1d\x4d\x77\xa3\xbb\xe7\xcd\xce\x76\x5f\x86\x71\x5f\x86\x71\x5f\x86\xb1\x70\x04\xf7\x65\x18\xf7\x65\x18\x09\x79\x96\x32\x8c\x9d\x65\xc6\x1d\x14\x64\xdc\x46\x62\xc4\xee\xbf\x16\xa1\x71\x5f\x94\x71\x2f\x37\xee\x6e\xba\xbf\x2d\xb9\xf1\x15\x5a\x2d\x5e\x45\xf5\x49\x6f\xb5\x78\x71\x24\x20\xcf\xda\x5b\xa3\x01\x85\xa1\x26\xfe\xeb\x9d\x82\x02\xb9\x4d\xdb\x03\x03\xd9\xff\xdb\x03\x03\xed\x81\x81\x1a\x66\xbd\x8f\x65\xde\x03\x03\x91\x7d\xb4\xee\x3e\x5a\xf7\x35\x47\xeb\xb6\xd8\xc6\x3d\x30\x50\x4b\x91\xf1\x89\xc0\x81\x9c\xcc\xb5\x15\x40\x50\x8d\x38\xb8\x1e\x24\xe8\x73\x55\x23\x7a\xb5\xa2\x9e\x1b\xeb\x1e\x2c\x68\x0f\x16\xb4\x2d\xed\xbc\x0a\x05\xf4\x19\x41\x83\xea\x38\x4c\x97\x54\xe4\x1a\xe6\xb2\xad\x82\xf9\x36\x00\x84\xdc\x68\xf7\x79\xc9\xfb\x0c\x88\xd7\x9f\x01\xf1\xea\xf2\x92\x5f\x8d\xa6\xb2\x57\xe7\xf7\xa9\xc9\xfb\xd4\xe4\xbd\xb1\x63\x6f\xec\xd8\xf9\x32\xbe\x26\x63\xc7\x0b\xcb\xed\x4f\x08\x24\xf4\x1a\x25\xf8\xbd\x00\x8f\xef\xed\x05\xf8\xbd\x00\xff\x95\x0a\xf0\xaf\x63\x85\xf7\xd2\xfb\x5e\x7a\xdf\x4b\xef\x7b\xe9\x7d\x2f\xbd\xef\x7c\x19\xf7\xd2\xfb\xb3\x81\x0b\xd5\x89\xf0\x9d\x01\x86\x3a\xba\xf9\x82\x04\xb2\xb7\x24\xad\xef\x25\xf5\xbd\xa4\xfe\xba\x25\xf5\x57\x33\xa1\x3d\xd8\xd0\x1e\x6c\x68\x0f\x36\xb4\x07\x1b\xda\x44\x44\xfa\x17\x7b\x2a\xdf\x05\x17\xb1\xbf\xb1\xdf\xbd\x4f\xe4\xf8\x76\xb9\x60\xe6\xbf\x67\x7c\xce\x84\x02\x81\x96\xeb\x65\x28\x12\x35\xac\x7c\x75\xcd\xdf\xdd\x0c\x2e\x3e\x9e\x87\x59\x68\xef\x3e\xdd\x9d\xdf\x0e\xae\x7a\xd7\x7e\x5d\xfc\xac\xc2\xb5\xb0\xdf\x15\xa4\xba\x53\x39\x5f\xd0\x94\x2b\x29\xfa\x5f\xcc\xe9\x34\x43\xbb\x04\xd1\x47\xa6\x9b\x8d\xae\xff\xe7\x70\x64\x17\xc5\x3f\x3f\xde\x16\xff\x2a\xcc\xe2\xfc\xb6\xf8\x57\x7f\xe5\x6c\x82\x86\xcb\xec\xec\x90\x7c\xbc\x3d\x21\x1f\x21\x46\x25\x25\xb7\x33\x8a\x2c\xe9\xfc\xf6\x84\x9c\x33\xa5\xe0\x97\xfc\x63\xcd\x75\x02\x73\x7b\xcf\x05\x4d\x97\xc4\x4d\x1f\x53\x51\x29\x18\x7f\xdd\xd2\x94\x17\x4f\xfc\x35\x13\xa0\xcf\xe4\xab\x77\x2e\xa7\x3c\xa2\xc9\x76\x8b\xd8\xbb\x08\x0f\xd2\xbb\xcb\xeb\x95\x4b\x11\xbe\x5d\x5d\x8b\xde\xc5\x19\x24\xc6\xba\xa1\xd6\xcc\xfc\x82\x29\xa3\x30\x45\x52\xc4\xd6\x20\x6e\xf8\xd9\x32\x90\x52\xfe\x2a\x21\x55\x36\x53\x46\x76\xee\x5d\x9c\x91\x63\x72\x79\x3d\x14\x97\x46\xa9\x32\x7c\x96\x99\xeb\x1d\xb9\x2e\x57\x44\x48\x4d\xf8\x7c\x21\x53\x4d\x85\x36\x92\x0d\x30\x36\xbb\x22\xa8\xa3\x9d\xca\xf9\x3c\xd3\x54\xf3\x07\x56\x59\x54\x81\x3a\xe2\x0d\xd3\x83\x18\xec\xcd\x35\x6b\x88\x9c\x2f\x9f\xcb\x22\x35\xed\x1b\xae\x5b\x54\x2c\x78\x5c\x91\xcd\x5d\x13\x34\x4d\x69\x91\x3f\xbe\xe3\x9a\xcd\xcb\xef\xb7\x8c\x97\xfc\x67\xad\xd6\x64\xae\x84\x73\x49\x8d\x06\x8a\xd9\x91\xe7\x5c\xb3\x94\x26\x9f\xe8\xe2\x83\x33\x61\x6d\x40\x1f\xff\xf7\xa6\x90\xa7\xfa\xee\xd7\xde\xa7\x30\xd3\xf5\xdd\xd5\xf5\xe5\xed\xe5\x4a\x9a\x29\xb4\x50\x25\x1a\xf3\xf8\x04\xfe\x97\x1c\x13\xd3\xba\xbf\xb9\xe6\x4c\x53\x73\xa3\x93\x6f\x31\xa3\xcb\x67\x60\x70\x91\x00\x8d\x2c\x52\x3e\xe7\x66\x5f\xad\x12\xff\x1d\x5e\x8e\xfe\xf6\xf7\x54\x82\x1f\x60\xce\x26\x88\x1d\x9a\x8a\x98\xa6\x31\xf9\xab\x2a\xa7\x33\x83\xed\x08\x7f\x60\x31\x39\x24\x33\xad\x17\xea\xe4\xf8\xf8\xf1\xf1\xf1\xc8\xbc\x7d\x24\xd3\xe9\xb1\xf9\xc7\x21\x13\x47\x33\x3d\x4f\x30\x7d\xdb\xac\xc2\x09\xb9\x4a\xa5\x96\x20\x40\x10\xc5\x52\x4e\x13\xc8\x24\x1d\xe3\x69\x97\x13\xf2\x97\x48\xa6\xec\x28\xdf\x18\xab\x57\xa2\x50\xe2\x74\xcf\x63\xf3\x52\xcd\xd1\x29\xef\x27\x89\x59\xc4\x63\x2b\x48\x31\x11\x49\x30\x3e\xa0\xb9\xd2\xb4\xe7\xd2\xe0\x98\xf5\x15\xf9\xe5\x0c\x84\x0d\x1a\x33\x42\x1f\x28\x4f\x10\x24\x40\xa2\x1d\x12\xd7\x19\x73\x5b\x06\x28\x75\x66\x46\xc2\x86\xe0\x44\xd0\x23\xdd\xab\x0b\x33\xe1\x48\x26\x64\x9c\x4d\x8c\x84\x16\xdc\x4a\x07\x46\x1a\xe1\x8a\xa4\x2c\x92\xf3\x39\x13\x68\xa9\x34\x0d\xc1\x97\xb0\x62\x76\xb4\x47\x43\x01\xfb\x6f\xc4\x14\xa0\x80\x58\xc2\xc1\x16\xcc\x68\x2b\x62\x89\xdd\x8c\xb3\x49\xc1\x15\x06\xb0\x08\x34\x26\x5c\x0f\x45\x2f\x31\x7a\xed\x5c\x6a\x16\x46\x59\x82\xdd\xbc\xb0\xe0\xc0\x10\x52\xb6\x48\x68\xe4\x72\x78\x13\x19\xd1\x84\x4c\x78\xc2\xd4\x52\x69\x36\x0f\x1b\xf8\x16\x54\x2d\xb3\x66\x5c\x91\x58\x3e\x8a\x44\x52\x3b\x8f\xf2\x67\xdf\x15\x79\x4b\xdf\x25\xcb\xf7\xd3\x54\xa6\xf0\x3f\x3f\x73\x11\x6f\x76\x06\xef\x2e\x7e\xbe\xb8\xfc\x5c\x38\x86\x77\x37\xfd\xeb\xf0\xef\x9b\x5f\x6f\x6e\xfb\x9f\x56\x9e\xc3\x72\x2b\x39\x65\xc1\xf0\x40\x04\x3f\x21\x37\xb8\x08\x32\x25\x46\xa9\x6a\x98\xd4\x27\x4b\x4a\xf9\x0f\x32\x66\x9b\xcd\xed\x53\xef\xe2\xae\x57\xe0\x28\x37\xa7\x3f\xf5\xcf\xee\xce\x0b\x02\x9e\x9b\x5f\xf0\xcb\x75\x1f\xc5\xb7\xf0\xb7\xd3\x9f\x06\xe7\x67\x23\x2f\xf0\xad\x5a\x8d\x52\xbf\x65\xbe\x74\x8b\xfc\x67\x26\x63\x32\x5e\x86\x19\xa5\x39\x0a\xc2\x23\x55\x24\x01\xcf\x4b\x8e\xc6\x81\xad\x9e\x00\x1b\x72\xb0\x10\xf9\x17\x46\xb6\x3f\xb0\xef\x00\x88\x03\xaa\x41\x54\x17\x51\x21\xc2\x86\x4d\xef\x54\x04\x3a\x05\xc2\x39\xf8\x35\x32\x5a\x8f\x32\x2f\x66\xe6\xfc\xa6\x7c\x3a\x05\x15\xbf\x34\x54\x6c\xcd\x7e\x0a\x2b\x09\xdf\xe1\x56\x2f\x52\x09\x47\xda\x74\x6b\x6d\x43\x5e\x81\xc0\x0f\x11\x83\xb2\xd0\x62\x4a\x41\x37\xa8\x19\x9a\xdb\x17\xb3\x08\x8d\xeb\x85\x47\x2f\x0f\x81\x06\x0e\xa5\xd0\x32\xb1\x48\xd9\x03\x97\x59\xf0\xa9\xc5\x26\x29\x6c\x6e\x6d\xf3\xf9\x02\xc0\xb2\xa1\xfe\x92\x37\x53\xa4\xe6\xc1\xe5\x8d\x4e\xa9\x66\xd3\xe5\x99\x3d\xd9\x9b\x53\xf1\xd9\xe5\xe7\x8b\xf3\xcb\xde\xd9\xa8\xdf\xfb\x58\x3c\x98\xfe\xc9\xcd\xed\x75\xbf\xf7\xa9\xf8\x68\x74\x71\x79\x3b\x72\x6f\xac\x24\xd7\x86\x0e\xaa\xd7\x69\xf1\xc5\x13\x62\x38\x23\x70\x30\x07\xd4\x16\xb0\xb1\x31\x9b\xc8\x14\xd9\xf1\xdc\x39\x19\x81\xf1\x13\xbf\xb2\x2c\x46\x1d\xbb\x38\x8b\x13\x50\x40\xeb\x9a\x44\xdb\x92\x4e\x19\x9d\x03\x3b\xa7\x82\xf4\x45\x7c\x78\x39\x39\xbc\xc1\x1f\xe7\x34\xbd\x67\xa9\xff\xf4\x31\xe5\x5a\x33\x30\xd2\x73\x6b\xbf\x07\x05\x19\x86\x6c\xee\x1b\x08\x82\xcf\x3b\x38\x22\xd7\x86\x3d\x9b\xf7\xfd\xdd\x63\x08\x35\x66\x9a\xf2\x44\xd9\xc1\x16\xd6\xf5\x84\x9c\xd3\x74\x9a\xab\xbb\xdf\xca\xc9\x04\x1b\xfb\x0e\x87\x61\xae\x9a\xc2\x2c\x6a\x58\xa4\x21\x0d\x77\x7d\x41\x7f\xf6\x65\x2f\xa4\x55\xa9\xea\x6e\xb1\x1d\x4d\xdd\x5d\xc1\x8a\x5f\x5e\x8c\xfa\xff\x35\x28\x28\x2c\xf6\x49\x0d\xad\xc1\xc4\xf1\xf1\xea\xbb\xa0\xbe\xed\x2a\x39\x15\x5f\xac\x21\x27\xcc\x95\x31\x3b\x3f\x31\x2a\x50\x0d\x2d\xb1\x2f\x5c\xe3\xc6\x84\xe3\x2e\x91\x50\xde\x0c\x58\x31\xe8\x62\xc1\x68\xaa\xea\x76\xbb\x28\xad\x35\xec\x3d\xf6\x14\xf6\x61\x37\xd9\xf5\x73\x40\xa4\x48\x96\xe1\x5d\x5f\xa2\xc8\x16\x34\x80\x6d\x55\x28\xe0\x0a\x40\x7a\x2e\x2d\x20\xce\x27\xae\x8c\x26\x83\x3f\xbe\xb7\x48\x3d\x9b\x11\xc4\x87\xde\xe0\xbc\x24\x03\x8c\xce\xfa\x1f\x7a\x77\xe7\xab\xb5\xf1\xc2\x77\xe5\x2d\x26\x87\xc4\x3c\x2f\x7a\xb8\xf8\x04\xf9\xbd\xc3\x1b\x42\x3d\x8b\x09\x23\x25\xba\xd4\x16\x34\x0b\xc5\x6c\x91\xc8\xe5\x9c\x09\x30\xb2\x17\x6e\x31\xb3\x9e\x13\xca\xed\xb5\x10\x0c\xf6\xc4\x88\x16\xd6\xfe\x07\x57\xd0\xa1\x03\x39\x62\xb1\xbf\x35\x8b\x18\x47\x25\xd6\x7d\x85\x36\x6a\xfb\x9f\x1b\x4d\xf5\x86\x67\xac\x77\x7a\x3b\xf8\xa5\x60\x1a\xe8\x5d\x9f\xfe\x34\xf8\xa5\x4e\xf8\x18\x7d\xec\x5f\xf4\xaf\x7b\xb7\xfd\xd5\x47\xab\xd4\x64\x9d\x60\xa1\xcc\x80\xcb\x3e\x0a\xae\xbc\xef\xde\x9c\x9d\x54\x26\x84\x6b\x45\x1e\xb8\xe2\x63\x0e\xb8\x52\xd6\xde\x7f\x37\x00\xce\x0a\xc9\x4c\x5c\x2f\x9d\xe8\x81\xfd\x16\xf7\xd1\x70\x52\xdb\x3e\xea\xc2\xa1\x17\x20\x32\x9a\x13\x6e\x8e\x9b\xf4\x09\xe9\xa5\xd1\x8c\x3f\x80\x6e\x15\x7c\x26\x8c\xbc\x2b\xa6\x2c\xc5\xe1\x80\x91\x33\x1c\x4b\xf0\xdc\x8c\x2a\x14\x34\xf2\x55\xf3\xb2\xe5\x94\x09\xa3\x9f\x87\x9d\xa0\x10\x94\x32\xf1\x8d\x91\x97\x16\x09\x8f\xb8\x4e\x96\x24\x02\xc3\x4a\x6c\xa4\xd1\x39\x15\x74\x6a\x2f\x76\xd0\x46\x4a\x24\xf1\x67\x04\xdf\xba\x9c\x58\x0b\xda\x2d\x67\x1b\x1e\xb3\xbb\x8b\xb3\xfe\x87\xc1\x45\x91\x04\x7e\x1a\x7c\x2c\x48\x9a\x9f\xfa\x67\x83\xbb\xc2\x6d\xbe\x4e\xe0\xac\x36\x5b\x73\x14\xfd\x4b\x27\xe4\x0c\x3f\x3d\x31\x8b\x5b\x83\x2c\xe6\x75\xd4\xd2\x3a\x5c\xbb\xe0\x19\xf7\x8f\xbe\xd0\x69\xad\xf9\xaf\xad\x5d\xc3\x5a\xfa\x0b\x86\x8d\x7a\x87\x60\xa5\xef\x8b\xb2\xeb\xa6\xea\x30\xb5\xe6\x7e\xd3\xc9\x51\x6e\xee\x08\x3d\x85\xa0\xdb\x37\x59\x56\x6a\xac\xc7\x39\xc3\xfe\x05\x1c\x41\xf3\x4c\x69\xb4\xd8\x03\x71\x92\xfb\x3f\x29\xb3\xa0\x60\xd1\x3f\x22\x37\x8c\x0d\x85\x53\xf2\xa7\x5c\xcf\xb2\xf1\x51\x24\xe7\xc7\x39\xac\xdd\x31\x5d\xf0\x39\x35\x52\x30\x4b\x97\xc7\xe3\x44\x8e\x8f\xe7\x54\x69\x96\x1e\x2f\xee\xa7\xe0\xab\x76\x4e\x8b\x63\xdf\xec\x54\xfe\xee\xfc\x0f\xdf\x1f\x9e\xff\xe9\xfb\x77\x55\xb3\x4d\xd3\xfe\xf7\x45\x44\x17\x2a\x4b\x6c\x6c\x4b\x1a\xae\x8d\x3b\xf2\x19\x5b\xb7\xdf\x17\xc5\xed\xda\x4e\xcd\x3c\xbd\xba\x2b\x98\x51\x8b\x7f\x7e\xea\x7f\xba\xbc\xfe\xb5\xc0\x29\x6f\x2f\xaf\x7b\x1f\x57\x9b\x53\x2b\x7a\x68\x69\x19\x7e\x16\xf2\x51\x14\x67\xaf\xca\x93\xce\x84\xe6\x73\xe6\xd4\x50\xfb\xe7\x2d\xce\x74\x83\x99\x5f\xde\xfe\x54\x94\xa4\x3e\x9c\xff\x7a\xdb\x1f\xdd\x9c\xfd\xbc\x72\x26\xf8\x59\x61\x64\x37\xe0\x43\x3f\x95\x49\x36\x17\xe1\xbf\x37\x1f\xdb\xe0\xe2\xb6\xff\xb1\x3c\xba\xcb\xde\x6d\x71\xd9\xaf\x8b\x71\x1e\xef\xde\x5f\x5e\x9e\xf7\x0b\x6e\x8d\x77\x67\xbd\xdb\xfe\xed\xe0\x53\xe1\xb6\x3b\xbb\xbb\x46\x24\xba\x55\xd3\x74\x23\xa8\x99\xa8\x99\x56\x38\xcd\x5d\xf3\x99\x56\xc7\xbc\x67\xe3\x2a\xf1\xa0\x1c\x06\x58\x25\x18\xd1\x00\x96\x8d\x43\x6f\x56\x8c\x70\xa4\xb5\xbc\x46\x17\xb7\x89\x34\xf3\xba\x95\x1b\xbd\x8a\xe5\xdd\xfa\x21\x20\x3c\x23\xea\xb1\x34\x49\xe4\x23\x46\xb4\xcd\xb9\xb9\xf2\x2c\x72\x95\x79\x45\x91\x28\x4b\x53\x26\x74\xb2\x3c\xaa\x61\x27\xc5\x6d\x61\x51\xca\xf4\x27\x99\x09\xbd\x39\xc9\xf5\x2e\x0a\x87\xba\x7f\xf1\xcb\xe8\x97\x5e\x91\x02\x07\xe7\xab\x0f\x79\xd8\x44\xcd\x3d\xd7\xbb\xf8\xd5\xdf\x70\x10\xf7\x78\xe0\xd5\x3f\x14\x0c\xa3\x84\x1b\x99\x32\xa2\x46\x35\x4c\x40\x5c\x20\x8c\x83\x3e\x3f\x37\x93\x83\x38\xab\x05\x7a\x10\x10\x12\x14\x07\x79\xe2\xfe\x51\x6a\x4f\xc1\xba\x80\x45\xd1\x85\x95\x42\x3b\x56\x65\x15\x84\x89\x07\x9e\x4a\xc0\x18\x25\x0f\x34\xe5\x46\xd4\xc5\x96\xcd\x5c\x4f\xe0\x7f\xbb\xb5\x09\xc6\xc1\x12\xe3\xba\x91\xa9\x3e\xf3\xf1\x6c\x9b\x99\x1a\xea\xe2\xba\xaa\x11\x5d\xf5\x56\x84\xea\xb7\x35\x9b\xb3\x65\xdc\x5b\x61\xc2\xb7\x54\xdd\x57\xcc\x86\x03\xa1\x34\x15\x11\x3b\x4d\xa8\x52\x9b\xae\x02\xea\x3d\x07\x45\x46\x79\x7d\x7d\x77\x75\x3b\x78\xbf\x86\x38\xcb\x1f\x57\x23\x09\xa3\x24\x73\x96\xf5\x71\x2a\x69\x4c\xcc\xae\xcb\x29\x5a\xf1\xad\x30\x90\xa3\xc8\x62\x54\xae\x0f\x65\x28\x20\xd8\xe6\xc1\x84\x56\xf7\x09\x4d\x83\xdc\x2e\x04\x89\xcc\x4a\x90\x40\x0d\x72\xcc\x0a\x9c\x02\x08\xae\x6f\x35\xde\x45\x42\xf5\x44\xa6\x73\x24\xce\xc2\xa4\xb1\xf1\xd5\x8d\x72\xa1\x59\x9a\x66\x0b\xcd\x1d\x2c\x70\xf9\x72\x85\xa2\xce\x72\xfa\x89\x29\x45\xa7\x6c\x1b\xdf\x51\x9d\x40\x71\xf3\x4b\xf8\x27\xf8\x86\xda\x08\x0b\x85\x11\xba\x98\x33\x47\x4f\x97\xe2\x03\xe5\x49\x96\xb2\x2b\x99\xf0\x68\x43\x5f\xb7\xd1\x82\x47\x83\x4f\x46\xb0\xef\xdd\xf6\xcf\x0b\x1c\x10\x9e\xf5\x3e\xdc\xf6\xaf\x2d\xee\x6a\xef\xfd\x79\x7f\x74\x71\x79\xd6\xbf\x19\x9d\x5e\x7e\xba\x3a\xef\xaf\x71\x21\x37\x36\x5e\xb5\xb8\x94\x5f\x3d\xa9\xfc\x02\x3b\x9c\x66\xa8\x37\x39\x1d\x1a\x62\xbe\x29\x4f\xc0\x7f\x25\xd1\x8f\x45\x89\x90\x31\xa2\x5f\x28\xa7\xb1\x79\x40\x54\x32\xd0\xdf\x24\x09\xa1\x99\x96\x73\x0a\x56\xd8\x64\x39\x14\x74\x2c\x53\x0d\x7a\xa3\xbf\x73\x48\x9a\x09\x61\xce\xb7\x69\x0c\xd1\x7e\xa3\x84\x51\x41\xb2\x45\x10\xaa\x6f\x6d\x89\x13\x2e\x20\xc8\x65\x4e\xd3\x7b\x57\xba\xc8\x07\x40\xfa\x43\xa1\x08\x55\x43\x81\xa8\x1c\x96\xc9\xb6\x58\xe1\x93\x56\x6f\x35\xae\xce\x9c\xde\x33\xb3\x2a\xf3\x2c\x9a\x19\xcd\x73\x9a\x32\xa5\xac\xbd\x29\xa2\x02\x7d\x87\xf6\xf5\x47\x9e\x24\x43\x21\xa4\x59\x0a\x67\xd6\x8a\xd9\x82\x89\x98\x89\x88\x63\x50\x3e\xb8\xdd\xbc\xb9\x63\x9a\xd2\xc5\x8c\x28\x09\xfe\x2a\x58\x76\xd0\x69\xf1\x23\x17\x71\x63\x71\x48\xe0\x71\x68\x95\x4a\x33\xc3\x27\x2e\xe1\x7a\xc3\x55\x86\x8f\x9d\x49\xca\x99\x62\xd1\x36\x30\x5f\x24\x4c\x23\xee\x33\x2c\x39\x6c\x86\x59\xeb\xc2\x7e\x98\x6d\xaa\xdb\x84\xa1\xc8\xc7\x4c\x95\x1d\xd1\x51\x8d\xb5\xcb\x1e\x29\xf2\x13\x15\x71\x62\x5a\x71\x76\xcd\xe2\x59\x84\x20\xd0\x9e\xa1\x1a\x77\x1a\xb7\x91\x01\x23\x9a\xa9\x4e\x42\xe0\xea\x4c\x0a\xb4\x14\x1c\xe6\xfe\x5c\x20\x6f\x9b\x46\x01\xab\xbb\x30\x2c\x92\x26\xd2\xae\x12\xbe\x9e\x61\x2d\x13\x02\xa3\x69\xd0\x4a\x17\x29\x17\x11\x5f\xd0\x64\x23\x91\xb5\x14\x06\x67\xc3\xcb\xbe\xe5\x13\x43\x3e\xdf\x55\xdc\x30\x9a\xa5\x73\x48\x2f\xb2\xc3\xf4\x5b\xd8\x41\xbb\xb4\xf1\x84\x4c\xe5\x8e\x60\x9a\xca\x0c\x6d\xf4\xb0\x2e\x2c\xae\x39\xaa\x47\x75\xdb\x6d\x4e\x06\x2d\xc6\x1e\x6d\xb0\xd9\xe8\xb4\x6f\x5a\xbf\x52\x2b\xb6\x77\x8c\x1a\xa1\xc9\x55\x7d\x9b\x75\x3b\x10\x3c\xfc\xe7\x2a\xda\xf9\x44\x17\x86\x66\x2c\x1a\x35\xcd\xe7\x68\x65\x3b\x5b\xe1\xc6\xb9\xbe\x03\x5f\x98\x8f\xc8\x6c\xbf\x1b\xf9\x12\xda\xd8\x85\x6a\x27\x05\x9f\x60\x90\x21\x66\x69\x7c\x92\x69\x73\x3c\x29\x78\x15\xc9\xb7\xec\x68\x7a\x44\x1c\x6e\xf8\x01\xe9\x5d\x5d\xf5\x2f\xce\x0e\x08\xd3\xd1\x77\x2e\xb8\xc6\xc6\x1a\x0c\x85\x96\x56\x5a\x59\x92\x99\x7c\x04\xde\xc8\xd2\x29\x2b\xcc\xd9\x05\x26\x00\x6e\xd1\x94\x2b\x9d\xda\xf0\x08\x11\x87\xa8\xf9\x7c\x5e\x16\x71\x91\x42\x32\x3d\xdb\x86\x34\xa8\x52\xd9\xdc\x88\xe0\x23\x4e\xe7\xa3\x54\x26\xdb\x30\x85\x33\x98\x0a\x48\xf9\x3e\xb9\x8e\xd3\x39\x31\xcd\x5a\xd7\xae\x77\x43\x78\x91\xce\x08\x46\x86\x2f\x9b\x7b\x33\xb8\xb7\x9c\x45\xd2\x86\x92\x70\xe7\xd2\x84\xe4\xbb\x06\x56\x91\x9b\x92\x46\xd6\x7a\x37\xa2\x51\x64\x34\x85\x1d\x4f\x2a\x28\xc5\xe0\xcc\x84\xb6\xa3\x27\x9b\xe6\x3a\x3a\x77\xc3\x5c\x18\x0e\x06\x51\x6b\x55\x14\xf5\x9a\x7e\xc7\xcb\x4a\xaf\xae\x58\xc2\x9d\xf2\x9a\x20\x5e\xc2\x8a\xc1\x4e\x2a\x2c\xb6\xa0\x67\xcc\x82\x7e\x85\x5d\xba\x58\x54\xd3\xf0\x52\x66\x69\x1d\xa3\x1b\x8a\x33\xb6\x48\x99\x91\xf4\xcb\x46\x55\x4f\xd3\xd7\x45\x4a\xdc\xd3\xf5\x9e\xae\xdf\x3c\x5d\x9f\x62\x81\x14\x67\x3f\x0e\x0a\x10\x6c\x43\xe8\x75\xad\xac\x6a\x89\x3c\xf9\xfd\x7e\x8a\x17\x7b\x5d\x5d\x87\x22\x15\xb9\x3b\x98\x8b\x4a\x45\x1b\xdc\x48\x28\xcf\x0a\x17\xee\xdf\x32\xa9\xa9\xfa\xee\x68\x28\x8c\xf4\x70\xcf\x96\x68\x1e\x31\xf7\xf3\xef\x8d\x10\x7a\xa8\x98\x50\x10\xa2\xf8\x7b\x34\x64\x9b\xbd\x75\xe6\x25\xd4\xc9\xb0\x90\x4e\xb1\xe4\x04\x84\x95\xd9\x46\xad\x78\x90\x07\xed\xe5\x75\x2a\xdc\x33\x1c\xfe\x94\x69\xc8\xea\xd1\x5c\x83\xb2\x10\x63\xa5\x9e\xca\xd0\xd7\xda\x10\x91\x2a\x52\x09\x76\xcd\x38\xdb\x8e\xe3\xa9\x6a\x1b\x6b\x59\x82\x17\x93\x6f\x6c\x9c\xe6\xb1\x33\x98\x44\xa9\xac\x94\xbf\xa1\x8a\xe0\x4e\x8f\xf1\x1c\x38\x67\x0e\x13\x47\x8f\xfc\x9e\x2f\x58\xcc\x29\x44\x6d\x9a\xbf\x8e\xcd\xbc\x7e\x77\x7a\x7d\x79\x31\xca\x63\xad\xff\x73\x28\x7a\x89\x92\xc4\x08\xfe\x32\xd5\x8a\x08\x29\x7c\x88\xe8\x22\x65\x4e\x16\xb2\x73\x31\xab\x1a\x98\x82\x87\xa2\x69\x04\xb1\x8c\xd4\x11\x7d\x54\x47\x74\x4e\xff\x2e\x05\xf8\x95\x7a\xf0\xcf\xd3\x44\x66\xf1\x67\xaa\xa3\xd9\x31\xb8\x7b\xf4\x31\x7b\x60\x42\xa3\x59\xd9\x2c\x57\x0c\x09\x23\x0a\x22\x4c\x7f\x67\xc6\x9c\x87\x7d\x2b\xa3\xc2\x45\x6c\xa1\xc9\xff\x9b\xb2\xb1\x94\xba\x9e\x3b\xcb\xc9\x44\xb1\x4e\x9c\x38\xd7\x4e\x6e\x2e\xc9\x9f\xfe\xf8\xfd\x0f\x86\x84\x36\x59\xe3\xc1\xcd\xe5\xc8\x7c\xff\xbb\x33\xfb\xbd\xea\xc0\x59\x2f\xd1\xaa\x0b\x6c\xdc\x11\x0f\x06\x7b\x66\x02\xd8\x7e\x8a\x35\x91\x25\xa1\x48\x0e\xf9\x3e\xd6\x71\xb7\x33\xcc\xac\xdb\x2a\xae\x7b\x8b\xeb\xec\x63\x22\xc7\x60\x10\xc9\x0a\x35\x39\x56\xb8\x3b\xbb\xba\x41\xca\x17\x13\x57\x8b\x84\x2e\x2b\x3d\xac\x5b\xf6\x0b\xc3\x9d\x16\x34\x62\x79\x4a\xa0\x8b\x4c\x88\xe4\x7c\x0e\xd1\x32\x2e\x3e\x21\xe6\x13\x08\x9b\xd1\xe6\xb2\x23\x63\xa6\x1f\x21\x48\xcb\xfd\xea\x2f\x69\x67\x89\x34\xac\x0c\xd8\xe5\xd0\x2c\x72\x9c\x81\xf5\x7b\xf8\xee\x80\x0c\xdf\xc5\xec\x81\x25\x72\x61\x4e\xb3\xf9\x81\xe9\xa8\x6e\x13\xfb\x73\xca\x93\x0b\xa9\x7d\xdc\xcf\x36\xfb\x99\xb2\x88\x2f\xb8\x39\x5d\x23\x66\xda\x7d\xd2\xa0\xfd\xfa\x03\x76\x3b\x63\x1e\xba\x00\xc6\x40\x68\x1c\x1b\x22\x86\x02\x25\x6e\x78\xb9\x6d\x59\x04\x53\x2f\x00\xef\x77\x17\x58\x8c\x56\x09\x3d\x86\x6d\x16\x83\xaa\x6a\x77\xc0\x5b\x1c\x76\x7a\x92\xea\x7d\x6b\x91\x4c\x3d\xce\xb1\xef\x38\x2f\x16\xb1\x92\xfe\x6d\xed\x9b\xbc\x8e\x81\x33\xd5\x35\x9a\x36\xca\x07\xd0\xac\x45\xbb\x71\x16\x57\xe6\xc6\x7c\xb7\x72\x68\x2a\x44\xed\x88\xc2\x12\x56\xa0\x56\xdb\x20\xd8\x72\xdc\x2d\x5b\x3b\xe2\x28\x91\x2a\x4b\x5b\x3a\x2e\x8b\x83\x3e\xb5\x9f\xae\x1a\x77\x3f\xb4\x42\x64\x89\x56\x9d\x0c\x1d\x35\x0b\x5f\xca\xcf\x44\x36\xa1\xad\xe4\x6c\xdf\x3e\x20\x79\xfd\x7b\x9a\xe4\x11\xc2\x22\x26\xb9\x94\x38\x14\xb9\x2d\x4b\x91\x47\x96\x80\xf9\x3b\x92\xf3\x05\x48\x40\x76\xb8\xb6\x25\x73\x81\x6b\xaa\xd9\x01\x91\x99\x36\x8d\x1d\x60\xe1\x41\xbb\x05\x87\x63\x0a\xd0\x21\x79\xc1\x64\x90\xc9\xad\x2f\xcf\xc3\x45\x20\xad\x23\x2b\xe4\x82\x7c\x64\x1a\x5a\x01\x38\x9e\x70\x82\x58\x60\x71\xe5\x51\x3a\xad\x6c\x5b\xe7\x13\x65\x67\xd2\x61\xe7\xf3\x5c\x88\xf7\x89\x1c\xaf\xdc\xf7\x4b\x68\x9c\xdc\x5d\x0f\x9c\xf3\x20\xb7\xab\x06\x78\x02\xeb\xa8\x93\xa5\x69\x21\xe2\x71\xcd\xc1\x2f\x66\x4e\xac\x26\x4c\xc8\x5b\xe0\x02\xb3\x48\x20\xd7\xa7\x3c\x4e\x6b\x71\x5f\x37\x46\xb0\x7f\x8e\xde\x8e\xf5\x19\xc7\x3b\xaf\x5a\xdc\xd7\x6d\x7f\xd1\x52\xff\xd4\x93\x81\xa3\xa1\x67\x8c\xa7\xa4\xd5\xb4\xdc\xc9\x1d\xe1\x69\x6f\x4f\x34\x39\x55\x37\x89\xb4\xc8\x3e\x3c\x6b\x30\x03\xb3\x60\x41\x85\x3a\xa0\x47\x43\x51\x1a\x84\x75\xe1\x28\x02\xe4\x05\xbf\x70\x41\x0a\x5c\xff\x80\x4c\xf8\x17\xdb\x68\xee\xda\x75\xaf\x06\xba\x7e\x83\x2b\x61\x46\xab\x64\xd7\xe1\x66\xbc\x82\xef\x57\x9a\xb6\xa5\xd2\x46\xb0\x30\xc2\x59\xca\x8c\x08\xcd\x62\x02\xdd\x7a\x47\xf3\xda\x5b\x51\xd3\xd4\x2c\x0a\xed\xa4\x52\xe4\xe0\x59\x31\xd5\xec\x50\xf3\xb5\xf1\x80\x0b\x74\x44\x98\x37\x09\xd5\x41\x12\x5b\xce\x5c\xc7\x6c\x4a\x85\xf3\x4a\x36\x0c\xd7\x71\xf5\x2d\x4e\xb3\x11\xd2\x28\x04\x74\x80\x08\x61\x06\x54\x1c\x87\x5a\xc0\x7a\xae\x1c\x87\x35\xfc\xbc\x86\x65\x7b\xa4\xde\x0e\xd5\x30\xd8\x0c\x4a\xd4\xbf\x9a\xc1\x26\x54\x69\x62\xc7\xd4\xa4\x2c\x05\x42\xec\x0e\xb2\x6f\x57\x95\x2d\x0b\xb5\x8f\xb6\x26\x27\x43\x42\x45\x39\x9b\x69\xcd\x6d\x4d\xad\x4c\x31\x9b\x34\x31\x67\xe9\xd4\xc9\x7a\x58\xef\xc0\x9f\x6d\x5b\xf8\xc0\x31\xd2\x90\x99\x80\x7f\xba\xda\xf4\x11\xe9\x89\x4a\xea\x97\x33\x49\x16\xd6\x0b\xd9\x36\x4d\x1e\xe9\x52\x91\x45\x8a\x99\x16\xe8\xb4\x76\x93\x07\x5f\x51\xf1\x23\x6f\x0c\xd1\x2e\x6a\x00\xca\x1a\xb7\xb0\x17\x07\x65\xfc\xda\x73\xbb\x96\x62\x7f\xc9\xa1\x5a\x57\x69\xcf\x6b\x53\xb5\xac\xae\x22\xc7\xe6\xd9\x91\x61\x58\xae\x45\x60\x01\xb1\xd2\x2a\x16\xfd\xa2\x33\xb6\x49\xd6\x03\x43\xe2\x39\x1d\xb3\x64\x6b\x9f\xe9\x46\x46\x1d\xe8\xda\x62\xe3\x18\x1d\x9e\xa1\x53\x19\x6a\x54\xa7\x65\xd6\xe6\x4c\xa1\x69\x56\xe7\x62\x5e\x35\xcf\x42\xb9\x8e\x2d\x26\xea\xc0\x9e\x36\x99\x6a\x13\x04\x54\x78\x85\x04\x50\x49\x75\xea\x74\x78\x95\x94\x2d\x48\x9b\x0d\x24\x40\x6c\x6a\x18\xc7\xd6\x90\x4d\x6b\xa7\xb2\x71\x88\x6d\x4b\x28\xd4\xc1\x84\x08\x29\x18\xe1\x2a\x7f\x59\x17\xa3\x6a\x7c\xf6\x87\x91\x28\x51\x57\xaf\x16\xa0\x7a\x6a\xc5\x3c\x0f\x1d\xf6\xaa\xa4\x8b\x6e\x14\xcc\xe8\x35\x34\x5d\x42\x92\x37\xf2\xb4\xa2\x7c\xb4\x76\x9c\x3b\x17\x5e\x6f\x5d\x0e\x7f\xe0\xf0\xd1\x92\x80\x48\x56\x1a\x1c\xc1\x4c\x78\xfb\x92\xfd\xc8\x66\x40\x0c\x85\x57\x84\x81\x10\xb9\x22\x73\xba\x38\x22\xb0\x6b\x3a\xff\x0a\x33\x7a\xb4\xdf\xc2\x83\xbc\x3a\x3c\x00\x29\x36\xac\xc0\x3a\x4b\x80\xbb\xca\xf2\x75\x2d\x66\x3d\x3b\x70\x06\xac\x5f\x5f\x57\x58\xdb\x75\x9a\x2c\x0f\xa9\x52\x7c\x6a\xae\xa1\xc0\xce\xb9\x9a\x23\xd9\xe2\x53\xaf\xc0\x7c\xd5\x7e\xc9\xcc\xc6\x67\x15\x83\x16\xe6\xdf\xe5\x1a\x78\x90\x28\x15\x52\xa9\x45\x6e\xc0\x92\xc8\x54\x91\xdf\x0b\xa9\x7f\x1f\x60\x5b\x38\x5d\x19\x6b\x93\x59\x8b\xc5\x41\x01\x73\x8b\xbb\x4c\x5d\x4b\x38\x84\x06\xc9\x5b\x6b\x57\x7e\x5b\x40\x95\xdc\x7f\xfa\xa4\x92\x5d\xbf\x1a\x4c\xd5\x04\x5a\x88\x60\xbe\x3b\x33\x10\x3c\x47\xd5\x4d\x82\x64\x90\x32\x97\xc8\x37\x97\x29\x2b\x01\x0a\x23\x3f\xf7\xd1\x86\xf3\x85\xae\x4d\x34\xa8\x8a\x46\x35\xf6\x31\xc4\x56\xcd\x4f\x7a\xc1\x2e\xa6\x8e\x86\xe2\x86\xb1\x66\xc0\x4d\xbf\x17\x58\xd3\x1f\xc6\x6a\xd3\x7b\x57\x51\xda\x2e\x42\x0f\xe7\xc5\x44\xed\x15\x54\xb3\x06\x06\xa3\x5e\xc7\xdf\x24\x5c\xb0\x49\xc6\xf5\x36\xed\xb0\x72\x5c\x13\xf8\xc3\xd1\x50\x7c\x90\xa9\xbd\x82\x95\xc5\x55\x1a\xd3\xe8\xfe\x90\x89\x98\xd0\x4c\xcf\x10\x84\xc1\x9a\xa1\x97\x96\x1a\x8c\xa4\x01\x64\xe3\x93\xfc\xb9\x8a\x68\x6a\x2f\x8f\x09\x7d\x90\x6e\x14\x43\x11\x34\x02\xc8\x4d\x00\xd5\x07\x78\xe5\x4d\x6a\x1b\x03\x68\xd4\xa6\xb5\xa8\x43\xe2\xae\xe0\x70\xaf\x3e\x67\x05\x64\x71\xc0\x9c\x12\x4c\x59\x91\xbd\xb4\x3a\x03\x67\xdc\x72\xba\x92\x0a\x6b\x33\xfa\x37\x0f\x6c\x10\x30\x9a\x77\xec\x0c\x8c\xa4\xf3\xbd\xe3\xb5\x05\x38\x8a\x49\x96\x42\x2c\x47\x5d\x9b\xdf\x46\x33\x9e\xe4\xa6\xee\xef\x0e\xfc\x30\x4d\x93\x09\x7b\x60\x09\xa2\x16\x45\x29\xf8\xb9\xd1\xe7\xfa\x3d\xf9\x3f\x88\x4e\x4d\x7e\x18\x8a\x8f\xc0\x86\x93\x64\x09\xc9\xda\xbe\x65\xaa\x4b\xcd\xdc\xd7\x0e\x40\xdb\x88\x12\x52\x1c\x08\xee\xf5\x8c\x3e\xb0\xa1\x70\xcd\xfc\x1f\x72\x4f\xfe\x95\xfc\xd0\x64\x15\x72\xee\xea\x27\xb6\x19\x7c\x08\x9c\xc1\xc1\x2d\x67\x19\xa5\xe5\x37\xce\xa4\x50\x30\xe8\xd5\x24\x68\x78\xbc\x14\x2e\x1e\x64\x54\x89\x89\x08\x4f\x2d\x4d\x99\xd0\x23\x21\x63\x36\x62\x35\x1e\xb0\x15\x4c\xc2\x08\x01\x17\x32\x66\x6b\xfd\x57\x9e\x99\x7e\x06\x33\x88\xca\xc6\x7e\x3b\x20\x4e\xdc\x07\x05\x7b\x4d\xbe\x48\x69\xf5\x23\xf7\xc0\x06\x9b\x8c\x7b\x53\xdf\xdb\xa5\x95\xcf\x0e\xe0\x42\xb0\x03\xa8\xf7\xff\x24\x54\xbb\x50\xda\xf2\x71\x2c\xdb\x9d\xcd\xcb\x66\xe6\xf6\xb2\x0a\x20\x1b\x00\xeb\x2d\xe5\x53\x6e\xe4\xf7\xf6\xfe\x3d\xe0\x84\x9b\x18\xcf\x31\x7f\xbd\x95\xf5\x3c\x5f\x0a\x97\xaf\x73\xe8\xe9\x2f\xf7\x59\x8d\x65\x56\x16\xe0\xed\x02\x70\x15\x06\xf9\x5a\x59\x7d\x69\xf8\xf0\x14\x03\xc9\xd8\x8c\x63\xe8\x76\xef\xf4\x9c\x98\xd3\x21\xe7\x98\x96\x05\x8b\x96\xe9\x99\x4c\xf9\xdf\x1b\xe3\x7d\x9a\x65\xf4\xdc\x31\x97\x87\x47\xe1\x38\x8b\xd2\x3a\x10\x2b\x8a\x14\xba\xa0\x95\xd4\xe9\x4c\x64\x9c\x41\x7a\xbf\x61\xb3\x93\x2c\x41\xe8\xae\x48\xa6\x31\x96\xcf\x50\x85\x60\x2c\xf3\x9e\x17\xef\xa9\xf6\x0d\x72\x9b\x05\x6d\xc1\xc1\xa2\x19\x15\xd3\xd5\x02\xe8\x9f\x33\x96\xed\x28\x9e\xcd\x02\x76\x3e\x53\xa0\x40\x59\x0d\xa0\x53\x95\xc7\x36\xe2\xda\x18\xde\x9c\xaf\xef\xdf\xcc\x4c\x55\x10\xfa\xe8\xac\x74\x3e\x19\x16\x55\x72\x44\x76\xee\x64\xd1\xb9\xb6\xc7\x6f\x07\x36\x9d\x27\xf1\xff\x57\x73\x2a\x56\xb8\xfc\x91\xf2\x3c\x1c\xd6\xcb\x98\x4b\x3c\x23\x2f\x49\x21\xbb\x36\x9d\x74\x50\xc8\xdd\xa0\xec\x08\x2d\x87\xad\xfa\x4d\xeb\x49\xe4\xa6\x68\x98\xe9\x4c\x17\xd8\xf7\x08\x3c\x64\x5b\x1b\x86\x03\x83\x67\x1e\x63\x8b\xc9\x15\x2e\x8f\xea\x99\xcc\x36\xe0\x73\x2c\xa6\x77\x04\x2e\xc7\xa6\x3c\x9e\x60\x44\x1b\x5c\x51\x55\x95\xa8\x7e\x6c\xee\x71\xdb\xa1\xac\x74\xb4\xb4\x74\x9b\x80\x3d\x60\x15\x9f\x3b\xb7\x21\x51\x45\x87\x03\xc6\x65\xc8\xc0\xe7\x0a\xbe\x87\x4c\x11\x9d\x52\x88\xae\x85\x98\xc8\xcf\x28\xd3\x72\x85\x3a\xa7\xc3\x2c\x32\xca\xac\x45\xa2\x04\x0e\x6a\x81\xeb\xf4\x8c\x0a\x9b\xaa\x57\xe7\xdc\xf0\xd0\xfa\xfe\x24\x84\xee\x8d\xba\xce\xa0\x23\x2b\xc8\xd7\x36\xe9\x16\x3a\x0c\xfd\x2e\x45\x1c\x37\xf9\x32\xb9\x82\x94\x01\x9a\x34\x6a\x8f\x63\x29\x13\x46\x45\x93\x90\x5d\xfb\xb8\x62\x6b\xe2\x61\x94\xb1\xd1\xff\x8c\x78\x96\x66\xcc\x68\x18\x34\x49\x4a\xf3\xa2\x50\x56\x47\x7b\x60\x4f\x54\x11\x73\x84\xa8\x66\x57\xcb\x41\x78\xf2\xc7\x2c\xe9\x14\xbe\x82\x1f\xac\xa4\x22\x78\x25\x2f\xfb\xd2\x2a\x5f\x2b\x8c\xad\xa8\xcd\x6e\x5b\x37\xb0\x30\x27\x6e\xd5\xe8\x7a\xc5\xbc\xb2\xcd\x86\xa8\x58\x94\xa5\x5c\x2f\x47\x56\xcd\x6e\xcf\xb4\x6e\xec\x97\xa7\xf6\xc3\x36\x32\xec\x09\x71\xfd\x39\xb5\x9e\x48\x8b\x6e\x16\x4c\xa1\xcd\x76\x1b\xb9\xb4\x36\xeb\x65\xd5\xc2\xba\xb4\x9b\x76\x43\x35\x5d\x6c\x3a\x3c\x0b\xb3\x34\x92\x13\x97\xd0\xd2\x7e\x61\xcb\xf8\x53\x1d\xec\x13\x29\xc2\xd7\x90\x45\xca\x65\x6a\x61\x9e\xda\x84\x64\xcc\xe9\x97\xd1\x82\xa6\x34\x49\x58\xc2\xd5\x7c\x73\x6b\xca\x1f\x7e\x5c\x39\xda\x53\x84\x23\x53\x16\xdc\xef\x0b\x9f\x67\xf3\xa0\x5c\x1b\xe0\x1d\x04\x59\xcb\xd6\x40\x69\x93\x6f\xdc\x00\xf3\x8b\x46\x68\x9e\x06\x79\xe8\x46\x03\xe0\xca\xf2\x67\xab\x1c\xd0\x68\x06\x65\x74\x26\x94\xa7\x82\x29\x75\x44\x2e\xa4\x66\x27\xe4\x13\x5d\xdc\x82\x78\x8b\x30\xbe\x53\xb4\x47\x51\x45\x8c\xe4\x94\x09\xae\x0f\x86\x02\x23\x7b\xfc\xaa\x1c\x47\x52\x60\x2a\x7b\x04\x0b\xeb\x9b\x00\x03\x8b\xcb\xe9\xd6\x64\x92\xca\x39\x50\x49\xb7\x2c\xce\x62\x20\x10\xc0\x30\xcf\xe1\x92\x57\x39\x8c\xa5\x33\xd5\x7a\x11\xab\x40\x8a\x90\x76\x0e\x1f\xc7\x92\xa9\x40\xb5\x01\x2a\xc6\x2b\x83\x4f\x98\xa1\x90\xa1\x30\xba\x5d\xa8\x86\x61\xf6\xba\x4b\x66\x37\x9d\x46\xa9\x54\xca\xc6\xf6\x60\x3b\xab\x83\x10\x6f\x6d\x6a\xf1\x2e\x7c\xb6\xcf\x17\xdf\x5b\x2d\xa1\x18\x54\xdd\xa8\x17\xfb\xc7\xcc\xa7\x51\x37\xde\xb4\xdb\x06\x00\x3a\x36\x44\x52\x46\x95\xb5\x3d\x41\x9c\x5c\x29\x40\xa8\x83\x64\xee\xc7\x8c\x91\xb2\x87\x1e\xb8\x20\xa0\x20\x0b\x21\x84\xe5\xce\x0c\x5d\xa7\x29\x83\xda\x25\x88\x61\x33\x28\x11\x0d\xc0\x0d\xa5\x8c\xc6\xcb\x60\x45\xbc\x75\x05\x7b\x06\xc9\x44\xf1\xb9\xe1\x9d\x80\x9d\x26\xe4\xa1\x5c\xb8\xc3\x5a\x78\x0b\x50\x27\xf8\xc4\x10\x62\x60\x9b\x31\x5f\x88\x43\x28\x82\x65\x8e\x57\x8d\x63\xca\x35\x02\x8e\x2c\x80\xd0\x99\x31\x4b\xb8\xc3\x77\xbd\xf7\x97\xd7\xb7\xfd\xb3\xe1\xbb\x3c\x14\xc1\xc5\xad\x39\x46\xe2\x93\xe2\xa5\x18\x0a\xef\x3d\xf4\x49\x83\xb0\x97\x84\xc6\x71\x9e\xb2\x8d\xd1\xb2\x23\x74\x7e\xb4\x3d\x15\x6b\xfd\x86\xd5\x66\x3e\xf0\x2f\x2c\xbe\x6e\x00\xa5\xdc\x49\xa4\x47\x2b\x0b\x79\x2d\x89\x1b\x2e\xd9\xe1\xf6\xf5\x53\xb9\x33\xdf\xb5\xa7\x60\x3c\x09\xa5\x24\x1e\xc8\xe0\xd1\x84\xfa\xaa\xa6\x13\xa0\x01\xc3\x99\x21\x3d\xc4\x10\xed\x92\xfc\x48\xe6\x5c\x40\x00\xf6\xaa\xa5\xbd\x2b\xce\xa3\x0b\xe2\xf8\xe0\xe2\xae\x58\x0e\xe4\xa7\xcb\xbb\x22\x8e\x6e\xef\xd7\xd5\xd8\xe1\xc5\x16\x56\x19\xd1\x82\x29\xe6\x91\x6e\x36\x97\xc9\xaf\x4c\xdd\x44\x3f\x32\xfd\x0b\x96\x1f\xda\x85\xeb\xda\x22\x8a\x82\x8a\xcd\x46\xae\x00\x55\x7b\x32\xf8\xa5\xa6\x64\x55\x31\x3e\xc1\x61\x96\x42\x0f\xbe\x66\x55\x10\x9b\x7d\x84\x88\xb1\x50\xe5\x06\xec\x78\xce\x08\x6c\x6e\x4c\x29\xcc\x72\x0d\xe1\x6d\x5f\x83\x20\x6f\x4e\x4e\xf0\xe3\x56\x4e\xc9\xeb\xd0\x15\x69\xda\xca\x97\x92\xf4\xae\x06\x35\x6b\x7d\x5e\xd6\x42\xbe\x2e\x28\x8b\xc4\x2b\x44\xbb\x46\xb1\x08\x62\xca\x5e\x05\x80\x85\x9d\xe9\x76\xd8\x15\x68\x37\xba\x2a\x1a\xa3\x9e\x54\x16\xda\x42\xf4\x29\xc4\x5d\x5a\x7f\xf0\x6e\xf2\x9a\xf2\x65\xe8\x98\xd8\x14\x0e\xc8\xfa\xee\xc3\x64\x9e\xaa\x63\xe8\x20\x4c\xee\x41\xcc\x7e\x67\xf9\xda\x59\xc2\x53\x3e\x9b\x36\x19\x4f\xbf\x20\x45\xfb\x6c\x01\x48\xdb\x77\x60\x6c\xce\xa1\x63\x83\x77\xc3\xe9\x86\xd4\xd6\x2d\x49\x2a\x1f\x9f\x33\xff\x5a\x1c\x44\xba\xa0\x16\xfe\x19\x84\x41\x97\x2c\x5e\x07\xaa\x75\x34\x14\x61\x25\x70\x14\xdf\xcc\x19\x71\xc0\x04\x00\xd2\x67\xd8\xa9\x8d\xac\xf0\x37\x73\x61\x07\xca\x31\xc2\x7a\x56\x84\x16\xa8\xf4\x63\x4f\xa7\x9a\x51\x17\x3d\xe6\x34\x1e\x1b\x93\x10\x22\x21\x40\x7b\x41\x4e\xb5\xed\x98\x3d\x30\x81\x40\x07\x34\x80\xaa\x0a\xa2\x77\x8d\x72\x24\xbe\xd1\x3e\x3e\x8f\x27\x16\x0e\x81\x7a\x9f\x7c\x6e\x67\x57\x94\xdb\x96\x57\x1f\xf0\x1d\x64\x60\xa9\x12\xf8\x78\x87\x63\x05\x5f\xb6\x31\x13\x00\x25\x84\xe6\x6c\xe8\xb4\x29\xdd\xea\xcb\x82\x45\x9b\xe4\xd0\x5c\xb9\x8a\xac\xab\x2c\xda\x45\xfc\x4b\xb0\xd6\xba\x1d\xb4\xfd\xe2\x2e\x22\xd8\x80\x98\x36\xc4\xf8\x9d\xaf\xcb\x89\xf1\xb3\xe8\x94\xe1\x66\xa6\xf1\x8b\x45\x57\xe8\x38\x0b\xdb\x4f\x3e\x0d\x6b\xb0\x87\x7c\x65\x64\x01\xdb\xce\xe9\x79\x72\x41\x6e\x2b\x59\x15\x05\x8b\xf3\x2b\x49\x02\x59\x3f\xca\xa6\xec\x8f\x75\xbc\x74\x27\xbc\xdb\xb9\xa5\x5d\xdc\x63\xe9\x50\x15\x1c\xde\x40\x25\x20\xef\x63\x22\x44\x7d\x06\x07\x08\x2d\x75\x4e\xb6\x20\x78\xc7\xa6\xb0\x9a\xc5\x53\x9a\xce\x3d\xf6\x47\x19\x58\xa6\xb4\x5c\x6b\x78\xdc\xae\x22\xf2\xf7\x12\xcd\xae\x25\x9a\x0e\x66\x20\xa4\x4e\x96\x96\x12\x6d\x2c\xe0\xab\x8d\xea\x2e\x4e\x10\x02\x46\xec\x15\x69\x51\x23\xe1\xea\xe7\xc2\xff\x55\xe4\xe0\x8e\xa8\x43\x52\xad\x8b\x84\x3b\x0a\x50\x81\xc1\xca\x99\x84\xd2\x80\x35\xcd\xc2\x68\xd1\x93\x86\xe5\x2e\x06\x17\x58\xa1\x02\x22\x52\x97\x32\x23\x8f\x5c\x19\x5d\x78\x28\xc0\xd5\xe4\xcb\x62\x68\x69\x4b\x59\x1c\xc0\x5b\x10\xbb\xae\xb2\xf1\x9c\x6b\x42\x83\x19\xde\x01\x67\xb8\x76\x51\xcb\x78\x9e\xcd\x07\x30\xe3\xda\xe0\xe8\xba\x1c\xa5\x35\x87\x66\x03\xe3\x4f\xde\xc8\xb6\xf1\xcf\x81\x5b\xfc\x69\x23\xa0\x03\x8d\x27\xd4\x30\x6b\xcf\xdc\x3e\x04\x9a\xd4\x5b\x1b\x2c\x30\x00\xa0\x37\x70\xa5\x4b\x77\x8b\x85\x03\x58\x13\xfe\x9c\x6f\x44\xab\xf8\xe7\xfc\xf5\x5d\x04\x40\x37\x21\x35\xad\x0a\x88\x73\x9f\xd4\x0b\x5a\x37\xbe\x30\x9d\x74\xb1\x17\xa1\xa4\x74\xd5\x28\x29\xbd\xb6\xb4\xce\xa0\x06\xe7\xc6\x11\x0a\x5d\xd4\xc1\x3c\x2b\x29\xa4\xa2\x20\x46\xae\x98\xc8\xc3\xca\x9c\x5f\x48\x0d\xa1\x41\x11\xc0\x37\x57\x82\xf3\x86\xa2\x5e\x02\x59\xcd\x13\xb7\x8d\xf2\xd9\x69\xfa\x67\x70\xfe\xdc\x2c\xac\x45\xeb\xb3\x0f\x72\x46\x65\xd9\x97\x92\x67\xa5\x23\xe9\x5c\x15\x0d\x0a\x08\x08\x1e\x9b\x44\x89\xd6\x9c\xca\x96\x31\x38\x6b\xcf\x85\xbd\x74\x77\xa8\xda\x55\xb8\x73\xeb\x90\x25\x2f\x23\x5b\x6e\xec\x7c\xee\x4e\x8d\x2f\x79\x9c\x36\x01\x98\x04\x54\x85\x9d\x61\x41\x94\x43\xca\x4d\xe3\x07\xe0\xa5\xb2\x43\xa7\x58\xd8\xca\x83\xf0\x94\xb6\xa4\x30\x61\x0b\xdc\xfd\x04\x93\xee\x0a\x0a\x1a\x80\xe5\xa5\x16\x18\x8d\x87\x76\x03\x40\x03\x75\x85\x77\x8b\x7c\xd8\x8b\x76\x99\x88\x59\x2a\x18\xd5\xb3\xe7\x0b\xd3\x39\xdd\xd6\x38\xfd\x6c\x21\x3b\xa7\x3b\x41\x84\x2e\x85\xc1\x74\x8c\x80\xe9\x10\x4e\x92\xe3\x83\x56\x14\xc7\x3a\x24\xfe\x3c\x6f\xa8\x0b\x95\x6e\x15\xc9\x53\xaf\xcc\x3d\x4d\x4c\x53\x8d\xd5\xa7\x12\xcd\x64\x0e\x7b\x88\xaa\xba\x66\x49\xbe\x8a\xe0\xa1\x94\x3e\x5a\xdb\xda\xc8\xdc\x41\x23\x84\x23\xeb\xb0\x9b\xd7\xf4\x11\x01\xa2\xce\xa8\xa6\x58\x71\x7e\x35\x58\x53\x08\xa3\x00\xe9\x56\x1e\x0c\x63\x81\xee\x60\xcb\xbd\x7c\x79\x56\x8c\x9e\xf9\x96\x1f\xb1\x23\xf2\x3e\x91\x63\x75\x40\xb0\xd2\xd2\x01\x0a\xf6\xf0\x1c\x31\x03\xbf\x7b\xfd\x21\x52\xbf\xcd\x08\xa9\x55\x86\x14\x6f\xdb\x87\x92\x22\x05\x38\x3c\x94\x40\xd6\xc8\xa3\x9b\x97\xfd\x74\xb6\x88\xd0\xe9\x6f\x7f\xb1\x3f\x34\x14\x42\x5b\x53\xdc\x33\xb4\x8b\x88\x65\xd9\xbc\x48\xd3\x38\xb1\x49\x88\x68\xea\x28\xe9\xb1\xab\x4c\x2e\x43\xf1\x93\x7c\x64\x0f\x2c\x3d\x20\x54\x93\xb9\x34\x6a\x48\xe0\x67\x87\x44\xa9\x02\x36\x0c\xfa\x53\x29\xb9\xa0\x73\x16\xf7\x41\x98\x0d\x12\x24\xac\xe1\xc7\xba\x6c\xea\x72\xed\x21\x6d\x1c\xb7\xc1\xf9\x5f\x87\x02\x6b\x86\x62\x0c\x07\x70\x1d\xee\x26\x06\x57\xe2\xef\xbd\x43\xe9\xf7\x47\xe4\xd6\x50\x3a\x57\xc5\xf1\x06\xa9\x77\x4d\x63\x1b\x8a\x69\x2a\xb3\x85\xd7\xc5\xe5\x18\x8c\x00\xe8\x58\xaa\x71\x28\xc1\x60\x9c\x37\x29\xa2\xb1\x91\xe9\x57\x13\x4e\xc1\x74\xf4\xca\x2c\xa2\xc5\x24\x96\x90\x80\x0c\x77\xf0\xf1\x23\x36\x42\x10\xfd\x40\x41\x1e\x4b\x33\x78\xd7\x93\x39\xa9\xce\x98\x02\xed\xd2\x5b\xef\x0a\x21\xcd\xc5\xb0\xf9\xda\x71\xae\xb2\xad\x78\xfb\xa7\xb3\x11\xd6\x47\xe4\xe7\x9d\xdb\xd8\x11\x57\xf1\x0a\x2b\x66\x3e\x95\xd5\xc5\x11\x52\xfb\xf8\x9c\xd2\xda\x5d\x65\xe9\x42\x02\x4f\x4f\x96\x2e\x83\xc0\xa6\xf9\x2d\xe4\x22\xc3\xf8\x18\x1e\x86\x4b\xd4\x52\x36\x57\xfa\x13\xd5\xd1\xcc\x28\x30\x79\xba\xdb\x8e\xe2\x86\x72\xae\xfc\xb4\x96\x98\x9a\x19\x9c\x86\xbd\x37\x98\x26\x5b\x58\xe6\x10\x2f\xc3\x85\x1b\xc2\x5f\x49\x42\xe6\xa6\xbf\x02\x40\x7a\x60\x5f\x71\x9f\xd8\x27\x50\xa8\x71\x0d\x15\xad\x1b\x7f\x3b\xda\x2a\xa2\x73\xee\x3c\x22\x69\x8b\x6c\x26\x28\xa5\xce\x05\xc9\x5f\x24\x56\x42\xaa\x65\x39\x59\xca\x37\xd2\x62\xad\x7d\x18\xe0\xd0\x73\xcb\xcd\x9c\x2e\x8c\x38\xa2\xa5\xb9\x25\xd3\x29\x3b\x20\x8f\x86\x17\xe8\x2c\x35\xf7\x48\x96\x72\x77\xf6\xc1\xdc\xd2\x86\x3a\xc0\xd2\x71\x8c\x12\x30\x0a\x9a\x11\x0d\x80\x69\x6d\xa5\xe9\x48\x67\xd4\x07\x38\x01\x4d\x24\x5c\xdc\x9b\xce\x10\x35\xcb\x39\xe8\x52\xc3\x8b\xa5\x4f\x24\x2c\xec\xe9\x5a\xc2\xde\x62\x97\x9b\xcb\x2c\xac\x3b\x69\x5c\x4c\x83\xcc\xd8\x7a\x6b\x53\x1b\xe0\xab\xda\x2f\xdb\x81\x77\xd5\x7e\xea\x64\x9f\x4d\xbe\x5d\x91\x47\xd8\xf8\xf9\x3a\x01\xb6\x10\xcc\x69\x03\xea\xac\xf4\x14\xe6\x2c\x5b\x4b\x00\x40\x0f\x60\x11\x0f\x6a\xa5\xa9\xff\xf4\xff\x42\xd0\x51\x5c\x9a\xff\x24\x32\x1d\x0a\xfc\xfd\xc0\x83\x94\x99\x17\xf2\xec\x7f\x3a\x67\x79\x7e\x74\x9a\xcb\x89\x3e\xbb\xc5\xe6\x86\x22\xd2\x83\xc7\x68\x32\x63\x08\x2a\xa6\x54\x4a\x58\x60\x25\xf5\x39\x13\x46\x17\x70\xe2\x6a\x6e\xbb\x40\x92\x46\x6c\x64\xe0\x56\x86\x59\xda\xb4\x82\x1c\xe2\x1d\xfa\x44\x51\xd6\xa6\xb5\xe7\x6e\xda\x7a\xea\x77\xf5\x45\x36\x93\xd8\x6f\x7b\x37\x3f\x8f\xae\xfb\x37\x97\x77\xd7\xa7\x05\xb1\xfd\xf4\xfc\xee\xe6\xb6\x7f\x5d\xfb\x0c\x6b\x04\x0e\x2e\x2f\x46\x7f\xbe\xeb\xdf\x35\x3c\x72\x0d\x9c\xf7\xde\xf7\xcf\xc3\x57\xfe\x7c\xd7\x3b\x1f\xdc\xfe\x3a\xba\xfc\x30\xba\xe9\x5f\xff\x32\x38\xed\x8f\x6e\xae\xfa\xa7\x83\x0f\x83\x53\xac\x99\x1c\xbc\x7b\x75\x7e\xf7\x71\x70\x31\x72\xe1\x8b\xe1\xa3\xcf\x97\xd7\x3f\x7f\x38\xbf\xfc\x3c\x0a\xba\xbc\xbc\xf8\x30\x58\x5d\xa9\xb5\x7e\xbe\x8d\xa0\xee\xc1\x55\x15\x28\x98\x81\x20\x34\x5e\x5a\xe2\xe5\x7f\x07\x33\xe7\x15\x52\xdc\xe1\x81\xfb\x17\xd6\x49\x38\x34\x4c\xce\x59\xd0\x73\xfe\x30\x14\xde\xc5\xe1\xaf\x4d\x4d\xa7\xca\x15\x37\x2d\x8c\xf6\x84\xf4\xe0\x34\x80\x4a\x50\xe8\x14\x32\x85\xfc\x48\x9d\x53\x0c\x28\x0d\xca\x1e\xdb\x52\xbe\xe5\x2d\x2d\x36\x68\xe7\x04\x43\xb0\x16\xfe\x78\x15\xbd\xbb\xfa\xc0\x45\x5a\x38\x21\x8e\x07\x9b\x66\xcd\xb8\x00\x5a\x60\x29\xe8\xbc\x52\xc2\x15\xb3\xeb\x6d\xde\xbd\x39\x37\xe5\x16\x0b\x24\x54\x6c\x79\xc6\xc8\xcf\x7f\xca\x07\x05\xd6\x4e\x6b\x3d\xcc\x2a\xe0\xc3\xf6\x41\x9a\xe1\xaa\xae\x23\xc0\x42\x4f\xee\x20\x5b\x33\x14\x9c\x4c\x5b\x86\x01\x4c\xd3\x99\x08\x72\x5b\x0b\x76\x6a\x5b\x7f\x88\x1c\x92\x12\x15\x9f\x90\x1b\x96\xb0\x48\xe7\x35\x64\x61\x17\x17\x49\x36\xe5\x95\x2a\x2c\x63\x36\xa3\x0f\x5c\x3a\x74\x32\x04\x71\x83\x75\xb4\xc2\x13\x39\x24\x8d\x47\xe1\x84\xf4\xe2\x58\x15\x59\x58\x81\x72\x1c\x53\x3c\x2c\x0e\x3b\x4c\x47\x15\xb1\x67\x8c\xb5\x86\x83\x9a\x5b\x6f\x2b\x3c\x08\x75\x3f\x72\x24\x36\xda\xe8\x1a\xbe\xa5\xea\xbe\xa6\xe8\x52\xed\xcd\x66\xe9\x67\xcb\x1e\x9b\x2b\x3d\xd5\x76\xea\xd7\x7a\x04\x07\x60\xb3\x3e\x1b\xc1\x38\xd6\x74\xe9\x66\x9c\x94\x10\x53\x5b\xf7\x57\x40\x5c\x7d\x7a\x8b\x6d\xbd\x1c\x04\x47\x65\xe4\xe9\xb2\xc3\x3c\xae\xe0\xd3\x4b\xff\xe5\x4a\x61\x69\x14\xac\x5b\x57\x3b\x6e\x25\x11\xcf\xda\x72\xdb\x8b\x48\x80\x45\xc5\x23\x30\xa7\x53\x2e\x2c\x42\x21\xf3\xf6\x5e\x57\xc2\x01\x6b\xd9\x5b\xfb\x34\x1d\xcb\x87\x82\xca\x35\xc7\x7a\xd3\xb5\x67\x37\x30\x14\x6d\x73\x68\xfd\xe9\x69\x5f\xe6\xdf\xec\xb5\x3b\x2f\x6b\x4b\xfb\x5f\x87\xfa\xa2\x9b\xa8\x11\xe3\x62\x17\xc7\x46\x2e\x31\x9b\xc5\x9c\xfd\x83\xdc\x55\x2d\xd3\xc0\x83\xdf\x60\xc3\x69\x6b\x6c\x2a\x2f\x58\x2d\xf0\x64\x68\x22\xef\xee\xe1\x0e\x5a\x6f\x05\x86\x14\xc4\x33\x54\x6a\xcf\x16\xd7\xa7\x03\xd5\x15\xfc\x09\x61\x0d\x08\x2c\x57\x84\x05\xa2\x82\x91\x1e\x10\x8a\x49\x44\xb9\x04\xa2\xb2\x68\x86\xf0\x85\x86\x9d\x1f\x0c\xc5\x63\xb0\x21\x85\x30\xbb\x5e\xd8\x12\xc0\x3d\x7c\x31\x0c\x8a\x3f\x14\x82\x17\x41\xcc\xe2\x10\x49\x17\x10\x02\x1a\xdc\x73\x44\xcd\x35\x04\x1e\xec\xd7\x16\xa4\xbe\x01\x7c\x72\x4d\x41\xa8\x3a\x10\x65\x3f\xb7\x00\xbb\x78\x57\xc0\xc9\x2b\x86\x10\xc0\x27\xd7\x8d\x60\x07\xe8\xc9\x2f\x03\x99\x8c\xb9\x73\xf3\xb1\xcd\x64\x35\xd3\x75\xab\xfd\xaf\x6e\x46\xff\x8a\xd6\xf8\xac\x21\xf5\x39\x68\xcd\xc3\x00\x91\x43\x28\x5f\x68\xf3\x2c\xad\xa3\x53\x91\x43\x92\xf0\x7b\x46\xbe\x81\x38\xa6\xde\xd5\xe0\x9b\x03\xf2\x4d\x98\xcb\xf1\xcd\x46\x07\xd0\x8e\xdb\x22\x28\x83\x06\x52\x08\xe8\x2d\x1e\x3b\xd8\xab\xd2\x49\xb4\x7b\x66\x0f\x22\x69\x3a\x87\xe6\xcb\xc2\x37\x5c\x68\x96\x62\xc5\x79\x88\xfb\xf4\xe1\x84\xd6\x31\x82\x72\x21\x57\x35\x6b\x17\x0f\xc5\x78\x59\x76\x7d\x1c\x78\xdf\x47\xeb\x53\xba\x35\xca\xad\x69\xaf\x9a\xfc\xb7\xe3\x30\xb7\xd5\xf7\xc1\x9a\x74\xc2\x9e\x2f\x56\x96\x73\x31\xd5\x70\x5e\xf6\xf1\xa1\x75\xb3\x2a\x58\x91\xdc\x62\xd6\x6e\xca\x3a\xf9\xe7\xad\x91\x5b\x8b\xa0\xca\x5e\xdd\x8a\xd8\x78\xda\x06\xc1\x77\x4f\x65\x4f\x4b\x65\xbb\x88\x27\x2e\x0e\xae\xfb\x05\x7a\x8a\x72\x5c\xd0\x8c\x33\x43\x1a\x65\xc2\x33\xf8\x02\x14\xf2\xfa\x1a\x02\x1d\x3d\xa1\xc1\x9a\xac\x77\x85\xde\xa0\x3b\x1d\x9d\x91\xd5\xb1\x96\x87\xda\xd3\x16\x97\x51\x72\xcc\x1d\xd2\x7c\xce\x0e\x08\x94\xda\xcc\x43\x00\xec\x79\x05\x72\x83\x3b\xce\xd6\xd3\xc2\x4e\xd2\x68\xc6\x1f\xba\x25\x48\x75\x95\xc6\x9b\x68\x64\x8b\xf8\x8b\x8b\xde\xa7\xfe\xd9\xa8\x7f\x71\x3b\xb8\xfd\x75\x54\x0d\xc5\x28\x3e\xbe\x3e\xfd\x69\xf0\x4b\xff\x2c\x7c\xe1\xe6\xd7\x9b\xdb\xfe\xa7\xd1\xc7\xfe\x45\xff\xba\x77\xdb\x3f\x5b\x69\x4a\x5d\xd5\x59\x1d\xe0\xbe\x0d\xdd\xae\x51\xdf\x3c\x88\x1c\xda\x21\x01\xa0\xc0\x88\xfb\x0f\x5c\x71\x9b\xa4\x6b\x45\xd4\xbb\x81\x33\x8d\xd6\xf4\x7e\x12\xe4\xcf\x1c\x20\xb2\x5a\xde\x09\xb7\xee\xa4\x50\x7c\xb5\x51\x17\x22\xc6\x40\x4d\x12\x14\x4d\x3d\xaa\xe9\xc4\x2e\xd8\x09\xe9\x59\xea\xa8\x6b\x5f\x48\x62\x84\x67\x96\xe2\xe8\x31\x24\xc3\x0f\x9d\x1c\x92\xf2\x1a\x9f\x10\x84\xbf\x0d\x2a\x00\xf8\x06\x41\xe4\xa3\x29\x13\xdf\x68\xc2\xbe\x2c\x12\x1e\x71\x1d\x24\xde\xc8\xd4\x3a\x1d\xd0\xa9\x06\xd1\x5f\x6b\x88\x6b\x67\x31\x1a\x3b\xd7\xf9\x43\xff\x72\x55\xdb\xf7\x27\x4a\x4b\x9b\xbc\xb8\x16\x65\x74\x07\x8a\x7d\x83\x2b\xb5\x02\x88\xba\xc1\xe8\x9e\xc2\x3c\x50\x8d\x80\xb7\xc9\x33\x36\xd0\x83\x3a\xdc\xf6\x47\xbc\x11\x37\xab\x78\xbb\x3a\x7a\xa4\x70\xae\x57\x87\x8f\xb4\xa3\xd4\x17\x0e\x02\x29\x60\x8d\xef\xac\xb2\xe8\xa8\xa3\x1b\xbf\x02\xe8\x29\xee\x11\xe6\x90\xa4\x6c\x2e\xb5\x51\xc0\xd0\x4f\x7e\x60\x84\x2a\x4e\x13\xa8\x7b\x6f\x0e\xdc\x51\x10\x57\x00\x09\x36\x71\x18\x50\x6d\xb3\xb3\x9f\xbe\xc2\x68\x5e\xf5\xab\x52\x5b\xd4\x29\xef\x17\xcd\x45\x1e\xba\x15\x72\x2c\x6c\xd9\xfa\x22\x8e\x50\x34\x9a\xaa\x86\x0a\x8e\x80\x77\x1a\xbf\x96\x3a\x8e\xd5\xf4\xee\xd2\x86\xbe\x6c\x0d\xc7\xd2\x60\x5e\x4f\x21\xc7\xb5\xeb\xf6\x7a\xf3\xf7\x6b\x06\xda\xa2\x80\xa3\xf7\x60\x40\x8d\x85\x6e\x97\x8d\x0b\xc0\x2a\xb8\x31\xcc\xa1\xf2\xb7\x4e\xbd\xee\x48\xd5\xfd\xd6\xdd\xdd\x52\x75\xdf\xd0\xd5\xba\x7b\xe9\xb4\xe0\x26\x29\x2d\x9b\x0d\x0d\xb3\x00\x59\x61\xb5\xed\x66\x6e\xdf\x7f\x60\x42\xef\x44\x54\x82\x26\x6a\xf2\xf3\xda\x19\x3c\x11\x92\x7c\x70\x96\x73\x24\x5f\x08\x28\x08\x4a\xd0\x29\x05\x3c\x0d\xa6\x1f\x19\x13\xce\x49\xdd\xe4\x0f\x34\x53\x6b\xb7\x3d\xf0\x6a\x75\x5d\xd6\xc4\xae\xda\xd5\xce\x0b\x31\xe4\x71\x67\x32\x82\xa8\xf8\x4e\xba\x55\x41\xe6\x40\x85\x2a\xac\xd1\x89\x72\x72\x79\xcf\xb1\xcf\x19\x55\xe5\x2e\xd7\x6e\xf9\x06\xe9\xe9\x85\x66\x3e\x32\xc8\xde\xd8\x49\x71\xb4\x0e\x59\x7a\x30\x90\xbb\x34\x59\x5b\x81\xfc\x06\x8b\x40\x64\x69\x92\x5b\x58\x68\x0b\x71\x01\x07\x73\x34\x14\x67\x6c\x91\x32\x28\x4b\x74\x42\xae\x12\x66\xae\xcb\xcc\x5c\x99\x59\x92\x8c\x7c\x85\x66\xa5\x19\x6d\xe2\x4f\xdd\x0b\xac\x3f\xe5\xbc\x9c\x18\xb4\x7a\x62\x0e\xca\x66\xf5\xcc\x82\x35\xd8\x7d\x6e\x65\xb0\xbe\x60\xcd\x02\x9b\x46\x51\xa0\x05\x8d\x64\x89\x81\x6d\xa0\xd5\xd2\x50\xf2\x56\xfc\xef\xe6\xaa\x4e\x99\x9a\xc9\x64\xe5\x14\x3a\x03\x04\x75\x99\x83\x5b\xca\x27\x9c\x84\x8d\x39\x1a\x35\x05\x3e\xb6\xb8\x8c\xce\xb0\x89\xda\x2b\x70\xd5\x14\x3d\x5c\xad\x77\x44\x5b\x60\x35\x1b\xc4\x63\x87\x06\xee\x95\x5c\xeb\x0f\x41\x4e\x72\x2b\x6a\x2e\x81\x2e\xd1\x0d\xe4\x3f\x0f\xca\x4b\xf9\x98\x5d\xae\x15\x51\x3a\xcd\x22\x80\x00\x9c\xb1\xb4\x13\xec\xa0\x8f\xec\xce\x9b\x30\x03\xae\x67\x6d\x16\xa9\x16\xe4\x14\x1b\xa1\xa0\x0a\xf0\x2c\x76\x8b\x71\xca\xb5\x32\x74\x33\x03\xdd\xd6\x1a\x5f\xac\x2c\xf5\x64\x46\xf9\x02\xb5\x14\x26\xb0\x07\xfc\xe8\x0e\xf8\x61\x61\x8b\x3d\xed\x01\x3c\x8f\x4e\x21\x1f\x2f\xb7\xbb\x97\x2f\x79\x6b\x2b\x5b\x97\x46\x50\xd8\x9d\x56\x39\x03\x85\x2f\xcc\xb9\x3f\xdb\xd2\x70\x6f\x26\xb3\x1c\x41\x16\xd6\x36\xce\xfb\xc2\xfc\xd1\xe8\x08\x6d\xb2\x98\x60\x52\x21\xc2\x11\xda\xb5\xf3\x06\x57\xac\xb9\x36\x14\xd7\x66\x14\xf8\x45\xee\xc0\xcd\xeb\x19\xb1\xbc\x16\xc1\x84\x50\xfb\x15\x2c\x7a\x53\xfc\x8c\x1a\x05\xe5\xdc\x9a\x26\xb6\x83\x42\x1a\xef\xf1\x1d\x32\x49\xe8\xd4\xa5\xe2\x43\xa9\xc0\x49\xae\x27\x19\x61\x0f\x6b\xef\x61\x5a\x28\x5e\x1e\x5c\xdb\x54\x4f\x2f\x2a\x67\xcc\x81\x22\xc2\x67\x9e\x7f\xd5\x31\x57\xa7\x89\x09\x07\x5a\xa7\x86\x22\xe8\x63\x05\x86\x16\x6a\x43\x1b\x8a\xfd\xb0\xcf\x3c\xf6\xf6\x72\xf8\x53\xd4\xd7\x66\xb3\xd3\x9b\xd3\x05\x58\x85\xf0\x0c\xca\x89\xbf\x7f\x6e\x6d\x40\xef\x11\x8c\xf8\xbf\xff\xeb\x7f\x8e\xf8\x4a\x8b\x5f\x70\x28\x73\xcf\x57\xee\xde\x08\xa2\xcb\x82\x8a\x73\x14\x2e\x8a\x95\x65\xdb\x0b\xa8\x30\xdb\x44\xe1\xcc\xa8\x7a\x3a\x57\x6b\x2d\x8c\x3e\xda\x91\x42\xae\xbe\xce\xe9\x8a\x83\xc4\x9c\x16\x43\x42\x99\x62\x29\x92\xa0\x87\x0f\xa8\x29\x6b\xd3\xa6\x72\x3a\x9b\x53\xde\x29\x76\xd3\xbc\x5f\x8f\xc8\x53\x30\xb3\xd1\x29\x4b\x47\x71\x56\x08\x06\x5c\xd7\xf6\x95\xf9\xe8\x2c\xd3\xcb\xf5\xed\xab\x84\x46\xf7\x5d\x50\x90\xcc\xfb\x0d\xcd\xae\x17\x65\x02\x97\x6d\x51\x9c\x69\xc0\x18\x62\x25\x8c\x21\x1b\x43\x54\xd0\x33\x81\x35\x0a\xa8\x4b\x14\x88\xa3\x96\x77\x22\x12\x22\x8c\x1c\xea\xf2\x39\x66\xe3\xb1\x65\xe3\xa3\xa1\xf8\x80\xe0\xcc\x20\x2a\xe3\x00\x22\xa8\x0c\xc4\xbe\x2c\xa4\x62\x85\x28\xfc\x1a\xbc\x58\x9b\x27\x63\x87\x51\x2f\x45\x95\xea\x42\x6d\x25\x44\xbd\x38\x5a\x54\x75\xc3\xab\x53\xae\xa7\xc0\xad\xee\xe9\x88\x2f\xb8\xa1\x9d\x51\xed\x49\x7b\xba\xfa\x84\xb9\x8f\x1e\x70\x03\x74\xb2\x3c\x20\x7e\x7a\x25\x82\x48\xd8\x03\x4b\xe9\xd4\xc8\x58\x94\x27\x21\x2a\x70\xd1\x38\xd2\xc0\x4e\xd6\x1d\xa0\x3c\x05\x06\xd8\x02\x89\xcb\x23\x28\x26\x0a\xd4\xd1\x62\x31\xd4\x7a\xeb\xac\x80\x3a\x47\x63\x07\xb9\xa9\x17\xa2\x23\x2f\x99\x26\xec\x8b\x66\x02\x5d\xb4\xb7\x2e\x9f\xa2\x1a\x4e\x4a\xea\x43\xcf\x9b\x2f\xf5\x27\xaf\x5a\xd9\x73\x79\x72\x2e\x61\x24\x56\xf6\x86\xb1\x55\xc6\x66\x54\xc4\x36\x2b\x28\xaf\xcc\x8c\xb3\x43\xcb\x85\x8f\xfd\xb4\xb9\x2d\x01\xac\x24\xb6\x89\xf8\x97\x70\x91\x39\x49\xde\xc8\x92\xe0\x2e\x93\xa9\x11\xa9\x32\xa1\x79\x62\x88\xc3\x8e\xc1\xe8\x79\x99\xf0\xc0\x2e\x10\xa9\xd8\x84\x1d\xc2\x95\xe2\x62\x3a\xb2\x2b\xe9\x12\x5c\xda\x5d\x0c\x45\x9a\xfa\x84\x4d\xe1\x8f\xef\x5d\x43\xab\x2d\x93\x48\xd6\x66\xfa\x3e\xb5\x06\x44\x41\x21\xdd\x64\x2c\x20\x87\xcb\xc8\x19\xf1\xb8\x50\xfa\x0e\x26\xda\x45\xad\x06\xd9\xac\x9a\xad\x9a\x5f\x21\x8a\x28\x48\x08\xc2\x80\x7e\x88\xbc\xd4\x0d\xf9\x40\xaa\x31\x0f\x68\x20\xbc\x88\x66\x8b\x04\xf8\x7c\xc6\x52\x4a\x11\x75\xdd\xd9\xf0\x52\x9a\x24\x63\x1a\xdd\x7b\xf1\xd8\x2b\x89\x32\x75\x20\xab\x46\x6c\x84\x2a\x12\x48\x5c\x66\xa0\x11\x48\x37\x98\xae\x8b\xc4\x84\x78\x05\x76\xd8\x79\xe7\xb6\x60\xa0\xc0\x12\x76\xa0\x4e\xe2\xe8\x31\x56\x35\x66\x8b\x44\x2e\xe7\x0d\xf7\x59\x39\x5d\x63\x1b\xcf\x6b\x53\xb6\xc8\x4e\xaf\xb2\x12\xd3\xeb\x7c\x99\x55\xe2\xcb\x77\x80\x9e\xd1\x81\x4b\x7e\x4c\xe4\x18\xec\x52\x56\x2f\x74\x31\xd3\x41\xe8\x6e\xf9\x3c\x77\x8d\xe4\x2e\x9f\x48\xae\x16\x09\x5d\xae\xea\x01\x63\x88\x9f\x76\xdf\x30\x4f\x73\xbd\xd9\xa6\x7d\xf4\x5d\xed\xe7\x4f\x52\x98\xd1\x49\x02\xb6\x42\x23\xf0\x2f\x6b\xfe\x60\xce\xfe\x81\xd9\x1b\x47\x8b\x54\x1a\x49\x41\x0e\x85\xa6\x53\xb7\xbb\x56\xba\x94\x8f\x82\xa5\x6a\xc6\x17\x85\xf2\x32\x5b\xc7\xfb\x59\x92\xb6\xff\xc1\xe8\xb6\x0e\xcc\x53\x2e\x0e\x31\x11\xdb\x10\x88\x5a\xd0\x28\xb7\x57\x45\x09\x55\x8a\x4f\x96\x41\xfe\xb4\x0f\x9d\x82\x78\x7c\x5f\x5a\xa1\x58\xa2\xa4\xd6\xf5\x57\xc8\xd7\xdd\x4d\x32\xe3\xf6\xc9\x22\x77\xc5\x53\xc8\xe3\x10\xae\x06\x0a\x8b\x56\x52\xe6\x5b\xd6\x3e\xdd\x36\x87\xc4\x8e\xcc\x66\x52\xec\x6e\x60\x2e\x0f\x7a\xb3\xac\xc8\x95\x10\x0c\xcd\x66\x8e\x5c\xd8\xb5\xc3\xb6\x8a\x96\x4f\xca\x0e\xa7\x01\x73\x8c\xed\x17\x3e\x6b\xa2\x90\x63\x4b\x0b\xc8\x03\xb8\x46\x46\xf9\x73\x46\x47\x73\xbe\x7c\xd2\x37\x24\xe2\xe6\x1d\x1c\x10\xb5\x15\x1c\x4a\x7b\xd2\x3e\x63\x09\xdb\x49\x2c\xe0\x06\x74\x5e\xf6\x6e\x07\x14\xbe\x92\x88\x72\x78\xd9\xf5\x66\x92\xee\x34\x5e\x1e\x55\x4e\xdd\x3b\x1b\xd4\x06\x71\x93\x0d\x78\x0f\xf5\x23\xff\x8c\x03\xb5\xa1\x93\x75\x04\x66\x38\x67\x0c\x5b\xdf\x56\x35\xac\x03\x8e\xc2\x16\xec\x89\xc9\xbb\x71\xfb\xe8\x90\x39\xbc\xb0\xeb\xa4\xaf\xd7\x7b\x0c\x5e\x38\xd0\xb0\x61\x74\x1f\x59\x9b\x78\x84\xb5\x47\x74\x23\x6e\xda\x74\x25\xb6\x23\x15\xeb\x4b\xd4\x92\x4c\x99\xc6\x2a\x9b\xbe\x94\xe8\x1b\x24\x93\x9d\x45\x4e\xef\x74\x2b\xea\x99\x40\xb7\x53\x7d\xc3\xb4\x72\x37\x5e\x05\xab\xcb\xee\xd4\xa1\x4b\x02\xcd\x53\x2a\x5f\xef\x16\xbd\x8e\x93\x7c\x6d\xad\x2a\x4f\x77\xc1\xae\xa7\x97\x9d\xd0\x07\x60\x88\x50\x08\x1b\xcf\x2c\xec\x28\x1c\xde\xc0\x67\x58\x51\xe5\xd7\x78\x63\xed\xf0\x5a\xf9\x61\x2b\xcb\xf9\x14\xdb\x6b\xa3\x29\x5b\x6f\xee\x53\x92\x5a\xd7\xb1\xec\x42\x47\x79\x62\xa3\x88\xa5\xc6\xb5\xda\xf5\x3e\x28\x82\x90\x26\xff\x6b\xee\x58\xb4\x5b\xb6\xcb\x43\x56\x87\x3a\xbd\x7d\x96\x43\x22\xd1\x3b\x30\x5a\xa4\x6c\xc2\xbf\x6c\x24\x8a\x5f\xc1\xa7\x56\xbd\x34\xcb\x5c\xc2\xb1\x06\x6b\x07\xe0\x5e\xe7\xda\xbe\x5b\xe9\xc7\x94\x6b\xcd\xc4\x50\x00\x68\xaf\xfa\xc3\xc9\xf1\xf1\x38\x8b\xee\x99\x3e\xbe\x67\x4b\x22\xd3\xc2\x4f\x9b\x62\x64\xec\x1e\x73\x1b\xf7\x75\xa6\xf5\x42\x9d\x1c\x1f\x4f\xb9\x9e\x65\xe3\xa3\x48\xce\x31\xde\x48\xa6\x53\xfc\xc7\x31\x57\x2a\x63\xea\xf8\xc7\x1f\x7e\xc8\xb7\x78\x4c\xa3\xfb\x29\x66\x1d\x56\xad\x38\x85\x2d\xbf\xa9\xd6\xa5\xe9\x8e\x63\x9a\x4a\x31\x62\x5f\x0c\x91\xd6\x55\x3e\x6e\x0b\xe8\xa0\x48\xef\xf3\x0d\x51\x4b\xa1\xe9\x97\x13\xf2\x09\xcb\x54\x93\x9f\x64\x96\x2a\x72\x46\x97\x87\x72\x72\x38\x97\x42\xcf\xc8\x27\xf8\x5f\xfb\xd3\x23\x63\xf7\xe4\x57\x46\x53\xbb\xbf\x28\xb0\x78\x28\x64\xf0\x42\xa4\x99\x50\xb6\xfe\xf5\x0f\xff\xee\x0a\x60\x9f\x90\xef\x8f\x7f\xf8\x77\xf2\x7b\xf8\xff\xff\x87\xfc\xbe\x41\x53\xeb\x96\xd1\x9a\x17\x27\xaf\x6d\x0d\x56\x6a\x83\x52\x40\xa7\xa9\xcc\x77\xaa\xb6\xe5\x7b\x1e\xdd\xcb\xc9\x64\xa4\xf9\x9c\x61\x70\xe8\x88\xa6\x15\xa4\xa2\x0d\xe1\x41\xb8\x2d\x5c\x82\xb5\x1f\x73\xe0\x50\xdb\x29\xa6\x7e\xb8\xe3\xa6\xb2\xbc\x70\x03\xf8\x54\x0a\xc5\x30\xb8\x82\xaf\x58\x6c\x4e\x45\x17\xff\x89\xb3\xce\x54\xcb\xab\xe5\x49\x44\x61\x31\x1e\xef\x07\x0d\x9d\xfa\x72\x5d\x61\xf0\x6a\xb4\xc1\x57\xe3\x42\x86\xa9\xbd\x94\xfb\x58\x55\x3a\x5f\xef\x39\xbe\x91\xe9\x56\xf2\xf2\x3d\xab\x84\xb0\xb4\x04\xc9\x75\x25\x20\xc2\xb2\x50\x90\x75\x20\x53\x0f\xd3\x83\x7a\xad\x85\xd2\x5f\x6f\x85\xe2\x29\xfa\xda\xda\x1d\x7a\x33\xf5\x33\xff\xc9\xba\x61\x82\xe3\xcd\xbd\x9d\x83\x84\xc3\x68\xcd\x15\x67\x58\x62\xcd\x88\x6b\x72\xf9\xd7\x6d\xe8\x0d\xee\x19\x53\xd8\x38\x78\x81\x21\xfa\x4e\x38\xc9\xc4\x26\xa5\xd4\xee\x27\x64\x38\xef\x02\xfc\xa0\x02\x64\xb7\x05\x9f\x43\x53\x59\xce\x22\x1c\x98\x24\x88\x6c\x41\xd1\x19\x6a\xb8\xc7\x86\x78\x11\x08\x25\x7b\x40\x52\x0a\x8e\x54\x3d\xa3\x02\x95\xa8\x09\x8d\xb8\x98\x1e\x04\x50\x01\x90\x2b\x13\xf2\xac\xba\x95\xbc\xa5\xea\x7e\xb7\xce\xc1\xad\xa1\xf5\x79\x9c\xc3\x3b\x23\x45\x5a\xdf\x21\xaf\xe4\x49\x6b\xaa\xee\x77\x56\x7a\xdc\x2c\x45\x9b\xa2\xe3\x2e\xf6\x9e\x85\x42\x1b\xe0\xe6\x19\xe5\x2a\xc0\x56\x72\xe1\x93\x58\xd6\x93\x27\x2c\x2e\x23\x4c\x94\xc7\xbf\x8e\x10\x50\x2d\x0e\xbc\x50\x00\x40\x30\x37\x8a\x5f\x8c\xe6\x59\xb1\xc4\xa3\x64\x6e\x2e\xaa\xee\x95\xaf\xef\x40\xd4\x9c\x26\xc9\x01\x49\x59\xa6\xcc\xd5\x7b\x40\x14\x4b\x26\x87\x0e\x0b\x30\x26\x89\x9c\xf2\x88\x26\x64\x9c\xc8\xe8\x5e\x0d\x85\xb9\x4a\xc4\x14\x6f\xc0\x45\x2a\x23\xa6\x54\x70\xf7\xe6\x71\xf9\x36\x88\x15\x8a\x3b\x68\x96\xce\xb9\xe0\x4a\xf3\xa8\x54\xaf\xf9\x68\x28\xb0\x58\x89\xd1\x86\x22\x89\x25\x29\x60\xb8\x46\x16\x60\x88\x4e\x90\x09\x8b\xb4\x0a\x0c\xdd\x26\x1d\xbb\xa8\x8a\x26\xea\xdd\x41\x0e\xb5\xdb\x9e\x91\x2e\x9e\x86\x35\xf4\x7c\x6a\x3f\x83\x33\xb4\x8a\x62\xae\x8b\xe4\xec\xa9\xc1\x93\xb9\x87\xe6\x72\x44\x91\xc7\x8c\x14\xee\x36\x1f\x4a\xf1\xca\x92\x5f\x61\xc8\x0d\x29\xaf\xeb\x68\xfa\x14\x0b\x40\x5b\x70\xdf\xb2\x5f\xcc\x15\x76\xb6\x00\xee\xe6\x92\x78\x30\x44\xe2\x96\xc7\xac\xbd\xb9\x4a\x0e\x7c\x55\x66\xaa\x6c\xc8\xc8\xa1\x47\x8e\x33\xfc\x10\xd1\xfd\xa0\x93\x52\x89\xdf\x2a\x45\xbd\xa6\x4a\xcc\xfe\x92\xee\xca\x16\xd7\x0a\x12\x1d\xab\x32\xbb\x95\x6e\x44\xd9\x28\x8c\xad\x48\xb6\x90\x68\xda\x3c\xa8\x96\xf6\x8a\xb4\x2e\xa3\x03\x29\x0e\x9e\x3e\xf0\xbc\xc6\x8e\xed\x6d\xa5\x3d\xc3\xcc\xa8\x95\x31\x23\x24\x8a\x8d\x0d\x74\xa5\xa9\x54\x32\xa3\x38\x96\x9f\xb2\xd5\xeb\x8d\x54\x9b\x45\x11\x63\x71\x6d\x70\x81\x19\xd1\xab\x43\x91\xb8\xa2\x7a\x86\x49\x36\x73\xa9\xb1\xc4\x03\xa2\x48\x38\x43\x0b\x16\x71\x18\x27\x72\x0c\x17\x12\x00\x4c\xb8\x74\x8b\x20\x5c\x1a\xe7\xcd\x62\xf2\x6d\x70\xbf\xf8\x04\xb0\xa6\x12\x62\x3b\x04\x97\x28\x5b\x67\x1a\x21\x26\x8a\xf8\xe3\x47\xe4\xaa\x94\x71\x18\xcc\x6a\x42\x0d\xcb\x6f\x0a\x02\xed\x06\x48\x51\xd8\xfd\x1d\x00\x52\x94\xa6\xd1\x10\x69\x24\xa7\x4f\x9a\x21\x61\x26\x75\x2e\xdb\x87\xad\x62\x4e\x38\x0a\x2e\x85\xcd\x71\x64\xb6\xac\xdb\xa2\xd7\x05\xb6\x51\xc2\xaf\x7f\x59\xb0\x8d\xd2\x60\x5e\x33\xd8\x46\x69\xa8\xaf\x17\x6c\xa3\x66\xa0\x2d\xc0\x36\xd0\x77\x3a\x32\x44\xdd\x8e\x29\x40\x14\xde\x38\x9b\xdc\xc0\x6d\xb2\x72\x8c\xb6\x48\x2a\x32\x67\x27\x20\x59\x44\x25\x18\xad\x8d\xd8\x6e\x8a\x36\xa1\x6a\x2b\xda\xf3\xce\x0d\xae\x50\x37\x5d\x24\x54\x14\x99\x2a\x14\xa1\x4b\x59\x64\xc8\x0f\x19\x55\x5e\x9d\xfb\xc0\xda\x4c\xcc\x28\xd0\x4c\x18\xd1\x85\xcd\x80\x69\x02\x3a\x7d\x3d\xb1\xfe\xdd\x70\x4c\x00\x6e\xa2\xc0\xea\x5b\x25\x8b\x7f\x2a\x61\x05\xce\xe4\xa3\x95\x87\x80\xfc\x6c\x5d\xe1\x8e\x22\x7a\x88\x84\x52\xa2\xe9\x96\x48\x28\x85\x89\xec\x91\x50\xea\x37\xf8\xd5\x22\xa1\x94\xf6\xbc\x1d\x12\x4a\xdd\x96\x6f\x80\x84\x52\x68\xe6\xab\x41\x42\x29\xad\xe8\x57\x83\x84\x52\x9a\xd7\x1e\x09\xe5\x2b\x41\x42\x59\xcf\x47\x6a\xb1\x3e\xea\x0f\x6f\x37\xac\x8f\x5a\x11\xbe\x99\x45\x6c\x9b\xa6\x0a\x02\xc3\x33\x63\x7d\x14\x26\xb0\x0f\x6b\xe9\x1e\xd6\x52\x4b\x7c\xb6\x6f\xa8\xd9\x6c\x63\x5d\xca\x17\x59\x4b\xb4\x8f\xc2\xfe\xb4\xb6\x19\xed\x82\x12\x9f\x36\x90\x0a\x4c\xd7\x6d\x35\xee\x5e\x61\x15\x95\xc5\x08\x32\x92\x91\xcb\x79\x47\xe1\x3c\x74\xdb\xed\x29\x77\x83\x80\xac\xd2\xf2\x7a\x63\x37\xd2\xe2\x2e\xad\x9a\x35\x25\xc6\xb6\xa0\x57\x97\xb3\xd2\xd1\xaa\xec\x06\x01\xd6\xe5\x7a\xdb\x13\x54\x1d\xdc\x4d\xb3\xeb\x2e\x32\x9f\xd1\x5b\x28\x82\xe8\xd3\x71\xf2\x22\x88\x28\x1b\x97\xb2\x90\x8c\xfa\x6f\xbf\x9c\x72\xa5\xd3\xc6\x90\x84\xca\x08\xb7\xf1\x5f\x2d\xb2\x4d\x72\x07\xa7\x9b\x7d\x36\x67\x73\x99\xae\x8b\x87\xa8\xfd\x52\x69\x99\xd2\xe9\x3a\x45\xbc\xfb\x56\xf9\x34\x2b\x1b\xed\x5f\x53\xc4\x32\x70\x2c\x99\x77\x63\x5b\x98\xb2\xed\x4e\x6d\xbb\x43\xae\x02\x66\x37\x1b\xaf\x83\xd9\x59\x6d\x74\xb2\x2f\x15\xdc\x87\x40\x9a\xb5\x0e\x6a\x1f\x1f\xb0\xa1\x0b\xba\x01\x08\xa5\xda\x21\x78\xa8\x14\x4b\x0f\x43\xf1\xb2\xe0\x15\xaa\x8e\xa0\xb0\xee\x4e\x2d\xd9\x62\xd9\xb3\xb4\x31\x52\xaa\x8d\xd5\x07\xab\x4a\x1b\x9d\x27\x04\x18\x2f\x53\xf5\x78\x59\x93\x7a\xd1\xce\xac\xc8\x85\xfe\xe3\xbf\x75\x71\x1d\x83\x7c\x6e\xd7\x6d\xc2\x13\x46\x68\x14\x31\x85\x86\x28\x1b\x49\x87\x05\xfb\xb2\x34\xd9\x66\x57\xcd\xe1\x30\xf3\x36\xdc\xce\xa3\x0b\xc5\x39\xf1\xe0\xdd\x39\x4b\x65\x36\x9d\x39\x43\x84\xa1\x42\x33\xb5\xba\xbd\xfc\x05\xe3\x1e\xb6\xd9\xcb\xf7\x19\x4f\x36\x33\xf3\xe4\xa1\x46\x66\x98\x1f\x07\xb7\x44\xcd\x3c\xfd\x8f\xa1\xd9\xda\x8d\xad\x0e\xba\x7d\x9f\xf6\x5b\x6f\xd4\x84\x6e\x0e\x1c\xa2\xc6\x44\x26\x09\x98\xe5\x14\x9b\x3f\x34\x15\xfc\x83\x09\xdf\xf2\x0d\xcb\x9a\xc1\xd7\x60\xdc\x57\x9a\xce\x17\xad\x84\x91\x2b\x94\x93\x14\x71\xa3\x2f\xfb\xbc\x30\x92\x45\x0a\x26\xea\x0c\x35\x9f\xab\xc8\x98\x6f\x2c\x9e\xc8\xc5\xb7\xec\x2c\xa6\xc8\x2d\xc9\x33\xc7\x15\xd5\xcd\xa3\x03\x0b\x28\x84\xd9\xe6\x3c\xde\x39\x6c\x51\x04\xef\x99\xf9\x0d\x45\xaf\x10\x90\xeb\x2a\x89\x8c\x97\x79\x44\x1f\x4a\xb3\x21\x27\x01\x40\x41\xab\xe2\x6b\x69\x15\x7f\x90\xb9\x11\x0c\x06\x23\x8e\x5c\x54\x11\x84\x23\xb2\xf8\x90\x46\xcb\x28\xe1\x51\xa0\xbd\x4d\x53\xba\x98\xd5\xb1\x9b\x6a\x65\xec\x7d\xda\xfd\xca\x91\xed\x3c\xed\xbe\x09\x25\xb7\x4b\x38\x65\x58\x60\x7f\x0f\x07\x50\x07\x07\x70\xe0\x13\x5e\x45\x8e\xf7\xfb\x82\x79\x94\xd5\x73\xb7\xc7\x04\x78\x01\x4c\x80\x4d\x0e\x5f\x9e\xf0\x5f\x38\x76\x7b\x9c\x82\x77\xad\x70\x0a\xfc\x25\xf8\xaa\x52\xcf\x9b\xcf\xe3\x0b\xa7\x34\x57\x07\xf6\x92\xb8\x04\x35\xe2\x42\x17\xb9\x69\x15\x30\xc1\x2a\xba\x68\xb5\x2e\x2f\x0b\x13\xd0\x6d\x65\x3a\x21\x00\xd4\xde\x5d\xaf\x04\x0f\xa0\x79\x1b\x5e\xc9\xb9\xd9\x65\xd0\x7b\xb7\x82\x06\x61\xe0\x7b\x17\xed\xa6\x5b\x0c\xbc\xa7\x87\xb7\x15\x07\x9f\x83\x7c\x6f\x16\x0b\xdf\x73\xde\x50\x96\x92\x99\x4c\x00\x79\xbd\xb0\x5a\xbe\x03\x1f\x15\xeb\x17\xc8\x6d\xc6\xcd\x82\x45\xa8\x6d\x55\xeb\x87\xae\x24\xa9\xb7\x1e\xf5\x1e\xc8\xbf\xbb\x8d\x7c\x0f\x57\x76\xd3\xe8\xf7\x35\x83\x5b\x25\x7a\x6c\x18\x01\x1f\xf4\xb8\xd2\x5f\xe4\x66\xd7\xca\x67\x54\x26\x96\x0d\xc2\x79\x2a\x48\xe8\xdb\xa3\x03\xcc\xe9\x97\xd1\x82\xa6\x34\x49\x58\xc2\xd5\xbc\xe9\xcc\x73\xa1\xd9\xb4\x4c\x69\x05\x63\xec\x1f\x7e\x5c\x1d\x3b\x59\x74\x1c\xba\xd2\xb2\xe0\x3a\xcc\xe6\x63\x24\x45\x37\x10\x5b\x31\x40\x4b\x92\x66\x22\xc4\x36\xf1\x1b\x43\x00\xc8\x15\x6b\xd5\x4e\x32\x08\xac\xa1\xd1\x0c\xca\x53\x4c\x28\x4f\x05\x53\xaa\x63\xbd\x60\x55\xd4\x13\xf1\x06\xe6\x7f\x2f\x48\xa8\x87\x85\x10\xdf\x28\x48\xe1\x85\xc8\x0b\x07\x6a\xba\x8a\x55\xec\xe3\xf8\xaa\x71\x7c\xf5\x6b\xf3\x1a\x63\xf9\xf2\x92\xd5\x1d\xe3\xf9\x9a\xb6\x7f\x17\x4c\x60\x87\x71\x7d\x2f\x1c\x00\xf7\x34\xb1\x6f\x2f\x1b\xac\xf8\x14\x71\x8a\xfb\x68\xbe\xb7\x17\xcd\xd7\x7c\x6c\x3b\x45\xf4\xad\xc9\x49\x77\xbd\x6c\x1b\x3e\xe5\xf3\xa4\x9f\x34\x84\xca\x7b\xbd\x82\x2f\x5a\x86\x51\xe5\x89\xdc\xfb\x50\xaa\x27\x0a\xa5\xaa\x59\xe2\x6e\xe1\x54\x1b\x89\xc7\xcf\x1f\x2e\x52\xae\xcc\xf4\x94\x21\x23\x6b\xbc\xa4\x2a\x1b\x8f\x9e\xfc\xe8\xd5\xce\xb9\xed\x09\xfc\xec\x89\x02\x45\xa2\xd4\xd0\xd9\x98\xc5\x31\x98\x60\xb4\xb4\x55\x0a\x72\xda\x11\x0c\xe9\xdb\x30\x5f\xaa\x0c\xb1\xd3\x44\x8a\xa9\xe2\x31\x0b\x6a\xa1\xe5\x92\x15\xe6\x53\x0d\x05\xec\x6f\x92\xb0\xd4\x69\xf0\x29\xf9\x56\x71\x11\xb1\x50\xab\x4f\x49\x2c\x99\x12\xdf\x18\x01\xec\x81\x11\x2a\x96\xe4\x5e\xc8\xc7\x84\xc5\x53\xd8\xa1\xf2\x60\x0e\x09\x67\x07\x84\x6b\xff\x59\xca\x68\x34\x33\x1c\x76\x68\xc6\x0e\x7e\x59\x14\x01\x99\xfd\x36\xa8\xc7\xe1\x9b\xf9\xee\x88\x90\x81\x20\x13\x1a\xe9\x03\xa2\xb2\x71\xde\x7e\x2c\xb1\xc0\xc2\x03\x13\xe1\xc4\xf3\x46\x9e\x2c\x5c\xa8\x36\x3c\xa8\x44\x6d\xee\xbc\x19\x02\xe8\x25\x9c\x6e\xe5\xd9\x7d\xa0\xdb\xe0\xbd\x7c\xca\x94\x75\x01\x10\x29\xfc\x61\xb2\xe9\xa7\x1e\xe2\x0a\x60\xe6\x11\x2e\x6a\x45\xd5\x3b\x5a\x9a\x4a\xd7\xb1\xe4\x6e\x78\x8b\x6e\x6f\xcd\x24\xd0\x2e\x2e\x77\x2c\x1f\x85\xd2\x29\xa3\x73\xab\x9a\x1a\xe6\x0d\x2e\x1c\x74\xc2\x9b\xd1\xf3\x14\x2f\xed\x2e\x5b\x7c\xce\xc5\xbd\xd9\xdd\x1c\xd4\x0b\xaa\x85\x40\xcf\x35\x9b\xf6\x9e\x0b\x5a\x08\x1f\xdc\x60\xd7\x92\xac\x53\x50\x4c\x50\x17\x70\xd9\x84\xa7\xa6\xe9\x3a\x88\xb3\x2e\x66\x3c\x05\x25\x52\xc8\x18\x2a\x78\x19\x56\x87\x15\x11\x28\xd1\x14\x70\xfc\x66\x2c\x59\x04\x55\x06\x16\x34\xd5\xbe\xb0\x22\x42\xfc\x18\xee\x30\xcf\x04\xe0\x32\x59\x0d\xf1\xd1\x22\xb9\x58\x3b\x42\xde\xf8\xd1\x50\x0c\xf4\x37\x50\xa9\x55\x8a\x69\xb2\x24\x34\x7e\xe0\x2a\x07\x58\x8b\xa4\x50\xd9\x9c\xa5\xa5\xea\x3d\xe8\x64\x26\xd4\xd1\x8a\x19\x9b\x91\xd5\x1e\x68\xc2\x63\x57\x4d\xce\xfc\x38\x66\x13\x73\xef\x2d\x68\xaa\x9c\x45\xb2\xc6\x9a\x68\x37\x37\x36\x6b\xf5\x62\x67\xf2\x97\xf0\xd8\x91\x79\x7e\x42\xa9\xd5\x5d\x8e\xcb\xe7\x33\xa8\x87\xd8\x14\xe0\x57\x99\x14\x59\x7d\x31\xd9\x55\x38\x5b\x97\xaa\x69\x5e\x30\xd4\x90\xa1\xf7\xc8\xf4\xe3\x64\x20\x1c\x5c\x27\xf3\x4f\x69\x82\x76\xd4\x68\x0c\x0c\xcf\x26\xe3\x70\x29\x28\x4d\x35\x8f\x5c\x6d\x47\x5f\x53\x17\xbf\x6e\xde\xda\x6d\x8b\x96\xaa\x88\x26\xd5\x1d\x6e\x5e\xcb\x1b\x7c\x7f\x35\xef\xb3\xc7\x0d\xdb\x5e\x19\xac\x19\xc9\x24\xe9\x02\x9f\x56\x9a\xf9\x69\xfe\xf9\xea\x11\xe5\xfd\x98\x0d\x70\x7b\x01\xa7\x06\xcd\x7e\x34\xb1\x92\x85\xd2\x76\x97\xc2\x97\x90\x87\x2e\xad\x59\x71\x28\xe4\x04\x00\xf6\x92\xa6\xea\xa0\x8b\x54\xce\x79\x17\x08\x09\x04\x67\xbd\x76\x0e\xfc\x35\xae\x1b\xe7\xe6\x87\x2a\x50\x48\x5e\xb6\x47\x08\xf5\xa2\x02\xe5\x8c\x15\x67\x68\x4e\x2b\x35\x6a\x5b\x2d\xf8\x3a\x2d\xb9\x47\xe6\x68\xa2\xb0\xab\xa7\xb0\xd4\xd8\x3d\x5b\x42\x86\x79\xf2\x48\x97\x79\x48\x6b\x97\xe3\x94\x07\x8d\xda\xf3\x42\x1d\x95\x05\x27\xc6\x07\x40\xe0\x7e\xe1\x2a\xb4\x39\x41\xa7\x75\x64\xd8\xf9\x2c\xb9\x39\x3f\xa5\x90\x1d\x1e\xfb\x50\xbe\xee\x72\x1b\x16\x0f\x43\xd0\x22\x81\xe1\xac\x5e\xaa\x4f\x05\xca\xd9\xf9\x1a\x95\xda\x21\xa8\xcb\x39\xcf\xd9\x55\x7d\xab\xcf\xb0\x66\x96\xac\x5b\x2d\xd6\x96\x51\xf2\xdd\x60\x09\x5c\x8f\x1e\x8c\xa0\xf6\xbc\xaf\x47\x12\xea\xa2\x43\x4c\x8c\xec\x62\x8b\xd0\x79\x04\x64\x1b\x8f\x34\xe1\x09\x53\x47\x64\x50\xa3\x4f\xb8\x68\x20\x90\xaa\x00\x88\x08\xfc\xa2\x4e\xde\xc9\x52\x1e\xc0\x40\x3b\xa9\x86\x70\x5b\xaa\x35\xb7\x52\xa4\xcc\x8c\x39\x42\x2f\x89\x14\x00\xa9\x00\xae\xc8\x94\x63\xa5\x42\x23\x5e\x6a\x30\xb8\x19\x5e\xc0\x6d\x56\x10\x56\xcf\xf6\x1f\x18\x19\x5b\xb3\x94\x5a\xa4\xfb\x7c\x54\x0d\x5b\xba\x0b\x78\xcb\xf6\xc1\x56\xae\xd7\x5b\xf3\x45\x75\x6f\x6a\x47\x78\x5b\x6c\xbd\xf3\xe8\xbc\x5c\xde\xdd\xe5\xf3\x01\x3e\x75\xf6\x27\x4a\x26\x29\x03\x13\xe5\xdc\x67\x2f\x88\x98\xa5\x4a\x4b\x09\x37\xd4\xcd\xd9\xcf\xc7\x77\x03\xc2\x74\x04\x85\xbc\x86\x22\x52\x0f\x07\x46\xa0\xfd\x5b\xc6\xb4\xf9\xb9\x21\xba\x8f\xcf\x99\x50\xc0\x09\x78\xdb\x2a\xc6\x6e\x61\xcc\x7f\xcf\x8a\xdf\xaf\x20\xf9\x4a\xac\x28\xd0\xae\xaf\x28\x69\xc8\x14\x70\xb3\x70\x69\x55\x0d\xc5\x60\x35\xf3\x7e\x1d\x76\xf6\x06\xb1\x21\xe2\xaf\x99\xe8\x28\x26\x9d\xe6\x1f\x05\xa3\x68\x90\xc2\xe6\x0b\x9a\xf2\x1a\x28\x99\xd5\x41\x27\xf8\x4d\x6d\xeb\xeb\x98\x48\x1e\x83\x6b\x6b\xc3\x93\x1c\x66\x9c\xe8\x94\x31\x60\x21\x9e\x9e\xec\x5d\x6f\x73\x1e\xfc\xc4\x82\x8f\x8e\x86\xe2\x93\x33\x99\xe6\xbf\xfa\xa2\x97\x18\xc8\xc4\x62\x92\x81\xce\x54\x6c\x05\x9a\x8d\xb9\xf2\x3f\x00\x6a\x9a\xca\x12\x8d\xf8\xb7\x13\xa8\xc6\xee\x06\x8a\x4f\xea\xb8\x44\x4a\x45\x34\xbb\x90\xdb\x15\xc3\xe5\x93\x11\x4b\xba\xc8\x8e\x83\x49\x3f\x51\x86\xbe\xa3\xfb\x86\xd3\xb9\x09\xc2\x73\x3e\x19\x90\xdc\x1c\x06\x28\x6a\x25\x68\xa7\x4b\x10\x4d\x97\x11\x30\xb2\x95\x43\x85\x30\x1b\xc0\xec\xa2\x95\xad\xd1\xc6\x86\x3e\x7a\x67\x96\x1b\x43\x2f\x84\xea\xa1\x48\x33\x01\xd8\x57\xde\xe4\x4e\x89\x62\x29\x47\xdb\x77\x24\x05\xca\x00\xd6\x78\x32\x35\x6c\xc2\x48\x7e\xe0\x77\x91\x02\x34\x2a\x99\x29\x70\xf7\xcf\x99\x36\x17\xd4\xb7\x80\x1a\x8f\x4e\x8f\x03\xb2\x48\xf9\x5c\xf3\x07\xe6\x01\xeb\xc2\x9d\x3b\xa5\x9a\x26\x72\xda\x4b\x35\x9f\xd0\x48\xdf\xd2\xad\x54\x66\x6a\x9b\xd9\xd4\x7f\xee\x86\x41\x06\x67\x66\xed\xa7\x4c\xb0\x14\xe6\x09\xa5\x38\x6b\x4f\x70\xd7\x22\x9d\x39\xe3\x06\x08\xdb\x08\x41\x3f\x95\x37\x31\xd0\x4c\xcb\xb9\x51\x48\x69\x92\x2c\x01\xcc\xd3\x3c\x99\x51\x35\x73\xfb\x8c\x08\xa0\x6d\xae\x26\xbb\xb8\xa7\x34\x9a\xb1\x1b\xa8\xbd\x5e\xb7\xb8\xa5\x51\xbe\x63\x22\x9b\xbf\x3b\x21\xff\x9d\xcf\xf1\xb4\x77\xfa\x53\x7f\x74\x36\xb8\xe9\xbd\x3f\xef\x9f\x05\xf3\xb1\x4f\x3e\x0d\x6e\x6e\xaa\xbf\xfe\x34\xb8\xad\xfe\x78\x75\x79\x75\x77\xde\xbb\xad\x6b\xe5\xfc\xf2\xf2\xe7\xbb\xab\xd1\x87\xde\xe0\xfc\xee\xba\x5f\xf3\xe9\xdd\xad\x7f\x68\x9f\xfd\x4f\x70\x86\x20\xdc\x03\x82\x53\xea\x47\x5b\x3e\x66\x87\xa4\xf8\xe2\x09\xb9\xb3\xce\x1b\x6e\x51\xc0\x5d\xcc\x04\xa6\x26\x3c\x52\x65\x38\x15\x14\xdb\x1d\x0a\xe2\x3e\x37\x73\x6f\xfa\x14\xbd\x4a\xd1\x8c\x91\x44\xca\xfb\x6c\x61\x19\x18\xc6\x37\x0a\x89\x06\x19\xa6\x82\xd6\x7e\x1a\xdc\x9e\x78\x27\x52\xb5\xb1\x20\x03\xd1\x91\x3a\x8c\x8b\x3a\xa6\x09\x36\x8e\x45\xca\x1e\xe0\x48\x7a\xe7\x62\xd0\x83\xdf\x80\x55\xfd\x60\x6b\x54\xe8\x52\x37\x71\x6c\x0b\x01\xb8\x89\x05\x0d\x17\xb7\x6f\xd5\x6a\xfa\xe5\x40\x28\x48\x32\x66\x11\xcd\xd0\xf7\x66\x6e\xa3\x34\x95\x69\x38\xe0\x7c\xdb\xb7\x6c\xf4\x5d\x55\xc8\x28\x02\xbe\x2b\x38\x23\xe6\x93\xe0\xe4\x18\x75\x19\x54\x69\x07\xb6\x36\x5b\xa2\x6d\xca\xd5\x5f\x9e\x8f\x19\xfa\x4b\x00\xe3\xc5\xf0\x6d\x8f\x3c\xc6\xc1\x97\x47\x35\x79\x64\x10\xe3\x9a\x59\xb0\x49\xd4\x8f\xcd\x01\x84\xde\xd0\x0a\xed\x70\x7b\x0b\xb1\xaf\x8d\x1c\x73\x17\x42\xb1\xf9\x5e\xb1\x3a\x6e\xb9\x45\xa0\xe2\x19\x36\x0a\x2c\xd4\x39\x56\x61\xc4\x0d\xf6\x7e\xc7\xb2\x6b\xec\xce\x2b\x64\xa0\xea\xb5\xb1\x86\xa3\x1b\xde\xda\x66\x3c\x2e\x39\xa3\x80\x7d\xd3\x2d\x5b\xdd\x07\x05\xac\x5d\xab\x5b\x19\xd3\xa5\x21\x0e\x88\x68\x50\xd9\x62\x21\x53\x4d\x1a\xda\x20\x70\xd0\x71\x7c\x70\x31\xd8\x79\x78\x0e\x05\x8d\x18\x29\x40\xd5\xc0\xd3\xb5\x8b\x57\xb7\xeb\x9a\x1f\xfb\x30\xf1\x15\x94\x35\x0f\x95\x38\x2f\xa8\xbd\x05\x0a\xad\x13\x50\xb7\x89\x63\x5a\x98\x5b\xb8\x2d\xa6\x6d\x5d\xef\x97\xae\x85\xda\x2d\x4f\xd8\x44\x8f\x6a\x7d\x29\x2b\xcc\x86\xa6\x45\xd1\x94\xe2\xc3\xa7\xb3\x1d\xb4\xd8\x5e\x92\xff\xd1\xfa\xba\x8c\xf8\x1e\x68\xf1\xa9\x94\x1a\x65\xc8\x5c\xcf\x20\x6e\x35\xc1\x04\x60\x3b\x45\x00\x7d\x23\xa8\x71\x90\xd4\x8c\x5c\x7e\x2f\xe4\xa3\xf0\xf6\x72\x75\x34\x14\x7d\x0a\x55\x1d\xbc\xb2\x60\xc3\x15\x50\x52\x5f\x2b\xa3\x17\x40\xe2\x5f\x09\x82\x44\x4e\xf7\xb6\x02\x4e\xb2\x24\x79\x21\x80\xc2\x77\x6d\x4e\x0f\xda\x92\x9d\x9c\x86\x13\xb6\x10\xd6\x9a\x2d\xac\xbd\x1b\xe7\x99\x07\x73\x83\xcb\xd4\x74\x75\x44\x3e\x3b\xeb\x0c\x44\x57\xe4\x05\x2c\x34\x5e\x38\x09\x5d\xba\x14\xf9\xba\x85\xdd\x45\xd6\xf9\xae\xe3\x2d\x56\x2f\xb0\xcf\xb0\xab\x59\xe5\x82\x92\x2c\x04\x5a\x4d\x3b\x04\x97\x9d\xfa\x8f\x6e\xd8\xea\xe8\xd3\x0f\x80\x69\xad\x59\x6a\x54\x4d\x10\x19\x44\xb2\xfc\x5f\xb8\x59\x90\x6d\x6e\x23\x93\x63\x87\xa4\x6c\xfd\x92\xe6\xfc\x80\x5f\xcd\x48\x01\x63\x80\xa1\x48\x40\x0e\x38\x22\x3d\x28\xe7\x00\x40\xfd\xe6\x2a\x74\x31\x3c\x7c\x2a\xe4\xba\xb0\x81\x06\x62\x8a\x02\x62\xba\x69\x26\x26\x05\xd4\x94\x07\x56\xef\x86\xa2\x76\x90\x64\x63\x78\x0b\xad\x82\xe5\xb4\x4f\xad\xe9\xa0\x60\xbf\x44\x08\x4e\x65\xb8\xc1\x87\xff\xac\x1f\xfa\xc7\x8c\xa6\x54\x68\x08\x2c\xb1\x82\x77\xca\x82\x00\x47\xf6\x05\x42\xb7\x04\x1a\x6b\xe1\xa7\x70\x73\x9d\x23\x7d\xca\x1f\x98\x20\x3c\x3e\x20\xfc\x88\x1d\x1d\xd8\x9a\x6c\x2a\x1b\xe7\x6f\xce\x8c\xe4\x30\x14\x95\x84\x91\x23\xd2\x4b\x94\xb4\x5f\x30\x11\x25\x50\x3e\x25\x88\x81\xf1\x94\x6f\x5d\x3f\xe3\x25\xa8\x17\xb0\x95\x79\xf3\xd2\x3e\x08\x3e\x1c\x0a\xaa\xd0\xd3\x9c\xc0\x49\xcf\x7f\xaf\x2b\x91\x54\x88\x3e\x78\x42\xa4\xb7\xca\x35\xf4\x64\x9b\x84\x28\xc3\xab\x36\x08\xde\x80\x8d\xc9\x13\x79\x82\x94\x18\xf2\x2d\xd5\x09\xa3\x4a\x93\x1f\xbe\xeb\x14\x70\xe1\xe6\x97\x33\x57\x7b\x7a\xf3\x68\x54\x17\xce\xd6\x54\xe6\x0d\x40\xe0\x6d\x5d\x5a\x2f\x3f\x1e\x98\x6d\xd6\x92\x3c\x70\x95\x41\x41\x9a\x20\x80\x1e\x4b\x8a\x70\xad\x5c\x44\x20\x2a\x4c\x0d\x6c\xc4\x61\xbf\x58\x9f\xa4\x1d\x56\x0d\x61\x59\xdd\x89\xa3\x72\x06\x29\x92\x79\x60\xd9\x8c\xea\xa1\xb0\x8c\xd5\xc5\x62\x04\x05\x08\x7a\x49\x52\x0c\xe6\xa2\x10\xaf\x28\xcc\x84\xa1\x9c\xce\x91\x5f\xa0\x0b\xd0\xbe\x7c\xfc\x4f\xb1\xb4\x9e\x3f\x2b\x46\x51\x1b\x0a\x9f\x7f\x16\xb6\x5d\x2b\xec\xd4\x99\x80\x9f\x51\x06\xae\xe9\xfe\x1c\xeb\x1a\xb5\x90\x85\x9b\xeb\x4e\xae\x70\x99\x54\xcc\xee\x2b\x44\xe3\x5d\x77\xd0\x5e\x52\xae\x37\x61\xc3\x2d\xfb\x28\x6b\x2c\xe2\x0d\x9b\x1b\x88\x16\xdb\xe8\xdf\x3e\x10\xed\xb9\x9c\xb2\x85\xa1\x0f\x62\x08\x2c\x5f\xcf\x04\xf3\x40\x6d\xc7\x3a\xc0\x16\xcd\xe3\x20\x6e\x34\x08\xaa\x83\xb8\x62\xc7\xf7\xec\x9b\x0d\xce\xd1\xc5\xdb\x9e\xfe\x41\x3e\x7f\x37\x15\x1f\x59\x56\x9d\x78\xb3\xac\xd7\x8b\xff\x4a\x23\x26\xa2\x25\xf6\xe4\xb0\xb2\xaa\x09\x72\x0e\x56\x88\x82\xbd\xbd\x56\x3a\xb4\x25\xca\x8e\x48\x1f\xee\x19\x57\xb1\x8c\x4e\x9c\xcf\x20\x78\x79\x28\x8c\x62\x62\xae\x78\x85\x83\x76\xed\x17\x49\xbc\xee\x04\x60\x72\xee\x56\xee\x96\xf9\x7a\x08\xc4\x26\x65\xc2\xe5\x06\x43\x1b\x80\xf1\x46\xfa\xd3\x13\x12\xcb\xe8\x9e\xa5\xc7\x29\x8b\xb9\x3a\x01\xf7\xb7\x6e\xf4\xbb\xcd\x8d\xb2\xbd\xb5\xa0\xd1\xb6\x7a\x68\xb5\xd6\xd7\x1c\xca\x70\x41\x44\xb1\x2b\x45\x70\x40\xf8\x04\xb4\x09\x97\x5c\x80\x19\x07\xd6\xb6\x4d\x98\xd0\xe9\x72\x21\xb9\xd0\xde\x92\x55\x5a\x08\xa7\x68\x18\x99\xad\x29\xbe\x36\xdd\x45\x98\xcc\x86\xd3\xbe\x9d\x31\xc5\x5c\x4c\x00\x4e\x4a\x4b\x5b\xe3\x1e\xd9\xc5\x82\xea\x99\x82\xf4\x88\xe2\x1a\x58\x9d\x0b\x3e\x35\x2b\x44\x17\x10\x52\x80\x46\x8a\xfc\x23\x1f\xc4\xaf\x34\x4f\x92\xa1\x10\x8c\xc5\x8a\x40\x26\xc3\x37\xb5\x69\x38\xe6\xd3\x03\x42\xe3\x98\xfc\xef\x6f\x3f\x9c\xff\x7a\xdb\x1f\x0d\x2e\xc0\xe2\x3c\x38\xef\x7f\x77\xe0\x7f\xbc\xbc\xbb\xf5\xbf\xa2\x81\xe5\x81\xa5\x64\x4e\xef\x41\xc3\x13\x0a\xc5\x3f\x08\x75\x0f\x47\xea\x12\x94\xcc\x13\xc5\x5c\xf8\xa8\x15\x53\x7c\x4a\xbb\xdd\xc3\xc6\x4a\x23\x68\xf2\xeb\xa0\xfb\x5e\xfb\x4f\x56\xd3\xa0\x23\x1e\xdf\x85\x13\x03\xe7\x4c\x68\xc3\x63\xac\xb1\x2f\x57\x7d\x73\x82\x63\x62\xca\x45\x53\x90\x1b\x13\x0f\x4f\x29\xc3\xff\xcc\x96\xbf\x18\xed\xfa\x8a\xf2\xb4\x35\xed\xf5\xc5\x03\x4f\xa5\x80\xa9\x79\xab\x56\x5e\x61\x99\x69\xe7\x6b\x0b\x0e\x95\x42\x59\x18\xc2\x28\x16\x8d\x81\x94\xa5\xac\xed\xd7\x31\xdd\x1e\xba\x7e\xd9\x17\x9d\xba\x54\x38\x65\xd9\x0d\x7d\xa0\x3c\x81\x20\x58\x77\xd1\xe4\x34\x38\x14\xb7\x97\x67\x97\x27\x84\x25\x74\x2c\x53\x48\x8d\xc1\xa8\x1d\xd7\x84\x5d\x30\xa8\x5c\xe9\x1b\x2a\xa4\x41\x1e\x90\x45\x9e\x06\x19\xda\xd0\x8e\xb0\x8d\x35\xe9\x90\x0b\x99\x56\x93\x08\x77\xab\x01\xda\xc9\x5e\xc9\xb4\xcd\xf5\x6f\x5e\x83\xa5\x93\x0b\xa3\xc7\x95\x38\xaf\xbd\x9b\x27\x8c\x62\xf5\x1d\x74\x0a\x59\x53\xbe\x8d\x0a\x4d\x92\x02\xd2\xba\x39\x38\xea\xc8\x7a\xc9\xf3\x37\xa5\x20\x3f\xff\x49\x91\x71\xa6\x87\xa2\xd8\x86\x14\x50\xc6\xfd\x3d\xd5\xd1\xec\xbb\xa1\xb8\x34\x5a\xe6\xcf\x7f\x6a\xc8\xd7\x8e\xa9\xa6\xa3\x7a\xa2\x6c\x5e\x93\x33\xaa\xe9\xb9\xa4\x31\x17\x53\x8b\x42\x50\xbf\x16\xef\xfb\xb7\xbd\x13\x72\x69\x55\x78\x9f\x62\x99\xc3\x3b\x04\x0d\x01\x43\x86\x89\x38\x2e\x02\xac\x5c\x78\xd6\x6f\x2d\x64\x20\x3d\x99\x0b\x6b\x28\x60\x29\x91\xab\x72\x4d\x16\xd2\x02\xba\x1a\xad\x0c\xd1\x03\xa8\xaf\x55\x9e\x2c\x89\x59\x1d\x20\x63\xbf\x19\x56\x1e\x03\x79\xa6\xca\xec\x87\x02\xf4\x73\x9f\xf6\x96\xc8\x88\x26\x10\x36\x77\x18\x98\xf4\x8c\xd6\x2e\x33\xc8\x41\x82\x78\x15\xb1\x2c\x46\xb7\xfa\xb4\x38\x2f\x94\x85\x1b\x05\xfa\x3f\xec\xa3\x75\xa5\xce\xa5\xe1\x38\x47\x43\x31\x98\x60\x54\x5d\x82\xab\x63\x3e\x64\x02\xbc\xc9\x6e\x59\xcc\x53\xc7\x8f\xa0\x2a\x19\x7a\x15\x69\x04\xd6\x7b\xb1\x84\x98\x68\x00\x81\x94\x10\x9d\x91\x73\x67\x4b\x94\x95\x5d\xf4\x77\x62\xf0\xd9\x50\x60\x30\x5f\x61\x5f\xc2\x14\xe1\xa0\x77\x29\x20\xd6\x30\xbf\x2e\xbd\x80\xb1\xb0\xb1\x87\x56\xd6\x5f\xa4\xec\xd0\x55\xbd\x35\xbf\x06\x6b\x6a\x6e\xd8\x23\x72\x1d\xaa\xd7\xb1\x8c\xb2\xb9\x43\xba\x81\x5c\x2d\x1b\xa4\x66\x2f\x51\x4f\x21\x78\xb1\xd7\x52\xfc\xbf\x84\xff\xad\x95\x4d\xaf\xb6\xac\x75\xee\xa9\x6a\xb4\x28\xb6\x54\x68\x6d\x3d\x96\xc6\x1a\x60\xe3\x8b\x1c\x30\x03\x4a\xa1\x4b\xa3\x7d\x4a\x30\x43\x63\x4a\x9d\x8c\xbf\x51\x64\x70\x65\x84\x14\xa3\x94\xfa\x63\x92\x29\x8d\x21\x5a\x90\xa6\x82\x5f\x63\x98\xfc\x01\xf9\x9e\x0c\xb3\xef\xbf\xff\x43\x44\xbe\xb8\x7f\xfc\xf1\xdf\xff\xfd\x0f\x7f\xec\x12\xf7\xed\x74\x66\x68\x37\x5f\x23\x0f\x7f\x5b\x94\x5a\xc2\x1d\xa8\x32\x93\x2d\x76\xc1\x9e\x91\xa6\xe5\xb7\x1a\x7b\x63\x9a\x53\xdd\xe3\x20\x04\x87\x4e\xed\x21\x54\xe1\xe1\x21\x85\xd3\x93\xbb\xfa\x15\xd3\x07\xc5\x43\xec\xe5\x51\x2b\x74\xff\xaf\x15\xa0\x05\x23\x43\xcd\x9b\x85\x0a\xf1\xc4\x4b\xc0\xa6\x11\xf2\xad\x35\xd1\x69\x70\xf1\x7d\xe7\xee\x20\x99\xc4\x2c\xb5\xd5\xe0\x9c\x55\xcd\xdb\xfa\xe0\xfc\xb2\x2f\x8b\x44\xda\x20\x0e\x4a\x14\x5b\x50\xb8\xe3\xcd\x79\x3d\x1a\x8a\xfe\x17\x6a\x98\xeb\x81\x2b\xda\x09\x1f\xa1\x6f\x64\x42\x23\x46\x50\x9a\xfe\xf6\xcb\x89\xf9\xed\x80\x2c\x4f\x20\x14\xf3\x80\xfc\xfd\xc4\x26\x4d\xd3\x54\x8f\xcc\x4f\xdf\x39\x71\xd8\x36\x01\x83\xe6\x8a\x0c\xdf\x1d\x3f\xd0\x14\x2b\xbe\x1c\x5b\xb4\xdb\x77\x96\xfd\x79\x24\xef\x50\x80\x4e\xa4\xbc\xb7\x81\xaa\x95\x2f\x8f\x1d\x04\x03\x10\xb8\xf7\x6d\xe0\xe6\xdb\x98\x63\x23\xec\x1d\xc2\x0b\x8c\x1c\x2d\xc6\xe4\xe8\xaf\x4a\x0a\x72\xb4\xa4\xf3\xc4\xfe\xea\x9e\xda\x38\x5a\xaa\x88\x2b\x6f\xe7\xc2\x68\x92\x25\x9a\x33\xdf\x27\x72\x0c\xf3\xfa\xe4\xe6\x8a\x91\xa8\x30\xd0\xfc\x8a\xc8\x6f\x15\x3b\x11\x2b\xee\x60\x22\x39\x14\x84\x35\xaf\xc0\xdd\x5b\x37\xab\x2f\x7e\x48\xff\x85\xbe\x5b\x58\x14\x97\xbe\x86\x16\x5c\x1f\x06\x66\x1a\xfd\x42\xbe\xb5\x4c\xe8\x3b\x73\x11\xd8\xb0\x5f\x5c\x86\xba\x0e\x96\xbe\x83\x5f\x83\x0e\xb8\x20\x98\x90\xb8\xe2\xcb\xbf\x1f\x1f\x1d\x1d\xf9\xaf\x2f\xcc\x54\xfe\x3f\xc2\xb5\x62\xc9\x04\x5b\x72\xd7\xcc\x72\x28\x3e\x39\xb4\x3a\x67\x61\xce\xc1\x5d\xa0\x48\x63\x24\x13\x72\x98\x5b\x5d\x63\x19\x29\xf2\x3b\x23\x7b\x06\x4b\x09\x3f\x1a\x65\xab\xfe\x54\xd9\x5a\xbd\xcf\x74\xac\xac\xd5\xba\x7c\xb0\x42\x3c\x07\xaf\x7d\x52\x15\x42\x1f\x02\x2d\x18\xca\x39\xb6\x98\x0f\x50\x46\x57\xb3\x2f\x1a\x1e\x35\x40\x6a\xd4\x86\x84\xd7\x4b\x70\x15\x86\x9b\x23\x6b\x20\x59\x37\x2c\x80\x05\x3e\xb0\xbc\x01\xe7\x79\x10\xba\x38\xcc\xf5\x22\x42\xfc\x34\x95\xcd\xe7\x34\x5d\x1e\xe7\xa7\xad\x4a\x9c\x39\x18\x2a\x70\x99\xc4\x2d\x00\xb8\x59\x13\x7b\xb4\x6c\xa4\x81\x95\x01\xdd\x9d\xe6\xcf\x6e\x04\xe8\xeb\x10\xf2\x86\xb5\x07\x98\x88\x64\x6c\xe9\x3a\xcf\xbb\x2c\x8a\x15\xfe\x9d\xaa\x40\xe1\xa2\x56\x54\x6e\x31\x13\x1a\x93\xb1\xed\x1b\xee\xe3\x06\x06\x2e\x47\x50\x19\x83\x4d\x3b\xb8\x30\x07\x97\x37\xee\x9b\xf6\xd7\x2e\xac\x43\x51\xae\xa6\x4e\x95\x73\x66\x83\x94\x3e\xe6\x17\x30\xc4\x5f\xa0\x09\x25\xf3\x59\xa9\xf8\xf7\xa9\xbc\xe2\x89\xb9\xb7\x80\xc6\x8f\x86\xa2\xf0\xf3\x01\x61\x09\x9f\x73\xe1\xc3\xdf\x90\xbd\xcb\x09\x8a\xb8\xf7\x5c\x9b\x2d\x53\xf1\xbd\xe1\x60\x2e\xc1\x3f\xd0\x7b\x7a\x62\xe9\x48\xc7\x7b\x8f\xac\x99\x20\x53\x66\x5c\xb9\x22\x6d\x24\x4e\xd3\xc4\xa1\x95\x1a\x79\x40\x78\x70\x7e\x87\xc2\xb4\xe6\xce\x52\x1e\x77\x1b\xb4\x17\x34\x77\xe8\x50\xc4\x02\x0e\x00\x7d\x14\x82\x67\xbd\x90\x5a\x23\xa2\xf4\x45\x36\xdf\x36\x69\xc3\xc6\xe1\xbe\x94\x2d\xed\x2a\x2f\xc4\x6a\x13\x80\x98\xc8\xe6\xee\x40\x75\xa0\xb8\xbe\x15\x80\x62\x16\x25\x14\xee\x0e\x68\x08\xa2\x13\x0f\xd0\x89\x19\x14\x7d\xb5\xd7\x0b\x76\x83\xc0\xa4\x09\x13\xdf\xe2\xdf\xdf\x11\x7b\x37\x7c\x7f\x60\xef\xf3\x54\x59\x3d\xcf\xed\x39\x00\xdb\xb3\x18\x0d\xdd\x80\x4f\x36\xa5\x50\x8a\xdb\x5a\x5f\x0a\xca\x21\x48\x60\x4b\x99\x91\x47\xae\x66\x43\x71\x2b\x9d\x55\x90\x08\xe9\x11\xde\x0e\x40\x63\xac\xf4\x47\x15\x30\x01\x18\x75\x1d\x05\x94\xaa\xa4\x77\xcf\xd9\x81\x38\xd3\x91\x90\x31\xeb\x18\x6e\x5e\x53\x85\xda\x3a\x0b\x9c\x8f\x39\x65\x98\x57\x05\x37\x45\x63\x0d\x5d\xa5\x3a\x1a\xd0\x6b\xcb\xb9\xdb\x76\xa0\x88\xc9\xa3\xd8\x14\xd2\xc2\xdf\x6a\xd0\x8a\x53\x0b\x83\x3c\xd8\xc2\xda\x17\x4b\xce\x6f\xa5\xa3\xc5\x9b\xb9\x10\x70\xee\x11\x2c\xbb\x8f\x01\xa6\x64\x9a\xca\x6c\xe1\x93\xc5\x5d\xda\x1c\x6e\x83\x95\x69\x06\x62\x22\x4f\xac\x56\x75\xce\xc5\x3d\x52\xfc\x53\xed\x91\x2f\xee\x1e\xfc\xee\xee\x30\x5c\xf1\x43\xc2\x45\x94\x64\x70\xf1\x29\x4d\xa3\x7b\x84\xf7\x6b\xb2\xcc\x9a\x6f\x46\xeb\x93\x12\x1b\x24\xa6\x2c\x49\x6c\xb7\xf9\x05\x9a\x17\xde\x79\xe0\x94\x50\x72\x77\x3d\xa8\xef\xfb\x9e\x57\x3d\x2e\xf5\xb7\x67\x91\x40\xe0\x7f\x7e\xe6\x9d\x62\x23\x4b\x38\xa4\xac\x40\xea\xde\x02\xd4\x84\xbe\x55\xba\xbd\xb7\x74\xf1\x9a\x5b\x68\x34\xaf\xa1\xd4\xfa\xc9\xe7\x1d\x9f\xd9\x8f\x3f\x99\x6f\xeb\x77\xe4\x13\x24\x05\x79\xe4\x84\x39\x15\x66\x82\xae\xd7\x06\x13\x21\x5e\x8c\x1b\x0d\xe9\x6e\xb1\xd1\x80\xb0\xc7\x96\x98\xd9\xb6\x2b\xd7\xca\x23\xda\x0c\x69\x82\x0a\xb7\x9e\x81\x26\x76\x40\x6e\xa2\x19\x9b\x53\x88\x4b\x99\x17\x35\x32\x90\x4c\xbf\x4d\x68\x3a\x45\x39\x51\x31\xad\xbe\xab\xd9\xe1\x3c\x3c\x7b\x8b\x1d\xde\x00\xcf\x3f\xf4\xd1\x80\x14\xb2\x8a\x03\xf8\x51\x16\xa1\x81\x3c\x73\xf2\x95\x31\xec\xdd\xc1\x95\x8b\x5a\x01\x99\x29\x4d\x01\xc1\x2e\x36\xc2\x78\x33\x66\xc2\x96\x65\x5d\x2e\xe8\xdc\xe7\x17\xbb\xe2\x12\x36\x8f\x04\xc7\x36\x66\x00\x13\xd5\x3c\x86\xad\xeb\xb7\x84\x43\xb0\x78\xea\x4d\x23\x18\x8a\x9e\x7b\xc5\xe7\x28\x82\x84\x9b\xa2\x18\x02\x91\x6c\x18\xb7\x09\x52\x26\xcd\x17\xdd\x4e\xae\x61\x12\x5d\x73\xc1\xca\x25\x68\x8c\x94\xeb\x71\xe5\x50\x8a\x71\xea\x8e\x9b\x47\x43\xcf\x0f\xdd\x2b\x74\xd5\xc3\x3c\x44\xe5\x0a\x4a\x75\x1d\xaf\x97\x28\x5d\xfe\xb9\x6d\x28\x2c\xda\x84\xd1\x6e\xc9\x32\x8f\xad\x32\x2b\x8e\x9a\x49\xa9\xb3\xea\x61\xd5\x5b\x31\x63\x4e\xe7\xa3\x54\x26\xdb\xec\x91\x6b\xa2\xa0\xe5\xce\x10\xee\x73\x49\xfe\x96\xd1\x04\x2d\xf2\xc2\x92\xa3\x1b\x36\x08\x0c\x3f\xfe\x91\xf4\xe0\xb6\x24\x9f\x80\x2d\x82\x2f\x12\x5a\xd3\x92\xf0\xf9\x82\xa5\x4a\x1a\x75\xac\x61\x93\xef\xff\xa4\x46\x16\xab\x77\x44\xa3\x48\x66\x55\x5c\xde\x0e\x33\xa9\x69\x2d\x9c\x14\x25\xf7\xd9\x98\xa5\x82\x61\xa5\x48\x78\x8f\xb8\xf7\x5a\x0d\x57\xd2\x4c\xcf\x7e\x1c\x45\x09\x6f\x0d\x20\x0c\x79\x10\x3d\xf3\xd9\x29\x7e\xb5\x6a\x02\x85\xf6\x0b\x43\x17\x04\x9f\x11\x7c\x76\x44\xde\xd3\xe8\x9e\x89\x98\x2c\x92\x6c\xca\x6d\x6a\x32\x5c\x50\xc0\x2d\x03\x23\x55\x71\x62\xa8\xf1\x62\xfb\xe6\x16\x1a\x8a\x39\xbd\x07\x05\xe9\x8b\x0d\x17\x37\x8a\x66\x27\x65\xcb\xd3\x43\x05\xa3\xc1\xe5\xd1\x2a\x16\x65\xa9\x79\x03\xcf\x87\xc6\xf3\x01\x66\x25\xc0\x29\xcb\x04\xa1\x00\xf3\xf0\x8d\x22\xd9\xc2\xd9\x3e\xc0\xde\x91\x80\x8b\x08\x27\x09\xb5\xc3\xb8\x91\x06\x67\x6c\x28\x20\xec\xce\xb5\xb8\xf4\x5c\x25\xf4\x4a\x7a\xef\x78\xdd\xe1\x9b\x60\x92\xf3\x76\xde\x14\xb4\x22\xed\x3c\xa4\x50\xcf\x98\x00\x35\xac\x7d\xcb\x90\x29\xde\x7e\xd3\x0a\xe1\x83\x38\x8b\xdc\x6e\xe4\x97\x30\x13\xdc\x42\x56\x5b\x53\x61\x10\xd9\xe3\x2c\xea\xf9\xf7\x5c\x11\x45\x35\x57\x13\x5e\xab\x9e\x86\xa9\xe5\xdb\xac\x3a\xed\x96\xcf\x5e\x93\xcb\x5e\x5a\x0b\x1f\xa1\x7c\x44\x3e\x80\xb6\x9d\x4f\x49\x4b\x9f\x19\xde\xc4\x12\xf4\x8c\x35\x82\x9a\xed\xc2\xb7\xef\x66\xd0\xd6\x88\xe2\xa3\xd1\x8f\x48\x2f\xb7\x72\x62\x6e\x3c\xda\x2f\xd7\xcc\x88\x25\x8a\x6d\x42\x7c\xad\x0c\x02\xe0\x0b\x04\x02\x22\x20\xab\x28\xf3\x7b\x0e\xb0\xe8\x87\xf9\x08\x09\x5f\xf4\x9e\x89\x55\x5a\x5f\xfb\x11\xf6\x0b\xd9\xb2\x75\x43\xec\x79\x7d\x5f\xa2\xca\xbf\xc9\x00\xdb\x1f\xbb\x1c\x8e\x80\x4f\x8e\xcd\x92\x1b\x39\x3f\xba\xb7\x71\xe6\x68\xf5\xb1\x80\x06\x8f\x33\xa9\xc2\x73\xe6\xf6\x0f\x36\x53\xa7\x19\x73\xf1\xe4\x10\xa6\xef\x17\x18\x1d\xf4\x42\x86\x78\x07\x30\x6a\x7f\x48\xd1\xa2\xe5\xf7\x9b\x38\x16\x0a\xcb\x00\xd6\x72\xd7\x54\xf5\x34\xff\xfc\x27\x75\x09\x27\x76\x17\x59\xbb\x09\x1d\xb3\xe4\x09\x60\x9c\x36\xb4\x43\xfa\x60\x10\x1c\x17\xd8\xfc\x63\x9f\x25\xbe\x90\x31\xc9\xc9\xab\x29\x26\x51\x08\x89\xc1\x00\xaf\x70\x5a\xc1\xe0\x5a\xcf\x6d\x1d\x65\x7f\x0a\x9c\x95\x58\x11\x17\xa1\x51\x02\x91\xcb\x66\x76\x81\xf2\x6b\xaf\x7f\xae\xfc\x7d\x52\x4f\x63\x57\x32\xde\x86\xb0\xba\xc3\x5f\x55\xe9\xba\x45\xc0\xa1\xaa\x2b\xc8\xb3\x62\x25\x16\xb2\x39\x54\x2c\x1e\xb5\x2f\x61\x03\x6e\xc7\x71\x36\xb9\x01\xf0\xdd\xa6\xec\x75\x87\x3a\x34\x63\x3e\x1f\xc5\xec\xb3\xe9\xc6\x47\x47\x37\x6d\x8a\xf5\x62\xe5\xd7\x3f\x25\xff\xf7\xe6\xf2\xe2\x70\x4e\x53\x35\xa3\x90\x1d\xe8\xda\x3a\x70\x10\xf1\xa8\x80\x3a\xeb\x3a\x17\x64\x28\x0e\xc9\x54\x1e\xa0\x33\xe7\x84\xcc\xb4\x5e\xa8\x93\xe3\xe3\x29\xd7\xb3\x6c\x7c\x14\xc9\xf9\x71\xbe\x36\xc7\x74\xc1\x8f\xc7\x89\x1c\x1f\xa7\x0c\x62\xee\x0e\x7f\x38\xfa\xf1\x07\xd8\x9a\xe3\x87\x1f\x8e\xc1\x84\x7f\x34\x95\xbf\x3b\xff\xf1\x3f\xfe\xf0\x47\xd3\xf0\x62\xa9\x67\x52\x9c\x58\x4f\xd1\xca\xb6\x0f\x51\xf0\x3d\xc6\x4f\x4a\xbd\xfc\xc7\xd1\xf7\xe1\x30\xec\xab\x73\x19\xb3\x44\x1d\x3f\xfc\x30\x72\x3b\x73\xb4\xe8\xe2\xfb\xca\x19\xbe\x5f\xf2\x52\xfd\x26\xf3\xbb\x27\x19\x97\x1d\xb4\x6e\x5b\x6a\xce\x4a\x18\x51\xb9\xc5\x89\xb9\x67\xeb\xca\xff\xaf\x3a\x0f\x5e\x92\x6a\xd0\xe9\xbb\xa2\xfb\x36\xca\x36\x9d\x12\xc8\xc0\xf9\xc6\x23\x40\x8e\x44\x1b\xc4\x82\xf2\xba\x30\x1f\xeb\x64\xde\x66\xfd\x9e\x12\x03\x75\xd7\xe0\xa7\x76\xba\x1b\x02\x9f\x26\xf8\xb5\x73\x89\xcb\x47\x07\x78\xba\x0b\x98\xd0\x96\x85\x34\x3c\x96\x22\x12\x0f\x8c\xc5\x8d\xab\x1b\x8d\x14\x96\x18\xa3\x24\x6c\x10\xa4\x82\x80\x49\x44\x23\x90\x13\x8f\xea\x8a\xb1\xae\x08\x00\x2d\x27\x35\xff\x78\x9f\xc8\xb1\xfa\xce\x63\xa0\x50\xe5\xfa\xc8\x41\x09\x9a\x49\x70\x37\x20\xa2\x6e\x29\x9e\x52\x3f\x71\x67\x26\x94\x42\xba\x2c\x7c\x3d\x51\xe5\xa1\xa8\x98\x93\x49\x53\x99\x09\x07\xc2\x28\x05\x93\x13\x08\x12\x80\x0b\xd0\x39\x41\xc0\x08\x22\xa4\x0e\xf2\x2f\x53\xb6\x40\x46\x0a\xe6\xba\xe6\xe5\xde\x12\x88\x74\xdd\x3a\x3f\x05\x10\xe9\xb6\xeb\x6e\x0f\xce\x0b\x2d\xf8\xb6\x91\x0a\x78\x94\x3a\xb0\x59\x78\x7f\xad\x67\xc2\xf3\x01\x70\x45\x84\x05\xc6\x10\x6e\x04\x02\x88\xd9\xa1\x96\x87\x90\xb7\x0e\xd9\xd0\x08\x0d\xdc\x54\x30\x03\x3c\x3a\x5d\xae\x03\xf3\x7e\x8b\x71\x62\xd0\xf8\x97\x60\xa0\xf6\xee\x55\x79\xe9\x71\xa3\x5c\x0a\xc1\x52\x6b\xac\x5e\x7b\x73\x74\xf4\xf7\x84\x5b\xb9\xda\xe1\x9b\x0b\xa0\x21\x6c\xab\x0f\xf7\xa3\x01\x13\x38\x22\x10\x19\x3d\x93\x73\x69\xae\x6d\x99\xa9\xe0\x21\x46\xd6\xc3\x65\xb3\xa2\x0a\xfc\x02\x71\x6a\x5e\x6e\x36\xe6\x68\x99\x47\xa8\xcb\x87\x2f\xad\xc7\xae\x0e\x66\x32\x2e\x62\xff\xae\x19\xbf\x07\x6d\x5d\x4d\x37\xe0\x4d\x9c\x83\xed\x14\x4a\x92\x58\x28\x46\xfe\x77\x23\xaa\x1b\x92\xf2\x51\xec\x2e\xf3\xdd\xc6\x9d\x22\x1c\x53\x88\xd7\x56\xaa\x3c\x5a\x1e\x3e\x13\xd9\xbc\xe3\x1e\xf8\x18\xa6\x36\x1b\x40\x05\x46\xf5\xb8\x70\x9e\xc3\xda\x78\x9e\xc6\x50\x93\x2e\x8a\xe1\x2a\x3d\xab\x2e\xd8\x0d\x31\x56\xf2\xd8\x56\x43\x01\x15\x19\xdf\x7f\xf8\x90\x17\xeb\x59\x2e\xd8\x01\x19\x67\xf0\xfc\xe2\xf2\x36\xf4\xe2\x71\x01\x8f\x0f\xa3\x19\x8b\xee\x21\x17\x05\x39\x36\xee\xa5\x2b\xd4\x34\x5e\x0e\x45\x5e\x12\x42\x4b\xe7\x92\x5a\x7a\xcc\x4d\x8f\x3b\x2b\x53\x12\x73\xb5\x48\xe8\x12\x8c\xff\x02\xa3\xd8\x72\xc7\x81\x0f\xff\x34\x94\xbc\x99\x8d\x0b\x6a\x56\x58\x16\xe5\x84\x44\xf8\xcb\x4d\xc2\x17\x6c\xf4\x11\xd9\x75\x32\xd1\xd6\x28\xa8\xdb\xc4\x32\x35\x55\x5f\x09\x8a\xd4\xe2\x8e\x86\x4e\x6d\x9f\x2c\x5d\x2e\x0b\x3a\x7c\xe7\x62\xc4\x41\x0f\x1c\xba\x8a\x86\xe6\x6f\x2c\x97\xc5\xd2\x07\x16\x0f\x45\x31\x1d\xdd\xde\xb3\xf9\x2e\x93\x1c\x95\x7f\x37\x24\xee\xd6\xb9\x95\xd9\xa3\x0f\x29\x78\x39\xf6\x8e\x8f\x83\x5e\x51\x25\xa0\xbe\x1c\xe0\x13\xc0\xd9\xb7\xb6\x87\xe5\x65\x00\x2c\x86\xb7\x2d\xd2\x51\x70\x3d\x79\xc2\xf4\xc9\xb6\x88\xc4\xe1\xe3\x43\x6d\xbc\x68\x25\x73\xa9\xae\x8d\xa1\x70\x29\x2e\x93\x2c\x49\x10\x5d\xa9\x61\xb9\x5c\xf2\xbd\x8b\xc6\x7b\xb9\xa8\x4c\xaf\x74\x93\xa0\x6e\x82\x77\x11\xc5\x6c\x11\x43\x56\x42\xb4\xcc\x2b\xb4\x02\xf1\x32\xa1\x32\x60\xc4\x0e\x33\x1d\x52\xc9\xa6\x4c\x13\x23\x14\xc5\x59\x82\x39\x1b\xe0\xfd\x83\x4c\x7e\x9a\x24\x84\x6b\x35\x14\x1e\x78\x00\x51\x24\xe1\x9e\x72\x49\x72\xb1\x15\x54\xa1\x0b\x68\xd6\x56\xd6\x82\xdb\x8b\x47\x5c\x17\x86\x04\x6e\xad\x65\x08\x34\xbc\x58\x30\x8a\x11\xc6\xf6\x24\x8a\x50\x54\x2d\x6f\x83\x0d\xc7\x85\x82\x47\xbb\x88\x8c\x6d\xa6\x5e\x2c\x78\xd5\x79\x53\x8e\x48\x0f\x67\x67\xe4\x54\x57\xf5\x07\x47\x6b\xf3\x9a\x6c\xe4\x87\x11\x06\xb5\xf2\x85\x4b\xbd\xb8\xbf\xa0\xa9\xe6\x51\x96\xd0\x34\x59\xba\x6a\xc5\x7c\x12\x14\x30\x82\x4d\xc0\xbc\x73\x5b\x19\x19\xb0\xd8\xad\xc5\x58\xd1\x39\x0b\xf2\x69\xac\x56\x9c\x04\x1e\x27\xc4\xd2\x43\x57\x86\x69\xeb\xbb\x23\x72\x56\x2e\x57\x05\xc7\x22\xc0\xab\xe1\x0a\x39\xa0\x1f\x6f\x10\x08\x8e\x65\xaf\xf8\xc4\x48\xe2\xdf\x04\x07\xaf\xa9\x94\x22\x55\xf7\x1d\xdd\x59\x0e\xf4\x74\x75\x10\x53\x6d\x22\xc8\x2d\x94\xdb\x2b\x38\xb9\xfc\x89\x68\x18\xa0\xbb\x1c\x3a\x0e\x32\xc4\xfa\xd9\x60\xa0\x9f\x83\x7a\x76\xe5\xc1\xce\x57\xd4\x4b\x82\x7d\xec\x38\xd4\x00\xcb\xbc\xfb\x40\x03\xca\x09\x9d\x97\x8d\x2b\xbb\x5e\xf3\xfd\x5c\x40\x15\x27\x66\x5c\x46\xeb\x60\xe8\xee\x2e\x95\xc4\x85\x31\x58\xf8\x71\x40\x8b\xf4\x87\x6d\xcc\x48\xc2\xc5\xbd\xcb\x3c\x33\x3b\x7f\x40\x68\xde\x3a\x1c\x3e\x1c\x3d\x12\x73\x83\x64\x53\x87\xad\xba\x85\xb0\xd3\x2e\x7a\xbb\x5e\x62\x77\x23\xe9\x04\x9f\x5b\x29\x1c\x1b\xcc\xa3\xfd\xb6\xac\x0c\xb0\xf2\x42\xac\x8b\xaa\xc2\x0b\x26\x08\xf5\xd0\xdc\x97\x12\x6d\x5c\xdf\xab\x19\xad\xaf\x3e\xbd\x1e\x2e\xfc\xee\xe2\xac\xff\x61\x70\x51\xc4\xf8\xfe\xf3\x5d\xff\xae\xf8\xcb\xf5\xdd\xc5\xc5\xe0\xe2\x63\xf8\xd3\xcd\xdd\xe9\x69\xbf\x7f\x56\x7c\xef\x43\x6f\x70\x5e\x7a\xcf\xfc\x54\x7c\xa9\xf7\xfe\xf2\xba\x84\x2a\x7e\xf3\xf3\xe0\xea\xaa\xf8\xd3\xed\xe0\x53\xff\x6c\x74\x79\x57\x00\x26\x3f\xfb\xf5\xa2\xf7\x69\x70\x3a\x72\xe3\xb1\x4f\x6a\xb1\xc5\xf3\xa9\xd5\xae\xde\x2e\xdc\xbb\x1b\x03\xca\xf7\xc8\x24\xe5\x4c\xc4\xc9\x12\xa3\xcf\x9c\x4a\x52\x0a\x76\x09\xb9\x3d\x9f\x33\x99\x6d\x13\x44\x66\x54\x76\xf9\xc0\x52\xc8\x86\xc3\xd6\x6c\xe8\x3c\x55\xf7\x8d\x80\x26\x3a\xad\x9a\xef\x56\x86\xca\xea\x74\xe9\x83\xb1\x57\x06\x81\xfa\x5c\x6a\xdb\x09\x59\xb0\x74\xd5\x58\xe0\x2e\x4e\xb3\x85\xe6\xe3\xe6\xb0\xc0\x96\x39\xc6\xdd\x95\x3e\x04\xe7\xa8\x4f\x92\xbc\xa8\xe7\x81\x85\xe8\xb8\x6d\x02\x83\xa0\x85\x4d\xeb\x24\xf8\xaf\x5d\x30\xc5\x22\x1b\x27\x3c\x22\x3c\xce\x21\x45\x30\x6c\x0e\x63\xb8\xd1\xb6\x53\xc6\xf0\x59\xb0\x14\x84\x23\x23\x73\x2e\x52\x76\x48\x33\x3d\x73\x35\x17\x7d\x99\x7e\xc4\xd4\x61\x51\xca\xb4\x2b\x03\xcd\x62\x87\x9c\x1f\xf4\x04\x83\xb1\x99\x1c\x31\x24\x8d\x1e\x05\x70\x8a\x0d\xc6\x3c\xfc\x12\x5b\xef\x60\x76\xc4\xf7\x57\x2e\x8d\x1d\x31\x57\xe5\xe2\x68\x20\x06\xe2\x43\x87\xbf\x6f\xe6\x6d\x98\x72\xe4\x42\x0e\x71\x93\x5d\xf4\x62\xfd\x34\xd6\xd1\x58\x48\x28\xc5\x60\x43\xdb\xba\x7d\x74\x9a\x32\xb8\x2f\xac\x6f\xca\x29\xcd\xe0\x4b\xb5\xd1\x8e\x10\xe4\x68\x94\x83\x31\x9b\xd1\x64\x82\xf6\x17\xb3\x35\xf9\xb9\xaa\x92\xe8\xad\xbc\x67\xc2\x96\x43\x7f\x11\x76\x28\x50\xd6\xce\x73\x7b\xbc\x29\x22\x37\xd6\x40\xe9\xee\xd4\xd5\x6c\xc7\x68\x6f\x2c\x0b\x8a\x92\x69\xf0\x18\x43\x2e\x73\x78\x2d\x17\x28\x3e\x99\xf0\x2f\xa6\xc1\xa1\x60\xb5\x00\x43\xe0\xc0\x76\x59\xd6\x9e\x2f\x03\xc0\x06\xa6\xaa\xde\x33\x01\xd8\xff\x58\xbe\x6b\x2d\xcd\x76\xb3\x11\x56\xf7\xa2\x6a\x31\xf4\x2b\x06\xc6\x26\x5e\xa8\x88\x10\x9a\x63\xdd\x3a\x41\x56\xc7\x3d\x3b\x22\x67\x36\x01\xcf\xfc\x72\x7a\x3e\xe8\x5f\xdc\x8e\x4e\xaf\xfb\x67\xfd\x8b\xdb\x41\xef\xfc\xa6\xed\xf1\xdb\x45\x64\x70\xe9\xf4\x95\x83\xb3\x3d\x87\x38\xb6\x27\x2f\xcf\x4f\xf1\x93\xca\x8f\x1d\x6c\xc9\xfa\xd1\xf3\x78\x31\x8a\xb9\x8a\xcc\xf5\xb7\x1c\x31\x11\x03\x32\xdb\x46\xa4\x5a\xdf\x54\x79\x16\xfe\x0d\xe2\xdf\x70\x1c\x04\x6f\xbb\x07\x47\xd1\xfe\x39\x40\xb7\xd8\xca\xd7\xe6\xf0\xc7\x43\x11\xdc\x36\x47\xeb\xd1\x78\x4d\x73\xdb\xcd\xad\xd8\x44\x79\x4e\x38\x5e\xae\x54\x46\x0d\x7f\x74\xaf\x41\xde\x67\xc3\xaa\x58\x2c\x8e\x10\x1e\x8e\x07\xd5\x87\x88\xd1\x86\xe7\x54\xc4\x54\xcb\x74\xd9\x30\xc5\x76\xcc\x33\x3c\x36\x45\x16\x1a\x5e\xd9\x46\xd5\x77\xbb\x80\xaf\x52\x51\x26\x25\x04\x91\xbb\xbd\xfc\xb9\x7f\x71\x33\xea\x5f\xfc\x32\xba\xba\xee\x7f\x18\xfc\x97\x4f\xb2\xb7\xb5\xd4\x8b\x85\x4d\x98\xb9\x14\x0d\x77\x71\xe9\x7e\xb5\xfc\x05\xcb\x8b\xb8\x76\x2c\xa4\x3c\x9f\x0c\x85\xe3\x2c\x69\xde\xfc\x2c\x95\xd9\x74\x56\xdf\x50\x79\x94\x57\xbd\xdb\x9f\x36\x1a\x26\x24\x63\x63\x0d\x02\x3c\x6d\x55\x58\x21\x3e\xb1\x7c\x0f\xb1\x88\x4a\xc3\x03\x48\x01\x78\xb5\xce\xbc\xdd\xc0\xd1\x36\x52\x54\xaa\x4c\x6b\xa5\xf0\x5f\xf3\x7a\x13\x01\xdd\x06\x7c\xb3\x70\x8d\x40\x94\x18\x56\xb7\xa9\xb4\x76\x52\xf3\x5b\xe1\x06\xfb\xf1\x30\x61\xd3\x29\x8b\x91\xbc\xca\x0d\x5b\xab\x8f\x65\x81\x51\x7e\xaf\xd7\xad\xa2\x2d\x36\xb1\xc5\xc5\xec\x03\x33\xda\x33\xf0\x2b\xff\x49\x3d\xaf\x38\x75\x45\xe7\x22\x29\x94\xa6\xa2\x01\xbc\xb3\x63\x61\xec\x1c\x51\x3f\xcd\xcb\xd3\x5b\x5b\x88\xb3\x53\xe7\xe7\x60\x13\xdf\x8d\x2d\xaa\x21\xac\x71\x23\x28\xb6\x11\x54\xc9\xab\xd9\x84\x52\xe9\xe1\x27\xb7\x63\xac\x54\x9d\x6c\x06\x3a\x18\x17\x11\xd5\xdc\x22\x98\xa1\xe1\x07\x4a\x05\x34\x46\xaa\xed\xb8\x52\xb9\x37\x6e\xe6\x65\x96\x7d\xe1\x6e\x27\xbc\x75\x37\x65\x95\x8a\x14\x07\x05\x9c\xe3\x2c\xb2\x50\x7d\xd8\x6c\xee\x8a\xb6\xb6\x2b\x77\xc1\xc6\xe4\x30\x2c\x0c\x1f\x1f\x42\x2e\xf1\x50\x34\xf9\x30\x6a\x8a\xaa\x87\x14\x70\xe5\x6e\xad\xed\x70\x28\x3a\x44\xd0\xb9\xc5\x6e\x97\xe3\x41\xdc\xeb\x20\xec\x35\x78\xf2\xed\xbe\x8c\x29\x3a\x29\x8b\xd7\x71\x53\xba\xa7\xe7\xaa\xdd\x02\x0e\xda\xf9\xba\x8b\x20\x12\x78\x45\xce\xa8\x42\xc9\x55\x47\xb3\xe2\xc0\x61\x36\x45\xa0\x88\xf2\x70\xbd\x24\xb8\x9d\x85\xa0\x95\x8f\xe2\x00\x75\x6a\x28\x7e\x6f\x46\x1f\x22\xf3\xfb\x2a\x23\xdd\x08\x3f\x14\x8e\xbc\xf2\x82\x7c\x0f\x18\x56\x42\x33\x11\xcd\xc8\x22\xa1\x98\xd7\x34\xa3\x0a\x49\xda\xb9\xc1\xe9\x98\x27\x5c\x43\x46\x36\x3a\x90\x4a\x2b\x6c\x34\x1a\x9a\xde\x3b\x2c\x28\x9a\x23\xc2\xac\x22\xfa\x2d\xe3\xc8\xf2\x82\x93\xcf\x19\x49\x96\x1f\xd9\xe0\x8b\x95\xde\xa7\x9c\x2c\x6d\x14\x59\xbe\x1d\x86\xe3\x01\x59\xe6\x73\xe9\xb6\xb3\xb6\xc5\xab\xf2\xe7\x85\xf5\xae\xb9\xa8\xbb\x47\x05\x58\x98\xc3\x0e\x6c\xbe\x0c\x82\x58\x7b\xb2\x26\x89\xa4\x0d\xa5\xb2\x5c\xdb\x88\x69\xd8\xd4\x76\x2c\xb3\x71\x13\x86\x16\x8e\x6a\x75\xeb\xab\x4c\xfc\xee\xdc\xee\xca\x2e\x18\x32\x40\xaa\x99\xe6\xdd\x4c\x1b\xc1\xa4\xa9\x66\x87\xf0\x79\x7d\xe3\x16\x39\xaa\xf5\x9c\x2b\x84\x96\x83\xdf\x7a\xa4\x2e\x23\xd2\xd6\x94\x5b\xfe\x73\x06\x25\x9d\x2f\x27\x37\x98\x23\xbc\x0d\x91\x69\x5e\xa5\xb0\xfa\x93\x58\xee\xf5\xb6\xe8\x3f\x09\x69\xa0\x75\x7e\x48\xdd\x6c\x6e\xcc\xd7\xed\x0f\x64\xb1\x9c\xe4\x22\xe5\x12\x32\x79\x6d\x0d\xca\x15\x60\x23\xb5\xfd\x6e\xb1\x92\x7f\xcb\x58\xc6\x0c\xed\x8f\xb3\x78\x5a\xb5\x6d\x76\x90\xce\xf2\x29\xcd\xe4\x23\x99\x67\xd1\x8c\xb8\xc6\x49\xcc\x12\xba\x2c\x4c\x0d\xe4\x25\x2d\x13\x80\xef\xda\x10\x4b\x28\xca\x94\x96\x73\x88\xb1\xcb\xdb\x4d\x33\x01\x04\x4f\xa8\xd6\x29\x1f\x67\xba\x36\xf6\xa9\x00\xaa\xb1\xa1\xef\xea\xe6\xaa\x7f\x3a\xf8\x30\x28\x39\x8e\x7a\x37\x3f\x87\x7f\x7f\xbe\xbc\xfe\xf9\xc3\xf9\xe5\xe7\xf0\xb7\xf3\xde\xdd\xc5\xe9\x4f\xa3\xab\xf3\xde\x45\xc1\xbd\xd4\xbb\xed\xdd\xf4\x6f\xd7\xb8\x95\xaa\xbd\x36\x6f\x04\x0d\x30\x3f\x8c\xec\x62\x0d\x97\xe0\xec\x73\xda\xa5\xed\xf5\x84\xf4\x1c\x02\x4a\x58\x24\x8c\x3a\x2f\x20\x78\xaf\xb1\x6a\x99\x75\x16\x9e\x51\x4d\x6d\x15\xc8\x23\xd2\x23\xae\x9a\x27\xc4\x61\x2a\x23\x2c\x58\x7c\x08\xb3\x3b\xd8\x84\x91\x18\xa2\x5c\x73\xcb\x2b\x51\xc8\x89\x05\x66\x49\x58\x08\x87\x68\x2b\xb7\x1f\x0d\x45\xff\x81\x09\x9d\x01\x56\x1b\x4d\x12\x57\x74\xd5\xbd\x10\xe4\x51\xb9\x51\x2a\x3e\xe7\x09\x4d\xf3\xa2\x01\x97\xb6\x2d\x10\xd8\xdd\x58\x7d\xda\x7c\x15\x49\xda\x29\x0f\x77\x03\x02\xe3\x3e\x3d\x1f\x80\x08\x14\x69\x07\xb7\xeb\x3a\x1f\x0a\x44\xfe\xb0\x3d\xce\x29\xc4\x06\x6b\x69\xed\x69\xd8\x7d\x63\x11\xfa\xeb\x1a\xd0\xfe\x0d\x90\x65\xd0\xf2\xfc\x54\x81\x34\x7e\x90\xee\x1f\x7d\xa1\xd3\x65\x6b\xb9\xe6\x16\xd0\xda\x14\xc8\xa6\x36\x66\xa6\x58\x48\x00\xcd\x1d\xc4\xb5\x7e\x01\xc2\x8e\x8b\xe9\xb2\xd6\x78\x6f\x74\x67\x80\x08\xd7\x20\x7f\x27\xe6\x12\x7a\xad\xeb\x10\xa6\x29\xc3\x2a\x8c\x65\x26\x62\x57\x05\x7d\xce\xc5\xf1\x9c\x7e\xf9\xce\xcd\x14\xd3\xfe\x3c\x52\x28\x40\x3a\xb0\xc4\x68\x22\x4b\xc3\xe4\x56\x2f\xd7\x50\xac\x58\xaf\xf5\xd2\xa2\xe3\xac\xa0\xf6\xe4\x3a\x2a\xc6\x29\x3d\xb0\x65\xdd\xfe\x55\xf0\x9e\x31\x16\xca\x1e\x78\x68\x64\x91\x32\x6d\xde\xf4\x51\x50\x09\x46\xb7\xf9\xbf\x21\xca\xb6\x50\x37\xa2\x9e\x79\x87\x6e\xde\xad\xce\x4d\xad\x83\xf9\x09\x10\xbb\x6d\x4f\x66\xd3\xd0\xdd\xec\x2c\x9d\x36\xaa\xd8\xfa\xd1\xcc\x6e\xfd\x55\x8e\xa1\x34\xb5\x72\x65\xe1\x52\x06\x96\x6d\xd8\x0b\x07\x30\x07\x99\xff\x15\x1f\xb6\xa3\x81\x84\x29\xb0\xf7\x0a\xa3\x6f\xb1\xbf\x65\xd6\x65\xf7\xc3\xf7\xdd\x2e\x5a\x9d\x2e\x89\x03\x33\x0d\x23\xd4\x6d\x82\x86\xbd\x74\x61\x5c\x99\xe0\x75\x70\x20\xd7\x99\x30\x77\xf1\x2e\xa2\x1d\xda\xbb\xb3\x4a\x9d\xda\x3f\xd7\x06\xc0\x3b\x4b\x6c\x8a\xef\x3f\x19\x7e\xd2\x2f\x25\xd8\x24\xdb\x1d\x84\xbf\xda\xd6\xc3\x1b\x6d\x4c\xa3\xfb\x47\x9a\xc6\x68\x2c\x84\xf0\x83\x23\xf2\x93\x7c\x64\x0f\x2c\x3d\x20\x11\x4b\x35\xb5\x88\x0a\x0a\xfc\xaf\x70\xa0\x6c\x3b\x43\x01\x11\xe1\x08\x4f\x21\xa0\xa4\x9e\xe6\xd3\x99\x51\x28\x03\xef\xb9\x4c\x0d\x3f\xd2\x08\x57\xb3\x60\x91\xcd\x61\x6f\x58\x80\x49\x42\x1f\xaa\x10\x11\x9b\x64\x9b\x92\x81\x4f\x03\x72\xee\x29\x07\xda\xb9\x2a\xde\xc1\x2e\x98\xe5\x9a\x98\x74\x7c\x40\xa6\x32\xa1\x62\x7a\x74\x74\x44\x98\x8e\x8e\xbe\xeb\x44\xe8\xb6\xc1\xd0\xe1\xe5\xe3\x38\x13\xa9\x58\xb2\xf4\x69\xd7\x3e\xde\xde\xac\x32\xc4\xf7\x2b\x8e\x26\x8f\x1a\xea\xbf\x29\x27\xad\x3e\xaf\xe9\xbc\x5e\x53\xed\x9c\xfd\xd2\xd0\x0e\x40\x80\x77\x68\x09\xdf\xaf\xd7\xbc\x3a\x64\x73\xb9\xa2\x1a\x79\x56\x57\x03\xc2\x9a\x14\x5d\x53\x95\x7e\x91\x4d\xd5\xe7\x36\x42\x45\xa9\x6d\xc9\xe6\x4c\x6f\x94\x1f\x53\xa5\xe8\x1a\x8a\xf3\x79\x6e\xdb\x84\xfc\xc8\x24\x9b\x37\x23\x6c\x6c\x2b\x45\xe5\x83\xc4\x7f\x9d\x42\x77\xad\xa5\xa8\xbc\xc8\x9e\x43\x08\xb6\xe3\x45\x5b\x28\x12\x13\x70\xcb\x94\x2b\xc0\x82\xd9\x24\xcd\xc6\x37\x83\x4d\x83\xcb\x66\xb9\x40\x1b\x1c\x26\xe0\x24\x4b\xcc\x1c\x72\x26\x7e\xfb\x89\x42\x51\x07\xfc\x3c\xcd\x9c\xa1\x1c\x48\xd4\x79\x8f\x00\x7f\x76\x23\xe7\x16\x88\x0e\x01\x06\xa2\x8d\x74\x80\x06\x5d\x49\x78\x49\x26\x2e\x69\xe3\x9e\x05\x65\x6d\x62\x40\x47\x7c\x3c\x22\x1f\x64\x0a\xb5\x6b\xac\xe3\xd6\xfa\xd6\xf3\x5b\x4b\xe7\x9d\xa0\x81\xf8\xe1\x07\x17\x52\x81\x33\xc4\x26\x00\x84\x3e\xa6\x42\xd7\x36\x90\x47\x1c\x41\x5b\xf8\xc9\x2f\x46\x15\xae\x7d\xdd\xb6\x0f\xaf\x22\xde\x74\xef\xf3\x0d\xc1\xa5\xb6\x38\x7a\xe9\xaa\x81\x06\x8d\xac\x0f\xea\x80\xe5\x1a\x6d\x20\x0d\x14\xf6\x01\x17\xdd\x01\x29\x9a\x65\x67\x3a\x9a\xe5\xb7\x4f\xb1\xba\x93\x2d\x26\x60\xe7\x39\xcf\x91\x01\x31\x5e\x2e\x0c\x3c\xb2\x05\xc4\xbd\x1a\x2b\x05\x03\x4b\x3d\xd5\x24\x96\x61\xb3\x84\xeb\xf5\xd1\x1d\x1d\xd1\x2b\xd6\x91\x9a\x96\xe8\xb5\xb7\xf3\x2c\x38\x5c\x40\xac\xe4\x88\x05\xe0\x42\xe3\x50\x2e\xb6\xd8\xf4\x65\x3c\xbb\x62\x76\xe5\x50\x14\xbb\xaa\x2c\x92\x0b\xbf\xe0\x29\x43\x18\x2a\x65\xae\x70\xcd\x1f\xcc\x41\xad\x92\xb5\x27\x50\xe0\x00\x55\xda\x1b\x0a\x1c\x76\x80\x65\x75\xcf\x96\x2a\x04\xc2\xb7\x14\x45\x9a\x08\x92\x9b\xf9\xb8\x82\xef\x6b\xb7\x02\x16\x6e\x14\x54\xdf\x6b\x77\x95\x60\xa7\x9f\xcc\xc7\x2b\xe2\xba\x2a\x8d\x1b\x1a\xcc\x53\x62\x72\xc3\x92\x65\x13\xf9\x3a\xdb\x3d\xcc\x43\x37\x6a\x2a\x33\xe6\x36\x3a\x50\x7e\x8c\x8e\x33\x14\x16\xee\x2e\x70\x89\x1a\x86\x53\xdd\x36\x9b\xaa\x87\x20\x5b\xcb\x42\x6a\x36\x40\x11\xba\x12\x62\xf5\x05\x31\x5d\x1d\x15\x5b\x08\x1a\x53\x6f\x9d\x21\xa7\xb6\xc3\x0d\xe3\x81\xec\xe6\x36\xc6\x00\xe5\x62\xac\x5d\x38\x8b\x42\x83\x15\x15\x50\x02\x8e\x98\x59\xbe\x9e\xa8\x0d\xbf\x71\xc1\x37\x37\xfd\xd3\xeb\xfe\xed\xb3\xc5\x08\xb9\x00\x9d\xce\x41\x42\x6e\x9c\x67\xfd\x0f\xbd\xbb\xf3\xdb\xd1\xd9\xe0\xfa\x29\xa2\x84\xec\xa3\x0d\xc2\x84\x6e\x2c\x8a\xe6\xa9\x14\x9a\x7d\xd9\xea\x4e\x4e\x33\x31\xa2\x1d\xc2\xd5\x3d\x52\xed\x2a\x71\x07\x1b\xad\xa2\x80\x7a\x88\x4e\x8b\x81\x84\x37\x9a\x07\xfd\x0c\x2a\x9c\x4e\x78\x92\x40\xbe\x98\xb7\xb1\xda\x24\x10\xb3\xa8\xc0\x7f\x5c\xa9\x36\xcb\x53\x87\x62\x5c\x80\x41\x05\xbb\xcf\x4c\x4a\x85\xfb\x43\x17\x66\x01\x52\x0e\xe9\x42\xab\x80\x42\xa7\x5c\xb0\x7c\x18\x58\xfd\x28\x13\xa4\x11\xdd\xcd\x6e\xe2\x53\xa6\x03\x5a\xc1\xab\xad\xac\xe9\x28\xae\x40\x9f\x4e\xfc\x74\x0f\xfd\x0c\xf1\x10\x73\x81\x82\x69\xe1\x34\xdf\xd4\x93\xee\x71\x7e\x04\x60\xdd\xcd\x4e\x52\x30\x44\x43\x81\xa1\x7c\x23\xed\x46\x20\x44\x77\x6e\xa1\xbe\xe7\x18\x4a\x21\x27\xa5\x75\x36\xac\xd0\xac\x35\x07\x73\x35\xc5\x42\x2d\x24\x4a\x32\x65\x94\x7f\x54\x9d\x7b\x9f\x6f\x86\x02\x4b\x45\xda\x5b\xc8\xc2\x38\x63\x17\xe8\xc8\x97\x85\xfe\x9d\x84\x12\x72\xb0\x6f\xd1\x50\x39\x67\x54\x28\x2c\xff\x96\x24\x2c\xcd\x29\x03\xc7\xc3\x58\x6c\x0b\x00\x40\x19\xbf\xfc\x7b\x5b\x01\x4c\xc2\xa9\x35\xe3\xb5\x4f\x6d\x05\xac\x32\x3d\x35\xa5\x23\x42\x94\xe0\x53\x52\x4e\x4d\xb0\x7a\x5b\x2a\xb2\x01\x96\xb5\x44\x54\x0c\x1d\x6f\x45\x4b\xb7\xd8\xdc\x9e\x94\x76\x48\x4a\x2d\xee\xf5\xf0\x96\x20\x33\x69\x18\xa8\x47\x60\xce\x7d\x8d\x3e\x1d\x3a\x81\x20\x18\xb3\x8c\xb5\xb7\x4e\x0e\x9c\xb3\x91\xf7\xf1\xe2\xf2\xa2\x1f\xfa\x0e\x07\x17\xb7\xfd\x8f\xfd\xeb\x42\xea\xdb\xf9\x65\xaf\x90\xbe\x76\x73\x7b\x5d\xca\x8e\x7b\x7f\x79\x79\xde\xaf\x38\x21\xfb\xb7\x83\xff\x9f\xbd\x6b\xeb\x71\xdb\xc8\xd2\xef\xf9\x15\x44\x5e\xec\x00\x72\x1b\x33\x83\x01\x16\x7e\xeb\xb1\x9d\x1d\x05\x8e\xdd\xdb\x6e\xc7\xbb\x3b\x1c\xc8\x25\xb2\x24\x71\x5d\xaa\x52\x8a\x64\x77\x14\x60\xff\xfb\xa2\xce\x39\x75\xe3\x9d\x92\xda\xf1\x66\xf2\x10\x04\x68\x8b\x75\xaf\x53\xe7\xfa\x7d\x3f\x46\x8d\xbf\xfa\x70\x7b\x7d\xb7\x7c\x17\xfd\xee\x6f\xcb\xb7\xd7\xb7\xff\x15\xfe\xe5\xf5\xed\xed\xbb\xdb\x46\x7f\x1f\x5e\x0e\x87\x33\xa3\x69\x74\x9b\xe2\x3e\x5a\x12\x60\x08\x75\x2d\xe9\x1d\x2b\x3f\x5f\xb8\xe8\x13\x8a\x9c\xe7\x14\x6d\x76\xd6\x68\x46\x5e\xa9\x9c\xaf\x4e\xab\x07\xed\xab\x69\xed\xec\x47\xf3\x4a\x1f\x57\xac\xaa\xf8\xfe\x70\x1e\x21\xe9\xf4\x2b\x32\xaf\xd4\x14\xe4\xcb\x84\x52\xd3\x68\x57\xbf\x9e\x52\xd3\x8e\x2a\xd2\x76\xa9\xe9\xf2\xed\xf2\x6e\x79\xfd\x66\xf9\xdf\x8d\x16\x3f\x5e\x2f\xef\x96\x6f\xff\x7d\xf5\xfd\xbb\xdb\xd5\xed\xeb\xf7\xef\x3e\xdc\xbe\x7c\x3d\x9c\x50\xde\x1e\xbd\x37\xda\x9e\x25\x61\x3f\x2f\x92\xbb\x40\x9d\xc6\xb0\x00\x59\x6b\x84\x76\x09\xa7\x8a\x89\xe2\xd7\x42\x6e\x17\x40\x99\xf9\x22\x79\xad\xf5\x72\xcf\xb6\xfc\xa6\x16\x02\x8c\x5e\x8c\xc1\xbd\xd4\x9c\x55\xf0\xb3\x1b\x95\x2f\x83\xef\x20\x73\xa0\x73\x1a\xd0\x3f\x11\xd0\x62\xf7\x0b\xea\x3f\x30\xf1\x5c\x56\x02\xb9\x38\x1c\x3d\xf8\x0b\x00\xe0\x57\x1b\x62\x52\x5a\xb8\x18\x67\xf2\x73\xad\x2a\x96\xf0\x5f\x32\x28\xa2\xe8\x3e\x27\x6f\xd4\x59\x04\xb2\xe3\x5c\x47\xdd\x77\x7a\xbc\xee\xac\xdb\x92\x47\xb4\xb7\xd5\x1c\xfe\x46\x9a\xe5\x8f\xf8\x29\x51\x36\x76\x2b\x44\x95\xb8\x40\x52\xd7\x1b\xb5\xed\x06\x2f\x82\xaa\x37\x42\x5c\xf2\x44\x33\x90\x22\xaa\xb6\x49\x59\xc8\xcf\xa9\xfc\xb8\xe3\x32\x51\xb5\xc6\x3f\x55\x4a\x03\x48\xd7\x46\xd4\xe5\x8e\x03\x51\xf4\x22\x79\xe0\xc9\x9e\x1d\x31\x55\x74\xaf\x74\x00\xe7\x04\x47\xc6\x1c\x4e\xf8\x5a\x14\xd2\x48\x8b\x43\x61\x43\x08\xcd\xad\xbf\x44\x84\xd1\x96\x10\xb1\xf3\x2b\x7c\xa7\xe5\x49\x3d\xec\x38\xa4\x88\x78\xef\x96\x35\xe3\x48\x72\x03\xee\xa6\x52\x9f\x8d\x65\x66\x8b\x0d\x9f\x58\xf0\x0e\x58\xee\x7b\x55\xe4\x49\x5e\x1f\x44\x91\x39\xb9\xfb\xa0\x74\x6f\x45\x35\x86\xba\x66\x54\x54\x37\x02\xb8\x43\x13\xeb\x88\xa3\x05\xfe\x8e\x81\xda\xea\x47\xae\x2e\x0f\x68\xcf\xea\x92\xeb\x67\x95\x2e\xb6\x5b\x08\x1c\xd8\xa8\xfc\xd7\x5f\x7e\xee\xcb\xdb\xce\x0f\x40\x87\xf9\x61\x42\x6d\x8b\x8c\x89\xd0\x05\xed\x75\x57\x57\xdf\x6a\xaf\xfd\xa1\xd6\x48\x38\xbe\xf1\x35\x86\xbd\x79\xfb\x07\xcd\xa1\xc4\x7a\x85\x4c\x72\xe7\x33\xdc\x2d\x37\xc8\xab\x4d\x5c\x2c\x3e\x81\xd2\xb2\x59\xd9\x17\xce\xf7\x6d\xd1\xdc\x10\x75\x1f\xe8\x2b\x13\xf5\x00\x5c\xa8\xc6\x1a\x31\xca\xb9\x99\xa9\x54\xa0\x9b\x38\x84\x37\xe7\x45\xb6\x00\x7d\x1b\xe7\x2e\xc7\x24\x97\x6d\x71\xcf\xe5\x57\x00\x17\xe0\x3d\xed\x66\xea\xee\x96\x76\x8a\xc8\x73\xe1\xde\x5c\x10\xe8\x54\x8d\x78\x38\xa8\xb7\x15\x6a\x8d\x64\xac\x2d\x20\xb8\xf0\xd5\xe9\x03\x94\xba\xe7\x5a\x17\xf9\x9c\xdb\x6a\xd7\xe4\x9d\xfb\x74\x68\x80\x0e\xe5\xdf\xf5\x04\x17\xa5\x30\xb6\x68\xd5\xd4\x66\x9b\xf9\x23\x63\xaa\x33\x54\x76\x95\xd6\x5c\xf5\x8f\xab\x85\x77\x80\x42\x0f\x35\x40\x1b\xd1\x9e\xcb\x59\x1b\xdd\x4e\x49\x1c\x59\x4b\x9f\xc5\x38\xbc\xc9\x67\xe4\x95\x61\x12\x9c\x4b\x2e\x9b\x53\xa3\x6b\xb7\x0e\x1d\x2b\x40\xc9\xe1\x36\x31\xf2\x78\x4f\xda\xd1\xe6\xba\xdf\xf1\xfd\x41\xb0\xea\xc2\x50\x8a\xe7\xdf\xa8\xba\x52\x01\x3f\xb2\x99\xcf\xd2\xd1\x24\xdb\x58\x1a\x88\x8d\x65\xde\x49\xb5\xe6\x45\xaa\xbd\x9a\x7d\xcf\x77\x47\x96\xc5\x2c\x24\xc8\x80\x34\xf8\xc8\x2b\x97\x56\x23\x2c\xee\x17\xa0\x0d\xb8\x59\xc7\x79\x85\x36\x73\xc8\xe5\x82\x03\x48\x88\xe3\xee\xde\x1f\x94\xe4\x92\xbc\x5f\x52\xa5\x92\x1a\xb7\xa0\xb7\x8e\x44\x2f\x0a\x32\x2e\xc8\x48\x25\xc2\xfe\x52\x89\x7b\x72\x64\x07\x90\x0f\x80\xfb\x66\x06\xf8\xd2\xbc\xf7\x46\xbb\x65\x32\x77\x11\x27\xf0\xc1\x35\x90\x5f\x35\xdf\x16\x65\xc5\xc3\xb8\x6c\xf8\xfd\xc5\x00\x27\x23\x85\x78\x68\xe9\x7b\x01\x27\xc7\x5e\x36\x73\x6b\x67\x8c\xe7\x78\xe0\xf9\xd2\x7d\x37\x7c\x18\xa2\xe4\x8a\x3c\x10\x12\xd1\x2b\x80\x67\x80\x13\x21\x35\x64\x5a\x97\x0e\xac\xc1\x6d\x92\xa3\x65\xb4\x60\x70\xb0\x45\x5b\x56\x33\xcd\x64\xc5\x79\x99\x4a\x4c\x43\xc7\x1a\x99\x28\x29\x6e\x13\x41\x8c\x7a\x65\x3b\x53\x65\x85\x19\xb8\xf0\xc9\x86\x15\xa2\xd6\xbd\x3a\x24\x1e\xcb\x93\xd2\x7d\x86\x96\xe9\x25\x34\x9b\x74\xed\x9a\xcb\x1d\x08\xae\x91\xcb\x5a\xb3\xd4\x71\x96\xde\x2e\x0e\xad\xf7\x4c\xc1\xca\xdc\xe9\x1b\xee\x1c\x08\x3d\xe9\x04\xff\x56\xae\x0e\x6a\x86\xc8\x23\xc6\x9a\x6e\xe9\xc3\xca\xcf\x90\xe8\x35\xa6\x19\x8f\xbb\xbb\xfe\xf2\xe7\x11\x23\x63\x48\xec\xc0\x81\xdb\x31\x99\x03\xfb\x2c\xab\x1a\x8f\x87\x3b\xbe\x80\xec\x58\x59\xb9\xd6\x1f\x09\x03\xc7\xf2\x2a\x6b\x45\x25\x47\x96\xaa\x19\xce\x1c\x89\x6e\x45\xbd\xc4\x41\xc6\x2e\xe7\xb6\x7f\x94\x09\x62\xd4\xdd\xb5\xfe\xc3\xb3\x29\xb6\x97\x2f\xbb\x9c\x0a\xba\xea\xd9\x86\xdb\x42\x2e\xa3\x4b\x44\x4f\x8f\x83\x59\x3d\xf3\x1a\x41\x50\xc2\xc8\xa1\xb0\xb8\x35\x95\x84\x41\x0c\x3f\x44\x20\x6b\xcc\xdf\x2e\x93\x3f\xb9\x48\xf5\x9f\xfe\x6a\xb3\x77\x8f\xc9\x06\xd6\x1a\x52\xe4\x55\x96\xd5\x1a\x30\x5f\x2d\x2f\x35\xc7\x67\x65\x0e\x06\xc1\x35\x3e\xa6\x25\x08\x17\xc8\x04\xee\xe7\x58\x25\xab\x39\x9a\xd4\x1d\x18\x4b\x88\xa6\xec\x9e\x31\xc2\x2b\xd2\x65\x95\x94\x15\x3f\x74\xca\x93\x48\x5f\x8a\x5f\x82\xb3\xca\x4c\xbb\x70\x8f\xc7\xcb\xd9\x7f\x64\x87\x21\x48\xda\xb3\x5b\x1c\xdb\x06\x97\x5f\xd8\x7c\xe6\x00\x8e\x15\x60\x78\x08\x4a\xb6\xbd\x7a\xae\x24\xff\x8b\xa4\xd1\xcf\x41\xef\x77\xc8\x0c\xc4\x7b\x31\x24\xdb\xe2\x4f\xe7\x27\x95\xf9\xfc\x71\x42\xa4\xc7\x06\xd7\x08\xa7\x10\x22\x40\x9c\x82\xd0\xd1\xdc\x18\xdb\xd6\xc0\x76\x9c\x59\x9d\xee\x01\x45\xbe\x60\x71\xfa\x4f\xad\x25\x9a\x5b\x9b\x7e\x1f\x82\x71\x80\xee\xe5\x93\x7f\x26\xb9\x2c\x5c\x4d\xfa\x4f\x31\xa2\x4a\xb4\xc4\xaa\x98\x04\x3d\xd3\xe6\xc7\x86\x17\x2a\xe7\x52\x55\x3c\x61\x89\x2c\xc4\x73\x59\x0b\xf1\xfc\xad\x92\x46\x30\x97\xc5\x16\x13\x96\xc0\x65\x8d\xe4\x52\x9e\xa4\x28\x8a\x55\x04\x57\x00\x84\xb3\x19\x12\x86\x51\x2a\x23\x31\xcd\x16\x88\x63\x2a\xcd\x17\xc4\x93\x00\xdc\x2e\x85\xab\x6d\xc0\xde\x2c\x9e\x2d\xf5\x05\x85\xbe\xc7\xb0\xf1\x8e\x03\x36\x04\x01\x7b\x56\x51\xc1\x1f\x2c\xee\x5f\x0d\x8b\xbb\xd2\xd6\xf5\x3f\x83\xcf\xbd\xff\x52\x9d\x4c\xa8\xee\x0c\x1d\xa7\xb6\x4e\x38\x8f\xbf\x65\x3c\xf6\x31\x01\x81\x3d\xfa\x2f\xfd\x6d\x2e\xc4\xaf\x5d\xa9\x4b\x84\xa5\x7e\xc6\x8a\xff\x95\xda\x58\x16\xf6\xd3\x51\x0a\x26\xc6\x05\xc2\x32\xab\x10\x9b\xa0\x7d\x48\xfa\xec\x5e\x25\x57\x64\x19\x4f\x1b\x6c\x73\xc1\xde\xc9\xef\xf1\xf3\x1b\x25\x8a\x6c\x38\x98\x62\x9f\x26\xa0\x9b\x68\x85\xd2\x80\x98\x85\x5b\xca\x47\x1a\x14\x46\x09\x2a\x9e\x55\xde\xf5\xd3\x9e\xdc\x1c\x27\xa3\x35\x17\x5c\x2b\x00\x83\xe5\xc9\x7c\xcc\xb3\x02\xd9\xe6\x50\x68\x87\x8a\x34\x30\x37\x80\xcf\x31\x63\x64\x5f\x44\x03\x01\xd9\xf4\xb0\x53\x82\x2f\xd0\xb7\x04\x91\x8a\x54\x1e\xb8\xce\x94\x31\xd2\x92\x5c\x3d\x50\x76\x66\x21\x72\x5f\xce\xfe\x14\x02\xa7\x10\xde\xf8\x8e\x30\x7b\xb8\xf3\xfd\x39\xd6\x94\xf1\x63\x6b\x71\x3b\xcf\xc5\x83\xb9\x54\x24\x64\xe8\x14\x7c\xa4\x60\x2a\x2e\x05\xb1\x1c\x34\x9c\x38\x66\xd1\xa3\xf1\xcc\xdb\x61\xee\x0a\x95\xe1\x81\x41\x8a\x9d\xaa\xb1\xaf\x54\x36\xd3\x5c\x4a\xa8\xc0\x40\xc0\x26\x74\xec\x1b\x03\x11\x02\xde\x0c\xd5\x10\x9f\x0f\x4d\x9b\x9a\x4a\xef\xb7\x7a\x52\x86\x2a\x49\xe7\x3e\x63\x81\x41\x01\x70\x78\x19\x5f\x24\x4f\xa2\x89\x3e\x81\x0c\x7d\xa9\xa0\x3f\x72\x50\x44\x4b\x03\xc7\x75\x91\x14\x55\x2a\x8b\x12\x4f\xa6\xe6\x82\xdf\x9b\xd1\x85\x74\xa9\x14\x83\x20\x20\x05\x37\x6d\x08\xd7\x33\xaa\x09\xc8\x1d\xdc\x2b\xe4\xc2\xe9\x30\xd3\x9b\x41\x46\x21\x50\x5f\xd4\x12\xea\x94\xf9\x2f\x48\x30\x62\x0c\x5d\x74\xcb\xe7\xa6\x3b\xcf\x7c\x43\x88\x72\xc0\xbb\x7d\x54\x35\x92\x95\xe5\x44\xff\x6b\x2b\x57\x5d\xda\x5d\x81\xca\xe8\x5a\x55\xbb\x68\x23\x08\x72\x0a\x6f\x12\x37\x26\x76\x05\x6c\x6e\xb0\xae\x92\xb3\x6a\x97\x14\xd5\x02\xf2\x25\xad\xe0\x48\x25\xcb\x09\xb1\x93\x9a\x2b\x1c\xdd\x72\xff\x3e\xd3\xbf\xaf\xd5\xfd\x90\x4e\x77\x6e\x34\x0e\x6f\xf5\x41\x30\xb9\x42\x81\xfa\x1b\xc4\xe3\x02\x34\xb0\x3e\x3f\x56\xbd\x5e\x39\x22\x8e\x8b\x8c\xd3\x69\x3a\xb7\x11\x46\x9f\x51\xe1\x6c\x47\x0b\x3c\x0c\xbe\xc6\xcb\x6a\xe6\x50\xb7\x6e\xe3\x02\x85\x30\xc2\x82\xbc\x64\xd3\xa5\x80\x0f\xd5\xb1\x86\x83\xd8\x9e\xd6\xb1\x58\x9d\x3d\x01\x5f\x6b\xdc\x68\xca\xce\x37\xde\x90\xe6\xb6\xcf\x0f\x59\xb4\x14\xa6\x93\xc2\x16\x23\xc3\x7a\xdc\xd0\x45\xaf\x0b\xa1\x1d\xc2\xf8\xe8\x88\xcb\x9c\x4f\x19\x73\x54\x78\x52\x2a\x63\xd7\x58\x0f\x47\x37\xda\x5b\x68\x82\xa8\x8e\x98\xf7\x25\xd3\xde\x63\x4e\x88\xc9\xa5\xb9\xc8\xa0\x96\x2c\xa5\xe3\xe4\x5e\x24\xe9\xb7\x78\xb2\xca\xf4\x5b\x84\xbb\xb7\xa0\x81\x96\x9e\x8d\xee\x4f\x1e\x31\x84\x3a\x4f\x3b\x26\x67\xf8\x0b\x47\xb4\x61\xb3\xbc\x79\xbf\x25\x2f\x5a\x50\xb7\x8c\xf9\x5b\x6b\x6c\x80\x9e\x49\xb4\x39\x8f\x96\x34\x0d\x80\x6d\x75\x9d\x55\x7e\xc2\x8e\x63\xea\x6f\xf6\x43\xb3\x44\x87\x9a\x5e\x54\xc7\xe9\xa4\x74\x2a\x6d\x6b\x9e\x87\xf6\x5a\x88\x56\x53\x6d\x7a\xb5\xe0\xac\x82\x8f\xda\x22\x8a\x00\x52\x8d\x2f\x47\x68\xca\x01\xf0\x79\xaf\xb9\x87\x3b\xbd\x4a\x3c\xc1\x1f\xa8\x1e\x0d\x26\xb1\x90\x48\x4c\x08\xcb\xa2\x85\x5a\x5b\x40\x9d\x54\xd6\x90\xe7\xbf\xa9\x8d\x38\x0a\x8a\x21\x52\x09\xa4\x72\x9b\x02\x32\x32\x68\x5d\x52\xf9\xa3\xa2\xa2\x0a\x50\xaf\xec\x24\x6d\x74\x9f\x96\xed\x89\x03\x56\xa1\x3f\xbc\x82\x67\x7b\x83\x71\xe6\x06\xd4\x2e\x24\x10\x41\x9a\xe3\xc2\xe8\x1e\xda\x4f\x2a\x63\x32\x95\xff\x63\x96\xc7\x32\xa5\xd1\xb6\xaa\x0d\x5e\x62\x0b\x4d\x9c\x3c\xfd\x84\x8d\x3e\xfd\xeb\x77\x9f\xbe\x43\x1e\xca\xba\x04\x30\xab\x45\xfc\x84\xb8\xba\xb8\x5a\x08\x48\xb2\xb5\x33\xd8\x68\xb5\xc7\x32\x5e\xd7\xc5\x20\x71\x0a\x59\x39\x33\xf9\xa4\x46\x99\xa4\xbc\xe7\xf5\x3a\xc9\x58\x95\xed\x9e\x59\x6d\x2e\x64\x8f\x0b\x08\xf5\x41\x73\x34\xba\x56\x77\x69\x98\xb1\xc0\xf4\xde\x81\xc5\x46\xe7\xc5\x4c\x01\xe2\x26\x77\xd1\xa9\x0c\x21\x99\xf1\x70\x7a\x9c\x56\xaf\xe9\xb9\x9f\x5b\xa4\x1a\xef\x2e\x25\x17\xb1\x64\x7b\x9e\x27\x29\x22\x3b\xa4\xdf\xda\xed\x4f\xe5\x61\x7d\x25\x8e\x9b\xea\x0a\xaa\x5c\xae\xcc\xb2\x5c\x01\x9c\xc3\xc8\x4b\xb7\xca\xdb\xa6\xd2\xc8\x72\xf7\x1a\x5b\xdd\xfa\x8e\x5b\x1d\xd7\xd3\x74\xa5\x05\x5d\x3c\x6e\x7d\xde\xc7\x31\xa0\xb8\xb4\x10\xf8\xb6\x88\x1d\xcc\x28\xb9\x81\x62\xe5\xef\x27\xb2\xb1\x24\x65\xc5\xaa\x22\x43\x58\x36\xc9\xc4\x11\xf2\x7a\x16\xa9\xcc\x0b\x8d\xa6\x35\xcb\x8e\x99\x28\x32\x62\xfa\x8a\x75\x21\x7e\xcf\x65\xf5\xfa\x97\x8a\x6b\xc9\x84\x4d\x20\x5a\xca\x8d\x3a\x47\x21\xe2\xd4\xde\x79\x10\xd7\xcb\x58\xe3\x81\x9a\x74\x6c\xd7\x3b\x18\x33\x8d\x8c\xdc\x60\x55\xdb\x84\x03\x77\xc4\x17\x04\x10\xc3\xa0\x64\xe5\x3f\xea\xb5\x12\x3c\xf9\xb9\xe6\xfa\x98\x2c\x5f\x25\x4a\x43\x71\x6d\xa5\xe8\x4f\x45\x3e\x0b\xcd\x15\x09\x6a\x29\x14\xe8\xe8\x70\x1b\xfa\x50\x6b\xc4\xa5\xc7\xaf\x56\xda\x11\x9e\x06\xce\xce\x78\x06\x5d\xbb\x15\xd5\xa0\x00\x26\xdf\x97\x52\x5e\xfb\xaa\x5f\xba\xef\xca\x87\x1e\xc5\xd5\x71\x68\xc6\x3e\xce\xe6\xa5\xa6\x75\xd2\xa7\x92\x1e\x61\x79\xae\xf5\x3e\x28\x5d\x6c\x0b\xc9\x2a\xa5\x93\xa7\x37\xb6\xa6\xed\x3b\x57\x87\x0d\xab\xd8\x3d\x8c\x86\x77\x75\xce\x12\xa1\x67\xb6\x5b\x35\x82\x68\x32\xcf\x57\xed\xa2\x83\xb9\x98\xb2\xa3\xd9\x12\xe6\x57\x65\xc5\xf6\x87\x10\x53\xd2\x21\x9d\xd1\xca\x08\x5c\x84\xc4\x0e\x0c\x8c\xf0\xa2\xf4\xc9\x6b\xa9\x24\xd7\x15\xee\x9b\xd2\x1d\x60\xe9\xcd\x59\x82\x98\x5f\x9d\x58\xd2\x41\xf4\xa4\xe3\x5f\x0f\xba\xf7\x6f\xdf\x58\x8f\x9e\x7f\xb6\xa3\x77\x10\x26\xca\x65\x06\x52\x15\x52\xd7\x77\x51\xf6\x7c\x2a\x7d\xe6\xfa\x4b\xa1\xea\x3c\x21\xd9\x43\xa1\x02\x7d\x95\x14\xfc\x6a\x91\x94\x7f\x79\xf1\xfc\xf9\xd5\x55\x1f\x61\xf8\x4c\xf0\x22\x77\xbf\xe1\xbb\xee\x13\x0e\xff\xd6\x59\x19\x32\x72\xb5\x22\x56\xce\xd5\x3c\x3b\xd1\x42\x3f\xc1\x69\x09\xfd\x28\x71\xde\x73\xb3\x4b\xc7\x54\x7a\x4e\x77\x36\xc1\x76\xb8\xab\x03\xd3\x5c\x56\x2b\xe8\x71\x5e\x67\xd0\xc9\x0d\x7c\x1e\x55\xbc\x4d\xb2\x87\xff\x71\xa7\xd0\xcd\x61\xd3\xde\xff\x19\x70\x0a\x13\x8c\xa4\x91\xed\x4f\x0b\x88\x3a\x06\x2e\xe1\x31\x12\x55\x9a\xd0\x09\xab\x17\x4c\x28\x12\x4c\x93\x26\xe4\x47\x8f\x08\x10\x8e\x30\xd7\x25\x76\x1a\x41\x61\xff\xe6\x9f\x2c\x4c\x96\xf6\xc1\x89\x84\x55\x09\xb2\x8b\xff\xca\xb5\xf2\xe5\xcc\x04\x4d\x1f\x34\x3c\x50\x02\x72\x5c\x9d\x8e\xb5\x84\x18\x8a\x88\xf2\x13\xc2\x5c\xc0\x5f\xa8\xb2\x00\x95\xaa\xf5\xd1\x96\x82\xf4\xa3\x53\xaf\x4e\x20\xef\x70\x43\x09\x74\x9a\x40\x7a\x5a\xbb\xcf\x89\x62\x7b\x41\x9f\x83\xca\x66\xd4\x6f\xa3\x6b\xb0\x03\x45\xf8\x01\xc3\x7f\x93\x34\x7d\x58\x57\x30\x89\x7f\xfc\xe7\x3f\xaf\xfa\x20\xd4\x60\xe8\x27\x53\xb4\x7d\x6f\xf9\x2a\x35\x67\xb9\xa7\x00\x09\x19\x3e\xc6\xe0\xd1\x46\x0f\xe4\x19\x9a\xcc\x39\xfb\xd2\xd6\x55\x1c\xf0\x89\x3f\xe2\x45\x1e\xe2\xdf\xba\x03\x4e\xdb\xe3\x18\x20\xd4\x26\x01\x8b\xa5\x47\x5b\xba\xa2\x71\x76\xf4\x30\x63\xf5\xba\xe5\xd3\x17\xd2\x03\xfb\x8a\xbc\xa7\x0c\xdf\xda\x18\x37\x4a\x89\x73\xed\x0c\x26\x2c\xa4\xd0\x0a\x10\x1c\xce\xd1\x13\xf0\x00\x38\xc3\x62\xf9\xca\xf9\xbc\x5c\xd5\x34\xc8\xe9\x00\x3f\x09\x02\x32\x34\x04\x08\x83\x20\x7f\x58\x7f\x9a\x42\x79\xe8\x70\x7b\xce\x4c\xb7\x80\x36\x30\x5e\xe2\xc0\x89\x5b\x86\x4f\x90\x22\xca\xfc\x18\xa1\xb2\xac\x31\xc2\x59\x56\x0e\xe2\x2d\x34\xba\x72\x16\x4f\x58\x81\xea\xd6\x31\xe8\xdb\xae\x27\xa2\x3c\x19\x93\x89\x1e\x90\x54\x06\x8f\x05\xd6\x99\xd8\x7c\x16\xb7\x6a\x5d\x86\x50\x74\x0c\xcf\x36\x84\xce\x81\x19\x18\x34\x63\x5f\x85\x68\x1e\xe0\x8d\xcd\xd4\x7e\x6d\x8c\x11\x44\xe1\xa2\x70\x08\xbc\x72\xd7\xb6\xe4\xd4\xd5\xcb\xd9\xd7\x0a\x01\xfc\x1a\x6b\xef\x72\x49\xc2\x82\xb8\x50\x64\x75\x46\xd1\x7b\x54\x8b\xcb\x22\x22\x74\xcb\xd9\xeb\xe6\x0c\x00\xa8\xfe\x81\x1d\x4b\x80\x3e\x31\x56\xf1\x66\xe3\x99\x9d\x42\x2d\xdd\xd9\x69\xae\x42\x90\x70\xc4\x6a\x42\x44\xa2\xb9\x14\x44\xee\x27\x2c\xc8\x8b\xaf\x14\x79\x52\x76\x2f\xce\x63\xc3\x37\x74\xaf\x05\xb4\xef\x8a\x8c\x09\x47\x3a\xca\x7f\x5e\xa0\x65\xf1\x67\x9f\xb6\xce\x33\x25\x5d\x61\xf2\x45\x0c\xd6\x0e\x68\x87\xee\xe1\xc2\xbf\xb5\x00\xa8\xc7\xac\xe7\x33\x8d\xf8\xe0\x99\xd4\x2a\x23\x40\xed\x2a\x01\x44\x34\x14\xc7\xa6\xef\x45\xb2\x67\x85\xa4\x6b\x50\x69\x23\x20\x73\xbe\xae\xb7\xdb\x5e\xdb\x52\xa8\xed\xa3\x86\x25\x2c\x10\x42\xf0\xfb\x9e\x94\x78\x31\x54\xdc\x3f\x72\x42\x7f\x47\x4e\x84\xc1\x5a\xa7\x4b\xb8\x01\x96\xb6\x27\x74\x3d\x6f\x0a\xc1\xbf\x8c\xe5\x7f\x21\x37\xc6\x72\x8a\x1b\xc3\xc6\x2e\x20\x7f\x12\xe7\xe1\xbc\xcb\xff\x42\xfe\x0d\xac\x29\x59\x15\xb1\x7a\x39\x30\xa4\x13\x8b\xbe\x5c\x79\x30\x5c\x56\x82\xd4\x2a\xb9\xcc\x4b\x00\x8c\xbf\x7c\x15\x18\xc8\xf6\xf3\x4b\xac\x46\x08\x13\xde\xab\x3d\x4f\xa0\xab\x12\xa1\x69\x12\x4a\x00\x5d\x40\xac\xd3\x4c\xd0\xa3\x18\xc2\x85\xa7\x60\x5e\xb6\x63\x72\xcb\x73\xaf\x12\x3e\x95\xfc\x21\x31\xb2\x76\x11\x06\x7f\x82\xed\x59\x24\xbc\xca\xbe\x23\x4c\x5c\x9f\x2b\xa2\x79\xa6\x74\x0e\xd8\x10\x5b\xa6\x73\xc8\x50\xa2\x03\x2f\x58\xf6\x19\x58\xd9\xe0\x39\xc2\x1e\x29\x40\x65\xe1\x13\x30\x68\xea\x5b\x2b\x64\x86\xf8\xa4\x8e\x28\xdd\x8e\x0f\x3f\x2f\x13\x96\x69\x55\x12\x6d\x33\x91\x71\x11\x0b\x54\x40\x84\x03\x3d\xf6\xba\x28\x58\x79\x16\x1c\xc4\xb5\xf4\xf9\x06\xfc\x97\x83\x60\x32\x3e\xf1\x38\xdd\x4a\x33\xc0\xc9\xed\xd5\xe7\x5c\x1d\xde\x17\x2d\x05\x0e\x71\x2e\xfd\xb5\x42\xdd\x4e\x73\x96\x1f\xc3\x6a\xa5\x42\x12\x78\x1d\xcb\xf7\x85\x34\x5b\x6f\x5e\x17\x24\x46\x22\xe9\x95\x23\xbd\xbe\xc0\x30\x2d\x60\x13\x09\xd1\x78\x11\xcb\x44\x72\xa3\x10\x30\x5d\x88\x23\xe8\x80\x07\xcd\x9f\x05\xfd\x04\xf7\x9b\xf2\xc4\x8a\x32\x95\x38\x76\xa0\x55\xdc\xd4\x02\x35\x45\xb0\xa5\xdc\x04\xe8\x1e\x7e\x58\x2e\xcc\x23\x51\x11\x22\x48\xd0\x31\x9c\xd9\x8b\xe4\xdc\xb4\xad\x98\x49\x8e\x39\x5f\x45\xa7\x21\x21\x60\xa7\x1e\x6c\x62\xe0\x03\xf3\x71\xdf\x39\x66\xde\x0d\xc9\x2e\x6b\xc2\x05\x51\x62\x78\xd0\x23\x56\x86\xef\x95\x26\xd4\x0e\x10\x0e\x37\x44\xfe\xf0\xf7\xe2\x9e\x2f\x92\xf7\x07\xa6\x3f\x2f\x92\x57\x47\xc9\xf6\x45\xf6\x83\x5a\x8f\x5a\x6e\x97\xf0\x5e\x38\x05\x63\xb6\x77\xab\xd3\x0f\xb0\x08\x6a\xf6\x03\x1f\x57\xdb\xce\xb6\x01\x3c\x73\x62\x08\xae\xb5\xef\x81\xb4\x31\xd1\x5e\x60\x87\x4b\xe9\x9f\xfd\x21\xdd\x5e\x6d\xb4\x29\x01\xbc\xac\xa6\xac\xd9\xae\x40\xa6\x91\x91\x90\xec\x6b\x26\xfe\x0c\x5e\x3d\xa5\x93\x83\x60\x95\x39\x2b\x96\x50\x09\x4f\x05\xc6\x5e\x51\xda\x37\x72\xa1\x5b\x8b\xda\x2b\x62\xb1\xe3\xd5\x41\x29\xd1\xf9\xb6\x5f\x74\x01\x5b\x7e\xaa\xa9\x8b\xb7\xc4\x1c\xb2\x32\x7c\xf1\xec\x2a\x7a\x9f\x87\xf7\x90\x04\xa0\xd7\x70\x9a\xf2\x5a\x23\x09\x8c\x5d\x8e\x2b\xef\x60\x64\x46\xf9\xc6\x88\x37\x3e\x72\x6b\x9e\x31\xa8\x72\xb5\xda\x07\x12\x54\x21\xb1\xbd\x7b\xa3\x3b\xbc\x31\x65\xbb\x9f\x1e\x95\x03\xda\x5d\x15\x5d\x45\x4f\x73\x2f\xd7\xdd\xae\xd3\xc5\x8a\x23\xb7\xee\x21\x9b\x75\x34\x56\xd4\x6c\x93\xac\x57\x99\x60\xe5\xc4\x8c\x8f\x4e\xb9\xb3\xa4\x86\x5e\x42\x3b\xd3\x65\xe6\xdf\xc1\x1b\xb6\x9f\x28\x8c\x53\x79\xed\x8a\x7a\xfd\x33\xee\x54\x0f\x14\xb3\xa8\x74\xb5\xb6\x06\x53\x99\x7c\x05\xf8\x22\x29\xeb\x6c\x07\xc9\x5a\xb1\x9c\x0a\xe5\x56\xfb\xc6\x2e\x52\x69\x1e\x42\x84\x78\x63\x10\x11\x79\x30\xcf\x5d\x59\xfc\xca\xdd\x4b\x8b\x2a\x51\xf4\xb8\xae\x99\xd9\x1a\xc2\x69\x6f\x2a\x22\x36\x6f\x8e\xe9\xcf\x3c\x0f\x9c\x34\xf5\xc1\x18\x97\x57\xa9\x5b\x66\x3c\xbf\x9e\x59\x8c\x34\x9b\x32\x9c\x58\xa8\x88\x35\x24\xad\x28\x36\x3c\x3b\x66\xad\x1a\xd0\x28\x0e\x79\x39\x6f\xe0\x69\xce\xb0\xa1\x5a\xc1\x6e\x1b\xe7\x63\xab\xde\x25\xe9\x0b\xde\xfc\xff\x4c\x88\xe8\x29\x57\xfb\xbd\xfb\x33\x46\x92\xa0\xff\xc8\x6d\xb8\xa8\xed\xff\x4d\xf8\x7f\x2b\x19\x6c\xea\x00\xd8\x19\xa4\x8f\x76\x26\x2c\x7c\x5d\xa9\xff\x45\x1e\x9e\xc8\x6a\xc7\x3b\x2a\x00\xa6\x1d\x32\x2a\xb0\xc8\x5d\xf1\xc7\x1c\xec\x18\xfc\xd4\xae\xd7\x4b\xa1\xca\x5a\x0f\x5f\xab\xdb\x78\xd4\xb6\x77\x3f\x9b\x08\xd3\x87\xef\xd7\x1c\xea\x7a\x72\xdc\x99\xce\xc9\x8c\x3d\xc1\xc6\x12\x69\x7e\x4f\xa1\xfc\x07\x9e\x64\xec\x00\xf9\x95\xdd\x50\x98\xad\xef\x02\xcb\x15\xde\xb4\x2d\x0f\xdf\xd7\xc6\xb3\x13\x1d\xae\x28\x06\xf2\x55\x25\xe3\x75\x5a\x37\x8d\xda\xe3\xc8\xc9\x31\x29\x6a\x74\x09\x8f\xec\x0d\xab\x76\x68\x7e\x03\x2c\x3c\x46\x10\x2b\xa3\x9a\x20\x50\x31\xba\x69\xd7\x42\xad\x01\xdd\xb6\x02\x62\x9e\x9e\x73\x4e\x87\x73\xd2\xd2\xb5\x37\x6c\xca\xd9\x36\xf7\x01\x72\xa9\x35\x2f\xa1\xa8\xae\x1d\x07\x69\xa5\x35\x5e\xc4\x45\xd0\x1e\xae\x11\x5b\xaf\x5a\x2e\x82\x36\xc4\x8e\x91\x97\x90\x89\xf3\x7a\x40\x60\xf6\x5d\xac\xd7\x61\x36\x32\x03\xb2\x9e\x0a\xd8\x50\x31\xd0\x58\x16\x72\x2b\x78\x63\xbe\x16\x3e\x3c\x95\xd7\xf8\x2f\x21\x83\xb5\x47\x81\x73\xc9\x2e\x84\x14\xeb\xee\x1f\xa6\x27\x27\xd7\xb6\xdc\x10\xca\xda\x18\x05\xc2\x9c\x2d\x03\x8e\x87\x85\xa5\xc4\xd6\x46\x53\x2d\xe1\x21\x2e\xeb\xf5\x33\x5f\x7c\xa6\x34\x3c\xdd\x50\x9b\x78\x60\x1a\x60\xb8\x77\x85\xc8\x9f\x75\x14\x18\xa3\xf7\xd0\x43\x42\x59\x7c\x02\x26\x48\x7c\x81\xc5\x85\xb5\x0f\x6e\xee\xae\x1d\xa3\x38\x73\x96\xed\x5c\xde\x3d\x8a\xeb\x21\x79\x11\x99\x21\xbf\x75\xd2\xc6\x84\xac\x88\x1e\x14\xd0\xdf\xbf\x9c\x88\xd6\x6c\x8a\x9c\xb8\x8b\x8d\x16\x7b\x6b\x8c\xd9\x45\x92\xa3\x6f\xa9\xca\x15\x86\xa6\xbf\x40\x71\xb6\xf7\xb9\x94\x07\xf6\x20\xa9\xe4\x6b\x56\xf2\xfb\x34\xf9\xd0\x4d\x2f\x60\xe4\x43\x2b\x5d\x25\xe4\xba\x47\xcb\xbe\x2a\x1c\x64\xe6\x22\x00\x8f\x66\x42\x84\x38\x4d\xde\xc9\x92\x4a\x6f\x8a\x9b\xe7\x5f\x08\xf3\xff\xac\x29\xb8\xa9\xc4\x2f\x87\xb2\x09\xbe\xb0\xf5\x49\x54\xdb\x4f\xce\xff\x67\x68\xf2\x7a\xc3\x74\xec\x36\x5f\x4a\x9f\xcc\x58\xb6\xe3\x2b\x33\xb4\x7a\x46\x11\x0b\x31\xf1\xbf\x34\x1f\xbf\xc7\x6f\x07\x1f\x33\xd4\x8b\x50\x4d\xc3\xbe\x20\x69\x8d\x65\x50\x8b\xed\x7c\x9d\x63\xd7\x3b\xc3\x6e\x57\x1d\xc4\x84\xa3\x63\xed\x76\x74\x07\x9c\x85\x70\x99\x6d\x85\x4c\xc6\xb4\xb6\x89\xa8\xd4\x6b\xc2\x74\x55\x6c\x58\x16\xf9\xa6\x27\xa1\xb3\x44\x2f\x24\xb6\x58\x42\xc8\xd4\x73\xbd\x5b\x51\xce\x12\x87\xd9\xdc\xbf\xff\x97\xb6\x29\xb8\x17\xd2\x8f\xe0\x79\x18\x76\xc9\xe1\xf5\x6d\xbf\x91\x91\xcf\x96\xb5\x92\x75\x27\x2e\x36\x4b\xa2\xc2\xfb\xce\x25\x0d\x28\x85\xcf\x58\xc3\x13\x4b\x0e\xe6\xe1\xb2\x05\x3c\xbf\xd3\x25\x67\x0b\x5b\x95\x38\x6e\x91\x15\x94\xaa\x97\xab\x66\xb9\x1d\x2c\x21\xa6\x26\xdf\xf3\xdc\x97\x22\x06\x78\x14\xe6\xe9\x63\x5b\x9e\xec\x79\x5e\xd4\x4d\xd8\xbf\x28\x8d\xfe\x0f\x5b\xf8\x5f\xcf\x16\x86\xa0\xfd\x63\x1a\xc2\xdd\x05\x1a\x7f\x3c\x85\x5f\xc1\x53\x18\x8c\x93\xf6\x7a\xe6\x2d\x98\x2c\x3d\x86\xe3\x62\xfe\xb1\xf5\x1a\xa8\x7b\x57\x58\xfb\x1c\x86\x2e\x9c\x2a\x5c\x03\xa3\xf8\x77\x5d\x8d\xfe\x83\xf9\x68\x6f\xf4\xc5\xc2\x03\x53\x1e\x53\x73\xc5\x5d\xc0\xe0\xad\xbd\xda\x40\xc5\x57\xa9\xa1\x2b\x1e\xe0\xa3\xb0\xea\x49\xe9\x56\x3d\xbe\xca\x36\x0b\xea\x4d\x51\x56\x3f\x31\x51\x9f\x05\x8a\x02\xb5\x10\x8f\x16\xe3\xb6\x43\xc5\x61\x06\x5f\x0c\x86\x66\x6f\xe3\xe0\xa9\x79\x57\xf1\xcc\x41\xf1\xb4\x85\x1a\x35\xe3\x9e\x23\x78\x3f\xb9\xf5\xfa\x84\x3a\xe3\x83\x66\x87\x03\xd7\x36\x22\xd8\x0a\xda\x02\x6e\x27\xf4\x92\x4a\xf4\x3d\xfc\xf0\xfe\xdd\xdb\xe6\xdb\x60\x64\x4f\xa3\x69\xf8\x19\x2c\xdd\x55\xf7\xce\xbd\xad\x85\xe8\xdd\xb9\x09\x7c\x86\x1f\xde\xbc\x59\xfd\x74\xfd\xe6\xc3\xeb\x41\xc8\xbd\xe0\x67\xbd\x6b\xe2\x46\x42\x6b\x82\x16\x61\x05\x56\x60\xbd\xe7\xda\x96\x23\xf8\x59\xa3\xe2\x5d\x0b\x11\x43\x2f\xa6\xf2\x13\xb5\x03\xa9\x3b\xb5\x44\x8f\x4d\x2a\x93\xc1\x85\x8b\xfb\x87\x9f\x7d\x32\x8d\x7f\xc2\x6f\x9f\x25\x7e\x12\x2f\x92\xb7\xae\xd7\x9e\x75\xa5\xbc\xc0\x33\xae\x03\x22\x40\xf6\x5d\x87\x4b\x83\xcb\x9e\x76\x3d\x3e\x48\x40\xf6\xe0\xb9\xc5\x84\xbd\xc8\xed\xc0\xb5\xfb\x14\x7b\x03\x9d\x2c\xcf\x51\xb5\x85\x76\x17\x08\x09\x8a\xb4\xf3\x0e\x35\x33\x95\xc4\x47\xca\xa0\x7a\xaf\x77\x4c\xc9\x92\xe2\xe4\x82\xc9\x6d\xcd\xb6\xbc\x5c\x24\xb6\xf3\x54\xee\x8b\xed\x0e\x30\x54\x3c\x91\x3f\x5a\x32\xac\x2a\xee\x79\xe3\x08\x61\x8a\x13\xe1\x06\x2c\x92\x42\xa6\x92\xe6\x24\xb7\xbe\x79\xcc\x7e\xfa\xe1\xbd\x9b\x8e\x39\x69\xae\x21\x42\x35\x95\xa9\xc4\xcd\x45\xa8\x36\xeb\x26\x01\xc5\x0f\xc8\xd3\xa3\xa3\xcb\x34\xb7\x40\xca\x20\xd3\xb7\xe0\xb0\x49\xa5\x4b\xb5\x87\x8d\x8d\x68\x90\x30\x27\x12\x87\x34\x2e\x4f\xec\x66\xd8\x3b\x41\x63\xeb\x3e\xf5\x67\xbf\x01\xe6\xc2\xad\xee\x1b\xad\x4c\x38\xb6\x5e\x8c\x4d\xd4\xb1\x59\x20\x38\xfa\xea\xaf\xa0\xbe\xa2\x7b\x34\x76\x5e\xf8\x9b\xde\xe0\xb2\xaa\xd7\x62\xc6\x90\xf0\xf7\x83\x83\x42\x91\x3c\x3c\xa8\x09\x3e\xd2\xdb\xc6\xd5\x32\xc7\x74\xa8\xdb\xb5\x52\x3d\xfb\x72\x41\x6f\x63\x34\x28\xfa\x60\x6c\x31\xea\xac\x3a\xe5\xbc\x4c\x48\xdb\x6e\x2e\x91\x95\x3e\x43\x03\x12\x45\x79\xd2\x70\xbc\xfe\x34\x79\x44\x4e\x43\xa0\xc7\x6e\x96\x84\xa5\x77\x2e\x12\xb0\x3d\x62\x92\x7c\x5c\x14\xe1\xe0\x05\x8a\x17\x09\x84\xa3\x8c\x6a\x90\x16\xee\x10\x2d\xfc\xce\x2d\x60\x90\x59\xad\x4b\x23\x2e\x49\xde\x91\xd4\x56\x3a\x61\xa9\xb4\xb8\x5a\x56\x1c\x5f\x5b\xa4\x13\xed\xfe\x8a\xa9\xf0\x07\x44\xa5\x01\x8d\xb5\x4a\x94\xe4\x56\x1a\xa6\x12\xc0\xcb\x25\x78\x63\xd7\x25\xc0\x0a\x12\x44\x37\xfd\x43\x40\x38\xc7\x24\xb2\x93\x8e\xcb\xbc\x86\x1a\x10\xbd\xf3\xdf\x98\xff\xfe\xf7\x9b\xff\x0b\x00\x00\xff\xff\x20\xf1\x12\xfa\xad\xd6\x03\x00") func adminSwaggerJsonBytes() ([]byte, error) { return bindataRead( @@ -93,7 +93,7 @@ func adminSwaggerJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "admin.swagger.json", size: 245756, mode: os.FileMode(420), modTime: time.Unix(1562572800, 0)} + info := bindataFileInfo{name: "admin.swagger.json", size: 251565, mode: os.FileMode(420), modTime: time.Unix(1562572800, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/flyteidl/gen/pb-java/flyteidl/admin/ExecutionOuterClass.java b/flyteidl/gen/pb-java/flyteidl/admin/ExecutionOuterClass.java index 182ee795f52..82830771550 100644 --- a/flyteidl/gen/pb-java/flyteidl/admin/ExecutionOuterClass.java +++ b/flyteidl/gen/pb-java/flyteidl/admin/ExecutionOuterClass.java @@ -3079,6 +3079,7 @@ public interface WorkflowExecutionGetRequestOrBuilder extends /** *
    * A message used to fetch a single workflow execution entity.
+   * See :ref:`ref_flyteidl.admin.Execution` for more details
    * 
* * Protobuf type {@code flyteidl.admin.WorkflowExecutionGetRequest} @@ -3360,6 +3361,7 @@ protected Builder newBuilderForType( /** *
      * A message used to fetch a single workflow execution entity.
+     * See :ref:`ref_flyteidl.admin.Execution` for more details
      * 
* * Protobuf type {@code flyteidl.admin.WorkflowExecutionGetRequest} @@ -4958,6 +4960,7 @@ flyteidl.admin.ExecutionOuterClass.ExecutionOrBuilder getExecutionsOrBuilder( /** *
    * Used as a response for request to list executions.
+   * See :ref:`ref_flyteidl.admin.Execution` for more details
    * 
* * Protobuf type {@code flyteidl.admin.ExecutionList} @@ -5300,6 +5303,7 @@ protected Builder newBuilderForType( /** *
      * Used as a response for request to list executions.
+     * See :ref:`ref_flyteidl.admin.Execution` for more details
      * 
* * Protobuf type {@code flyteidl.admin.ExecutionList} @@ -19063,6 +19067,7 @@ public interface WorkflowExecutionGetDataRequestOrBuilder extends /** *
    * Request structure to fetch inputs, output and other data produced by an execution.
+   * By default this data is not returned inline in :ref:`ref_flyteidl.admin.WorkflowExecutionGetRequest`
    * 
* * Protobuf type {@code flyteidl.admin.WorkflowExecutionGetDataRequest} @@ -19344,6 +19349,7 @@ protected Builder newBuilderForType( /** *
      * Request structure to fetch inputs, output and other data produced by an execution.
+     * By default this data is not returned inline in :ref:`ref_flyteidl.admin.WorkflowExecutionGetRequest`
      * 
* * Protobuf type {@code flyteidl.admin.WorkflowExecutionGetDataRequest} diff --git a/flyteidl/gen/pb-java/flyteidl/admin/LaunchPlanOuterClass.java b/flyteidl/gen/pb-java/flyteidl/admin/LaunchPlanOuterClass.java index dcd615a9c9f..e9cc7aa3a8e 100644 --- a/flyteidl/gen/pb-java/flyteidl/admin/LaunchPlanOuterClass.java +++ b/flyteidl/gen/pb-java/flyteidl/admin/LaunchPlanOuterClass.java @@ -2710,6 +2710,7 @@ flyteidl.admin.LaunchPlanOuterClass.LaunchPlanOrBuilder getLaunchPlansOrBuilder( /** *
    * Response object for list launch plan requests.
+   * See :ref:`ref_flyteidl.admin.LaunchPlan` for more details
    * 
* * Protobuf type {@code flyteidl.admin.LaunchPlanList} @@ -3052,6 +3053,7 @@ protected Builder newBuilderForType( /** *
      * Response object for list launch plan requests.
+     * See :ref:`ref_flyteidl.admin.LaunchPlan` for more details
      * 
* * Protobuf type {@code flyteidl.admin.LaunchPlanList} @@ -10636,6 +10638,7 @@ public interface LaunchPlanUpdateRequestOrBuilder extends /** *
    * Request to set the referenced launch plan state to the configured value.
+   * See :ref:`ref_flyteidl.admin.LaunchPlan` for more details
    * 
* * Protobuf type {@code flyteidl.admin.LaunchPlanUpdateRequest} @@ -10964,6 +10967,7 @@ protected Builder newBuilderForType( /** *
      * Request to set the referenced launch plan state to the configured value.
+     * See :ref:`ref_flyteidl.admin.LaunchPlan` for more details
      * 
* * Protobuf type {@code flyteidl.admin.LaunchPlanUpdateRequest} @@ -11861,6 +11865,7 @@ public interface ActiveLaunchPlanRequestOrBuilder extends /** *
    * Represents a request struct for finding an active launch plan for a given NamedEntityIdentifier
+   * See :ref:`ref_flyteidl.admin.LaunchPlan` for more details
    * 
* * Protobuf type {@code flyteidl.admin.ActiveLaunchPlanRequest} @@ -12142,6 +12147,7 @@ protected Builder newBuilderForType( /** *
      * Represents a request struct for finding an active launch plan for a given NamedEntityIdentifier
+     * See :ref:`ref_flyteidl.admin.LaunchPlan` for more details
      * 
* * Protobuf type {@code flyteidl.admin.ActiveLaunchPlanRequest} @@ -12610,6 +12616,7 @@ public interface ActiveLaunchPlanListRequestOrBuilder extends /** *
    * Represents a request structure to list active launch plans within a project/domain.
+   * See :ref:`ref_flyteidl.admin.LaunchPlan` for more details
    * 
* * Protobuf type {@code flyteidl.admin.ActiveLaunchPlanListRequest} @@ -13109,6 +13116,7 @@ protected Builder newBuilderForType( /** *
      * Represents a request structure to list active launch plans within a project/domain.
+     * See :ref:`ref_flyteidl.admin.LaunchPlan` for more details
      * 
* * Protobuf type {@code flyteidl.admin.ActiveLaunchPlanListRequest} diff --git a/flyteidl/gen/pb-java/flyteidl/admin/MatchableResourceOuterClass.java b/flyteidl/gen/pb-java/flyteidl/admin/MatchableResourceOuterClass.java index 598bd72e4a3..57b46601bfc 100644 --- a/flyteidl/gen/pb-java/flyteidl/admin/MatchableResourceOuterClass.java +++ b/flyteidl/gen/pb-java/flyteidl/admin/MatchableResourceOuterClass.java @@ -9652,6 +9652,7 @@ public interface ListMatchableAttributesRequestOrBuilder extends /** *
    * Request all matching resource attributes for a resource type.
+   * See :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for more details
    * 
* * Protobuf type {@code flyteidl.admin.ListMatchableAttributesRequest} @@ -9913,6 +9914,7 @@ protected Builder newBuilderForType( /** *
      * Request all matching resource attributes for a resource type.
+     * See :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for more details
      * 
* * Protobuf type {@code flyteidl.admin.ListMatchableAttributesRequest} @@ -10209,6 +10211,7 @@ flyteidl.admin.MatchableResourceOuterClass.MatchableAttributesConfigurationOrBui /** *
    * Response for a request for all matching resource attributes for a resource type.
+   * See :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for more details
    * 
* * Protobuf type {@code flyteidl.admin.ListMatchableAttributesResponse} @@ -10489,6 +10492,7 @@ protected Builder newBuilderForType( /** *
      * Response for a request for all matching resource attributes for a resource type.
+     * See :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for more details
      * 
* * Protobuf type {@code flyteidl.admin.ListMatchableAttributesResponse} diff --git a/flyteidl/gen/pb-java/flyteidl/admin/NodeExecutionOuterClass.java b/flyteidl/gen/pb-java/flyteidl/admin/NodeExecutionOuterClass.java index 530af152b90..2c2c036d21b 100644 --- a/flyteidl/gen/pb-java/flyteidl/admin/NodeExecutionOuterClass.java +++ b/flyteidl/gen/pb-java/flyteidl/admin/NodeExecutionOuterClass.java @@ -49,6 +49,7 @@ public interface NodeExecutionGetRequestOrBuilder extends /** *
    * A message used to fetch a single node execution entity.
+   * See :ref:`ref_flyteidl.admin.NodeExecution` for more details
    * 
* * Protobuf type {@code flyteidl.admin.NodeExecutionGetRequest} @@ -333,6 +334,7 @@ protected Builder newBuilderForType( /** *
      * A message used to fetch a single node execution entity.
+     * See :ref:`ref_flyteidl.admin.NodeExecution` for more details
      * 
* * Protobuf type {@code flyteidl.admin.NodeExecutionGetRequest} @@ -828,6 +830,7 @@ public interface NodeExecutionListRequestOrBuilder extends /** *
    * Represents a request structure to retrieve a list of node execution entities.
+   * See :ref:`ref_flyteidl.admin.NodeExecution` for more details
    * 
* * Protobuf type {@code flyteidl.admin.NodeExecutionListRequest} @@ -1382,6 +1385,7 @@ protected Builder newBuilderForType( /** *
      * Represents a request structure to retrieve a list of node execution entities.
+     * See :ref:`ref_flyteidl.admin.NodeExecution` for more details
      * 
* * Protobuf type {@code flyteidl.admin.NodeExecutionListRequest} @@ -5976,6 +5980,7 @@ flyteidl.admin.NodeExecutionOuterClass.NodeExecutionOrBuilder getNodeExecutionsO /** *
    * Request structure to retrieve a list of node execution entities.
+   * See :ref:`ref_flyteidl.admin.NodeExecution` for more details
    * 
* * Protobuf type {@code flyteidl.admin.NodeExecutionList} @@ -6318,6 +6323,7 @@ protected Builder newBuilderForType( /** *
      * Request structure to retrieve a list of node execution entities.
+     * See :ref:`ref_flyteidl.admin.NodeExecution` for more details
      * 
* * Protobuf type {@code flyteidl.admin.NodeExecutionList} @@ -11950,6 +11956,7 @@ public interface NodeExecutionGetDataRequestOrBuilder extends /** *
    * Request structure to fetch inputs and output for a node execution.
+   * By default, these are not returned in :ref:`ref_flyteidl.admin.NodeExecutionGetRequest`
    * 
* * Protobuf type {@code flyteidl.admin.NodeExecutionGetDataRequest} @@ -12231,6 +12238,7 @@ protected Builder newBuilderForType( /** *
      * Request structure to fetch inputs and output for a node execution.
+     * By default, these are not returned in :ref:`ref_flyteidl.admin.NodeExecutionGetRequest`
      * 
* * Protobuf type {@code flyteidl.admin.NodeExecutionGetDataRequest} diff --git a/flyteidl/gen/pb-java/flyteidl/admin/ProjectDomainAttributesOuterClass.java b/flyteidl/gen/pb-java/flyteidl/admin/ProjectDomainAttributesOuterClass.java index 61216fb11b1..063fdd4d270 100644 --- a/flyteidl/gen/pb-java/flyteidl/admin/ProjectDomainAttributesOuterClass.java +++ b/flyteidl/gen/pb-java/flyteidl/admin/ProjectDomainAttributesOuterClass.java @@ -70,7 +70,7 @@ public interface ProjectDomainAttributesOrBuilder extends /** *
    * Defines a set of custom matching attributes which defines resource defaults for a project and domain.
-   * For more info on matchable attributes, see - :ref:`ref_flyteidl/admin/matchable_resource.proto`.
+   * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
    * 
* * Protobuf type {@code flyteidl.admin.ProjectDomainAttributes} @@ -458,7 +458,7 @@ protected Builder newBuilderForType( /** *
      * Defines a set of custom matching attributes which defines resource defaults for a project and domain.
-     * For more info on matchable attributes, see - :ref:`ref_flyteidl/admin/matchable_resource.proto`.
+     * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
      * 
* * Protobuf type {@code flyteidl.admin.ProjectDomainAttributes} @@ -1008,6 +1008,7 @@ public interface ProjectDomainAttributesUpdateRequestOrBuilder extends /** *
    * Sets custom attributes for a project-domain combination.
+   * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
    * 
* * Protobuf type {@code flyteidl.admin.ProjectDomainAttributesUpdateRequest} @@ -1289,6 +1290,7 @@ protected Builder newBuilderForType( /** *
      * Sets custom attributes for a project-domain combination.
+     * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
      * 
* * Protobuf type {@code flyteidl.admin.ProjectDomainAttributesUpdateRequest} @@ -2135,6 +2137,7 @@ public interface ProjectDomainAttributesGetRequestOrBuilder extends /** *
    * Request to get an individual project domain attribute override.
+   * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
    * 
* * Protobuf type {@code flyteidl.admin.ProjectDomainAttributesGetRequest} @@ -2520,6 +2523,7 @@ protected Builder newBuilderForType( /** *
      * Request to get an individual project domain attribute override.
+     * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
      * 
* * Protobuf type {@code flyteidl.admin.ProjectDomainAttributesGetRequest} @@ -3012,6 +3016,7 @@ public interface ProjectDomainAttributesGetResponseOrBuilder extends /** *
    * Response to get an individual project domain attribute override.
+   * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
    * 
* * Protobuf type {@code flyteidl.admin.ProjectDomainAttributesGetResponse} @@ -3281,6 +3286,7 @@ protected Builder newBuilderForType( /** *
      * Response to get an individual project domain attribute override.
+     * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
      * 
* * Protobuf type {@code flyteidl.admin.ProjectDomainAttributesGetResponse} @@ -3672,6 +3678,7 @@ public interface ProjectDomainAttributesDeleteRequestOrBuilder extends /** *
    * Request to delete a set matchable project domain attribute override.
+   * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
    * 
* * Protobuf type {@code flyteidl.admin.ProjectDomainAttributesDeleteRequest} @@ -4057,6 +4064,7 @@ protected Builder newBuilderForType( /** *
      * Request to delete a set matchable project domain attribute override.
+     * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
      * 
* * Protobuf type {@code flyteidl.admin.ProjectDomainAttributesDeleteRequest} diff --git a/flyteidl/gen/pb-java/flyteidl/admin/ProjectOuterClass.java b/flyteidl/gen/pb-java/flyteidl/admin/ProjectOuterClass.java index a71fd2d3ad9..68484315dc7 100644 --- a/flyteidl/gen/pb-java/flyteidl/admin/ProjectOuterClass.java +++ b/flyteidl/gen/pb-java/flyteidl/admin/ProjectOuterClass.java @@ -2604,6 +2604,11 @@ flyteidl.admin.ProjectOuterClass.ProjectOrBuilder getProjectsOrBuilder( getTokenBytes(); } /** + *
+   * Represents a list of projects.
+   * See :ref:`ref_flyteidl.admin.Project` for more details
+   * 
+ * * Protobuf type {@code flyteidl.admin.Projects} */ public static final class Projects extends @@ -2942,6 +2947,11 @@ protected Builder newBuilderForType( return builder; } /** + *
+     * Represents a list of projects.
+     * See :ref:`ref_flyteidl.admin.Project` for more details
+     * 
+ * * Protobuf type {@code flyteidl.admin.Projects} */ public static final class Builder extends @@ -3608,6 +3618,11 @@ public interface ProjectListRequestOrBuilder extends flyteidl.admin.Common.SortOrBuilder getSortByOrBuilder(); } /** + *
+   * Request to retrieve a list of projects matching specified filters. 
+   * See :ref:`ref_flyteidl.admin.Project` for more details
+   * 
+ * * Protobuf type {@code flyteidl.admin.ProjectListRequest} */ public static final class ProjectListRequest extends @@ -4044,6 +4059,11 @@ protected Builder newBuilderForType( return builder; } /** + *
+     * Request to retrieve a list of projects matching specified filters. 
+     * See :ref:`ref_flyteidl.admin.Project` for more details
+     * 
+ * * Protobuf type {@code flyteidl.admin.ProjectListRequest} */ public static final class Builder extends @@ -4701,6 +4721,11 @@ public interface ProjectRegisterRequestOrBuilder extends flyteidl.admin.ProjectOuterClass.ProjectOrBuilder getProjectOrBuilder(); } /** + *
+   * Adds a new user-project within the Flyte deployment.
+   * See :ref:`ref_flyteidl.admin.Project` for more details
+   * 
+ * * Protobuf type {@code flyteidl.admin.ProjectRegisterRequest} */ public static final class ProjectRegisterRequest extends @@ -4978,6 +5003,11 @@ protected Builder newBuilderForType( return builder; } /** + *
+     * Adds a new user-project within the Flyte deployment.
+     * See :ref:`ref_flyteidl.admin.Project` for more details
+     * 
+ * * Protobuf type {@code flyteidl.admin.ProjectRegisterRequest} */ public static final class Builder extends @@ -5342,6 +5372,10 @@ public interface ProjectRegisterResponseOrBuilder extends com.google.protobuf.MessageOrBuilder { } /** + *
+   * Purposefully empty, may be updated in the future.
+   * 
+ * * Protobuf type {@code flyteidl.admin.ProjectRegisterResponse} */ public static final class ProjectRegisterResponse extends @@ -5556,6 +5590,10 @@ protected Builder newBuilderForType( return builder; } /** + *
+     * Purposefully empty, may be updated in the future.
+     * 
+ * * Protobuf type {@code flyteidl.admin.ProjectRegisterResponse} */ public static final class Builder extends @@ -5753,6 +5791,10 @@ public interface ProjectUpdateResponseOrBuilder extends com.google.protobuf.MessageOrBuilder { } /** + *
+   * Purposefully empty, may be updated in the future.
+   * 
+ * * Protobuf type {@code flyteidl.admin.ProjectUpdateResponse} */ public static final class ProjectUpdateResponse extends @@ -5967,6 +6009,10 @@ protected Builder newBuilderForType( return builder; } /** + *
+     * Purposefully empty, may be updated in the future.
+     * 
+ * * Protobuf type {@code flyteidl.admin.ProjectUpdateResponse} */ public static final class Builder extends diff --git a/flyteidl/gen/pb-java/flyteidl/admin/TaskExecutionOuterClass.java b/flyteidl/gen/pb-java/flyteidl/admin/TaskExecutionOuterClass.java index 874f1f93770..701109c0452 100644 --- a/flyteidl/gen/pb-java/flyteidl/admin/TaskExecutionOuterClass.java +++ b/flyteidl/gen/pb-java/flyteidl/admin/TaskExecutionOuterClass.java @@ -49,6 +49,7 @@ public interface TaskExecutionGetRequestOrBuilder extends /** *
    * A message used to fetch a single task execution entity.
+   * See :ref:`ref_flyteidl.admin.TaskExecution` for more details
    * 
* * Protobuf type {@code flyteidl.admin.TaskExecutionGetRequest} @@ -333,6 +334,7 @@ protected Builder newBuilderForType( /** *
      * A message used to fetch a single task execution entity.
+     * See :ref:`ref_flyteidl.admin.TaskExecution` for more details
      * 
* * Protobuf type {@code flyteidl.admin.TaskExecutionGetRequest} @@ -820,6 +822,7 @@ public interface TaskExecutionListRequestOrBuilder extends /** *
    * Represents a request structure to retrieve a list of task execution entities yielded by a specific node execution.
+   * See :ref:`ref_flyteidl.admin.TaskExecution` for more details
    * 
* * Protobuf type {@code flyteidl.admin.TaskExecutionListRequest} @@ -1325,6 +1328,7 @@ protected Builder newBuilderForType( /** *
      * Represents a request structure to retrieve a list of task execution entities yielded by a specific node execution.
+     * See :ref:`ref_flyteidl.admin.TaskExecution` for more details
      * 
* * Protobuf type {@code flyteidl.admin.TaskExecutionListRequest} @@ -3369,6 +3373,7 @@ flyteidl.admin.TaskExecutionOuterClass.TaskExecutionOrBuilder getTaskExecutionsO /** *
    * Response structure for a query to list of task execution entities.
+   * See :ref:`ref_flyteidl.admin.TaskExecution` for more details
    * 
* * Protobuf type {@code flyteidl.admin.TaskExecutionList} @@ -3711,6 +3716,7 @@ protected Builder newBuilderForType( /** *
      * Response structure for a query to list of task execution entities.
+     * See :ref:`ref_flyteidl.admin.TaskExecution` for more details
      * 
* * Protobuf type {@code flyteidl.admin.TaskExecutionList} @@ -7776,6 +7782,7 @@ public interface TaskExecutionGetDataRequestOrBuilder extends /** *
    * Request structure to fetch inputs and output for a task execution.
+   * By default this data is not returned inline in :ref:`ref_flyteidl.admin.TaskExecutionGetRequest`
    * 
* * Protobuf type {@code flyteidl.admin.TaskExecutionGetDataRequest} @@ -8060,6 +8067,7 @@ protected Builder newBuilderForType( /** *
      * Request structure to fetch inputs and output for a task execution.
+     * By default this data is not returned inline in :ref:`ref_flyteidl.admin.TaskExecutionGetRequest`
      * 
* * Protobuf type {@code flyteidl.admin.TaskExecutionGetDataRequest} diff --git a/flyteidl/gen/pb-java/flyteidl/admin/TaskOuterClass.java b/flyteidl/gen/pb-java/flyteidl/admin/TaskOuterClass.java index 9f1ade233ee..1c86850c92d 100644 --- a/flyteidl/gen/pb-java/flyteidl/admin/TaskOuterClass.java +++ b/flyteidl/gen/pb-java/flyteidl/admin/TaskOuterClass.java @@ -77,6 +77,7 @@ public interface TaskCreateRequestOrBuilder extends /** *
    * Represents a request structure to create a revision of a task.
+   * See :ref:`ref_flyteidl.admin.Task` for more details
    * 
* * Protobuf type {@code flyteidl.admin.TaskCreateRequest} @@ -426,6 +427,7 @@ protected Builder newBuilderForType( /** *
      * Represents a request structure to create a revision of a task.
+     * See :ref:`ref_flyteidl.admin.Task` for more details
      * 
* * Protobuf type {@code flyteidl.admin.TaskCreateRequest} @@ -2394,6 +2396,7 @@ flyteidl.admin.TaskOuterClass.TaskOrBuilder getTasksOrBuilder( /** *
    * Represents a list of tasks returned from the admin.
+   * See :ref:`ref_flyteidl.admin.Task` for more details
    * 
* * Protobuf type {@code flyteidl.admin.TaskList} @@ -2756,6 +2759,7 @@ protected Builder newBuilderForType( /** *
      * Represents a list of tasks returned from the admin.
+     * See :ref:`ref_flyteidl.admin.Task` for more details
      * 
* * Protobuf type {@code flyteidl.admin.TaskList} diff --git a/flyteidl/gen/pb-java/flyteidl/admin/WorkflowAttributesOuterClass.java b/flyteidl/gen/pb-java/flyteidl/admin/WorkflowAttributesOuterClass.java index 52488c83361..707e61bcdc1 100644 --- a/flyteidl/gen/pb-java/flyteidl/admin/WorkflowAttributesOuterClass.java +++ b/flyteidl/gen/pb-java/flyteidl/admin/WorkflowAttributesOuterClass.java @@ -88,7 +88,7 @@ public interface WorkflowAttributesOrBuilder extends /** *
    * Defines a set of custom matching attributes which defines resource defaults for a project, domain and workflow.
-   * For more info on matchable attributes, see - :ref:`ref_flyteidl/admin/matchable_resource.proto`.
+   * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
    * 
* * Protobuf type {@code flyteidl.admin.WorkflowAttributes} @@ -535,7 +535,7 @@ protected Builder newBuilderForType( /** *
      * Defines a set of custom matching attributes which defines resource defaults for a project, domain and workflow.
-     * For more info on matchable attributes, see - :ref:`ref_flyteidl/admin/matchable_resource.proto`.
+     * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
      * 
* * Protobuf type {@code flyteidl.admin.WorkflowAttributes} @@ -1169,6 +1169,7 @@ public interface WorkflowAttributesUpdateRequestOrBuilder extends /** *
    * Sets custom attributes for a project, domain and workflow combination.
+   * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
    * 
* * Protobuf type {@code flyteidl.admin.WorkflowAttributesUpdateRequest} @@ -1438,6 +1439,7 @@ protected Builder newBuilderForType( /** *
      * Sets custom attributes for a project, domain and workflow combination.
+     * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
      * 
* * Protobuf type {@code flyteidl.admin.WorkflowAttributesUpdateRequest} @@ -2268,6 +2270,7 @@ public interface WorkflowAttributesGetRequestOrBuilder extends /** *
    * Request to get an individual workflow attribute override.
+   * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
    * 
* * Protobuf type {@code flyteidl.admin.WorkflowAttributesGetRequest} @@ -2714,6 +2717,7 @@ protected Builder newBuilderForType( /** *
      * Request to get an individual workflow attribute override.
+     * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
      * 
* * Protobuf type {@code flyteidl.admin.WorkflowAttributesGetRequest} @@ -3987,6 +3991,7 @@ public interface WorkflowAttributesDeleteRequestOrBuilder extends /** *
    * Request to delete a set matchable workflow attribute override.
+   * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
    * 
* * Protobuf type {@code flyteidl.admin.WorkflowAttributesDeleteRequest} @@ -4433,6 +4438,7 @@ protected Builder newBuilderForType( /** *
      * Request to delete a set matchable workflow attribute override.
+     * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
      * 
* * Protobuf type {@code flyteidl.admin.WorkflowAttributesDeleteRequest} diff --git a/flyteidl/gen/pb-java/flyteidl/admin/WorkflowOuterClass.java b/flyteidl/gen/pb-java/flyteidl/admin/WorkflowOuterClass.java index 68d4214cafa..50c0869ce10 100644 --- a/flyteidl/gen/pb-java/flyteidl/admin/WorkflowOuterClass.java +++ b/flyteidl/gen/pb-java/flyteidl/admin/WorkflowOuterClass.java @@ -77,6 +77,7 @@ public interface WorkflowCreateRequestOrBuilder extends /** *
    * Represents a request structure to create a revision of a workflow.
+   * See :ref:`ref_flyteidl.admin.Workflow` for more details
    * 
* * Protobuf type {@code flyteidl.admin.WorkflowCreateRequest} @@ -426,6 +427,7 @@ protected Builder newBuilderForType( /** *
      * Represents a request structure to create a revision of a workflow.
+     * See :ref:`ref_flyteidl.admin.Workflow` for more details
      * 
* * Protobuf type {@code flyteidl.admin.WorkflowCreateRequest} @@ -2394,6 +2396,7 @@ flyteidl.admin.WorkflowOuterClass.WorkflowOrBuilder getWorkflowsOrBuilder( /** *
    * Represents a list of workflows returned from the admin.
+   * See :ref:`ref_flyteidl.admin.Workflow` for more details
    * 
* * Protobuf type {@code flyteidl.admin.WorkflowList} @@ -2756,6 +2759,7 @@ protected Builder newBuilderForType( /** *
      * Represents a list of workflows returned from the admin.
+     * See :ref:`ref_flyteidl.admin.Workflow` for more details
      * 
* * Protobuf type {@code flyteidl.admin.WorkflowList} diff --git a/flyteidl/gen/pb_python/flyteidl/service/admin_pb2_grpc.py b/flyteidl/gen/pb_python/flyteidl/service/admin_pb2_grpc.py index 72779dcb101..72499b8959e 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/admin_pb2_grpc.py +++ b/flyteidl/gen/pb_python/flyteidl/service/admin_pb2_grpc.py @@ -260,189 +260,190 @@ class AdminServiceServicer(object): """ def CreateTask(self, request, context): - # missing associated documentation comment in .proto file - pass + """Create and upload a :ref:`ref_flyteidl.admin.Task` definition + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def GetTask(self, request, context): - # missing associated documentation comment in .proto file - pass + """Fetch a :ref:`ref_flyteidl.admin.Task` definition. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def ListTaskIds(self, request, context): - # missing associated documentation comment in .proto file - pass + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def ListTasks(self, request, context): - # missing associated documentation comment in .proto file - pass + """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def CreateWorkflow(self, request, context): - # missing associated documentation comment in .proto file - pass + """Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def GetWorkflow(self, request, context): - # missing associated documentation comment in .proto file - pass + """Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def ListWorkflowIds(self, request, context): - # missing associated documentation comment in .proto file - pass + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def ListWorkflows(self, request, context): - # missing associated documentation comment in .proto file - pass + """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def CreateLaunchPlan(self, request, context): - # missing associated documentation comment in .proto file - pass + """Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def GetLaunchPlan(self, request, context): - # missing associated documentation comment in .proto file - pass + """Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def GetActiveLaunchPlan(self, request, context): - # missing associated documentation comment in .proto file - pass + """Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def ListActiveLaunchPlans(self, request, context): - # missing associated documentation comment in .proto file - pass + """List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def ListLaunchPlanIds(self, request, context): - # missing associated documentation comment in .proto file - pass + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def ListLaunchPlans(self, request, context): - # missing associated documentation comment in .proto file - pass + """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def UpdateLaunchPlan(self, request, context): - # missing associated documentation comment in .proto file - pass + """Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def CreateExecution(self, request, context): - # missing associated documentation comment in .proto file - pass + """Triggers the creation of a :ref:`ref_flyteidl.admin.Execution` + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def RelaunchExecution(self, request, context): - # missing associated documentation comment in .proto file - pass + """Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def GetExecution(self, request, context): - # missing associated documentation comment in .proto file - pass + """Fetches a :ref:`ref_flyteidl.admin.Execution`. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def GetExecutionData(self, request, context): - # missing associated documentation comment in .proto file - pass + """Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def ListExecutions(self, request, context): - # missing associated documentation comment in .proto file - pass + """Fetch a list of :ref:`ref_flyteidl.admin.Execution`. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def TerminateExecution(self, request, context): - # missing associated documentation comment in .proto file - pass + """Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def GetNodeExecution(self, request, context): - # missing associated documentation comment in .proto file - pass + """Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def ListNodeExecutions(self, request, context): - # missing associated documentation comment in .proto file - pass + """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def ListNodeExecutionsForTask(self, request, context): - # missing associated documentation comment in .proto file - pass + """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def GetNodeExecutionData(self, request, context): - # missing associated documentation comment in .proto file - pass + """Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def RegisterProject(self, request, context): - # missing associated documentation comment in .proto file - pass + """Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def UpdateProject(self, request, context): - """flyteidl.admin.Project should be passed but the domains property should be empty; + """Updates an existing :ref:`ref_flyteidl.admin.Project` + flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) @@ -450,120 +451,120 @@ def UpdateProject(self, request, context): raise NotImplementedError('Method not implemented!') def ListProjects(self, request, context): - # missing associated documentation comment in .proto file - pass + """Fetches a list of :ref:`ref_flyteidl.admin.Project` + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def CreateWorkflowEvent(self, request, context): - # missing associated documentation comment in .proto file - pass + """Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def CreateNodeEvent(self, request, context): - # missing associated documentation comment in .proto file - pass + """Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def CreateTaskEvent(self, request, context): - # missing associated documentation comment in .proto file - pass + """Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def GetTaskExecution(self, request, context): - # missing associated documentation comment in .proto file - pass + """Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def ListTaskExecutions(self, request, context): - # missing associated documentation comment in .proto file - pass + """Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def GetTaskExecutionData(self, request, context): - # missing associated documentation comment in .proto file - pass + """Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def UpdateProjectDomainAttributes(self, request, context): - # missing associated documentation comment in .proto file - pass + """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def GetProjectDomainAttributes(self, request, context): - # missing associated documentation comment in .proto file - pass + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def DeleteProjectDomainAttributes(self, request, context): - # missing associated documentation comment in .proto file - pass + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def UpdateWorkflowAttributes(self, request, context): - # missing associated documentation comment in .proto file - pass + """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def GetWorkflowAttributes(self, request, context): - # missing associated documentation comment in .proto file - pass + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def DeleteWorkflowAttributes(self, request, context): - # missing associated documentation comment in .proto file - pass + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def ListMatchableAttributes(self, request, context): - # missing associated documentation comment in .proto file - pass + """Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def ListNamedEntities(self, request, context): - # missing associated documentation comment in .proto file - pass + """Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def GetNamedEntity(self, request, context): - # missing associated documentation comment in .proto file - pass + """Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') def UpdateNamedEntity(self, request, context): - # missing associated documentation comment in .proto file - pass + """Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. + """ context.set_code(grpc.StatusCode.UNIMPLEMENTED) context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/README.md b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/README.md index 0dc1513734c..9b69d19eb27 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/README.md +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/README.md @@ -56,6 +56,7 @@ api_instance = flyteadmin.AdminServiceApi(flyteadmin.ApiClient(configuration)) body = flyteadmin.AdminExecutionCreateRequest() # AdminExecutionCreateRequest | try: + # Triggers the creation of a :ref:`ref_flyteidl.admin.Execution` api_response = api_instance.create_execution(body) pprint(api_response) except ApiException as e: @@ -69,54 +70,54 @@ All URIs are relative to *http://localhost* Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- -*AdminServiceApi* | [**create_execution**](docs/AdminServiceApi.md#create_execution) | **POST** /api/v1/executions | -*AdminServiceApi* | [**create_launch_plan**](docs/AdminServiceApi.md#create_launch_plan) | **POST** /api/v1/launch_plans | -*AdminServiceApi* | [**create_node_event**](docs/AdminServiceApi.md#create_node_event) | **POST** /api/v1/events/nodes | -*AdminServiceApi* | [**create_task**](docs/AdminServiceApi.md#create_task) | **POST** /api/v1/tasks | -*AdminServiceApi* | [**create_task_event**](docs/AdminServiceApi.md#create_task_event) | **POST** /api/v1/events/tasks | -*AdminServiceApi* | [**create_workflow**](docs/AdminServiceApi.md#create_workflow) | **POST** /api/v1/workflows | -*AdminServiceApi* | [**create_workflow_event**](docs/AdminServiceApi.md#create_workflow_event) | **POST** /api/v1/events/workflows | -*AdminServiceApi* | [**delete_project_domain_attributes**](docs/AdminServiceApi.md#delete_project_domain_attributes) | **DELETE** /api/v1/project_domain_attributes/{project}/{domain} | -*AdminServiceApi* | [**delete_workflow_attributes**](docs/AdminServiceApi.md#delete_workflow_attributes) | **DELETE** /api/v1/workflow_attributes/{project}/{domain}/{workflow} | -*AdminServiceApi* | [**get_active_launch_plan**](docs/AdminServiceApi.md#get_active_launch_plan) | **GET** /api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name} | -*AdminServiceApi* | [**get_execution**](docs/AdminServiceApi.md#get_execution) | **GET** /api/v1/executions/{id.project}/{id.domain}/{id.name} | -*AdminServiceApi* | [**get_execution_data**](docs/AdminServiceApi.md#get_execution_data) | **GET** /api/v1/data/executions/{id.project}/{id.domain}/{id.name} | -*AdminServiceApi* | [**get_launch_plan**](docs/AdminServiceApi.md#get_launch_plan) | **GET** /api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version} | -*AdminServiceApi* | [**get_named_entity**](docs/AdminServiceApi.md#get_named_entity) | **GET** /api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name} | -*AdminServiceApi* | [**get_node_execution**](docs/AdminServiceApi.md#get_node_execution) | **GET** /api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id} | -*AdminServiceApi* | [**get_node_execution_data**](docs/AdminServiceApi.md#get_node_execution_data) | **GET** /api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id} | -*AdminServiceApi* | [**get_project_domain_attributes**](docs/AdminServiceApi.md#get_project_domain_attributes) | **GET** /api/v1/project_domain_attributes/{project}/{domain} | -*AdminServiceApi* | [**get_task**](docs/AdminServiceApi.md#get_task) | **GET** /api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version} | -*AdminServiceApi* | [**get_task_execution**](docs/AdminServiceApi.md#get_task_execution) | **GET** /api/v1/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt} | -*AdminServiceApi* | [**get_task_execution_data**](docs/AdminServiceApi.md#get_task_execution_data) | **GET** /api/v1/data/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt} | +*AdminServiceApi* | [**create_execution**](docs/AdminServiceApi.md#create_execution) | **POST** /api/v1/executions | Triggers the creation of a :ref:`ref_flyteidl.admin.Execution` +*AdminServiceApi* | [**create_launch_plan**](docs/AdminServiceApi.md#create_launch_plan) | **POST** /api/v1/launch_plans | Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition +*AdminServiceApi* | [**create_node_event**](docs/AdminServiceApi.md#create_node_event) | **POST** /api/v1/events/nodes | Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. +*AdminServiceApi* | [**create_task**](docs/AdminServiceApi.md#create_task) | **POST** /api/v1/tasks | Create and upload a :ref:`ref_flyteidl.admin.Task` definition +*AdminServiceApi* | [**create_task_event**](docs/AdminServiceApi.md#create_task_event) | **POST** /api/v1/events/tasks | Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. +*AdminServiceApi* | [**create_workflow**](docs/AdminServiceApi.md#create_workflow) | **POST** /api/v1/workflows | Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition +*AdminServiceApi* | [**create_workflow_event**](docs/AdminServiceApi.md#create_workflow_event) | **POST** /api/v1/events/workflows | Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. +*AdminServiceApi* | [**delete_project_domain_attributes**](docs/AdminServiceApi.md#delete_project_domain_attributes) | **DELETE** /api/v1/project_domain_attributes/{project}/{domain} | Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. +*AdminServiceApi* | [**delete_workflow_attributes**](docs/AdminServiceApi.md#delete_workflow_attributes) | **DELETE** /api/v1/workflow_attributes/{project}/{domain}/{workflow} | Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. +*AdminServiceApi* | [**get_active_launch_plan**](docs/AdminServiceApi.md#get_active_launch_plan) | **GET** /api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name} | Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. +*AdminServiceApi* | [**get_execution**](docs/AdminServiceApi.md#get_execution) | **GET** /api/v1/executions/{id.project}/{id.domain}/{id.name} | Fetches a :ref:`ref_flyteidl.admin.Execution`. +*AdminServiceApi* | [**get_execution_data**](docs/AdminServiceApi.md#get_execution_data) | **GET** /api/v1/data/executions/{id.project}/{id.domain}/{id.name} | Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. +*AdminServiceApi* | [**get_launch_plan**](docs/AdminServiceApi.md#get_launch_plan) | **GET** /api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version} | Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. +*AdminServiceApi* | [**get_named_entity**](docs/AdminServiceApi.md#get_named_entity) | **GET** /api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name} | Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. +*AdminServiceApi* | [**get_node_execution**](docs/AdminServiceApi.md#get_node_execution) | **GET** /api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id} | Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. +*AdminServiceApi* | [**get_node_execution_data**](docs/AdminServiceApi.md#get_node_execution_data) | **GET** /api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id} | Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. +*AdminServiceApi* | [**get_project_domain_attributes**](docs/AdminServiceApi.md#get_project_domain_attributes) | **GET** /api/v1/project_domain_attributes/{project}/{domain} | Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. +*AdminServiceApi* | [**get_task**](docs/AdminServiceApi.md#get_task) | **GET** /api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version} | Fetch a :ref:`ref_flyteidl.admin.Task` definition. +*AdminServiceApi* | [**get_task_execution**](docs/AdminServiceApi.md#get_task_execution) | **GET** /api/v1/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt} | Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. +*AdminServiceApi* | [**get_task_execution_data**](docs/AdminServiceApi.md#get_task_execution_data) | **GET** /api/v1/data/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt} | Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. *AdminServiceApi* | [**get_version**](docs/AdminServiceApi.md#get_version) | **GET** /api/v1/version | -*AdminServiceApi* | [**get_workflow**](docs/AdminServiceApi.md#get_workflow) | **GET** /api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version} | -*AdminServiceApi* | [**get_workflow_attributes**](docs/AdminServiceApi.md#get_workflow_attributes) | **GET** /api/v1/workflow_attributes/{project}/{domain}/{workflow} | -*AdminServiceApi* | [**list_active_launch_plans**](docs/AdminServiceApi.md#list_active_launch_plans) | **GET** /api/v1/active_launch_plans/{project}/{domain} | -*AdminServiceApi* | [**list_executions**](docs/AdminServiceApi.md#list_executions) | **GET** /api/v1/executions/{id.project}/{id.domain} | -*AdminServiceApi* | [**list_launch_plan_ids**](docs/AdminServiceApi.md#list_launch_plan_ids) | **GET** /api/v1/launch_plan_ids/{project}/{domain} | -*AdminServiceApi* | [**list_launch_plans**](docs/AdminServiceApi.md#list_launch_plans) | **GET** /api/v1/launch_plans/{id.project}/{id.domain}/{id.name} | -*AdminServiceApi* | [**list_launch_plans2**](docs/AdminServiceApi.md#list_launch_plans2) | **GET** /api/v1/launch_plans/{id.project}/{id.domain} | -*AdminServiceApi* | [**list_matchable_attributes**](docs/AdminServiceApi.md#list_matchable_attributes) | **GET** /api/v1/matchable_attributes | -*AdminServiceApi* | [**list_named_entities**](docs/AdminServiceApi.md#list_named_entities) | **GET** /api/v1/named_entities/{resource_type}/{project}/{domain} | -*AdminServiceApi* | [**list_node_executions**](docs/AdminServiceApi.md#list_node_executions) | **GET** /api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name} | -*AdminServiceApi* | [**list_node_executions_for_task**](docs/AdminServiceApi.md#list_node_executions_for_task) | **GET** /api/v1/children/task_executions/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt} | -*AdminServiceApi* | [**list_projects**](docs/AdminServiceApi.md#list_projects) | **GET** /api/v1/projects | -*AdminServiceApi* | [**list_task_executions**](docs/AdminServiceApi.md#list_task_executions) | **GET** /api/v1/task_executions/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id} | -*AdminServiceApi* | [**list_task_ids**](docs/AdminServiceApi.md#list_task_ids) | **GET** /api/v1/task_ids/{project}/{domain} | -*AdminServiceApi* | [**list_tasks**](docs/AdminServiceApi.md#list_tasks) | **GET** /api/v1/tasks/{id.project}/{id.domain}/{id.name} | -*AdminServiceApi* | [**list_tasks2**](docs/AdminServiceApi.md#list_tasks2) | **GET** /api/v1/tasks/{id.project}/{id.domain} | -*AdminServiceApi* | [**list_workflow_ids**](docs/AdminServiceApi.md#list_workflow_ids) | **GET** /api/v1/workflow_ids/{project}/{domain} | -*AdminServiceApi* | [**list_workflows**](docs/AdminServiceApi.md#list_workflows) | **GET** /api/v1/workflows/{id.project}/{id.domain}/{id.name} | -*AdminServiceApi* | [**list_workflows2**](docs/AdminServiceApi.md#list_workflows2) | **GET** /api/v1/workflows/{id.project}/{id.domain} | -*AdminServiceApi* | [**register_project**](docs/AdminServiceApi.md#register_project) | **POST** /api/v1/projects | -*AdminServiceApi* | [**relaunch_execution**](docs/AdminServiceApi.md#relaunch_execution) | **POST** /api/v1/executions/relaunch | -*AdminServiceApi* | [**terminate_execution**](docs/AdminServiceApi.md#terminate_execution) | **DELETE** /api/v1/executions/{id.project}/{id.domain}/{id.name} | -*AdminServiceApi* | [**update_launch_plan**](docs/AdminServiceApi.md#update_launch_plan) | **PUT** /api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version} | -*AdminServiceApi* | [**update_named_entity**](docs/AdminServiceApi.md#update_named_entity) | **PUT** /api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name} | -*AdminServiceApi* | [**update_project**](docs/AdminServiceApi.md#update_project) | **PUT** /api/v1/projects/{id} | flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. -*AdminServiceApi* | [**update_project_domain_attributes**](docs/AdminServiceApi.md#update_project_domain_attributes) | **PUT** /api/v1/project_domain_attributes/{attributes.project}/{attributes.domain} | -*AdminServiceApi* | [**update_workflow_attributes**](docs/AdminServiceApi.md#update_workflow_attributes) | **PUT** /api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow} | +*AdminServiceApi* | [**get_workflow**](docs/AdminServiceApi.md#get_workflow) | **GET** /api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version} | Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. +*AdminServiceApi* | [**get_workflow_attributes**](docs/AdminServiceApi.md#get_workflow_attributes) | **GET** /api/v1/workflow_attributes/{project}/{domain}/{workflow} | Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. +*AdminServiceApi* | [**list_active_launch_plans**](docs/AdminServiceApi.md#list_active_launch_plans) | **GET** /api/v1/active_launch_plans/{project}/{domain} | List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. +*AdminServiceApi* | [**list_executions**](docs/AdminServiceApi.md#list_executions) | **GET** /api/v1/executions/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.Execution`. +*AdminServiceApi* | [**list_launch_plan_ids**](docs/AdminServiceApi.md#list_launch_plan_ids) | **GET** /api/v1/launch_plan_ids/{project}/{domain} | Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. +*AdminServiceApi* | [**list_launch_plans**](docs/AdminServiceApi.md#list_launch_plans) | **GET** /api/v1/launch_plans/{id.project}/{id.domain}/{id.name} | Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. +*AdminServiceApi* | [**list_launch_plans2**](docs/AdminServiceApi.md#list_launch_plans2) | **GET** /api/v1/launch_plans/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. +*AdminServiceApi* | [**list_matchable_attributes**](docs/AdminServiceApi.md#list_matchable_attributes) | **GET** /api/v1/matchable_attributes | Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. +*AdminServiceApi* | [**list_named_entities**](docs/AdminServiceApi.md#list_named_entities) | **GET** /api/v1/named_entities/{resource_type}/{project}/{domain} | Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. +*AdminServiceApi* | [**list_node_executions**](docs/AdminServiceApi.md#list_node_executions) | **GET** /api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name} | Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. +*AdminServiceApi* | [**list_node_executions_for_task**](docs/AdminServiceApi.md#list_node_executions_for_task) | **GET** /api/v1/children/task_executions/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt} | Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. +*AdminServiceApi* | [**list_projects**](docs/AdminServiceApi.md#list_projects) | **GET** /api/v1/projects | Fetches a list of :ref:`ref_flyteidl.admin.Project` +*AdminServiceApi* | [**list_task_executions**](docs/AdminServiceApi.md#list_task_executions) | **GET** /api/v1/task_executions/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id} | Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. +*AdminServiceApi* | [**list_task_ids**](docs/AdminServiceApi.md#list_task_ids) | **GET** /api/v1/task_ids/{project}/{domain} | Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. +*AdminServiceApi* | [**list_tasks**](docs/AdminServiceApi.md#list_tasks) | **GET** /api/v1/tasks/{id.project}/{id.domain}/{id.name} | Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. +*AdminServiceApi* | [**list_tasks2**](docs/AdminServiceApi.md#list_tasks2) | **GET** /api/v1/tasks/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. +*AdminServiceApi* | [**list_workflow_ids**](docs/AdminServiceApi.md#list_workflow_ids) | **GET** /api/v1/workflow_ids/{project}/{domain} | Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. +*AdminServiceApi* | [**list_workflows**](docs/AdminServiceApi.md#list_workflows) | **GET** /api/v1/workflows/{id.project}/{id.domain}/{id.name} | Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. +*AdminServiceApi* | [**list_workflows2**](docs/AdminServiceApi.md#list_workflows2) | **GET** /api/v1/workflows/{id.project}/{id.domain} | Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. +*AdminServiceApi* | [**register_project**](docs/AdminServiceApi.md#register_project) | **POST** /api/v1/projects | Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. +*AdminServiceApi* | [**relaunch_execution**](docs/AdminServiceApi.md#relaunch_execution) | **POST** /api/v1/executions/relaunch | Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` +*AdminServiceApi* | [**terminate_execution**](docs/AdminServiceApi.md#terminate_execution) | **DELETE** /api/v1/executions/{id.project}/{id.domain}/{id.name} | Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. +*AdminServiceApi* | [**update_launch_plan**](docs/AdminServiceApi.md#update_launch_plan) | **PUT** /api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version} | Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. +*AdminServiceApi* | [**update_named_entity**](docs/AdminServiceApi.md#update_named_entity) | **PUT** /api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name} | Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. +*AdminServiceApi* | [**update_project**](docs/AdminServiceApi.md#update_project) | **PUT** /api/v1/projects/{id} | Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. +*AdminServiceApi* | [**update_project_domain_attributes**](docs/AdminServiceApi.md#update_project_domain_attributes) | **PUT** /api/v1/project_domain_attributes/{attributes.project}/{attributes.domain} | Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. +*AdminServiceApi* | [**update_workflow_attributes**](docs/AdminServiceApi.md#update_workflow_attributes) | **PUT** /api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow} | Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. ## Documentation For Models diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/api/admin_service_api.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/api/admin_service_api.py index a080ab12a92..ae6601c5d6d 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/api/admin_service_api.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/api/admin_service_api.py @@ -34,7 +34,7 @@ def __init__(self, api_client=None): self.api_client = api_client def create_execution(self, body, **kwargs): # noqa: E501 - """create_execution # noqa: E501 + """Triggers the creation of a :ref:`ref_flyteidl.admin.Execution` # noqa: E501 Create a workflow execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -56,7 +56,7 @@ def create_execution(self, body, **kwargs): # noqa: E501 return data def create_execution_with_http_info(self, body, **kwargs): # noqa: E501 - """create_execution # noqa: E501 + """Triggers the creation of a :ref:`ref_flyteidl.admin.Execution` # noqa: E501 Create a workflow execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -133,7 +133,7 @@ def create_execution_with_http_info(self, body, **kwargs): # noqa: E501 collection_formats=collection_formats) def create_launch_plan(self, body, **kwargs): # noqa: E501 - """create_launch_plan # noqa: E501 + """Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition # noqa: E501 Create and register a launch plan definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -155,7 +155,7 @@ def create_launch_plan(self, body, **kwargs): # noqa: E501 return data def create_launch_plan_with_http_info(self, body, **kwargs): # noqa: E501 - """create_launch_plan # noqa: E501 + """Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition # noqa: E501 Create and register a launch plan definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -232,7 +232,7 @@ def create_launch_plan_with_http_info(self, body, **kwargs): # noqa: E501 collection_formats=collection_formats) def create_node_event(self, body, **kwargs): # noqa: E501 - """create_node_event # noqa: E501 + """Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. # noqa: E501 Create a node execution event recording a phase transition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -254,7 +254,7 @@ def create_node_event(self, body, **kwargs): # noqa: E501 return data def create_node_event_with_http_info(self, body, **kwargs): # noqa: E501 - """create_node_event # noqa: E501 + """Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. # noqa: E501 Create a node execution event recording a phase transition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -331,7 +331,7 @@ def create_node_event_with_http_info(self, body, **kwargs): # noqa: E501 collection_formats=collection_formats) def create_task(self, body, **kwargs): # noqa: E501 - """create_task # noqa: E501 + """Create and upload a :ref:`ref_flyteidl.admin.Task` definition # noqa: E501 Create and register a task definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -353,7 +353,7 @@ def create_task(self, body, **kwargs): # noqa: E501 return data def create_task_with_http_info(self, body, **kwargs): # noqa: E501 - """create_task # noqa: E501 + """Create and upload a :ref:`ref_flyteidl.admin.Task` definition # noqa: E501 Create and register a task definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -430,7 +430,7 @@ def create_task_with_http_info(self, body, **kwargs): # noqa: E501 collection_formats=collection_formats) def create_task_event(self, body, **kwargs): # noqa: E501 - """create_task_event # noqa: E501 + """Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. # noqa: E501 Create a task execution event recording a phase transition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -452,7 +452,7 @@ def create_task_event(self, body, **kwargs): # noqa: E501 return data def create_task_event_with_http_info(self, body, **kwargs): # noqa: E501 - """create_task_event # noqa: E501 + """Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. # noqa: E501 Create a task execution event recording a phase transition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -529,7 +529,7 @@ def create_task_event_with_http_info(self, body, **kwargs): # noqa: E501 collection_formats=collection_formats) def create_workflow(self, body, **kwargs): # noqa: E501 - """create_workflow # noqa: E501 + """Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition # noqa: E501 Create and register a workflow definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -551,7 +551,7 @@ def create_workflow(self, body, **kwargs): # noqa: E501 return data def create_workflow_with_http_info(self, body, **kwargs): # noqa: E501 - """create_workflow # noqa: E501 + """Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition # noqa: E501 Create and register a workflow definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -628,7 +628,7 @@ def create_workflow_with_http_info(self, body, **kwargs): # noqa: E501 collection_formats=collection_formats) def create_workflow_event(self, body, **kwargs): # noqa: E501 - """create_workflow_event # noqa: E501 + """Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. # noqa: E501 Create a workflow execution event recording a phase transition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -650,7 +650,7 @@ def create_workflow_event(self, body, **kwargs): # noqa: E501 return data def create_workflow_event_with_http_info(self, body, **kwargs): # noqa: E501 - """create_workflow_event # noqa: E501 + """Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. # noqa: E501 Create a workflow execution event recording a phase transition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -727,7 +727,7 @@ def create_workflow_event_with_http_info(self, body, **kwargs): # noqa: E501 collection_formats=collection_formats) def delete_project_domain_attributes(self, project, domain, body, **kwargs): # noqa: E501 - """delete_project_domain_attributes # noqa: E501 + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 Delete the customized resource attributes associated with a project-domain combination # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -751,7 +751,7 @@ def delete_project_domain_attributes(self, project, domain, body, **kwargs): # return data def delete_project_domain_attributes_with_http_info(self, project, domain, body, **kwargs): # noqa: E501 - """delete_project_domain_attributes # noqa: E501 + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 Delete the customized resource attributes associated with a project-domain combination # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -842,7 +842,7 @@ def delete_project_domain_attributes_with_http_info(self, project, domain, body, collection_formats=collection_formats) def delete_workflow_attributes(self, project, domain, workflow, body, **kwargs): # noqa: E501 - """delete_workflow_attributes # noqa: E501 + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 Delete the customized resource attributes associated with a project, domain and workflow combination # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -867,7 +867,7 @@ def delete_workflow_attributes(self, project, domain, workflow, body, **kwargs): return data def delete_workflow_attributes_with_http_info(self, project, domain, workflow, body, **kwargs): # noqa: E501 - """delete_workflow_attributes # noqa: E501 + """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 Delete the customized resource attributes associated with a project, domain and workflow combination # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -965,7 +965,7 @@ def delete_workflow_attributes_with_http_info(self, project, domain, workflow, b collection_formats=collection_formats) def get_active_launch_plan(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """get_active_launch_plan # noqa: E501 + """Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 Retrieve the active launch plan version specified by input request filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -989,7 +989,7 @@ def get_active_launch_plan(self, id_project, id_domain, id_name, **kwargs): # n return data def get_active_launch_plan_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """get_active_launch_plan # noqa: E501 + """Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 Retrieve the active launch plan version specified by input request filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -1080,7 +1080,7 @@ def get_active_launch_plan_with_http_info(self, id_project, id_domain, id_name, collection_formats=collection_formats) def get_execution(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """get_execution # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 Retrieve an existing workflow execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -1104,7 +1104,7 @@ def get_execution(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 return data def get_execution_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """get_execution # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 Retrieve an existing workflow execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -1195,7 +1195,7 @@ def get_execution_with_http_info(self, id_project, id_domain, id_name, **kwargs) collection_formats=collection_formats) def get_execution_data(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """get_execution_data # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 Retrieve input and output data from an existing workflow execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -1219,7 +1219,7 @@ def get_execution_data(self, id_project, id_domain, id_name, **kwargs): # noqa: return data def get_execution_data_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """get_execution_data # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 Retrieve input and output data from an existing workflow execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -1310,7 +1310,7 @@ def get_execution_data_with_http_info(self, id_project, id_domain, id_name, **kw collection_formats=collection_formats) def get_launch_plan(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """get_launch_plan # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. # noqa: E501 Retrieve an existing launch plan definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -1336,7 +1336,7 @@ def get_launch_plan(self, id_project, id_domain, id_name, id_version, **kwargs): return data def get_launch_plan_with_http_info(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """get_launch_plan # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. # noqa: E501 Retrieve an existing launch plan definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -1437,7 +1437,7 @@ def get_launch_plan_with_http_info(self, id_project, id_domain, id_name, id_vers collection_formats=collection_formats) def get_named_entity(self, resource_type, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """get_named_entity # noqa: E501 + """Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 Retrieve a NamedEntity object. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -1462,7 +1462,7 @@ def get_named_entity(self, resource_type, id_project, id_domain, id_name, **kwar return data def get_named_entity_with_http_info(self, resource_type, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """get_named_entity # noqa: E501 + """Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 Retrieve a NamedEntity object. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -1560,7 +1560,7 @@ def get_named_entity_with_http_info(self, resource_type, id_project, id_domain, collection_formats=collection_formats) def get_node_execution(self, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 - """get_node_execution # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 Retrieve an existing node execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -1585,7 +1585,7 @@ def get_node_execution(self, id_execution_id_project, id_execution_id_domain, id return data def get_node_execution_with_http_info(self, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 - """get_node_execution # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 Retrieve an existing node execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -1683,7 +1683,7 @@ def get_node_execution_with_http_info(self, id_execution_id_project, id_executio collection_formats=collection_formats) def get_node_execution_data(self, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 - """get_node_execution_data # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 Retrieve input and output data from an existing node execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -1708,7 +1708,7 @@ def get_node_execution_data(self, id_execution_id_project, id_execution_id_domai return data def get_node_execution_data_with_http_info(self, id_execution_id_project, id_execution_id_domain, id_execution_id_name, id_node_id, **kwargs): # noqa: E501 - """get_node_execution_data # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 Retrieve input and output data from an existing node execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -1806,7 +1806,7 @@ def get_node_execution_data_with_http_info(self, id_execution_id_project, id_exe collection_formats=collection_formats) def get_project_domain_attributes(self, project, domain, **kwargs): # noqa: E501 - """get_project_domain_attributes # noqa: E501 + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 Retrieve the customized resource attributes associated with a project-domain combination # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -1830,7 +1830,7 @@ def get_project_domain_attributes(self, project, domain, **kwargs): # noqa: E50 return data def get_project_domain_attributes_with_http_info(self, project, domain, **kwargs): # noqa: E501 - """get_project_domain_attributes # noqa: E501 + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 Retrieve the customized resource attributes associated with a project-domain combination # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -1917,7 +1917,7 @@ def get_project_domain_attributes_with_http_info(self, project, domain, **kwargs collection_formats=collection_formats) def get_task(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """get_task # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.Task` definition. # noqa: E501 Retrieve an existing task definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -1943,7 +1943,7 @@ def get_task(self, id_project, id_domain, id_name, id_version, **kwargs): # noq return data def get_task_with_http_info(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """get_task # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.Task` definition. # noqa: E501 Retrieve an existing task definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -2044,7 +2044,7 @@ def get_task_with_http_info(self, id_project, id_domain, id_name, id_version, ** collection_formats=collection_formats) def get_task_execution(self, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs): # noqa: E501 - """get_task_execution # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 Retrieve an existing task execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -2075,7 +2075,7 @@ def get_task_execution(self, id_node_execution_id_execution_id_project, id_node_ return data def get_task_execution_with_http_info(self, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs): # noqa: E501 - """get_task_execution # noqa: E501 + """Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 Retrieve an existing task execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -2211,7 +2211,7 @@ def get_task_execution_with_http_info(self, id_node_execution_id_execution_id_pr collection_formats=collection_formats) def get_task_execution_data(self, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs): # noqa: E501 - """get_task_execution_data # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 Retrieve input and output data from an existing task execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -2242,7 +2242,7 @@ def get_task_execution_data(self, id_node_execution_id_execution_id_project, id_ return data def get_task_execution_data_with_http_info(self, id_node_execution_id_execution_id_project, id_node_execution_id_execution_id_domain, id_node_execution_id_execution_id_name, id_node_execution_id_node_id, id_task_id_project, id_task_id_domain, id_task_id_name, id_task_id_version, id_retry_attempt, **kwargs): # noqa: E501 - """get_task_execution_data # noqa: E501 + """Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 Retrieve input and output data from an existing task execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -2469,7 +2469,7 @@ def get_version_with_http_info(self, **kwargs): # noqa: E501 collection_formats=collection_formats) def get_workflow(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """get_workflow # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. # noqa: E501 Retrieve an existing workflow definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -2495,7 +2495,7 @@ def get_workflow(self, id_project, id_domain, id_name, id_version, **kwargs): # return data def get_workflow_with_http_info(self, id_project, id_domain, id_name, id_version, **kwargs): # noqa: E501 - """get_workflow # noqa: E501 + """Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. # noqa: E501 Retrieve an existing workflow definition. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -2596,7 +2596,7 @@ def get_workflow_with_http_info(self, id_project, id_domain, id_name, id_version collection_formats=collection_formats) def get_workflow_attributes(self, project, domain, workflow, **kwargs): # noqa: E501 - """get_workflow_attributes # noqa: E501 + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 Retrieve the customized resource attributes associated with a project, domain and workflow combination # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -2621,7 +2621,7 @@ def get_workflow_attributes(self, project, domain, workflow, **kwargs): # noqa: return data def get_workflow_attributes_with_http_info(self, project, domain, workflow, **kwargs): # noqa: E501 - """get_workflow_attributes # noqa: E501 + """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 Retrieve the customized resource attributes associated with a project, domain and workflow combination # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -2715,7 +2715,7 @@ def get_workflow_attributes_with_http_info(self, project, domain, workflow, **kw collection_formats=collection_formats) def list_active_launch_plans(self, project, domain, **kwargs): # noqa: E501 - """list_active_launch_plans # noqa: E501 + """List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 Fetch the active launch plan versions specified by input request filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -2742,7 +2742,7 @@ def list_active_launch_plans(self, project, domain, **kwargs): # noqa: E501 return data def list_active_launch_plans_with_http_info(self, project, domain, **kwargs): # noqa: E501 - """list_active_launch_plans # noqa: E501 + """List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 Fetch the active launch plan versions specified by input request filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -2838,7 +2838,7 @@ def list_active_launch_plans_with_http_info(self, project, domain, **kwargs): # collection_formats=collection_formats) def list_executions(self, id_project, id_domain, **kwargs): # noqa: E501 - """list_executions # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 Fetch existing workflow executions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -2867,7 +2867,7 @@ def list_executions(self, id_project, id_domain, **kwargs): # noqa: E501 return data def list_executions_with_http_info(self, id_project, id_domain, **kwargs): # noqa: E501 - """list_executions # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 Fetch existing workflow executions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -2969,7 +2969,7 @@ def list_executions_with_http_info(self, id_project, id_domain, **kwargs): # no collection_formats=collection_formats) def list_launch_plan_ids(self, project, domain, **kwargs): # noqa: E501 - """list_launch_plan_ids # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. # noqa: E501 Fetch existing launch plan definition identifiers matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -2997,7 +2997,7 @@ def list_launch_plan_ids(self, project, domain, **kwargs): # noqa: E501 return data def list_launch_plan_ids_with_http_info(self, project, domain, **kwargs): # noqa: E501 - """list_launch_plan_ids # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. # noqa: E501 Fetch existing launch plan definition identifiers matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -3096,7 +3096,7 @@ def list_launch_plan_ids_with_http_info(self, project, domain, **kwargs): # noq collection_formats=collection_formats) def list_launch_plans(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """list_launch_plans # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 Fetch existing launch plan definitions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -3125,7 +3125,7 @@ def list_launch_plans(self, id_project, id_domain, id_name, **kwargs): # noqa: return data def list_launch_plans_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """list_launch_plans # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 Fetch existing launch plan definitions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -3231,7 +3231,7 @@ def list_launch_plans_with_http_info(self, id_project, id_domain, id_name, **kwa collection_formats=collection_formats) def list_launch_plans2(self, id_project, id_domain, **kwargs): # noqa: E501 - """list_launch_plans2 # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 Fetch existing launch plan definitions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -3260,7 +3260,7 @@ def list_launch_plans2(self, id_project, id_domain, **kwargs): # noqa: E501 return data def list_launch_plans2_with_http_info(self, id_project, id_domain, **kwargs): # noqa: E501 - """list_launch_plans2 # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 Fetch existing launch plan definitions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -3362,7 +3362,7 @@ def list_launch_plans2_with_http_info(self, id_project, id_domain, **kwargs): # collection_formats=collection_formats) def list_matchable_attributes(self, **kwargs): # noqa: E501 - """list_matchable_attributes # noqa: E501 + """Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. # noqa: E501 Retrieve a list of MatchableAttributesConfiguration objects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -3384,7 +3384,7 @@ def list_matchable_attributes(self, **kwargs): # noqa: E501 return data def list_matchable_attributes_with_http_info(self, **kwargs): # noqa: E501 - """list_matchable_attributes # noqa: E501 + """Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. # noqa: E501 Retrieve a list of MatchableAttributesConfiguration objects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -3457,7 +3457,7 @@ def list_matchable_attributes_with_http_info(self, **kwargs): # noqa: E501 collection_formats=collection_formats) def list_named_entities(self, resource_type, project, domain, **kwargs): # noqa: E501 - """list_named_entities # noqa: E501 + """Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. # noqa: E501 Retrieve a list of NamedEntity objects sharing a common resource type, project, and domain. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -3486,7 +3486,7 @@ def list_named_entities(self, resource_type, project, domain, **kwargs): # noqa return data def list_named_entities_with_http_info(self, resource_type, project, domain, **kwargs): # noqa: E501 - """list_named_entities # noqa: E501 + """Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. # noqa: E501 Retrieve a list of NamedEntity objects sharing a common resource type, project, and domain. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -3592,7 +3592,7 @@ def list_named_entities_with_http_info(self, resource_type, project, domain, **k collection_formats=collection_formats) def list_node_executions(self, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs): # noqa: E501 - """list_node_executions # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 Fetch existing node executions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -3622,7 +3622,7 @@ def list_node_executions(self, workflow_execution_id_project, workflow_execution return data def list_node_executions_with_http_info(self, workflow_execution_id_project, workflow_execution_id_domain, workflow_execution_id_name, **kwargs): # noqa: E501 - """list_node_executions # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 Fetch existing node executions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -3731,7 +3731,7 @@ def list_node_executions_with_http_info(self, workflow_execution_id_project, wor collection_formats=collection_formats) def list_node_executions_for_task(self, task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, **kwargs): # noqa: E501 - """list_node_executions_for_task # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 Fetch child node executions launched by the specified task execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -3767,7 +3767,7 @@ def list_node_executions_for_task(self, task_execution_id_node_execution_id_exec return data def list_node_executions_for_task_with_http_info(self, task_execution_id_node_execution_id_execution_id_project, task_execution_id_node_execution_id_execution_id_domain, task_execution_id_node_execution_id_execution_id_name, task_execution_id_node_execution_id_node_id, task_execution_id_task_id_project, task_execution_id_task_id_domain, task_execution_id_task_id_name, task_execution_id_task_id_version, task_execution_id_retry_attempt, **kwargs): # noqa: E501 - """list_node_executions_for_task # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 Fetch child node executions launched by the specified task execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -3918,7 +3918,7 @@ def list_node_executions_for_task_with_http_info(self, task_execution_id_node_ex collection_formats=collection_formats) def list_projects(self, **kwargs): # noqa: E501 - """list_projects # noqa: E501 + """Fetches a list of :ref:`ref_flyteidl.admin.Project` # noqa: E501 Fetch registered projects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -3944,7 +3944,7 @@ def list_projects(self, **kwargs): # noqa: E501 return data def list_projects_with_http_info(self, **kwargs): # noqa: E501 - """list_projects # noqa: E501 + """Fetches a list of :ref:`ref_flyteidl.admin.Project` # noqa: E501 Fetch registered projects. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -4029,7 +4029,7 @@ def list_projects_with_http_info(self, **kwargs): # noqa: E501 collection_formats=collection_formats) def list_task_executions(self, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs): # noqa: E501 - """list_task_executions # noqa: E501 + """Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 Fetch existing task executions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -4059,7 +4059,7 @@ def list_task_executions(self, node_execution_id_execution_id_project, node_exec return data def list_task_executions_with_http_info(self, node_execution_id_execution_id_project, node_execution_id_execution_id_domain, node_execution_id_execution_id_name, node_execution_id_node_id, **kwargs): # noqa: E501 - """list_task_executions # noqa: E501 + """Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 Fetch existing task executions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -4172,7 +4172,7 @@ def list_task_executions_with_http_info(self, node_execution_id_execution_id_pro collection_formats=collection_formats) def list_task_ids(self, project, domain, **kwargs): # noqa: E501 - """list_task_ids # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. # noqa: E501 Fetch existing task definition identifiers matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -4200,7 +4200,7 @@ def list_task_ids(self, project, domain, **kwargs): # noqa: E501 return data def list_task_ids_with_http_info(self, project, domain, **kwargs): # noqa: E501 - """list_task_ids # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. # noqa: E501 Fetch existing task definition identifiers matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -4299,7 +4299,7 @@ def list_task_ids_with_http_info(self, project, domain, **kwargs): # noqa: E501 collection_formats=collection_formats) def list_tasks(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """list_tasks # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 Fetch existing task definitions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -4328,7 +4328,7 @@ def list_tasks(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 return data def list_tasks_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """list_tasks # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 Fetch existing task definitions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -4434,7 +4434,7 @@ def list_tasks_with_http_info(self, id_project, id_domain, id_name, **kwargs): collection_formats=collection_formats) def list_tasks2(self, id_project, id_domain, **kwargs): # noqa: E501 - """list_tasks2 # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 Fetch existing task definitions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -4463,7 +4463,7 @@ def list_tasks2(self, id_project, id_domain, **kwargs): # noqa: E501 return data def list_tasks2_with_http_info(self, id_project, id_domain, **kwargs): # noqa: E501 - """list_tasks2 # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 Fetch existing task definitions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -4565,7 +4565,7 @@ def list_tasks2_with_http_info(self, id_project, id_domain, **kwargs): # noqa: collection_formats=collection_formats) def list_workflow_ids(self, project, domain, **kwargs): # noqa: E501 - """list_workflow_ids # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. # noqa: E501 Fetch an existing workflow definition identifiers matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -4593,7 +4593,7 @@ def list_workflow_ids(self, project, domain, **kwargs): # noqa: E501 return data def list_workflow_ids_with_http_info(self, project, domain, **kwargs): # noqa: E501 - """list_workflow_ids # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. # noqa: E501 Fetch an existing workflow definition identifiers matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -4692,7 +4692,7 @@ def list_workflow_ids_with_http_info(self, project, domain, **kwargs): # noqa: collection_formats=collection_formats) def list_workflows(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """list_workflows # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 Fetch existing workflow definitions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -4721,7 +4721,7 @@ def list_workflows(self, id_project, id_domain, id_name, **kwargs): # noqa: E50 return data def list_workflows_with_http_info(self, id_project, id_domain, id_name, **kwargs): # noqa: E501 - """list_workflows # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 Fetch existing workflow definitions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -4827,7 +4827,7 @@ def list_workflows_with_http_info(self, id_project, id_domain, id_name, **kwargs collection_formats=collection_formats) def list_workflows2(self, id_project, id_domain, **kwargs): # noqa: E501 - """list_workflows2 # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 Fetch existing workflow definitions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -4856,7 +4856,7 @@ def list_workflows2(self, id_project, id_domain, **kwargs): # noqa: E501 return data def list_workflows2_with_http_info(self, id_project, id_domain, **kwargs): # noqa: E501 - """list_workflows2 # noqa: E501 + """Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 Fetch existing workflow definitions matching input filters. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -4958,7 +4958,7 @@ def list_workflows2_with_http_info(self, id_project, id_domain, **kwargs): # no collection_formats=collection_formats) def register_project(self, body, **kwargs): # noqa: E501 - """register_project # noqa: E501 + """Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. # noqa: E501 Register a project. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -4980,7 +4980,7 @@ def register_project(self, body, **kwargs): # noqa: E501 return data def register_project_with_http_info(self, body, **kwargs): # noqa: E501 - """register_project # noqa: E501 + """Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. # noqa: E501 Register a project. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -5057,7 +5057,7 @@ def register_project_with_http_info(self, body, **kwargs): # noqa: E501 collection_formats=collection_formats) def relaunch_execution(self, body, **kwargs): # noqa: E501 - """relaunch_execution # noqa: E501 + """Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` # noqa: E501 Relaunch a workflow execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -5079,7 +5079,7 @@ def relaunch_execution(self, body, **kwargs): # noqa: E501 return data def relaunch_execution_with_http_info(self, body, **kwargs): # noqa: E501 - """relaunch_execution # noqa: E501 + """Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` # noqa: E501 Relaunch a workflow execution. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -5156,7 +5156,7 @@ def relaunch_execution_with_http_info(self, body, **kwargs): # noqa: E501 collection_formats=collection_formats) def terminate_execution(self, id_project, id_domain, id_name, body, **kwargs): # noqa: E501 - """terminate_execution # noqa: E501 + """Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 Terminate the active workflow execution specified in the request. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -5181,7 +5181,7 @@ def terminate_execution(self, id_project, id_domain, id_name, body, **kwargs): return data def terminate_execution_with_http_info(self, id_project, id_domain, id_name, body, **kwargs): # noqa: E501 - """terminate_execution # noqa: E501 + """Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 Terminate the active workflow execution specified in the request. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -5279,7 +5279,7 @@ def terminate_execution_with_http_info(self, id_project, id_domain, id_name, bod collection_formats=collection_formats) def update_launch_plan(self, id_project, id_domain, id_name, id_version, body, **kwargs): # noqa: E501 - """update_launch_plan # noqa: E501 + """Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 Update the status of an existing launch plan definition. At most one launch plan version for a given {project, domain, name} can be active at a time. If this call sets a launch plan to active and existing version is already active, the result of this call will be that the formerly active launch plan will be made inactive and specified launch plan in this request will be made active. In the event that the formerly active launch plan had a schedule associated it with it, this schedule will be disabled. If the reference launch plan in this request is being set to active and has a schedule associated with it, the schedule will be enabled. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -5305,7 +5305,7 @@ def update_launch_plan(self, id_project, id_domain, id_name, id_version, body, * return data def update_launch_plan_with_http_info(self, id_project, id_domain, id_name, id_version, body, **kwargs): # noqa: E501 - """update_launch_plan # noqa: E501 + """Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 Update the status of an existing launch plan definition. At most one launch plan version for a given {project, domain, name} can be active at a time. If this call sets a launch plan to active and existing version is already active, the result of this call will be that the formerly active launch plan will be made inactive and specified launch plan in this request will be made active. In the event that the formerly active launch plan had a schedule associated it with it, this schedule will be disabled. If the reference launch plan in this request is being set to active and has a schedule associated with it, the schedule will be enabled. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -5410,7 +5410,7 @@ def update_launch_plan_with_http_info(self, id_project, id_domain, id_name, id_v collection_formats=collection_formats) def update_named_entity(self, resource_type, id_project, id_domain, id_name, body, **kwargs): # noqa: E501 - """update_named_entity # noqa: E501 + """Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 Update the fields associated with a NamedEntity # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -5436,7 +5436,7 @@ def update_named_entity(self, resource_type, id_project, id_domain, id_name, bod return data def update_named_entity_with_http_info(self, resource_type, id_project, id_domain, id_name, body, **kwargs): # noqa: E501 - """update_named_entity # noqa: E501 + """Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 Update the fields associated with a NamedEntity # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -5541,7 +5541,7 @@ def update_named_entity_with_http_info(self, resource_type, id_project, id_domai collection_formats=collection_formats) def update_project(self, id, body, **kwargs): # noqa: E501 - """flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # noqa: E501 + """Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # noqa: E501 Update a project. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -5564,7 +5564,7 @@ def update_project(self, id, body, **kwargs): # noqa: E501 return data def update_project_with_http_info(self, id, body, **kwargs): # noqa: E501 - """flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # noqa: E501 + """Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # noqa: E501 Update a project. # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -5648,7 +5648,7 @@ def update_project_with_http_info(self, id, body, **kwargs): # noqa: E501 collection_formats=collection_formats) def update_project_domain_attributes(self, attributes_project, attributes_domain, body, **kwargs): # noqa: E501 - """update_project_domain_attributes # noqa: E501 + """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 Update the customized resource attributes associated with a project-domain combination # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -5672,7 +5672,7 @@ def update_project_domain_attributes(self, attributes_project, attributes_domain return data def update_project_domain_attributes_with_http_info(self, attributes_project, attributes_domain, body, **kwargs): # noqa: E501 - """update_project_domain_attributes # noqa: E501 + """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 Update the customized resource attributes associated with a project-domain combination # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -5763,7 +5763,7 @@ def update_project_domain_attributes_with_http_info(self, attributes_project, at collection_formats=collection_formats) def update_workflow_attributes(self, attributes_project, attributes_domain, attributes_workflow, body, **kwargs): # noqa: E501 - """update_workflow_attributes # noqa: E501 + """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 Update the customized resource attributes associated with a project, domain and workflow combination # noqa: E501 This method makes a synchronous HTTP request by default. To make an @@ -5788,7 +5788,7 @@ def update_workflow_attributes(self, attributes_project, attributes_domain, attr return data def update_workflow_attributes_with_http_info(self, attributes_project, attributes_domain, attributes_workflow, body, **kwargs): # noqa: E501 - """update_workflow_attributes # noqa: E501 + """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 Update the customized resource attributes associated with a project, domain and workflow combination # noqa: E501 This method makes a synchronous HTTP request by default. To make an diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_service_api.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_service_api.py index 979434e88f9..8c984e9c39c 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_service_api.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_service_api.py @@ -32,120 +32,140 @@ def tearDown(self): def test_create_execution(self): """Test case for create_execution + Triggers the creation of a :ref:`ref_flyteidl.admin.Execution` # noqa: E501 """ pass def test_create_launch_plan(self): """Test case for create_launch_plan + Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition # noqa: E501 """ pass def test_create_node_event(self): """Test case for create_node_event + Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. # noqa: E501 """ pass def test_create_task(self): """Test case for create_task + Create and upload a :ref:`ref_flyteidl.admin.Task` definition # noqa: E501 """ pass def test_create_task_event(self): """Test case for create_task_event + Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. # noqa: E501 """ pass def test_create_workflow(self): """Test case for create_workflow + Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition # noqa: E501 """ pass def test_create_workflow_event(self): """Test case for create_workflow_event + Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. # noqa: E501 """ pass def test_delete_project_domain_attributes(self): """Test case for delete_project_domain_attributes + Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 """ pass def test_delete_workflow_attributes(self): """Test case for delete_workflow_attributes + Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 """ pass def test_get_active_launch_plan(self): """Test case for get_active_launch_plan + Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 """ pass def test_get_execution(self): """Test case for get_execution + Fetches a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 """ pass def test_get_execution_data(self): """Test case for get_execution_data + Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 """ pass def test_get_launch_plan(self): """Test case for get_launch_plan + Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. # noqa: E501 """ pass def test_get_named_entity(self): """Test case for get_named_entity + Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 """ pass def test_get_node_execution(self): """Test case for get_node_execution + Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 """ pass def test_get_node_execution_data(self): """Test case for get_node_execution_data + Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 """ pass def test_get_project_domain_attributes(self): """Test case for get_project_domain_attributes + Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 """ pass def test_get_task(self): """Test case for get_task + Fetch a :ref:`ref_flyteidl.admin.Task` definition. # noqa: E501 """ pass def test_get_task_execution(self): """Test case for get_task_execution + Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 """ pass def test_get_task_execution_data(self): """Test case for get_task_execution_data + Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 """ pass @@ -158,163 +178,189 @@ def test_get_version(self): def test_get_workflow(self): """Test case for get_workflow + Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. # noqa: E501 """ pass def test_get_workflow_attributes(self): """Test case for get_workflow_attributes + Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 """ pass def test_list_active_launch_plans(self): """Test case for list_active_launch_plans + List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 """ pass def test_list_executions(self): """Test case for list_executions + Fetch a list of :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 """ pass def test_list_launch_plan_ids(self): """Test case for list_launch_plan_ids + Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. # noqa: E501 """ pass def test_list_launch_plans(self): """Test case for list_launch_plans + Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 """ pass def test_list_launch_plans2(self): """Test case for list_launch_plans2 + Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. # noqa: E501 """ pass def test_list_matchable_attributes(self): """Test case for list_matchable_attributes + Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. # noqa: E501 """ pass def test_list_named_entities(self): """Test case for list_named_entities + Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. # noqa: E501 """ pass def test_list_node_executions(self): """Test case for list_node_executions + Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. # noqa: E501 """ pass def test_list_node_executions_for_task(self): """Test case for list_node_executions_for_task + Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 """ pass def test_list_projects(self): """Test case for list_projects + Fetches a list of :ref:`ref_flyteidl.admin.Project` # noqa: E501 """ pass def test_list_task_executions(self): """Test case for list_task_executions + Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. # noqa: E501 """ pass def test_list_task_ids(self): """Test case for list_task_ids + Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. # noqa: E501 """ pass def test_list_tasks(self): """Test case for list_tasks + Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 """ pass def test_list_tasks2(self): """Test case for list_tasks2 + Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. # noqa: E501 """ pass def test_list_workflow_ids(self): """Test case for list_workflow_ids + Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. # noqa: E501 """ pass def test_list_workflows(self): """Test case for list_workflows + Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 """ pass def test_list_workflows2(self): """Test case for list_workflows2 + Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. # noqa: E501 """ pass def test_register_project(self): """Test case for register_project + Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. # noqa: E501 """ pass def test_relaunch_execution(self): """Test case for relaunch_execution + Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` # noqa: E501 """ pass def test_terminate_execution(self): """Test case for terminate_execution + Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. # noqa: E501 """ pass def test_update_launch_plan(self): """Test case for update_launch_plan + Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. # noqa: E501 """ pass def test_update_named_entity(self): """Test case for update_named_entity + Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. # noqa: E501 """ pass def test_update_project(self): """Test case for update_project - flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # noqa: E501 + Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API. # noqa: E501 """ pass def test_update_project_domain_attributes(self): """Test case for update_project_domain_attributes + Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 """ pass def test_update_workflow_attributes(self): """Test case for update_workflow_attributes + Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. # noqa: E501 """ pass diff --git a/flyteidl/protos/docs/admin/admin.rst b/flyteidl/protos/docs/admin/admin.rst index 518790f14b6..b9e7976d029 100644 --- a/flyteidl/protos/docs/admin/admin.rst +++ b/flyteidl/protos/docs/admin/admin.rst @@ -913,6 +913,7 @@ ExecutionList ------------------------------------------------------------------ Used as a response for request to list executions. +See :ref:`ref_flyteidl.admin.Execution` for more details @@ -1121,6 +1122,7 @@ WorkflowExecutionGetDataRequest ------------------------------------------------------------------ Request structure to fetch inputs, output and other data produced by an execution. +By default this data is not returned inline in :ref:`ref_flyteidl.admin.WorkflowExecutionGetRequest` @@ -1166,6 +1168,7 @@ WorkflowExecutionGetRequest ------------------------------------------------------------------ A message used to fetch a single workflow execution entity. +See :ref:`ref_flyteidl.admin.Execution` for more details @@ -1224,6 +1227,7 @@ ActiveLaunchPlanListRequest ------------------------------------------------------------------ Represents a request structure to list active launch plans within a project/domain. +See :ref:`ref_flyteidl.admin.LaunchPlan` for more details @@ -1249,6 +1253,7 @@ ActiveLaunchPlanRequest ------------------------------------------------------------------ Represents a request struct for finding an active launch plan for a given NamedEntityIdentifier +See :ref:`ref_flyteidl.admin.LaunchPlan` for more details @@ -1385,6 +1390,7 @@ LaunchPlanList ------------------------------------------------------------------ Response object for list launch plan requests. +See :ref:`ref_flyteidl.admin.LaunchPlan` for more details @@ -1463,6 +1469,7 @@ LaunchPlanUpdateRequest ------------------------------------------------------------------ Request to set the referenced launch plan state to the configured value. +See :ref:`ref_flyteidl.admin.LaunchPlan` for more details @@ -1622,6 +1629,7 @@ ListMatchableAttributesRequest ------------------------------------------------------------------ Request all matching resource attributes for a resource type. +See :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for more details @@ -1643,6 +1651,7 @@ ListMatchableAttributesResponse ------------------------------------------------------------------ Response for a request for all matching resource attributes for a resource type. +See :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for more details @@ -1992,6 +2001,7 @@ NodeExecutionGetDataRequest ------------------------------------------------------------------ Request structure to fetch inputs and output for a node execution. +By default, these are not returned in :ref:`ref_flyteidl.admin.NodeExecutionGetRequest` @@ -2038,6 +2048,7 @@ NodeExecutionGetRequest ------------------------------------------------------------------ A message used to fetch a single node execution entity. +See :ref:`ref_flyteidl.admin.NodeExecution` for more details @@ -2059,6 +2070,7 @@ NodeExecutionList ------------------------------------------------------------------ Request structure to retrieve a list of node execution entities. +See :ref:`ref_flyteidl.admin.NodeExecution` for more details @@ -2081,6 +2093,7 @@ NodeExecutionListRequest ------------------------------------------------------------------ Represents a request structure to retrieve a list of node execution entities. +See :ref:`ref_flyteidl.admin.NodeExecution` for more details @@ -2283,7 +2296,8 @@ Top-level namespace used to classify different entities like workflows and execu ProjectListRequest ------------------------------------------------------------------ - +Request to retrieve a list of projects matching specified filters. +See :ref:`ref_flyteidl.admin.Project` for more details @@ -2307,7 +2321,8 @@ ProjectListRequest ProjectRegisterRequest ------------------------------------------------------------------ - +Adds a new user-project within the Flyte deployment. +See :ref:`ref_flyteidl.admin.Project` for more details @@ -2328,7 +2343,7 @@ ProjectRegisterRequest ProjectRegisterResponse ------------------------------------------------------------------ - +Purposefully empty, may be updated in the future. @@ -2342,7 +2357,7 @@ ProjectRegisterResponse ProjectUpdateResponse ------------------------------------------------------------------ - +Purposefully empty, may be updated in the future. @@ -2356,7 +2371,8 @@ ProjectUpdateResponse Projects ------------------------------------------------------------------ - +Represents a list of projects. +See :ref:`ref_flyteidl.admin.Project` for more details @@ -2414,7 +2430,7 @@ ProjectDomainAttributes ------------------------------------------------------------------ Defines a set of custom matching attributes which defines resource defaults for a project and domain. -For more info on matchable attributes, see - :ref:`ref_flyteidl/admin/matchable_resource.proto`. +For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` @@ -2438,6 +2454,7 @@ ProjectDomainAttributesDeleteRequest ------------------------------------------------------------------ Request to delete a set matchable project domain attribute override. +For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` @@ -2475,6 +2492,7 @@ ProjectDomainAttributesGetRequest ------------------------------------------------------------------ Request to get an individual project domain attribute override. +For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` @@ -2498,6 +2516,7 @@ ProjectDomainAttributesGetResponse ------------------------------------------------------------------ Response to get an individual project domain attribute override. +For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` @@ -2519,6 +2538,7 @@ ProjectDomainAttributesUpdateRequest ------------------------------------------------------------------ Sets custom attributes for a project-domain combination. +For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` @@ -2722,6 +2742,7 @@ TaskCreateRequest ------------------------------------------------------------------ Represents a request structure to create a revision of a task. +See :ref:`ref_flyteidl.admin.Task` for more details @@ -2760,6 +2781,7 @@ TaskList ------------------------------------------------------------------ Represents a list of tasks returned from the admin. +See :ref:`ref_flyteidl.admin.Task` for more details @@ -2879,6 +2901,7 @@ TaskExecutionGetDataRequest ------------------------------------------------------------------ Request structure to fetch inputs and output for a task execution. +By default this data is not returned inline in :ref:`ref_flyteidl.admin.TaskExecutionGetRequest` @@ -2924,6 +2947,7 @@ TaskExecutionGetRequest ------------------------------------------------------------------ A message used to fetch a single task execution entity. +See :ref:`ref_flyteidl.admin.TaskExecution` for more details @@ -2945,6 +2969,7 @@ TaskExecutionList ------------------------------------------------------------------ Response structure for a query to list of task execution entities. +See :ref:`ref_flyteidl.admin.TaskExecution` for more details @@ -2967,6 +2992,7 @@ TaskExecutionListRequest ------------------------------------------------------------------ Represents a request structure to retrieve a list of task execution entities yielded by a specific node execution. +See :ref:`ref_flyteidl.admin.TaskExecution` for more details @@ -3132,6 +3158,7 @@ WorkflowCreateRequest ------------------------------------------------------------------ Represents a request structure to create a revision of a workflow. +See :ref:`ref_flyteidl.admin.Workflow` for more details @@ -3168,6 +3195,7 @@ WorkflowList ------------------------------------------------------------------ Represents a list of workflows returned from the admin. +See :ref:`ref_flyteidl.admin.Workflow` for more details @@ -3230,7 +3258,7 @@ WorkflowAttributes ------------------------------------------------------------------ Defines a set of custom matching attributes which defines resource defaults for a project, domain and workflow. -For more info on matchable attributes, see - :ref:`ref_flyteidl/admin/matchable_resource.proto`. +For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` @@ -3255,6 +3283,7 @@ WorkflowAttributesDeleteRequest ------------------------------------------------------------------ Request to delete a set matchable workflow attribute override. +For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` @@ -3293,6 +3322,7 @@ WorkflowAttributesGetRequest ------------------------------------------------------------------ Request to get an individual workflow attribute override. +For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` @@ -3338,6 +3368,7 @@ WorkflowAttributesUpdateRequest ------------------------------------------------------------------ Sets custom attributes for a project, domain and workflow combination. +For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` diff --git a/flyteidl/protos/docs/service/service.rst b/flyteidl/protos/docs/service/service.rst index ef6b6cfa3dd..244c8257b66 100644 --- a/flyteidl/protos/docs/service/service.rst +++ b/flyteidl/protos/docs/service/service.rst @@ -32,50 +32,50 @@ Standard response codes for both are defined here: https://github.com/grpc-ecosy :header: "Method Name", "Request Type", "Response Type", "Description" :widths: auto - "CreateTask", ":ref:`ref_flyteidl.admin.TaskCreateRequest`", ":ref:`ref_flyteidl.admin.TaskCreateResponse`", "" - "GetTask", ":ref:`ref_flyteidl.admin.ObjectGetRequest`", ":ref:`ref_flyteidl.admin.Task`", "" - "ListTaskIds", ":ref:`ref_flyteidl.admin.NamedEntityIdentifierListRequest`", ":ref:`ref_flyteidl.admin.NamedEntityIdentifierList`", "" - "ListTasks", ":ref:`ref_flyteidl.admin.ResourceListRequest`", ":ref:`ref_flyteidl.admin.TaskList`", "" - "CreateWorkflow", ":ref:`ref_flyteidl.admin.WorkflowCreateRequest`", ":ref:`ref_flyteidl.admin.WorkflowCreateResponse`", "" - "GetWorkflow", ":ref:`ref_flyteidl.admin.ObjectGetRequest`", ":ref:`ref_flyteidl.admin.Workflow`", "" - "ListWorkflowIds", ":ref:`ref_flyteidl.admin.NamedEntityIdentifierListRequest`", ":ref:`ref_flyteidl.admin.NamedEntityIdentifierList`", "" - "ListWorkflows", ":ref:`ref_flyteidl.admin.ResourceListRequest`", ":ref:`ref_flyteidl.admin.WorkflowList`", "" - "CreateLaunchPlan", ":ref:`ref_flyteidl.admin.LaunchPlanCreateRequest`", ":ref:`ref_flyteidl.admin.LaunchPlanCreateResponse`", "" - "GetLaunchPlan", ":ref:`ref_flyteidl.admin.ObjectGetRequest`", ":ref:`ref_flyteidl.admin.LaunchPlan`", "" - "GetActiveLaunchPlan", ":ref:`ref_flyteidl.admin.ActiveLaunchPlanRequest`", ":ref:`ref_flyteidl.admin.LaunchPlan`", "" - "ListActiveLaunchPlans", ":ref:`ref_flyteidl.admin.ActiveLaunchPlanListRequest`", ":ref:`ref_flyteidl.admin.LaunchPlanList`", "" - "ListLaunchPlanIds", ":ref:`ref_flyteidl.admin.NamedEntityIdentifierListRequest`", ":ref:`ref_flyteidl.admin.NamedEntityIdentifierList`", "" - "ListLaunchPlans", ":ref:`ref_flyteidl.admin.ResourceListRequest`", ":ref:`ref_flyteidl.admin.LaunchPlanList`", "" - "UpdateLaunchPlan", ":ref:`ref_flyteidl.admin.LaunchPlanUpdateRequest`", ":ref:`ref_flyteidl.admin.LaunchPlanUpdateResponse`", "" - "CreateExecution", ":ref:`ref_flyteidl.admin.ExecutionCreateRequest`", ":ref:`ref_flyteidl.admin.ExecutionCreateResponse`", "" - "RelaunchExecution", ":ref:`ref_flyteidl.admin.ExecutionRelaunchRequest`", ":ref:`ref_flyteidl.admin.ExecutionCreateResponse`", "" - "GetExecution", ":ref:`ref_flyteidl.admin.WorkflowExecutionGetRequest`", ":ref:`ref_flyteidl.admin.Execution`", "" - "GetExecutionData", ":ref:`ref_flyteidl.admin.WorkflowExecutionGetDataRequest`", ":ref:`ref_flyteidl.admin.WorkflowExecutionGetDataResponse`", "" - "ListExecutions", ":ref:`ref_flyteidl.admin.ResourceListRequest`", ":ref:`ref_flyteidl.admin.ExecutionList`", "" - "TerminateExecution", ":ref:`ref_flyteidl.admin.ExecutionTerminateRequest`", ":ref:`ref_flyteidl.admin.ExecutionTerminateResponse`", "" - "GetNodeExecution", ":ref:`ref_flyteidl.admin.NodeExecutionGetRequest`", ":ref:`ref_flyteidl.admin.NodeExecution`", "" - "ListNodeExecutions", ":ref:`ref_flyteidl.admin.NodeExecutionListRequest`", ":ref:`ref_flyteidl.admin.NodeExecutionList`", "" - "ListNodeExecutionsForTask", ":ref:`ref_flyteidl.admin.NodeExecutionForTaskListRequest`", ":ref:`ref_flyteidl.admin.NodeExecutionList`", "" - "GetNodeExecutionData", ":ref:`ref_flyteidl.admin.NodeExecutionGetDataRequest`", ":ref:`ref_flyteidl.admin.NodeExecutionGetDataResponse`", "" - "RegisterProject", ":ref:`ref_flyteidl.admin.ProjectRegisterRequest`", ":ref:`ref_flyteidl.admin.ProjectRegisterResponse`", "" - "UpdateProject", ":ref:`ref_flyteidl.admin.Project`", ":ref:`ref_flyteidl.admin.ProjectUpdateResponse`", "flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API." - "ListProjects", ":ref:`ref_flyteidl.admin.ProjectListRequest`", ":ref:`ref_flyteidl.admin.Projects`", "" - "CreateWorkflowEvent", ":ref:`ref_flyteidl.admin.WorkflowExecutionEventRequest`", ":ref:`ref_flyteidl.admin.WorkflowExecutionEventResponse`", "" - "CreateNodeEvent", ":ref:`ref_flyteidl.admin.NodeExecutionEventRequest`", ":ref:`ref_flyteidl.admin.NodeExecutionEventResponse`", "" - "CreateTaskEvent", ":ref:`ref_flyteidl.admin.TaskExecutionEventRequest`", ":ref:`ref_flyteidl.admin.TaskExecutionEventResponse`", "" - "GetTaskExecution", ":ref:`ref_flyteidl.admin.TaskExecutionGetRequest`", ":ref:`ref_flyteidl.admin.TaskExecution`", "" - "ListTaskExecutions", ":ref:`ref_flyteidl.admin.TaskExecutionListRequest`", ":ref:`ref_flyteidl.admin.TaskExecutionList`", "" - "GetTaskExecutionData", ":ref:`ref_flyteidl.admin.TaskExecutionGetDataRequest`", ":ref:`ref_flyteidl.admin.TaskExecutionGetDataResponse`", "" - "UpdateProjectDomainAttributes", ":ref:`ref_flyteidl.admin.ProjectDomainAttributesUpdateRequest`", ":ref:`ref_flyteidl.admin.ProjectDomainAttributesUpdateResponse`", "" - "GetProjectDomainAttributes", ":ref:`ref_flyteidl.admin.ProjectDomainAttributesGetRequest`", ":ref:`ref_flyteidl.admin.ProjectDomainAttributesGetResponse`", "" - "DeleteProjectDomainAttributes", ":ref:`ref_flyteidl.admin.ProjectDomainAttributesDeleteRequest`", ":ref:`ref_flyteidl.admin.ProjectDomainAttributesDeleteResponse`", "" - "UpdateWorkflowAttributes", ":ref:`ref_flyteidl.admin.WorkflowAttributesUpdateRequest`", ":ref:`ref_flyteidl.admin.WorkflowAttributesUpdateResponse`", "" - "GetWorkflowAttributes", ":ref:`ref_flyteidl.admin.WorkflowAttributesGetRequest`", ":ref:`ref_flyteidl.admin.WorkflowAttributesGetResponse`", "" - "DeleteWorkflowAttributes", ":ref:`ref_flyteidl.admin.WorkflowAttributesDeleteRequest`", ":ref:`ref_flyteidl.admin.WorkflowAttributesDeleteResponse`", "" - "ListMatchableAttributes", ":ref:`ref_flyteidl.admin.ListMatchableAttributesRequest`", ":ref:`ref_flyteidl.admin.ListMatchableAttributesResponse`", "" - "ListNamedEntities", ":ref:`ref_flyteidl.admin.NamedEntityListRequest`", ":ref:`ref_flyteidl.admin.NamedEntityList`", "" - "GetNamedEntity", ":ref:`ref_flyteidl.admin.NamedEntityGetRequest`", ":ref:`ref_flyteidl.admin.NamedEntity`", "" - "UpdateNamedEntity", ":ref:`ref_flyteidl.admin.NamedEntityUpdateRequest`", ":ref:`ref_flyteidl.admin.NamedEntityUpdateResponse`", "" + "CreateTask", ":ref:`ref_flyteidl.admin.TaskCreateRequest`", ":ref:`ref_flyteidl.admin.TaskCreateResponse`", "Create and upload a :ref:`ref_flyteidl.admin.Task` definition" + "GetTask", ":ref:`ref_flyteidl.admin.ObjectGetRequest`", ":ref:`ref_flyteidl.admin.Task`", "Fetch a :ref:`ref_flyteidl.admin.Task` definition." + "ListTaskIds", ":ref:`ref_flyteidl.admin.NamedEntityIdentifierListRequest`", ":ref:`ref_flyteidl.admin.NamedEntityIdentifierList`", "Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects." + "ListTasks", ":ref:`ref_flyteidl.admin.ResourceListRequest`", ":ref:`ref_flyteidl.admin.TaskList`", "Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions." + "CreateWorkflow", ":ref:`ref_flyteidl.admin.WorkflowCreateRequest`", ":ref:`ref_flyteidl.admin.WorkflowCreateResponse`", "Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition" + "GetWorkflow", ":ref:`ref_flyteidl.admin.ObjectGetRequest`", ":ref:`ref_flyteidl.admin.Workflow`", "Fetch a :ref:`ref_flyteidl.admin.Workflow` definition." + "ListWorkflowIds", ":ref:`ref_flyteidl.admin.NamedEntityIdentifierListRequest`", ":ref:`ref_flyteidl.admin.NamedEntityIdentifierList`", "Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects." + "ListWorkflows", ":ref:`ref_flyteidl.admin.ResourceListRequest`", ":ref:`ref_flyteidl.admin.WorkflowList`", "Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions." + "CreateLaunchPlan", ":ref:`ref_flyteidl.admin.LaunchPlanCreateRequest`", ":ref:`ref_flyteidl.admin.LaunchPlanCreateResponse`", "Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition" + "GetLaunchPlan", ":ref:`ref_flyteidl.admin.ObjectGetRequest`", ":ref:`ref_flyteidl.admin.LaunchPlan`", "Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition." + "GetActiveLaunchPlan", ":ref:`ref_flyteidl.admin.ActiveLaunchPlanRequest`", ":ref:`ref_flyteidl.admin.LaunchPlan`", "Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`." + "ListActiveLaunchPlans", ":ref:`ref_flyteidl.admin.ActiveLaunchPlanListRequest`", ":ref:`ref_flyteidl.admin.LaunchPlanList`", "List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`." + "ListLaunchPlanIds", ":ref:`ref_flyteidl.admin.NamedEntityIdentifierListRequest`", ":ref:`ref_flyteidl.admin.NamedEntityIdentifierList`", "Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects." + "ListLaunchPlans", ":ref:`ref_flyteidl.admin.ResourceListRequest`", ":ref:`ref_flyteidl.admin.LaunchPlanList`", "Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions." + "UpdateLaunchPlan", ":ref:`ref_flyteidl.admin.LaunchPlanUpdateRequest`", ":ref:`ref_flyteidl.admin.LaunchPlanUpdateResponse`", "Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`." + "CreateExecution", ":ref:`ref_flyteidl.admin.ExecutionCreateRequest`", ":ref:`ref_flyteidl.admin.ExecutionCreateResponse`", "Triggers the creation of a :ref:`ref_flyteidl.admin.Execution`" + "RelaunchExecution", ":ref:`ref_flyteidl.admin.ExecutionRelaunchRequest`", ":ref:`ref_flyteidl.admin.ExecutionCreateResponse`", "Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution`" + "GetExecution", ":ref:`ref_flyteidl.admin.WorkflowExecutionGetRequest`", ":ref:`ref_flyteidl.admin.Execution`", "Fetches a :ref:`ref_flyteidl.admin.Execution`." + "GetExecutionData", ":ref:`ref_flyteidl.admin.WorkflowExecutionGetDataRequest`", ":ref:`ref_flyteidl.admin.WorkflowExecutionGetDataResponse`", "Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`." + "ListExecutions", ":ref:`ref_flyteidl.admin.ResourceListRequest`", ":ref:`ref_flyteidl.admin.ExecutionList`", "Fetch a list of :ref:`ref_flyteidl.admin.Execution`." + "TerminateExecution", ":ref:`ref_flyteidl.admin.ExecutionTerminateRequest`", ":ref:`ref_flyteidl.admin.ExecutionTerminateResponse`", "Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`." + "GetNodeExecution", ":ref:`ref_flyteidl.admin.NodeExecutionGetRequest`", ":ref:`ref_flyteidl.admin.NodeExecution`", "Fetches a :ref:`ref_flyteidl.admin.NodeExecution`." + "ListNodeExecutions", ":ref:`ref_flyteidl.admin.NodeExecutionListRequest`", ":ref:`ref_flyteidl.admin.NodeExecutionList`", "Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`." + "ListNodeExecutionsForTask", ":ref:`ref_flyteidl.admin.NodeExecutionForTaskListRequest`", ":ref:`ref_flyteidl.admin.NodeExecutionList`", "Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`." + "GetNodeExecutionData", ":ref:`ref_flyteidl.admin.NodeExecutionGetDataRequest`", ":ref:`ref_flyteidl.admin.NodeExecutionGetDataResponse`", "Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`." + "RegisterProject", ":ref:`ref_flyteidl.admin.ProjectRegisterRequest`", ":ref:`ref_flyteidl.admin.ProjectRegisterResponse`", "Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment." + "UpdateProject", ":ref:`ref_flyteidl.admin.Project`", ":ref:`ref_flyteidl.admin.ProjectUpdateResponse`", "Updates an existing :ref:`ref_flyteidl.admin.Project` flyteidl.admin.Project should be passed but the domains property should be empty; it will be ignored in the handler as domains cannot be updated via this API." + "ListProjects", ":ref:`ref_flyteidl.admin.ProjectListRequest`", ":ref:`ref_flyteidl.admin.Projects`", "Fetches a list of :ref:`ref_flyteidl.admin.Project`" + "CreateWorkflowEvent", ":ref:`ref_flyteidl.admin.WorkflowExecutionEventRequest`", ":ref:`ref_flyteidl.admin.WorkflowExecutionEventResponse`", "Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred." + "CreateNodeEvent", ":ref:`ref_flyteidl.admin.NodeExecutionEventRequest`", ":ref:`ref_flyteidl.admin.NodeExecutionEventResponse`", "Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred." + "CreateTaskEvent", ":ref:`ref_flyteidl.admin.TaskExecutionEventRequest`", ":ref:`ref_flyteidl.admin.TaskExecutionEventResponse`", "Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred." + "GetTaskExecution", ":ref:`ref_flyteidl.admin.TaskExecutionGetRequest`", ":ref:`ref_flyteidl.admin.TaskExecution`", "Fetches a :ref:`ref_flyteidl.admin.TaskExecution`." + "ListTaskExecutions", ":ref:`ref_flyteidl.admin.TaskExecutionListRequest`", ":ref:`ref_flyteidl.admin.TaskExecutionList`", "Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`." + "GetTaskExecutionData", ":ref:`ref_flyteidl.admin.TaskExecutionGetDataRequest`", ":ref:`ref_flyteidl.admin.TaskExecutionGetDataResponse`", "Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`." + "UpdateProjectDomainAttributes", ":ref:`ref_flyteidl.admin.ProjectDomainAttributesUpdateRequest`", ":ref:`ref_flyteidl.admin.ProjectDomainAttributesUpdateResponse`", "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain." + "GetProjectDomainAttributes", ":ref:`ref_flyteidl.admin.ProjectDomainAttributesGetRequest`", ":ref:`ref_flyteidl.admin.ProjectDomainAttributesGetResponse`", "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain." + "DeleteProjectDomainAttributes", ":ref:`ref_flyteidl.admin.ProjectDomainAttributesDeleteRequest`", ":ref:`ref_flyteidl.admin.ProjectDomainAttributesDeleteResponse`", "Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain." + "UpdateWorkflowAttributes", ":ref:`ref_flyteidl.admin.WorkflowAttributesUpdateRequest`", ":ref:`ref_flyteidl.admin.WorkflowAttributesUpdateResponse`", "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow." + "GetWorkflowAttributes", ":ref:`ref_flyteidl.admin.WorkflowAttributesGetRequest`", ":ref:`ref_flyteidl.admin.WorkflowAttributesGetResponse`", "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow." + "DeleteWorkflowAttributes", ":ref:`ref_flyteidl.admin.WorkflowAttributesDeleteRequest`", ":ref:`ref_flyteidl.admin.WorkflowAttributesDeleteResponse`", "Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow." + "ListMatchableAttributes", ":ref:`ref_flyteidl.admin.ListMatchableAttributesRequest`", ":ref:`ref_flyteidl.admin.ListMatchableAttributesResponse`", "Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type." + "ListNamedEntities", ":ref:`ref_flyteidl.admin.NamedEntityListRequest`", ":ref:`ref_flyteidl.admin.NamedEntityList`", "Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects." + "GetNamedEntity", ":ref:`ref_flyteidl.admin.NamedEntityGetRequest`", ":ref:`ref_flyteidl.admin.NamedEntity`", "Returns a :ref:`ref_flyteidl.admin.NamedEntity` object." + "UpdateNamedEntity", ":ref:`ref_flyteidl.admin.NamedEntityUpdateRequest`", ":ref:`ref_flyteidl.admin.NamedEntityUpdateResponse`", "Updates a :ref:`ref_flyteidl.admin.NamedEntity` object." "GetVersion", ":ref:`ref_flyteidl.admin.GetVersionRequest`", ":ref:`ref_flyteidl.admin.GetVersionResponse`", "" diff --git a/flyteidl/protos/flyteidl/admin/execution.proto b/flyteidl/protos/flyteidl/admin/execution.proto index 1afa084c50b..dd0f953e9bc 100644 --- a/flyteidl/protos/flyteidl/admin/execution.proto +++ b/flyteidl/protos/flyteidl/admin/execution.proto @@ -56,6 +56,7 @@ message ExecutionCreateResponse { } // A message used to fetch a single workflow execution entity. +// See :ref:`ref_flyteidl.admin.Execution` for more details message WorkflowExecutionGetRequest { // Uniquely identifies an individual workflow execution. core.WorkflowExecutionIdentifier id = 1; @@ -76,6 +77,7 @@ message Execution { } // Used as a response for request to list executions. +// See :ref:`ref_flyteidl.admin.Execution` for more details message ExecutionList { repeated Execution executions = 1; @@ -274,6 +276,7 @@ message ExecutionTerminateResponse { } // Request structure to fetch inputs, output and other data produced by an execution. +// By default this data is not returned inline in :ref:`ref_flyteidl.admin.WorkflowExecutionGetRequest` message WorkflowExecutionGetDataRequest { // The identifier of the execution for which to fetch inputs and outputs. core.WorkflowExecutionIdentifier id = 1; diff --git a/flyteidl/protos/flyteidl/admin/launch_plan.proto b/flyteidl/protos/flyteidl/admin/launch_plan.proto index 856fd345808..1fd47423d64 100644 --- a/flyteidl/protos/flyteidl/admin/launch_plan.proto +++ b/flyteidl/protos/flyteidl/admin/launch_plan.proto @@ -53,6 +53,7 @@ message LaunchPlan { } // Response object for list launch plan requests. +// See :ref:`ref_flyteidl.admin.LaunchPlan` for more details message LaunchPlanList { repeated LaunchPlan launch_plans = 1; @@ -150,6 +151,7 @@ message LaunchPlanMetadata { } // Request to set the referenced launch plan state to the configured value. +// See :ref:`ref_flyteidl.admin.LaunchPlan` for more details message LaunchPlanUpdateRequest { // Identifier of launch plan for which to change state. // +required. @@ -165,12 +167,14 @@ message LaunchPlanUpdateResponse { } // Represents a request struct for finding an active launch plan for a given NamedEntityIdentifier +// See :ref:`ref_flyteidl.admin.LaunchPlan` for more details message ActiveLaunchPlanRequest { // +required. NamedEntityIdentifier id = 1; } // Represents a request structure to list active launch plans within a project/domain. +// See :ref:`ref_flyteidl.admin.LaunchPlan` for more details message ActiveLaunchPlanListRequest { // Name of the project that contains the identifiers. // +required. diff --git a/flyteidl/protos/flyteidl/admin/matchable_resource.proto b/flyteidl/protos/flyteidl/admin/matchable_resource.proto index 7336b4e6896..7078ecf32d1 100644 --- a/flyteidl/protos/flyteidl/admin/matchable_resource.proto +++ b/flyteidl/protos/flyteidl/admin/matchable_resource.proto @@ -134,12 +134,14 @@ message MatchableAttributesConfiguration { } // Request all matching resource attributes for a resource type. +// See :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for more details message ListMatchableAttributesRequest { // +required MatchableResource resource_type = 1; } // Response for a request for all matching resource attributes for a resource type. +// See :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for more details message ListMatchableAttributesResponse { repeated MatchableAttributesConfiguration configurations = 1; } diff --git a/flyteidl/protos/flyteidl/admin/node_execution.proto b/flyteidl/protos/flyteidl/admin/node_execution.proto index 157fba34d97..2bc9b27205a 100644 --- a/flyteidl/protos/flyteidl/admin/node_execution.proto +++ b/flyteidl/protos/flyteidl/admin/node_execution.proto @@ -13,6 +13,7 @@ import "google/protobuf/timestamp.proto"; import "google/protobuf/duration.proto"; // A message used to fetch a single node execution entity. +// See :ref:`ref_flyteidl.admin.NodeExecution` for more details message NodeExecutionGetRequest { // Uniquely identifies an individual node execution. @@ -21,6 +22,7 @@ message NodeExecutionGetRequest { } // Represents a request structure to retrieve a list of node execution entities. +// See :ref:`ref_flyteidl.admin.NodeExecution` for more details message NodeExecutionListRequest { // Indicates the workflow execution to filter by. // +required @@ -111,6 +113,7 @@ message NodeExecutionMetaData { } // Request structure to retrieve a list of node execution entities. +// See :ref:`ref_flyteidl.admin.NodeExecution` for more details message NodeExecutionList { repeated NodeExecution node_executions = 1; @@ -177,6 +180,7 @@ message DynamicWorkflowNodeMetadata { } // Request structure to fetch inputs and output for a node execution. +// By default, these are not returned in :ref:`ref_flyteidl.admin.NodeExecutionGetRequest` message NodeExecutionGetDataRequest { // The identifier of the node execution for which to fetch inputs and outputs. core.NodeExecutionIdentifier id = 1; diff --git a/flyteidl/protos/flyteidl/admin/project.proto b/flyteidl/protos/flyteidl/admin/project.proto index 404c7a90cad..80c3da86a22 100644 --- a/flyteidl/protos/flyteidl/admin/project.proto +++ b/flyteidl/protos/flyteidl/admin/project.proto @@ -47,6 +47,8 @@ message Project { ProjectState state = 6; } +// Represents a list of projects. +// See :ref:`ref_flyteidl.admin.Project` for more details message Projects { repeated Project projects = 1; @@ -55,6 +57,8 @@ message Projects { string token = 2; } +// Request to retrieve a list of projects matching specified filters. +// See :ref:`ref_flyteidl.admin.Project` for more details message ProjectListRequest { // Indicates the number of projects to be returned. // +required @@ -75,13 +79,17 @@ message ProjectListRequest { Sort sort_by = 4; } +// Adds a new user-project within the Flyte deployment. +// See :ref:`ref_flyteidl.admin.Project` for more details message ProjectRegisterRequest { // +required Project project = 1; } +// Purposefully empty, may be updated in the future. message ProjectRegisterResponse { } +// Purposefully empty, may be updated in the future. message ProjectUpdateResponse { } diff --git a/flyteidl/protos/flyteidl/admin/project_domain_attributes.proto b/flyteidl/protos/flyteidl/admin/project_domain_attributes.proto index 11c5ad8088a..d45adaa69be 100644 --- a/flyteidl/protos/flyteidl/admin/project_domain_attributes.proto +++ b/flyteidl/protos/flyteidl/admin/project_domain_attributes.proto @@ -6,7 +6,7 @@ option go_package = "github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin"; import "flyteidl/admin/matchable_resource.proto"; // Defines a set of custom matching attributes which defines resource defaults for a project and domain. -// For more info on matchable attributes, see - :ref:`ref_flyteidl/admin/matchable_resource.proto`. +// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` message ProjectDomainAttributes { // Unique project id for which this set of attributes will be applied. string project = 1; @@ -18,6 +18,7 @@ message ProjectDomainAttributes { } // Sets custom attributes for a project-domain combination. +// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` message ProjectDomainAttributesUpdateRequest { // +required ProjectDomainAttributes attributes = 1; @@ -28,6 +29,7 @@ message ProjectDomainAttributesUpdateResponse { } // Request to get an individual project domain attribute override. +// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` message ProjectDomainAttributesGetRequest { // Unique project id which this set of attributes references. // +required @@ -43,11 +45,13 @@ message ProjectDomainAttributesGetRequest { } // Response to get an individual project domain attribute override. +// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` message ProjectDomainAttributesGetResponse { ProjectDomainAttributes attributes = 1; } // Request to delete a set matchable project domain attribute override. +// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` message ProjectDomainAttributesDeleteRequest { // Unique project id which this set of attributes references. // +required diff --git a/flyteidl/protos/flyteidl/admin/task.proto b/flyteidl/protos/flyteidl/admin/task.proto index e670f74515b..1a5ea8dce59 100644 --- a/flyteidl/protos/flyteidl/admin/task.proto +++ b/flyteidl/protos/flyteidl/admin/task.proto @@ -9,6 +9,7 @@ import "flyteidl/core/compiler.proto"; import "google/protobuf/timestamp.proto"; // Represents a request structure to create a revision of a task. +// See :ref:`ref_flyteidl.admin.Task` for more details message TaskCreateRequest { // id represents the unique identifier of the task. // +required @@ -36,6 +37,7 @@ message Task { } // Represents a list of tasks returned from the admin. +// See :ref:`ref_flyteidl.admin.Task` for more details message TaskList { // A list of tasks returned based on the request. repeated Task tasks = 1; diff --git a/flyteidl/protos/flyteidl/admin/task_execution.proto b/flyteidl/protos/flyteidl/admin/task_execution.proto index 43a012e0327..cee6175185c 100644 --- a/flyteidl/protos/flyteidl/admin/task_execution.proto +++ b/flyteidl/protos/flyteidl/admin/task_execution.proto @@ -13,6 +13,7 @@ import "google/protobuf/duration.proto"; import "google/protobuf/struct.proto"; // A message used to fetch a single task execution entity. +// See :ref:`ref_flyteidl.admin.TaskExecution` for more details message TaskExecutionGetRequest { // Unique identifier for the task execution. // +required @@ -20,6 +21,7 @@ message TaskExecutionGetRequest { } // Represents a request structure to retrieve a list of task execution entities yielded by a specific node execution. +// See :ref:`ref_flyteidl.admin.TaskExecution` for more details message TaskExecutionListRequest { // Indicates the node execution to filter by. // +required @@ -62,6 +64,7 @@ message TaskExecution { } // Response structure for a query to list of task execution entities. +// See :ref:`ref_flyteidl.admin.TaskExecution` for more details message TaskExecutionList { repeated TaskExecution task_executions = 1; @@ -112,6 +115,7 @@ message TaskExecutionClosure { } // Request structure to fetch inputs and output for a task execution. +// By default this data is not returned inline in :ref:`ref_flyteidl.admin.TaskExecutionGetRequest` message TaskExecutionGetDataRequest { // The identifier of the task execution for which to fetch inputs and outputs. // +required diff --git a/flyteidl/protos/flyteidl/admin/workflow.proto b/flyteidl/protos/flyteidl/admin/workflow.proto index 042bb6ff052..895e33b7740 100644 --- a/flyteidl/protos/flyteidl/admin/workflow.proto +++ b/flyteidl/protos/flyteidl/admin/workflow.proto @@ -9,6 +9,7 @@ import "flyteidl/core/workflow.proto"; import "google/protobuf/timestamp.proto"; // Represents a request structure to create a revision of a workflow. +// See :ref:`ref_flyteidl.admin.Workflow` for more details message WorkflowCreateRequest { // id represents the unique identifier of the workflow. // +required @@ -35,6 +36,7 @@ message Workflow { } // Represents a list of workflows returned from the admin. +// See :ref:`ref_flyteidl.admin.Workflow` for more details message WorkflowList { // A list of workflows returned based on the request. repeated Workflow workflows = 1; diff --git a/flyteidl/protos/flyteidl/admin/workflow_attributes.proto b/flyteidl/protos/flyteidl/admin/workflow_attributes.proto index 97ddb068c79..379bc6ac0d8 100644 --- a/flyteidl/protos/flyteidl/admin/workflow_attributes.proto +++ b/flyteidl/protos/flyteidl/admin/workflow_attributes.proto @@ -6,7 +6,7 @@ option go_package = "github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin"; import "flyteidl/admin/matchable_resource.proto"; // Defines a set of custom matching attributes which defines resource defaults for a project, domain and workflow. -// For more info on matchable attributes, see - :ref:`ref_flyteidl/admin/matchable_resource.proto`. +// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` message WorkflowAttributes { // Unique project id for which this set of attributes will be applied. string project = 1; @@ -21,6 +21,7 @@ message WorkflowAttributes { } // Sets custom attributes for a project, domain and workflow combination. +// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` message WorkflowAttributesUpdateRequest { WorkflowAttributes attributes = 1; } @@ -30,6 +31,7 @@ message WorkflowAttributesUpdateResponse { } // Request to get an individual workflow attribute override. +// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` message WorkflowAttributesGetRequest { // Unique project id which this set of attributes references. // +required @@ -54,6 +56,7 @@ message WorkflowAttributesGetResponse { } // Request to delete a set matchable workflow attribute override. +// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` message WorkflowAttributesDeleteRequest { // Unique project id which this set of attributes references. // +required diff --git a/flyteidl/protos/flyteidl/service/admin.proto b/flyteidl/protos/flyteidl/service/admin.proto index 105fe6cd840..9ab88f28944 100644 --- a/flyteidl/protos/flyteidl/service/admin.proto +++ b/flyteidl/protos/flyteidl/service/admin.proto @@ -22,6 +22,7 @@ import "protoc-gen-swagger/options/annotations.proto"; // The following defines an RPC service that is also served over HTTP via grpc-gateway. // Standard response codes for both are defined here: https://github.com/grpc-ecosystem/grpc-gateway/blob/master/runtime/errors.go service AdminService { + // Create and upload a :ref:`ref_flyteidl.admin.Task` definition rpc CreateTask (flyteidl.admin.TaskCreateRequest) returns (flyteidl.admin.TaskCreateResponse) { option (google.api.http) = { post: "/api/v1/tasks" @@ -44,6 +45,7 @@ service AdminService { }; } + // Fetch a :ref:`ref_flyteidl.admin.Task` definition. rpc GetTask (flyteidl.admin.ObjectGetRequest) returns (flyteidl.admin.Task) { option (google.api.http) = { get: "/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}" @@ -53,6 +55,7 @@ service AdminService { }; } + // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of task objects. rpc ListTaskIds (flyteidl.admin.NamedEntityIdentifierListRequest) returns (flyteidl.admin.NamedEntityIdentifierList) { option (google.api.http) = { get: "/api/v1/task_ids/{project}/{domain}" @@ -62,6 +65,7 @@ service AdminService { }; } + // Fetch a list of :ref:`ref_flyteidl.admin.Task` definitions. rpc ListTasks (flyteidl.admin.ResourceListRequest) returns (flyteidl.admin.TaskList) { option (google.api.http) = { get: "/api/v1/tasks/{id.project}/{id.domain}/{id.name}" @@ -74,6 +78,7 @@ service AdminService { }; } + // Create and upload a :ref:`ref_flyteidl.admin.Workflow` definition rpc CreateWorkflow (flyteidl.admin.WorkflowCreateRequest) returns (flyteidl.admin.WorkflowCreateResponse) { option (google.api.http) = { post: "/api/v1/workflows" @@ -96,6 +101,7 @@ service AdminService { }; } + // Fetch a :ref:`ref_flyteidl.admin.Workflow` definition. rpc GetWorkflow (flyteidl.admin.ObjectGetRequest) returns (flyteidl.admin.Workflow) { option (google.api.http) = { get: "/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}" @@ -105,6 +111,7 @@ service AdminService { }; } + // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of workflow objects. rpc ListWorkflowIds (flyteidl.admin.NamedEntityIdentifierListRequest) returns (flyteidl.admin.NamedEntityIdentifierList) { option (google.api.http) = { get: "/api/v1/workflow_ids/{project}/{domain}" @@ -114,6 +121,7 @@ service AdminService { }; } + // Fetch a list of :ref:`ref_flyteidl.admin.Workflow` definitions. rpc ListWorkflows (flyteidl.admin.ResourceListRequest) returns (flyteidl.admin.WorkflowList) { option (google.api.http) = { get: "/api/v1/workflows/{id.project}/{id.domain}/{id.name}" @@ -126,6 +134,7 @@ service AdminService { }; } + // Create and upload a :ref:`ref_flyteidl.admin.LaunchPlan` definition rpc CreateLaunchPlan (flyteidl.admin.LaunchPlanCreateRequest) returns (flyteidl.admin.LaunchPlanCreateResponse) { option (google.api.http) = { post: "/api/v1/launch_plans" @@ -148,6 +157,7 @@ service AdminService { }; } + // Fetch a :ref:`ref_flyteidl.admin.LaunchPlan` definition. rpc GetLaunchPlan (flyteidl.admin.ObjectGetRequest) returns (flyteidl.admin.LaunchPlan) { option (google.api.http) = { get: "/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}" @@ -157,6 +167,7 @@ service AdminService { }; } + // Fetch the active version of a :ref:`ref_flyteidl.admin.LaunchPlan`. rpc GetActiveLaunchPlan (flyteidl.admin.ActiveLaunchPlanRequest) returns (flyteidl.admin.LaunchPlan) { option (google.api.http) = { get: "/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}" @@ -166,6 +177,7 @@ service AdminService { }; } + // List active versions of :ref:`ref_flyteidl.admin.LaunchPlan`. rpc ListActiveLaunchPlans (flyteidl.admin.ActiveLaunchPlanListRequest) returns (flyteidl.admin.LaunchPlanList) { option (google.api.http) = { get: "/api/v1/active_launch_plans/{project}/{domain}" @@ -175,6 +187,7 @@ service AdminService { }; } + // Fetch a list of :ref:`ref_flyteidl.admin.NamedEntityIdentifier` of launch plan objects. rpc ListLaunchPlanIds (flyteidl.admin.NamedEntityIdentifierListRequest) returns (flyteidl.admin.NamedEntityIdentifierList) { option (google.api.http) = { get: "/api/v1/launch_plan_ids/{project}/{domain}" @@ -184,6 +197,7 @@ service AdminService { }; } + // Fetch a list of :ref:`ref_flyteidl.admin.LaunchPlan` definitions. rpc ListLaunchPlans (flyteidl.admin.ResourceListRequest) returns (flyteidl.admin.LaunchPlanList) { option (google.api.http) = { get: "/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}" @@ -196,6 +210,7 @@ service AdminService { }; } + // Updates the status of a registered :ref:`ref_flyteidl.admin.LaunchPlan`. rpc UpdateLaunchPlan (flyteidl.admin.LaunchPlanUpdateRequest) returns (flyteidl.admin.LaunchPlanUpdateResponse) { option (google.api.http) = { put: "/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}" @@ -211,6 +226,7 @@ service AdminService { }; } + // Triggers the creation of a :ref:`ref_flyteidl.admin.Execution` rpc CreateExecution (flyteidl.admin.ExecutionCreateRequest) returns (flyteidl.admin.ExecutionCreateResponse) { option (google.api.http) = { post: "/api/v1/executions" @@ -221,6 +237,7 @@ service AdminService { }; } + // Triggers the creation of an identical :ref:`ref_flyteidl.admin.Execution` rpc RelaunchExecution (flyteidl.admin.ExecutionRelaunchRequest) returns (flyteidl.admin.ExecutionCreateResponse) { option (google.api.http) = { post: "/api/v1/executions/relaunch" @@ -231,6 +248,7 @@ service AdminService { }; } + // Fetches a :ref:`ref_flyteidl.admin.Execution`. rpc GetExecution (flyteidl.admin.WorkflowExecutionGetRequest) returns (flyteidl.admin.Execution) { option (google.api.http) = { get: "/api/v1/executions/{id.project}/{id.domain}/{id.name}" @@ -240,6 +258,7 @@ service AdminService { }; } + // Fetches input and output data for a :ref:`ref_flyteidl.admin.Execution`. rpc GetExecutionData (flyteidl.admin.WorkflowExecutionGetDataRequest) returns (flyteidl.admin.WorkflowExecutionGetDataResponse) { option (google.api.http) = { get: "/api/v1/data/executions/{id.project}/{id.domain}/{id.name}" @@ -249,6 +268,7 @@ service AdminService { }; }; + // Fetch a list of :ref:`ref_flyteidl.admin.Execution`. rpc ListExecutions (flyteidl.admin.ResourceListRequest) returns (flyteidl.admin.ExecutionList) { option (google.api.http) = { get: "/api/v1/executions/{id.project}/{id.domain}" @@ -258,6 +278,7 @@ service AdminService { }; } + // Terminates an in-progress :ref:`ref_flyteidl.admin.Execution`. rpc TerminateExecution (flyteidl.admin.ExecutionTerminateRequest) returns (flyteidl.admin.ExecutionTerminateResponse) { option (google.api.http) = { delete: "/api/v1/executions/{id.project}/{id.domain}/{id.name}" @@ -268,6 +289,7 @@ service AdminService { }; } + // Fetches a :ref:`ref_flyteidl.admin.NodeExecution`. rpc GetNodeExecution (flyteidl.admin.NodeExecutionGetRequest) returns (flyteidl.admin.NodeExecution) { option (google.api.http) = { get: "/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}" @@ -277,6 +299,7 @@ service AdminService { }; } + // Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution`. rpc ListNodeExecutions (flyteidl.admin.NodeExecutionListRequest) returns (flyteidl.admin.NodeExecutionList) { option (google.api.http) = { get: "/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}" @@ -286,6 +309,7 @@ service AdminService { }; } + // Fetch a list of :ref:`ref_flyteidl.admin.NodeExecution` launched by the reference :ref:`ref_flyteidl.admin.TaskExecution`. rpc ListNodeExecutionsForTask (flyteidl.admin.NodeExecutionForTaskListRequest) returns (flyteidl.admin.NodeExecutionList) { option (google.api.http) = { get: "/api/v1/children/task_executions/{task_execution_id.node_execution_id.execution_id.project}/{task_execution_id.node_execution_id.execution_id.domain}/{task_execution_id.node_execution_id.execution_id.name}/{task_execution_id.node_execution_id.node_id}/{task_execution_id.task_id.project}/{task_execution_id.task_id.domain}/{task_execution_id.task_id.name}/{task_execution_id.task_id.version}/{task_execution_id.retry_attempt}" @@ -295,6 +319,7 @@ service AdminService { }; } + // Fetches input and output data for a :ref:`ref_flyteidl.admin.NodeExecution`. rpc GetNodeExecutionData (flyteidl.admin.NodeExecutionGetDataRequest) returns (flyteidl.admin.NodeExecutionGetDataResponse) { option (google.api.http) = { get: "/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}" @@ -304,6 +329,7 @@ service AdminService { }; }; + // Registers a :ref:`ref_flyteidl.admin.Project` with the Flyte deployment. rpc RegisterProject (flyteidl.admin.ProjectRegisterRequest) returns (flyteidl.admin.ProjectRegisterResponse) { option (google.api.http) = { post: "/api/v1/projects" @@ -314,6 +340,7 @@ service AdminService { }; } + // Updates an existing :ref:`ref_flyteidl.admin.Project` // flyteidl.admin.Project should be passed but the domains property should be empty; // it will be ignored in the handler as domains cannot be updated via this API. rpc UpdateProject (flyteidl.admin.Project) returns (flyteidl.admin.ProjectUpdateResponse) { @@ -326,6 +353,7 @@ service AdminService { }; } + // Fetches a list of :ref:`ref_flyteidl.admin.Project` rpc ListProjects (flyteidl.admin.ProjectListRequest) returns (flyteidl.admin.Projects) { option (google.api.http) = { get: "/api/v1/projects" @@ -335,6 +363,7 @@ service AdminService { }; } + // Indicates a :ref:`ref_flyteidl.event.WorkflowExecutionEvent` has occurred. rpc CreateWorkflowEvent (flyteidl.admin.WorkflowExecutionEventRequest) returns (flyteidl.admin.WorkflowExecutionEventResponse) { option (google.api.http) = { post: "/api/v1/events/workflows" @@ -345,6 +374,7 @@ service AdminService { }; } + // Indicates a :ref:`ref_flyteidl.event.NodeExecutionEvent` has occurred. rpc CreateNodeEvent (flyteidl.admin.NodeExecutionEventRequest) returns (flyteidl.admin.NodeExecutionEventResponse) { option (google.api.http) = { post: "/api/v1/events/nodes" @@ -355,6 +385,7 @@ service AdminService { }; } + // Indicates a :ref:`ref_flyteidl.event.TaskExecutionEvent` has occurred. rpc CreateTaskEvent (flyteidl.admin.TaskExecutionEventRequest) returns (flyteidl.admin.TaskExecutionEventResponse) { option (google.api.http) = { post: "/api/v1/events/tasks" @@ -365,6 +396,7 @@ service AdminService { }; } + // Fetches a :ref:`ref_flyteidl.admin.TaskExecution`. rpc GetTaskExecution (flyteidl.admin.TaskExecutionGetRequest) returns (flyteidl.admin.TaskExecution) { option (google.api.http) = { get: "/api/v1/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}" @@ -374,6 +406,7 @@ service AdminService { }; } + // Fetches a list of :ref:`ref_flyteidl.admin.TaskExecution`. rpc ListTaskExecutions (flyteidl.admin.TaskExecutionListRequest) returns (flyteidl.admin.TaskExecutionList) { option (google.api.http) = { get: "/api/v1/task_executions/{node_execution_id.execution_id.project}/{node_execution_id.execution_id.domain}/{node_execution_id.execution_id.name}/{node_execution_id.node_id}" @@ -384,6 +417,7 @@ service AdminService { } + // Fetches input and output data for a :ref:`ref_flyteidl.admin.TaskExecution`. rpc GetTaskExecutionData (flyteidl.admin.TaskExecutionGetDataRequest) returns (flyteidl.admin.TaskExecutionGetDataResponse) { option (google.api.http) = { get: "/api/v1/data/task_executions/{id.node_execution_id.execution_id.project}/{id.node_execution_id.execution_id.domain}/{id.node_execution_id.execution_id.name}/{id.node_execution_id.node_id}/{id.task_id.project}/{id.task_id.domain}/{id.task_id.name}/{id.task_id.version}/{id.retry_attempt}" @@ -393,6 +427,7 @@ service AdminService { }; } + // Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. rpc UpdateProjectDomainAttributes (flyteidl.admin.ProjectDomainAttributesUpdateRequest) returns (flyteidl.admin.ProjectDomainAttributesUpdateResponse) { option (google.api.http) = { put: "/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}" @@ -403,6 +438,7 @@ service AdminService { }; } + // Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. rpc GetProjectDomainAttributes (flyteidl.admin.ProjectDomainAttributesGetRequest) returns (flyteidl.admin.ProjectDomainAttributesGetResponse) { option (google.api.http) = { get: "/api/v1/project_domain_attributes/{project}/{domain}" @@ -412,6 +448,7 @@ service AdminService { }; } + // Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. rpc DeleteProjectDomainAttributes (flyteidl.admin.ProjectDomainAttributesDeleteRequest) returns (flyteidl.admin.ProjectDomainAttributesDeleteResponse) { option (google.api.http) = { delete: "/api/v1/project_domain_attributes/{project}/{domain}" @@ -422,6 +459,7 @@ service AdminService { }; } + // Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. rpc UpdateWorkflowAttributes (flyteidl.admin.WorkflowAttributesUpdateRequest) returns (flyteidl.admin.WorkflowAttributesUpdateResponse) { option (google.api.http) = { put: "/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}" @@ -432,6 +470,7 @@ service AdminService { }; } + // Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. rpc GetWorkflowAttributes (flyteidl.admin.WorkflowAttributesGetRequest) returns (flyteidl.admin.WorkflowAttributesGetResponse) { option (google.api.http) = { get: "/api/v1/workflow_attributes/{project}/{domain}/{workflow}" @@ -441,6 +480,7 @@ service AdminService { }; } + // Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project, domain and workflow. rpc DeleteWorkflowAttributes (flyteidl.admin.WorkflowAttributesDeleteRequest) returns (flyteidl.admin.WorkflowAttributesDeleteResponse) { option (google.api.http) = { delete: "/api/v1/workflow_attributes/{project}/{domain}/{workflow}" @@ -451,6 +491,7 @@ service AdminService { }; } + // Lists custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a specific resource type. rpc ListMatchableAttributes (flyteidl.admin.ListMatchableAttributesRequest) returns (flyteidl.admin.ListMatchableAttributesResponse) { option (google.api.http) = { get: "/api/v1/matchable_attributes" @@ -460,7 +501,7 @@ service AdminService { }; } - + // Returns a list of :ref:`ref_flyteidl.admin.NamedEntity` objects. rpc ListNamedEntities (flyteidl.admin.NamedEntityListRequest) returns (flyteidl.admin.NamedEntityList) { option (google.api.http) = { get: "/api/v1/named_entities/{resource_type}/{project}/{domain}" @@ -470,6 +511,7 @@ service AdminService { }; } + // Returns a :ref:`ref_flyteidl.admin.NamedEntity` object. rpc GetNamedEntity (flyteidl.admin.NamedEntityGetRequest) returns (flyteidl.admin.NamedEntity) { option (google.api.http) = { get: "/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}" @@ -479,6 +521,7 @@ service AdminService { }; } + // Updates a :ref:`ref_flyteidl.admin.NamedEntity` object. rpc UpdateNamedEntity (flyteidl.admin.NamedEntityUpdateRequest) returns (flyteidl.admin.NamedEntityUpdateResponse) { option (google.api.http) = { put: "/api/v1/named_entities/{resource_type}/{id.project}/{id.domain}/{id.name}"