From facc102bf94d2eab554904be549c2b79349e6e72 Mon Sep 17 00:00:00 2001 From: Yee Hing Tong Date: Thu, 29 Sep 2022 10:39:30 -0700 Subject: [PATCH] Project level attributes via matchable resource (#320) * copy pasta Signed-off-by: Yee Hing Tong * generate Signed-off-by: Yee Hing Tong * fix comment Signed-off-by: Yee Hing Tong Signed-off-by: Yee Hing Tong --- flyteidl/.swagger-codegen-ignore | 0 .../go/admin/mocks/AdminServiceClient.go | 144 + .../go/admin/mocks/AdminServiceServer.go | 123 + .../admin/project_attributes.grpc.pb.cc | 24 + .../admin/project_attributes.grpc.pb.h | 47 + .../flyteidl/admin/project_attributes.pb.cc | 2361 +++++++++ .../flyteidl/admin/project_attributes.pb.h | 1308 +++++ .../pb-cpp/flyteidl/service/admin.grpc.pb.cc | 156 +- .../pb-cpp/flyteidl/service/admin.grpc.pb.h | 644 ++- .../gen/pb-cpp/flyteidl/service/admin.pb.cc | 721 +-- .../gen/pb-cpp/flyteidl/service/admin.pb.h | 1 + .../gen/pb-go/flyteidl/admin/project.pb.go | 2 +- .../flyteidl/admin/project_attributes.pb.go | 362 ++ .../admin/project_attributes.pb.validate.go | 552 ++ .../admin/project_attributes.swagger.json | 19 + .../gen/pb-go/flyteidl/service/admin.pb.go | 535 +- .../gen/pb-go/flyteidl/service/admin.pb.gw.go | 180 + .../pb-go/flyteidl/service/admin.swagger.json | 169 +- .../flyteidl/service/flyteadmin/README.md | 9 + .../service/flyteadmin/api/swagger.yaml | 387 +- .../service/flyteadmin/api_admin_service.go | 283 + .../service/flyteadmin/model_admin_project.go | 2 +- .../model_admin_project_attributes.go | 16 + ...admin_project_attributes_delete_request.go | 15 + ...dmin_project_attributes_delete_response.go | 14 + ...l_admin_project_attributes_get_response.go | 14 + ...admin_project_attributes_update_request.go | 14 + ...dmin_project_attributes_update_response.go | 14 + .../gen/pb-go/flyteidl/service/openapi.go | 4 +- .../admin/ProjectAttributesOuterClass.java | 4545 +++++++++++++++++ .../flyteidl/admin/ProjectOuterClass.java | 30 +- .../gen/pb-java/flyteidl/service/Admin.java | 716 +-- flyteidl/gen/pb-js/flyteidl.d.ts | 433 ++ flyteidl/gen/pb-js/flyteidl.js | 914 ++++ .../flyteidl/admin/project_attributes_pb2.py | 319 ++ .../admin/project_attributes_pb2_grpc.py | 3 + .../pb_python/flyteidl/service/admin_pb2.py | 52 +- .../flyteidl/service/admin_pb2_grpc.py | 52 + .../flyteidl/service/flyteadmin/README.md | 9 + .../service/flyteadmin/flyteadmin/__init__.py | 6 + .../flyteadmin/api/admin_service_api.py | 317 ++ .../flyteadmin/flyteadmin/models/__init__.py | 6 + .../flyteadmin/models/admin_project.py | 4 +- .../models/admin_project_attributes.py | 145 + ...admin_project_attributes_delete_request.py | 143 + ...dmin_project_attributes_delete_response.py | 87 + .../admin_project_attributes_get_response.py | 117 + ...admin_project_attributes_update_request.py | 117 + ...dmin_project_attributes_update_response.py | 87 + .../test/test_admin_project_attributes.py | 40 + ...admin_project_attributes_delete_request.py | 40 + ...dmin_project_attributes_delete_response.py | 40 + ...t_admin_project_attributes_get_response.py | 40 + ...admin_project_attributes_update_request.py | 40 + ...dmin_project_attributes_update_response.py | 40 + .../flyteadmin/test/test_admin_service_api.py | 21 + flyteidl/protos/docs/admin/admin.rst | 169 +- flyteidl/protos/docs/service/service.rst | 3 + flyteidl/protos/flyteidl/admin/project.proto | 2 +- .../flyteidl/admin/project_attributes.proto | 60 + flyteidl/protos/flyteidl/service/admin.proto | 32 + 61 files changed, 15717 insertions(+), 1032 deletions(-) create mode 100644 flyteidl/.swagger-codegen-ignore create mode 100644 flyteidl/gen/pb-cpp/flyteidl/admin/project_attributes.grpc.pb.cc create mode 100644 flyteidl/gen/pb-cpp/flyteidl/admin/project_attributes.grpc.pb.h create mode 100644 flyteidl/gen/pb-cpp/flyteidl/admin/project_attributes.pb.cc create mode 100644 flyteidl/gen/pb-cpp/flyteidl/admin/project_attributes.pb.h create mode 100644 flyteidl/gen/pb-go/flyteidl/admin/project_attributes.pb.go create mode 100644 flyteidl/gen/pb-go/flyteidl/admin/project_attributes.pb.validate.go create mode 100644 flyteidl/gen/pb-go/flyteidl/admin/project_attributes.swagger.json create mode 100644 flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes.go create mode 100644 flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes_delete_request.go create mode 100644 flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes_delete_response.go create mode 100644 flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes_get_response.go create mode 100644 flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes_update_request.go create mode 100644 flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes_update_response.go create mode 100644 flyteidl/gen/pb-java/flyteidl/admin/ProjectAttributesOuterClass.java create mode 100644 flyteidl/gen/pb_python/flyteidl/admin/project_attributes_pb2.py create mode 100644 flyteidl/gen/pb_python/flyteidl/admin/project_attributes_pb2_grpc.py create mode 100644 flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes.py create mode 100644 flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes_delete_request.py create mode 100644 flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes_delete_response.py create mode 100644 flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes_get_response.py create mode 100644 flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes_update_request.py create mode 100644 flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes_update_response.py create mode 100644 flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_attributes.py create mode 100644 flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_attributes_delete_request.py create mode 100644 flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_attributes_delete_response.py create mode 100644 flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_attributes_get_response.py create mode 100644 flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_attributes_update_request.py create mode 100644 flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_attributes_update_response.py create mode 100644 flyteidl/protos/flyteidl/admin/project_attributes.proto diff --git a/flyteidl/.swagger-codegen-ignore b/flyteidl/.swagger-codegen-ignore new file mode 100644 index 0000000000..e69de29bb2 diff --git a/flyteidl/clients/go/admin/mocks/AdminServiceClient.go b/flyteidl/clients/go/admin/mocks/AdminServiceClient.go index 5f473b8a3a..d63a1bf3d2 100644 --- a/flyteidl/clients/go/admin/mocks/AdminServiceClient.go +++ b/flyteidl/clients/go/admin/mocks/AdminServiceClient.go @@ -353,6 +353,54 @@ func (_m *AdminServiceClient) CreateWorkflowEvent(ctx context.Context, in *admin return r0, r1 } +type AdminServiceClient_DeleteProjectAttributes struct { + *mock.Call +} + +func (_m AdminServiceClient_DeleteProjectAttributes) Return(_a0 *admin.ProjectAttributesDeleteResponse, _a1 error) *AdminServiceClient_DeleteProjectAttributes { + return &AdminServiceClient_DeleteProjectAttributes{Call: _m.Call.Return(_a0, _a1)} +} + +func (_m *AdminServiceClient) OnDeleteProjectAttributes(ctx context.Context, in *admin.ProjectAttributesDeleteRequest, opts ...grpc.CallOption) *AdminServiceClient_DeleteProjectAttributes { + c_call := _m.On("DeleteProjectAttributes", ctx, in, opts) + return &AdminServiceClient_DeleteProjectAttributes{Call: c_call} +} + +func (_m *AdminServiceClient) OnDeleteProjectAttributesMatch(matchers ...interface{}) *AdminServiceClient_DeleteProjectAttributes { + c_call := _m.On("DeleteProjectAttributes", matchers...) + return &AdminServiceClient_DeleteProjectAttributes{Call: c_call} +} + +// DeleteProjectAttributes provides a mock function with given fields: ctx, in, opts +func (_m *AdminServiceClient) DeleteProjectAttributes(ctx context.Context, in *admin.ProjectAttributesDeleteRequest, opts ...grpc.CallOption) (*admin.ProjectAttributesDeleteResponse, error) { + _va := make([]interface{}, len(opts)) + for _i := range opts { + _va[_i] = opts[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, in) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + var r0 *admin.ProjectAttributesDeleteResponse + if rf, ok := ret.Get(0).(func(context.Context, *admin.ProjectAttributesDeleteRequest, ...grpc.CallOption) *admin.ProjectAttributesDeleteResponse); ok { + r0 = rf(ctx, in, opts...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*admin.ProjectAttributesDeleteResponse) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *admin.ProjectAttributesDeleteRequest, ...grpc.CallOption) error); ok { + r1 = rf(ctx, in, opts...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + type AdminServiceClient_DeleteProjectDomainAttributes struct { *mock.Call } @@ -785,6 +833,54 @@ func (_m *AdminServiceClient) GetNodeExecutionData(ctx context.Context, in *admi return r0, r1 } +type AdminServiceClient_GetProjectAttributes struct { + *mock.Call +} + +func (_m AdminServiceClient_GetProjectAttributes) Return(_a0 *admin.ProjectAttributesGetResponse, _a1 error) *AdminServiceClient_GetProjectAttributes { + return &AdminServiceClient_GetProjectAttributes{Call: _m.Call.Return(_a0, _a1)} +} + +func (_m *AdminServiceClient) OnGetProjectAttributes(ctx context.Context, in *admin.ProjectAttributesGetRequest, opts ...grpc.CallOption) *AdminServiceClient_GetProjectAttributes { + c_call := _m.On("GetProjectAttributes", ctx, in, opts) + return &AdminServiceClient_GetProjectAttributes{Call: c_call} +} + +func (_m *AdminServiceClient) OnGetProjectAttributesMatch(matchers ...interface{}) *AdminServiceClient_GetProjectAttributes { + c_call := _m.On("GetProjectAttributes", matchers...) + return &AdminServiceClient_GetProjectAttributes{Call: c_call} +} + +// GetProjectAttributes provides a mock function with given fields: ctx, in, opts +func (_m *AdminServiceClient) GetProjectAttributes(ctx context.Context, in *admin.ProjectAttributesGetRequest, opts ...grpc.CallOption) (*admin.ProjectAttributesGetResponse, error) { + _va := make([]interface{}, len(opts)) + for _i := range opts { + _va[_i] = opts[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, in) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + var r0 *admin.ProjectAttributesGetResponse + if rf, ok := ret.Get(0).(func(context.Context, *admin.ProjectAttributesGetRequest, ...grpc.CallOption) *admin.ProjectAttributesGetResponse); ok { + r0 = rf(ctx, in, opts...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*admin.ProjectAttributesGetResponse) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *admin.ProjectAttributesGetRequest, ...grpc.CallOption) error); ok { + r1 = rf(ctx, in, opts...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + type AdminServiceClient_GetProjectDomainAttributes struct { *mock.Call } @@ -2177,6 +2273,54 @@ func (_m *AdminServiceClient) UpdateProject(ctx context.Context, in *admin.Proje return r0, r1 } +type AdminServiceClient_UpdateProjectAttributes struct { + *mock.Call +} + +func (_m AdminServiceClient_UpdateProjectAttributes) Return(_a0 *admin.ProjectAttributesUpdateResponse, _a1 error) *AdminServiceClient_UpdateProjectAttributes { + return &AdminServiceClient_UpdateProjectAttributes{Call: _m.Call.Return(_a0, _a1)} +} + +func (_m *AdminServiceClient) OnUpdateProjectAttributes(ctx context.Context, in *admin.ProjectAttributesUpdateRequest, opts ...grpc.CallOption) *AdminServiceClient_UpdateProjectAttributes { + c_call := _m.On("UpdateProjectAttributes", ctx, in, opts) + return &AdminServiceClient_UpdateProjectAttributes{Call: c_call} +} + +func (_m *AdminServiceClient) OnUpdateProjectAttributesMatch(matchers ...interface{}) *AdminServiceClient_UpdateProjectAttributes { + c_call := _m.On("UpdateProjectAttributes", matchers...) + return &AdminServiceClient_UpdateProjectAttributes{Call: c_call} +} + +// UpdateProjectAttributes provides a mock function with given fields: ctx, in, opts +func (_m *AdminServiceClient) UpdateProjectAttributes(ctx context.Context, in *admin.ProjectAttributesUpdateRequest, opts ...grpc.CallOption) (*admin.ProjectAttributesUpdateResponse, error) { + _va := make([]interface{}, len(opts)) + for _i := range opts { + _va[_i] = opts[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, in) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + var r0 *admin.ProjectAttributesUpdateResponse + if rf, ok := ret.Get(0).(func(context.Context, *admin.ProjectAttributesUpdateRequest, ...grpc.CallOption) *admin.ProjectAttributesUpdateResponse); ok { + r0 = rf(ctx, in, opts...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*admin.ProjectAttributesUpdateResponse) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *admin.ProjectAttributesUpdateRequest, ...grpc.CallOption) error); ok { + r1 = rf(ctx, in, opts...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + type AdminServiceClient_UpdateProjectDomainAttributes struct { *mock.Call } diff --git a/flyteidl/clients/go/admin/mocks/AdminServiceServer.go b/flyteidl/clients/go/admin/mocks/AdminServiceServer.go index aba0a6aff8..ba57644391 100644 --- a/flyteidl/clients/go/admin/mocks/AdminServiceServer.go +++ b/flyteidl/clients/go/admin/mocks/AdminServiceServer.go @@ -302,6 +302,47 @@ func (_m *AdminServiceServer) CreateWorkflowEvent(_a0 context.Context, _a1 *admi return r0, r1 } +type AdminServiceServer_DeleteProjectAttributes struct { + *mock.Call +} + +func (_m AdminServiceServer_DeleteProjectAttributes) Return(_a0 *admin.ProjectAttributesDeleteResponse, _a1 error) *AdminServiceServer_DeleteProjectAttributes { + return &AdminServiceServer_DeleteProjectAttributes{Call: _m.Call.Return(_a0, _a1)} +} + +func (_m *AdminServiceServer) OnDeleteProjectAttributes(_a0 context.Context, _a1 *admin.ProjectAttributesDeleteRequest) *AdminServiceServer_DeleteProjectAttributes { + c_call := _m.On("DeleteProjectAttributes", _a0, _a1) + return &AdminServiceServer_DeleteProjectAttributes{Call: c_call} +} + +func (_m *AdminServiceServer) OnDeleteProjectAttributesMatch(matchers ...interface{}) *AdminServiceServer_DeleteProjectAttributes { + c_call := _m.On("DeleteProjectAttributes", matchers...) + return &AdminServiceServer_DeleteProjectAttributes{Call: c_call} +} + +// DeleteProjectAttributes provides a mock function with given fields: _a0, _a1 +func (_m *AdminServiceServer) DeleteProjectAttributes(_a0 context.Context, _a1 *admin.ProjectAttributesDeleteRequest) (*admin.ProjectAttributesDeleteResponse, error) { + ret := _m.Called(_a0, _a1) + + var r0 *admin.ProjectAttributesDeleteResponse + if rf, ok := ret.Get(0).(func(context.Context, *admin.ProjectAttributesDeleteRequest) *admin.ProjectAttributesDeleteResponse); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*admin.ProjectAttributesDeleteResponse) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *admin.ProjectAttributesDeleteRequest) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + type AdminServiceServer_DeleteProjectDomainAttributes struct { *mock.Call } @@ -671,6 +712,47 @@ func (_m *AdminServiceServer) GetNodeExecutionData(_a0 context.Context, _a1 *adm return r0, r1 } +type AdminServiceServer_GetProjectAttributes struct { + *mock.Call +} + +func (_m AdminServiceServer_GetProjectAttributes) Return(_a0 *admin.ProjectAttributesGetResponse, _a1 error) *AdminServiceServer_GetProjectAttributes { + return &AdminServiceServer_GetProjectAttributes{Call: _m.Call.Return(_a0, _a1)} +} + +func (_m *AdminServiceServer) OnGetProjectAttributes(_a0 context.Context, _a1 *admin.ProjectAttributesGetRequest) *AdminServiceServer_GetProjectAttributes { + c_call := _m.On("GetProjectAttributes", _a0, _a1) + return &AdminServiceServer_GetProjectAttributes{Call: c_call} +} + +func (_m *AdminServiceServer) OnGetProjectAttributesMatch(matchers ...interface{}) *AdminServiceServer_GetProjectAttributes { + c_call := _m.On("GetProjectAttributes", matchers...) + return &AdminServiceServer_GetProjectAttributes{Call: c_call} +} + +// GetProjectAttributes provides a mock function with given fields: _a0, _a1 +func (_m *AdminServiceServer) GetProjectAttributes(_a0 context.Context, _a1 *admin.ProjectAttributesGetRequest) (*admin.ProjectAttributesGetResponse, error) { + ret := _m.Called(_a0, _a1) + + var r0 *admin.ProjectAttributesGetResponse + if rf, ok := ret.Get(0).(func(context.Context, *admin.ProjectAttributesGetRequest) *admin.ProjectAttributesGetResponse); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*admin.ProjectAttributesGetResponse) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *admin.ProjectAttributesGetRequest) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + type AdminServiceServer_GetProjectDomainAttributes struct { *mock.Call } @@ -1860,6 +1942,47 @@ func (_m *AdminServiceServer) UpdateProject(_a0 context.Context, _a1 *admin.Proj return r0, r1 } +type AdminServiceServer_UpdateProjectAttributes struct { + *mock.Call +} + +func (_m AdminServiceServer_UpdateProjectAttributes) Return(_a0 *admin.ProjectAttributesUpdateResponse, _a1 error) *AdminServiceServer_UpdateProjectAttributes { + return &AdminServiceServer_UpdateProjectAttributes{Call: _m.Call.Return(_a0, _a1)} +} + +func (_m *AdminServiceServer) OnUpdateProjectAttributes(_a0 context.Context, _a1 *admin.ProjectAttributesUpdateRequest) *AdminServiceServer_UpdateProjectAttributes { + c_call := _m.On("UpdateProjectAttributes", _a0, _a1) + return &AdminServiceServer_UpdateProjectAttributes{Call: c_call} +} + +func (_m *AdminServiceServer) OnUpdateProjectAttributesMatch(matchers ...interface{}) *AdminServiceServer_UpdateProjectAttributes { + c_call := _m.On("UpdateProjectAttributes", matchers...) + return &AdminServiceServer_UpdateProjectAttributes{Call: c_call} +} + +// UpdateProjectAttributes provides a mock function with given fields: _a0, _a1 +func (_m *AdminServiceServer) UpdateProjectAttributes(_a0 context.Context, _a1 *admin.ProjectAttributesUpdateRequest) (*admin.ProjectAttributesUpdateResponse, error) { + ret := _m.Called(_a0, _a1) + + var r0 *admin.ProjectAttributesUpdateResponse + if rf, ok := ret.Get(0).(func(context.Context, *admin.ProjectAttributesUpdateRequest) *admin.ProjectAttributesUpdateResponse); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*admin.ProjectAttributesUpdateResponse) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *admin.ProjectAttributesUpdateRequest) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + type AdminServiceServer_UpdateProjectDomainAttributes struct { *mock.Call } diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/project_attributes.grpc.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/admin/project_attributes.grpc.pb.cc new file mode 100644 index 0000000000..ecf7b1271b --- /dev/null +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/project_attributes.grpc.pb.cc @@ -0,0 +1,24 @@ +// Generated by the gRPC C++ plugin. +// If you make any local change, they will be lost. +// source: flyteidl/admin/project_attributes.proto + +#include "flyteidl/admin/project_attributes.pb.h" +#include "flyteidl/admin/project_attributes.grpc.pb.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +namespace flyteidl { +namespace admin { + +} // namespace flyteidl +} // namespace admin + diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/project_attributes.grpc.pb.h b/flyteidl/gen/pb-cpp/flyteidl/admin/project_attributes.grpc.pb.h new file mode 100644 index 0000000000..8957c5cb16 --- /dev/null +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/project_attributes.grpc.pb.h @@ -0,0 +1,47 @@ +// Generated by the gRPC C++ plugin. +// If you make any local change, they will be lost. +// source: flyteidl/admin/project_attributes.proto +#ifndef GRPC_flyteidl_2fadmin_2fproject_5fattributes_2eproto__INCLUDED +#define GRPC_flyteidl_2fadmin_2fproject_5fattributes_2eproto__INCLUDED + +#include "flyteidl/admin/project_attributes.pb.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace grpc_impl { +class Channel; +class CompletionQueue; +class ServerCompletionQueue; +} // namespace grpc_impl + +namespace grpc { +namespace experimental { +template +class MessageAllocator; +} // namespace experimental +} // namespace grpc_impl + +namespace grpc { +class ServerContext; +} // namespace grpc + +namespace flyteidl { +namespace admin { + +} // namespace admin +} // namespace flyteidl + + +#endif // GRPC_flyteidl_2fadmin_2fproject_5fattributes_2eproto__INCLUDED diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/project_attributes.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/admin/project_attributes.pb.cc new file mode 100644 index 0000000000..ac548e5d6c --- /dev/null +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/project_attributes.pb.cc @@ -0,0 +1,2361 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: flyteidl/admin/project_attributes.proto + +#include "flyteidl/admin/project_attributes.pb.h" + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +// @@protoc_insertion_point(includes) +#include + +extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fmatchable_5fresource_2eproto ::google::protobuf::internal::SCCInfo<8> scc_info_MatchingAttributes_flyteidl_2fadmin_2fmatchable_5fresource_2eproto; +extern PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fproject_5fattributes_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_ProjectAttributes_flyteidl_2fadmin_2fproject_5fattributes_2eproto; +namespace flyteidl { +namespace admin { +class ProjectAttributesDefaultTypeInternal { + public: + ::google::protobuf::internal::ExplicitlyConstructed _instance; +} _ProjectAttributes_default_instance_; +class ProjectAttributesUpdateRequestDefaultTypeInternal { + public: + ::google::protobuf::internal::ExplicitlyConstructed _instance; +} _ProjectAttributesUpdateRequest_default_instance_; +class ProjectAttributesUpdateResponseDefaultTypeInternal { + public: + ::google::protobuf::internal::ExplicitlyConstructed _instance; +} _ProjectAttributesUpdateResponse_default_instance_; +class ProjectAttributesGetRequestDefaultTypeInternal { + public: + ::google::protobuf::internal::ExplicitlyConstructed _instance; +} _ProjectAttributesGetRequest_default_instance_; +class ProjectAttributesGetResponseDefaultTypeInternal { + public: + ::google::protobuf::internal::ExplicitlyConstructed _instance; +} _ProjectAttributesGetResponse_default_instance_; +class ProjectAttributesDeleteRequestDefaultTypeInternal { + public: + ::google::protobuf::internal::ExplicitlyConstructed _instance; +} _ProjectAttributesDeleteRequest_default_instance_; +class ProjectAttributesDeleteResponseDefaultTypeInternal { + public: + ::google::protobuf::internal::ExplicitlyConstructed _instance; +} _ProjectAttributesDeleteResponse_default_instance_; +} // namespace admin +} // namespace flyteidl +static void InitDefaultsProjectAttributes_flyteidl_2fadmin_2fproject_5fattributes_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::flyteidl::admin::_ProjectAttributes_default_instance_; + new (ptr) ::flyteidl::admin::ProjectAttributes(); + ::google::protobuf::internal::OnShutdownDestroyMessage(ptr); + } + ::flyteidl::admin::ProjectAttributes::InitAsDefaultInstance(); +} + +::google::protobuf::internal::SCCInfo<1> scc_info_ProjectAttributes_flyteidl_2fadmin_2fproject_5fattributes_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsProjectAttributes_flyteidl_2fadmin_2fproject_5fattributes_2eproto}, { + &scc_info_MatchingAttributes_flyteidl_2fadmin_2fmatchable_5fresource_2eproto.base,}}; + +static void InitDefaultsProjectAttributesUpdateRequest_flyteidl_2fadmin_2fproject_5fattributes_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::flyteidl::admin::_ProjectAttributesUpdateRequest_default_instance_; + new (ptr) ::flyteidl::admin::ProjectAttributesUpdateRequest(); + ::google::protobuf::internal::OnShutdownDestroyMessage(ptr); + } + ::flyteidl::admin::ProjectAttributesUpdateRequest::InitAsDefaultInstance(); +} + +::google::protobuf::internal::SCCInfo<1> scc_info_ProjectAttributesUpdateRequest_flyteidl_2fadmin_2fproject_5fattributes_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsProjectAttributesUpdateRequest_flyteidl_2fadmin_2fproject_5fattributes_2eproto}, { + &scc_info_ProjectAttributes_flyteidl_2fadmin_2fproject_5fattributes_2eproto.base,}}; + +static void InitDefaultsProjectAttributesUpdateResponse_flyteidl_2fadmin_2fproject_5fattributes_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::flyteidl::admin::_ProjectAttributesUpdateResponse_default_instance_; + new (ptr) ::flyteidl::admin::ProjectAttributesUpdateResponse(); + ::google::protobuf::internal::OnShutdownDestroyMessage(ptr); + } + ::flyteidl::admin::ProjectAttributesUpdateResponse::InitAsDefaultInstance(); +} + +::google::protobuf::internal::SCCInfo<0> scc_info_ProjectAttributesUpdateResponse_flyteidl_2fadmin_2fproject_5fattributes_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsProjectAttributesUpdateResponse_flyteidl_2fadmin_2fproject_5fattributes_2eproto}, {}}; + +static void InitDefaultsProjectAttributesGetRequest_flyteidl_2fadmin_2fproject_5fattributes_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::flyteidl::admin::_ProjectAttributesGetRequest_default_instance_; + new (ptr) ::flyteidl::admin::ProjectAttributesGetRequest(); + ::google::protobuf::internal::OnShutdownDestroyMessage(ptr); + } + ::flyteidl::admin::ProjectAttributesGetRequest::InitAsDefaultInstance(); +} + +::google::protobuf::internal::SCCInfo<0> scc_info_ProjectAttributesGetRequest_flyteidl_2fadmin_2fproject_5fattributes_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsProjectAttributesGetRequest_flyteidl_2fadmin_2fproject_5fattributes_2eproto}, {}}; + +static void InitDefaultsProjectAttributesGetResponse_flyteidl_2fadmin_2fproject_5fattributes_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::flyteidl::admin::_ProjectAttributesGetResponse_default_instance_; + new (ptr) ::flyteidl::admin::ProjectAttributesGetResponse(); + ::google::protobuf::internal::OnShutdownDestroyMessage(ptr); + } + ::flyteidl::admin::ProjectAttributesGetResponse::InitAsDefaultInstance(); +} + +::google::protobuf::internal::SCCInfo<1> scc_info_ProjectAttributesGetResponse_flyteidl_2fadmin_2fproject_5fattributes_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsProjectAttributesGetResponse_flyteidl_2fadmin_2fproject_5fattributes_2eproto}, { + &scc_info_ProjectAttributes_flyteidl_2fadmin_2fproject_5fattributes_2eproto.base,}}; + +static void InitDefaultsProjectAttributesDeleteRequest_flyteidl_2fadmin_2fproject_5fattributes_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::flyteidl::admin::_ProjectAttributesDeleteRequest_default_instance_; + new (ptr) ::flyteidl::admin::ProjectAttributesDeleteRequest(); + ::google::protobuf::internal::OnShutdownDestroyMessage(ptr); + } + ::flyteidl::admin::ProjectAttributesDeleteRequest::InitAsDefaultInstance(); +} + +::google::protobuf::internal::SCCInfo<0> scc_info_ProjectAttributesDeleteRequest_flyteidl_2fadmin_2fproject_5fattributes_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsProjectAttributesDeleteRequest_flyteidl_2fadmin_2fproject_5fattributes_2eproto}, {}}; + +static void InitDefaultsProjectAttributesDeleteResponse_flyteidl_2fadmin_2fproject_5fattributes_2eproto() { + GOOGLE_PROTOBUF_VERIFY_VERSION; + + { + void* ptr = &::flyteidl::admin::_ProjectAttributesDeleteResponse_default_instance_; + new (ptr) ::flyteidl::admin::ProjectAttributesDeleteResponse(); + ::google::protobuf::internal::OnShutdownDestroyMessage(ptr); + } + ::flyteidl::admin::ProjectAttributesDeleteResponse::InitAsDefaultInstance(); +} + +::google::protobuf::internal::SCCInfo<0> scc_info_ProjectAttributesDeleteResponse_flyteidl_2fadmin_2fproject_5fattributes_2eproto = + {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsProjectAttributesDeleteResponse_flyteidl_2fadmin_2fproject_5fattributes_2eproto}, {}}; + +void InitDefaults_flyteidl_2fadmin_2fproject_5fattributes_2eproto() { + ::google::protobuf::internal::InitSCC(&scc_info_ProjectAttributes_flyteidl_2fadmin_2fproject_5fattributes_2eproto.base); + ::google::protobuf::internal::InitSCC(&scc_info_ProjectAttributesUpdateRequest_flyteidl_2fadmin_2fproject_5fattributes_2eproto.base); + ::google::protobuf::internal::InitSCC(&scc_info_ProjectAttributesUpdateResponse_flyteidl_2fadmin_2fproject_5fattributes_2eproto.base); + ::google::protobuf::internal::InitSCC(&scc_info_ProjectAttributesGetRequest_flyteidl_2fadmin_2fproject_5fattributes_2eproto.base); + ::google::protobuf::internal::InitSCC(&scc_info_ProjectAttributesGetResponse_flyteidl_2fadmin_2fproject_5fattributes_2eproto.base); + ::google::protobuf::internal::InitSCC(&scc_info_ProjectAttributesDeleteRequest_flyteidl_2fadmin_2fproject_5fattributes_2eproto.base); + ::google::protobuf::internal::InitSCC(&scc_info_ProjectAttributesDeleteResponse_flyteidl_2fadmin_2fproject_5fattributes_2eproto.base); +} + +::google::protobuf::Metadata file_level_metadata_flyteidl_2fadmin_2fproject_5fattributes_2eproto[7]; +constexpr ::google::protobuf::EnumDescriptor const** file_level_enum_descriptors_flyteidl_2fadmin_2fproject_5fattributes_2eproto = nullptr; +constexpr ::google::protobuf::ServiceDescriptor const** file_level_service_descriptors_flyteidl_2fadmin_2fproject_5fattributes_2eproto = nullptr; + +const ::google::protobuf::uint32 TableStruct_flyteidl_2fadmin_2fproject_5fattributes_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectAttributes, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectAttributes, project_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectAttributes, matching_attributes_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectAttributesUpdateRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectAttributesUpdateRequest, attributes_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectAttributesUpdateResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectAttributesGetRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectAttributesGetRequest, project_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectAttributesGetRequest, resource_type_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectAttributesGetResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectAttributesGetResponse, attributes_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectAttributesDeleteRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectAttributesDeleteRequest, project_), + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectAttributesDeleteRequest, resource_type_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::flyteidl::admin::ProjectAttributesDeleteResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ +}; +static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + { 0, -1, sizeof(::flyteidl::admin::ProjectAttributes)}, + { 7, -1, sizeof(::flyteidl::admin::ProjectAttributesUpdateRequest)}, + { 13, -1, sizeof(::flyteidl::admin::ProjectAttributesUpdateResponse)}, + { 18, -1, sizeof(::flyteidl::admin::ProjectAttributesGetRequest)}, + { 25, -1, sizeof(::flyteidl::admin::ProjectAttributesGetResponse)}, + { 31, -1, sizeof(::flyteidl::admin::ProjectAttributesDeleteRequest)}, + { 38, -1, sizeof(::flyteidl::admin::ProjectAttributesDeleteResponse)}, +}; + +static ::google::protobuf::Message const * const file_default_instances[] = { + reinterpret_cast(&::flyteidl::admin::_ProjectAttributes_default_instance_), + reinterpret_cast(&::flyteidl::admin::_ProjectAttributesUpdateRequest_default_instance_), + reinterpret_cast(&::flyteidl::admin::_ProjectAttributesUpdateResponse_default_instance_), + reinterpret_cast(&::flyteidl::admin::_ProjectAttributesGetRequest_default_instance_), + reinterpret_cast(&::flyteidl::admin::_ProjectAttributesGetResponse_default_instance_), + reinterpret_cast(&::flyteidl::admin::_ProjectAttributesDeleteRequest_default_instance_), + reinterpret_cast(&::flyteidl::admin::_ProjectAttributesDeleteResponse_default_instance_), +}; + +::google::protobuf::internal::AssignDescriptorsTable assign_descriptors_table_flyteidl_2fadmin_2fproject_5fattributes_2eproto = { + {}, AddDescriptors_flyteidl_2fadmin_2fproject_5fattributes_2eproto, "flyteidl/admin/project_attributes.proto", schemas, + file_default_instances, TableStruct_flyteidl_2fadmin_2fproject_5fattributes_2eproto::offsets, + file_level_metadata_flyteidl_2fadmin_2fproject_5fattributes_2eproto, 7, file_level_enum_descriptors_flyteidl_2fadmin_2fproject_5fattributes_2eproto, file_level_service_descriptors_flyteidl_2fadmin_2fproject_5fattributes_2eproto, +}; + +const char descriptor_table_protodef_flyteidl_2fadmin_2fproject_5fattributes_2eproto[] = + "\n\'flyteidl/admin/project_attributes.prot" + "o\022\016flyteidl.admin\032\'flyteidl/admin/matcha" + "ble_resource.proto\"e\n\021ProjectAttributes\022" + "\017\n\007project\030\001 \001(\t\022\?\n\023matching_attributes\030" + "\002 \001(\0132\".flyteidl.admin.MatchingAttribute" + "s\"W\n\036ProjectAttributesUpdateRequest\0225\n\na" + "ttributes\030\001 \001(\0132!.flyteidl.admin.Project" + "Attributes\"!\n\037ProjectAttributesUpdateRes" + "ponse\"h\n\033ProjectAttributesGetRequest\022\017\n\007" + "project\030\001 \001(\t\0228\n\rresource_type\030\002 \001(\0162!.f" + "lyteidl.admin.MatchableResource\"U\n\034Proje" + "ctAttributesGetResponse\0225\n\nattributes\030\001 " + "\001(\0132!.flyteidl.admin.ProjectAttributes\"k" + "\n\036ProjectAttributesDeleteRequest\022\017\n\007proj" + "ect\030\001 \001(\t\0228\n\rresource_type\030\002 \001(\0162!.flyte" + "idl.admin.MatchableResource\"!\n\037ProjectAt" + "tributesDeleteResponseB7Z5github.com/fly" + "teorg/flyteidl/gen/pb-go/flyteidl/adminb" + "\006proto3" + ; +::google::protobuf::internal::DescriptorTable descriptor_table_flyteidl_2fadmin_2fproject_5fattributes_2eproto = { + false, InitDefaults_flyteidl_2fadmin_2fproject_5fattributes_2eproto, + descriptor_table_protodef_flyteidl_2fadmin_2fproject_5fattributes_2eproto, + "flyteidl/admin/project_attributes.proto", &assign_descriptors_table_flyteidl_2fadmin_2fproject_5fattributes_2eproto, 727, +}; + +void AddDescriptors_flyteidl_2fadmin_2fproject_5fattributes_2eproto() { + static constexpr ::google::protobuf::internal::InitFunc deps[1] = + { + ::AddDescriptors_flyteidl_2fadmin_2fmatchable_5fresource_2eproto, + }; + ::google::protobuf::internal::AddDescriptors(&descriptor_table_flyteidl_2fadmin_2fproject_5fattributes_2eproto, deps, 1); +} + +// Force running AddDescriptors() at dynamic initialization time. +static bool dynamic_init_dummy_flyteidl_2fadmin_2fproject_5fattributes_2eproto = []() { AddDescriptors_flyteidl_2fadmin_2fproject_5fattributes_2eproto(); return true; }(); +namespace flyteidl { +namespace admin { + +// =================================================================== + +void ProjectAttributes::InitAsDefaultInstance() { + ::flyteidl::admin::_ProjectAttributes_default_instance_._instance.get_mutable()->matching_attributes_ = const_cast< ::flyteidl::admin::MatchingAttributes*>( + ::flyteidl::admin::MatchingAttributes::internal_default_instance()); +} +class ProjectAttributes::HasBitSetters { + public: + static const ::flyteidl::admin::MatchingAttributes& matching_attributes(const ProjectAttributes* msg); +}; + +const ::flyteidl::admin::MatchingAttributes& +ProjectAttributes::HasBitSetters::matching_attributes(const ProjectAttributes* msg) { + return *msg->matching_attributes_; +} +void ProjectAttributes::clear_matching_attributes() { + if (GetArenaNoVirtual() == nullptr && matching_attributes_ != nullptr) { + delete matching_attributes_; + } + matching_attributes_ = nullptr; +} +#if !defined(_MSC_VER) || _MSC_VER >= 1900 +const int ProjectAttributes::kProjectFieldNumber; +const int ProjectAttributes::kMatchingAttributesFieldNumber; +#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 + +ProjectAttributes::ProjectAttributes() + : ::google::protobuf::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:flyteidl.admin.ProjectAttributes) +} +ProjectAttributes::ProjectAttributes(const ProjectAttributes& from) + : ::google::protobuf::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + project_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.project().size() > 0) { + project_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.project_); + } + if (from.has_matching_attributes()) { + matching_attributes_ = new ::flyteidl::admin::MatchingAttributes(*from.matching_attributes_); + } else { + matching_attributes_ = nullptr; + } + // @@protoc_insertion_point(copy_constructor:flyteidl.admin.ProjectAttributes) +} + +void ProjectAttributes::SharedCtor() { + ::google::protobuf::internal::InitSCC( + &scc_info_ProjectAttributes_flyteidl_2fadmin_2fproject_5fattributes_2eproto.base); + project_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + matching_attributes_ = nullptr; +} + +ProjectAttributes::~ProjectAttributes() { + // @@protoc_insertion_point(destructor:flyteidl.admin.ProjectAttributes) + SharedDtor(); +} + +void ProjectAttributes::SharedDtor() { + project_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (this != internal_default_instance()) delete matching_attributes_; +} + +void ProjectAttributes::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const ProjectAttributes& ProjectAttributes::default_instance() { + ::google::protobuf::internal::InitSCC(&::scc_info_ProjectAttributes_flyteidl_2fadmin_2fproject_5fattributes_2eproto.base); + return *internal_default_instance(); +} + + +void ProjectAttributes::Clear() { +// @@protoc_insertion_point(message_clear_start:flyteidl.admin.ProjectAttributes) + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + project_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (GetArenaNoVirtual() == nullptr && matching_attributes_ != nullptr) { + delete matching_attributes_; + } + matching_attributes_ = nullptr; + _internal_metadata_.Clear(); +} + +#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +const char* ProjectAttributes::_InternalParse(const char* begin, const char* end, void* object, + ::google::protobuf::internal::ParseContext* ctx) { + auto msg = static_cast(object); + ::google::protobuf::int32 size; (void)size; + int depth; (void)depth; + ::google::protobuf::uint32 tag; + ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end; + auto ptr = begin; + while (ptr < end) { + ptr = ::google::protobuf::io::Parse32(ptr, &tag); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + switch (tag >> 3) { + // string project = 1; + case 1: { + if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.admin.ProjectAttributes.project"); + object = msg->mutable_project(); + if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) { + parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8; + goto string_till_end; + } + GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx)); + ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx); + ptr += size; + break; + } + // .flyteidl.admin.MatchingAttributes matching_attributes = 2; + case 2: { + if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + parser_till_end = ::flyteidl::admin::MatchingAttributes::_InternalParse; + object = msg->mutable_matching_attributes(); + if (size > end - ptr) goto len_delim_till_end; + ptr += size; + GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange( + {parser_till_end, object}, ptr - size, ptr)); + break; + } + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->EndGroup(tag); + return ptr; + } + auto res = UnknownFieldParse(tag, {_InternalParse, msg}, + ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx); + ptr = res.first; + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr); + if (res.second) return ptr; + } + } // switch + } // while + return ptr; +string_till_end: + static_cast<::std::string*>(object)->clear(); + static_cast<::std::string*>(object)->reserve(size); + goto len_delim_till_end; +len_delim_till_end: + return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg}, + {parser_till_end, object}, size); +} +#else // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +bool ProjectAttributes::MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) { +#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure + ::google::protobuf::uint32 tag; + // @@protoc_insertion_point(parse_start:flyteidl.admin.ProjectAttributes) + for (;;) { + ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u); + tag = p.first; + if (!p.second) goto handle_unusual; + switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) { + // string project = 1; + case 1: { + if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_project())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->project().data(), static_cast(this->project().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.ProjectAttributes.project")); + } else { + goto handle_unusual; + } + break; + } + + // .flyteidl.admin.MatchingAttributes matching_attributes = 2; + case 2: { + if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadMessage( + input, mutable_matching_attributes())); + } else { + goto handle_unusual; + } + break; + } + + default: { + handle_unusual: + if (tag == 0) { + goto success; + } + DO_(::google::protobuf::internal::WireFormat::SkipField( + input, tag, _internal_metadata_.mutable_unknown_fields())); + break; + } + } + } +success: + // @@protoc_insertion_point(parse_success:flyteidl.admin.ProjectAttributes) + return true; +failure: + // @@protoc_insertion_point(parse_failure:flyteidl.admin.ProjectAttributes) + return false; +#undef DO_ +} +#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + +void ProjectAttributes::SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const { + // @@protoc_insertion_point(serialize_start:flyteidl.admin.ProjectAttributes) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string project = 1; + if (this->project().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->project().data(), static_cast(this->project().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ProjectAttributes.project"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 1, this->project(), output); + } + + // .flyteidl.admin.MatchingAttributes matching_attributes = 2; + if (this->has_matching_attributes()) { + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( + 2, HasBitSetters::matching_attributes(this), output); + } + + if (_internal_metadata_.have_unknown_fields()) { + ::google::protobuf::internal::WireFormat::SerializeUnknownFields( + _internal_metadata_.unknown_fields(), output); + } + // @@protoc_insertion_point(serialize_end:flyteidl.admin.ProjectAttributes) +} + +::google::protobuf::uint8* ProjectAttributes::InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const { + // @@protoc_insertion_point(serialize_to_array_start:flyteidl.admin.ProjectAttributes) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string project = 1; + if (this->project().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->project().data(), static_cast(this->project().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ProjectAttributes.project"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 1, this->project(), target); + } + + // .flyteidl.admin.MatchingAttributes matching_attributes = 2; + if (this->has_matching_attributes()) { + target = ::google::protobuf::internal::WireFormatLite:: + InternalWriteMessageToArray( + 2, HasBitSetters::matching_attributes(this), target); + } + + if (_internal_metadata_.have_unknown_fields()) { + target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target); + } + // @@protoc_insertion_point(serialize_to_array_end:flyteidl.admin.ProjectAttributes) + return target; +} + +size_t ProjectAttributes::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:flyteidl.admin.ProjectAttributes) + size_t total_size = 0; + + if (_internal_metadata_.have_unknown_fields()) { + total_size += + ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize( + _internal_metadata_.unknown_fields()); + } + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string project = 1; + if (this->project().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->project()); + } + + // .flyteidl.admin.MatchingAttributes matching_attributes = 2; + if (this->has_matching_attributes()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSize( + *matching_attributes_); + } + + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void ProjectAttributes::MergeFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.admin.ProjectAttributes) + GOOGLE_DCHECK_NE(&from, this); + const ProjectAttributes* source = + ::google::protobuf::DynamicCastToGenerated( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.admin.ProjectAttributes) + ::google::protobuf::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.admin.ProjectAttributes) + MergeFrom(*source); + } +} + +void ProjectAttributes::MergeFrom(const ProjectAttributes& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.admin.ProjectAttributes) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (from.project().size() > 0) { + + project_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.project_); + } + if (from.has_matching_attributes()) { + mutable_matching_attributes()->::flyteidl::admin::MatchingAttributes::MergeFrom(from.matching_attributes()); + } +} + +void ProjectAttributes::CopyFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.admin.ProjectAttributes) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void ProjectAttributes::CopyFrom(const ProjectAttributes& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.admin.ProjectAttributes) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ProjectAttributes::IsInitialized() const { + return true; +} + +void ProjectAttributes::Swap(ProjectAttributes* other) { + if (other == this) return; + InternalSwap(other); +} +void ProjectAttributes::InternalSwap(ProjectAttributes* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + project_.Swap(&other->project_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + swap(matching_attributes_, other->matching_attributes_); +} + +::google::protobuf::Metadata ProjectAttributes::GetMetadata() const { + ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fadmin_2fproject_5fattributes_2eproto); + return ::file_level_metadata_flyteidl_2fadmin_2fproject_5fattributes_2eproto[kIndexInFileMessages]; +} + + +// =================================================================== + +void ProjectAttributesUpdateRequest::InitAsDefaultInstance() { + ::flyteidl::admin::_ProjectAttributesUpdateRequest_default_instance_._instance.get_mutable()->attributes_ = const_cast< ::flyteidl::admin::ProjectAttributes*>( + ::flyteidl::admin::ProjectAttributes::internal_default_instance()); +} +class ProjectAttributesUpdateRequest::HasBitSetters { + public: + static const ::flyteidl::admin::ProjectAttributes& attributes(const ProjectAttributesUpdateRequest* msg); +}; + +const ::flyteidl::admin::ProjectAttributes& +ProjectAttributesUpdateRequest::HasBitSetters::attributes(const ProjectAttributesUpdateRequest* msg) { + return *msg->attributes_; +} +#if !defined(_MSC_VER) || _MSC_VER >= 1900 +const int ProjectAttributesUpdateRequest::kAttributesFieldNumber; +#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 + +ProjectAttributesUpdateRequest::ProjectAttributesUpdateRequest() + : ::google::protobuf::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:flyteidl.admin.ProjectAttributesUpdateRequest) +} +ProjectAttributesUpdateRequest::ProjectAttributesUpdateRequest(const ProjectAttributesUpdateRequest& from) + : ::google::protobuf::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + if (from.has_attributes()) { + attributes_ = new ::flyteidl::admin::ProjectAttributes(*from.attributes_); + } else { + attributes_ = nullptr; + } + // @@protoc_insertion_point(copy_constructor:flyteidl.admin.ProjectAttributesUpdateRequest) +} + +void ProjectAttributesUpdateRequest::SharedCtor() { + ::google::protobuf::internal::InitSCC( + &scc_info_ProjectAttributesUpdateRequest_flyteidl_2fadmin_2fproject_5fattributes_2eproto.base); + attributes_ = nullptr; +} + +ProjectAttributesUpdateRequest::~ProjectAttributesUpdateRequest() { + // @@protoc_insertion_point(destructor:flyteidl.admin.ProjectAttributesUpdateRequest) + SharedDtor(); +} + +void ProjectAttributesUpdateRequest::SharedDtor() { + if (this != internal_default_instance()) delete attributes_; +} + +void ProjectAttributesUpdateRequest::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const ProjectAttributesUpdateRequest& ProjectAttributesUpdateRequest::default_instance() { + ::google::protobuf::internal::InitSCC(&::scc_info_ProjectAttributesUpdateRequest_flyteidl_2fadmin_2fproject_5fattributes_2eproto.base); + return *internal_default_instance(); +} + + +void ProjectAttributesUpdateRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:flyteidl.admin.ProjectAttributesUpdateRequest) + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + if (GetArenaNoVirtual() == nullptr && attributes_ != nullptr) { + delete attributes_; + } + attributes_ = nullptr; + _internal_metadata_.Clear(); +} + +#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +const char* ProjectAttributesUpdateRequest::_InternalParse(const char* begin, const char* end, void* object, + ::google::protobuf::internal::ParseContext* ctx) { + auto msg = static_cast(object); + ::google::protobuf::int32 size; (void)size; + int depth; (void)depth; + ::google::protobuf::uint32 tag; + ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end; + auto ptr = begin; + while (ptr < end) { + ptr = ::google::protobuf::io::Parse32(ptr, &tag); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + switch (tag >> 3) { + // .flyteidl.admin.ProjectAttributes attributes = 1; + case 1: { + if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + parser_till_end = ::flyteidl::admin::ProjectAttributes::_InternalParse; + object = msg->mutable_attributes(); + if (size > end - ptr) goto len_delim_till_end; + ptr += size; + GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange( + {parser_till_end, object}, ptr - size, ptr)); + break; + } + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->EndGroup(tag); + return ptr; + } + auto res = UnknownFieldParse(tag, {_InternalParse, msg}, + ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx); + ptr = res.first; + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr); + if (res.second) return ptr; + } + } // switch + } // while + return ptr; +len_delim_till_end: + return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg}, + {parser_till_end, object}, size); +} +#else // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +bool ProjectAttributesUpdateRequest::MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) { +#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure + ::google::protobuf::uint32 tag; + // @@protoc_insertion_point(parse_start:flyteidl.admin.ProjectAttributesUpdateRequest) + for (;;) { + ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u); + tag = p.first; + if (!p.second) goto handle_unusual; + switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) { + // .flyteidl.admin.ProjectAttributes attributes = 1; + case 1: { + if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadMessage( + input, mutable_attributes())); + } else { + goto handle_unusual; + } + break; + } + + default: { + handle_unusual: + if (tag == 0) { + goto success; + } + DO_(::google::protobuf::internal::WireFormat::SkipField( + input, tag, _internal_metadata_.mutable_unknown_fields())); + break; + } + } + } +success: + // @@protoc_insertion_point(parse_success:flyteidl.admin.ProjectAttributesUpdateRequest) + return true; +failure: + // @@protoc_insertion_point(parse_failure:flyteidl.admin.ProjectAttributesUpdateRequest) + return false; +#undef DO_ +} +#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + +void ProjectAttributesUpdateRequest::SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const { + // @@protoc_insertion_point(serialize_start:flyteidl.admin.ProjectAttributesUpdateRequest) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // .flyteidl.admin.ProjectAttributes attributes = 1; + if (this->has_attributes()) { + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( + 1, HasBitSetters::attributes(this), output); + } + + if (_internal_metadata_.have_unknown_fields()) { + ::google::protobuf::internal::WireFormat::SerializeUnknownFields( + _internal_metadata_.unknown_fields(), output); + } + // @@protoc_insertion_point(serialize_end:flyteidl.admin.ProjectAttributesUpdateRequest) +} + +::google::protobuf::uint8* ProjectAttributesUpdateRequest::InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const { + // @@protoc_insertion_point(serialize_to_array_start:flyteidl.admin.ProjectAttributesUpdateRequest) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // .flyteidl.admin.ProjectAttributes attributes = 1; + if (this->has_attributes()) { + target = ::google::protobuf::internal::WireFormatLite:: + InternalWriteMessageToArray( + 1, HasBitSetters::attributes(this), target); + } + + if (_internal_metadata_.have_unknown_fields()) { + target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target); + } + // @@protoc_insertion_point(serialize_to_array_end:flyteidl.admin.ProjectAttributesUpdateRequest) + return target; +} + +size_t ProjectAttributesUpdateRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:flyteidl.admin.ProjectAttributesUpdateRequest) + size_t total_size = 0; + + if (_internal_metadata_.have_unknown_fields()) { + total_size += + ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize( + _internal_metadata_.unknown_fields()); + } + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // .flyteidl.admin.ProjectAttributes attributes = 1; + if (this->has_attributes()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSize( + *attributes_); + } + + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void ProjectAttributesUpdateRequest::MergeFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.admin.ProjectAttributesUpdateRequest) + GOOGLE_DCHECK_NE(&from, this); + const ProjectAttributesUpdateRequest* source = + ::google::protobuf::DynamicCastToGenerated( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.admin.ProjectAttributesUpdateRequest) + ::google::protobuf::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.admin.ProjectAttributesUpdateRequest) + MergeFrom(*source); + } +} + +void ProjectAttributesUpdateRequest::MergeFrom(const ProjectAttributesUpdateRequest& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.admin.ProjectAttributesUpdateRequest) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (from.has_attributes()) { + mutable_attributes()->::flyteidl::admin::ProjectAttributes::MergeFrom(from.attributes()); + } +} + +void ProjectAttributesUpdateRequest::CopyFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.admin.ProjectAttributesUpdateRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void ProjectAttributesUpdateRequest::CopyFrom(const ProjectAttributesUpdateRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.admin.ProjectAttributesUpdateRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ProjectAttributesUpdateRequest::IsInitialized() const { + return true; +} + +void ProjectAttributesUpdateRequest::Swap(ProjectAttributesUpdateRequest* other) { + if (other == this) return; + InternalSwap(other); +} +void ProjectAttributesUpdateRequest::InternalSwap(ProjectAttributesUpdateRequest* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + swap(attributes_, other->attributes_); +} + +::google::protobuf::Metadata ProjectAttributesUpdateRequest::GetMetadata() const { + ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fadmin_2fproject_5fattributes_2eproto); + return ::file_level_metadata_flyteidl_2fadmin_2fproject_5fattributes_2eproto[kIndexInFileMessages]; +} + + +// =================================================================== + +void ProjectAttributesUpdateResponse::InitAsDefaultInstance() { +} +class ProjectAttributesUpdateResponse::HasBitSetters { + public: +}; + +#if !defined(_MSC_VER) || _MSC_VER >= 1900 +#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 + +ProjectAttributesUpdateResponse::ProjectAttributesUpdateResponse() + : ::google::protobuf::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:flyteidl.admin.ProjectAttributesUpdateResponse) +} +ProjectAttributesUpdateResponse::ProjectAttributesUpdateResponse(const ProjectAttributesUpdateResponse& from) + : ::google::protobuf::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + // @@protoc_insertion_point(copy_constructor:flyteidl.admin.ProjectAttributesUpdateResponse) +} + +void ProjectAttributesUpdateResponse::SharedCtor() { +} + +ProjectAttributesUpdateResponse::~ProjectAttributesUpdateResponse() { + // @@protoc_insertion_point(destructor:flyteidl.admin.ProjectAttributesUpdateResponse) + SharedDtor(); +} + +void ProjectAttributesUpdateResponse::SharedDtor() { +} + +void ProjectAttributesUpdateResponse::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const ProjectAttributesUpdateResponse& ProjectAttributesUpdateResponse::default_instance() { + ::google::protobuf::internal::InitSCC(&::scc_info_ProjectAttributesUpdateResponse_flyteidl_2fadmin_2fproject_5fattributes_2eproto.base); + return *internal_default_instance(); +} + + +void ProjectAttributesUpdateResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:flyteidl.admin.ProjectAttributesUpdateResponse) + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _internal_metadata_.Clear(); +} + +#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +const char* ProjectAttributesUpdateResponse::_InternalParse(const char* begin, const char* end, void* object, + ::google::protobuf::internal::ParseContext* ctx) { + auto msg = static_cast(object); + ::google::protobuf::int32 size; (void)size; + int depth; (void)depth; + ::google::protobuf::uint32 tag; + ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end; + auto ptr = begin; + while (ptr < end) { + ptr = ::google::protobuf::io::Parse32(ptr, &tag); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + switch (tag >> 3) { + default: { + if ((tag & 7) == 4 || tag == 0) { + ctx->EndGroup(tag); + return ptr; + } + auto res = UnknownFieldParse(tag, {_InternalParse, msg}, + ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx); + ptr = res.first; + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr); + if (res.second) return ptr; + } + } // switch + } // while + return ptr; +} +#else // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +bool ProjectAttributesUpdateResponse::MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) { +#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure + ::google::protobuf::uint32 tag; + // @@protoc_insertion_point(parse_start:flyteidl.admin.ProjectAttributesUpdateResponse) + for (;;) { + ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u); + tag = p.first; + if (!p.second) goto handle_unusual; + handle_unusual: + if (tag == 0) { + goto success; + } + DO_(::google::protobuf::internal::WireFormat::SkipField( + input, tag, _internal_metadata_.mutable_unknown_fields())); + } +success: + // @@protoc_insertion_point(parse_success:flyteidl.admin.ProjectAttributesUpdateResponse) + return true; +failure: + // @@protoc_insertion_point(parse_failure:flyteidl.admin.ProjectAttributesUpdateResponse) + return false; +#undef DO_ +} +#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + +void ProjectAttributesUpdateResponse::SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const { + // @@protoc_insertion_point(serialize_start:flyteidl.admin.ProjectAttributesUpdateResponse) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (_internal_metadata_.have_unknown_fields()) { + ::google::protobuf::internal::WireFormat::SerializeUnknownFields( + _internal_metadata_.unknown_fields(), output); + } + // @@protoc_insertion_point(serialize_end:flyteidl.admin.ProjectAttributesUpdateResponse) +} + +::google::protobuf::uint8* ProjectAttributesUpdateResponse::InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const { + // @@protoc_insertion_point(serialize_to_array_start:flyteidl.admin.ProjectAttributesUpdateResponse) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (_internal_metadata_.have_unknown_fields()) { + target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target); + } + // @@protoc_insertion_point(serialize_to_array_end:flyteidl.admin.ProjectAttributesUpdateResponse) + return target; +} + +size_t ProjectAttributesUpdateResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:flyteidl.admin.ProjectAttributesUpdateResponse) + size_t total_size = 0; + + if (_internal_metadata_.have_unknown_fields()) { + total_size += + ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize( + _internal_metadata_.unknown_fields()); + } + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void ProjectAttributesUpdateResponse::MergeFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.admin.ProjectAttributesUpdateResponse) + GOOGLE_DCHECK_NE(&from, this); + const ProjectAttributesUpdateResponse* source = + ::google::protobuf::DynamicCastToGenerated( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.admin.ProjectAttributesUpdateResponse) + ::google::protobuf::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.admin.ProjectAttributesUpdateResponse) + MergeFrom(*source); + } +} + +void ProjectAttributesUpdateResponse::MergeFrom(const ProjectAttributesUpdateResponse& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.admin.ProjectAttributesUpdateResponse) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + +} + +void ProjectAttributesUpdateResponse::CopyFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.admin.ProjectAttributesUpdateResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void ProjectAttributesUpdateResponse::CopyFrom(const ProjectAttributesUpdateResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.admin.ProjectAttributesUpdateResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ProjectAttributesUpdateResponse::IsInitialized() const { + return true; +} + +void ProjectAttributesUpdateResponse::Swap(ProjectAttributesUpdateResponse* other) { + if (other == this) return; + InternalSwap(other); +} +void ProjectAttributesUpdateResponse::InternalSwap(ProjectAttributesUpdateResponse* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); +} + +::google::protobuf::Metadata ProjectAttributesUpdateResponse::GetMetadata() const { + ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fadmin_2fproject_5fattributes_2eproto); + return ::file_level_metadata_flyteidl_2fadmin_2fproject_5fattributes_2eproto[kIndexInFileMessages]; +} + + +// =================================================================== + +void ProjectAttributesGetRequest::InitAsDefaultInstance() { +} +class ProjectAttributesGetRequest::HasBitSetters { + public: +}; + +#if !defined(_MSC_VER) || _MSC_VER >= 1900 +const int ProjectAttributesGetRequest::kProjectFieldNumber; +const int ProjectAttributesGetRequest::kResourceTypeFieldNumber; +#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 + +ProjectAttributesGetRequest::ProjectAttributesGetRequest() + : ::google::protobuf::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:flyteidl.admin.ProjectAttributesGetRequest) +} +ProjectAttributesGetRequest::ProjectAttributesGetRequest(const ProjectAttributesGetRequest& from) + : ::google::protobuf::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + project_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.project().size() > 0) { + project_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.project_); + } + resource_type_ = from.resource_type_; + // @@protoc_insertion_point(copy_constructor:flyteidl.admin.ProjectAttributesGetRequest) +} + +void ProjectAttributesGetRequest::SharedCtor() { + ::google::protobuf::internal::InitSCC( + &scc_info_ProjectAttributesGetRequest_flyteidl_2fadmin_2fproject_5fattributes_2eproto.base); + project_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + resource_type_ = 0; +} + +ProjectAttributesGetRequest::~ProjectAttributesGetRequest() { + // @@protoc_insertion_point(destructor:flyteidl.admin.ProjectAttributesGetRequest) + SharedDtor(); +} + +void ProjectAttributesGetRequest::SharedDtor() { + project_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} + +void ProjectAttributesGetRequest::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const ProjectAttributesGetRequest& ProjectAttributesGetRequest::default_instance() { + ::google::protobuf::internal::InitSCC(&::scc_info_ProjectAttributesGetRequest_flyteidl_2fadmin_2fproject_5fattributes_2eproto.base); + return *internal_default_instance(); +} + + +void ProjectAttributesGetRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:flyteidl.admin.ProjectAttributesGetRequest) + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + project_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + resource_type_ = 0; + _internal_metadata_.Clear(); +} + +#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +const char* ProjectAttributesGetRequest::_InternalParse(const char* begin, const char* end, void* object, + ::google::protobuf::internal::ParseContext* ctx) { + auto msg = static_cast(object); + ::google::protobuf::int32 size; (void)size; + int depth; (void)depth; + ::google::protobuf::uint32 tag; + ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end; + auto ptr = begin; + while (ptr < end) { + ptr = ::google::protobuf::io::Parse32(ptr, &tag); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + switch (tag >> 3) { + // string project = 1; + case 1: { + if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.admin.ProjectAttributesGetRequest.project"); + object = msg->mutable_project(); + if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) { + parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8; + goto string_till_end; + } + GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx)); + ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx); + ptr += size; + break; + } + // .flyteidl.admin.MatchableResource resource_type = 2; + case 2: { + if (static_cast<::google::protobuf::uint8>(tag) != 16) goto handle_unusual; + ::google::protobuf::uint64 val = ::google::protobuf::internal::ReadVarint(&ptr); + msg->set_resource_type(static_cast<::flyteidl::admin::MatchableResource>(val)); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + break; + } + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->EndGroup(tag); + return ptr; + } + auto res = UnknownFieldParse(tag, {_InternalParse, msg}, + ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx); + ptr = res.first; + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr); + if (res.second) return ptr; + } + } // switch + } // while + return ptr; +string_till_end: + static_cast<::std::string*>(object)->clear(); + static_cast<::std::string*>(object)->reserve(size); + goto len_delim_till_end; +len_delim_till_end: + return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg}, + {parser_till_end, object}, size); +} +#else // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +bool ProjectAttributesGetRequest::MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) { +#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure + ::google::protobuf::uint32 tag; + // @@protoc_insertion_point(parse_start:flyteidl.admin.ProjectAttributesGetRequest) + for (;;) { + ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u); + tag = p.first; + if (!p.second) goto handle_unusual; + switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) { + // string project = 1; + case 1: { + if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_project())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->project().data(), static_cast(this->project().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.ProjectAttributesGetRequest.project")); + } else { + goto handle_unusual; + } + break; + } + + // .flyteidl.admin.MatchableResource resource_type = 2; + case 2: { + if (static_cast< ::google::protobuf::uint8>(tag) == (16 & 0xFF)) { + int value = 0; + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>( + input, &value))); + set_resource_type(static_cast< ::flyteidl::admin::MatchableResource >(value)); + } else { + goto handle_unusual; + } + break; + } + + default: { + handle_unusual: + if (tag == 0) { + goto success; + } + DO_(::google::protobuf::internal::WireFormat::SkipField( + input, tag, _internal_metadata_.mutable_unknown_fields())); + break; + } + } + } +success: + // @@protoc_insertion_point(parse_success:flyteidl.admin.ProjectAttributesGetRequest) + return true; +failure: + // @@protoc_insertion_point(parse_failure:flyteidl.admin.ProjectAttributesGetRequest) + return false; +#undef DO_ +} +#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + +void ProjectAttributesGetRequest::SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const { + // @@protoc_insertion_point(serialize_start:flyteidl.admin.ProjectAttributesGetRequest) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string project = 1; + if (this->project().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->project().data(), static_cast(this->project().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ProjectAttributesGetRequest.project"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 1, this->project(), output); + } + + // .flyteidl.admin.MatchableResource resource_type = 2; + if (this->resource_type() != 0) { + ::google::protobuf::internal::WireFormatLite::WriteEnum( + 2, this->resource_type(), output); + } + + if (_internal_metadata_.have_unknown_fields()) { + ::google::protobuf::internal::WireFormat::SerializeUnknownFields( + _internal_metadata_.unknown_fields(), output); + } + // @@protoc_insertion_point(serialize_end:flyteidl.admin.ProjectAttributesGetRequest) +} + +::google::protobuf::uint8* ProjectAttributesGetRequest::InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const { + // @@protoc_insertion_point(serialize_to_array_start:flyteidl.admin.ProjectAttributesGetRequest) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string project = 1; + if (this->project().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->project().data(), static_cast(this->project().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ProjectAttributesGetRequest.project"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 1, this->project(), target); + } + + // .flyteidl.admin.MatchableResource resource_type = 2; + if (this->resource_type() != 0) { + target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray( + 2, this->resource_type(), target); + } + + if (_internal_metadata_.have_unknown_fields()) { + target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target); + } + // @@protoc_insertion_point(serialize_to_array_end:flyteidl.admin.ProjectAttributesGetRequest) + return target; +} + +size_t ProjectAttributesGetRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:flyteidl.admin.ProjectAttributesGetRequest) + size_t total_size = 0; + + if (_internal_metadata_.have_unknown_fields()) { + total_size += + ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize( + _internal_metadata_.unknown_fields()); + } + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string project = 1; + if (this->project().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->project()); + } + + // .flyteidl.admin.MatchableResource resource_type = 2; + if (this->resource_type() != 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::EnumSize(this->resource_type()); + } + + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void ProjectAttributesGetRequest::MergeFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.admin.ProjectAttributesGetRequest) + GOOGLE_DCHECK_NE(&from, this); + const ProjectAttributesGetRequest* source = + ::google::protobuf::DynamicCastToGenerated( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.admin.ProjectAttributesGetRequest) + ::google::protobuf::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.admin.ProjectAttributesGetRequest) + MergeFrom(*source); + } +} + +void ProjectAttributesGetRequest::MergeFrom(const ProjectAttributesGetRequest& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.admin.ProjectAttributesGetRequest) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (from.project().size() > 0) { + + project_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.project_); + } + if (from.resource_type() != 0) { + set_resource_type(from.resource_type()); + } +} + +void ProjectAttributesGetRequest::CopyFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.admin.ProjectAttributesGetRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void ProjectAttributesGetRequest::CopyFrom(const ProjectAttributesGetRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.admin.ProjectAttributesGetRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ProjectAttributesGetRequest::IsInitialized() const { + return true; +} + +void ProjectAttributesGetRequest::Swap(ProjectAttributesGetRequest* other) { + if (other == this) return; + InternalSwap(other); +} +void ProjectAttributesGetRequest::InternalSwap(ProjectAttributesGetRequest* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + project_.Swap(&other->project_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + swap(resource_type_, other->resource_type_); +} + +::google::protobuf::Metadata ProjectAttributesGetRequest::GetMetadata() const { + ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fadmin_2fproject_5fattributes_2eproto); + return ::file_level_metadata_flyteidl_2fadmin_2fproject_5fattributes_2eproto[kIndexInFileMessages]; +} + + +// =================================================================== + +void ProjectAttributesGetResponse::InitAsDefaultInstance() { + ::flyteidl::admin::_ProjectAttributesGetResponse_default_instance_._instance.get_mutable()->attributes_ = const_cast< ::flyteidl::admin::ProjectAttributes*>( + ::flyteidl::admin::ProjectAttributes::internal_default_instance()); +} +class ProjectAttributesGetResponse::HasBitSetters { + public: + static const ::flyteidl::admin::ProjectAttributes& attributes(const ProjectAttributesGetResponse* msg); +}; + +const ::flyteidl::admin::ProjectAttributes& +ProjectAttributesGetResponse::HasBitSetters::attributes(const ProjectAttributesGetResponse* msg) { + return *msg->attributes_; +} +#if !defined(_MSC_VER) || _MSC_VER >= 1900 +const int ProjectAttributesGetResponse::kAttributesFieldNumber; +#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 + +ProjectAttributesGetResponse::ProjectAttributesGetResponse() + : ::google::protobuf::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:flyteidl.admin.ProjectAttributesGetResponse) +} +ProjectAttributesGetResponse::ProjectAttributesGetResponse(const ProjectAttributesGetResponse& from) + : ::google::protobuf::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + if (from.has_attributes()) { + attributes_ = new ::flyteidl::admin::ProjectAttributes(*from.attributes_); + } else { + attributes_ = nullptr; + } + // @@protoc_insertion_point(copy_constructor:flyteidl.admin.ProjectAttributesGetResponse) +} + +void ProjectAttributesGetResponse::SharedCtor() { + ::google::protobuf::internal::InitSCC( + &scc_info_ProjectAttributesGetResponse_flyteidl_2fadmin_2fproject_5fattributes_2eproto.base); + attributes_ = nullptr; +} + +ProjectAttributesGetResponse::~ProjectAttributesGetResponse() { + // @@protoc_insertion_point(destructor:flyteidl.admin.ProjectAttributesGetResponse) + SharedDtor(); +} + +void ProjectAttributesGetResponse::SharedDtor() { + if (this != internal_default_instance()) delete attributes_; +} + +void ProjectAttributesGetResponse::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const ProjectAttributesGetResponse& ProjectAttributesGetResponse::default_instance() { + ::google::protobuf::internal::InitSCC(&::scc_info_ProjectAttributesGetResponse_flyteidl_2fadmin_2fproject_5fattributes_2eproto.base); + return *internal_default_instance(); +} + + +void ProjectAttributesGetResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:flyteidl.admin.ProjectAttributesGetResponse) + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + if (GetArenaNoVirtual() == nullptr && attributes_ != nullptr) { + delete attributes_; + } + attributes_ = nullptr; + _internal_metadata_.Clear(); +} + +#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +const char* ProjectAttributesGetResponse::_InternalParse(const char* begin, const char* end, void* object, + ::google::protobuf::internal::ParseContext* ctx) { + auto msg = static_cast(object); + ::google::protobuf::int32 size; (void)size; + int depth; (void)depth; + ::google::protobuf::uint32 tag; + ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end; + auto ptr = begin; + while (ptr < end) { + ptr = ::google::protobuf::io::Parse32(ptr, &tag); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + switch (tag >> 3) { + // .flyteidl.admin.ProjectAttributes attributes = 1; + case 1: { + if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + parser_till_end = ::flyteidl::admin::ProjectAttributes::_InternalParse; + object = msg->mutable_attributes(); + if (size > end - ptr) goto len_delim_till_end; + ptr += size; + GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange( + {parser_till_end, object}, ptr - size, ptr)); + break; + } + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->EndGroup(tag); + return ptr; + } + auto res = UnknownFieldParse(tag, {_InternalParse, msg}, + ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx); + ptr = res.first; + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr); + if (res.second) return ptr; + } + } // switch + } // while + return ptr; +len_delim_till_end: + return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg}, + {parser_till_end, object}, size); +} +#else // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +bool ProjectAttributesGetResponse::MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) { +#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure + ::google::protobuf::uint32 tag; + // @@protoc_insertion_point(parse_start:flyteidl.admin.ProjectAttributesGetResponse) + for (;;) { + ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u); + tag = p.first; + if (!p.second) goto handle_unusual; + switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) { + // .flyteidl.admin.ProjectAttributes attributes = 1; + case 1: { + if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadMessage( + input, mutable_attributes())); + } else { + goto handle_unusual; + } + break; + } + + default: { + handle_unusual: + if (tag == 0) { + goto success; + } + DO_(::google::protobuf::internal::WireFormat::SkipField( + input, tag, _internal_metadata_.mutable_unknown_fields())); + break; + } + } + } +success: + // @@protoc_insertion_point(parse_success:flyteidl.admin.ProjectAttributesGetResponse) + return true; +failure: + // @@protoc_insertion_point(parse_failure:flyteidl.admin.ProjectAttributesGetResponse) + return false; +#undef DO_ +} +#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + +void ProjectAttributesGetResponse::SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const { + // @@protoc_insertion_point(serialize_start:flyteidl.admin.ProjectAttributesGetResponse) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // .flyteidl.admin.ProjectAttributes attributes = 1; + if (this->has_attributes()) { + ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray( + 1, HasBitSetters::attributes(this), output); + } + + if (_internal_metadata_.have_unknown_fields()) { + ::google::protobuf::internal::WireFormat::SerializeUnknownFields( + _internal_metadata_.unknown_fields(), output); + } + // @@protoc_insertion_point(serialize_end:flyteidl.admin.ProjectAttributesGetResponse) +} + +::google::protobuf::uint8* ProjectAttributesGetResponse::InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const { + // @@protoc_insertion_point(serialize_to_array_start:flyteidl.admin.ProjectAttributesGetResponse) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // .flyteidl.admin.ProjectAttributes attributes = 1; + if (this->has_attributes()) { + target = ::google::protobuf::internal::WireFormatLite:: + InternalWriteMessageToArray( + 1, HasBitSetters::attributes(this), target); + } + + if (_internal_metadata_.have_unknown_fields()) { + target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target); + } + // @@protoc_insertion_point(serialize_to_array_end:flyteidl.admin.ProjectAttributesGetResponse) + return target; +} + +size_t ProjectAttributesGetResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:flyteidl.admin.ProjectAttributesGetResponse) + size_t total_size = 0; + + if (_internal_metadata_.have_unknown_fields()) { + total_size += + ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize( + _internal_metadata_.unknown_fields()); + } + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // .flyteidl.admin.ProjectAttributes attributes = 1; + if (this->has_attributes()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSize( + *attributes_); + } + + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void ProjectAttributesGetResponse::MergeFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.admin.ProjectAttributesGetResponse) + GOOGLE_DCHECK_NE(&from, this); + const ProjectAttributesGetResponse* source = + ::google::protobuf::DynamicCastToGenerated( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.admin.ProjectAttributesGetResponse) + ::google::protobuf::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.admin.ProjectAttributesGetResponse) + MergeFrom(*source); + } +} + +void ProjectAttributesGetResponse::MergeFrom(const ProjectAttributesGetResponse& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.admin.ProjectAttributesGetResponse) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (from.has_attributes()) { + mutable_attributes()->::flyteidl::admin::ProjectAttributes::MergeFrom(from.attributes()); + } +} + +void ProjectAttributesGetResponse::CopyFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.admin.ProjectAttributesGetResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void ProjectAttributesGetResponse::CopyFrom(const ProjectAttributesGetResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.admin.ProjectAttributesGetResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ProjectAttributesGetResponse::IsInitialized() const { + return true; +} + +void ProjectAttributesGetResponse::Swap(ProjectAttributesGetResponse* other) { + if (other == this) return; + InternalSwap(other); +} +void ProjectAttributesGetResponse::InternalSwap(ProjectAttributesGetResponse* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + swap(attributes_, other->attributes_); +} + +::google::protobuf::Metadata ProjectAttributesGetResponse::GetMetadata() const { + ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fadmin_2fproject_5fattributes_2eproto); + return ::file_level_metadata_flyteidl_2fadmin_2fproject_5fattributes_2eproto[kIndexInFileMessages]; +} + + +// =================================================================== + +void ProjectAttributesDeleteRequest::InitAsDefaultInstance() { +} +class ProjectAttributesDeleteRequest::HasBitSetters { + public: +}; + +#if !defined(_MSC_VER) || _MSC_VER >= 1900 +const int ProjectAttributesDeleteRequest::kProjectFieldNumber; +const int ProjectAttributesDeleteRequest::kResourceTypeFieldNumber; +#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 + +ProjectAttributesDeleteRequest::ProjectAttributesDeleteRequest() + : ::google::protobuf::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:flyteidl.admin.ProjectAttributesDeleteRequest) +} +ProjectAttributesDeleteRequest::ProjectAttributesDeleteRequest(const ProjectAttributesDeleteRequest& from) + : ::google::protobuf::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + project_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + if (from.project().size() > 0) { + project_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.project_); + } + resource_type_ = from.resource_type_; + // @@protoc_insertion_point(copy_constructor:flyteidl.admin.ProjectAttributesDeleteRequest) +} + +void ProjectAttributesDeleteRequest::SharedCtor() { + ::google::protobuf::internal::InitSCC( + &scc_info_ProjectAttributesDeleteRequest_flyteidl_2fadmin_2fproject_5fattributes_2eproto.base); + project_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + resource_type_ = 0; +} + +ProjectAttributesDeleteRequest::~ProjectAttributesDeleteRequest() { + // @@protoc_insertion_point(destructor:flyteidl.admin.ProjectAttributesDeleteRequest) + SharedDtor(); +} + +void ProjectAttributesDeleteRequest::SharedDtor() { + project_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} + +void ProjectAttributesDeleteRequest::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const ProjectAttributesDeleteRequest& ProjectAttributesDeleteRequest::default_instance() { + ::google::protobuf::internal::InitSCC(&::scc_info_ProjectAttributesDeleteRequest_flyteidl_2fadmin_2fproject_5fattributes_2eproto.base); + return *internal_default_instance(); +} + + +void ProjectAttributesDeleteRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:flyteidl.admin.ProjectAttributesDeleteRequest) + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + project_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); + resource_type_ = 0; + _internal_metadata_.Clear(); +} + +#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +const char* ProjectAttributesDeleteRequest::_InternalParse(const char* begin, const char* end, void* object, + ::google::protobuf::internal::ParseContext* ctx) { + auto msg = static_cast(object); + ::google::protobuf::int32 size; (void)size; + int depth; (void)depth; + ::google::protobuf::uint32 tag; + ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end; + auto ptr = begin; + while (ptr < end) { + ptr = ::google::protobuf::io::Parse32(ptr, &tag); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + switch (tag >> 3) { + // string project = 1; + case 1: { + if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual; + ptr = ::google::protobuf::io::ReadSize(ptr, &size); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + ctx->extra_parse_data().SetFieldName("flyteidl.admin.ProjectAttributesDeleteRequest.project"); + object = msg->mutable_project(); + if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) { + parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8; + goto string_till_end; + } + GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx)); + ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx); + ptr += size; + break; + } + // .flyteidl.admin.MatchableResource resource_type = 2; + case 2: { + if (static_cast<::google::protobuf::uint8>(tag) != 16) goto handle_unusual; + ::google::protobuf::uint64 val = ::google::protobuf::internal::ReadVarint(&ptr); + msg->set_resource_type(static_cast<::flyteidl::admin::MatchableResource>(val)); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + break; + } + default: { + handle_unusual: + if ((tag & 7) == 4 || tag == 0) { + ctx->EndGroup(tag); + return ptr; + } + auto res = UnknownFieldParse(tag, {_InternalParse, msg}, + ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx); + ptr = res.first; + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr); + if (res.second) return ptr; + } + } // switch + } // while + return ptr; +string_till_end: + static_cast<::std::string*>(object)->clear(); + static_cast<::std::string*>(object)->reserve(size); + goto len_delim_till_end; +len_delim_till_end: + return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg}, + {parser_till_end, object}, size); +} +#else // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +bool ProjectAttributesDeleteRequest::MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) { +#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure + ::google::protobuf::uint32 tag; + // @@protoc_insertion_point(parse_start:flyteidl.admin.ProjectAttributesDeleteRequest) + for (;;) { + ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u); + tag = p.first; + if (!p.second) goto handle_unusual; + switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) { + // string project = 1; + case 1: { + if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) { + DO_(::google::protobuf::internal::WireFormatLite::ReadString( + input, this->mutable_project())); + DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->project().data(), static_cast(this->project().length()), + ::google::protobuf::internal::WireFormatLite::PARSE, + "flyteidl.admin.ProjectAttributesDeleteRequest.project")); + } else { + goto handle_unusual; + } + break; + } + + // .flyteidl.admin.MatchableResource resource_type = 2; + case 2: { + if (static_cast< ::google::protobuf::uint8>(tag) == (16 & 0xFF)) { + int value = 0; + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>( + input, &value))); + set_resource_type(static_cast< ::flyteidl::admin::MatchableResource >(value)); + } else { + goto handle_unusual; + } + break; + } + + default: { + handle_unusual: + if (tag == 0) { + goto success; + } + DO_(::google::protobuf::internal::WireFormat::SkipField( + input, tag, _internal_metadata_.mutable_unknown_fields())); + break; + } + } + } +success: + // @@protoc_insertion_point(parse_success:flyteidl.admin.ProjectAttributesDeleteRequest) + return true; +failure: + // @@protoc_insertion_point(parse_failure:flyteidl.admin.ProjectAttributesDeleteRequest) + return false; +#undef DO_ +} +#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + +void ProjectAttributesDeleteRequest::SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const { + // @@protoc_insertion_point(serialize_start:flyteidl.admin.ProjectAttributesDeleteRequest) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string project = 1; + if (this->project().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->project().data(), static_cast(this->project().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ProjectAttributesDeleteRequest.project"); + ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased( + 1, this->project(), output); + } + + // .flyteidl.admin.MatchableResource resource_type = 2; + if (this->resource_type() != 0) { + ::google::protobuf::internal::WireFormatLite::WriteEnum( + 2, this->resource_type(), output); + } + + if (_internal_metadata_.have_unknown_fields()) { + ::google::protobuf::internal::WireFormat::SerializeUnknownFields( + _internal_metadata_.unknown_fields(), output); + } + // @@protoc_insertion_point(serialize_end:flyteidl.admin.ProjectAttributesDeleteRequest) +} + +::google::protobuf::uint8* ProjectAttributesDeleteRequest::InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const { + // @@protoc_insertion_point(serialize_to_array_start:flyteidl.admin.ProjectAttributesDeleteRequest) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + // string project = 1; + if (this->project().size() > 0) { + ::google::protobuf::internal::WireFormatLite::VerifyUtf8String( + this->project().data(), static_cast(this->project().length()), + ::google::protobuf::internal::WireFormatLite::SERIALIZE, + "flyteidl.admin.ProjectAttributesDeleteRequest.project"); + target = + ::google::protobuf::internal::WireFormatLite::WriteStringToArray( + 1, this->project(), target); + } + + // .flyteidl.admin.MatchableResource resource_type = 2; + if (this->resource_type() != 0) { + target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray( + 2, this->resource_type(), target); + } + + if (_internal_metadata_.have_unknown_fields()) { + target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target); + } + // @@protoc_insertion_point(serialize_to_array_end:flyteidl.admin.ProjectAttributesDeleteRequest) + return target; +} + +size_t ProjectAttributesDeleteRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:flyteidl.admin.ProjectAttributesDeleteRequest) + size_t total_size = 0; + + if (_internal_metadata_.have_unknown_fields()) { + total_size += + ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize( + _internal_metadata_.unknown_fields()); + } + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string project = 1; + if (this->project().size() > 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::StringSize( + this->project()); + } + + // .flyteidl.admin.MatchableResource resource_type = 2; + if (this->resource_type() != 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::EnumSize(this->resource_type()); + } + + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void ProjectAttributesDeleteRequest::MergeFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.admin.ProjectAttributesDeleteRequest) + GOOGLE_DCHECK_NE(&from, this); + const ProjectAttributesDeleteRequest* source = + ::google::protobuf::DynamicCastToGenerated( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.admin.ProjectAttributesDeleteRequest) + ::google::protobuf::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.admin.ProjectAttributesDeleteRequest) + MergeFrom(*source); + } +} + +void ProjectAttributesDeleteRequest::MergeFrom(const ProjectAttributesDeleteRequest& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.admin.ProjectAttributesDeleteRequest) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (from.project().size() > 0) { + + project_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.project_); + } + if (from.resource_type() != 0) { + set_resource_type(from.resource_type()); + } +} + +void ProjectAttributesDeleteRequest::CopyFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.admin.ProjectAttributesDeleteRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void ProjectAttributesDeleteRequest::CopyFrom(const ProjectAttributesDeleteRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.admin.ProjectAttributesDeleteRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ProjectAttributesDeleteRequest::IsInitialized() const { + return true; +} + +void ProjectAttributesDeleteRequest::Swap(ProjectAttributesDeleteRequest* other) { + if (other == this) return; + InternalSwap(other); +} +void ProjectAttributesDeleteRequest::InternalSwap(ProjectAttributesDeleteRequest* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); + project_.Swap(&other->project_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(), + GetArenaNoVirtual()); + swap(resource_type_, other->resource_type_); +} + +::google::protobuf::Metadata ProjectAttributesDeleteRequest::GetMetadata() const { + ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fadmin_2fproject_5fattributes_2eproto); + return ::file_level_metadata_flyteidl_2fadmin_2fproject_5fattributes_2eproto[kIndexInFileMessages]; +} + + +// =================================================================== + +void ProjectAttributesDeleteResponse::InitAsDefaultInstance() { +} +class ProjectAttributesDeleteResponse::HasBitSetters { + public: +}; + +#if !defined(_MSC_VER) || _MSC_VER >= 1900 +#endif // !defined(_MSC_VER) || _MSC_VER >= 1900 + +ProjectAttributesDeleteResponse::ProjectAttributesDeleteResponse() + : ::google::protobuf::Message(), _internal_metadata_(nullptr) { + SharedCtor(); + // @@protoc_insertion_point(constructor:flyteidl.admin.ProjectAttributesDeleteResponse) +} +ProjectAttributesDeleteResponse::ProjectAttributesDeleteResponse(const ProjectAttributesDeleteResponse& from) + : ::google::protobuf::Message(), + _internal_metadata_(nullptr) { + _internal_metadata_.MergeFrom(from._internal_metadata_); + // @@protoc_insertion_point(copy_constructor:flyteidl.admin.ProjectAttributesDeleteResponse) +} + +void ProjectAttributesDeleteResponse::SharedCtor() { +} + +ProjectAttributesDeleteResponse::~ProjectAttributesDeleteResponse() { + // @@protoc_insertion_point(destructor:flyteidl.admin.ProjectAttributesDeleteResponse) + SharedDtor(); +} + +void ProjectAttributesDeleteResponse::SharedDtor() { +} + +void ProjectAttributesDeleteResponse::SetCachedSize(int size) const { + _cached_size_.Set(size); +} +const ProjectAttributesDeleteResponse& ProjectAttributesDeleteResponse::default_instance() { + ::google::protobuf::internal::InitSCC(&::scc_info_ProjectAttributesDeleteResponse_flyteidl_2fadmin_2fproject_5fattributes_2eproto.base); + return *internal_default_instance(); +} + + +void ProjectAttributesDeleteResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:flyteidl.admin.ProjectAttributesDeleteResponse) + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _internal_metadata_.Clear(); +} + +#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +const char* ProjectAttributesDeleteResponse::_InternalParse(const char* begin, const char* end, void* object, + ::google::protobuf::internal::ParseContext* ctx) { + auto msg = static_cast(object); + ::google::protobuf::int32 size; (void)size; + int depth; (void)depth; + ::google::protobuf::uint32 tag; + ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end; + auto ptr = begin; + while (ptr < end) { + ptr = ::google::protobuf::io::Parse32(ptr, &tag); + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr); + switch (tag >> 3) { + default: { + if ((tag & 7) == 4 || tag == 0) { + ctx->EndGroup(tag); + return ptr; + } + auto res = UnknownFieldParse(tag, {_InternalParse, msg}, + ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx); + ptr = res.first; + GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr); + if (res.second) return ptr; + } + } // switch + } // while + return ptr; +} +#else // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER +bool ProjectAttributesDeleteResponse::MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) { +#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure + ::google::protobuf::uint32 tag; + // @@protoc_insertion_point(parse_start:flyteidl.admin.ProjectAttributesDeleteResponse) + for (;;) { + ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u); + tag = p.first; + if (!p.second) goto handle_unusual; + handle_unusual: + if (tag == 0) { + goto success; + } + DO_(::google::protobuf::internal::WireFormat::SkipField( + input, tag, _internal_metadata_.mutable_unknown_fields())); + } +success: + // @@protoc_insertion_point(parse_success:flyteidl.admin.ProjectAttributesDeleteResponse) + return true; +failure: + // @@protoc_insertion_point(parse_failure:flyteidl.admin.ProjectAttributesDeleteResponse) + return false; +#undef DO_ +} +#endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + +void ProjectAttributesDeleteResponse::SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const { + // @@protoc_insertion_point(serialize_start:flyteidl.admin.ProjectAttributesDeleteResponse) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (_internal_metadata_.have_unknown_fields()) { + ::google::protobuf::internal::WireFormat::SerializeUnknownFields( + _internal_metadata_.unknown_fields(), output); + } + // @@protoc_insertion_point(serialize_end:flyteidl.admin.ProjectAttributesDeleteResponse) +} + +::google::protobuf::uint8* ProjectAttributesDeleteResponse::InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const { + // @@protoc_insertion_point(serialize_to_array_start:flyteidl.admin.ProjectAttributesDeleteResponse) + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + + if (_internal_metadata_.have_unknown_fields()) { + target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields(), target); + } + // @@protoc_insertion_point(serialize_to_array_end:flyteidl.admin.ProjectAttributesDeleteResponse) + return target; +} + +size_t ProjectAttributesDeleteResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:flyteidl.admin.ProjectAttributesDeleteResponse) + size_t total_size = 0; + + if (_internal_metadata_.have_unknown_fields()) { + total_size += + ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize( + _internal_metadata_.unknown_fields()); + } + ::google::protobuf::uint32 cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); + SetCachedSize(cached_size); + return total_size; +} + +void ProjectAttributesDeleteResponse::MergeFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_merge_from_start:flyteidl.admin.ProjectAttributesDeleteResponse) + GOOGLE_DCHECK_NE(&from, this); + const ProjectAttributesDeleteResponse* source = + ::google::protobuf::DynamicCastToGenerated( + &from); + if (source == nullptr) { + // @@protoc_insertion_point(generalized_merge_from_cast_fail:flyteidl.admin.ProjectAttributesDeleteResponse) + ::google::protobuf::internal::ReflectionOps::Merge(from, this); + } else { + // @@protoc_insertion_point(generalized_merge_from_cast_success:flyteidl.admin.ProjectAttributesDeleteResponse) + MergeFrom(*source); + } +} + +void ProjectAttributesDeleteResponse::MergeFrom(const ProjectAttributesDeleteResponse& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:flyteidl.admin.ProjectAttributesDeleteResponse) + GOOGLE_DCHECK_NE(&from, this); + _internal_metadata_.MergeFrom(from._internal_metadata_); + ::google::protobuf::uint32 cached_has_bits = 0; + (void) cached_has_bits; + +} + +void ProjectAttributesDeleteResponse::CopyFrom(const ::google::protobuf::Message& from) { +// @@protoc_insertion_point(generalized_copy_from_start:flyteidl.admin.ProjectAttributesDeleteResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +void ProjectAttributesDeleteResponse::CopyFrom(const ProjectAttributesDeleteResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:flyteidl.admin.ProjectAttributesDeleteResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool ProjectAttributesDeleteResponse::IsInitialized() const { + return true; +} + +void ProjectAttributesDeleteResponse::Swap(ProjectAttributesDeleteResponse* other) { + if (other == this) return; + InternalSwap(other); +} +void ProjectAttributesDeleteResponse::InternalSwap(ProjectAttributesDeleteResponse* other) { + using std::swap; + _internal_metadata_.Swap(&other->_internal_metadata_); +} + +::google::protobuf::Metadata ProjectAttributesDeleteResponse::GetMetadata() const { + ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_flyteidl_2fadmin_2fproject_5fattributes_2eproto); + return ::file_level_metadata_flyteidl_2fadmin_2fproject_5fattributes_2eproto[kIndexInFileMessages]; +} + + +// @@protoc_insertion_point(namespace_scope) +} // namespace admin +} // namespace flyteidl +namespace google { +namespace protobuf { +template<> PROTOBUF_NOINLINE ::flyteidl::admin::ProjectAttributes* Arena::CreateMaybeMessage< ::flyteidl::admin::ProjectAttributes >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::ProjectAttributes >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::admin::ProjectAttributesUpdateRequest* Arena::CreateMaybeMessage< ::flyteidl::admin::ProjectAttributesUpdateRequest >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::ProjectAttributesUpdateRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::admin::ProjectAttributesUpdateResponse* Arena::CreateMaybeMessage< ::flyteidl::admin::ProjectAttributesUpdateResponse >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::ProjectAttributesUpdateResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::admin::ProjectAttributesGetRequest* Arena::CreateMaybeMessage< ::flyteidl::admin::ProjectAttributesGetRequest >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::ProjectAttributesGetRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::admin::ProjectAttributesGetResponse* Arena::CreateMaybeMessage< ::flyteidl::admin::ProjectAttributesGetResponse >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::ProjectAttributesGetResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::admin::ProjectAttributesDeleteRequest* Arena::CreateMaybeMessage< ::flyteidl::admin::ProjectAttributesDeleteRequest >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::ProjectAttributesDeleteRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::flyteidl::admin::ProjectAttributesDeleteResponse* Arena::CreateMaybeMessage< ::flyteidl::admin::ProjectAttributesDeleteResponse >(Arena* arena) { + return Arena::CreateInternal< ::flyteidl::admin::ProjectAttributesDeleteResponse >(arena); +} +} // namespace protobuf +} // namespace google + +// @@protoc_insertion_point(global_scope) +#include diff --git a/flyteidl/gen/pb-cpp/flyteidl/admin/project_attributes.pb.h b/flyteidl/gen/pb-cpp/flyteidl/admin/project_attributes.pb.h new file mode 100644 index 0000000000..3c859a5e4a --- /dev/null +++ b/flyteidl/gen/pb-cpp/flyteidl/admin/project_attributes.pb.h @@ -0,0 +1,1308 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: flyteidl/admin/project_attributes.proto + +#ifndef PROTOBUF_INCLUDED_flyteidl_2fadmin_2fproject_5fattributes_2eproto +#define PROTOBUF_INCLUDED_flyteidl_2fadmin_2fproject_5fattributes_2eproto + +#include +#include + +#include +#if PROTOBUF_VERSION < 3007000 +#error This file was generated by a newer version of protoc which is +#error incompatible with your Protocol Buffer headers. Please update +#error your headers. +#endif +#if 3007000 < PROTOBUF_MIN_PROTOC_VERSION +#error This file was generated by an older version of protoc which is +#error incompatible with your Protocol Buffer headers. Please +#error regenerate this file with a newer version of protoc. +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include // IWYU pragma: export +#include // IWYU pragma: export +#include +#include "flyteidl/admin/matchable_resource.pb.h" +// @@protoc_insertion_point(includes) +#include +#define PROTOBUF_INTERNAL_EXPORT_flyteidl_2fadmin_2fproject_5fattributes_2eproto + +// Internal implementation detail -- do not use these members. +struct TableStruct_flyteidl_2fadmin_2fproject_5fattributes_2eproto { + static const ::google::protobuf::internal::ParseTableField entries[] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::google::protobuf::internal::AuxillaryParseTableField aux[] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::google::protobuf::internal::ParseTable schema[7] + PROTOBUF_SECTION_VARIABLE(protodesc_cold); + static const ::google::protobuf::internal::FieldMetadata field_metadata[]; + static const ::google::protobuf::internal::SerializationTable serialization_table[]; + static const ::google::protobuf::uint32 offsets[]; +}; +void AddDescriptors_flyteidl_2fadmin_2fproject_5fattributes_2eproto(); +namespace flyteidl { +namespace admin { +class ProjectAttributes; +class ProjectAttributesDefaultTypeInternal; +extern ProjectAttributesDefaultTypeInternal _ProjectAttributes_default_instance_; +class ProjectAttributesDeleteRequest; +class ProjectAttributesDeleteRequestDefaultTypeInternal; +extern ProjectAttributesDeleteRequestDefaultTypeInternal _ProjectAttributesDeleteRequest_default_instance_; +class ProjectAttributesDeleteResponse; +class ProjectAttributesDeleteResponseDefaultTypeInternal; +extern ProjectAttributesDeleteResponseDefaultTypeInternal _ProjectAttributesDeleteResponse_default_instance_; +class ProjectAttributesGetRequest; +class ProjectAttributesGetRequestDefaultTypeInternal; +extern ProjectAttributesGetRequestDefaultTypeInternal _ProjectAttributesGetRequest_default_instance_; +class ProjectAttributesGetResponse; +class ProjectAttributesGetResponseDefaultTypeInternal; +extern ProjectAttributesGetResponseDefaultTypeInternal _ProjectAttributesGetResponse_default_instance_; +class ProjectAttributesUpdateRequest; +class ProjectAttributesUpdateRequestDefaultTypeInternal; +extern ProjectAttributesUpdateRequestDefaultTypeInternal _ProjectAttributesUpdateRequest_default_instance_; +class ProjectAttributesUpdateResponse; +class ProjectAttributesUpdateResponseDefaultTypeInternal; +extern ProjectAttributesUpdateResponseDefaultTypeInternal _ProjectAttributesUpdateResponse_default_instance_; +} // namespace admin +} // namespace flyteidl +namespace google { +namespace protobuf { +template<> ::flyteidl::admin::ProjectAttributes* Arena::CreateMaybeMessage<::flyteidl::admin::ProjectAttributes>(Arena*); +template<> ::flyteidl::admin::ProjectAttributesDeleteRequest* Arena::CreateMaybeMessage<::flyteidl::admin::ProjectAttributesDeleteRequest>(Arena*); +template<> ::flyteidl::admin::ProjectAttributesDeleteResponse* Arena::CreateMaybeMessage<::flyteidl::admin::ProjectAttributesDeleteResponse>(Arena*); +template<> ::flyteidl::admin::ProjectAttributesGetRequest* Arena::CreateMaybeMessage<::flyteidl::admin::ProjectAttributesGetRequest>(Arena*); +template<> ::flyteidl::admin::ProjectAttributesGetResponse* Arena::CreateMaybeMessage<::flyteidl::admin::ProjectAttributesGetResponse>(Arena*); +template<> ::flyteidl::admin::ProjectAttributesUpdateRequest* Arena::CreateMaybeMessage<::flyteidl::admin::ProjectAttributesUpdateRequest>(Arena*); +template<> ::flyteidl::admin::ProjectAttributesUpdateResponse* Arena::CreateMaybeMessage<::flyteidl::admin::ProjectAttributesUpdateResponse>(Arena*); +} // namespace protobuf +} // namespace google +namespace flyteidl { +namespace admin { + +// =================================================================== + +class ProjectAttributes final : + public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.admin.ProjectAttributes) */ { + public: + ProjectAttributes(); + virtual ~ProjectAttributes(); + + ProjectAttributes(const ProjectAttributes& from); + + inline ProjectAttributes& operator=(const ProjectAttributes& from) { + CopyFrom(from); + return *this; + } + #if LANG_CXX11 + ProjectAttributes(ProjectAttributes&& from) noexcept + : ProjectAttributes() { + *this = ::std::move(from); + } + + inline ProjectAttributes& operator=(ProjectAttributes&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + #endif + static const ::google::protobuf::Descriptor* descriptor() { + return default_instance().GetDescriptor(); + } + static const ProjectAttributes& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const ProjectAttributes* internal_default_instance() { + return reinterpret_cast( + &_ProjectAttributes_default_instance_); + } + static constexpr int kIndexInFileMessages = + 0; + + void Swap(ProjectAttributes* other); + friend void swap(ProjectAttributes& a, ProjectAttributes& b) { + a.Swap(&b); + } + + // implements Message ---------------------------------------------- + + inline ProjectAttributes* New() const final { + return CreateMaybeMessage(nullptr); + } + + ProjectAttributes* New(::google::protobuf::Arena* arena) const final { + return CreateMaybeMessage(arena); + } + void CopyFrom(const ::google::protobuf::Message& from) final; + void MergeFrom(const ::google::protobuf::Message& from) final; + void CopyFrom(const ProjectAttributes& from); + void MergeFrom(const ProjectAttributes& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx); + ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; } + #else + bool MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) final; + #endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + void SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const final; + ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ProjectAttributes* other); + private: + inline ::google::protobuf::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::google::protobuf::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + // string project = 1; + void clear_project(); + static const int kProjectFieldNumber = 1; + const ::std::string& project() const; + void set_project(const ::std::string& value); + #if LANG_CXX11 + void set_project(::std::string&& value); + #endif + void set_project(const char* value); + void set_project(const char* value, size_t size); + ::std::string* mutable_project(); + ::std::string* release_project(); + void set_allocated_project(::std::string* project); + + // .flyteidl.admin.MatchingAttributes matching_attributes = 2; + bool has_matching_attributes() const; + void clear_matching_attributes(); + static const int kMatchingAttributesFieldNumber = 2; + const ::flyteidl::admin::MatchingAttributes& matching_attributes() const; + ::flyteidl::admin::MatchingAttributes* release_matching_attributes(); + ::flyteidl::admin::MatchingAttributes* mutable_matching_attributes(); + void set_allocated_matching_attributes(::flyteidl::admin::MatchingAttributes* matching_attributes); + + // @@protoc_insertion_point(class_scope:flyteidl.admin.ProjectAttributes) + private: + class HasBitSetters; + + ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; + ::google::protobuf::internal::ArenaStringPtr project_; + ::flyteidl::admin::MatchingAttributes* matching_attributes_; + mutable ::google::protobuf::internal::CachedSize _cached_size_; + friend struct ::TableStruct_flyteidl_2fadmin_2fproject_5fattributes_2eproto; +}; +// ------------------------------------------------------------------- + +class ProjectAttributesUpdateRequest final : + public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.admin.ProjectAttributesUpdateRequest) */ { + public: + ProjectAttributesUpdateRequest(); + virtual ~ProjectAttributesUpdateRequest(); + + ProjectAttributesUpdateRequest(const ProjectAttributesUpdateRequest& from); + + inline ProjectAttributesUpdateRequest& operator=(const ProjectAttributesUpdateRequest& from) { + CopyFrom(from); + return *this; + } + #if LANG_CXX11 + ProjectAttributesUpdateRequest(ProjectAttributesUpdateRequest&& from) noexcept + : ProjectAttributesUpdateRequest() { + *this = ::std::move(from); + } + + inline ProjectAttributesUpdateRequest& operator=(ProjectAttributesUpdateRequest&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + #endif + static const ::google::protobuf::Descriptor* descriptor() { + return default_instance().GetDescriptor(); + } + static const ProjectAttributesUpdateRequest& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const ProjectAttributesUpdateRequest* internal_default_instance() { + return reinterpret_cast( + &_ProjectAttributesUpdateRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 1; + + void Swap(ProjectAttributesUpdateRequest* other); + friend void swap(ProjectAttributesUpdateRequest& a, ProjectAttributesUpdateRequest& b) { + a.Swap(&b); + } + + // implements Message ---------------------------------------------- + + inline ProjectAttributesUpdateRequest* New() const final { + return CreateMaybeMessage(nullptr); + } + + ProjectAttributesUpdateRequest* New(::google::protobuf::Arena* arena) const final { + return CreateMaybeMessage(arena); + } + void CopyFrom(const ::google::protobuf::Message& from) final; + void MergeFrom(const ::google::protobuf::Message& from) final; + void CopyFrom(const ProjectAttributesUpdateRequest& from); + void MergeFrom(const ProjectAttributesUpdateRequest& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx); + ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; } + #else + bool MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) final; + #endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + void SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const final; + ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ProjectAttributesUpdateRequest* other); + private: + inline ::google::protobuf::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::google::protobuf::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + // .flyteidl.admin.ProjectAttributes attributes = 1; + bool has_attributes() const; + void clear_attributes(); + static const int kAttributesFieldNumber = 1; + const ::flyteidl::admin::ProjectAttributes& attributes() const; + ::flyteidl::admin::ProjectAttributes* release_attributes(); + ::flyteidl::admin::ProjectAttributes* mutable_attributes(); + void set_allocated_attributes(::flyteidl::admin::ProjectAttributes* attributes); + + // @@protoc_insertion_point(class_scope:flyteidl.admin.ProjectAttributesUpdateRequest) + private: + class HasBitSetters; + + ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; + ::flyteidl::admin::ProjectAttributes* attributes_; + mutable ::google::protobuf::internal::CachedSize _cached_size_; + friend struct ::TableStruct_flyteidl_2fadmin_2fproject_5fattributes_2eproto; +}; +// ------------------------------------------------------------------- + +class ProjectAttributesUpdateResponse final : + public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.admin.ProjectAttributesUpdateResponse) */ { + public: + ProjectAttributesUpdateResponse(); + virtual ~ProjectAttributesUpdateResponse(); + + ProjectAttributesUpdateResponse(const ProjectAttributesUpdateResponse& from); + + inline ProjectAttributesUpdateResponse& operator=(const ProjectAttributesUpdateResponse& from) { + CopyFrom(from); + return *this; + } + #if LANG_CXX11 + ProjectAttributesUpdateResponse(ProjectAttributesUpdateResponse&& from) noexcept + : ProjectAttributesUpdateResponse() { + *this = ::std::move(from); + } + + inline ProjectAttributesUpdateResponse& operator=(ProjectAttributesUpdateResponse&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + #endif + static const ::google::protobuf::Descriptor* descriptor() { + return default_instance().GetDescriptor(); + } + static const ProjectAttributesUpdateResponse& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const ProjectAttributesUpdateResponse* internal_default_instance() { + return reinterpret_cast( + &_ProjectAttributesUpdateResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 2; + + void Swap(ProjectAttributesUpdateResponse* other); + friend void swap(ProjectAttributesUpdateResponse& a, ProjectAttributesUpdateResponse& b) { + a.Swap(&b); + } + + // implements Message ---------------------------------------------- + + inline ProjectAttributesUpdateResponse* New() const final { + return CreateMaybeMessage(nullptr); + } + + ProjectAttributesUpdateResponse* New(::google::protobuf::Arena* arena) const final { + return CreateMaybeMessage(arena); + } + void CopyFrom(const ::google::protobuf::Message& from) final; + void MergeFrom(const ::google::protobuf::Message& from) final; + void CopyFrom(const ProjectAttributesUpdateResponse& from); + void MergeFrom(const ProjectAttributesUpdateResponse& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx); + ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; } + #else + bool MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) final; + #endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + void SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const final; + ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ProjectAttributesUpdateResponse* other); + private: + inline ::google::protobuf::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::google::protobuf::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + // @@protoc_insertion_point(class_scope:flyteidl.admin.ProjectAttributesUpdateResponse) + private: + class HasBitSetters; + + ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; + mutable ::google::protobuf::internal::CachedSize _cached_size_; + friend struct ::TableStruct_flyteidl_2fadmin_2fproject_5fattributes_2eproto; +}; +// ------------------------------------------------------------------- + +class ProjectAttributesGetRequest final : + public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.admin.ProjectAttributesGetRequest) */ { + public: + ProjectAttributesGetRequest(); + virtual ~ProjectAttributesGetRequest(); + + ProjectAttributesGetRequest(const ProjectAttributesGetRequest& from); + + inline ProjectAttributesGetRequest& operator=(const ProjectAttributesGetRequest& from) { + CopyFrom(from); + return *this; + } + #if LANG_CXX11 + ProjectAttributesGetRequest(ProjectAttributesGetRequest&& from) noexcept + : ProjectAttributesGetRequest() { + *this = ::std::move(from); + } + + inline ProjectAttributesGetRequest& operator=(ProjectAttributesGetRequest&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + #endif + static const ::google::protobuf::Descriptor* descriptor() { + return default_instance().GetDescriptor(); + } + static const ProjectAttributesGetRequest& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const ProjectAttributesGetRequest* internal_default_instance() { + return reinterpret_cast( + &_ProjectAttributesGetRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 3; + + void Swap(ProjectAttributesGetRequest* other); + friend void swap(ProjectAttributesGetRequest& a, ProjectAttributesGetRequest& b) { + a.Swap(&b); + } + + // implements Message ---------------------------------------------- + + inline ProjectAttributesGetRequest* New() const final { + return CreateMaybeMessage(nullptr); + } + + ProjectAttributesGetRequest* New(::google::protobuf::Arena* arena) const final { + return CreateMaybeMessage(arena); + } + void CopyFrom(const ::google::protobuf::Message& from) final; + void MergeFrom(const ::google::protobuf::Message& from) final; + void CopyFrom(const ProjectAttributesGetRequest& from); + void MergeFrom(const ProjectAttributesGetRequest& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx); + ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; } + #else + bool MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) final; + #endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + void SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const final; + ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ProjectAttributesGetRequest* other); + private: + inline ::google::protobuf::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::google::protobuf::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + // string project = 1; + void clear_project(); + static const int kProjectFieldNumber = 1; + const ::std::string& project() const; + void set_project(const ::std::string& value); + #if LANG_CXX11 + void set_project(::std::string&& value); + #endif + void set_project(const char* value); + void set_project(const char* value, size_t size); + ::std::string* mutable_project(); + ::std::string* release_project(); + void set_allocated_project(::std::string* project); + + // .flyteidl.admin.MatchableResource resource_type = 2; + void clear_resource_type(); + static const int kResourceTypeFieldNumber = 2; + ::flyteidl::admin::MatchableResource resource_type() const; + void set_resource_type(::flyteidl::admin::MatchableResource value); + + // @@protoc_insertion_point(class_scope:flyteidl.admin.ProjectAttributesGetRequest) + private: + class HasBitSetters; + + ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; + ::google::protobuf::internal::ArenaStringPtr project_; + int resource_type_; + mutable ::google::protobuf::internal::CachedSize _cached_size_; + friend struct ::TableStruct_flyteidl_2fadmin_2fproject_5fattributes_2eproto; +}; +// ------------------------------------------------------------------- + +class ProjectAttributesGetResponse final : + public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.admin.ProjectAttributesGetResponse) */ { + public: + ProjectAttributesGetResponse(); + virtual ~ProjectAttributesGetResponse(); + + ProjectAttributesGetResponse(const ProjectAttributesGetResponse& from); + + inline ProjectAttributesGetResponse& operator=(const ProjectAttributesGetResponse& from) { + CopyFrom(from); + return *this; + } + #if LANG_CXX11 + ProjectAttributesGetResponse(ProjectAttributesGetResponse&& from) noexcept + : ProjectAttributesGetResponse() { + *this = ::std::move(from); + } + + inline ProjectAttributesGetResponse& operator=(ProjectAttributesGetResponse&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + #endif + static const ::google::protobuf::Descriptor* descriptor() { + return default_instance().GetDescriptor(); + } + static const ProjectAttributesGetResponse& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const ProjectAttributesGetResponse* internal_default_instance() { + return reinterpret_cast( + &_ProjectAttributesGetResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 4; + + void Swap(ProjectAttributesGetResponse* other); + friend void swap(ProjectAttributesGetResponse& a, ProjectAttributesGetResponse& b) { + a.Swap(&b); + } + + // implements Message ---------------------------------------------- + + inline ProjectAttributesGetResponse* New() const final { + return CreateMaybeMessage(nullptr); + } + + ProjectAttributesGetResponse* New(::google::protobuf::Arena* arena) const final { + return CreateMaybeMessage(arena); + } + void CopyFrom(const ::google::protobuf::Message& from) final; + void MergeFrom(const ::google::protobuf::Message& from) final; + void CopyFrom(const ProjectAttributesGetResponse& from); + void MergeFrom(const ProjectAttributesGetResponse& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx); + ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; } + #else + bool MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) final; + #endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + void SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const final; + ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ProjectAttributesGetResponse* other); + private: + inline ::google::protobuf::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::google::protobuf::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + // .flyteidl.admin.ProjectAttributes attributes = 1; + bool has_attributes() const; + void clear_attributes(); + static const int kAttributesFieldNumber = 1; + const ::flyteidl::admin::ProjectAttributes& attributes() const; + ::flyteidl::admin::ProjectAttributes* release_attributes(); + ::flyteidl::admin::ProjectAttributes* mutable_attributes(); + void set_allocated_attributes(::flyteidl::admin::ProjectAttributes* attributes); + + // @@protoc_insertion_point(class_scope:flyteidl.admin.ProjectAttributesGetResponse) + private: + class HasBitSetters; + + ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; + ::flyteidl::admin::ProjectAttributes* attributes_; + mutable ::google::protobuf::internal::CachedSize _cached_size_; + friend struct ::TableStruct_flyteidl_2fadmin_2fproject_5fattributes_2eproto; +}; +// ------------------------------------------------------------------- + +class ProjectAttributesDeleteRequest final : + public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.admin.ProjectAttributesDeleteRequest) */ { + public: + ProjectAttributesDeleteRequest(); + virtual ~ProjectAttributesDeleteRequest(); + + ProjectAttributesDeleteRequest(const ProjectAttributesDeleteRequest& from); + + inline ProjectAttributesDeleteRequest& operator=(const ProjectAttributesDeleteRequest& from) { + CopyFrom(from); + return *this; + } + #if LANG_CXX11 + ProjectAttributesDeleteRequest(ProjectAttributesDeleteRequest&& from) noexcept + : ProjectAttributesDeleteRequest() { + *this = ::std::move(from); + } + + inline ProjectAttributesDeleteRequest& operator=(ProjectAttributesDeleteRequest&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + #endif + static const ::google::protobuf::Descriptor* descriptor() { + return default_instance().GetDescriptor(); + } + static const ProjectAttributesDeleteRequest& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const ProjectAttributesDeleteRequest* internal_default_instance() { + return reinterpret_cast( + &_ProjectAttributesDeleteRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 5; + + void Swap(ProjectAttributesDeleteRequest* other); + friend void swap(ProjectAttributesDeleteRequest& a, ProjectAttributesDeleteRequest& b) { + a.Swap(&b); + } + + // implements Message ---------------------------------------------- + + inline ProjectAttributesDeleteRequest* New() const final { + return CreateMaybeMessage(nullptr); + } + + ProjectAttributesDeleteRequest* New(::google::protobuf::Arena* arena) const final { + return CreateMaybeMessage(arena); + } + void CopyFrom(const ::google::protobuf::Message& from) final; + void MergeFrom(const ::google::protobuf::Message& from) final; + void CopyFrom(const ProjectAttributesDeleteRequest& from); + void MergeFrom(const ProjectAttributesDeleteRequest& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx); + ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; } + #else + bool MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) final; + #endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + void SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const final; + ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ProjectAttributesDeleteRequest* other); + private: + inline ::google::protobuf::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::google::protobuf::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + // string project = 1; + void clear_project(); + static const int kProjectFieldNumber = 1; + const ::std::string& project() const; + void set_project(const ::std::string& value); + #if LANG_CXX11 + void set_project(::std::string&& value); + #endif + void set_project(const char* value); + void set_project(const char* value, size_t size); + ::std::string* mutable_project(); + ::std::string* release_project(); + void set_allocated_project(::std::string* project); + + // .flyteidl.admin.MatchableResource resource_type = 2; + void clear_resource_type(); + static const int kResourceTypeFieldNumber = 2; + ::flyteidl::admin::MatchableResource resource_type() const; + void set_resource_type(::flyteidl::admin::MatchableResource value); + + // @@protoc_insertion_point(class_scope:flyteidl.admin.ProjectAttributesDeleteRequest) + private: + class HasBitSetters; + + ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; + ::google::protobuf::internal::ArenaStringPtr project_; + int resource_type_; + mutable ::google::protobuf::internal::CachedSize _cached_size_; + friend struct ::TableStruct_flyteidl_2fadmin_2fproject_5fattributes_2eproto; +}; +// ------------------------------------------------------------------- + +class ProjectAttributesDeleteResponse final : + public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flyteidl.admin.ProjectAttributesDeleteResponse) */ { + public: + ProjectAttributesDeleteResponse(); + virtual ~ProjectAttributesDeleteResponse(); + + ProjectAttributesDeleteResponse(const ProjectAttributesDeleteResponse& from); + + inline ProjectAttributesDeleteResponse& operator=(const ProjectAttributesDeleteResponse& from) { + CopyFrom(from); + return *this; + } + #if LANG_CXX11 + ProjectAttributesDeleteResponse(ProjectAttributesDeleteResponse&& from) noexcept + : ProjectAttributesDeleteResponse() { + *this = ::std::move(from); + } + + inline ProjectAttributesDeleteResponse& operator=(ProjectAttributesDeleteResponse&& from) noexcept { + if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) { + if (this != &from) InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + #endif + static const ::google::protobuf::Descriptor* descriptor() { + return default_instance().GetDescriptor(); + } + static const ProjectAttributesDeleteResponse& default_instance(); + + static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY + static inline const ProjectAttributesDeleteResponse* internal_default_instance() { + return reinterpret_cast( + &_ProjectAttributesDeleteResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 6; + + void Swap(ProjectAttributesDeleteResponse* other); + friend void swap(ProjectAttributesDeleteResponse& a, ProjectAttributesDeleteResponse& b) { + a.Swap(&b); + } + + // implements Message ---------------------------------------------- + + inline ProjectAttributesDeleteResponse* New() const final { + return CreateMaybeMessage(nullptr); + } + + ProjectAttributesDeleteResponse* New(::google::protobuf::Arena* arena) const final { + return CreateMaybeMessage(arena); + } + void CopyFrom(const ::google::protobuf::Message& from) final; + void MergeFrom(const ::google::protobuf::Message& from) final; + void CopyFrom(const ProjectAttributesDeleteResponse& from); + void MergeFrom(const ProjectAttributesDeleteResponse& from); + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx); + ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; } + #else + bool MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) final; + #endif // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER + void SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const final; + ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray( + ::google::protobuf::uint8* target) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(ProjectAttributesDeleteResponse* other); + private: + inline ::google::protobuf::Arena* GetArenaNoVirtual() const { + return nullptr; + } + inline void* MaybeArenaPtr() const { + return nullptr; + } + public: + + ::google::protobuf::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + // @@protoc_insertion_point(class_scope:flyteidl.admin.ProjectAttributesDeleteResponse) + private: + class HasBitSetters; + + ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_; + mutable ::google::protobuf::internal::CachedSize _cached_size_; + friend struct ::TableStruct_flyteidl_2fadmin_2fproject_5fattributes_2eproto; +}; +// =================================================================== + + +// =================================================================== + +#ifdef __GNUC__ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wstrict-aliasing" +#endif // __GNUC__ +// ProjectAttributes + +// string project = 1; +inline void ProjectAttributes::clear_project() { + project_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& ProjectAttributes::project() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.ProjectAttributes.project) + return project_.GetNoArena(); +} +inline void ProjectAttributes::set_project(const ::std::string& value) { + + project_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.ProjectAttributes.project) +} +#if LANG_CXX11 +inline void ProjectAttributes::set_project(::std::string&& value) { + + project_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.ProjectAttributes.project) +} +#endif +inline void ProjectAttributes::set_project(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + project_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.ProjectAttributes.project) +} +inline void ProjectAttributes::set_project(const char* value, size_t size) { + + project_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.ProjectAttributes.project) +} +inline ::std::string* ProjectAttributes::mutable_project() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.ProjectAttributes.project) + return project_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* ProjectAttributes::release_project() { + // @@protoc_insertion_point(field_release:flyteidl.admin.ProjectAttributes.project) + + return project_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void ProjectAttributes::set_allocated_project(::std::string* project) { + if (project != nullptr) { + + } else { + + } + project_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), project); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ProjectAttributes.project) +} + +// .flyteidl.admin.MatchingAttributes matching_attributes = 2; +inline bool ProjectAttributes::has_matching_attributes() const { + return this != internal_default_instance() && matching_attributes_ != nullptr; +} +inline const ::flyteidl::admin::MatchingAttributes& ProjectAttributes::matching_attributes() const { + const ::flyteidl::admin::MatchingAttributes* p = matching_attributes_; + // @@protoc_insertion_point(field_get:flyteidl.admin.ProjectAttributes.matching_attributes) + return p != nullptr ? *p : *reinterpret_cast( + &::flyteidl::admin::_MatchingAttributes_default_instance_); +} +inline ::flyteidl::admin::MatchingAttributes* ProjectAttributes::release_matching_attributes() { + // @@protoc_insertion_point(field_release:flyteidl.admin.ProjectAttributes.matching_attributes) + + ::flyteidl::admin::MatchingAttributes* temp = matching_attributes_; + matching_attributes_ = nullptr; + return temp; +} +inline ::flyteidl::admin::MatchingAttributes* ProjectAttributes::mutable_matching_attributes() { + + if (matching_attributes_ == nullptr) { + auto* p = CreateMaybeMessage<::flyteidl::admin::MatchingAttributes>(GetArenaNoVirtual()); + matching_attributes_ = p; + } + // @@protoc_insertion_point(field_mutable:flyteidl.admin.ProjectAttributes.matching_attributes) + return matching_attributes_; +} +inline void ProjectAttributes::set_allocated_matching_attributes(::flyteidl::admin::MatchingAttributes* matching_attributes) { + ::google::protobuf::Arena* message_arena = GetArenaNoVirtual(); + if (message_arena == nullptr) { + delete reinterpret_cast< ::google::protobuf::MessageLite*>(matching_attributes_); + } + if (matching_attributes) { + ::google::protobuf::Arena* submessage_arena = nullptr; + if (message_arena != submessage_arena) { + matching_attributes = ::google::protobuf::internal::GetOwnedMessage( + message_arena, matching_attributes, submessage_arena); + } + + } else { + + } + matching_attributes_ = matching_attributes; + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ProjectAttributes.matching_attributes) +} + +// ------------------------------------------------------------------- + +// ProjectAttributesUpdateRequest + +// .flyteidl.admin.ProjectAttributes attributes = 1; +inline bool ProjectAttributesUpdateRequest::has_attributes() const { + return this != internal_default_instance() && attributes_ != nullptr; +} +inline void ProjectAttributesUpdateRequest::clear_attributes() { + if (GetArenaNoVirtual() == nullptr && attributes_ != nullptr) { + delete attributes_; + } + attributes_ = nullptr; +} +inline const ::flyteidl::admin::ProjectAttributes& ProjectAttributesUpdateRequest::attributes() const { + const ::flyteidl::admin::ProjectAttributes* p = attributes_; + // @@protoc_insertion_point(field_get:flyteidl.admin.ProjectAttributesUpdateRequest.attributes) + return p != nullptr ? *p : *reinterpret_cast( + &::flyteidl::admin::_ProjectAttributes_default_instance_); +} +inline ::flyteidl::admin::ProjectAttributes* ProjectAttributesUpdateRequest::release_attributes() { + // @@protoc_insertion_point(field_release:flyteidl.admin.ProjectAttributesUpdateRequest.attributes) + + ::flyteidl::admin::ProjectAttributes* temp = attributes_; + attributes_ = nullptr; + return temp; +} +inline ::flyteidl::admin::ProjectAttributes* ProjectAttributesUpdateRequest::mutable_attributes() { + + if (attributes_ == nullptr) { + auto* p = CreateMaybeMessage<::flyteidl::admin::ProjectAttributes>(GetArenaNoVirtual()); + attributes_ = p; + } + // @@protoc_insertion_point(field_mutable:flyteidl.admin.ProjectAttributesUpdateRequest.attributes) + return attributes_; +} +inline void ProjectAttributesUpdateRequest::set_allocated_attributes(::flyteidl::admin::ProjectAttributes* attributes) { + ::google::protobuf::Arena* message_arena = GetArenaNoVirtual(); + if (message_arena == nullptr) { + delete attributes_; + } + if (attributes) { + ::google::protobuf::Arena* submessage_arena = nullptr; + if (message_arena != submessage_arena) { + attributes = ::google::protobuf::internal::GetOwnedMessage( + message_arena, attributes, submessage_arena); + } + + } else { + + } + attributes_ = attributes; + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ProjectAttributesUpdateRequest.attributes) +} + +// ------------------------------------------------------------------- + +// ProjectAttributesUpdateResponse + +// ------------------------------------------------------------------- + +// ProjectAttributesGetRequest + +// string project = 1; +inline void ProjectAttributesGetRequest::clear_project() { + project_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& ProjectAttributesGetRequest::project() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.ProjectAttributesGetRequest.project) + return project_.GetNoArena(); +} +inline void ProjectAttributesGetRequest::set_project(const ::std::string& value) { + + project_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.ProjectAttributesGetRequest.project) +} +#if LANG_CXX11 +inline void ProjectAttributesGetRequest::set_project(::std::string&& value) { + + project_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.ProjectAttributesGetRequest.project) +} +#endif +inline void ProjectAttributesGetRequest::set_project(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + project_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.ProjectAttributesGetRequest.project) +} +inline void ProjectAttributesGetRequest::set_project(const char* value, size_t size) { + + project_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.ProjectAttributesGetRequest.project) +} +inline ::std::string* ProjectAttributesGetRequest::mutable_project() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.ProjectAttributesGetRequest.project) + return project_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* ProjectAttributesGetRequest::release_project() { + // @@protoc_insertion_point(field_release:flyteidl.admin.ProjectAttributesGetRequest.project) + + return project_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void ProjectAttributesGetRequest::set_allocated_project(::std::string* project) { + if (project != nullptr) { + + } else { + + } + project_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), project); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ProjectAttributesGetRequest.project) +} + +// .flyteidl.admin.MatchableResource resource_type = 2; +inline void ProjectAttributesGetRequest::clear_resource_type() { + resource_type_ = 0; +} +inline ::flyteidl::admin::MatchableResource ProjectAttributesGetRequest::resource_type() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.ProjectAttributesGetRequest.resource_type) + return static_cast< ::flyteidl::admin::MatchableResource >(resource_type_); +} +inline void ProjectAttributesGetRequest::set_resource_type(::flyteidl::admin::MatchableResource value) { + + resource_type_ = value; + // @@protoc_insertion_point(field_set:flyteidl.admin.ProjectAttributesGetRequest.resource_type) +} + +// ------------------------------------------------------------------- + +// ProjectAttributesGetResponse + +// .flyteidl.admin.ProjectAttributes attributes = 1; +inline bool ProjectAttributesGetResponse::has_attributes() const { + return this != internal_default_instance() && attributes_ != nullptr; +} +inline void ProjectAttributesGetResponse::clear_attributes() { + if (GetArenaNoVirtual() == nullptr && attributes_ != nullptr) { + delete attributes_; + } + attributes_ = nullptr; +} +inline const ::flyteidl::admin::ProjectAttributes& ProjectAttributesGetResponse::attributes() const { + const ::flyteidl::admin::ProjectAttributes* p = attributes_; + // @@protoc_insertion_point(field_get:flyteidl.admin.ProjectAttributesGetResponse.attributes) + return p != nullptr ? *p : *reinterpret_cast( + &::flyteidl::admin::_ProjectAttributes_default_instance_); +} +inline ::flyteidl::admin::ProjectAttributes* ProjectAttributesGetResponse::release_attributes() { + // @@protoc_insertion_point(field_release:flyteidl.admin.ProjectAttributesGetResponse.attributes) + + ::flyteidl::admin::ProjectAttributes* temp = attributes_; + attributes_ = nullptr; + return temp; +} +inline ::flyteidl::admin::ProjectAttributes* ProjectAttributesGetResponse::mutable_attributes() { + + if (attributes_ == nullptr) { + auto* p = CreateMaybeMessage<::flyteidl::admin::ProjectAttributes>(GetArenaNoVirtual()); + attributes_ = p; + } + // @@protoc_insertion_point(field_mutable:flyteidl.admin.ProjectAttributesGetResponse.attributes) + return attributes_; +} +inline void ProjectAttributesGetResponse::set_allocated_attributes(::flyteidl::admin::ProjectAttributes* attributes) { + ::google::protobuf::Arena* message_arena = GetArenaNoVirtual(); + if (message_arena == nullptr) { + delete attributes_; + } + if (attributes) { + ::google::protobuf::Arena* submessage_arena = nullptr; + if (message_arena != submessage_arena) { + attributes = ::google::protobuf::internal::GetOwnedMessage( + message_arena, attributes, submessage_arena); + } + + } else { + + } + attributes_ = attributes; + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ProjectAttributesGetResponse.attributes) +} + +// ------------------------------------------------------------------- + +// ProjectAttributesDeleteRequest + +// string project = 1; +inline void ProjectAttributesDeleteRequest::clear_project() { + project_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline const ::std::string& ProjectAttributesDeleteRequest::project() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.ProjectAttributesDeleteRequest.project) + return project_.GetNoArena(); +} +inline void ProjectAttributesDeleteRequest::set_project(const ::std::string& value) { + + project_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value); + // @@protoc_insertion_point(field_set:flyteidl.admin.ProjectAttributesDeleteRequest.project) +} +#if LANG_CXX11 +inline void ProjectAttributesDeleteRequest::set_project(::std::string&& value) { + + project_.SetNoArena( + &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value)); + // @@protoc_insertion_point(field_set_rvalue:flyteidl.admin.ProjectAttributesDeleteRequest.project) +} +#endif +inline void ProjectAttributesDeleteRequest::set_project(const char* value) { + GOOGLE_DCHECK(value != nullptr); + + project_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value)); + // @@protoc_insertion_point(field_set_char:flyteidl.admin.ProjectAttributesDeleteRequest.project) +} +inline void ProjectAttributesDeleteRequest::set_project(const char* value, size_t size) { + + project_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), + ::std::string(reinterpret_cast(value), size)); + // @@protoc_insertion_point(field_set_pointer:flyteidl.admin.ProjectAttributesDeleteRequest.project) +} +inline ::std::string* ProjectAttributesDeleteRequest::mutable_project() { + + // @@protoc_insertion_point(field_mutable:flyteidl.admin.ProjectAttributesDeleteRequest.project) + return project_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline ::std::string* ProjectAttributesDeleteRequest::release_project() { + // @@protoc_insertion_point(field_release:flyteidl.admin.ProjectAttributesDeleteRequest.project) + + return project_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited()); +} +inline void ProjectAttributesDeleteRequest::set_allocated_project(::std::string* project) { + if (project != nullptr) { + + } else { + + } + project_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), project); + // @@protoc_insertion_point(field_set_allocated:flyteidl.admin.ProjectAttributesDeleteRequest.project) +} + +// .flyteidl.admin.MatchableResource resource_type = 2; +inline void ProjectAttributesDeleteRequest::clear_resource_type() { + resource_type_ = 0; +} +inline ::flyteidl::admin::MatchableResource ProjectAttributesDeleteRequest::resource_type() const { + // @@protoc_insertion_point(field_get:flyteidl.admin.ProjectAttributesDeleteRequest.resource_type) + return static_cast< ::flyteidl::admin::MatchableResource >(resource_type_); +} +inline void ProjectAttributesDeleteRequest::set_resource_type(::flyteidl::admin::MatchableResource value) { + + resource_type_ = value; + // @@protoc_insertion_point(field_set:flyteidl.admin.ProjectAttributesDeleteRequest.resource_type) +} + +// ------------------------------------------------------------------- + +// ProjectAttributesDeleteResponse + +#ifdef __GNUC__ + #pragma GCC diagnostic pop +#endif // __GNUC__ +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + + +// @@protoc_insertion_point(namespace_scope) + +} // namespace admin +} // namespace flyteidl + +// @@protoc_insertion_point(global_scope) + +#include +#endif // PROTOBUF_INCLUDED_flyteidl_2fadmin_2fproject_5fattributes_2eproto diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/admin.grpc.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/service/admin.grpc.pb.cc index 6c0368c5c9..3afa314dfc 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/admin.grpc.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/service/admin.grpc.pb.cc @@ -59,6 +59,9 @@ static const char* AdminService_method_names[] = { "/flyteidl.service.AdminService/UpdateProjectDomainAttributes", "/flyteidl.service.AdminService/GetProjectDomainAttributes", "/flyteidl.service.AdminService/DeleteProjectDomainAttributes", + "/flyteidl.service.AdminService/UpdateProjectAttributes", + "/flyteidl.service.AdminService/GetProjectAttributes", + "/flyteidl.service.AdminService/DeleteProjectAttributes", "/flyteidl.service.AdminService/UpdateWorkflowAttributes", "/flyteidl.service.AdminService/GetWorkflowAttributes", "/flyteidl.service.AdminService/DeleteWorkflowAttributes", @@ -115,14 +118,17 @@ AdminService::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& chann , rpcmethod_UpdateProjectDomainAttributes_(AdminService_method_names[36], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) , rpcmethod_GetProjectDomainAttributes_(AdminService_method_names[37], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) , rpcmethod_DeleteProjectDomainAttributes_(AdminService_method_names[38], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_UpdateWorkflowAttributes_(AdminService_method_names[39], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_GetWorkflowAttributes_(AdminService_method_names[40], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_DeleteWorkflowAttributes_(AdminService_method_names[41], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_ListMatchableAttributes_(AdminService_method_names[42], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_ListNamedEntities_(AdminService_method_names[43], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_GetNamedEntity_(AdminService_method_names[44], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_UpdateNamedEntity_(AdminService_method_names[45], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) - , rpcmethod_GetVersion_(AdminService_method_names[46], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_UpdateProjectAttributes_(AdminService_method_names[39], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_GetProjectAttributes_(AdminService_method_names[40], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_DeleteProjectAttributes_(AdminService_method_names[41], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_UpdateWorkflowAttributes_(AdminService_method_names[42], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_GetWorkflowAttributes_(AdminService_method_names[43], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_DeleteWorkflowAttributes_(AdminService_method_names[44], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_ListMatchableAttributes_(AdminService_method_names[45], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_ListNamedEntities_(AdminService_method_names[46], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_GetNamedEntity_(AdminService_method_names[47], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_UpdateNamedEntity_(AdminService_method_names[48], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_GetVersion_(AdminService_method_names[49], ::grpc::internal::RpcMethod::NORMAL_RPC, channel) {} ::grpc::Status AdminService::Stub::CreateTask(::grpc::ClientContext* context, const ::flyteidl::admin::TaskCreateRequest& request, ::flyteidl::admin::TaskCreateResponse* response) { @@ -1217,6 +1223,90 @@ ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectDomainAttributesDel return ::grpc::internal::ClientAsyncResponseReaderFactory< ::flyteidl::admin::ProjectDomainAttributesDeleteResponse>::Create(channel_.get(), cq, rpcmethod_DeleteProjectDomainAttributes_, context, request, false); } +::grpc::Status AdminService::Stub::UpdateProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesUpdateRequest& request, ::flyteidl::admin::ProjectAttributesUpdateResponse* response) { + return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_UpdateProjectAttributes_, context, request, response); +} + +void AdminService::Stub::experimental_async::UpdateProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesUpdateRequest* request, ::flyteidl::admin::ProjectAttributesUpdateResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall(stub_->channel_.get(), stub_->rpcmethod_UpdateProjectAttributes_, context, request, response, std::move(f)); +} + +void AdminService::Stub::experimental_async::UpdateProjectAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectAttributesUpdateResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall(stub_->channel_.get(), stub_->rpcmethod_UpdateProjectAttributes_, context, request, response, std::move(f)); +} + +void AdminService::Stub::experimental_async::UpdateProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesUpdateRequest* request, ::flyteidl::admin::ProjectAttributesUpdateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create(stub_->channel_.get(), stub_->rpcmethod_UpdateProjectAttributes_, context, request, response, reactor); +} + +void AdminService::Stub::experimental_async::UpdateProjectAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectAttributesUpdateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create(stub_->channel_.get(), stub_->rpcmethod_UpdateProjectAttributes_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectAttributesUpdateResponse>* AdminService::Stub::AsyncUpdateProjectAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesUpdateRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderFactory< ::flyteidl::admin::ProjectAttributesUpdateResponse>::Create(channel_.get(), cq, rpcmethod_UpdateProjectAttributes_, context, request, true); +} + +::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectAttributesUpdateResponse>* AdminService::Stub::PrepareAsyncUpdateProjectAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesUpdateRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderFactory< ::flyteidl::admin::ProjectAttributesUpdateResponse>::Create(channel_.get(), cq, rpcmethod_UpdateProjectAttributes_, context, request, false); +} + +::grpc::Status AdminService::Stub::GetProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesGetRequest& request, ::flyteidl::admin::ProjectAttributesGetResponse* response) { + return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_GetProjectAttributes_, context, request, response); +} + +void AdminService::Stub::experimental_async::GetProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesGetRequest* request, ::flyteidl::admin::ProjectAttributesGetResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall(stub_->channel_.get(), stub_->rpcmethod_GetProjectAttributes_, context, request, response, std::move(f)); +} + +void AdminService::Stub::experimental_async::GetProjectAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectAttributesGetResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall(stub_->channel_.get(), stub_->rpcmethod_GetProjectAttributes_, context, request, response, std::move(f)); +} + +void AdminService::Stub::experimental_async::GetProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesGetRequest* request, ::flyteidl::admin::ProjectAttributesGetResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create(stub_->channel_.get(), stub_->rpcmethod_GetProjectAttributes_, context, request, response, reactor); +} + +void AdminService::Stub::experimental_async::GetProjectAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectAttributesGetResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create(stub_->channel_.get(), stub_->rpcmethod_GetProjectAttributes_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectAttributesGetResponse>* AdminService::Stub::AsyncGetProjectAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesGetRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderFactory< ::flyteidl::admin::ProjectAttributesGetResponse>::Create(channel_.get(), cq, rpcmethod_GetProjectAttributes_, context, request, true); +} + +::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectAttributesGetResponse>* AdminService::Stub::PrepareAsyncGetProjectAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesGetRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderFactory< ::flyteidl::admin::ProjectAttributesGetResponse>::Create(channel_.get(), cq, rpcmethod_GetProjectAttributes_, context, request, false); +} + +::grpc::Status AdminService::Stub::DeleteProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesDeleteRequest& request, ::flyteidl::admin::ProjectAttributesDeleteResponse* response) { + return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_DeleteProjectAttributes_, context, request, response); +} + +void AdminService::Stub::experimental_async::DeleteProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesDeleteRequest* request, ::flyteidl::admin::ProjectAttributesDeleteResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall(stub_->channel_.get(), stub_->rpcmethod_DeleteProjectAttributes_, context, request, response, std::move(f)); +} + +void AdminService::Stub::experimental_async::DeleteProjectAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectAttributesDeleteResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall(stub_->channel_.get(), stub_->rpcmethod_DeleteProjectAttributes_, context, request, response, std::move(f)); +} + +void AdminService::Stub::experimental_async::DeleteProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesDeleteRequest* request, ::flyteidl::admin::ProjectAttributesDeleteResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create(stub_->channel_.get(), stub_->rpcmethod_DeleteProjectAttributes_, context, request, response, reactor); +} + +void AdminService::Stub::experimental_async::DeleteProjectAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectAttributesDeleteResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create(stub_->channel_.get(), stub_->rpcmethod_DeleteProjectAttributes_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectAttributesDeleteResponse>* AdminService::Stub::AsyncDeleteProjectAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesDeleteRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderFactory< ::flyteidl::admin::ProjectAttributesDeleteResponse>::Create(channel_.get(), cq, rpcmethod_DeleteProjectAttributes_, context, request, true); +} + +::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectAttributesDeleteResponse>* AdminService::Stub::PrepareAsyncDeleteProjectAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesDeleteRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderFactory< ::flyteidl::admin::ProjectAttributesDeleteResponse>::Create(channel_.get(), cq, rpcmethod_DeleteProjectAttributes_, context, request, false); +} + ::grpc::Status AdminService::Stub::UpdateWorkflowAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowAttributesUpdateRequest& request, ::flyteidl::admin::WorkflowAttributesUpdateResponse* response) { return ::grpc::internal::BlockingUnaryCall(channel_.get(), rpcmethod_UpdateWorkflowAttributes_, context, request, response); } @@ -1640,40 +1730,55 @@ AdminService::Service::Service() { AddMethod(new ::grpc::internal::RpcServiceMethod( AdminService_method_names[39], ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::ProjectAttributesUpdateRequest, ::flyteidl::admin::ProjectAttributesUpdateResponse>( + std::mem_fn(&AdminService::Service::UpdateProjectAttributes), this))); + AddMethod(new ::grpc::internal::RpcServiceMethod( + AdminService_method_names[40], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::ProjectAttributesGetRequest, ::flyteidl::admin::ProjectAttributesGetResponse>( + std::mem_fn(&AdminService::Service::GetProjectAttributes), this))); + AddMethod(new ::grpc::internal::RpcServiceMethod( + AdminService_method_names[41], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::ProjectAttributesDeleteRequest, ::flyteidl::admin::ProjectAttributesDeleteResponse>( + std::mem_fn(&AdminService::Service::DeleteProjectAttributes), this))); + AddMethod(new ::grpc::internal::RpcServiceMethod( + AdminService_method_names[42], + ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::WorkflowAttributesUpdateRequest, ::flyteidl::admin::WorkflowAttributesUpdateResponse>( std::mem_fn(&AdminService::Service::UpdateWorkflowAttributes), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[40], + AdminService_method_names[43], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::WorkflowAttributesGetRequest, ::flyteidl::admin::WorkflowAttributesGetResponse>( std::mem_fn(&AdminService::Service::GetWorkflowAttributes), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[41], + AdminService_method_names[44], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::WorkflowAttributesDeleteRequest, ::flyteidl::admin::WorkflowAttributesDeleteResponse>( std::mem_fn(&AdminService::Service::DeleteWorkflowAttributes), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[42], + AdminService_method_names[45], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::ListMatchableAttributesRequest, ::flyteidl::admin::ListMatchableAttributesResponse>( std::mem_fn(&AdminService::Service::ListMatchableAttributes), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[43], + AdminService_method_names[46], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::NamedEntityListRequest, ::flyteidl::admin::NamedEntityList>( std::mem_fn(&AdminService::Service::ListNamedEntities), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[44], + AdminService_method_names[47], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::NamedEntityGetRequest, ::flyteidl::admin::NamedEntity>( std::mem_fn(&AdminService::Service::GetNamedEntity), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[45], + AdminService_method_names[48], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::NamedEntityUpdateRequest, ::flyteidl::admin::NamedEntityUpdateResponse>( std::mem_fn(&AdminService::Service::UpdateNamedEntity), this))); AddMethod(new ::grpc::internal::RpcServiceMethod( - AdminService_method_names[46], + AdminService_method_names[49], ::grpc::internal::RpcMethod::NORMAL_RPC, new ::grpc::internal::RpcMethodHandler< AdminService::Service, ::flyteidl::admin::GetVersionRequest, ::flyteidl::admin::GetVersionResponse>( std::mem_fn(&AdminService::Service::GetVersion), this))); @@ -1955,6 +2060,27 @@ ::grpc::Status AdminService::Service::DeleteProjectDomainAttributes(::grpc::Serv return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } +::grpc::Status AdminService::Service::UpdateProjectAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectAttributesUpdateRequest* request, ::flyteidl::admin::ProjectAttributesUpdateResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + +::grpc::Status AdminService::Service::GetProjectAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectAttributesGetRequest* request, ::flyteidl::admin::ProjectAttributesGetResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + +::grpc::Status AdminService::Service::DeleteProjectAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectAttributesDeleteRequest* request, ::flyteidl::admin::ProjectAttributesDeleteResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + ::grpc::Status AdminService::Service::UpdateWorkflowAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::WorkflowAttributesUpdateRequest* request, ::flyteidl::admin::WorkflowAttributesUpdateResponse* response) { (void) context; (void) request; 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 d30d96362c..ae89f5ab12 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/admin.grpc.pb.h +++ b/flyteidl/gen/pb-cpp/flyteidl/service/admin.grpc.pb.h @@ -368,6 +368,30 @@ 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` at the project level + virtual ::grpc::Status UpdateProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesUpdateRequest& request, ::flyteidl::admin::ProjectAttributesUpdateResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectAttributesUpdateResponse>> AsyncUpdateProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesUpdateRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectAttributesUpdateResponse>>(AsyncUpdateProjectAttributesRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectAttributesUpdateResponse>> PrepareAsyncUpdateProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesUpdateRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectAttributesUpdateResponse>>(PrepareAsyncUpdateProjectAttributesRaw(context, request, cq)); + } + // Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. + virtual ::grpc::Status GetProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesGetRequest& request, ::flyteidl::admin::ProjectAttributesGetResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectAttributesGetResponse>> AsyncGetProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesGetRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectAttributesGetResponse>>(AsyncGetProjectAttributesRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectAttributesGetResponse>> PrepareAsyncGetProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesGetRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectAttributesGetResponse>>(PrepareAsyncGetProjectAttributesRaw(context, request, cq)); + } + // Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. + virtual ::grpc::Status DeleteProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesDeleteRequest& request, ::flyteidl::admin::ProjectAttributesDeleteResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectAttributesDeleteResponse>> AsyncDeleteProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesDeleteRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectAttributesDeleteResponse>>(AsyncDeleteProjectAttributesRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectAttributesDeleteResponse>> PrepareAsyncDeleteProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesDeleteRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectAttributesDeleteResponse>>(PrepareAsyncDeleteProjectAttributesRaw(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) { @@ -635,6 +659,21 @@ class AdminService final { 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` at the project level + virtual void UpdateProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesUpdateRequest* request, ::flyteidl::admin::ProjectAttributesUpdateResponse* response, std::function) = 0; + virtual void UpdateProjectAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectAttributesUpdateResponse* response, std::function) = 0; + virtual void UpdateProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesUpdateRequest* request, ::flyteidl::admin::ProjectAttributesUpdateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + virtual void UpdateProjectAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectAttributesUpdateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. + virtual void GetProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesGetRequest* request, ::flyteidl::admin::ProjectAttributesGetResponse* response, std::function) = 0; + virtual void GetProjectAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectAttributesGetResponse* response, std::function) = 0; + virtual void GetProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesGetRequest* request, ::flyteidl::admin::ProjectAttributesGetResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + virtual void GetProjectAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectAttributesGetResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + // Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. + virtual void DeleteProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesDeleteRequest* request, ::flyteidl::admin::ProjectAttributesDeleteResponse* response, std::function) = 0; + virtual void DeleteProjectAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectAttributesDeleteResponse* response, std::function) = 0; + virtual void DeleteProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesDeleteRequest* request, ::flyteidl::admin::ProjectAttributesDeleteResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0; + virtual void DeleteProjectAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectAttributesDeleteResponse* 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; @@ -755,6 +794,12 @@ class AdminService final { virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectDomainAttributesGetResponse>* PrepareAsyncGetProjectDomainAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectDomainAttributesGetRequest& request, ::grpc::CompletionQueue* cq) = 0; virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectDomainAttributesDeleteResponse>* AsyncDeleteProjectDomainAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectDomainAttributesDeleteRequest& request, ::grpc::CompletionQueue* cq) = 0; virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectDomainAttributesDeleteResponse>* PrepareAsyncDeleteProjectDomainAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectDomainAttributesDeleteRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectAttributesUpdateResponse>* AsyncUpdateProjectAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesUpdateRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectAttributesUpdateResponse>* PrepareAsyncUpdateProjectAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesUpdateRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectAttributesGetResponse>* AsyncGetProjectAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesGetRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectAttributesGetResponse>* PrepareAsyncGetProjectAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesGetRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectAttributesDeleteResponse>* AsyncDeleteProjectAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesDeleteRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::ProjectAttributesDeleteResponse>* PrepareAsyncDeleteProjectAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesDeleteRequest& request, ::grpc::CompletionQueue* cq) = 0; virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowAttributesUpdateResponse>* AsyncUpdateWorkflowAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowAttributesUpdateRequest& request, ::grpc::CompletionQueue* cq) = 0; virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowAttributesUpdateResponse>* PrepareAsyncUpdateWorkflowAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowAttributesUpdateRequest& request, ::grpc::CompletionQueue* cq) = 0; virtual ::grpc::ClientAsyncResponseReaderInterface< ::flyteidl::admin::WorkflowAttributesGetResponse>* AsyncGetWorkflowAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowAttributesGetRequest& request, ::grpc::CompletionQueue* cq) = 0; @@ -1048,6 +1093,27 @@ class AdminService final { std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectDomainAttributesDeleteResponse>> PrepareAsyncDeleteProjectDomainAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectDomainAttributesDeleteRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectDomainAttributesDeleteResponse>>(PrepareAsyncDeleteProjectDomainAttributesRaw(context, request, cq)); } + ::grpc::Status UpdateProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesUpdateRequest& request, ::flyteidl::admin::ProjectAttributesUpdateResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectAttributesUpdateResponse>> AsyncUpdateProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesUpdateRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectAttributesUpdateResponse>>(AsyncUpdateProjectAttributesRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectAttributesUpdateResponse>> PrepareAsyncUpdateProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesUpdateRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectAttributesUpdateResponse>>(PrepareAsyncUpdateProjectAttributesRaw(context, request, cq)); + } + ::grpc::Status GetProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesGetRequest& request, ::flyteidl::admin::ProjectAttributesGetResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectAttributesGetResponse>> AsyncGetProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesGetRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectAttributesGetResponse>>(AsyncGetProjectAttributesRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectAttributesGetResponse>> PrepareAsyncGetProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesGetRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectAttributesGetResponse>>(PrepareAsyncGetProjectAttributesRaw(context, request, cq)); + } + ::grpc::Status DeleteProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesDeleteRequest& request, ::flyteidl::admin::ProjectAttributesDeleteResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectAttributesDeleteResponse>> AsyncDeleteProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesDeleteRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectAttributesDeleteResponse>>(AsyncDeleteProjectAttributesRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectAttributesDeleteResponse>> PrepareAsyncDeleteProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesDeleteRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectAttributesDeleteResponse>>(PrepareAsyncDeleteProjectAttributesRaw(context, request, cq)); + } ::grpc::Status UpdateWorkflowAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowAttributesUpdateRequest& request, ::flyteidl::admin::WorkflowAttributesUpdateResponse* response) override; std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::WorkflowAttributesUpdateResponse>> AsyncUpdateWorkflowAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowAttributesUpdateRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::WorkflowAttributesUpdateResponse>>(AsyncUpdateWorkflowAttributesRaw(context, request, cq)); @@ -1263,6 +1329,18 @@ class AdminService final { void DeleteProjectDomainAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectDomainAttributesDeleteResponse* response, std::function) override; void DeleteProjectDomainAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectDomainAttributesDeleteRequest* request, ::flyteidl::admin::ProjectDomainAttributesDeleteResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; void DeleteProjectDomainAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectDomainAttributesDeleteResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; + void UpdateProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesUpdateRequest* request, ::flyteidl::admin::ProjectAttributesUpdateResponse* response, std::function) override; + void UpdateProjectAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectAttributesUpdateResponse* response, std::function) override; + void UpdateProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesUpdateRequest* request, ::flyteidl::admin::ProjectAttributesUpdateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; + void UpdateProjectAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectAttributesUpdateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; + void GetProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesGetRequest* request, ::flyteidl::admin::ProjectAttributesGetResponse* response, std::function) override; + void GetProjectAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectAttributesGetResponse* response, std::function) override; + void GetProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesGetRequest* request, ::flyteidl::admin::ProjectAttributesGetResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; + void GetProjectAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectAttributesGetResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; + void DeleteProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesDeleteRequest* request, ::flyteidl::admin::ProjectAttributesDeleteResponse* response, std::function) override; + void DeleteProjectAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectAttributesDeleteResponse* response, std::function) override; + void DeleteProjectAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesDeleteRequest* request, ::flyteidl::admin::ProjectAttributesDeleteResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; + void DeleteProjectAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::ProjectAttributesDeleteResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; void UpdateWorkflowAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowAttributesUpdateRequest* request, ::flyteidl::admin::WorkflowAttributesUpdateResponse* response, std::function) override; void UpdateWorkflowAttributes(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::flyteidl::admin::WorkflowAttributesUpdateResponse* response, std::function) override; void UpdateWorkflowAttributes(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowAttributesUpdateRequest* request, ::flyteidl::admin::WorkflowAttributesUpdateResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override; @@ -1384,6 +1462,12 @@ class AdminService final { ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectDomainAttributesGetResponse>* PrepareAsyncGetProjectDomainAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectDomainAttributesGetRequest& request, ::grpc::CompletionQueue* cq) override; ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectDomainAttributesDeleteResponse>* AsyncDeleteProjectDomainAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectDomainAttributesDeleteRequest& request, ::grpc::CompletionQueue* cq) override; ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectDomainAttributesDeleteResponse>* PrepareAsyncDeleteProjectDomainAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectDomainAttributesDeleteRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectAttributesUpdateResponse>* AsyncUpdateProjectAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesUpdateRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectAttributesUpdateResponse>* PrepareAsyncUpdateProjectAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesUpdateRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectAttributesGetResponse>* AsyncGetProjectAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesGetRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectAttributesGetResponse>* PrepareAsyncGetProjectAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesGetRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectAttributesDeleteResponse>* AsyncDeleteProjectAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesDeleteRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::ProjectAttributesDeleteResponse>* PrepareAsyncDeleteProjectAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::ProjectAttributesDeleteRequest& request, ::grpc::CompletionQueue* cq) override; ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::WorkflowAttributesUpdateResponse>* AsyncUpdateWorkflowAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowAttributesUpdateRequest& request, ::grpc::CompletionQueue* cq) override; ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::WorkflowAttributesUpdateResponse>* PrepareAsyncUpdateWorkflowAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowAttributesUpdateRequest& request, ::grpc::CompletionQueue* cq) override; ::grpc::ClientAsyncResponseReader< ::flyteidl::admin::WorkflowAttributesGetResponse>* AsyncGetWorkflowAttributesRaw(::grpc::ClientContext* context, const ::flyteidl::admin::WorkflowAttributesGetRequest& request, ::grpc::CompletionQueue* cq) override; @@ -1439,6 +1523,9 @@ class AdminService final { const ::grpc::internal::RpcMethod rpcmethod_UpdateProjectDomainAttributes_; const ::grpc::internal::RpcMethod rpcmethod_GetProjectDomainAttributes_; const ::grpc::internal::RpcMethod rpcmethod_DeleteProjectDomainAttributes_; + const ::grpc::internal::RpcMethod rpcmethod_UpdateProjectAttributes_; + const ::grpc::internal::RpcMethod rpcmethod_GetProjectAttributes_; + const ::grpc::internal::RpcMethod rpcmethod_DeleteProjectAttributes_; const ::grpc::internal::RpcMethod rpcmethod_UpdateWorkflowAttributes_; const ::grpc::internal::RpcMethod rpcmethod_GetWorkflowAttributes_; const ::grpc::internal::RpcMethod rpcmethod_DeleteWorkflowAttributes_; @@ -1538,6 +1625,12 @@ class AdminService final { 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` at the project level + virtual ::grpc::Status UpdateProjectAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectAttributesUpdateRequest* request, ::flyteidl::admin::ProjectAttributesUpdateResponse* response); + // Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. + virtual ::grpc::Status GetProjectAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectAttributesGetRequest* request, ::flyteidl::admin::ProjectAttributesGetResponse* response); + // Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. + virtual ::grpc::Status DeleteProjectAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectAttributesDeleteRequest* request, ::flyteidl::admin::ProjectAttributesDeleteResponse* 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. @@ -2335,12 +2428,72 @@ class AdminService final { } }; template + class WithAsyncMethod_UpdateProjectAttributes : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithAsyncMethod_UpdateProjectAttributes() { + ::grpc::Service::MarkMethodAsync(39); + } + ~WithAsyncMethod_UpdateProjectAttributes() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status UpdateProjectAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectAttributesUpdateRequest* request, ::flyteidl::admin::ProjectAttributesUpdateResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestUpdateProjectAttributes(::grpc::ServerContext* context, ::flyteidl::admin::ProjectAttributesUpdateRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::ProjectAttributesUpdateResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(39, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithAsyncMethod_GetProjectAttributes : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithAsyncMethod_GetProjectAttributes() { + ::grpc::Service::MarkMethodAsync(40); + } + ~WithAsyncMethod_GetProjectAttributes() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetProjectAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectAttributesGetRequest* request, ::flyteidl::admin::ProjectAttributesGetResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestGetProjectAttributes(::grpc::ServerContext* context, ::flyteidl::admin::ProjectAttributesGetRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::ProjectAttributesGetResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(40, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithAsyncMethod_DeleteProjectAttributes : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithAsyncMethod_DeleteProjectAttributes() { + ::grpc::Service::MarkMethodAsync(41); + } + ~WithAsyncMethod_DeleteProjectAttributes() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status DeleteProjectAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectAttributesDeleteRequest* request, ::flyteidl::admin::ProjectAttributesDeleteResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestDeleteProjectAttributes(::grpc::ServerContext* context, ::flyteidl::admin::ProjectAttributesDeleteRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::ProjectAttributesDeleteResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(41, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template class WithAsyncMethod_UpdateWorkflowAttributes : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_UpdateWorkflowAttributes() { - ::grpc::Service::MarkMethodAsync(39); + ::grpc::Service::MarkMethodAsync(42); } ~WithAsyncMethod_UpdateWorkflowAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -2351,7 +2504,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestUpdateWorkflowAttributes(::grpc::ServerContext* context, ::flyteidl::admin::WorkflowAttributesUpdateRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::WorkflowAttributesUpdateResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(39, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(42, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2360,7 +2513,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_GetWorkflowAttributes() { - ::grpc::Service::MarkMethodAsync(40); + ::grpc::Service::MarkMethodAsync(43); } ~WithAsyncMethod_GetWorkflowAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -2371,7 +2524,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestGetWorkflowAttributes(::grpc::ServerContext* context, ::flyteidl::admin::WorkflowAttributesGetRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::WorkflowAttributesGetResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(40, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(43, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2380,7 +2533,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_DeleteWorkflowAttributes() { - ::grpc::Service::MarkMethodAsync(41); + ::grpc::Service::MarkMethodAsync(44); } ~WithAsyncMethod_DeleteWorkflowAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -2391,7 +2544,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestDeleteWorkflowAttributes(::grpc::ServerContext* context, ::flyteidl::admin::WorkflowAttributesDeleteRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::WorkflowAttributesDeleteResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(41, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(44, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2400,7 +2553,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_ListMatchableAttributes() { - ::grpc::Service::MarkMethodAsync(42); + ::grpc::Service::MarkMethodAsync(45); } ~WithAsyncMethod_ListMatchableAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -2411,7 +2564,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestListMatchableAttributes(::grpc::ServerContext* context, ::flyteidl::admin::ListMatchableAttributesRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::ListMatchableAttributesResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(42, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(45, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2420,7 +2573,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_ListNamedEntities() { - ::grpc::Service::MarkMethodAsync(43); + ::grpc::Service::MarkMethodAsync(46); } ~WithAsyncMethod_ListNamedEntities() override { BaseClassMustBeDerivedFromService(this); @@ -2431,7 +2584,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestListNamedEntities(::grpc::ServerContext* context, ::flyteidl::admin::NamedEntityListRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::NamedEntityList>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(43, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(46, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2440,7 +2593,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_GetNamedEntity() { - ::grpc::Service::MarkMethodAsync(44); + ::grpc::Service::MarkMethodAsync(47); } ~WithAsyncMethod_GetNamedEntity() override { BaseClassMustBeDerivedFromService(this); @@ -2451,7 +2604,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestGetNamedEntity(::grpc::ServerContext* context, ::flyteidl::admin::NamedEntityGetRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::NamedEntity>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(44, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(47, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2460,7 +2613,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_UpdateNamedEntity() { - ::grpc::Service::MarkMethodAsync(45); + ::grpc::Service::MarkMethodAsync(48); } ~WithAsyncMethod_UpdateNamedEntity() override { BaseClassMustBeDerivedFromService(this); @@ -2471,7 +2624,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestUpdateNamedEntity(::grpc::ServerContext* context, ::flyteidl::admin::NamedEntityUpdateRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::NamedEntityUpdateResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(45, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(48, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -2480,7 +2633,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithAsyncMethod_GetVersion() { - ::grpc::Service::MarkMethodAsync(46); + ::grpc::Service::MarkMethodAsync(49); } ~WithAsyncMethod_GetVersion() override { BaseClassMustBeDerivedFromService(this); @@ -2491,10 +2644,10 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestGetVersion(::grpc::ServerContext* context, ::flyteidl::admin::GetVersionRequest* request, ::grpc::ServerAsyncResponseWriter< ::flyteidl::admin::GetVersionResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(46, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(49, context, request, response, new_call_cq, notification_cq, tag); } }; - typedef WithAsyncMethod_CreateTask > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > AsyncService; + typedef WithAsyncMethod_CreateTask > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > AsyncService; template class ExperimentalWithCallbackMethod_CreateTask : public BaseClass { private: @@ -3705,12 +3858,105 @@ class AdminService final { virtual void DeleteProjectDomainAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectDomainAttributesDeleteRequest* request, ::flyteidl::admin::ProjectDomainAttributesDeleteResponse* response, ::grpc::experimental::ServerCallbackRpcController* controller) { controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "")); } }; template + class ExperimentalWithCallbackMethod_UpdateProjectAttributes : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + ExperimentalWithCallbackMethod_UpdateProjectAttributes() { + ::grpc::Service::experimental().MarkMethodCallback(39, + new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::ProjectAttributesUpdateRequest, ::flyteidl::admin::ProjectAttributesUpdateResponse>( + [this](::grpc::ServerContext* context, + const ::flyteidl::admin::ProjectAttributesUpdateRequest* request, + ::flyteidl::admin::ProjectAttributesUpdateResponse* response, + ::grpc::experimental::ServerCallbackRpcController* controller) { + return this->UpdateProjectAttributes(context, request, response, controller); + })); + } + void SetMessageAllocatorFor_UpdateProjectAttributes( + ::grpc::experimental::MessageAllocator< ::flyteidl::admin::ProjectAttributesUpdateRequest, ::flyteidl::admin::ProjectAttributesUpdateResponse>* allocator) { + static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::ProjectAttributesUpdateRequest, ::flyteidl::admin::ProjectAttributesUpdateResponse>*>( + ::grpc::Service::experimental().GetHandler(39)) + ->SetMessageAllocator(allocator); + } + ~ExperimentalWithCallbackMethod_UpdateProjectAttributes() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status UpdateProjectAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectAttributesUpdateRequest* request, ::flyteidl::admin::ProjectAttributesUpdateResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual void UpdateProjectAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectAttributesUpdateRequest* request, ::flyteidl::admin::ProjectAttributesUpdateResponse* response, ::grpc::experimental::ServerCallbackRpcController* controller) { controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "")); } + }; + template + class ExperimentalWithCallbackMethod_GetProjectAttributes : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + ExperimentalWithCallbackMethod_GetProjectAttributes() { + ::grpc::Service::experimental().MarkMethodCallback(40, + new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::ProjectAttributesGetRequest, ::flyteidl::admin::ProjectAttributesGetResponse>( + [this](::grpc::ServerContext* context, + const ::flyteidl::admin::ProjectAttributesGetRequest* request, + ::flyteidl::admin::ProjectAttributesGetResponse* response, + ::grpc::experimental::ServerCallbackRpcController* controller) { + return this->GetProjectAttributes(context, request, response, controller); + })); + } + void SetMessageAllocatorFor_GetProjectAttributes( + ::grpc::experimental::MessageAllocator< ::flyteidl::admin::ProjectAttributesGetRequest, ::flyteidl::admin::ProjectAttributesGetResponse>* allocator) { + static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::ProjectAttributesGetRequest, ::flyteidl::admin::ProjectAttributesGetResponse>*>( + ::grpc::Service::experimental().GetHandler(40)) + ->SetMessageAllocator(allocator); + } + ~ExperimentalWithCallbackMethod_GetProjectAttributes() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetProjectAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectAttributesGetRequest* request, ::flyteidl::admin::ProjectAttributesGetResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual void GetProjectAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectAttributesGetRequest* request, ::flyteidl::admin::ProjectAttributesGetResponse* response, ::grpc::experimental::ServerCallbackRpcController* controller) { controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "")); } + }; + template + class ExperimentalWithCallbackMethod_DeleteProjectAttributes : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + ExperimentalWithCallbackMethod_DeleteProjectAttributes() { + ::grpc::Service::experimental().MarkMethodCallback(41, + new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::ProjectAttributesDeleteRequest, ::flyteidl::admin::ProjectAttributesDeleteResponse>( + [this](::grpc::ServerContext* context, + const ::flyteidl::admin::ProjectAttributesDeleteRequest* request, + ::flyteidl::admin::ProjectAttributesDeleteResponse* response, + ::grpc::experimental::ServerCallbackRpcController* controller) { + return this->DeleteProjectAttributes(context, request, response, controller); + })); + } + void SetMessageAllocatorFor_DeleteProjectAttributes( + ::grpc::experimental::MessageAllocator< ::flyteidl::admin::ProjectAttributesDeleteRequest, ::flyteidl::admin::ProjectAttributesDeleteResponse>* allocator) { + static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::ProjectAttributesDeleteRequest, ::flyteidl::admin::ProjectAttributesDeleteResponse>*>( + ::grpc::Service::experimental().GetHandler(41)) + ->SetMessageAllocator(allocator); + } + ~ExperimentalWithCallbackMethod_DeleteProjectAttributes() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status DeleteProjectAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectAttributesDeleteRequest* request, ::flyteidl::admin::ProjectAttributesDeleteResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual void DeleteProjectAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectAttributesDeleteRequest* request, ::flyteidl::admin::ProjectAttributesDeleteResponse* response, ::grpc::experimental::ServerCallbackRpcController* controller) { controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "")); } + }; + template class ExperimentalWithCallbackMethod_UpdateWorkflowAttributes : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_UpdateWorkflowAttributes() { - ::grpc::Service::experimental().MarkMethodCallback(39, + ::grpc::Service::experimental().MarkMethodCallback(42, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::WorkflowAttributesUpdateRequest, ::flyteidl::admin::WorkflowAttributesUpdateResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::WorkflowAttributesUpdateRequest* request, @@ -3722,7 +3968,7 @@ class AdminService final { void SetMessageAllocatorFor_UpdateWorkflowAttributes( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::WorkflowAttributesUpdateRequest, ::flyteidl::admin::WorkflowAttributesUpdateResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::WorkflowAttributesUpdateRequest, ::flyteidl::admin::WorkflowAttributesUpdateResponse>*>( - ::grpc::Service::experimental().GetHandler(39)) + ::grpc::Service::experimental().GetHandler(42)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_UpdateWorkflowAttributes() override { @@ -3741,7 +3987,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_GetWorkflowAttributes() { - ::grpc::Service::experimental().MarkMethodCallback(40, + ::grpc::Service::experimental().MarkMethodCallback(43, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::WorkflowAttributesGetRequest, ::flyteidl::admin::WorkflowAttributesGetResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::WorkflowAttributesGetRequest* request, @@ -3753,7 +3999,7 @@ class AdminService final { void SetMessageAllocatorFor_GetWorkflowAttributes( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::WorkflowAttributesGetRequest, ::flyteidl::admin::WorkflowAttributesGetResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::WorkflowAttributesGetRequest, ::flyteidl::admin::WorkflowAttributesGetResponse>*>( - ::grpc::Service::experimental().GetHandler(40)) + ::grpc::Service::experimental().GetHandler(43)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_GetWorkflowAttributes() override { @@ -3772,7 +4018,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_DeleteWorkflowAttributes() { - ::grpc::Service::experimental().MarkMethodCallback(41, + ::grpc::Service::experimental().MarkMethodCallback(44, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::WorkflowAttributesDeleteRequest, ::flyteidl::admin::WorkflowAttributesDeleteResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::WorkflowAttributesDeleteRequest* request, @@ -3784,7 +4030,7 @@ class AdminService final { void SetMessageAllocatorFor_DeleteWorkflowAttributes( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::WorkflowAttributesDeleteRequest, ::flyteidl::admin::WorkflowAttributesDeleteResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::WorkflowAttributesDeleteRequest, ::flyteidl::admin::WorkflowAttributesDeleteResponse>*>( - ::grpc::Service::experimental().GetHandler(41)) + ::grpc::Service::experimental().GetHandler(44)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_DeleteWorkflowAttributes() override { @@ -3803,7 +4049,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_ListMatchableAttributes() { - ::grpc::Service::experimental().MarkMethodCallback(42, + ::grpc::Service::experimental().MarkMethodCallback(45, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::ListMatchableAttributesRequest, ::flyteidl::admin::ListMatchableAttributesResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::ListMatchableAttributesRequest* request, @@ -3815,7 +4061,7 @@ class AdminService final { void SetMessageAllocatorFor_ListMatchableAttributes( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::ListMatchableAttributesRequest, ::flyteidl::admin::ListMatchableAttributesResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::ListMatchableAttributesRequest, ::flyteidl::admin::ListMatchableAttributesResponse>*>( - ::grpc::Service::experimental().GetHandler(42)) + ::grpc::Service::experimental().GetHandler(45)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_ListMatchableAttributes() override { @@ -3834,7 +4080,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_ListNamedEntities() { - ::grpc::Service::experimental().MarkMethodCallback(43, + ::grpc::Service::experimental().MarkMethodCallback(46, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::NamedEntityListRequest, ::flyteidl::admin::NamedEntityList>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::NamedEntityListRequest* request, @@ -3846,7 +4092,7 @@ class AdminService final { void SetMessageAllocatorFor_ListNamedEntities( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::NamedEntityListRequest, ::flyteidl::admin::NamedEntityList>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::NamedEntityListRequest, ::flyteidl::admin::NamedEntityList>*>( - ::grpc::Service::experimental().GetHandler(43)) + ::grpc::Service::experimental().GetHandler(46)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_ListNamedEntities() override { @@ -3865,7 +4111,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_GetNamedEntity() { - ::grpc::Service::experimental().MarkMethodCallback(44, + ::grpc::Service::experimental().MarkMethodCallback(47, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::NamedEntityGetRequest, ::flyteidl::admin::NamedEntity>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::NamedEntityGetRequest* request, @@ -3877,7 +4123,7 @@ class AdminService final { void SetMessageAllocatorFor_GetNamedEntity( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::NamedEntityGetRequest, ::flyteidl::admin::NamedEntity>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::NamedEntityGetRequest, ::flyteidl::admin::NamedEntity>*>( - ::grpc::Service::experimental().GetHandler(44)) + ::grpc::Service::experimental().GetHandler(47)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_GetNamedEntity() override { @@ -3896,7 +4142,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_UpdateNamedEntity() { - ::grpc::Service::experimental().MarkMethodCallback(45, + ::grpc::Service::experimental().MarkMethodCallback(48, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::NamedEntityUpdateRequest, ::flyteidl::admin::NamedEntityUpdateResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::NamedEntityUpdateRequest* request, @@ -3908,7 +4154,7 @@ class AdminService final { void SetMessageAllocatorFor_UpdateNamedEntity( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::NamedEntityUpdateRequest, ::flyteidl::admin::NamedEntityUpdateResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::NamedEntityUpdateRequest, ::flyteidl::admin::NamedEntityUpdateResponse>*>( - ::grpc::Service::experimental().GetHandler(45)) + ::grpc::Service::experimental().GetHandler(48)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_UpdateNamedEntity() override { @@ -3927,7 +4173,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithCallbackMethod_GetVersion() { - ::grpc::Service::experimental().MarkMethodCallback(46, + ::grpc::Service::experimental().MarkMethodCallback(49, new ::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::GetVersionRequest, ::flyteidl::admin::GetVersionResponse>( [this](::grpc::ServerContext* context, const ::flyteidl::admin::GetVersionRequest* request, @@ -3939,7 +4185,7 @@ class AdminService final { void SetMessageAllocatorFor_GetVersion( ::grpc::experimental::MessageAllocator< ::flyteidl::admin::GetVersionRequest, ::flyteidl::admin::GetVersionResponse>* allocator) { static_cast<::grpc::internal::CallbackUnaryHandler< ::flyteidl::admin::GetVersionRequest, ::flyteidl::admin::GetVersionResponse>*>( - ::grpc::Service::experimental().GetHandler(46)) + ::grpc::Service::experimental().GetHandler(49)) ->SetMessageAllocator(allocator); } ~ExperimentalWithCallbackMethod_GetVersion() override { @@ -3952,7 +4198,7 @@ class AdminService final { } virtual void GetVersion(::grpc::ServerContext* context, const ::flyteidl::admin::GetVersionRequest* request, ::flyteidl::admin::GetVersionResponse* response, ::grpc::experimental::ServerCallbackRpcController* controller) { controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "")); } }; - typedef ExperimentalWithCallbackMethod_CreateTask > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ExperimentalCallbackService; + typedef ExperimentalWithCallbackMethod_CreateTask > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ExperimentalCallbackService; template class WithGenericMethod_CreateTask : public BaseClass { private: @@ -4617,12 +4863,63 @@ class AdminService final { } }; template + class WithGenericMethod_UpdateProjectAttributes : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithGenericMethod_UpdateProjectAttributes() { + ::grpc::Service::MarkMethodGeneric(39); + } + ~WithGenericMethod_UpdateProjectAttributes() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status UpdateProjectAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectAttributesUpdateRequest* request, ::flyteidl::admin::ProjectAttributesUpdateResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithGenericMethod_GetProjectAttributes : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithGenericMethod_GetProjectAttributes() { + ::grpc::Service::MarkMethodGeneric(40); + } + ~WithGenericMethod_GetProjectAttributes() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetProjectAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectAttributesGetRequest* request, ::flyteidl::admin::ProjectAttributesGetResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithGenericMethod_DeleteProjectAttributes : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithGenericMethod_DeleteProjectAttributes() { + ::grpc::Service::MarkMethodGeneric(41); + } + ~WithGenericMethod_DeleteProjectAttributes() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status DeleteProjectAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectAttributesDeleteRequest* request, ::flyteidl::admin::ProjectAttributesDeleteResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template class WithGenericMethod_UpdateWorkflowAttributes : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_UpdateWorkflowAttributes() { - ::grpc::Service::MarkMethodGeneric(39); + ::grpc::Service::MarkMethodGeneric(42); } ~WithGenericMethod_UpdateWorkflowAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -4639,7 +4936,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_GetWorkflowAttributes() { - ::grpc::Service::MarkMethodGeneric(40); + ::grpc::Service::MarkMethodGeneric(43); } ~WithGenericMethod_GetWorkflowAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -4656,7 +4953,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_DeleteWorkflowAttributes() { - ::grpc::Service::MarkMethodGeneric(41); + ::grpc::Service::MarkMethodGeneric(44); } ~WithGenericMethod_DeleteWorkflowAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -4673,7 +4970,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_ListMatchableAttributes() { - ::grpc::Service::MarkMethodGeneric(42); + ::grpc::Service::MarkMethodGeneric(45); } ~WithGenericMethod_ListMatchableAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -4690,7 +4987,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_ListNamedEntities() { - ::grpc::Service::MarkMethodGeneric(43); + ::grpc::Service::MarkMethodGeneric(46); } ~WithGenericMethod_ListNamedEntities() override { BaseClassMustBeDerivedFromService(this); @@ -4707,7 +5004,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_GetNamedEntity() { - ::grpc::Service::MarkMethodGeneric(44); + ::grpc::Service::MarkMethodGeneric(47); } ~WithGenericMethod_GetNamedEntity() override { BaseClassMustBeDerivedFromService(this); @@ -4724,7 +5021,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_UpdateNamedEntity() { - ::grpc::Service::MarkMethodGeneric(45); + ::grpc::Service::MarkMethodGeneric(48); } ~WithGenericMethod_UpdateNamedEntity() override { BaseClassMustBeDerivedFromService(this); @@ -4741,7 +5038,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithGenericMethod_GetVersion() { - ::grpc::Service::MarkMethodGeneric(46); + ::grpc::Service::MarkMethodGeneric(49); } ~WithGenericMethod_GetVersion() override { BaseClassMustBeDerivedFromService(this); @@ -5533,12 +5830,72 @@ class AdminService final { } }; template + class WithRawMethod_UpdateProjectAttributes : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithRawMethod_UpdateProjectAttributes() { + ::grpc::Service::MarkMethodRaw(39); + } + ~WithRawMethod_UpdateProjectAttributes() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status UpdateProjectAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectAttributesUpdateRequest* request, ::flyteidl::admin::ProjectAttributesUpdateResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestUpdateProjectAttributes(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(39, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawMethod_GetProjectAttributes : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithRawMethod_GetProjectAttributes() { + ::grpc::Service::MarkMethodRaw(40); + } + ~WithRawMethod_GetProjectAttributes() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetProjectAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectAttributesGetRequest* request, ::flyteidl::admin::ProjectAttributesGetResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestGetProjectAttributes(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(40, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawMethod_DeleteProjectAttributes : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithRawMethod_DeleteProjectAttributes() { + ::grpc::Service::MarkMethodRaw(41); + } + ~WithRawMethod_DeleteProjectAttributes() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status DeleteProjectAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectAttributesDeleteRequest* request, ::flyteidl::admin::ProjectAttributesDeleteResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestDeleteProjectAttributes(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(41, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template class WithRawMethod_UpdateWorkflowAttributes : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_UpdateWorkflowAttributes() { - ::grpc::Service::MarkMethodRaw(39); + ::grpc::Service::MarkMethodRaw(42); } ~WithRawMethod_UpdateWorkflowAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -5549,7 +5906,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestUpdateWorkflowAttributes(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(39, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(42, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5558,7 +5915,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_GetWorkflowAttributes() { - ::grpc::Service::MarkMethodRaw(40); + ::grpc::Service::MarkMethodRaw(43); } ~WithRawMethod_GetWorkflowAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -5569,7 +5926,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestGetWorkflowAttributes(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(40, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(43, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5578,7 +5935,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_DeleteWorkflowAttributes() { - ::grpc::Service::MarkMethodRaw(41); + ::grpc::Service::MarkMethodRaw(44); } ~WithRawMethod_DeleteWorkflowAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -5589,7 +5946,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestDeleteWorkflowAttributes(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(41, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(44, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5598,7 +5955,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_ListMatchableAttributes() { - ::grpc::Service::MarkMethodRaw(42); + ::grpc::Service::MarkMethodRaw(45); } ~WithRawMethod_ListMatchableAttributes() override { BaseClassMustBeDerivedFromService(this); @@ -5609,7 +5966,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestListMatchableAttributes(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(42, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(45, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5618,7 +5975,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_ListNamedEntities() { - ::grpc::Service::MarkMethodRaw(43); + ::grpc::Service::MarkMethodRaw(46); } ~WithRawMethod_ListNamedEntities() override { BaseClassMustBeDerivedFromService(this); @@ -5629,7 +5986,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestListNamedEntities(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(43, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(46, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5638,7 +5995,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_GetNamedEntity() { - ::grpc::Service::MarkMethodRaw(44); + ::grpc::Service::MarkMethodRaw(47); } ~WithRawMethod_GetNamedEntity() override { BaseClassMustBeDerivedFromService(this); @@ -5649,7 +6006,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestGetNamedEntity(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(44, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(47, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5658,7 +6015,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_UpdateNamedEntity() { - ::grpc::Service::MarkMethodRaw(45); + ::grpc::Service::MarkMethodRaw(48); } ~WithRawMethod_UpdateNamedEntity() override { BaseClassMustBeDerivedFromService(this); @@ -5669,7 +6026,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestUpdateNamedEntity(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(45, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(48, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -5678,7 +6035,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithRawMethod_GetVersion() { - ::grpc::Service::MarkMethodRaw(46); + ::grpc::Service::MarkMethodRaw(49); } ~WithRawMethod_GetVersion() override { BaseClassMustBeDerivedFromService(this); @@ -5689,7 +6046,7 @@ class AdminService final { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } void RequestGetVersion(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { - ::grpc::Service::RequestAsyncUnary(46, context, request, response, new_call_cq, notification_cq, tag); + ::grpc::Service::RequestAsyncUnary(49, context, request, response, new_call_cq, notification_cq, tag); } }; template @@ -6668,12 +7025,87 @@ class AdminService final { virtual void DeleteProjectDomainAttributes(::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response, ::grpc::experimental::ServerCallbackRpcController* controller) { controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "")); } }; template + class ExperimentalWithRawCallbackMethod_UpdateProjectAttributes : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + ExperimentalWithRawCallbackMethod_UpdateProjectAttributes() { + ::grpc::Service::experimental().MarkMethodRawCallback(39, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this](::grpc::ServerContext* context, + const ::grpc::ByteBuffer* request, + ::grpc::ByteBuffer* response, + ::grpc::experimental::ServerCallbackRpcController* controller) { + this->UpdateProjectAttributes(context, request, response, controller); + })); + } + ~ExperimentalWithRawCallbackMethod_UpdateProjectAttributes() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status UpdateProjectAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectAttributesUpdateRequest* request, ::flyteidl::admin::ProjectAttributesUpdateResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual void UpdateProjectAttributes(::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response, ::grpc::experimental::ServerCallbackRpcController* controller) { controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "")); } + }; + template + class ExperimentalWithRawCallbackMethod_GetProjectAttributes : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + ExperimentalWithRawCallbackMethod_GetProjectAttributes() { + ::grpc::Service::experimental().MarkMethodRawCallback(40, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this](::grpc::ServerContext* context, + const ::grpc::ByteBuffer* request, + ::grpc::ByteBuffer* response, + ::grpc::experimental::ServerCallbackRpcController* controller) { + this->GetProjectAttributes(context, request, response, controller); + })); + } + ~ExperimentalWithRawCallbackMethod_GetProjectAttributes() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetProjectAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectAttributesGetRequest* request, ::flyteidl::admin::ProjectAttributesGetResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual void GetProjectAttributes(::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response, ::grpc::experimental::ServerCallbackRpcController* controller) { controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "")); } + }; + template + class ExperimentalWithRawCallbackMethod_DeleteProjectAttributes : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + ExperimentalWithRawCallbackMethod_DeleteProjectAttributes() { + ::grpc::Service::experimental().MarkMethodRawCallback(41, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this](::grpc::ServerContext* context, + const ::grpc::ByteBuffer* request, + ::grpc::ByteBuffer* response, + ::grpc::experimental::ServerCallbackRpcController* controller) { + this->DeleteProjectAttributes(context, request, response, controller); + })); + } + ~ExperimentalWithRawCallbackMethod_DeleteProjectAttributes() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status DeleteProjectAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectAttributesDeleteRequest* request, ::flyteidl::admin::ProjectAttributesDeleteResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual void DeleteProjectAttributes(::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response, ::grpc::experimental::ServerCallbackRpcController* controller) { controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "")); } + }; + template class ExperimentalWithRawCallbackMethod_UpdateWorkflowAttributes : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_UpdateWorkflowAttributes() { - ::grpc::Service::experimental().MarkMethodRawCallback(39, + ::grpc::Service::experimental().MarkMethodRawCallback(42, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6698,7 +7130,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_GetWorkflowAttributes() { - ::grpc::Service::experimental().MarkMethodRawCallback(40, + ::grpc::Service::experimental().MarkMethodRawCallback(43, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6723,7 +7155,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_DeleteWorkflowAttributes() { - ::grpc::Service::experimental().MarkMethodRawCallback(41, + ::grpc::Service::experimental().MarkMethodRawCallback(44, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6748,7 +7180,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_ListMatchableAttributes() { - ::grpc::Service::experimental().MarkMethodRawCallback(42, + ::grpc::Service::experimental().MarkMethodRawCallback(45, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6773,7 +7205,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_ListNamedEntities() { - ::grpc::Service::experimental().MarkMethodRawCallback(43, + ::grpc::Service::experimental().MarkMethodRawCallback(46, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6798,7 +7230,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_GetNamedEntity() { - ::grpc::Service::experimental().MarkMethodRawCallback(44, + ::grpc::Service::experimental().MarkMethodRawCallback(47, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6823,7 +7255,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_UpdateNamedEntity() { - ::grpc::Service::experimental().MarkMethodRawCallback(45, + ::grpc::Service::experimental().MarkMethodRawCallback(48, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -6848,7 +7280,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: ExperimentalWithRawCallbackMethod_GetVersion() { - ::grpc::Service::experimental().MarkMethodRawCallback(46, + ::grpc::Service::experimental().MarkMethodRawCallback(49, new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( [this](::grpc::ServerContext* context, const ::grpc::ByteBuffer* request, @@ -7648,12 +8080,72 @@ class AdminService final { virtual ::grpc::Status StreamedDeleteProjectDomainAttributes(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::flyteidl::admin::ProjectDomainAttributesDeleteRequest,::flyteidl::admin::ProjectDomainAttributesDeleteResponse>* server_unary_streamer) = 0; }; template + class WithStreamedUnaryMethod_UpdateProjectAttributes : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithStreamedUnaryMethod_UpdateProjectAttributes() { + ::grpc::Service::MarkMethodStreamed(39, + new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::ProjectAttributesUpdateRequest, ::flyteidl::admin::ProjectAttributesUpdateResponse>(std::bind(&WithStreamedUnaryMethod_UpdateProjectAttributes::StreamedUpdateProjectAttributes, this, std::placeholders::_1, std::placeholders::_2))); + } + ~WithStreamedUnaryMethod_UpdateProjectAttributes() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status UpdateProjectAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectAttributesUpdateRequest* request, ::flyteidl::admin::ProjectAttributesUpdateResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedUpdateProjectAttributes(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::flyteidl::admin::ProjectAttributesUpdateRequest,::flyteidl::admin::ProjectAttributesUpdateResponse>* server_unary_streamer) = 0; + }; + template + class WithStreamedUnaryMethod_GetProjectAttributes : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithStreamedUnaryMethod_GetProjectAttributes() { + ::grpc::Service::MarkMethodStreamed(40, + new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::ProjectAttributesGetRequest, ::flyteidl::admin::ProjectAttributesGetResponse>(std::bind(&WithStreamedUnaryMethod_GetProjectAttributes::StreamedGetProjectAttributes, this, std::placeholders::_1, std::placeholders::_2))); + } + ~WithStreamedUnaryMethod_GetProjectAttributes() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status GetProjectAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectAttributesGetRequest* request, ::flyteidl::admin::ProjectAttributesGetResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedGetProjectAttributes(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::flyteidl::admin::ProjectAttributesGetRequest,::flyteidl::admin::ProjectAttributesGetResponse>* server_unary_streamer) = 0; + }; + template + class WithStreamedUnaryMethod_DeleteProjectAttributes : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service *service) {} + public: + WithStreamedUnaryMethod_DeleteProjectAttributes() { + ::grpc::Service::MarkMethodStreamed(41, + new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::ProjectAttributesDeleteRequest, ::flyteidl::admin::ProjectAttributesDeleteResponse>(std::bind(&WithStreamedUnaryMethod_DeleteProjectAttributes::StreamedDeleteProjectAttributes, this, std::placeholders::_1, std::placeholders::_2))); + } + ~WithStreamedUnaryMethod_DeleteProjectAttributes() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status DeleteProjectAttributes(::grpc::ServerContext* context, const ::flyteidl::admin::ProjectAttributesDeleteRequest* request, ::flyteidl::admin::ProjectAttributesDeleteResponse* response) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedDeleteProjectAttributes(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::flyteidl::admin::ProjectAttributesDeleteRequest,::flyteidl::admin::ProjectAttributesDeleteResponse>* server_unary_streamer) = 0; + }; + template class WithStreamedUnaryMethod_UpdateWorkflowAttributes : public BaseClass { private: void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_UpdateWorkflowAttributes() { - ::grpc::Service::MarkMethodStreamed(39, + ::grpc::Service::MarkMethodStreamed(42, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::WorkflowAttributesUpdateRequest, ::flyteidl::admin::WorkflowAttributesUpdateResponse>(std::bind(&WithStreamedUnaryMethod_UpdateWorkflowAttributes::StreamedUpdateWorkflowAttributes, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_UpdateWorkflowAttributes() override { @@ -7673,7 +8165,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_GetWorkflowAttributes() { - ::grpc::Service::MarkMethodStreamed(40, + ::grpc::Service::MarkMethodStreamed(43, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::WorkflowAttributesGetRequest, ::flyteidl::admin::WorkflowAttributesGetResponse>(std::bind(&WithStreamedUnaryMethod_GetWorkflowAttributes::StreamedGetWorkflowAttributes, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_GetWorkflowAttributes() override { @@ -7693,7 +8185,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_DeleteWorkflowAttributes() { - ::grpc::Service::MarkMethodStreamed(41, + ::grpc::Service::MarkMethodStreamed(44, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::WorkflowAttributesDeleteRequest, ::flyteidl::admin::WorkflowAttributesDeleteResponse>(std::bind(&WithStreamedUnaryMethod_DeleteWorkflowAttributes::StreamedDeleteWorkflowAttributes, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_DeleteWorkflowAttributes() override { @@ -7713,7 +8205,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_ListMatchableAttributes() { - ::grpc::Service::MarkMethodStreamed(42, + ::grpc::Service::MarkMethodStreamed(45, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::ListMatchableAttributesRequest, ::flyteidl::admin::ListMatchableAttributesResponse>(std::bind(&WithStreamedUnaryMethod_ListMatchableAttributes::StreamedListMatchableAttributes, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_ListMatchableAttributes() override { @@ -7733,7 +8225,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_ListNamedEntities() { - ::grpc::Service::MarkMethodStreamed(43, + ::grpc::Service::MarkMethodStreamed(46, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::NamedEntityListRequest, ::flyteidl::admin::NamedEntityList>(std::bind(&WithStreamedUnaryMethod_ListNamedEntities::StreamedListNamedEntities, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_ListNamedEntities() override { @@ -7753,7 +8245,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_GetNamedEntity() { - ::grpc::Service::MarkMethodStreamed(44, + ::grpc::Service::MarkMethodStreamed(47, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::NamedEntityGetRequest, ::flyteidl::admin::NamedEntity>(std::bind(&WithStreamedUnaryMethod_GetNamedEntity::StreamedGetNamedEntity, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_GetNamedEntity() override { @@ -7773,7 +8265,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_UpdateNamedEntity() { - ::grpc::Service::MarkMethodStreamed(45, + ::grpc::Service::MarkMethodStreamed(48, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::NamedEntityUpdateRequest, ::flyteidl::admin::NamedEntityUpdateResponse>(std::bind(&WithStreamedUnaryMethod_UpdateNamedEntity::StreamedUpdateNamedEntity, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_UpdateNamedEntity() override { @@ -7793,7 +8285,7 @@ class AdminService final { void BaseClassMustBeDerivedFromService(const Service *service) {} public: WithStreamedUnaryMethod_GetVersion() { - ::grpc::Service::MarkMethodStreamed(46, + ::grpc::Service::MarkMethodStreamed(49, new ::grpc::internal::StreamedUnaryHandler< ::flyteidl::admin::GetVersionRequest, ::flyteidl::admin::GetVersionResponse>(std::bind(&WithStreamedUnaryMethod_GetVersion::StreamedGetVersion, this, std::placeholders::_1, std::placeholders::_2))); } ~WithStreamedUnaryMethod_GetVersion() override { @@ -7807,9 +8299,9 @@ class AdminService final { // replace default version of method with streamed unary virtual ::grpc::Status StreamedGetVersion(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::flyteidl::admin::GetVersionRequest,::flyteidl::admin::GetVersionResponse>* server_unary_streamer) = 0; }; - typedef WithStreamedUnaryMethod_CreateTask > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > StreamedUnaryService; + typedef WithStreamedUnaryMethod_CreateTask > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > StreamedUnaryService; typedef Service SplitStreamedService; - typedef WithStreamedUnaryMethod_CreateTask > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > StreamedService; + typedef WithStreamedUnaryMethod_CreateTask > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > StreamedService; }; } // namespace service diff --git a/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc b/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc index c3187aba9a..39edd46135 100644 --- a/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc +++ b/flyteidl/gen/pb-cpp/flyteidl/service/admin.pb.cc @@ -40,366 +40,387 @@ const char descriptor_table_protodef_flyteidl_2fservice_2fadmin_2eproto[] = "\n\034flyteidl/service/admin.proto\022\020flyteidl" ".service\032\034google/api/annotations.proto\032\034" "flyteidl/admin/project.proto\032.flyteidl/a" - "dmin/project_domain_attributes.proto\032\031fl" - "yteidl/admin/task.proto\032\035flyteidl/admin/" - "workflow.proto\032(flyteidl/admin/workflow_" - "attributes.proto\032 flyteidl/admin/launch_" - "plan.proto\032\032flyteidl/admin/event.proto\032\036" - "flyteidl/admin/execution.proto\032\'flyteidl" - "/admin/matchable_resource.proto\032#flyteid" - "l/admin/node_execution.proto\032#flyteidl/a" - "dmin/task_execution.proto\032\034flyteidl/admi" - "n/version.proto\032\033flyteidl/admin/common.p" - "roto\032,protoc-gen-swagger/options/annotat" - "ions.proto2\236h\n\014AdminService\022\305\002\n\nCreateTa" - "sk\022!.flyteidl.admin.TaskCreateRequest\032\"." - "flyteidl.admin.TaskCreateResponse\"\357\001\202\323\344\223" - "\002\022\"\r/api/v1/tasks:\001*\222A\323\001\032&Create and reg" - "ister a task definition.JB\n\003400\022;\n9Retur" - "ned for bad request that may have failed" - " validation.Je\n\003409\022^\n\\Returned for a re" - "quest that references an identical entit" - "y that has already been registered.\022\262\001\n\007" - "GetTask\022 .flyteidl.admin.ObjectGetReques" - "t\032\024.flyteidl.admin.Task\"o\202\323\344\223\002\?\022=/api/v1" - "/tasks/{id.project}/{id.domain}/{id.name" - "}/{id.version}\222A\'\032%Retrieve an existing " - "task definition.\022\336\001\n\013ListTaskIds\0220.flyte" - "idl.admin.NamedEntityIdentifierListReque" - "st\032).flyteidl.admin.NamedEntityIdentifie" - "rList\"r\202\323\344\223\002%\022#/api/v1/task_ids/{project" - "}/{domain}\222AD\032BFetch existing task defin" - "ition identifiers matching input filters" - ".\022\353\001\n\tListTasks\022#.flyteidl.admin.Resourc" - "eListRequest\032\030.flyteidl.admin.TaskList\"\236" - "\001\202\323\344\223\002\\\0220/api/v1/tasks/{id.project}/{id." - "domain}/{id.name}Z(\022&/api/v1/tasks/{id.p" - "roject}/{id.domain}\222A9\0327Fetch existing t" - "ask definitions matching input filters.\022" - "\331\002\n\016CreateWorkflow\022%.flyteidl.admin.Work" - "flowCreateRequest\032&.flyteidl.admin.Workf" - "lowCreateResponse\"\367\001\202\323\344\223\002\026\"\021/api/v1/work" - "flows:\001*\222A\327\001\032*Create and register a work" - "flow definition.JB\n\003400\022;\n9Returned for " - "bad request that may have failed validat" - "ion.Je\n\003409\022^\n\\Returned for a request th" - "at references an identical entity that h" - "as already been registered.\022\302\001\n\013GetWorkf" - "low\022 .flyteidl.admin.ObjectGetRequest\032\030." - "flyteidl.admin.Workflow\"w\202\323\344\223\002C\022A/api/v1" - "/workflows/{id.project}/{id.domain}/{id." - "name}/{id.version}\222A+\032)Retrieve an exist" - "ing workflow definition.\022\355\001\n\017ListWorkflo" - "wIds\0220.flyteidl.admin.NamedEntityIdentif" - "ierListRequest\032).flyteidl.admin.NamedEnt" - "ityIdentifierList\"}\202\323\344\223\002)\022\'/api/v1/workf" - "low_ids/{project}/{domain}\222AK\032IFetch an " - "existing workflow definition identifiers" - " matching input filters.\022\377\001\n\rListWorkflo" - "ws\022#.flyteidl.admin.ResourceListRequest\032" - "\034.flyteidl.admin.WorkflowList\"\252\001\202\323\344\223\002d\0224" - "/api/v1/workflows/{id.project}/{id.domai" - "n}/{id.name}Z,\022*/api/v1/workflows/{id.pr" - "oject}/{id.domain}\222A=\032;Fetch existing wo" - "rkflow definitions matching input filter" - "s.\022\345\002\n\020CreateLaunchPlan\022\'.flyteidl.admin" - ".LaunchPlanCreateRequest\032(.flyteidl.admi" - "n.LaunchPlanCreateResponse\"\375\001\202\323\344\223\002\031\"\024/ap" - "i/v1/launch_plans:\001*\222A\332\001\032-Create and reg" - "ister a launch plan definition.JB\n\003400\022;" - "\n9Returned for bad request that may have" - " failed validation.Je\n\003409\022^\n\\Returned f" - "or a request that references an identica" - "l entity that has already been registere" - "d.\022\314\001\n\rGetLaunchPlan\022 .flyteidl.admin.Ob" - "jectGetRequest\032\032.flyteidl.admin.LaunchPl" - "an\"}\202\323\344\223\002F\022D/api/v1/launch_plans/{id.pro" - "ject}/{id.domain}/{id.name}/{id.version}" - "\222A.\032,Retrieve an existing launch plan de" - "finition.\022\363\001\n\023GetActiveLaunchPlan\022\'.flyt" - "eidl.admin.ActiveLaunchPlanRequest\032\032.fly" - "teidl.admin.LaunchPlan\"\226\001\202\323\344\223\002@\022>/api/v1" - "/active_launch_plans/{id.project}/{id.do" - "main}/{id.name}\222AM\032KRetrieve the active " - "launch plan version specified by input r" - "equest filters.\022\353\001\n\025ListActiveLaunchPlan" - "s\022+.flyteidl.admin.ActiveLaunchPlanListR" - "equest\032\036.flyteidl.admin.LaunchPlanList\"\204" - "\001\202\323\344\223\0020\022./api/v1/active_launch_plans/{pr" - "oject}/{domain}\222AK\032IFetch the active lau" - "nch plan versions specified by input req" - "uest filters.\022\363\001\n\021ListLaunchPlanIds\0220.fl" - "yteidl.admin.NamedEntityIdentifierListRe" - "quest\032).flyteidl.admin.NamedEntityIdenti" - "fierList\"\200\001\202\323\344\223\002,\022*/api/v1/launch_plan_i" - "ds/{project}/{domain}\222AK\032IFetch existing" - " launch plan definition identifiers matc" - "hing input filters.\022\214\002\n\017ListLaunchPlans\022" - "#.flyteidl.admin.ResourceListRequest\032\036.f" - "lyteidl.admin.LaunchPlanList\"\263\001\202\323\344\223\002j\0227/" - "api/v1/launch_plans/{id.project}/{id.dom" - "ain}/{id.name}Z/\022-/api/v1/launch_plans/{" - "id.project}/{id.domain}\222A@\032>Fetch existi" - "ng launch plan definitions matching inpu" - "t filters.\022\300\006\n\020UpdateLaunchPlan\022\'.flytei" - "dl.admin.LaunchPlanUpdateRequest\032(.flyte" - "idl.admin.LaunchPlanUpdateResponse\"\330\005\202\323\344" - "\223\002I\032D/api/v1/launch_plans/{id.project}/{" - "id.domain}/{id.name}/{id.version}:\001*\222A\205\005" - "\032\202\005Update the status of an existing laun" - "ch plan definition. At most one launch p" - "lan version for a given {project, domain" - ", name} can be active at a time. If this" - " call sets a launch plan to active and e" - "xisting version is already active, the r" - "esult of this call will be that the form" - "erly active launch plan will be made ina" - "ctive and specified launch plan in this " - "request will be made active. In the even" - "t that the formerly active launch plan h" - "ad a schedule associated it with it, thi" - "s schedule will be disabled. If the refe" - "rence launch plan in this request is bei" - "ng set to active and has a schedule asso" - "ciated with it, the schedule will be ena" - "bled.\022\242\001\n\017CreateExecution\022&.flyteidl.adm" - "in.ExecutionCreateRequest\032\'.flyteidl.adm" - "in.ExecutionCreateResponse\">\202\323\344\223\002\027\"\022/api" - "/v1/executions:\001*\222A\036\032\034Create a workflow " - "execution.\022\261\001\n\021RelaunchExecution\022(.flyte" - "idl.admin.ExecutionRelaunchRequest\032\'.fly" - "teidl.admin.ExecutionCreateResponse\"I\202\323\344" - "\223\002 \"\033/api/v1/executions/relaunch:\001*\222A \032\036" - "Relaunch a workflow execution.\022\235\005\n\020Recov" - "erExecution\022\'.flyteidl.admin.ExecutionRe" - "coverRequest\032\'.flyteidl.admin.ExecutionC" - "reateResponse\"\266\004\202\323\344\223\002\037\"\032/api/v1/executio" - "ns/recover:\001*\222A\215\004\032\212\004Recreates a previous" - "ly-run workflow execution that will only" - " start executing from the last known fai" - "lure point. In Recover mode, users canno" - "t change any input parameters or update " - "the version of the execution. This is ex" - "tremely useful to recover from system er" - "rors and byzantine faults like - Loss of" - " K8s cluster, bugs in platform or instab" - "ility, machine failures, downstream syst" - "em failures (downstream services), or si" - "mply to recover executions that failed b" - "ecause of retry exhaustion and should co" - "mplete if tried again.\022\302\001\n\014GetExecution\022" - "+.flyteidl.admin.WorkflowExecutionGetReq" - "uest\032\031.flyteidl.admin.Execution\"j\202\323\344\223\0027\022" - "5/api/v1/executions/{id.project}/{id.dom" - "ain}/{id.name}\222A*\032(Retrieve an existing " - "workflow execution.\022\326\001\n\017UpdateExecution\022" - "&.flyteidl.admin.ExecutionUpdateRequest\032" - "\'.flyteidl.admin.ExecutionUpdateResponse" - "\"r\202\323\344\223\002:\0325/api/v1/executions/{id.project" - "}/{id.domain}/{id.name}:\001*\222A/\032-Update ex" - "ecution belonging to project domain.\022\202\002\n" - "\020GetExecutionData\022/.flyteidl.admin.Workf" - "lowExecutionGetDataRequest\0320.flyteidl.ad" - "min.WorkflowExecutionGetDataResponse\"\212\001\202" - "\323\344\223\002<\022:/api/v1/data/executions/{id.proje" - "ct}/{id.domain}/{id.name}\222AE\032CRetrieve i" - "nput and output data from an existing wo" - "rkflow execution.\022\310\001\n\016ListExecutions\022#.f" - "lyteidl.admin.ResourceListRequest\032\035.flyt" - "eidl.admin.ExecutionList\"r\202\323\344\223\002-\022+/api/v" - "1/executions/{id.project}/{id.domain}\222A<" - "\032:Fetch existing workflow executions mat" - "ching input filters.\022\364\001\n\022TerminateExecut" - "ion\022).flyteidl.admin.ExecutionTerminateR" - "equest\032*.flyteidl.admin.ExecutionTermina" - "teResponse\"\206\001\202\323\344\223\002:*5/api/v1/executions/" - "{id.project}/{id.domain}/{id.name}:\001*\222AC" - "\032ATerminate the active workflow executio" - "n specified in the request.\022\374\001\n\020GetNodeE" - "xecution\022\'.flyteidl.admin.NodeExecutionG" - "etRequest\032\035.flyteidl.admin.NodeExecution" - "\"\237\001\202\323\344\223\002p\022n/api/v1/node_executions/{id.e" - "xecution_id.project}/{id.execution_id.do" - "main}/{id.execution_id.name}/{id.node_id" - "}\222A&\032$Retrieve an existing node executio" - "n.\022\232\002\n\022ListNodeExecutions\022(.flyteidl.adm" - "in.NodeExecutionListRequest\032!.flyteidl.a" - "dmin.NodeExecutionList\"\266\001\202\323\344\223\002u\022s/api/v1" - "/node_executions/{workflow_execution_id." - "project}/{workflow_execution_id.domain}/" - "{workflow_execution_id.name}\222A8\0326Fetch e" - "xisting node executions matching input f" - "ilters.\022\357\004\n\031ListNodeExecutionsForTask\022/." - "flyteidl.admin.NodeExecutionForTaskListR" - "equest\032!.flyteidl.admin.NodeExecutionLis" - "t\"\375\003\202\323\344\223\002\254\003\022\251\003/api/v1/children/task_exec" - "utions/{task_execution_id.node_execution" - "_id.execution_id.project}/{task_executio" - "n_id.node_execution_id.execution_id.doma" - "in}/{task_execution_id.node_execution_id" - ".execution_id.name}/{task_execution_id.n" - "ode_execution_id.node_id}/{task_executio" - "n_id.task_id.project}/{task_execution_id" - ".task_id.domain}/{task_execution_id.task" - "_id.name}/{task_execution_id.task_id.ver" - "sion}/{task_execution_id.retry_attempt}\222" - "AG\032EFetch child node executions launched" - " by the specified task execution.\022\263\002\n\024Ge" - "tNodeExecutionData\022+.flyteidl.admin.Node" - "ExecutionGetDataRequest\032,.flyteidl.admin" - ".NodeExecutionGetDataResponse\"\277\001\202\323\344\223\002u\022s" - "/api/v1/data/node_executions/{id.executi" - "on_id.project}/{id.execution_id.domain}/" - "{id.execution_id.name}/{id.node_id}\222AA\032\?" - "Retrieve input and output data from an e" - "xisting node execution.\022\227\001\n\017RegisterProj" - "ect\022&.flyteidl.admin.ProjectRegisterRequ" - "est\032\'.flyteidl.admin.ProjectRegisterResp" - "onse\"3\202\323\344\223\002\025\"\020/api/v1/projects:\001*\222A\025\032\023Re" - "gister a project.\022\207\001\n\rUpdateProject\022\027.fl" - "yteidl.admin.Project\032%.flyteidl.admin.Pr" - "ojectUpdateResponse\"6\202\323\344\223\002\032\032\025/api/v1/pro" - "jects/{id}:\001*\222A\023\032\021Update a project.\022\205\001\n\014" - "ListProjects\022\".flyteidl.admin.ProjectLis" - "tRequest\032\030.flyteidl.admin.Projects\"7\202\323\344\223" - "\002\022\022\020/api/v1/projects\222A\034\032\032Fetch registere" - "d projects.\022\335\001\n\023CreateWorkflowEvent\022-.fl" - "yteidl.admin.WorkflowExecutionEventReque" - "st\032..flyteidl.admin.WorkflowExecutionEve" - "ntResponse\"g\202\323\344\223\002\035\"\030/api/v1/events/workf" - "lows:\001*\222AA\032\?Create a workflow execution " - "event recording a phase transition.\022\311\001\n\017" - "CreateNodeEvent\022).flyteidl.admin.NodeExe" - "cutionEventRequest\032*.flyteidl.admin.Node" - "ExecutionEventResponse\"_\202\323\344\223\002\031\"\024/api/v1/" - "events/nodes:\001*\222A=\032;Create a node execut" - "ion event recording a phase transition.\022" - "\311\001\n\017CreateTaskEvent\022).flyteidl.admin.Tas" - "kExecutionEventRequest\032*.flyteidl.admin." - "TaskExecutionEventResponse\"_\202\323\344\223\002\031\"\024/api" - "/v1/events/tasks:\001*\222A=\032;Create a task ex" - "ecution event recording a phase transiti" - "on.\022\251\003\n\020GetTaskExecution\022\'.flyteidl.admi" - "n.TaskExecutionGetRequest\032\035.flyteidl.adm" - "in.TaskExecution\"\314\002\202\323\344\223\002\234\002\022\231\002/api/v1/tas" - "k_executions/{id.node_execution_id.execu" - "tion_id.project}/{id.node_execution_id.e" - "xecution_id.domain}/{id.node_execution_i" - "d.execution_id.name}/{id.node_execution_" - "id.node_id}/{id.task_id.project}/{id.tas" - "k_id.domain}/{id.task_id.name}/{id.task_" - "id.version}/{id.retry_attempt}\222A&\032$Retri" - "eve an existing task execution.\022\323\002\n\022List" - "TaskExecutions\022(.flyteidl.admin.TaskExec" - "utionListRequest\032!.flyteidl.admin.TaskEx" - "ecutionList\"\357\001\202\323\344\223\002\255\001\022\252\001/api/v1/task_exe" - "cutions/{node_execution_id.execution_id." - "project}/{node_execution_id.execution_id" - ".domain}/{node_execution_id.execution_id" - ".name}/{node_execution_id.node_id}\222A8\0326F" - "etch existing task executions matching i" - "nput filters.\022\340\003\n\024GetTaskExecutionData\022+" - ".flyteidl.admin.TaskExecutionGetDataRequ" - "est\032,.flyteidl.admin.TaskExecutionGetDat" - "aResponse\"\354\002\202\323\344\223\002\241\002\022\236\002/api/v1/data/task_" - "executions/{id.node_execution_id.executi" - "on_id.project}/{id.node_execution_id.exe" - "cution_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}\222AA\032\?Retriev" - "e input and output data from an existing" - " task execution.\022\277\002\n\035UpdateProjectDomain" - "Attributes\0224.flyteidl.admin.ProjectDomai" - "nAttributesUpdateRequest\0325.flyteidl.admi" - "n.ProjectDomainAttributesUpdateResponse\"" - "\260\001\202\323\344\223\002O\032J/api/v1/project_domain_attribu" - "tes/{attributes.project}/{attributes.dom" - "ain}:\001*\222AX\032VUpdate the customized resour" - "ce attributes associated with a project-" - "domain combination\022\237\002\n\032GetProjectDomainA" - "ttributes\0221.flyteidl.admin.ProjectDomain" - "AttributesGetRequest\0322.flyteidl.admin.Pr" - "ojectDomainAttributesGetResponse\"\231\001\202\323\344\223\002" - "6\0224/api/v1/project_domain_attributes/{pr" - "oject}/{domain}\222AZ\032XRetrieve the customi" - "zed resource attributes associated with " - "a project-domain combination\022\251\002\n\035DeleteP" - "rojectDomainAttributes\0224.flyteidl.admin." - "ProjectDomainAttributesDeleteRequest\0325.f" - "lyteidl.admin.ProjectDomainAttributesDel" - "eteResponse\"\232\001\202\323\344\223\0029*4/api/v1/project_do" - "main_attributes/{project}/{domain}:\001*\222AX" - "\032VDelete the customized resource attribu" - "tes associated with a project-domain com" - "bination\022\316\002\n\030UpdateWorkflowAttributes\022/." - "flyteidl.admin.WorkflowAttributesUpdateR" - "equest\0320.flyteidl.admin.WorkflowAttribut" - "esUpdateResponse\"\316\001\202\323\344\223\002_\032Z/api/v1/workf" - "low_attributes/{attributes.project}/{att" - "ributes.domain}/{attributes.workflow}:\001*" - "\222Af\032dUpdate the customized resource attr" - "ibutes associated with a project, domain" - " and workflow combination\022\243\002\n\025GetWorkflo" - "wAttributes\022,.flyteidl.admin.WorkflowAtt" - "ributesGetRequest\032-.flyteidl.admin.Workf" - "lowAttributesGetResponse\"\254\001\202\323\344\223\002;\0229/api/" - "v1/workflow_attributes/{project}/{domain" - "}/{workflow}\222Ah\032fRetrieve the customized" - " resource attributes associated with a p" - "roject, domain and workflow combination\022" - "\255\002\n\030DeleteWorkflowAttributes\022/.flyteidl." - "admin.WorkflowAttributesDeleteRequest\0320." - "flyteidl.admin.WorkflowAttributesDeleteR" - "esponse\"\255\001\202\323\344\223\002>*9/api/v1/workflow_attri" - "butes/{project}/{domain}/{workflow}:\001*\222A" - "f\032dDelete the customized resource attrib" - "utes associated with a project, domain a" - "nd workflow combination\022\341\001\n\027ListMatchabl" - "eAttributes\022..flyteidl.admin.ListMatchab" - "leAttributesRequest\032/.flyteidl.admin.Lis" - "tMatchableAttributesResponse\"e\202\323\344\223\002\036\022\034/a" - "pi/v1/matchable_attributes\222A>\032/api/v" + "1/active_launch_plans/{id.project}/{id.d" + "omain}/{id.name}\222AM\032KRetrieve the active" + " launch plan version specified by input " + "request filters.\022\353\001\n\025ListActiveLaunchPla" + "ns\022+.flyteidl.admin.ActiveLaunchPlanList" + "Request\032\036.flyteidl.admin.LaunchPlanList\"" + "\204\001\202\323\344\223\0020\022./api/v1/active_launch_plans/{p" + "roject}/{domain}\222AK\032IFetch the active la" + "unch plan versions specified by input re" + "quest filters.\022\363\001\n\021ListLaunchPlanIds\0220.f" + "lyteidl.admin.NamedEntityIdentifierListR" + "equest\032).flyteidl.admin.NamedEntityIdent" + "ifierList\"\200\001\202\323\344\223\002,\022*/api/v1/launch_plan_" + "ids/{project}/{domain}\222AK\032IFetch existin" + "g launch plan definition identifiers mat" + "ching input filters.\022\214\002\n\017ListLaunchPlans" + "\022#.flyteidl.admin.ResourceListRequest\032\036." + "flyteidl.admin.LaunchPlanList\"\263\001\202\323\344\223\002j\0227" + "/api/v1/launch_plans/{id.project}/{id.do" + "main}/{id.name}Z/\022-/api/v1/launch_plans/" + "{id.project}/{id.domain}\222A@\032>Fetch exist" + "ing launch plan definitions matching inp" + "ut filters.\022\300\006\n\020UpdateLaunchPlan\022\'.flyte" + "idl.admin.LaunchPlanUpdateRequest\032(.flyt" + "eidl.admin.LaunchPlanUpdateResponse\"\330\005\202\323" + "\344\223\002I\032D/api/v1/launch_plans/{id.project}/" + "{id.domain}/{id.name}/{id.version}:\001*\222A\205" + "\005\032\202\005Update the status of an existing lau" + "nch plan definition. At most one launch " + "plan version for a given {project, domai" + "n, name} can be active at a time. If thi" + "s call sets a launch plan to active and " + "existing version is already active, the " + "result of this call will be that the for" + "merly active launch plan will be made in" + "active and specified launch plan in this" + " request will be made active. In the eve" + "nt that the formerly active launch plan " + "had a schedule associated it with it, th" + "is schedule will be disabled. If the ref" + "erence launch plan in this request is be" + "ing set to active and has a schedule ass" + "ociated with it, the schedule will be en" + "abled.\022\242\001\n\017CreateExecution\022&.flyteidl.ad" + "min.ExecutionCreateRequest\032\'.flyteidl.ad" + "min.ExecutionCreateResponse\">\202\323\344\223\002\027\"\022/ap" + "i/v1/executions:\001*\222A\036\032\034Create a workflow" + " execution.\022\261\001\n\021RelaunchExecution\022(.flyt" + "eidl.admin.ExecutionRelaunchRequest\032\'.fl" + "yteidl.admin.ExecutionCreateResponse\"I\202\323" + "\344\223\002 \"\033/api/v1/executions/relaunch:\001*\222A \032" + "\036Relaunch a workflow execution.\022\235\005\n\020Reco" + "verExecution\022\'.flyteidl.admin.ExecutionR" + "ecoverRequest\032\'.flyteidl.admin.Execution" + "CreateResponse\"\266\004\202\323\344\223\002\037\"\032/api/v1/executi" + "ons/recover:\001*\222A\215\004\032\212\004Recreates a previou" + "sly-run workflow execution that will onl" + "y start executing from the last known fa" + "ilure point. In Recover mode, users cann" + "ot change any input parameters or update" + " the version of the execution. This is e" + "xtremely useful to recover from system e" + "rrors and byzantine faults like - Loss o" + "f K8s cluster, bugs in platform or insta" + "bility, machine failures, downstream sys" + "tem failures (downstream services), or s" + "imply to recover executions that failed " + "because of retry exhaustion and should c" + "omplete if tried again.\022\302\001\n\014GetExecution" + "\022+.flyteidl.admin.WorkflowExecutionGetRe" + "quest\032\031.flyteidl.admin.Execution\"j\202\323\344\223\0027" + "\0225/api/v1/executions/{id.project}/{id.do" + "main}/{id.name}\222A*\032(Retrieve an existing" + " workflow execution.\022\326\001\n\017UpdateExecution" + "\022&.flyteidl.admin.ExecutionUpdateRequest" + "\032\'.flyteidl.admin.ExecutionUpdateRespons" + "e\"r\202\323\344\223\002:\0325/api/v1/executions/{id.projec" + "t}/{id.domain}/{id.name}:\001*\222A/\032-Update e" + "xecution belonging to project domain.\022\202\002" + "\n\020GetExecutionData\022/.flyteidl.admin.Work" + "flowExecutionGetDataRequest\0320.flyteidl.a" + "dmin.WorkflowExecutionGetDataResponse\"\212\001" + "\202\323\344\223\002<\022:/api/v1/data/executions/{id.proj" + "ect}/{id.domain}/{id.name}\222AE\032CRetrieve " + "input and output data from an existing w" + "orkflow execution.\022\310\001\n\016ListExecutions\022#." + "flyteidl.admin.ResourceListRequest\032\035.fly" + "teidl.admin.ExecutionList\"r\202\323\344\223\002-\022+/api/" + "v1/executions/{id.project}/{id.domain}\222A" + "<\032:Fetch existing workflow executions ma" + "tching input filters.\022\364\001\n\022TerminateExecu" + "tion\022).flyteidl.admin.ExecutionTerminate" + "Request\032*.flyteidl.admin.ExecutionTermin" + "ateResponse\"\206\001\202\323\344\223\002:*5/api/v1/executions" + "/{id.project}/{id.domain}/{id.name}:\001*\222A" + "C\032ATerminate the active workflow executi" + "on specified in the request.\022\374\001\n\020GetNode" + "Execution\022\'.flyteidl.admin.NodeExecution" + "GetRequest\032\035.flyteidl.admin.NodeExecutio" + "n\"\237\001\202\323\344\223\002p\022n/api/v1/node_executions/{id." + "execution_id.project}/{id.execution_id.d" + "omain}/{id.execution_id.name}/{id.node_i" + "d}\222A&\032$Retrieve an existing node executi" + "on.\022\232\002\n\022ListNodeExecutions\022(.flyteidl.ad" + "min.NodeExecutionListRequest\032!.flyteidl." + "admin.NodeExecutionList\"\266\001\202\323\344\223\002u\022s/api/v" + "1/node_executions/{workflow_execution_id" + ".project}/{workflow_execution_id.domain}" + "/{workflow_execution_id.name}\222A8\0326Fetch " + "existing node executions matching input " + "filters.\022\357\004\n\031ListNodeExecutionsForTask\022/" + ".flyteidl.admin.NodeExecutionForTaskList" + "Request\032!.flyteidl.admin.NodeExecutionLi" + "st\"\375\003\202\323\344\223\002\254\003\022\251\003/api/v1/children/task_exe" + "cutions/{task_execution_id.node_executio" + "n_id.execution_id.project}/{task_executi" + "on_id.node_execution_id.execution_id.dom" + "ain}/{task_execution_id.node_execution_i" + "d.execution_id.name}/{task_execution_id." + "node_execution_id.node_id}/{task_executi" + "on_id.task_id.project}/{task_execution_i" + "d.task_id.domain}/{task_execution_id.tas" + "k_id.name}/{task_execution_id.task_id.ve" + "rsion}/{task_execution_id.retry_attempt}" + "\222AG\032EFetch child node executions launche" + "d by the specified task execution.\022\263\002\n\024G" + "etNodeExecutionData\022+.flyteidl.admin.Nod" + "eExecutionGetDataRequest\032,.flyteidl.admi" + "n.NodeExecutionGetDataResponse\"\277\001\202\323\344\223\002u\022" + "s/api/v1/data/node_executions/{id.execut" + "ion_id.project}/{id.execution_id.domain}" + "/{id.execution_id.name}/{id.node_id}\222AA\032" + "\?Retrieve input and output data from an " + "existing node execution.\022\227\001\n\017RegisterPro" + "ject\022&.flyteidl.admin.ProjectRegisterReq" + "uest\032\'.flyteidl.admin.ProjectRegisterRes" + "ponse\"3\202\323\344\223\002\025\"\020/api/v1/projects:\001*\222A\025\032\023R" + "egister a project.\022\207\001\n\rUpdateProject\022\027.f" + "lyteidl.admin.Project\032%.flyteidl.admin.P" + "rojectUpdateResponse\"6\202\323\344\223\002\032\032\025/api/v1/pr" + "ojects/{id}:\001*\222A\023\032\021Update a project.\022\205\001\n" + "\014ListProjects\022\".flyteidl.admin.ProjectLi" + "stRequest\032\030.flyteidl.admin.Projects\"7\202\323\344" + "\223\002\022\022\020/api/v1/projects\222A\034\032\032Fetch register" + "ed projects.\022\335\001\n\023CreateWorkflowEvent\022-.f" + "lyteidl.admin.WorkflowExecutionEventRequ" + "est\032..flyteidl.admin.WorkflowExecutionEv" + "entResponse\"g\202\323\344\223\002\035\"\030/api/v1/events/work" + "flows:\001*\222AA\032\?Create a workflow execution" + " event recording a phase transition.\022\311\001\n" + "\017CreateNodeEvent\022).flyteidl.admin.NodeEx" + "ecutionEventRequest\032*.flyteidl.admin.Nod" + "eExecutionEventResponse\"_\202\323\344\223\002\031\"\024/api/v1" + "/events/nodes:\001*\222A=\032;Create a node execu" + "tion event recording a phase transition." + "\022\311\001\n\017CreateTaskEvent\022).flyteidl.admin.Ta" + "skExecutionEventRequest\032*.flyteidl.admin" + ".TaskExecutionEventResponse\"_\202\323\344\223\002\031\"\024/ap" + "i/v1/events/tasks:\001*\222A=\032;Create a task e" + "xecution event recording a phase transit" + "ion.\022\251\003\n\020GetTaskExecution\022\'.flyteidl.adm" + "in.TaskExecutionGetRequest\032\035.flyteidl.ad" + "min.TaskExecution\"\314\002\202\323\344\223\002\234\002\022\231\002/api/v1/ta" + "sk_executions/{id.node_execution_id.exec" + "ution_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.ta" + "sk_id.domain}/{id.task_id.name}/{id.task" + "_id.version}/{id.retry_attempt}\222A&\032$Retr" + "ieve an existing task execution.\022\323\002\n\022Lis" + "tTaskExecutions\022(.flyteidl.admin.TaskExe" + "cutionListRequest\032!.flyteidl.admin.TaskE" + "xecutionList\"\357\001\202\323\344\223\002\255\001\022\252\001/api/v1/task_ex" + "ecutions/{node_execution_id.execution_id" + ".project}/{node_execution_id.execution_i" + "d.domain}/{node_execution_id.execution_i" + "d.name}/{node_execution_id.node_id}\222A8\0326" + "Fetch existing task executions matching " + "input filters.\022\340\003\n\024GetTaskExecutionData\022" + "+.flyteidl.admin.TaskExecutionGetDataReq" + "uest\032,.flyteidl.admin.TaskExecutionGetDa" + "taResponse\"\354\002\202\323\344\223\002\241\002\022\236\002/api/v1/data/task" + "_executions/{id.node_execution_id.execut" + "ion_id.project}/{id.node_execution_id.ex" + "ecution_id.domain}/{id.node_execution_id" + ".execution_id.name}/{id.node_execution_i" + "d.node_id}/{id.task_id.project}/{id.task" + "_id.domain}/{id.task_id.name}/{id.task_i" + "d.version}/{id.retry_attempt}\222AA\032\?Retrie" + "ve input and output data from an existin" + "g task execution.\022\277\002\n\035UpdateProjectDomai" + "nAttributes\0224.flyteidl.admin.ProjectDoma" + "inAttributesUpdateRequest\0325.flyteidl.adm" + "in.ProjectDomainAttributesUpdateResponse" + "\"\260\001\202\323\344\223\002O\032J/api/v1/project_domain_attrib" + "utes/{attributes.project}/{attributes.do" + "main}:\001*\222AX\032VUpdate the customized resou" + "rce attributes associated with a project" + "-domain combination\022\237\002\n\032GetProjectDomain" + "Attributes\0221.flyteidl.admin.ProjectDomai" + "nAttributesGetRequest\0322.flyteidl.admin.P" + "rojectDomainAttributesGetResponse\"\231\001\202\323\344\223" + "\0026\0224/api/v1/project_domain_attributes/{p" + "roject}/{domain}\222AZ\032XRetrieve the custom" + "ized resource attributes associated with" + " a project-domain combination\022\251\002\n\035Delete" + "ProjectDomainAttributes\0224.flyteidl.admin" + ".ProjectDomainAttributesDeleteRequest\0325." + "flyteidl.admin.ProjectDomainAttributesDe" + "leteResponse\"\232\001\202\323\344\223\0029*4/api/v1/project_d" + "omain_attributes/{project}/{domain}:\001*\222A" + "X\032VDelete the customized resource attrib" + "utes associated with a project-domain co" + "mbination\022\377\001\n\027UpdateProjectAttributes\022.." + "flyteidl.admin.ProjectAttributesUpdateRe" + "quest\032/.flyteidl.admin.ProjectAttributes" + "UpdateResponse\"\202\001\202\323\344\223\0024\032//api/v1/project" + "_attributes/{attributes.project}:\001*\222AE\032C" + "Update the customized resource attribute" + "s associated with a project\022\351\001\n\024GetProje" + "ctAttributes\022+.flyteidl.admin.ProjectAtt" + "ributesGetRequest\032,.flyteidl.admin.Proje" + "ctAttributesGetResponse\"v\202\323\344\223\002&\022$/api/v1" + "/project_attributes/{project}\222AG\032ERetrie" + "ve the customized resource attributes as" + "sociated with a project\022\363\001\n\027DeleteProjec" + "tAttributes\022..flyteidl.admin.ProjectAttr" + "ibutesDeleteRequest\032/.flyteidl.admin.Pro" + "jectAttributesDeleteResponse\"w\202\323\344\223\002)*$/a" + "pi/v1/project_attributes/{project}:\001*\222AE" + "\032CDelete the customized resource attribu" + "tes associated with a project\022\316\002\n\030Update" + "WorkflowAttributes\022/.flyteidl.admin.Work" + "flowAttributesUpdateRequest\0320.flyteidl.a" + "dmin.WorkflowAttributesUpdateResponse\"\316\001" + "\202\323\344\223\002_\032Z/api/v1/workflow_attributes/{att" + "ributes.project}/{attributes.domain}/{at" + "tributes.workflow}:\001*\222Af\032dUpdate the cus" + "tomized resource attributes associated w" + "ith a project, domain and workflow combi" + "nation\022\243\002\n\025GetWorkflowAttributes\022,.flyte" + "idl.admin.WorkflowAttributesGetRequest\032-" + ".flyteidl.admin.WorkflowAttributesGetRes" + "ponse\"\254\001\202\323\344\223\002;\0229/api/v1/workflow_attribu" + "tes/{project}/{domain}/{workflow}\222Ah\032fRe" + "trieve the customized resource attribute" + "s associated with a project, domain and " + "workflow combination\022\255\002\n\030DeleteWorkflowA" + "ttributes\022/.flyteidl.admin.WorkflowAttri" + "butesDeleteRequest\0320.flyteidl.admin.Work" + "flowAttributesDeleteResponse\"\255\001\202\323\344\223\002>*9/" + "api/v1/workflow_attributes/{project}/{do" + "main}/{workflow}:\001*\222Af\032dDelete the custo" + "mized resource attributes associated wit" + "h a project, domain and workflow combina" + "tion\022\341\001\n\027ListMatchableAttributes\022..flyte" + "idl.admin.ListMatchableAttributesRequest" + "\032/.flyteidl.admin.ListMatchableAttribute" + "sResponse\"e\202\323\344\223\002\036\022\034/api/v1/matchable_att" + "ributes\222A>\032= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminProjectAttributesDeleteResponse + err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHttpResponse, newErr + } + newErr.model = v + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, nil +} + /* AdminServiceApiService Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. Delete the customized resource attributes associated with a project-domain combination @@ -1581,6 +1673,105 @@ func (a *AdminServiceApiService) GetNodeExecutionData(ctx context.Context, idExe return localVarReturnValue, localVarHttpResponse, nil } +/* +AdminServiceApiService Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. +Retrieve the customized resource attributes associated with a project + * @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 + * @param optional nil or *GetProjectAttributesOpts - Optional Parameters: + * @param "ResourceType" (optional.String) - Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + +@return AdminProjectAttributesGetResponse +*/ + +type GetProjectAttributesOpts struct { + ResourceType optional.String +} + +func (a *AdminServiceApiService) GetProjectAttributes(ctx context.Context, project string, localVarOptionals *GetProjectAttributesOpts) (AdminProjectAttributesGetResponse, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Get") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminProjectAttributesGetResponse + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/project_attributes/{project}" + localVarPath = strings.Replace(localVarPath, "{"+"project"+"}", fmt.Sprintf("%v", project), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + if localVarOptionals != nil && localVarOptionals.ResourceType.IsSet() { + localVarQueryParams.Add("resource_type", parameterToString(localVarOptionals.ResourceType.Value(), "")) + } + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminProjectAttributesGetResponse + err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHttpResponse, newErr + } + newErr.model = v + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, nil +} + /* AdminServiceApiService Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. Retrieve the customized resource attributes associated with a project-domain combination @@ -5144,6 +5335,98 @@ func (a *AdminServiceApiService) UpdateProject(ctx context.Context, id string, b return localVarReturnValue, localVarHttpResponse, nil } +/* +AdminServiceApiService Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level +Update the customized resource attributes associated with a project + * @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. + * @param body + +@return AdminProjectAttributesUpdateResponse +*/ +func (a *AdminServiceApiService) UpdateProjectAttributes(ctx context.Context, attributesProject string, body AdminProjectAttributesUpdateRequest) (AdminProjectAttributesUpdateResponse, *http.Response, error) { + var ( + localVarHttpMethod = strings.ToUpper("Put") + localVarPostBody interface{} + localVarFileName string + localVarFileBytes []byte + localVarReturnValue AdminProjectAttributesUpdateResponse + ) + + // create path and map variables + localVarPath := a.client.cfg.BasePath + "/api/v1/project_attributes/{attributes.project}" + localVarPath = strings.Replace(localVarPath, "{"+"attributes.project"+"}", fmt.Sprintf("%v", attributesProject), -1) + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + // to determine the Content-Type header + localVarHttpContentTypes := []string{"application/json"} + + // set Content-Type header + localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes) + if localVarHttpContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHttpContentType + } + + // to determine the Accept header + localVarHttpHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts) + if localVarHttpHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHttpHeaderAccept + } + // body params + localVarPostBody = &body + r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHttpResponse, err := a.client.callAPI(r) + if err != nil || localVarHttpResponse == nil { + return localVarReturnValue, localVarHttpResponse, err + } + + localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body) + localVarHttpResponse.Body.Close() + if err != nil { + return localVarReturnValue, localVarHttpResponse, err + } + + if localVarHttpResponse.StatusCode < 300 { + // If we succeed, return the data, otherwise pass on to decode error. + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err == nil { + return localVarReturnValue, localVarHttpResponse, err + } + } + + if localVarHttpResponse.StatusCode >= 300 { + newErr := GenericSwaggerError{ + body: localVarBody, + error: localVarHttpResponse.Status, + } + + if localVarHttpResponse.StatusCode == 200 { + var v AdminProjectAttributesUpdateResponse + err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type")); + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHttpResponse, newErr + } + newErr.model = v + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, newErr + } + + return localVarReturnValue, localVarHttpResponse, nil +} + /* 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 diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project.go index f501820a2c..59da87f6cc 100644 --- a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project.go +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project.go @@ -17,7 +17,7 @@ type AdminProject struct { Name string `json:"name,omitempty"` Domains []AdminDomain `json:"domains,omitempty"` Description string `json:"description,omitempty"` - // Leverage Labels from flyteidel.admin.common.proto to tag projects with ownership information. + // Leverage Labels from flyteidl.admin.common.proto to tag projects with ownership information. Labels *AdminLabels `json:"labels,omitempty"` State *ProjectProjectState `json:"state,omitempty"` } diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes.go new file mode 100644 index 0000000000..a719e4737b --- /dev/null +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes.go @@ -0,0 +1,16 @@ +/* + * flyteidl/service/admin.proto + * + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * API version: version not set + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ + +package flyteadmin + +type AdminProjectAttributes struct { + // Unique project id for which this set of attributes will be applied. + Project string `json:"project,omitempty"` + MatchingAttributes *AdminMatchingAttributes `json:"matching_attributes,omitempty"` +} diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes_delete_request.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes_delete_request.go new file mode 100644 index 0000000000..3081254e92 --- /dev/null +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes_delete_request.go @@ -0,0 +1,15 @@ +/* + * flyteidl/service/admin.proto + * + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * API version: version not set + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ + +package flyteadmin + +type AdminProjectAttributesDeleteRequest struct { + Project string `json:"project,omitempty"` + ResourceType *AdminMatchableResource `json:"resource_type,omitempty"` +} diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes_delete_response.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes_delete_response.go new file mode 100644 index 0000000000..5c79b2c257 --- /dev/null +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes_delete_response.go @@ -0,0 +1,14 @@ +/* + * flyteidl/service/admin.proto + * + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * API version: version not set + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ + +package flyteadmin + +// Purposefully empty, may be populated in the future. +type AdminProjectAttributesDeleteResponse struct { +} diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes_get_response.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes_get_response.go new file mode 100644 index 0000000000..28391629eb --- /dev/null +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes_get_response.go @@ -0,0 +1,14 @@ +/* + * flyteidl/service/admin.proto + * + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * API version: version not set + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ + +package flyteadmin + +type AdminProjectAttributesGetResponse struct { + Attributes *AdminProjectAttributes `json:"attributes,omitempty"` +} diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes_update_request.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes_update_request.go new file mode 100644 index 0000000000..47892f4a97 --- /dev/null +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes_update_request.go @@ -0,0 +1,14 @@ +/* + * flyteidl/service/admin.proto + * + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * API version: version not set + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ + +package flyteadmin + +type AdminProjectAttributesUpdateRequest struct { + Attributes *AdminProjectAttributes `json:"attributes,omitempty"` +} diff --git a/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes_update_response.go b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes_update_response.go new file mode 100644 index 0000000000..e54987aadf --- /dev/null +++ b/flyteidl/gen/pb-go/flyteidl/service/flyteadmin/model_admin_project_attributes_update_response.go @@ -0,0 +1,14 @@ +/* + * flyteidl/service/admin.proto + * + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * API version: version not set + * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) + */ + +package flyteadmin + +// Purposefully empty, may be populated in the future. +type AdminProjectAttributesUpdateResponse struct { +} diff --git a/flyteidl/gen/pb-go/flyteidl/service/openapi.go b/flyteidl/gen/pb-go/flyteidl/service/openapi.go index 2ca2cac447..ef93897e2c 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\xbd\x79\x73\x23\xb9\x95\x2f\xfa\xff\x7c\x0a\xdc\xf2\x8d\xa8\x2e\x0f\x25\x75\xdb\x33\x7e\x1e\x4d\xdc\x78\x8f\x2d\xb1\xaa\x75\x5b\x25\xc9\x5a\xba\xa7\xdf\xe5\x04\x1b\xcc\x04\x49\x58\x99\x00\x9d\x40\x4a\x45\x3b\xfc\xdd\x6f\xe0\x1c\x00\x89\xdc\xc8\xe4\xa2\xad\x9a\x33\x11\x6e\x15\x33\x13\xeb\xc1\xc1\x59\x7f\xe7\x1f\xff\x42\xc8\x3b\xf5\x48\xa7\x53\x96\xbd\x3b\x26\xef\xfe\x70\xf8\xed\xbb\x9e\xf9\x8d\x8b\x89\x7c\x77\x4c\xcc\x73\x42\xde\x69\xae\x13\x66\x9e\x4f\x92\x85\x66\x3c\x4e\x8e\x14\xcb\x1e\x78\xc4\x8e\x68\x9c\x72\x71\x38\xcf\xa4\x96\xf0\x21\x21\xef\x1e\x58\xa6\xb8\x14\xe6\x75\xfb\x27\x11\x52\x13\xc5\xf4\xbb\x7f\x21\xe4\x9f\xd0\xbc\x8a\x66\x2c\x65\xea\xdd\x31\xf9\x3f\xf8\xd1\x4c\xeb\xb9\x6b\xc0\xfc\xad\xcc\xbb\xff\x0d\xef\x46\x52\xa8\xbc\xf4\x32\x9d\xcf\x13\x1e\x51\xcd\xa5\x38\xfa\xab\x92\xa2\x78\x77\x9e\xc9\x38\x8f\x3a\xbe\x4b\xf5\x4c\x15\x73\x3c\xa2\x73\x7e\xf4\xf0\xdd\x11\x8d\x34\x7f\x60\xa3\x84\xe6\x22\x9a\x8d\xe6\x09\x15\xea\xe8\x1f\x3c\x36\x73\xfc\x2b\x8b\xf4\x3f\xe1\x1f\xb1\x4c\x29\x17\xf8\xb7\xa0\x29\xfb\xa7\x6f\x87\x90\x77\x53\xa6\x83\x7f\x9a\xd9\xe6\x69\x4a\xb3\x85\x59\x91\x8f\x4c\x47\x33\xa2\x67\x8c\x60\x3f\xc4\x2d\x91\x9c\x10\x4a\x8e\x33\x36\x39\xfe\x35\x63\x93\x91\x5b\xe8\x43\x5c\xe0\x73\x18\xcd\x55\x42\xc5\xaf\x87\x76\x99\xa0\xe5\x98\xa9\x28\xe3\x73\x6d\xd7\xfb\x9a\xe9\x8c\xb3\x07\x16\x76\x80\x13\x21\x66\x22\xbe\x33\x35\x67\x11\x9f\x70\x16\x93\xf1\x82\x70\x31\xcf\x35\xc9\xd8\xdf\x72\xa6\x34\x99\xf0\x44\xb3\x4c\x95\x7a\x91\x73\x96\xc1\x0a\x9e\xc5\xa6\x97\x4f\x4c\xf7\xa1\xed\x62\x54\xe1\xdb\x19\x53\x73\x29\x14\x53\xa5\x45\x20\xe4\xdd\x1f\xbe\xfd\xb6\xf2\x53\x7d\x06\x7d\xa2\xf2\x28\x62\x4a\x4d\xf2\x84\xb8\x96\xc2\xc1\xe0\x82\x1a\xf2\xa1\xb5\xc6\x08\x79\xf7\x3f\x33\x36\x31\xed\xfc\xee\x28\x66\x13\x2e\xb8\x69\x57\x21\x95\x06\xa3\x2d\x7d\xf5\xcf\x7f\x69\xfa\xfb\x9f\xc1\x8c\xe6\x34\xa3\x29\x33\xcb\xe2\xe9\x0a\xff\xaf\x32\x17\x43\x09\xa6\xf3\x82\x5a\xaa\x03\xaf\xcc\xf6\x82\xa6\xcc\xec\xbc\xd9\x2e\xfb\x05\xfc\x9d\x31\x25\xf3\x2c\x62\x64\xcc\x12\x29\xa6\x8a\x68\x59\x5b\x03\x0e\x2d\x18\x22\xae\x3e\x31\x5b\xc9\x33\x66\xf6\x4a\x67\x39\xab\x3c\xd5\x8b\x39\x0c\x52\xe9\x8c\x8b\x69\xb8\x14\xff\xec\x75\x9a\x1a\xd2\xfe\x1a\x33\xc3\x0f\x5a\x27\x36\x14\x7d\xf7\x4a\x44\x05\x19\x33\x62\x4e\x3c\x8f\x59\xc6\x62\x42\x15\xa1\x44\xe5\x63\xc5\x34\x79\xe4\x7a\xc6\x85\xf9\x37\x92\x6f\xe4\xd6\xec\xf5\xac\x0d\xfc\xb9\x7c\x65\xee\x14\xcb\xcc\xc0\x1f\x78\xcc\x62\xf2\x40\x93\x9c\x91\x89\xcc\x4a\xcb\x73\x38\x14\xb7\x33\xb3\x0e\xe9\x98\x0b\x38\x79\x66\x2d\x1d\x85\xfc\xab\x5b\xae\x7f\x25\xa6\x3f\x92\x0b\xfe\xb7\x9c\x25\x0b\xc2\x63\x26\xb4\x39\xd7\xaa\xda\xda\xbf\x4a\xe8\x9f\x26\xe4\x80\x98\x75\x66\x99\x86\xf5\x96\x42\xb3\x2f\x5a\x91\x03\x92\xf0\x7b\x46\xde\x9f\x73\xa5\x49\xff\xea\xec\x7d\x8f\xbc\x3f\x2f\x18\x87\x7a\xff\x0c\x2b\xec\xff\xfe\xef\xe0\xe8\x69\x3a\xad\x1e\xba\x77\x7d\x73\x9a\x6f\xf0\x02\x2a\x5a\xf8\xef\x7f\x09\xdb\xb1\xfb\xb5\x9c\xab\x17\x2c\xdd\xf2\xf3\xae\x5c\x1c\x96\xa9\xcc\xc0\x95\xd9\xa1\x6d\xf9\x77\xed\x76\x68\x60\xde\x6a\x4b\xee\x6d\xc6\x5e\x65\xdf\xea\x6d\xf1\x6f\x33\x85\xa7\xe6\xe1\xdb\x30\x70\xaa\xe1\x64\x51\x2e\xf0\x20\xfa\x73\x99\x29\x73\x16\xdd\x09\x79\x25\x6c\x6b\x1b\x7e\x1e\xcc\x2c\x60\xe9\x8e\x53\x07\xab\xf2\x0a\xe7\x9d\xf0\x94\xaf\xda\xdf\x33\x11\x1b\xe1\xd1\x32\x54\x91\xa7\x63\x96\x99\x65\x70\xac\x15\x66\x3b\x36\xac\x56\xe7\x99\x60\x71\x87\x69\xfe\x2d\x67\xd9\x62\xc9\x3c\x27\x34\x51\x6d\x13\xe5\x42\x33\x23\xa9\x57\x1e\x4f\x64\x96\x52\x6d\x5f\xf8\xd3\xbf\xad\xbb\x10\x5a\xde\xb3\x55\xfb\x7f\x86\xbb\x19\x51\x05\x64\x90\xe6\x89\xe6\xf3\x84\x91\x39\x9d\x32\x65\x57\x24\x4f\xb4\xea\xc1\x6b\x46\x3b\x60\xd9\x81\xbf\xe5\xa0\x07\x77\xbb\xe7\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\x33\x3d\x1a\x2f\x0e\xef\x59\xad\xdf\x56\xca\xa1\x82\x50\xad\x33\x3e\xce\x35\x33\xf3\x36\x6d\xb8\xfb\x19\xd8\x23\x0a\x01\x5d\x58\xc3\xcb\x4d\x38\xe6\x19\x8b\x60\x6e\xeb\x1c\x18\xff\x95\x99\xb7\xd1\xc4\x16\x38\xfb\x7b\xb6\x00\x99\xa7\x61\x05\xfc\x96\x0f\xc5\x50\x90\x03\x72\x3a\xb8\x39\x19\x5c\x9c\x9e\x5d\x7c\x3a\x26\xdf\x2f\x48\xcc\x26\x34\x4f\x74\x8f\x4c\x38\x4b\x62\x45\x68\xc6\xa0\x49\x16\x1b\xb9\xc6\x0c\x86\x89\x98\x8b\x29\x91\x59\xcc\xb2\xa7\x5b\xc6\xca\x53\x26\xf2\xb4\x72\xaf\xc0\xef\xc5\xe8\x2b\x5f\x18\x31\xc6\x3f\x2a\x3d\xf9\xef\xda\x02\xc3\x8c\x4d\xdf\x41\x6b\xcf\x26\x38\x45\x33\x9e\xc4\x19\x13\x47\x9a\xaa\xfb\x11\xfb\xc2\xa2\x1c\xef\xe4\x7f\x94\x7f\x18\x19\xe9\x57\xc6\xac\xfc\x4b\xe9\x1f\x85\xb8\xb5\xf6\xa7\x5e\xdf\x5e\xfb\x4b\xd0\xce\xbb\x7d\x07\xbf\xf0\xb8\xf1\x6d\xf8\x65\xc5\x1c\xdc\x3b\x4b\x06\xeb\x5e\x69\x1d\x95\x7b\xc1\x0a\x7b\x8d\xef\x64\x4c\x67\x8b\x11\xd5\x9a\xa5\x73\xbd\xa6\xe5\x81\x92\xc4\xc8\xae\xcb\x64\xd5\x0b\x19\xb3\x81\xeb\xef\x57\x2b\x82\xa2\xb0\x89\x5c\x6b\xc2\x32\x26\x22\xd6\xde\xc2\x2d\x55\xf7\x45\x0b\xab\x05\x5e\xa0\x31\x62\x96\x9f\x14\x04\x56\xeb\xb8\x10\x7b\xcd\x92\x14\x6f\xae\x12\x76\x4b\xf3\x51\x1f\x65\x66\x86\xf7\x16\x04\xde\xd2\xc0\x9f\x43\xe6\xdd\xf4\x44\x7f\x75\x56\x8e\x0d\xf9\xd3\xde\x26\xb2\xfd\x4a\x76\xb5\xa0\xc8\x8c\xa8\x85\xd2\x2c\x5d\x69\x4b\x79\x3b\x0b\x61\x2f\xa0\xd7\x3a\xe0\xca\x1d\xf8\x1b\x38\xf5\xe5\x1b\x7d\x7f\xbc\xd7\x58\xb2\x5d\x59\x42\x5f\xfb\x3c\x9d\xb7\x6b\xf9\x54\x6f\xdc\xf6\x05\xee\x9e\x37\x31\xcd\x92\xac\xb9\xeb\x41\x3e\x91\x39\xa3\x75\xaf\xdc\x6a\x8f\x60\x00\x2b\x14\xd9\xb2\x2d\xdd\x9f\x3f\xf3\x69\x68\x01\x42\x73\x9f\x9e\x71\x15\x18\xc3\x48\x24\x33\x94\x05\x63\x7b\xde\x51\x97\xed\xdf\xf6\x6f\x06\xb7\xc7\xa4\x4f\x62\xaa\xa9\x39\xe0\x19\x9b\x67\x4c\x31\xa1\xc1\x4e\x60\xbe\xd7\x0b\x92\xca\x98\x25\xa8\xd1\x7e\x34\x92\x35\x39\xa5\x9a\x9e\x50\x4d\x13\x39\x3d\x24\x7d\xf8\xa7\xf9\x98\x2b\x42\x13\x25\x09\x75\x64\xc5\x62\xd7\x04\x15\xb1\x63\x2d\x94\x44\x32\x9d\xf3\xc4\xfb\x11\xbc\xf1\x86\x8b\x98\x3f\xf0\x38\xa7\x09\x91\x63\xc3\x55\x8c\x06\x3e\x78\x60\x42\xe7\x34\x49\x16\x84\x26\x09\xb1\xdd\xba\x17\x88\x9a\xc9\x3c\x89\x4d\xbb\x6e\x94\x8a\xa7\x3c\xa1\x99\x51\xf1\x71\xb4\x97\xb6\x2d\x72\x3b\x63\x7e\xac\x30\x2e\xb3\x9a\x29\xbd\x67\x8a\x70\x4d\xe6\x52\x29\x3e\x4e\x8a\x33\x7f\x77\x46\x60\xdc\x27\xe7\x67\x60\x2f\x88\x34\x91\xc8\x43\x5d\xe7\xd6\x3e\xe4\x7a\x4c\xa9\x10\x0c\x3a\x96\x7a\xc6\x32\xdb\xbd\x7d\xf9\xa5\x55\xff\xbb\x8b\x9b\xab\xc1\xc9\xd9\xc7\xb3\xc1\x69\x5d\xf7\xbf\xed\xdf\xfc\x58\xff\xf5\xe7\xcb\xeb\x1f\x3f\x9e\x5f\xfe\x5c\x7f\x72\xde\xbf\xbb\x38\xf9\x61\x74\x75\xde\xbf\xa8\x3f\xb4\x64\xd5\xd9\x8c\x10\x8e\x6c\xcd\xb3\xb5\xb7\x99\x3e\x95\xcd\xb4\xf7\xf5\x1a\x4d\xad\x53\xaa\xbb\xc1\xd4\xdb\x28\xec\x97\x64\x4e\x95\x42\xc9\x08\x47\x70\x38\x14\x9f\x65\x66\x18\xd8\x44\x1a\x1e\x61\xa4\x27\x9d\xe5\x91\xe6\x62\xea\x3f\x3a\x26\xc3\xfc\xdb\x6f\xff\x18\x9d\x73\x71\x0f\x7f\xb1\xd7\xb8\x38\x7b\x8b\xf2\xde\xa2\xfc\xdb\xb2\x28\x1b\xd1\xe7\x28\x34\x24\xef\x36\xb8\xca\x08\x17\xe0\x13\x37\xa2\x84\xcc\xb5\xf9\xd3\x74\x09\xe4\xb1\x24\xc4\xaa\x9b\xc1\xd2\x47\x58\xb5\xf4\x91\xc9\x14\x04\xb9\x2f\x5c\x01\x33\x7a\x94\xd9\xfd\x24\x91\x8f\xdd\xcc\x95\x9f\x98\xf6\xc3\x30\x82\xd3\x5b\xb0\x52\xfe\x6c\x67\xe8\x07\xfe\x89\x69\x33\xf6\x6b\xdb\xcb\x3e\xd8\x6a\x1f\x6c\xf5\xb2\xc1\x56\xaf\xca\x54\xf8\xf4\xac\xb5\x6c\x57\x44\xfe\xda\xe2\x87\x6b\x75\xb3\xb5\x78\xd1\x02\x27\xd9\xb3\xf0\xe4\xb2\x2b\x6a\x97\x7c\xb9\xec\x6c\x5a\xc1\x93\x4b\xc3\x78\x2b\x7c\xb9\x34\xe8\xe7\xe7\xc9\xbf\x09\x3f\xd1\xde\x0d\xb4\xe1\x42\xbd\x49\xd6\xdd\xf1\x56\x7a\x36\x27\xce\xd3\x5f\x25\xb5\x98\x8f\x75\x82\x3c\xd6\x88\xea\xe8\x1c\xc6\xb1\x22\x6e\xa3\x31\x50\xa3\x29\x32\xa3\x1e\x8a\xd1\x18\x7b\xb1\x5d\xb0\xc5\xa6\xb7\x5e\xf7\xf0\x89\x75\x6f\xbd\xee\x81\x13\x9f\x98\x2e\x0d\xe3\xad\xdc\x7a\xa5\x41\x3f\xff\xad\xf7\x1b\x8d\x97\xd8\x07\x48\x3c\xe1\xd2\x7d\xed\x77\xe5\xeb\x0d\x81\xf8\x0d\xc4\x3c\xec\x83\x1c\xd6\x5a\xa3\xaf\x2b\xaa\xe1\x6b\x0d\x63\x78\x9b\x71\x0b\xfb\x40\x85\x7d\xa0\xc2\x4b\x78\x94\xde\x5e\xa0\xc2\x93\x2a\xbe\xcc\x90\x95\x02\x2b\x6a\xa8\xdc\xbc\x9b\x4b\xd5\xae\xef\x85\xce\xeb\x06\xbd\x0e\xda\x2c\x5b\x33\x81\x7a\x7f\x25\x33\xaa\x88\x8c\xa2\x3c\xab\xb8\x68\xab\xa7\xfc\x24\x63\x54\x9b\x23\x52\x36\x5c\x12\x68\x99\x64\x2c\x92\x19\x38\x29\x29\x99\xcf\xa8\x62\x44\x67\x54\x28\xbe\x4a\xcb\xc3\x56\x61\x5c\xa6\x9d\xb7\xa0\xe0\xd5\x17\xf1\xb9\xd4\xbb\xb1\x8c\x6b\x07\x12\xcf\x6a\xd3\x93\xe5\x37\xc9\xce\xa6\x0e\x69\xbf\x5d\x66\xfe\x84\x47\xc5\xdc\x5a\x3b\x3e\x2a\x25\x35\x7e\xd3\xa3\x52\xb6\x76\xec\xe4\xa8\xc0\xb8\xde\xca\x51\xa9\x2f\xe2\x6f\xe6\xa8\x34\x4d\xfd\x35\x1c\x15\x17\x0e\xb0\xe3\xe3\x52\xf3\xc1\x6f\x7a\x64\xea\xe1\x0a\x3b\x39\x36\x7e\x7c\x6f\xe5\xe8\x34\x2f\xe8\x6f\xe6\xf8\xb4\x4d\xff\x65\x8f\x90\xf7\x43\x74\x3e\x3c\xb7\x19\x9f\x4e\x59\x86\x9a\x51\x64\x48\x71\x35\xd4\x52\x61\x79\xdf\xec\xc0\xac\x3e\x0d\xbe\x87\xb7\x70\x12\xfc\x60\x71\xec\xbf\x99\x23\x50\x9b\xf7\x2b\xa1\xfd\x23\xc3\x89\x1f\x00\xad\xad\xdb\x19\xb8\x66\x40\xf8\x70\x81\xcc\x33\xf6\xc0\x65\xae\x92\xc5\x41\x96\x8b\x26\x6e\x0f\x46\x82\x47\x9e\x24\x44\x8a\x64\x41\x94\xa6\x99\x76\x8f\xc5\x14\x3d\x4a\xe6\x30\x25\x54\x69\x72\x2f\xe4\xa3\x20\x13\xca\x93\x3c\x63\x64\x2e\xb9\xd0\x87\x43\x71\x26\xc8\x35\x8e\x11\x34\xef\x1e\xc9\x95\x39\x82\x11\x15\x42\x6a\x12\xcd\xa8\x98\x32\x42\x85\x83\xae\x29\x28\x83\xc8\x8c\xe4\xf3\xd8\x1c\x2c\xd3\x45\xc5\xc6\x54\x1c\xb0\xa1\xb8\x05\x2b\x86\x22\xec\x8b\xce\x58\xca\x92\x85\xe9\xc3\xd0\xbe\x96\xc4\xae\x0f\x0e\xd5\x1a\xc4\x59\x96\xc9\x4c\x81\xce\x3e\x5e\xfc\x9d\x0a\xcd\x05\x23\xa0\x66\x2a\x04\x3e\x3a\x20\xe7\x52\x41\x4c\xf6\x8f\x7f\x56\x24\x4a\x72\xa5\x59\xd6\x23\xe3\x7c\xaa\x08\x17\x64\x9e\x50\x3d\x91\x59\x6a\x46\xc8\x85\xd2\x74\xcc\x13\xae\x17\x3d\x92\xd2\x68\x86\x6d\xc1\x1a\xa8\xde\x50\xc4\xf2\x51\x28\x9d\x31\xea\x7b\x77\x0f\xc9\x37\xe1\x33\x24\x00\xf5\xa1\x07\x86\x7b\x9e\xce\x93\x45\x38\xfc\x20\x11\x1a\xf6\xc4\x34\xc2\x62\x32\x66\x11\xcd\x95\x35\xec\xe8\x6c\x41\xd8\x97\x19\xcd\x15\xec\x9d\x99\x9e\xb5\x7a\x44\x32\x9d\x27\x4c\x33\xc2\x27\x44\x67\x9c\xc5\x84\x4e\x29\x37\x4b\x77\xc3\x96\x24\x6e\x7b\xa2\xb7\x1b\x68\xa9\xfe\x57\xb0\x7c\xa4\x32\x63\x24\x66\x9a\xf2\x44\x2d\x77\x4a\x3e\x2b\xc1\x91\x27\xa7\x37\xf2\x7a\xc9\x8d\xbc\x6a\x6a\x5b\x72\x13\xda\x1d\xdb\x5f\x85\x6f\xe9\x2a\x2c\x73\x85\x57\x71\x17\x22\x48\xc4\x0e\x04\x42\x61\xad\xe2\x11\x4d\xb6\x94\x0d\xaf\xed\xa0\xd6\x96\x0e\xdd\x87\xfb\x43\xf1\xb6\x0e\x05\xee\xda\xeb\x39\x15\x6d\x09\x15\x3b\x47\x8a\x59\x07\xe3\x65\x49\x46\x84\x22\x29\xd5\xe6\x62\x9b\xda\x2b\xba\x23\x8a\x61\x01\xea\xf2\xa6\x0e\xca\x73\x20\xb9\x7c\xdd\x11\x0b\xfb\x48\x85\xdf\x20\x02\xed\xab\x49\x60\xdc\xe7\x40\x3f\x51\x0e\x34\x57\xfb\x1c\xe8\x7d\x0e\x74\xd7\x05\xda\xe7\x40\xef\x73\xa0\xdf\x6c\x0e\xf4\x93\xa6\x3f\xef\x2e\xc9\x79\x37\x99\xcc\x6f\x4a\x3a\xdf\x4b\xe6\x7b\xc9\x7c\x9f\xae\xec\xa7\xb6\x2b\x2e\xe8\xbe\x7e\x17\xb3\x84\x69\xd6\x6e\xa0\x63\x59\x6a\x14\x0e\xbc\xe1\xb9\x30\xa2\xe0\x34\x63\x4a\x6d\xcb\xd3\x7c\xc3\x61\x79\x85\x06\x7f\x44\x81\x32\xeb\xc9\x12\xec\x3a\xcb\x98\x9d\x6f\xfb\x6d\xb2\x3c\x3f\xfc\x3d\x64\xc3\x9e\x07\xee\x79\xe0\x26\x53\x7b\x3d\xe6\xe8\xe0\x30\x3f\x97\x3d\xda\xf3\xf6\x79\xde\x2e\x9c\xde\xa1\xa3\xb5\x60\xb4\x48\xe1\x90\x95\x2a\xfd\xe1\xb6\x74\xbe\x25\xaf\x5f\xa7\xaf\x65\x7c\x1d\xdb\x79\x9b\x4c\x1d\xc7\xbe\xe7\xe8\x7b\x8e\xbe\xe7\xe8\x6f\x9b\xa3\xbb\x93\xfc\xa2\xee\xc5\xa0\x70\xda\x88\xc7\xdb\xd4\x4e\xeb\x5e\x87\x82\xa6\x2c\x1e\x40\x96\x98\xcf\x71\xcb\x7e\x35\x9f\x84\x55\xd1\x5c\x3e\x58\x77\x07\x64\xf8\x75\xb1\xea\xa5\x52\x56\x9b\xf9\x23\x8b\x02\x65\x67\xf1\x9b\x70\x49\x36\xae\xf0\x57\x52\x5c\xed\x75\x70\x91\x67\xaf\xad\xf6\x3a\xa6\xbd\x77\x91\xed\x4b\xab\xed\x9d\x40\x1d\x27\xbc\x77\x02\xbd\x5e\x27\x50\x87\x6d\x7c\x12\xcf\xee\x33\x1f\xcf\xe7\x12\x1d\xbb\x67\xee\xb8\x04\x1b\x11\x93\x7c\x9e\x48\x1a\x77\xac\x8e\x1e\x48\x74\x1d\xd2\x77\x44\x4c\x32\x36\xe5\x4a\xb3\xcc\xec\x4b\xa3\x60\xb8\x3a\x9f\xe7\xad\x96\x41\xef\x1c\xb1\x19\x76\xfb\xee\xdf\x3a\x0c\xff\xda\xde\xd9\xc0\x89\xc6\x34\xf6\xf5\x89\x41\x7c\x4b\xe9\x82\xcc\xe8\x03\x73\x51\xe6\x0f\x34\xe1\x31\xad\xae\x75\x65\x86\xcb\x06\xf4\x1f\xeb\x0d\x88\x96\x87\xe3\x0b\xda\xa9\x72\x14\xb0\x05\xa8\x80\x77\x66\x46\x2b\x4f\x32\x46\xe3\x05\x19\x33\x26\x3c\xd9\x34\xdc\x27\x2d\x63\xde\x89\xe0\xfc\xe2\x5a\x69\x9d\x7a\x5e\x8b\x5a\xfa\x8c\x71\xaf\xcd\xfc\x66\x7b\x1d\x74\x7b\xc5\x53\xfd\xe1\x6d\xb1\xa0\x7d\x2c\xec\xde\x36\xf9\xf2\xb6\xc9\x7d\x2c\xec\x5e\xd1\x7f\x65\x8a\xfe\x3e\x16\x76\x1f\x0b\xbb\x37\x83\x2c\x9f\xf6\xde\x0c\xf2\x55\xc4\xc2\x76\x92\xe1\x37\x8c\x86\x7d\xe3\xd2\xfc\x5e\x98\x77\xef\xed\x85\xf9\xbd\x30\xff\x95\x0a\xf3\xaf\x63\x85\xf7\x92\xfc\x5e\x92\xdf\x4b\xf2\x7b\x49\x7e\x2f\xc9\xef\x7c\x19\xf7\x92\x7c\xb3\x24\x0f\x7f\xb9\x62\x3b\xeb\x8a\xf5\x6b\x8a\xf3\x6b\xa7\xbb\xad\xef\x0c\xfc\xc4\xf4\x5b\xf5\x04\xee\xa5\xf6\xbd\xd4\xfe\xba\xa5\xf6\x57\x33\xa1\xaf\xaf\x50\xc6\xbe\xd4\xc4\xbe\xd4\xc4\xbe\xd4\xc4\x13\x97\x9a\x70\x5f\x77\xc8\x91\xb2\x87\x4b\x53\x9d\x2b\xc4\x2a\x2e\x82\x4d\x3a\x89\x3d\x1d\x52\xa3\x2a\x3d\xac\x96\x7b\x48\x5f\x93\x54\x1a\xdd\x4d\xb0\xd2\x3b\x8e\xc1\x61\x60\xcd\x94\x3f\x30\x41\x5c\x72\x40\xcf\x5e\x63\x3d\x30\xa6\xfc\xd3\x1f\x3e\x4c\xbe\xa5\x9a\x50\xa2\x79\xca\x0e\xc9\xd9\x04\xb9\x45\x64\x4e\x97\x62\x5a\x55\xa2\xb1\x90\xf2\xe1\x23\x11\x17\x63\x75\x7d\xf3\x22\x38\x07\x5f\xeb\x39\x66\x9b\x27\x1a\x59\xaf\x6b\x1c\x90\x46\xc7\x9e\x43\xc1\x41\x4b\x59\x96\xb8\x2f\x4b\xdd\xba\x97\x53\x1a\x1b\xc6\x10\x0c\xa1\xc8\x12\x0e\xdf\x87\x3b\x9d\x2b\x1f\x5e\x54\xfa\x1e\xbf\x06\xb8\x52\x80\x17\x05\x58\xf5\x4e\xc3\x98\x41\xf4\x9b\x11\xf1\xe2\x3c\x61\x84\x2a\x25\x23\x4e\x41\x8d\x41\x19\x80\x70\xed\x2c\x0d\xee\x25\xd7\x75\xcc\x15\x1d\x27\x2c\xb6\x6b\xcc\x8a\x68\xa7\xa5\x23\xe7\x8a\x8c\x99\x59\x62\xc3\xa6\xca\xab\x3f\x43\x09\xa4\x61\x34\xc1\x50\x58\x7d\x24\x4c\xe0\x40\x96\x48\xd0\x48\x9c\x6f\x55\x88\xde\x67\xdc\xf9\xa7\x7b\x91\x7a\x2f\x52\xff\x46\x45\xea\x57\x14\xa1\xf9\x2a\x12\x07\xc1\x07\x6a\x38\xff\xc8\x1b\x36\x55\x57\x5b\xcf\x39\x57\x5a\x91\x28\x57\x5a\xa6\xed\x92\xcf\x67\xd7\x43\xdf\x77\x70\x22\xc5\x84\x4f\x73\xbc\x5b\x7e\xb5\xb2\x89\x3f\xd1\x85\x9a\xb2\x98\xb3\x6e\x86\x21\x6f\xb7\x5e\xd5\x59\x63\x3e\x62\x83\x93\xb7\xa1\x9d\x37\x71\xdb\x35\x0f\xfd\xb9\x2e\xbd\x75\x94\xd5\xc2\x3e\x6e\x35\x4d\xa3\x5f\x8c\xae\x07\x37\x97\x77\xd7\x27\x83\x63\xd2\x9f\xcf\x13\x8e\x2e\x2b\xa4\x30\xfe\x77\x33\x29\xac\x1a\xe5\x49\xc4\x0a\x44\x08\xe6\x0e\x3e\x32\xa3\x0f\x92\x03\x72\x72\x7e\x77\x73\x3b\xb8\x6e\x69\xd0\x92\x04\x20\x0e\xb0\x74\x9e\x80\x7c\x74\x9f\x8f\x59\x26\x98\x91\xf0\x2d\xe4\x7b\xe1\x39\xc3\x46\x07\xff\x35\x38\xb9\xbb\x3d\xbb\xbc\x18\xfd\xe5\x6e\x70\x37\x38\x26\x8e\xb6\x4c\xb3\x66\x5c\x66\x14\xf1\x42\xd0\xd4\x68\xdd\xe5\xf2\x56\x7f\xcb\x59\x0e\xe2\x18\x9f\x8a\x94\x41\x25\x86\x52\x8b\x6e\xc0\xe7\xfd\xef\x07\xe7\xe5\x96\x67\x2c\xc4\xa1\x27\x09\x1d\xb3\xc4\xba\xf2\xc0\x3b\x65\xce\x4f\x80\xd8\x8f\x3e\xbe\x1c\x57\xf5\x2f\x77\xfd\xf3\xb3\xdb\x5f\x46\x97\x1f\x47\x37\x83\xeb\x9f\xce\x4e\x06\x23\xab\x49\x9d\xf4\x4d\xbf\xa5\x9e\xac\xc2\x45\xfe\x96\xd3\xc4\x68\xe4\x72\xe2\x90\xe9\xc9\xe3\x8c\x09\x92\x0b\xa0\x38\x54\xf3\x41\x2b\x09\x61\x79\x70\x46\x57\xe7\x77\x9f\xce\x2e\x46\x97\x3f\x0d\xae\xaf\xcf\x4e\x07\xc7\xe4\x86\x25\xa0\x08\xbb\x45\x87\x5d\x9c\x27\xf9\x94\x0b\xc2\xd3\x79\xc2\xcc\x6a\x50\x8b\x03\x31\xa3\x0f\x5c\x66\x25\x6d\x05\xd6\x11\x58\x01\xb4\xef\x14\xce\x51\xb0\x74\x97\x17\x1f\xcf\x3e\x1d\x93\x7e\x1c\xfb\x39\x28\x68\xa3\x44\x39\x0e\x4d\xe8\xa0\x86\x26\x14\x51\x0c\x08\x81\x02\xed\x0f\x2c\xcb\x78\xcc\x2a\x74\xd4\xbf\xb9\x39\xfb\x74\xf1\x79\x70\x71\x0b\x2b\xa6\x33\x99\x28\x32\x93\x8f\xe0\x05\x82\x19\x82\x73\xe8\x81\xf2\x04\x3a\x73\x9b\x25\x05\x79\x9c\x71\xf0\x1c\x42\x85\x02\xdf\x33\xda\x24\xb2\xbc\x9e\x54\xf1\xdc\x5a\x7f\xe9\xe0\xd5\x55\xf5\xea\x49\xaa\xbf\x51\x39\x16\xcb\x5e\x28\x51\x79\xfd\xc5\x55\xd4\x5a\xff\xa2\x42\x6e\xed\x06\x8a\x1a\xbd\xb4\xcf\xb4\xd8\xeb\xce\xf6\x89\xf2\x1a\x3e\xdb\xed\x6d\x18\x6f\x3c\x72\x76\xaa\xa3\x7f\x94\x18\xf0\x3f\x77\x18\xad\x85\x09\x3a\x4b\xb1\x0b\x83\x6c\xf5\x5f\xed\x35\xdb\xf1\xf2\x0e\xbe\x6c\xfa\xb0\xee\xc7\x09\x3e\x78\x0b\xb7\x72\x38\xdc\x57\x74\x03\x5f\x87\x72\x96\x13\xd7\x53\xa6\x69\x4c\x35\x35\x7c\x6d\xca\xf4\x21\xb9\x14\xf0\xec\x96\xaa\xfb\x1e\x71\x85\xc7\x88\xcc\x48\x21\xc8\x3e\x43\x82\xfb\x1b\x31\x60\xae\xaf\x5c\xed\x8d\x04\x7b\x23\x41\xf3\xca\xec\xa3\xe5\x5a\x56\x78\x57\x37\xea\x5a\x36\xff\xdd\x5d\x7c\x81\x89\xdf\x05\xbe\x54\x6c\xb4\xa5\x1b\x71\xa5\x3d\xf6\xed\x5e\x86\xcf\x6b\x91\xdd\xe9\xd5\x88\x75\xc9\xf6\xf7\x1e\xfe\xdf\xfe\xde\xdb\xdf\x7b\xfb\x7b\xef\x15\xac\xf0\x8b\x5b\xb7\x1b\xb8\xfb\x8b\x9a\xb7\x57\x29\xc8\x1b\xc3\xe4\x15\x0a\xf1\x3a\x40\x79\xbf\x76\xc1\xc3\x6b\x30\x6b\xd7\x35\x64\x45\xd4\x8c\x66\x58\xf0\x3b\x92\x69\x2a\x45\xd9\x6e\xde\x23\xde\xc9\x0f\x46\xc9\x95\x60\xaa\x86\xb2\x8b\x6e\xf8\xdb\xb0\x77\x07\xeb\xf2\x1c\xd9\x4d\x3b\x15\x21\x30\x6d\x60\xaf\x5f\x3f\xa1\x9c\xb1\xc7\x31\xdc\x29\x8e\xe1\xeb\x98\xeb\x93\x64\x42\xed\xde\x06\xff\x36\xb2\x9f\xf6\x80\x85\xfb\xfc\x9e\x7d\x7e\x0f\xfc\xbe\x07\x2c\xdc\x1d\xb5\x3e\xad\x4c\x2f\x63\x36\xaa\x54\xe8\xf2\xff\x1c\x55\x5d\x5e\xa5\x27\xa1\xff\xab\xf4\xa0\x48\x78\x82\xd6\x79\xbc\xcb\xaa\x5e\x17\x32\x66\x5b\x54\xf6\x32\x23\xea\x5c\xd5\xab\xd4\xd7\x2b\x17\xe1\xdd\x32\xa1\x28\x5f\x1a\xf8\x13\x0b\xf2\x2d\x14\xf3\x35\x5a\xa3\x1a\xe8\x7f\x6f\x9a\x5a\xb9\x50\x5f\x6b\xd9\x84\x82\xc1\xbd\x21\x47\x4d\xb7\x5b\xc0\x85\xf7\x8c\x5a\xee\x82\xe6\xe7\xfe\x46\x68\x7e\xfc\x34\x90\x36\xdd\x2f\x84\x0a\x92\x4d\xf9\x2a\xd8\x14\xc1\xa6\xd4\xfd\xdb\xb0\xf3\x84\x23\x7e\x0e\x4b\xcf\x52\x62\xfa\xea\xae\x89\x65\x47\x63\x7f\x59\x74\x5c\xae\xaf\xf5\xca\xd8\x23\xcf\x2c\xb3\xbd\xec\xa1\x5d\xf6\xa6\x9f\xd7\x33\xe1\xbd\xe9\xe7\x4d\x9b\x7e\xd0\x51\x3d\x9a\xd3\x8c\x09\xdd\x20\xa3\x57\xaf\x13\x78\x3d\xcc\xe1\x77\x52\x07\x34\x80\xd2\xa2\xbd\x90\xfd\x55\xf5\x75\xd9\x82\xac\x60\x30\x42\xb9\x22\xc8\x61\x3a\xfa\x47\xf1\x77\xa0\x04\x04\x3f\x36\x38\x7c\x97\x05\x82\x21\x9e\xbe\x32\xd7\x77\x6e\x63\xc2\x76\x95\xf9\xe4\x84\xc4\x16\x47\x6d\x7b\xfc\x98\x4b\x6f\x60\x71\x21\x70\x15\x33\x6c\x88\x2b\xb3\x3d\x1d\x38\x31\xac\x88\x9f\x58\x19\x66\x76\x85\x9f\x9e\xc2\x97\x6f\x2b\x2b\xaa\x65\xe8\xcf\x1b\x7e\x56\x27\xc7\x6e\xa7\xdb\x11\x07\xc7\x3c\x9f\x20\x99\xc4\x88\xca\x72\x12\x6e\xb8\xcb\xe5\xa6\x90\xea\xd4\x76\x3d\x3d\xb7\x00\x59\x3b\x73\xdd\x26\x6e\x69\xf4\xed\xce\xfb\xc5\x83\x71\x56\xd0\xfd\x8b\x06\xe6\x2c\x61\xdc\xdb\x95\xae\x7c\x31\xbe\xec\x6d\xf7\xcf\xc7\x99\x3f\x31\xfd\xf5\xb1\xe5\x4f\x4c\x3f\x17\x4f\xde\x94\x11\x2f\x65\x46\x45\xbd\xa2\x37\x1a\x27\x52\xe3\xbf\x6f\x76\xba\xeb\xc4\x6b\xfd\x8c\x93\xb4\xc1\x5a\x3e\x2d\x3e\x9c\xaa\x96\xd6\x80\x51\xd2\x01\xf7\xe9\xcb\xfb\xf4\xe5\x7d\xfa\x72\xf5\xa8\xef\xd3\x97\xf7\xe9\xcb\x8d\xc9\x56\x31\x4b\x98\x66\xad\x32\xdc\x29\x3c\x7e\x29\x19\x0e\x7b\x7f\x46\x09\x0e\x3b\xfc\xfa\x84\x38\x9c\xd7\x5e\x8e\xdb\xcb\x71\xbb\x98\xee\x6b\xd5\xa4\x1d\x95\xbf\x06\x4d\xba\x33\x6a\x53\x11\xb0\xb6\x32\x4e\xc1\x4e\xfb\xd7\x95\x01\x0a\x01\x02\xa6\x1b\xce\xaa\x20\x84\x2b\x37\xec\xb7\xc3\xe4\xd4\x53\xf3\xb1\x6d\x5c\xad\x6e\xdd\xbf\x5a\x4f\xeb\xbe\xc6\x47\xe3\x5a\xed\x1d\xc1\x4b\x16\x67\xef\x08\xde\x3b\x82\x5f\x9d\x23\x78\xe7\x2a\xd5\xd2\x4a\xfd\xd7\xf6\x6a\x5e\x1a\xa1\xee\x2e\x7a\xd4\x65\x0c\x29\x20\x2e\x79\xcc\xe6\x89\x5c\x80\xbd\x67\xa9\xe5\xdb\xd7\xe8\x6f\x08\xd4\xaa\x5e\xfe\xee\xed\xab\x9a\xd0\xfe\xda\xef\x7f\x37\xf2\xe7\x52\x6b\x5e\x8b\xd8\x5b\xcc\xfb\x55\x08\xba\x47\xff\xa8\xa4\x67\x74\xc2\x6f\x09\x12\x2a\x56\x1f\x83\xa1\x68\x7e\x12\x94\x12\xb0\xb7\xe6\x38\xd7\x41\xec\xa3\x32\x07\x60\xce\x32\xbd\x08\xde\x64\xe9\x5c\x2f\xfe\x73\x28\x78\x81\x38\xce\xa7\x42\x66\xc8\x03\xcd\xc7\x33\x2a\xe2\xc4\x9c\x1f\xe5\xdb\x89\xa8\x10\x52\x83\x70\x02\x33\x88\xc9\x03\xa7\x28\xca\xf4\xaf\xce\x3a\xc4\x07\x74\x3a\x8b\x25\xd7\xfe\x1b\x3a\x89\xcf\x8d\xe5\xbd\xe2\x16\xfd\x94\xc8\x31\x54\x9f\xc8\xcb\x26\x06\xd3\xc0\xde\x19\x5d\xda\xb9\x97\x62\x1e\x9a\xaa\xfb\x6a\xd2\x58\x39\x85\x60\xb4\x34\x8d\x6c\xc5\xbb\x25\x60\xc5\xe5\xaf\x56\x52\xcd\xca\xcf\x6c\xf2\x19\x3c\x86\x21\x57\xc7\xe1\x7e\x0c\x3b\x74\xbf\x15\x2d\xbb\x5f\x5c\xf5\x2e\xf8\x31\x63\x3a\x5b\x8c\xa8\xd6\x86\x21\xed\x32\xbf\xed\x96\xaa\xfb\x2d\xf2\xdb\xca\x9e\xa6\x15\xf9\x6d\xa5\xbe\x5e\x39\xc7\x2a\xe5\xb7\x95\x07\xfe\xe4\x1c\xab\x23\x71\x7f\x75\xa9\x0c\x5d\x8f\xea\x3e\xad\x61\x83\xa5\xfb\x5a\x53\x1c\x96\xf1\xe2\x57\x33\xc2\xca\x75\xf0\x35\x9e\xdc\xf2\xe5\xb6\x3f\xa2\xcb\xd6\xe8\xab\x2b\x33\x52\x91\x59\x56\xcc\xed\x8d\x94\x1b\xa9\x8a\x5d\xbb\x1e\xd5\xd3\xd8\xdf\x83\xdd\xd8\xd7\x1f\xdc\xd7\x1f\xdc\xd7\x1f\x7c\xf2\xfa\x83\xdd\x74\xd6\xce\x0a\x6b\x57\x6d\xb5\x9b\xaa\xda\xae\xa7\x3e\x81\xcf\xb9\xbb\x32\x59\xc9\x8d\x2f\xab\x91\x9b\xe6\xc6\x97\xba\x7f\x13\xce\xe9\xd2\x88\x9f\x23\x37\xfe\x37\xaa\x59\xee\xd5\xca\x27\x59\xb7\xaf\x55\xa7\x7c\xe5\x0a\xe5\x3e\xab\x7f\x8f\xa8\xb8\x0f\x35\xd9\xe1\xe2\xec\x43\x4d\xf6\xa1\x26\x5f\x6d\xa8\x49\xbb\x7a\xc2\xe3\xad\x33\x36\xd7\xc4\x50\xf7\x56\x86\xec\x57\x10\xa5\x8c\xd8\xdf\x01\x55\xbd\x49\x5b\x28\x64\xe9\x12\x0a\xf2\xe6\x9a\xc3\x59\xfc\x26\x54\x86\xc6\xd5\x7c\x0e\xd5\x61\x0f\xc8\xbd\x53\x40\xee\x57\x37\xed\xbd\x54\xb9\x97\x2a\xf7\x82\x53\xc7\x09\xef\x05\xa7\xd7\x2b\x38\xbd\x94\x36\xf4\x35\x61\x33\x19\x11\xab\x94\x95\xb4\x34\x4e\x19\xf1\x95\xc0\x99\x91\xcf\x13\x49\xe3\x55\x11\x47\xbf\x06\xe2\xdb\x12\xb9\x2f\x68\x37\x2b\xe2\x94\x2b\xe2\xdf\x32\xd9\x0e\x1b\x30\x3d\xbe\x05\xd1\xce\x8c\x13\x47\xdc\x21\x3a\x32\xec\xf0\xdd\xbf\x75\x18\xf8\xb5\xbd\x93\x81\xd3\x8c\x69\xec\x00\x0c\x50\x3c\x4b\xe9\x82\xcc\xe8\x03\x23\x13\xca\x13\xb4\xcf\xf1\x98\x56\xd7\xb7\x32\xb7\x65\x03\xfa\x8f\xf5\x06\x44\xcb\xc3\x29\x32\x1a\xcd\x7d\x81\x52\x55\x44\x13\xe7\xee\x83\x77\x66\x54\x11\x9a\x64\x8c\xc6\x0b\x32\x66\x4c\x04\x99\x6c\x5d\xc7\xbc\x13\xc1\xf8\xc5\xc3\x33\x43\xba\x79\xd1\x28\x6f\xe0\x1a\xad\x95\xab\x77\xae\x58\x56\x39\xc9\x16\x3a\xe4\x36\x8a\xa3\xfa\xc3\x5b\x61\x2e\xcf\xa1\x26\x7e\xc5\x5e\xa4\xbd\xa7\xe8\xb7\x59\x1f\xf2\xd5\x68\x1f\x7b\x15\x7d\x9f\x64\xbc\xf7\xfc\xec\x0d\x18\x7b\x03\xc6\xce\x97\xf1\x35\x19\x30\x5e\x50\x46\xc7\xdc\xa6\x27\x29\x9c\xf2\x5a\xa4\xf5\xbd\xb0\xbe\x17\xd6\xf7\xc2\xfa\x57\x2b\xac\xbf\x8e\x15\xde\x4b\xea\x7b\x49\x7d\x2f\xa9\xef\x25\xf5\xbd\xa4\xbe\xf3\x65\xdc\x4b\xea\x15\x49\x1d\xfe\x72\x68\x01\xeb\x8a\xed\x9d\xc5\xf5\xcd\xa0\x01\xba\xb9\xe9\x2c\x36\xc0\x5b\x91\xcc\xf7\x52\xf9\x5e\x2a\x7f\xdd\x52\xf9\xab\x99\xd0\xd7\x97\x10\xbc\x4f\xa9\xdd\xa7\xd4\xee\x53\x6a\x5f\x22\xa5\xd6\xf1\x92\x65\x12\xce\xb2\xba\x3e\x3f\x59\xe6\xf2\x0d\x17\x51\x92\x83\xa8\x6a\x7e\xfe\x3e\xe7\x49\x4c\x40\x45\x32\x9a\x2e\x97\xe2\x03\xd0\x13\x90\x02\x8c\xd3\x55\xa2\x58\x2e\xc1\xfc\x54\x63\x75\xaf\x56\x88\x29\x46\xbb\x29\x0c\xdb\xae\xf6\xd4\x97\xe3\xdd\xa0\xfa\x5f\xe9\x37\xd7\xd0\x2b\xaa\x09\xd8\x73\x62\x89\xe1\x48\x6e\x7c\x4f\x5c\x1d\xb0\xb1\xcf\xb5\x6a\x05\xfe\x6c\x3f\x7a\x5b\xa5\x0c\xea\xa3\xde\x57\x08\x24\xc1\xae\xed\x2b\x04\x3e\xe1\xbc\xdd\x39\x5b\x31\x73\x47\xa3\x68\x0b\x7f\xa3\xd3\x7e\xf1\x60\xc7\xf6\x93\xfe\xa2\xa1\x8f\x8d\x17\x59\x2d\xb7\xee\xe8\x1f\x8d\xf7\xd4\x0b\x14\x46\x5c\xfb\x72\xda\x49\x89\xc4\x6d\xae\xa7\x4f\x4c\x7f\x2d\x77\xd3\xbe\x4c\xe2\xbe\xbc\xce\x8e\xa6\xbb\xd1\xdd\xf3\x66\x67\xbb\x2f\x0a\xb9\x2f\x0a\xb9\x2f\x0a\xb9\x2f\x0a\xb9\x2f\x0a\x49\x7e\xe3\x45\x21\xd7\x96\x5f\x77\x50\x1e\x72\x1b\xe9\x15\xbb\xff\x5a\x04\xd8\x7d\x89\xc8\xbd\x0c\xbb\xbb\xe9\xfe\xb6\x64\xd8\x57\x68\x41\x79\x15\xb5\x30\xbd\x05\xe5\xc5\x61\x89\x3c\x6b\xef\x0c\x4d\x14\xc6\xbd\xf8\xaf\x77\x8a\x50\xe4\x36\x6d\x8f\x52\x64\xff\x6f\x8f\x52\xb4\x47\x29\x6a\x99\xf5\x3e\xb0\x7a\x8f\x52\x44\xf6\xa1\xc3\xfb\xd0\xe1\xd7\x1c\x3a\xdc\x61\x1b\xf7\x28\x45\x1d\x45\xc6\x27\x42\x2a\x72\x32\xd7\x56\x68\x45\x0d\xe2\xe0\x6a\xc4\xa2\x9f\xeb\x1a\xd1\xab\x15\xf5\xdc\x58\xf7\xc8\x45\x7b\xe4\xa2\x6d\x69\xe7\x55\x28\xa0\xcf\x88\x60\xd4\xc4\x61\xd6\xc9\x8b\x6e\x60\x2e\xdb\x2a\x98\x6f\x03\xcd\xc8\x8d\x76\x9f\x24\xbd\x4f\xc7\x78\xfd\xe9\x18\xaf\x2e\x49\xfa\xd5\x68\x2a\x7b\x75\x7e\x9f\x27\xbd\xcf\x93\xde\x1b\x3b\xf6\xc6\x8e\x9d\x2f\xe3\x6b\x32\x76\xbc\xb0\xdc\xfe\x84\xa8\x46\xaf\x51\x82\xdf\x0b\xf0\xf8\xde\x5e\x80\xdf\x0b\xf0\x5f\xa9\x00\xff\x3a\x56\x78\x2f\xbd\xef\xa5\xf7\xbd\xf4\xbe\x97\xde\xf7\xd2\xfb\xce\x97\x71\x2f\xbd\x3f\x1b\xd2\x51\x93\x08\xbf\x36\xda\xd1\x9a\x6e\xbe\x20\x99\xed\x2d\x49\xeb\x7b\x49\x7d\x2f\xa9\xbf\x6e\x49\xfd\xd5\x4c\x68\x8f\x7c\xb4\x47\x3e\xda\x23\x1f\xed\x91\x8f\x36\x92\x91\xfe\xc5\x1e\xcb\x77\xc1\x4d\xec\xaf\xec\x77\xdf\x27\x72\x7c\xbb\x98\x33\xf3\xdf\x53\x9e\x32\xa1\x40\xa2\xe5\x7a\x11\xca\x44\x2d\x2b\x5f\x5f\xf3\x77\x37\x67\x17\x9f\xce\xc3\x54\xb5\x77\x9f\xef\xce\x6f\xcf\xae\xfa\xd7\x7e\x5d\xfc\xac\xc2\xb5\xb0\xdf\x95\xc4\x3a\x4b\xf2\xd7\xcc\xe8\xaf\x70\x6a\x6e\x34\xd5\xb9\xda\x6c\x64\xd7\x83\x9b\xc1\xf5\x4f\x90\x6a\x37\x3a\x3d\xbb\xe9\x7f\x7f\x5e\x22\x88\xd2\xf3\xfe\xc9\x5f\xee\xce\xae\xdb\x9f\x0f\xfe\xeb\xec\xe6\xf6\xa6\xed\xe9\xf5\xe0\x7c\xd0\xbf\x69\xff\xfa\x63\xff\xec\xfc\xee\x7a\xb0\x74\x3d\x96\x8e\x76\xb9\x22\xa3\x60\x91\x20\x8b\x85\x44\x96\x6b\x64\xc5\x1a\x12\x2f\x3e\x3a\x76\xd8\xd4\xd7\x31\xb9\xb3\x76\x01\x6e\x1b\x77\x21\x49\xbe\x21\x54\x68\x62\xae\xe8\x38\x61\x71\xad\x25\xb7\x86\x6d\x2d\xd1\xd2\xa0\x1e\x8d\x06\xee\x45\x4e\xc3\xf3\x22\xe4\x05\x04\x12\x80\x35\x13\x71\x43\x1f\xb8\x0f\xad\x3d\x08\xc3\xbb\xf8\x03\x2b\xf5\x14\xe5\x59\xc6\x84\x4e\x16\x28\x70\xab\x5a\xa3\x6e\xfb\xda\x9a\xb5\x77\xaa\x6f\x70\x46\x15\x46\x5e\x95\xc6\x9f\xb1\x84\x51\xd5\x30\x66\xbb\xfb\xdd\x96\xc5\xef\x95\xb5\xe8\xe0\x65\x34\xa1\x3c\xc9\x33\x56\x39\x2d\x52\xfc\x35\x17\xa0\xc1\x0e\xbe\x98\xcb\xcc\x9c\xe4\x73\x39\xe5\x11\x4d\x2e\xa1\x19\x99\x6d\x76\x72\xfa\x17\x25\x52\xbe\xbc\x5e\x4a\xb9\xe1\xdb\x55\x42\x3d\x20\xfd\x8b\x53\x48\x32\x76\x43\x2d\x5e\xd5\x5c\x27\x30\xa0\x0b\xa6\xcc\x3c\x23\x29\x62\xeb\x02\x31\x17\xd8\x22\x90\x4b\xff\x2a\x21\x51\x3b\x57\x46\x5b\xea\x5f\x9c\x92\x23\x72\x79\x3d\x14\x97\x46\x8d\x36\x74\xcf\x8c\x40\x87\xcb\xc6\x15\x11\x52\x13\x9e\xce\x65\xa6\xa9\xd0\x46\x96\x85\x9b\xcc\xae\x08\x12\xf1\x89\x4c\xd3\x5c\x53\x43\x2b\xb5\x45\x15\x68\x15\xb8\x61\xfa\x2c\x06\x0f\x43\xc3\x1a\xe2\x55\x57\xcc\x65\x9e\x99\xf6\xcd\x35\x5b\x56\x25\x79\x5c\xd3\xc6\x5c\x13\x34\xcb\x68\xf9\x42\x7c\xc7\x35\x4b\xab\xef\x77\x8c\x90\xfd\x67\xa3\x9e\x7c\x82\x19\x29\x2c\xeb\x67\xd1\x8c\x6b\x16\x69\x43\x45\x1b\xd1\xc4\xdd\xc5\x8f\x17\x97\x3f\x87\x97\xe0\xbb\xfe\xe7\xd3\x3f\xfd\x5b\xe9\x87\xeb\xcf\xb5\x1f\x46\x3f\xfd\xa9\xf6\xcb\xff\xb3\x94\x9e\xaa\x3d\xd5\x54\xd5\x60\x2e\x07\x20\x15\x82\x69\xd4\x4d\x95\xf0\x94\x4e\x19\x51\xf9\xdc\x50\x80\x3a\x2c\xef\xaf\x91\x8a\xce\x25\x8d\xb9\x98\x62\x86\xf0\x39\xd7\x2c\xa3\xc9\x67\x3a\xff\xe8\xcc\xb8\x1b\xac\xce\xff\xbe\x29\xe5\x73\xbf\xfb\xa5\xff\x39\xcc\x08\x7f\x77\x75\x7d\x79\x7b\xb9\x74\xd6\xa5\x16\xea\xc7\xc8\x3c\x3e\x86\xff\x25\x47\xc4\xb4\xee\x85\xb7\x94\x69\x6a\x84\x5a\xf2\x0d\x66\x35\xfa\x2c\x24\x2e\x12\x38\x35\xf3\x8c\xa7\x1c\xb8\x22\x1a\xb2\x3e\xa0\x7c\xe8\x05\x60\x7f\x6e\xf0\x03\xcc\x5b\xb6\xf7\x8a\x88\x69\x16\x93\xbf\xaa\x2a\xbc\x00\xd8\x4f\xf1\x07\x16\x93\x03\x32\xd3\x7a\xae\x8e\x8f\x8e\x1e\x1f\x1f\x0f\xcd\xdb\x87\x32\x9b\x1e\x99\x3f\x0e\x98\x38\x9c\xe9\x34\x41\x38\x05\xb3\x0a\xc7\xe4\x2a\x93\x86\x0b\x82\x8e\xc9\x32\x4e\x13\xc8\xa6\x1e\x73\x41\x33\x80\x69\xf8\x35\x92\x19\x3b\x2c\x36\xc6\xda\x56\x2c\x2b\xb4\xf6\x97\x23\xf3\x52\x03\x33\xa9\xee\x27\x89\x59\xc4\x63\x7b\x53\x32\x11\x49\x30\xc0\xa1\xc9\xde\xb4\xe7\x52\x41\x99\xf5\x97\xfa\xe5\x0c\xe4\x6d\x1a\xb3\x00\x0d\x41\xcb\x32\xc1\x19\xd9\xfd\x0c\x35\xaf\xdc\x68\x99\x10\xa0\x0b\x17\x83\x7b\x75\x6e\x26\x1c\xc9\x84\x8c\xf3\xc9\x84\x65\xa1\xbb\xb6\x67\x04\x72\xae\x48\xc6\x22\x99\xa6\x70\xe9\x99\xaf\x72\x85\x54\x0d\x2b\x66\x47\x7b\x38\x14\xb0\xff\x46\x52\x07\x0a\x88\x25\xb0\x3a\xc1\x8c\xc6\x2e\x16\xd8\xcd\x38\x9f\x94\xdc\xc1\x00\x53\x42\x63\xc2\xf5\x50\xf4\x93\x84\x64\x2c\x95\x9a\x85\x91\xc6\xe0\x3b\x2a\x2d\x38\xb0\xc8\x8c\xcd\x13\x1a\xb9\x3c\xf6\x44\x46\x34\x21\x13\x9e\x30\xb5\x50\x9a\xa5\x61\x03\xdf\x80\xb9\xc1\xac\x19\x57\x24\x96\x8f\x22\x91\xd4\xce\xa3\xfa\xd9\x87\xf2\x69\x1c\x38\x08\x89\x41\x96\xc9\x0c\xfe\xe7\x47\x2e\xe2\x9d\x71\xa8\xbb\x9b\xc1\x75\xf8\xef\x9b\x5f\x6e\x6e\x07\x9f\xd7\xe3\x3e\x9e\xb2\x60\x78\xa0\x86\x1e\x93\x1b\x5c\x04\x99\x99\x4b\x3d\x6b\x99\xd4\x67\x4b\x4a\xc5\x0f\x32\xde\x90\xfb\x7e\xee\x5f\xdc\xf5\x4b\x1c\xe5\xe6\xe4\x87\xc1\xe9\x5d\x45\xa4\xb5\xf3\x2b\x89\xa1\xa8\xc1\x84\xbf\x9d\xfc\x70\x76\x7e\x3a\x6a\xd0\x79\xde\x5d\x0f\x4e\x2e\x7f\x1a\x5c\x17\xea\x49\xe3\x12\x55\x06\x53\x65\x56\xb7\xc8\x94\x66\x32\x26\xe3\x45\x33\x60\x88\x11\xfe\x12\x70\x49\x16\x90\x39\xd8\xea\x31\xf0\x26\x87\xdd\x52\x7c\x61\x74\xde\x9e\x7d\x07\x90\x56\xd0\x3e\x80\x42\x5f\x73\xc3\xa6\x77\x2a\x02\x5d\x1b\x41\x50\xfc\xc2\x1d\x93\x3e\x51\xe6\xc5\xdc\x1c\xea\x8c\x4f\xa7\x60\xfb\xaa\x0c\x15\x5b\xb3\x9f\xc2\xf2\xc2\x77\xb8\xff\xf3\x4c\xc2\x39\x37\xdd\x5a\xa3\xa9\x57\xac\xf1\x43\x04\x8a\x2d\xb5\x98\x51\xd0\x99\x1b\x86\xe6\x36\xcb\x2c\x42\xeb\x7a\xe1\x79\x2c\x72\x03\x80\x6d\x29\x34\xd9\xcd\x33\xf6\xc0\x65\x1e\x7c\x6a\x81\x5f\x4a\x3b\xde\xd8\x7c\xb1\x00\xb0\x6c\xa8\xd7\x57\x9a\xf1\xe4\xd1\xd8\x82\x61\x61\x0f\xd0\xc2\x24\x93\x69\x43\x1b\xe5\x63\x72\x76\x79\xa3\x33\xaa\xd9\x74\x71\x6a\x59\xc6\xe6\xc7\xe3\xf4\xf2\xe7\x8b\xf3\xcb\xfe\xe9\x68\xd0\xff\x54\x3e\xf1\xfe\xc9\xcd\xed\xf5\xa0\xff\xb9\xfc\x68\x74\x71\x79\x3b\x72\x6f\x2c\x25\xf9\x96\x0e\xea\xf7\x74\xf9\xc5\x63\x62\x58\x2e\xb0\x46\x87\xc8\x18\xf0\xc7\x31\x9b\xc8\x0c\xf9\x7c\xea\x3c\xf8\x56\x84\x71\x6b\x6b\xd5\x89\xca\x2c\x8e\xc1\xb8\xd3\xd4\x24\x1a\x6e\x75\xc6\x68\x0a\xf7\x04\x15\x64\x20\xe2\x83\xcb\xc9\xc1\x0d\xfe\x98\xd2\xec\x9e\x65\xfe\xd3\xc7\x8c\x6b\xcd\x44\x49\x2b\xa1\x6e\xc8\x5e\xcf\x29\x3a\x38\x24\xd7\x86\xef\x9b\xf7\xfd\xa5\x66\x88\x3d\x66\x9a\xf2\x44\xd9\xc1\x96\xd6\xf5\x98\x9c\xd3\x6c\x5a\x98\x92\xbe\x91\x93\x09\x36\xf6\x01\x87\x61\xee\xb0\xd2\x2c\x1a\x78\xaf\x21\x0d\x77\x2f\x42\x7f\xf6\x65\x2f\x0f\xd7\xa9\xea\x6e\xbe\x1d\x4d\xdd\x5d\xc1\x8a\xa3\xd2\x79\x5b\xba\x55\xae\xda\x68\x0d\x26\x8e\x8f\x97\x5f\x32\xcd\x6d\xd7\xc9\xa9\xfc\x62\x03\x39\x61\x22\x9a\xd9\xf9\x89\x66\x59\x13\x2d\xb1\x2f\xdc\xea\xbc\xe1\xb8\x2b\x24\x54\x34\x03\x16\x42\x3a\x9f\x33\x9a\xa9\xa6\xdd\x2e\x8b\x81\x2d\x7b\x8f\x3d\x85\x7d\xd8\x4d\x76\xfd\xf4\x88\x14\xa0\x33\x7b\x21\xa2\x42\x91\x1d\x68\x00\xdb\xaa\x51\xc0\x15\xa0\x71\x5d\x5a\xe4\xab\xcf\x5c\x19\xa5\x11\x7f\xfc\xde\x42\x72\x6d\x46\x10\x46\x8f\xaf\x08\x17\xa3\xd3\xc1\xc7\xfe\xdd\xf9\x72\x4b\x57\xe9\xbb\xea\x16\x93\x03\x62\x9e\x97\xdd\xc7\x7c\x82\x77\x86\x03\x16\x43\x95\x96\x09\xb0\xbb\xd8\xbc\x31\x34\xb9\xc6\x6c\x9e\xc8\x45\xca\x04\x58\x29\x4a\x37\xa1\x59\xcf\x09\xe5\xf6\x6a\x09\x06\x0b\x86\x08\x6b\x39\x82\x6b\xec\xc0\xa1\x99\xb1\xd8\xdf\xbc\x65\x30\xb3\x0a\xeb\xbe\x42\x07\x90\xfd\xcf\x8d\xa6\x7a\xc3\x33\xd6\x3f\xb9\x3d\xfb\x69\x50\xd6\x0f\x4f\x7e\x38\xfb\xa9\x49\xaa\x19\x7d\x1a\x5c\x0c\xae\xfb\xb7\x2b\x84\x93\x4a\x93\x4d\xc2\x89\x32\x03\xae\x3a\x00\xb9\xf2\x81\x31\x11\x42\xa2\x11\xae\x15\x79\xe0\x8a\x8f\x39\x00\xc8\x59\x67\xda\xdd\x19\x70\x56\xc8\x14\xe4\x7a\xe1\xc4\x17\xec\xb7\xbc\x8f\x86\x93\xda\xf6\xd1\xec\x10\xba\xd8\xc0\x50\x85\x9b\xe3\x26\x7d\x4c\x40\xb7\x7d\x00\xa5\x2d\xf8\x4c\x18\x41\x5a\x4c\x59\x86\xc3\x01\x07\x42\x38\x96\xe0\xb9\x19\x55\x28\xac\x14\xab\xe6\x85\xd6\x29\x13\x2c\x03\x84\x2a\xdf\x09\x0a\x52\x19\x13\xef\x8d\xcc\x35\x4f\x78\xc4\x75\xb2\x20\x11\x64\xd6\x81\x45\x2e\xa5\x82\x4e\xad\x70\x00\x6a\x4e\x85\x24\xfe\x82\x28\x7b\x97\x13\x6b\x9d\xbe\xe5\x6c\xc3\x63\x76\x77\x71\x3a\xf8\x78\x76\x51\x26\x81\x1f\xce\x3e\x95\x44\xd8\xcf\x83\xd3\xb3\xbb\xd2\x6d\x6e\x24\xd9\xe5\x72\x7d\xb5\xd9\x86\xa3\xe8\x5f\x3a\x26\xa7\xf8\xe9\xb1\x59\xdc\x06\x08\x41\xaf\xfc\x56\xd6\xe1\xda\x45\xa6\xb9\x3f\x06\x42\x67\x8d\xa6\xf5\xae\x26\x24\xeb\x46\x2b\xd9\x90\x9a\xbd\xed\xb5\xbe\x2f\xaa\x7e\xd1\x7a\x34\x82\xf5\xa5\x99\x4e\x0e\x0b\xcb\x52\xe8\x86\x07\xa3\x41\x9b\x11\xab\xc1\x33\x53\x30\xec\x9f\xc0\xcb\x9a\xe6\x4a\xa3\x37\x0c\x88\x93\xdc\xff\x59\x99\x05\x05\x6f\xd9\x21\xb9\x61\x6c\x28\x9c\xf5\x60\xca\xf5\x2c\x1f\x1f\x46\x32\x3d\x2a\xf0\x2b\x8f\xe8\x9c\xa7\xd4\x48\xd2\x2c\x5b\x1c\x8d\x13\x39\x3e\x4a\xa9\xd2\x2c\x3b\x9a\xdf\x4f\x21\x10\xc4\x79\x04\x8f\x7c\xb3\x53\xf9\xbb\xf3\x3f\x7e\x7b\x70\xfe\xe7\x6f\xdf\xd5\x2d\x64\x6d\xfb\x3f\x10\x11\x9d\xab\x3c\xb1\x81\x63\x59\xb8\x36\xee\xc8\xe7\x6c\xd5\x7e\x5f\x94\xb7\x6b\x3b\xfd\xf5\xe4\xea\x2e\xfc\xe7\xa7\xf2\x3f\x3f\x0f\x3e\x5f\x5e\xff\x52\xe2\x94\xb7\x97\xd7\xfd\x4f\x25\x86\x3a\xb8\xfa\x61\xf0\x79\x70\xdd\x3f\x1f\xb9\x87\xdb\xd8\xde\x7e\x14\xf2\x51\x94\x97\x46\x39\x0e\x58\xeb\xe9\x98\x7c\x94\x19\xf9\xd1\xef\xe4\xc1\x98\x2a\xb8\x62\xdc\x9d\xa5\x7a\x64\x2e\x63\x60\xbc\x84\xcd\x67\x2c\x65\x19\x4d\xac\xcd\x40\x69\x99\xd1\x29\xde\xf4\x2a\xca\xa8\x8e\x66\x44\xcd\x69\xc4\x7a\x24\x02\x6a\x98\xf6\x60\x53\x40\xd5\x92\xd3\xaa\x9d\xef\x3a\x17\x9a\xa7\xcc\xa9\xe0\xf6\x9f\xb7\xb8\x19\x1b\x6c\xce\xe5\xed\x0f\x65\x61\xef\xe3\xf9\x2f\xb7\x83\xd1\xcd\xe9\x8f\x4b\xd7\x13\x3f\x2b\x8d\xec\x06\x62\x68\x4e\x64\x92\xa7\x22\xfc\x7b\xf3\xb1\x9d\x5d\xdc\x0e\x3e\x55\x47\x77\xd9\xbf\x2d\x53\xc6\x75\x39\xce\xeb\xdd\xf7\x97\x97\xe7\x83\x92\x57\xf3\xdd\x69\xff\x76\x70\x7b\xf6\xb9\x44\x3f\xa7\x77\xd7\x88\x56\xb9\x6c\x9a\x6e\x04\x0d\x13\x35\xd3\x0a\xa7\xb9\x6b\x56\xd8\x89\x13\xf5\x6d\x5c\x35\x9e\xe5\x83\x00\xab\x08\x23\x9a\xc0\xaa\x73\xe0\x4d\xaa\x11\x8e\xb4\x91\x1d\xea\xf2\x36\x91\x76\x76\xbc\x74\xa3\x97\x71\xe5\x5b\x3f\x04\x84\x8a\x45\x65\x9b\x26\x89\x7c\xc4\x88\xd6\x94\x9b\x5b\xd9\x22\xd7\x99\x57\x54\xe1\xe4\x3a\x6c\xe0\x78\xe5\x6d\x61\x51\xc6\xf4\x67\x99\x0b\xbd\x39\xc9\xf5\x2f\x4a\x7c\x67\x70\xf1\xd3\xe8\xa7\x7e\x99\x02\xcf\xce\x97\xb3\x9a\xb0\x89\x86\xab\xb8\x7f\xf1\x8b\xbf\x84\x21\xee\xb9\xe7\x35\x54\x94\x5d\xa3\x84\x1b\xb1\x37\xa2\x46\x7b\x4d\x40\xa2\x21\x8c\x83\xc9\x21\x35\x93\x83\x38\xcb\x39\xfa\x93\x90\x3f\xe1\x20\x8f\xdd\x1f\x95\xf6\x14\xac\x0b\x58\x53\x5d\x58\x39\xb4\x63\xb5\x6a\x41\x98\x78\xe0\x99\x04\xbc\x63\xf2\x40\x33\x6e\xa4\x71\x6c\xd9\xcc\xf5\x18\xfe\x77\xbd\x36\xc1\x30\x5a\x61\x5c\x37\x32\xd3\xa7\x3e\x9e\x75\x33\x6b\x48\x53\x5c\x67\x3d\xa2\xb3\xd9\xd0\x51\xff\xb6\x61\x73\xb6\x8c\x7b\x2d\x4f\xf8\x6f\xc9\x29\xa7\x89\x61\x00\xbb\x93\x17\xfb\x17\x37\x67\x65\xf9\xb1\xac\x66\x04\x7c\x79\x63\x79\x11\x0c\x95\x38\x72\xa7\x4c\xdc\xfc\xe5\x1c\xb5\x0b\x00\xc5\xc6\x73\x1b\x28\x16\x16\x5d\x04\xa5\x89\x39\xcd\x54\xe5\x0b\x45\x00\x45\xae\x88\x19\x32\x77\x16\x44\xe4\x3c\x48\x1e\x0f\x05\xfb\x32\x67\x42\x81\x7f\x1b\xef\xb3\xc2\x5d\xac\x0e\xc9\xd9\x04\x58\x82\x79\x5d\x90\x5c\x58\x07\x98\xb9\x70\x71\x90\x3d\x23\xca\x16\x00\x27\x81\xf9\x48\x30\x17\xef\x53\x0c\x7e\x28\x7e\xf6\x4e\x34\x78\x34\x91\x86\x01\x99\x5d\xb4\xed\x1d\x13\x2a\x14\xef\x11\xa3\xb0\x54\xf7\x14\x22\xe8\x8d\x42\x69\xa3\x90\x0c\xa7\xb1\x7f\x3e\xff\x35\x50\x0b\x75\x0d\x2f\x83\xe6\xbb\xa0\x72\x15\xb4\x88\xc6\x09\x7a\x4c\x46\xdd\xef\x84\x48\x66\xcc\xfa\x59\xd6\xbe\x06\x56\x31\xf6\x5b\xaa\xee\x6b\xbe\x87\x33\xa1\x34\x15\x11\x3b\x49\xa8\xda\x30\x8e\xc6\xd9\x38\x7a\x65\x89\xe3\xfa\xfa\xee\xea\xf6\xec\xfb\x15\x5c\xbe\xfa\x71\x3d\x92\x25\x4a\x72\xe7\x9e\x1b\x67\x92\xc6\xc4\xb0\xcf\xa9\x44\x57\xa0\x15\xfc\x0b\x68\x78\x4c\x6f\xf1\x31\x81\x25\x58\xfa\x22\x2a\xdf\xda\x39\x42\x57\x02\xb7\x0b\x41\x22\xb3\x12\x24\x30\x79\xb8\xad\x06\xcf\x22\x56\xcc\xb1\xd6\xad\x79\x42\xf5\x44\x66\x29\x72\xf9\xd2\xa4\xb1\xf1\xe5\x8d\x72\xa1\x59\x96\xe5\x73\xcd\x1d\xd6\x7f\x55\x4a\x35\x5b\x76\x2e\xa7\x9f\x99\x52\x74\xca\xb6\x71\x40\x37\x29\x0f\x37\x3f\x85\xff\x04\x07\x73\x17\xd9\xbf\x34\x42\x17\xbc\xed\xe8\xe9\x52\x7c\xc4\x58\x94\x2b\x99\xf0\x68\xc3\x98\xb1\x8f\xfd\xb3\xf3\xd1\xd9\x67\xa3\xc4\xf7\x6f\x07\xe7\x25\x51\x02\x9e\xf5\x3f\xde\x0e\xae\x2d\xc8\x79\xff\xfb\xf3\xc1\xe8\xe2\xf2\x74\x70\x33\x3a\xb9\xfc\x7c\x75\x3e\xb8\x5d\x4e\x71\xad\x8d\xd7\xad\xab\xd5\x57\x8f\x6b\xbf\xc0\x0e\x1b\x5e\x16\xda\xcb\x20\x79\x8a\xf2\x04\x9c\xe0\x12\x9d\xe1\x94\x08\x19\x23\x8c\x94\x72\xd6\x19\x8f\x2c\x4e\xce\xf4\xfb\x24\x21\x34\xd7\x32\xa5\xe0\xb5\x49\x16\x43\x41\xc7\x86\xb5\xd2\x24\x09\x22\x94\xb2\x5c\x08\xc3\x62\x4d\x63\x08\xe1\x1f\x25\xcc\xb0\xf3\x79\x90\xf3\x66\xfd\x06\x13\x2e\x20\x58\x34\xa5\xd9\xbd\xab\x47\xe8\x33\x09\xfc\xa1\x50\x84\xaa\xa1\x40\x78\x2b\x2b\xad\x74\x58\xe1\xe3\x4e\x6f\xb5\xae\x4e\x4a\xef\x99\x59\x95\x34\x8f\x66\x64\x9e\xc9\x69\xc6\x94\xb2\xb6\xe5\x88\x0a\x0c\x40\xb0\xaf\x9b\x6b\x68\x28\x84\x34\x4b\xe1\x4c\xd8\x31\x9b\x33\x11\x33\x11\x71\xcc\x6e\x03\xdf\xbd\x37\x6d\x4e\x33\x3a\x9f\x11\x25\xc1\xe9\x0d\xcb\x0e\xf6\x2b\xfc\xc8\xdd\x64\x16\xd0\x0b\x1e\x87\x16\xe8\x2c\x37\x7c\xe2\x12\xe4\x44\x5c\x65\xf8\xd8\x5d\x86\xce\xed\x82\x76\xc0\x74\x9e\x30\x8d\xc5\x1c\x60\xc9\x61\x33\xcc\x5a\x97\xf6\xc3\x6c\x53\xd3\x26\x98\x0b\xdb\x8d\x99\x2a\x3b\xa2\xc3\x06\xcb\xb6\x3d\x52\xe4\x07\x2a\xe2\xc4\xb4\xe2\x7c\x18\xe5\xb3\x08\xd9\x14\x7d\x43\x35\xee\x34\x6e\x73\x8b\x46\x34\x57\xdb\x5c\xa3\x95\x94\x44\xb4\x0a\x1e\x14\x41\x21\x40\xde\x36\x1f\x11\x56\x77\x6e\x58\x24\x4d\xa4\x5d\x25\x7c\x3d\xc7\x02\x65\x04\x46\xd3\x72\xcd\xce\x33\x2e\x22\x3e\xa7\xc9\x46\xba\x5f\x25\x9e\xdc\x86\x69\x7f\xc3\x27\x86\x7c\x3e\xd4\xdc\xb6\x9a\x65\x29\xe4\xe9\xda\x61\xfa\x2d\x5c\xc3\x92\x64\x03\xf3\x99\x2a\xa2\x49\x68\x26\x73\xf4\xc7\xc1\xba\xb0\xb8\xe1\xa8\x1e\x36\x6d\xf7\x04\x84\x87\xad\x2c\x88\x58\xd2\x43\x66\x3b\x08\x45\x5b\x92\xe6\x73\x63\x7b\x69\x4d\x0f\xa8\xae\xd2\x67\x1b\x0d\xaf\x88\x1f\x20\x68\x0e\xef\xa9\x88\xdf\x1f\xc0\x11\x9c\x32\x38\xa7\xe8\x7f\x8a\xf3\x08\x9d\xa5\x2e\xa5\xd3\x21\x1d\xf4\x08\x4b\xf8\x14\x76\xd0\x83\x6e\x77\xdf\xac\x53\x88\x2d\xc2\x60\x24\x68\x16\x33\x40\x29\x37\xf2\xb8\x93\xdc\x6d\x55\x94\x6a\x3f\x04\x2d\x5a\x10\x26\x30\x66\x09\x50\xd8\x02\xe2\xeb\x99\xaa\xde\xf5\xb8\x9d\x86\xd1\xd1\x72\x48\xf6\x06\x3b\x8a\x81\x5c\x6d\xdb\x59\x69\xc5\xf6\x8e\xb1\x95\x34\xb9\x6a\x6e\xb3\xe9\x40\x75\xde\x49\x3a\x87\x85\xc3\x2a\x1d\xb4\x98\xa3\xd5\x79\x6d\x15\x42\x17\x0e\x15\x84\x42\xf8\x4c\x95\xee\xfb\x55\x2c\xa1\x8d\x67\xab\x77\x52\x0a\x09\x09\x32\xe7\x2d\xcb\x9a\xe4\x46\x35\x21\x14\x82\x4a\xc8\x37\xec\x70\x7a\x48\x5c\xcd\x95\x1e\xe9\x5f\x5d\x0d\x2e\x4e\x7b\x84\xe9\xe8\x83\x0b\x41\xb5\xf1\x67\x43\x61\x48\x01\x0e\xf7\xc2\xd5\xcb\x49\x59\x36\x65\xa5\x39\xbb\x60\x35\x08\x9e\x9e\x72\x43\x4b\x78\x05\x88\x38\xac\x6c\xc4\xd3\xaa\xd6\x84\x14\x92\xeb\xd9\x36\xa4\x41\x95\xca\x53\x3a\x4e\xd8\x88\xd3\x74\x94\xc9\x64\x1b\x1e\xef\xcf\x86\x20\x1e\x74\x80\xd3\x94\x98\x66\x6d\x64\x8f\xf7\x20\x7b\x09\xdd\xc8\xb9\xe6\x9a\x35\x62\x50\x20\x86\x38\x67\x92\x0d\x2f\xe4\x2e\xa2\x05\x40\x09\x5a\x38\x7f\xe1\x05\x18\x59\xc7\xcb\x88\x46\x91\xcc\x85\xde\xf1\xa4\x82\x72\x59\xce\xc3\x63\x3b\x7a\xb2\x69\x76\xe5\x4b\x73\x73\x21\x41\x6c\x77\xbd\xba\x4c\x43\xbf\xe3\x45\xad\x57\x57\xd0\xea\x4e\x79\x0b\x19\xca\x54\x8a\xc1\x4e\x2a\x2c\x88\x05\xbc\x0b\xc0\x50\xc3\x2e\x5d\x8a\x8e\x69\x78\x21\xf3\xac\xe9\xde\x1a\x8a\x53\x36\xcf\x98\x51\xdc\xaa\xfe\x30\x4f\xd3\xd7\x65\x4a\xdc\xd3\xf5\x9e\xae\xdf\x3c\x5d\x9f\x60\x5d\xb4\xbe\xaf\x83\xb7\x15\x81\xd7\x25\x3d\xb2\x42\xe4\xf2\xc2\x61\x23\x91\x59\xab\x78\xd9\x8c\xbc\xaa\xc9\xdb\xe2\xa3\xee\x5b\x5a\xf2\x9c\x56\xca\xd0\x01\x92\x82\xcc\x41\x9e\x2e\xdd\xcb\xd2\x5c\xa6\x41\x56\xb1\x2d\x32\xb7\x64\x9d\x9d\x8b\x35\x28\x80\xb5\xcd\x7a\x37\xb5\xb2\xac\x25\xf2\xe4\x72\xd4\x09\x0a\x50\x4d\x75\xc5\xca\xa7\xd5\xc9\x3a\x5c\xd4\xaa\x3b\xe2\x81\x31\x0b\x8c\x82\xcd\xdf\x72\xa9\xa9\xfa\x70\x38\x14\x46\x4a\xbb\x67\x0b\x14\xb2\x8d\x1c\xf4\x7b\xa3\xbb\x1d\x28\x26\x14\xa4\x07\xfc\x1e\xdd\xb9\xe6\x0c\x39\xf7\x06\x9a\x32\xb0\xa8\x64\xb9\xe4\x19\x84\x74\xdb\x46\xad\x18\x56\x04\xcc\x17\x75\xd2\xdc\x33\x1c\xfe\x94\x69\xc8\x2a\xd7\x5c\x83\x8e\x1d\x63\xd5\xca\xda\xd0\x57\x9a\x3a\x91\x2a\x32\x09\x7e\xb5\x38\xdf\xee\x66\x51\xf5\x36\x9a\x36\xb1\x59\xbb\xbc\xb1\x39\x12\x47\xce\xce\x18\x65\xb2\x56\x0a\x92\x2a\x82\x3b\x3d\x46\x7e\xe3\xe2\x1d\x98\x38\x7c\xe4\xf7\x7c\xce\x62\x4e\x21\x63\xc2\xfc\xeb\xc8\xcc\xeb\x77\x27\xd7\x97\x17\x23\xe6\xd3\xba\xfe\x73\x28\xfa\x89\x92\x3e\xab\x85\x08\x29\x7c\x7a\xc6\x3c\x63\x4e\xe6\xb4\x73\x01\x2b\x7d\x71\xb4\x87\xa2\x6d\x04\xb1\x8c\xd4\x21\x7d\x54\x87\x34\xa5\x7f\x97\x02\x42\x2f\xfa\xf0\xe7\x49\x22\xf3\xf8\x67\xa3\x61\x1d\xc1\xb9\xd6\x47\xec\x81\x09\x8d\x6e\x4d\xb3\x5c\x31\xe4\x2b\x2b\xc8\xee\xf8\x9d\x19\x73\x91\x84\xa6\x86\x82\x7d\x89\xd8\x5c\x93\xff\x2f\x63\x63\x29\x75\x33\x83\x92\x93\x89\x62\x6b\xdd\x78\x85\x52\x7f\x73\x49\xfe\xfc\xa7\x6f\xbf\x33\x24\xb4\xc9\x1a\x9f\xdd\x5c\x8e\xcc\xf7\xbf\x3b\xb5\xdf\xab\x35\xd8\xdd\xe5\xbc\x60\x6d\x8e\x78\x30\xd1\x22\x17\x70\xbd\x66\xe0\xec\x02\xf6\x06\xe4\x50\xec\x63\x13\x77\x3b\x45\x64\x87\xad\xb2\xcc\xb6\x10\x1b\x3e\x25\x72\x0c\x76\xc4\xbc\x54\x13\x6e\x49\x44\xd0\x96\xfe\x97\x53\xae\xe6\x09\x5d\xd4\x7a\x58\xb5\xec\x17\x86\x3b\xcd\x69\xc4\x0a\x48\x0a\x17\xbc\x17\xc9\x34\x85\x80\x52\xa7\xaf\xc7\x7c\x02\x91\xa5\xda\x08\x15\x64\xcc\xf4\x23\xc4\x31\xbb\x5f\xbd\x30\xe4\x0c\xf8\x86\x95\x01\xbb\x1c\xbe\x43\x4b\x83\xe9\x74\xf8\xae\x47\x86\xef\x62\xf6\xc0\x12\x39\x37\xa7\xd9\xfc\xc0\x74\xd4\xb4\x89\x83\x94\xf2\xe4\x42\x6a\x7f\xf3\x6d\xb3\x9f\x19\x8b\xf8\x9c\x9b\xd3\x35\x62\xa6\xdd\x27\x4d\x21\x6c\x3e\x60\xb7\x81\x9d\x05\xc6\x40\x68\x1c\x1b\x22\x86\x02\x79\x6e\x78\x85\x4b\x46\x04\x53\x2f\x15\x7e\xda\xc0\x10\x23\x6c\x8f\x61\x9b\x65\xb1\xa2\x71\x07\xbc\xa1\x6e\xa7\x27\xa9\xdd\x8f\xe7\x5c\x23\xbe\xe3\xa2\x58\xd9\x52\xfa\xb7\xb5\x17\x03\xd0\x0a\x6b\xe1\x6e\xb5\x08\x56\x0f\xa0\x59\x8b\x35\x64\x3a\x3f\xc0\x1b\xf3\xdd\xd2\xa1\xa9\x10\x35\x2e\x0a\x4b\xa8\x82\xf9\xc2\xe6\x9a\x54\xd3\x5b\xd8\xca\x11\x47\x89\x54\xe5\xd4\xd3\xce\x83\x3e\xb1\x9f\x2e\x1b\xf7\x20\xb4\xf6\xe4\xc9\x7a\x06\xc0\x7e\xc3\xc2\x57\xe0\x41\x90\x4d\x68\xab\xa1\xd8\xb7\x7b\x84\x83\xf3\x12\x24\xdb\xa4\x48\xc4\x11\x31\x29\xa4\xc4\xa1\x28\x4c\xc0\x8a\x3c\xb2\x04\xbc\x46\x91\x4c\xe7\x20\x01\xd9\xe1\xda\x96\xcc\x05\xae\xa9\x66\x3d\x22\x73\x6d\x1a\xc3\x10\x37\x77\xc7\xd9\xf8\xb9\x42\x2a\x44\xdd\xc7\xc6\x92\x78\xb8\x32\xa4\x75\x64\x85\x5c\x90\x4f\x4c\x43\x2b\x00\x07\x19\x4e\x10\x8b\x8d\x2f\x3d\x4a\x27\xb5\x6d\x5b\xfb\x44\xd9\x99\xac\xb1\xf3\x45\x1e\xe2\xf7\x89\x1c\x2f\xdd\xf7\x4b\x68\x9c\xdc\x5d\x9f\x39\x9f\x5b\xe1\x8e\x08\xf0\xac\x4a\x1a\xdd\xe0\xea\x7a\x70\xd2\xbf\x1d\x9c\x1e\x12\xa3\x38\x7e\x62\xda\x4f\x17\xd2\x15\x3c\x32\x22\x8e\xdc\x26\x36\x0a\xa5\x19\x8d\x5b\xa8\x9b\x65\x59\x29\xa9\x60\x05\xe3\x28\x67\x3d\x2e\x27\x6c\xc8\x39\xe4\x02\x33\x40\x21\x4f\xb7\x3a\x4f\xeb\xe8\x5a\x75\x02\xc1\xed\x30\x7a\x3b\x4e\x1f\x1c\x6f\x5a\x77\x74\xad\x22\x9f\xb2\x83\xec\xa9\x27\x03\x47\x4b\xcf\x18\xcf\x48\xa7\x69\x21\x51\x8d\xba\xcf\x29\x88\x18\xf9\x4c\xe7\xcb\xa3\xb9\xe9\x63\x89\x68\xad\xcf\xa4\xb0\x9d\x3c\xf5\x39\x70\x6c\x6d\x84\xac\x70\xfb\x09\x16\xf2\x3e\xf2\x56\xcf\x37\x31\x80\x4a\x39\xa3\x55\x38\xb1\xca\x20\xac\x5b\x58\x11\x38\x3b\xf0\x0b\x17\xa4\x74\x25\xf6\xc8\x84\x7f\xb1\x8d\x16\xe1\x22\xee\xd5\xc0\xe0\xd4\xe2\x9e\x9c\xd1\xfa\x99\x5a\x43\x6c\xb8\x82\xef\x97\xfa\x57\xa4\xd2\x46\xea\x32\x92\x6b\xc6\x8c\x7e\xc1\x62\x02\xdd\xfa\xe0\x95\x95\x22\x83\xa6\x99\x59\x14\xba\x96\xbe\x55\x20\xdb\xc6\x54\xb3\x03\xcd\x57\xe6\x13\xd8\x90\x33\x08\x4e\xa3\x3a\xc8\xae\x2f\x6e\x9e\x31\x9b\x52\xe1\x22\x1d\x5a\x86\xeb\xae\xbc\x2d\x58\x95\x91\x60\x29\x44\x5b\x82\x7c\x05\x91\x74\xa5\x71\xa8\x39\xac\xe7\xd2\x71\x58\xeb\xe3\x6b\x58\xb6\x47\xea\x8d\xa1\x2d\x83\xcd\xe7\xf1\x6b\x1a\x6c\x42\x95\x26\x76\x4c\x6d\x9a\x64\x20\xe1\x3f\xad\x77\xba\xa4\x9a\x75\xb5\xc7\x19\x12\x2a\x2b\x21\x4c\x6b\x6e\x0b\xde\xe6\x8a\xd9\xa4\xcb\x94\x65\x53\x27\x08\x63\x31\x32\x7f\xb6\x6d\x55\x32\x77\x4b\x84\xcc\x04\x62\x5e\xea\x4d\x1f\x92\xbe\xa8\xa5\x9f\x3b\xbb\x78\x69\xbd\xf0\x4e\xa2\xc9\x23\x5d\x28\x32\xcf\x30\x53\x13\x03\x61\xdc\xe4\xc1\x61\x59\xfe\xc8\x5b\x8a\xb4\x8b\x44\x22\xa0\x4a\xaf\x76\x5a\x04\x35\xb6\xbb\x73\xbb\x8e\x3a\x51\x25\x48\xa3\xa9\x0c\xb6\x57\x35\x3b\xb0\x3a\xcd\x46\xd1\x8c\x8a\x29\x1b\xd9\xe4\xd4\x8d\xb4\x25\xd3\xce\x09\x34\x73\x6a\x5b\x69\xbe\x9c\xae\x50\x61\xb2\xa8\xc2\xf8\xaa\xd3\xe9\xe0\x10\x28\x4d\xa7\x8c\xe0\x88\x96\x29\x26\x05\xd4\x44\x68\x50\xb7\xf0\x53\xa0\x27\xd8\x56\x07\xe5\xa0\x94\x36\xe1\x1d\x2c\xc3\xe7\x74\xcc\x92\xad\x83\x0d\x36\xb2\xd2\x41\xd7\x16\x6c\x53\x4b\xb3\x34\x10\x5c\xc3\xc8\xe3\x8c\x65\x55\x76\xec\x6c\xdb\x59\xde\xe4\x7a\x58\x36\xcf\x52\xfd\xbf\x2d\x26\xea\xd0\x63\x37\x99\x6a\x1b\xa6\x6c\x78\xed\x05\xd8\xab\x4d\xf6\x91\xf0\xfa\xab\x9a\x04\x37\x1b\x48\x00\x01\xdb\x32\x8e\xad\x31\x60\x57\x4e\x65\xe3\x9c\x9d\x8e\xb5\x15\xce\x26\x44\x48\xc1\x08\x57\xc5\xcb\xba\x1c\x5d\xe8\x33\x5e\x8d\x88\x8f\xc6\x97\x7a\x45\xdb\xa7\xb6\xb4\x14\xb9\x48\xde\x36\xe0\xd2\x25\x04\x33\x8a\x2a\xcd\x16\x80\x98\x83\x7c\xb8\x2c\xd3\xad\x1c\xe7\xce\x05\xee\x5b\x07\x88\x14\x78\x4a\xb5\x24\x20\x46\x56\x06\x47\x10\x56\xc8\xbe\x64\x3f\xb2\x59\x9f\x43\xe1\x2d\x1b\x40\x88\x5c\x91\x94\xce\x21\x57\x41\x48\x5d\x7c\x85\x59\xcc\xda\x6f\x61\xcf\x09\xe2\x0a\x91\xd9\x5b\x56\x60\x95\x69\xc7\x5d\xbf\xc5\xba\x96\xd1\x62\x1c\xd2\xd5\x94\x3f\x30\xe1\x68\xba\xe7\xce\x84\x19\x94\xeb\x34\x59\x1c\x50\x70\xf3\xb2\x38\x34\x5c\x2f\xe7\x48\xb6\x9a\xed\x2b\xb0\x47\x76\x5f\x32\xb3\xf1\x79\xcd\x42\x89\x98\x03\x25\xbc\x43\xe7\x98\x0f\xa9\xd4\xc2\x60\x61\x62\x05\x55\xe4\xf7\x42\xea\xdf\x07\x40\x61\xce\x78\x81\xc5\x8e\xad\x09\xaa\x57\x03\xf1\x85\x43\x6b\x09\x87\xd0\x20\x61\x7d\xe5\xca\x6f\x8b\xd7\x57\x04\x1e\x3c\xa9\x34\x3a\xa8\x07\x95\xb6\xa1\xa0\x63\x75\x90\x9d\x59\x6c\x9e\xa3\x8c\x3f\x41\x32\xc8\x98\x03\x2f\x48\x65\xc6\x2a\x15\x4a\x90\x9f\xfb\xa8\xeb\x74\xae\x1b\x33\x17\xeb\xa2\x51\x83\xc1\x13\x8b\x35\x14\x27\xbd\x64\xe8\x54\x87\x43\x71\xc3\x58\x3b\x82\xbf\xdf\x8b\x5f\xa1\x21\x18\xab\x93\x1a\x97\x50\xda\x2e\x42\xb0\xd3\x32\x38\xcd\x12\xaa\x59\x81\x29\xd6\x6c\x97\xd8\x24\x6c\xba\x4d\x2e\xf7\x4e\x8a\xb0\x14\x75\x1b\x68\xd6\xe1\x50\x7c\x94\x99\xbd\x82\x95\x85\xed\x1c\xd3\xe8\xfe\x80\x89\x98\xd0\x5c\xcf\x10\xbc\xca\xfa\x15\x16\x96\x1a\x8c\xa4\x01\x64\xe3\x33\xd3\xb8\x8a\x68\x16\x3b\x0c\xd4\x07\xe9\x46\x31\x14\x41\x23\x00\x0c\x0a\xd0\xdf\x50\x00\xa9\x4d\xd5\x64\x50\x6b\xa1\x6d\x2d\x9a\x4a\xfb\xd4\x0a\xfb\x2c\x3f\x67\xa5\x52\x45\x00\x69\x2a\x98\xb2\x22\x7b\x65\x75\xce\x9c\xb5\xd1\xe9\x77\x2a\x2c\xf6\xee\xdf\xec\x59\x8d\x02\x4d\x52\x76\x06\x46\xd2\xf9\xd6\xf1\xda\x12\x08\xd7\x24\xcf\x20\x08\xaa\xa9\xcd\x6f\xa2\x19\x4f\x0a\xdf\xc5\x87\x9e\x1f\xa6\x69\x32\x61\x0f\x2c\x41\x08\xc8\x28\x83\xc0\x05\xb4\x1a\x7e\x4b\xfe\x17\x96\xbb\x21\xdf\x0d\xc5\x27\x60\xc3\x49\xb2\x00\x80\x1a\xdf\x32\xd5\x95\x66\xee\x1b\x07\xa0\x6d\x28\x16\x29\x0f\x04\xf7\x7a\x46\x1f\xd8\x50\xb8\x66\xfe\x17\xb9\x27\xff\x4a\xbe\x6b\x53\xef\x5c\xfc\xc1\x13\xdb\x39\x3e\x06\xde\xfd\xe0\x96\xb3\x8c\xd2\xf2\x1b\x67\x06\x29\x19\x21\x1b\x12\xd5\x3c\xce\x1c\x17\x0f\x32\xaa\x05\xb9\x84\xa7\x96\x66\x4c\xe8\x91\x90\x31\x1b\xb1\x06\x97\xe6\x12\x26\x61\x84\x80\x0b\x19\xb3\x95\x0e\x49\xcf\x4c\x7f\x06\xd3\x8d\xca\xc7\x7e\x3b\x20\x5f\xc6\x27\x47\x78\xeb\x43\x99\xd2\x9a\x47\xee\xc1\x9c\x36\x19\xf7\xa6\xce\xd4\x4b\x2b\x9f\xf5\xe0\x42\xb0\x03\x68\x76\xe8\x25\x54\xbb\x18\xf4\xea\x71\xac\x3a\x02\xcc\xcb\x66\xe6\xf6\xb2\x0a\x60\xaa\x00\x4a\x38\xe3\x53\x6e\xe4\xf7\xee\x0e\x5b\xe0\x84\x9b\x78\x33\x10\xb3\xa7\x93\x3b\xa3\x58\x0a\x97\xb7\x78\xe0\xe9\xaf\x70\x42\x8e\x65\x5e\x15\xe0\xed\x02\x70\x15\x46\xc7\x5b\x59\x7d\x61\xf8\xf0\x14\x23\x30\xd9\x8c\x63\x0a\x4b\xff\xe4\x9c\x98\xd3\x21\x53\xcc\xf3\x86\x45\xcb\xf5\x4c\x66\xfc\xef\xad\x01\x5c\xed\x32\x7a\xe1\x69\x2d\xe2\xdd\x70\x9c\x65\x69\x1d\x88\x15\x45\x0a\x5d\xd2\x4a\x9a\x74\x26\x32\xce\x01\xd2\xc8\xb0\xd9\x49\x9e\x20\x0e\x6a\x24\xb3\x18\xeb\xf1\xa9\x52\x74\x9d\x79\xcf\x8b\xf7\x54\xfb\x06\xb9\x45\x7e\xb1\x48\xab\x68\xc1\x59\x2a\x80\xfe\x25\x67\xf9\x8e\x02\x14\x6d\x01\x80\x67\x8a\xfc\xa8\xaa\x01\x74\xaa\x8a\xa0\x60\x5c\x1b\xc3\x9b\x8b\xf5\xfd\x9b\x99\xa9\x0a\x62\x86\x9d\x65\xd1\x67\x54\xa3\x4a\x8e\xa5\x62\xd6\xb2\xe8\x5c\x23\x92\xe4\x0e\x4c\x3a\xcf\x11\xcf\x51\x97\x91\x1a\xd8\x8f\x25\xbf\x07\x1f\xe0\x5a\x65\x11\x4f\x64\x27\x71\x90\x9c\x15\xe9\xe3\x09\x4d\x26\x1b\x30\xb9\xba\x50\xbd\x6c\xbd\x03\x03\x8a\x67\x6b\x0d\xc1\xec\x5a\x12\x33\xf7\xc7\x8c\x03\xe0\xc2\xa2\x78\xd9\x57\x45\x72\xd7\x45\xc8\x63\x8c\x94\x82\x62\x2d\xc4\x75\xb8\x25\x5c\x34\xf3\xf8\x35\x0c\x10\xb6\xa1\x72\xd7\x75\xbf\x7d\xdb\x89\x40\x96\xf4\x5a\x8f\x44\x3d\xdb\x72\xe5\x61\xf0\xc0\xba\x2f\x63\x40\xf4\xa2\xcd\x13\x9f\x8c\xb5\x28\x24\xb8\xc8\xd6\x26\x91\x9b\xb2\xa9\x72\x6d\xba\xc0\xbe\x47\xe0\xe7\xde\xda\xbd\x13\xb8\x00\x8a\x74\x0d\xcc\xd3\x73\x19\xd6\xcf\x64\xc8\x84\xc8\x81\x72\xa6\x60\x10\x38\xd0\x96\xe1\xfb\xa4\xfc\xac\x40\x34\x75\x1c\xa9\xe3\x50\x96\xba\x4b\x3b\x3a\x3f\xc1\x42\xb6\x8c\xbd\x9e\xdb\xa8\xcf\xb2\xdb\xd0\x27\xba\x16\xa1\x76\xb6\xec\x8c\xce\x28\x24\x10\x40\xd8\xf7\xcf\xa8\xe5\x71\x85\x56\x18\x87\x5c\x9a\xce\xf5\xc2\x02\xdd\x03\x6f\xb6\x10\xd8\x7a\x46\x85\x4d\xe2\x6f\x72\x51\x56\xf9\x74\x5c\x72\x52\x36\x75\x06\x1d\x59\xd5\xb6\xb1\x49\xb7\xd0\x61\x16\x51\x25\xa9\xa2\x2d\x22\x01\xcb\xde\x8c\x68\xd2\x6a\x4f\x19\x4b\x99\x30\x2a\xda\xd4\xce\xc6\xc7\x35\xeb\x2b\x0f\x13\x29\x2c\x9e\x8f\xce\x72\x66\x74\x6e\x9a\x24\x95\x79\x51\xa8\x5c\xab\x7d\xdd\x80\x71\x51\x9f\xa7\xbb\xc3\x14\x73\x97\xd7\x89\xd0\xc3\x0f\x96\x52\x91\xcd\x87\x76\x95\x55\x3b\xa5\xfe\x86\xe1\x5f\x8d\x89\xd2\xab\x06\x16\xa6\x57\x2f\x15\x21\xca\x29\xca\x9b\x0d\x51\xb1\x28\xcf\xb8\x5e\x8c\xac\xe1\xa9\x3b\xd3\xba\xb1\x5f\x9e\xd8\x0f\xbb\x68\x75\xc7\xc4\xf5\xe7\x0c\x5d\x20\xde\x64\x1c\x41\x91\xed\x14\xba\x6c\xb7\xd1\xd4\x1a\x13\x28\x97\x2d\xac\xcb\xe0\xec\x36\x54\xd3\xc5\xa6\xc3\xb3\x60\xab\x23\x39\x71\xb9\x91\xdd\x17\xb6\x8a\x42\xbb\x86\xc5\xce\x21\x6a\xcd\x33\x2e\x33\x0b\xf6\xda\x25\xb0\x2a\xa5\x5f\x46\x73\x9a\xd1\x24\x61\x09\x57\xe9\xe6\xf6\xc5\x3f\xfe\x61\xe9\x68\x4f\x10\x94\x58\x59\x88\xef\x2f\x3c\xcd\xd3\xa0\x22\x3a\x20\x21\x05\x78\x26\xd6\x64\x6f\xf3\x38\xdd\x00\x8b\x8b\x46\x68\x9e\x05\x08\x35\x46\x27\xf6\x58\x65\x56\x5d\xa6\xd1\x0c\x2a\xd5\x4e\x28\xcf\x04\x53\xea\x90\x5c\x48\xcd\x8e\xc9\x67\x3a\xbf\x05\x85\x0f\xab\x84\x4c\xd1\x42\x4b\x15\x31\x92\x53\x2e\xb8\xee\x0d\x85\x05\x38\x73\xab\x72\x14\x49\x81\x20\x37\x11\x2c\xac\x6f\x02\x4c\x8e\x0e\xed\x45\x63\xe1\x00\x43\x25\x2d\x8b\x9d\xd1\xc7\x51\x10\x41\x39\xc2\x08\xf5\x35\xe8\xf8\x9a\x3e\x62\xcc\x30\x14\x76\xc4\xaf\x97\x48\x8f\x36\x28\xc7\x82\x42\x23\xb6\x93\x0b\x5e\x90\x00\x51\xca\x88\x87\xb3\xc7\x08\xc9\x6f\xf8\x21\x3b\x24\xdf\x27\x72\xac\x7a\x44\x79\x1c\x34\x57\x77\x52\xf5\xd0\x49\x02\xff\xc6\x6c\x92\x0f\x6e\xf5\x0b\xbe\x0f\x95\x1c\x26\xfc\x0b\x56\xf2\x57\x7f\x3c\x3e\x3a\x4a\x17\x07\xe3\x3c\xba\x67\xda\xfc\x05\x32\x45\xe3\x0a\xd9\x74\xc0\x11\x6d\xca\x49\x5d\xb5\x3a\xf5\x7c\xd6\x4e\x14\x69\x91\x10\x2c\x46\x86\xb9\xd2\x7d\xad\x1c\x97\x9d\x28\x45\x73\x21\x10\x3b\xe5\x2c\x6f\x3b\x5e\x25\x0c\xad\x27\xbc\x78\xfb\x88\xae\xe9\xce\x47\x19\xba\x6b\x92\xd0\x29\x1a\x06\x0b\x73\x36\xdc\xb5\x4e\xc1\xd4\x4c\x38\x17\x29\x17\xd3\xa4\x6c\x5c\xbb\x4c\xb9\xa5\x22\x33\x77\xf0\xf9\x9b\x53\x56\x8e\x74\x7a\xef\x5c\x62\xe0\xda\xb2\x26\xff\xc3\xa1\xe8\x2b\xf2\xc8\xb0\xc4\x0f\xa4\x35\x81\x85\x3c\xe7\x6a\xe6\x93\x9a\xc0\x66\x07\x8d\x22\xc2\x91\xe9\xc9\x2b\x2f\x90\xb4\x01\x41\xb0\xe8\x43\xb0\x5a\x10\xd4\xda\x34\x0d\x43\x5a\xb4\x0b\x66\x23\x8f\x19\x9d\xcf\x59\x36\x14\x16\xad\x06\x30\xd9\xa4\xb4\x81\x0a\xeb\x81\x74\x94\x43\x6c\xa1\xf2\x52\x0a\x82\xb7\x2a\x0a\x4c\x38\x3d\xdd\xab\x3d\xa5\xeb\x01\x40\xa2\xe0\xe3\x58\x32\x15\x18\xe0\x88\xd7\xa3\x13\x3e\x61\x86\x6b\x0f\x85\xd9\x9d\xd0\x58\x88\x58\x53\x0e\x7a\xca\x74\x1a\x65\x52\x29\x1b\x35\x8b\xed\x2c\xcf\x7d\xd8\x02\xd6\x1e\x01\xb3\xb0\x26\x62\x15\xe0\x3e\x78\xe6\xa0\xee\xed\xc3\x46\x34\xb3\xd6\xa6\x56\x02\xdb\x17\x6b\xb1\x06\xb4\xfd\xd1\xc9\xf9\x99\xc7\x73\xae\x74\x5d\xc7\xb6\x0f\x41\xc6\xda\xd1\xed\xeb\x33\x0e\x70\xee\x2b\x4d\x2c\x41\xba\x5f\xbd\x59\xe5\x58\xbd\x6d\x32\x82\x2b\x5b\xbf\x8a\x6f\x56\x68\x66\x55\x48\xe9\x8e\xb6\xa9\x25\xc1\x20\x82\x8b\xf6\xa9\xbd\x63\x70\x61\x99\xb7\x94\xa6\xe9\x3c\x4c\x97\x72\x98\x0b\x76\x9a\x78\xd4\xda\xb4\xaa\x67\x85\xf6\x8a\x28\x7a\xa2\xab\x83\xab\x6d\xc5\x7a\xd6\xea\x5b\x8b\x18\xb6\x8b\x10\xc4\xe7\xcb\x3f\x4c\x16\x45\xc4\x8d\xb2\x77\x9e\x2f\x4a\xdd\x6c\xb3\x1b\x33\x8f\x8e\xd6\xba\xa1\xdb\x26\x18\x39\x1d\x82\x64\x8c\x2a\xeb\x4a\x85\x3c\x9c\x4a\x8c\xfe\x1a\x66\x35\x3f\x66\xcc\xe4\x3b\xf0\x78\x84\xc1\x55\x63\x21\xb6\x23\x77\x10\x79\x96\x31\x28\xed\x8d\x18\xcf\x67\x95\xdb\x05\xe0\xb8\x33\x46\xe3\x45\xb0\x22\xde\x59\x88\x3d\x83\x59\x41\xf1\xd4\x28\x3e\x20\xd2\x09\x79\x20\xe7\x4e\xd6\x2b\xbd\x05\x60\x92\x7c\x62\x6e\xac\xc0\xd5\x68\xbe\x10\x07\x50\xb3\xd6\xc8\xc6\x0d\x71\x56\xae\x11\x88\xcb\x02\x88\xe9\x19\xb3\x37\xdc\xf0\x5d\xff\xfb\xcb\xeb\xdb\xc1\xe9\xf0\x5d\x11\x59\xeb\x52\x47\x9c\x94\xe3\xb1\xee\xa4\x18\x0a\x1f\x0c\xe7\xc1\x63\x60\x2f\x09\x8d\xe3\x02\xba\xcb\x0a\xdf\x18\xcb\xb3\x94\x23\x07\xa7\x62\x65\x18\xdc\x92\x66\xee\x20\x7f\xe0\xb5\x9e\xac\x25\x66\xef\xd2\xc9\xc1\x2c\x88\x25\xe1\xea\x3b\xba\x6c\x42\x58\x0a\x8d\x3a\x0a\xf3\x15\x70\x05\x7b\x74\x32\x26\xdc\xce\x47\x14\x2f\xe1\xf5\xb8\x9d\xdb\x90\x0d\x36\xf5\x23\xff\xc2\xe2\xeb\x16\xa9\x6a\x27\xd1\xe8\x9d\xa2\x78\x1a\x77\xc1\xe8\xad\x6b\x6c\x82\x9f\xca\x9d\xf9\xae\x3b\x5b\x42\xf6\x56\x41\x8e\x00\xd8\x08\x4d\x28\x89\x58\xa6\x29\x17\x64\x02\x07\xdb\xe8\xca\x80\x49\xc0\xc0\xff\xf4\x07\x92\x72\x01\x59\xbf\xcb\x96\xf6\xae\x3c\x8f\x75\x4a\x4c\x9e\x5d\xdc\xdd\x96\x44\xd5\x1f\x2e\xef\xca\xf5\xcd\xfa\xbf\x2c\x95\x55\x2b\x2d\x2c\x73\xf4\x07\x53\x2c\x32\x88\x2c\x80\x86\x5f\x99\xa6\x89\x7e\x62\xfa\x27\xc3\x97\xa5\xd8\x45\x78\xad\x95\xb3\xc0\xe9\xc1\x46\x0f\xd8\xf0\x1a\x64\x60\x87\xb2\x24\x86\xda\x49\x72\xd0\x03\xb1\x3d\x84\x09\xbd\x87\x58\xc9\x0b\x2a\xfb\x83\xba\xe6\x02\x55\x8c\xbe\x24\x85\x59\xae\x21\xbc\x4d\x74\xad\x39\x39\xc1\x8f\x3b\x05\x4e\x5e\x87\xe1\x92\xa6\xad\x62\x29\x49\xff\xea\xac\x61\xad\xcf\xab\x76\xe1\xaf\x0b\xa7\x32\xf1\x26\xea\x5d\x43\x54\x06\x79\x2f\xaf\x02\x9d\xd2\xce\x74\x3b\x60\x4a\xf4\xe4\x5d\x95\xdd\x83\x4f\x7a\x0d\x6f\x21\xcf\x96\xf2\xd9\xac\x62\xb0\x1b\x30\x8d\x62\x19\xd6\x44\xd3\x08\x07\x64\xe3\x8b\x43\x04\x89\x7a\xf0\x5a\x2f\x44\x94\xc0\x5a\xaa\xce\x17\xb9\x33\x94\x8d\x62\x36\x5d\x60\x36\x7e\x42\x8a\xf6\x59\xd8\x90\x57\xee\x80\xf3\x5d\xd0\x99\x4d\x8a\x0c\xa7\x1b\x52\xdb\x7a\xc8\x1c\xc5\xf8\x9c\x4d\xcb\x16\x7f\xa1\x73\x6a\x95\x62\x90\xf0\x1d\x42\x59\x13\x00\xfa\xe1\x50\x04\x5e\x68\x85\x32\xb9\x39\x23\x0e\x75\x10\x2a\x93\x18\x76\x6a\xa3\xbf\xfd\xcd\x5c\xda\x81\x6a\xee\xa5\x9e\x95\x71\x03\x6b\xfd\xd8\xd3\xa9\x66\xd4\x65\xb8\x38\xf5\xde\x06\x98\x84\xc6\x0f\x68\x2f\x00\xf2\xb2\x1d\xb3\x07\x66\x83\x52\x68\x00\x2b\x1e\x64\x45\xc6\x92\x29\xf1\x5e\xfb\x1c\x22\x9e\x58\xac\x43\x5a\xb5\xf9\x19\x91\x83\x72\xdb\xf2\xf2\x03\xbe\x03\xd8\x8f\x75\xa5\xda\xe0\x58\xad\xb4\xa1\x38\xc7\x0d\x50\x42\x18\x60\x00\x9d\xb6\x61\x74\x7c\x99\xb3\x68\x13\x6c\x82\x2b\x9a\xd1\x94\x69\x96\x2d\x8b\x31\x28\x17\xfd\x01\xff\xb9\xdb\x41\xdb\x2f\xee\x22\x22\xdc\x55\xa1\x10\xbd\xea\x75\xbe\x0a\x6b\xc0\xcf\x62\x2d\x58\x15\x33\x8d\x9f\x2c\xa4\xdf\x9a\xb3\xb0\xfd\x14\xd3\xb0\x21\x14\x01\xb4\xc4\xb6\x73\x7a\x9e\x1c\xfb\xdb\x5a\xb6\x7a\x29\x06\xe0\x95\x24\xd7\xaf\x1e\x65\x5b\x56\xfd\x2a\x5e\xba\x13\xde\xed\x42\x67\x5d\x6e\x56\xe5\x50\x95\x82\x72\x81\x4a\x40\xde\xc7\x04\xf3\xe6\xcc\x78\x10\x5a\x9a\xc2\x9e\x82\x04\x03\x8b\x9b\x54\x58\x1b\xad\x64\x55\x45\x8d\xad\x2c\xd7\x0a\x1e\xb7\xab\xac\xe1\xbd\x44\xb3\x6b\x89\x66\x0d\xdb\x1e\x52\x27\xcb\x2a\x00\x06\xb6\x38\x8f\xcd\x3c\x2d\x4f\x10\x82\xda\xed\x15\x69\x2b\x7c\xc0\xd5\xcf\x85\xff\x57\x99\x83\x3b\xa2\x0e\x49\xb5\x29\x5b\xe7\x30\xf0\x8f\x80\x7b\x24\x09\xa5\x01\xeb\x2c\x87\xd1\x62\x6c\x13\x9a\xa0\xcf\x2e\xd0\xbb\x02\x59\x73\x0b\x99\x93\x47\xae\x8c\x2e\x3c\x14\x10\xfc\xe3\x4d\xd5\x5a\xda\x12\xc3\x3d\x78\x0b\xf2\x6b\x55\x3e\x4e\xb9\x26\x34\x98\x61\xc9\x5e\xd6\xb3\xe7\xd9\x7c\x00\x33\x6e\x4c\xe0\x6c\xc2\x7e\x58\x71\x68\x36\x30\xfe\x14\x8d\x6c\x9b\xa3\x19\x04\x2a\x3e\x6d\x96\x66\xa0\xf1\x84\x1a\x66\xe3\x99\xdb\xa7\x69\x92\x66\x6b\x83\x45\xa3\x03\xc8\x40\xae\x74\xe5\x6e\xb1\x18\x74\x2b\x52\x34\x8b\x8d\xe8\x94\xa3\x59\xbc\xbe\x8b\x24\xcd\x36\x78\xe0\x65\x49\x3b\xee\x93\x16\xe3\xac\x4b\x06\xd3\xd2\x45\xc3\x86\x92\xd2\x55\xab\xa4\xf4\xda\xe0\x72\x8a\x28\xdf\xcd\x63\x46\xd7\x51\x07\x8b\xc0\xff\x90\x8a\x82\x3c\x9e\x32\xd8\x00\xab\x72\x7e\x21\x35\x04\x6b\x47\x50\x6a\xab\x96\x40\x34\x14\xcd\x12\xc8\x72\x9e\xb8\x6d\xdc\xf5\x4e\x61\x75\x82\xf3\xe7\x66\x61\x2d\x5a\x3f\xfb\xc8\x15\x54\x96\x6d\xd1\xac\xaa\x88\x59\xf8\x9f\x5a\x14\x10\x10\x3c\x36\xc9\x64\x6b\x38\x95\x1d\xa3\xa2\x57\x9e\x0b\x7b\xe9\xee\x50\xb5\xab\x71\xe7\xce\x41\xe4\x5e\x46\xb6\xdc\xd8\x45\x41\x3a\x35\xbe\xe2\x46\xdc\xa4\x7a\x04\xa0\xd5\xed\x0c\x63\xaf\x9a\xf6\x6a\x1a\xef\x81\xeb\xd1\x0e\x9d\x62\x18\x86\x47\x7e\xad\x6c\x49\x69\xc2\xb6\xc8\xda\x13\x4c\x7a\xdd\x8a\x1f\x81\x2b\x2c\xb3\x21\x7c\x3c\xb4\x1b\x40\xa9\x0f\x1b\xf9\x54\xe1\xc3\x5e\xb4\xcb\x45\xcc\x32\xc1\xa8\x9e\x3d\x5f\xe0\xf4\xc9\xb6\xc6\xe9\x67\x0b\xa2\x3e\xd9\x49\xb9\xa7\x4a\x60\xf2\x9a\x31\xc9\x6b\x04\xf8\x16\xc5\x3f\x6a\x8a\x63\x53\xd5\xc4\x02\xdb\x60\x1d\x2a\xdd\x2a\xb6\xba\x59\x99\x7b\x9a\x28\xf3\x06\xab\x4f\x2d\xbe\xdc\x1c\xf6\xb0\x64\xca\x8a\x25\xf9\x2a\xc2\xb9\x9f\x3e\xc2\x78\x59\xed\x94\x3c\x08\x3a\x86\x0a\x39\x9a\x72\x61\xb9\xd7\xb2\x38\x63\x2c\x2f\xdf\x14\x5a\xfc\xea\x83\xd6\xbf\xfa\x98\xf5\x7d\x04\xf3\x9b\x8c\x60\x5e\x66\xea\xf2\xde\x17\x28\xd0\x5b\x42\xc9\x47\x19\x71\x85\xc6\xb0\x79\x64\xb1\xb3\x16\x85\x61\x19\xf6\x17\xfb\x43\x63\x64\x46\xed\xb3\xea\x6c\x43\xcb\x95\x58\x54\x0d\xc0\x34\x8b\x13\x0b\x65\x63\xe3\x26\xcb\x96\x86\x65\x46\xb1\xa1\xf8\x41\x3e\xb2\x07\x96\xf5\x08\xd5\x24\x95\x46\x51\x0c\x22\x21\x80\x26\x4b\xa8\xa8\xe8\xf1\xa6\xe4\x82\xa6\x2c\x1e\x80\xba\x11\x44\x57\x59\xd3\x9c\x75\xaa\x35\x21\xb6\x01\xf8\x18\x6e\x83\xf3\x90\x0f\x05\x46\x3c\x61\x94\x0d\xdc\x0b\xdc\x4d\x0c\x84\x96\xdf\x7b\x97\xdf\xef\x0f\xc9\xad\xe1\x45\x5c\x95\xc7\x1b\x00\xb8\xb4\x8d\x6d\x28\xa6\x99\xcc\xe7\xde\x5a\x22\xc7\x60\xa6\x41\x12\x6e\x70\xf9\xc1\x60\x9c\xbf\x2f\xa2\xb1\xd1\xba\x96\x13\xce\x8b\x04\xc3\x6d\x84\x82\x10\x12\x90\x61\x2b\x3e\xc2\xc7\x46\xdc\xa2\xa7\x2e\xc8\xfd\x5e\x86\xe5\xfa\x44\x6e\xc4\x53\xa6\x40\xff\xf7\xf6\xd5\x52\x1a\x60\x39\xd5\xb4\x71\x9c\xcb\xac\x5f\xde\x42\xed\xac\xb8\xcd\x59\xac\x45\xe7\x36\xba\xc7\xd5\x8f\x07\x02\x7e\x32\xbb\x58\xe7\x20\xbe\x36\x7e\x71\x95\x67\x73\x09\xb7\x6e\xb2\x70\x59\xb7\x16\x2c\x66\x2e\xe7\x39\x46\x30\xf1\x30\xa0\xa5\x91\xb2\xb9\xd2\x9f\xa9\x8e\x66\x46\xc5\x2c\x40\x53\x76\x14\xd9\x55\x70\xe5\xa7\xb5\x95\x35\xcc\xe0\x24\xec\xbd\xc5\x78\xdc\xc1\x76\x8a\x17\xb2\x8b\xf2\x85\x7f\x25\x89\x2f\x7b\xdc\x58\x27\xce\x7d\x62\x9f\x98\x89\xae\xa2\xa2\x55\xe3\xef\x46\x5b\xe5\xa2\x1d\x3b\x8f\x19\xdb\x02\x01\xe0\xd4\x62\x7e\x14\x2f\x12\x2b\x59\x35\xb2\x9c\x3c\xe3\x9b\x25\x23\x58\xa0\xdd\x07\x23\x14\x7a\xdb\x5a\x4a\xe7\x46\x60\xd4\xd2\xdc\x92\xd9\x14\x65\x96\x8c\xe9\x3c\x33\xf7\x48\x9e\x71\x77\xf6\x2b\x29\x7d\xed\xd4\x01\xb6\xa8\xa3\xb0\x28\x43\x44\x83\x7a\x35\xe8\xda\xa5\x91\xce\xa9\x0f\x41\x03\x9a\x48\xb8\xb8\x37\x9d\x61\xfa\xa2\x73\xa1\x66\x0c\xd3\x18\xe3\x86\x3d\x5d\x49\xd8\x5b\xec\x72\x7b\xf5\xc5\x55\x27\x8d\x8b\x69\x80\xaf\xd4\x6c\x0f\xec\x02\x9f\xdc\xf8\x65\x37\x08\xe8\xc6\x4f\x9d\xec\xb3\xc9\xb7\x4b\xb0\x37\x5a\x3f\x5f\x25\xc0\x96\xc2\x6d\x6d\xc8\xa3\x95\x9e\x42\xe4\x2b\x6b\xab\x01\x00\x3b\xac\xa1\x4a\xad\x34\xf5\x9f\xfe\x2f\x2c\xb7\x81\x4b\xf3\x9f\x44\x66\x43\x81\xbf\xf7\x3c\xd4\xb5\x79\xa1\xc0\x90\xa3\x29\x2b\x50\xb6\xb2\x32\x1e\x0f\x64\x84\x5b\x3c\x15\xc4\x0b\xf4\x48\xbf\x66\x0c\x41\xc1\xda\x5a\x65\xcb\x94\x0a\x3a\x05\x74\xc2\x1e\xc4\x40\x81\xb8\x5a\x58\x97\x90\xa4\xb1\x64\x12\x70\x2b\xc3\x2c\x6d\xda\x5f\x51\xf9\x0d\xfa\x44\x51\xd6\x82\xa3\x15\x8e\xf4\x66\xea\x77\x65\x47\x37\x93\xd8\x6f\xfb\x37\x3f\x8e\xae\x07\x37\x97\x77\xd7\x27\x25\xb1\xfd\xe4\xfc\xee\xe6\x76\x70\xdd\xf8\xac\x48\x99\xfb\xcb\xdd\xe0\xae\xe5\x91\x6b\xe0\xbc\xff\xfd\xe0\x3c\x7c\xe5\x2f\x77\xfd\xf3\xb3\xdb\x5f\x46\x97\x1f\x47\x37\x83\xeb\x9f\xce\x4e\x06\xa3\x9b\xab\xc1\xc9\xd9\xc7\xb3\x93\xbe\xf9\x32\x7c\xf7\xea\xfc\xee\xd3\xd9\xc5\xc8\x05\x98\x86\x8f\x7e\xbe\xbc\xfe\xf1\xe3\xf9\xe5\xcf\xa3\xa0\xcb\xcb\x8b\x8f\x67\x9f\x9a\x66\xd1\xbf\xb9\x39\xfb\x74\xf1\x79\x70\x71\xbb\x54\x11\x69\x5e\x8d\xf6\x92\xfc\xc5\x45\x16\x18\x08\x02\x31\x69\xbc\xb0\xa4\xcd\xff\x0e\x66\xea\x2b\xa4\xc7\x83\x9e\xfb\x0b\x8b\x2b\x1e\x18\x16\xe8\x3c\x20\x05\xf7\x18\x0a\xef\xa2\xf2\x97\xaa\xa6\x53\xe5\x32\x20\x4b\xa3\x3d\x26\x7d\x38\x2b\xa0\x30\x94\x3a\x85\xdc\x7b\x3f\x52\xe7\xd4\x04\x3a\x4c\x78\xca\xc1\xbf\x49\x0e\x48\x75\xc3\xcb\x0d\xda\x39\xc1\x10\xac\x87\x26\x5e\x76\x1a\x54\x35\xb9\x12\x28\xe5\x98\x38\x0e\x6d\x9a\x35\xe3\x02\xf8\xba\x85\xa0\x29\x8f\xf0\x87\x0a\x82\x1b\x29\x32\xc5\xab\x2d\x96\x08\xac\xdc\xf2\x8c\x91\x1f\xff\x5c\x0c\x0a\xac\xd5\xd6\xa2\x90\xd7\x8a\xf2\xd8\x07\x59\x8e\xab\xba\x8a\x3c\x4b\x3d\xb9\x63\x6e\xcd\x88\x70\x6e\x6d\xed\x46\x70\x2d\xe4\x22\x40\x8b\x29\xf9\x19\x6c\x71\x68\x72\x40\x2a\x34\x7e\x4c\x6e\x20\x53\x5d\x15\xaa\xbb\xd9\xc5\x79\x92\x4f\x79\xad\x74\xeb\x98\xcd\xe8\x03\x97\x0e\x01\x1b\x81\xc2\x61\x1d\xad\x68\x45\x0e\x48\xeb\x41\x39\x26\xfd\x38\x56\x65\x06\x57\xa2\x1c\xc7\x32\x0f\xca\xc3\x0e\x01\x5e\x44\xec\xd9\x66\x85\x8e\x8a\x23\x07\x2b\xb6\xfb\x5c\xfc\x3a\x3b\x2c\xdf\xbd\x5b\x61\x1b\xaa\xfb\x91\x23\xe5\xd1\x46\xc2\xc0\x2d\x55\xf7\x0d\x15\xa1\x1b\xef\x57\x87\x8a\xb0\x5d\x8f\xed\x65\xa8\x1b\x3b\xf5\x2b\x3b\x82\x83\xb6\x59\x9f\xad\xc0\x92\x2b\xba\x74\x33\x4e\x2a\xd5\x3f\x3a\xf7\x57\xaa\x1e\xf2\xf4\x96\xfd\x66\x69\x0c\x8e\xe4\xc8\xd3\xff\x1a\xf3\xb8\x82\x4f\x2f\xfd\x97\x4b\x45\xb6\x51\xb0\x6e\xeb\xda\xfb\x6b\xb9\x82\xd6\xe6\xbf\x94\x0e\x77\x84\xce\xd1\x5d\x18\x04\xec\x66\x1e\x81\x6b\x87\x72\x61\x11\xfd\x99\xf7\x3d\xb8\x1a\x96\xe6\x1c\xfb\x2a\x33\x74\x2c\x1f\x4a\xca\x65\xca\x94\xa2\x2d\xb8\x09\x81\x49\x6c\x1b\xc6\xe0\x4f\xa8\xfd\xb0\x23\x3d\xb9\x33\x79\x6b\xbe\x5a\x66\xf4\xb9\x0e\x35\x63\x37\x51\x23\xb0\xc6\x2e\xa6\x92\x5c\x62\x66\x95\xe1\x2f\xbd\x22\x6c\x42\x66\x41\x34\x49\x9b\xa9\xbf\xa3\x59\xad\xba\x60\x8d\x85\x1a\x42\x77\xcd\xfa\xd1\x16\x41\xeb\x1b\x83\x6a\x5a\x1b\x3a\x2d\xaf\xcf\x1a\x54\x57\xf2\x6d\x85\x45\x2c\xb1\x5e\x33\x56\xc8\x0e\x46\xda\x23\x14\x13\xda\x0a\x69\x4a\xe5\xd1\x0c\x3d\x0a\xe6\xca\xe8\x0d\xc5\x63\xb0\x21\xa5\x90\xcf\x7e\xd8\x12\x80\xc1\x7d\x31\xc7\x8d\x3f\x94\x02\x69\x41\x64\xe4\x10\xd5\x19\x10\x02\x3a\x7f\x8a\x0a\x14\x2b\x08\x3c\xd8\xaf\x2d\x48\x7d\x83\x72\x43\x0d\x15\xb1\x9b\x8a\x0e\xf9\xb9\x05\xb5\x7e\xb6\xd0\x94\xbb\x0e\x21\x28\x37\xd4\x34\x82\x1d\x54\x1b\x7a\x56\x84\x50\x9f\x98\x87\x79\x9c\xe9\xd8\xa6\xca\x9b\xe9\xba\xd5\xfe\x57\x37\xa3\x7f\x45\xbf\x43\xde\x82\xad\x10\xb4\xe6\x41\x42\xc9\x81\x91\x59\x5d\xce\xaf\x75\xba\x2b\x72\x80\xa0\x4f\xef\x21\xa6\xae\x7f\x75\xf6\xbe\x47\xde\x87\x79\x45\xef\x37\x3a\x80\x76\xdc\xb6\xe2\x10\x68\x53\xa5\xe0\xf2\xf2\xb1\x83\xbd\xaa\x9c\x44\xbb\x67\xf6\x20\x92\xb6\x73\x68\xbe\x2c\x7d\x03\x8e\x48\xa8\xa0\x83\xbe\x3a\x1f\xda\x6a\x5d\x40\x28\xe3\x72\xd5\xb0\x76\xf1\x50\x8c\x17\x55\x27\x4f\xcf\x7b\x79\x3a\x9f\xd2\xad\xab\xc2\x98\xf6\xea\x89\xa8\x3b\x0e\xb9\x5c\x7e\x1f\xac\x48\x6d\xed\xfb\x6a\xed\x05\x17\x6b\xf3\x48\xef\x63\x95\x9b\x66\x55\xb2\x97\xb9\xc5\x6c\xdc\x94\x55\xf2\xcf\x5b\x23\xb7\x0e\x01\xbe\xfd\xa6\x15\xb1\xb1\xdd\x2d\xc2\xf5\x9e\xca\x9e\x96\xca\x76\x11\xdb\x5e\x1e\xdc\xfa\x17\xe8\x09\xca\x71\x41\x33\xce\xe0\x6a\x94\x09\xcf\xe0\x4b\xa5\x83\x56\xd7\xdc\x5b\xd3\xe7\x1b\xac\xc9\x6a\xa7\xef\x0d\x06\x0e\xa0\xdb\xb5\x3e\xd6\xea\x50\xfb\xda\xd6\x31\x90\x1c\xf3\xd8\x34\x4f\x59\x8f\x48\x91\x2c\x82\x60\x07\x7b\x5e\x81\xdc\x30\x1e\x05\x0b\x82\x63\x27\x16\xea\x6c\xad\xc4\xe7\x35\xa5\xf1\x36\x1a\xd9\x22\xd2\xe4\xa2\xff\x79\x70\x3a\x1a\x5c\xdc\x9e\xdd\xfe\xd2\x00\x63\x57\x7e\xec\x90\xec\x82\x17\x6e\x7e\xb9\xb9\x1d\x7c\x1e\x7d\x1a\x5c\x0c\xae\xfb\xb7\x2b\x50\xee\x96\x75\xd6\x86\xa0\x96\xab\x26\xf5\x6d\x1d\x14\x35\x67\xe6\x6d\xe8\xbd\x8e\x75\x17\x74\xc2\x59\x0b\xde\x1d\x26\x79\x8b\x98\x65\x24\x66\x0f\x2c\x91\xf3\xc2\xac\xda\xb8\x60\x01\x10\x5e\x43\xfb\xcb\xc0\xf0\xa0\xcd\xea\x1a\x1f\x13\x2c\x17\x13\x54\xcc\xf3\x0d\x82\xc8\x47\x33\x26\xde\x6b\xc2\xbe\xcc\x13\x1e\x71\x1d\x24\x81\xc9\xcc\xba\x57\xd0\x7d\x08\x91\x88\x2b\x88\x6b\x67\xd1\x28\x3b\xd7\xf9\x43\x4f\x7a\x5d\xdb\xf7\x27\xca\x03\x33\xad\xac\x41\xb0\x03\xc5\xbe\xc5\x69\x5c\xc3\x8d\xda\x60\x74\x4f\x61\x1e\xa8\x67\x63\xd8\x44\xae\x16\x4c\xa9\xe6\x41\xae\xbe\x0d\x97\xc5\xc9\x94\xce\xf5\xf2\x40\x99\x6e\x94\xfa\xc2\xe1\x2e\xa5\xda\x5c\x3b\xc0\x58\xb0\x71\xca\x6b\x06\x2c\xd4\xe0\xfe\xc5\x3d\x82\xa0\x93\x8c\xa5\x52\x1b\x05\x0c\x23\x02\x7a\x46\xa8\xe2\x34\xe1\x7f\x07\x34\xa2\x8c\x1d\x06\x11\x14\x90\xec\x15\x87\xc1\xfd\x16\x29\xe0\x70\x28\x4e\x07\x57\xd7\x83\x13\xc3\x90\x0e\xc9\x9d\x02\xa0\xa1\xd2\xd4\x4f\x2d\x79\xa3\x38\x16\x46\x32\x70\xa1\x34\xa3\x6d\xc1\x60\x2c\xcb\x64\xd6\x9d\x3f\xf8\xfe\x06\xf0\x5d\x33\x79\xc3\xb3\x92\x6d\xca\x19\x00\x2e\x5a\x0b\x2b\x06\xf1\xe1\x3b\x4f\xbf\xb9\xa6\x8f\xa5\x15\x09\x81\x16\x40\x12\x29\xaf\xfa\x13\xae\x36\xe0\x08\x76\x9f\x5f\xa9\xcf\x2b\xf8\x76\xd9\x3c\x6f\x5d\x6d\x74\x0f\x4a\x88\xb8\x85\xbe\x68\x41\x65\x9e\xad\xa2\x62\xf6\x12\xa0\x0c\x15\xd2\x1f\xb3\x29\x15\x24\xcb\x85\xa8\xa0\x54\x86\x96\xb6\x7a\xd0\xcc\xba\x47\xd5\xac\x19\x4d\x65\x2e\x40\x69\x80\x30\xd6\x86\xc1\xa8\x39\x13\x7a\xc5\x60\x5e\x0a\x72\xa3\x32\xd4\xd7\x8b\xba\xd1\x30\xd0\x36\xe0\x8d\x26\x7f\x12\x54\x6f\x5c\xef\x5a\x76\x41\x79\x25\xa7\x92\x39\x54\xfe\x7e\x6e\xd6\xb2\xa9\xba\xdf\xba\xbb\x5b\xaa\xee\x57\x77\x15\xb3\xe8\x7e\xdd\xcb\xa6\x9a\x85\x97\xd8\xe2\x97\x35\x63\xdf\xc2\x3c\xb5\xc8\xfa\x50\xf3\x34\xba\x27\x3f\xdc\x7e\x3e\x27\x13\x6e\xe4\x5e\x73\xad\x5c\x50\x23\x63\xdf\x65\x89\x2f\x28\x8d\x32\x48\x9e\x25\xfe\xee\x85\x8d\x77\xa2\x54\x20\x25\x98\x1b\x8d\x4e\x99\x33\xf6\x66\x16\x57\xad\x82\xac\x9f\x51\x11\xcb\x14\xe7\x71\xa4\xf2\xc9\x84\x7f\x39\xd4\x34\xfb\xb0\x86\x44\x73\x52\x72\xb0\x55\xc8\xc8\x86\x4f\x5a\x98\x3f\xb0\x2a\xac\x94\x13\x06\x0f\x4c\xe8\x9d\x08\xd9\xd0\x44\x43\x96\x71\x37\x53\x39\x96\xba\x3a\x3b\x2d\x38\xb4\x2f\xb9\x1c\x84\xe6\xe8\x8c\xc2\x65\x65\x33\x3b\xac\x5f\xb8\xcd\x5b\xfd\xd0\xd9\x01\x0a\xaf\xd6\xd7\x65\x45\x7c\xb7\x5d\xed\xa2\xe4\x65\x11\x9b\xe9\x60\xb2\x37\xc4\x1d\x51\x0c\x55\xf1\x20\xdf\xdd\x6a\x58\xd5\x3d\xc7\x3e\x67\x54\x55\xbb\x5c\xb9\xe5\x1b\x80\x6c\x94\x9a\xf9\xc4\x20\x07\x6d\x27\x65\xe8\xd7\xc8\x35\x86\x81\xdc\x65\x09\xc4\x01\x2f\x35\xc5\x60\xb9\x4d\x73\x7c\xbd\x78\x42\x3b\x08\x9a\x38\x18\x23\xf9\xb0\x79\xc6\xa0\x00\xf4\x31\xb9\x4a\x98\x11\x1f\x72\x23\x42\xe4\x49\xe2\x00\x89\x96\x8b\x38\x6b\x81\x68\x3d\xf9\xbc\x02\x01\x7a\xc9\xc4\x1c\x20\xd7\xf2\x99\x05\x6b\xb0\xfb\x0c\xf1\x60\x7d\xc1\x0e\x0a\xd6\xb0\xb2\x2a\x04\x0c\x78\x81\xc1\x9f\x60\x0f\xa1\x25\x6e\xcc\xff\x6e\xd8\x7c\xc6\xd4\x4c\x26\x4b\xa7\xb0\x36\xcc\xd9\x3a\x73\x70\x4b\xf9\x84\x93\xb0\x91\x77\xa3\xb6\xe0\xe0\x0e\x97\xf3\x29\x36\xd1\x28\x12\x2c\x9b\xa2\x47\x52\xf7\x21\x0c\x16\x1e\xd2\x86\xb2\xd9\xa1\x81\x63\xae\xb0\x17\x85\x50\x4d\x85\xfd\xbd\x90\xc8\x17\xe8\x40\xf4\x9f\x07\x85\xbc\x7d\x5c\x3b\xd7\xaa\xa8\x7c\x03\x15\xdd\xd7\xe3\xb2\x36\xfb\xa1\x68\xc2\x0c\xb8\x99\xb5\x59\x10\x75\x90\xdb\x6c\x6c\x8b\x2a\x81\x4c\xd9\x2d\xc6\x29\x37\xea\x14\xed\x0c\x74\x5b\x3f\x4e\xb9\x86\xf7\x93\xb9\x73\x4a\xd4\x52\x9a\xc0\x1e\xb6\x68\x7d\xd8\x22\x8b\xa8\xef\x69\x0f\x40\xc6\x74\x06\x59\xc5\x85\xc7\xa6\x7a\xc9\x5b\x2b\xeb\xaa\x54\x9b\xd2\xee\x74\xca\xab\x29\x7d\x61\xce\xfd\xe9\x96\x2e\x1f\x33\x99\xc5\x08\x32\x15\xb7\x09\xfb\x28\xcd\x1f\xcd\xd5\xd0\x26\x8b\x09\xa6\x46\x23\xa8\xaa\x5d\x3b\x6f\xaa\xc7\xea\xf6\x43\x71\x6d\x46\x81\x5f\x14\xae\xff\xa2\x72\x34\x2b\x6a\xdc\x4d\x08\xb5\x5f\xc1\xa2\xb7\x45\x5e\xa9\x51\x50\x38\xff\x09\xb3\xac\xbf\xc7\x77\x30\xa1\xda\x02\x8a\x98\xa9\xf2\x49\xa1\x37\x1a\x61\x2f\x9a\x71\xc8\x67\x8e\x99\xb2\x97\x07\xd7\x36\x61\xdd\x8b\xca\x39\x73\xd0\xae\xf0\x99\xe7\x5f\x4d\xcc\xd5\x69\xa6\xc2\x59\x84\xd4\x50\x04\x7d\x2c\x41\x02\x44\xed\x70\x43\xb1\x1f\xf6\x99\xc7\xde\xd3\x02\xff\xc4\x1d\xaa\x55\xc1\xb7\xd3\x4b\xe9\x1c\xec\x89\x78\x06\xe5\xc4\xdf\x3f\xb7\x36\xac\xfd\x10\x46\xfc\x7f\xfe\xeb\xbf\x0f\x79\x9b\xb9\x5d\x8d\xec\x0a\xbc\x86\x9d\x5c\x6f\x5b\xc2\x9d\x0f\x20\x0a\x5a\x52\xdf\x55\x3e\xf6\xf8\xc1\xa5\x50\xfd\xe2\x57\x7b\xb9\x19\xa2\x91\x7a\x86\xfe\xc5\x32\xb9\x83\x31\x3e\xcb\x97\xdf\xb2\x01\x8b\x2b\x3c\xd0\x85\x9b\x31\x88\xf2\x74\x00\xf4\x18\x9d\x67\xda\xaf\x5c\x28\x15\x06\x15\x20\x85\x6d\x13\x0d\x37\xa3\xea\xe9\x42\x1e\x1a\xab\x7a\xa0\x95\x32\xbc\x23\x57\x05\x3f\xe0\x20\x31\x8b\xce\xec\x4a\xae\x58\x86\x07\xda\x43\xca\x90\x7a\xf1\x59\x88\x7d\x5b\xe1\xc3\x61\x29\xe5\x6b\xc5\x69\x9b\xf7\x9b\x51\xda\x4a\x46\x5c\x3a\x65\xd9\x28\xce\x4b\x41\xb9\xab\xda\xbe\x32\x1f\x9d\xe6\x7a\xb1\xba\x7d\x95\xd0\xe8\x7e\x1d\x64\x3c\xf3\x7e\x4b\xb3\xab\x05\xc3\x20\x74\xa2\x2c\x1c\xb6\xe0\xce\xb1\x0a\xee\x9c\x8d\xe5\x2b\x69\xed\x70\xd1\x08\xa8\x1e\x1c\x08\xf7\xf6\x26\x42\x74\x5c\x18\x39\x19\xe7\x85\x95\xc3\xe3\x8d\xc7\x87\x43\xf1\x11\x01\xfb\x41\xf1\xc0\x01\x44\x90\x48\xc1\xbe\xcc\xa5\x62\xa5\xcc\x9e\x06\x0c\x71\x9b\x99\x67\x87\xd1\x2c\x93\x56\xaa\x37\x6f\x25\x92\xbe\x38\x82\x60\x7d\xc3\xeb\x53\x6e\xa6\xc0\xad\xa4\x9e\x88\xcf\xb9\xa1\x9d\x51\xe3\x49\x5b\x7f\xea\x5d\x4b\x50\x14\xb1\x32\x80\x25\xa3\x93\x45\x8f\xf8\xe9\x55\x08\x22\x61\x0f\x0c\xcc\x94\x30\xc6\x10\x29\xbe\x6c\x6a\x6a\x61\x27\xab\x0e\x50\x91\x56\x07\x6c\x81\xc4\xd5\x11\x94\x93\x8f\x9a\x68\xb1\x9c\x56\xb1\x75\x06\x50\x93\xc3\x7f\x0d\x29\xb4\x1f\x22\xe6\x2f\x98\x26\xec\x8b\x66\xb6\xe0\xdb\xad\xcb\xd1\xaa\x87\x75\x93\xe6\x34\x93\x76\x11\x69\xf7\x54\x51\x9b\x88\xcd\xcc\x75\x49\x68\xb1\xbb\xf7\x6d\x52\xd6\x8c\x8a\xd8\x66\x1a\x5a\x59\xda\xc8\x14\x30\x3b\xb4\x03\xf9\x18\x6c\x9b\x2f\x17\x40\x0d\x63\x9b\x88\x89\x0c\x17\x99\xd3\x8b\x8c\x64\x0e\x6e\x6b\x99\x19\x01\x35\x17\x9a\x27\x86\x38\xec\x18\x8c\xd6\x9c\x0b\x0f\xf6\x05\x11\xc3\x6d\x78\x52\x5c\x29\x2e\xa6\x23\xbb\x92\x2e\x69\xae\xdb\xc5\x50\xa6\xa9\xcf\xd8\x14\xfe\xf8\xbd\x6b\x68\xb9\x9d\x17\xc9\x1a\xb0\x7e\x5c\xba\x1e\x08\xd6\x42\xba\xc9\x58\x90\x26\x97\xe5\x37\xe2\x71\xa9\x40\x3d\x4c\x74\x1d\x23\x05\x88\x75\xf5\xfc\xf8\xe2\x0a\x51\x36\x05\x0f\x13\x6b\x20\x02\x5a\xb7\xe4\x18\xaa\xd6\xdc\xc2\x33\xe1\x45\x34\x5b\x38\xc6\x67\x50\x57\xd2\x14\xa9\xeb\xce\x86\x79\xd3\x24\x19\xd3\xe8\xde\x2b\x1b\x5e\xe5\x96\x99\x03\xde\x36\x02\x2a\x54\x16\x42\xe2\x32\x03\x8d\x40\xba\x09\xbd\x30\x88\x90\x62\x87\x5d\x74\x6e\xcb\xfa\x0b\x2c\x34\x0f\xca\x39\x8e\x1e\x63\xc6\x63\x36\x4f\xe4\x22\x6d\xb9\xcf\xaa\xa9\x59\xdb\x44\x40\xb4\x65\x86\xed\xf4\x2a\xab\x30\xbd\xb5\x2f\xb3\x5a\x9e\xc7\x0e\xf0\x7a\xd6\xe0\x92\x9f\x12\x39\x06\x2b\x9f\xd5\xb2\x5d\xee\x42\x10\x42\x5f\x3d\xcf\xeb\x66\x54\x54\x4f\x24\x57\xf3\x84\x2e\x96\xf5\x80\xb1\xfc\x4f\xbb\x6f\x98\xfb\xbd\xda\x08\xd6\x3d\x0a\xb6\xf1\xf3\xa7\x40\x01\x3d\x77\x92\x00\xbe\x8b\xfc\xcb\x1a\x93\x98\xb3\x26\x61\x16\xd5\xe1\x3c\x93\x46\x52\x90\x43\xa1\xe9\xd4\xed\xae\x95\x2e\xe5\xa3\x60\x99\x9a\xf1\x79\xa9\xe4\xd8\xd6\x71\xb7\x96\xa4\xed\x7f\x30\xca\x74\x0d\xe6\x29\xe7\x07\x08\xfd\x60\x08\x44\xcd\x69\x54\x58\xff\xa2\x84\x2a\xc5\x27\x8b\x00\xb1\xc1\x87\x30\x42\x5e\x4c\x59\x5d\x0e\xaa\xfc\x34\x71\x9a\x10\x03\x60\x37\x89\xcb\xdb\x27\x6d\xdd\x95\x4f\x21\x8f\x43\x80\x2c\x28\x03\x5f\x03\xe9\x70\x17\xb6\x05\xeb\x78\xaa\x5c\x2e\x3b\x32\x9b\xd1\xb4\xbb\x81\x39\x6c\x85\xcd\x32\xa0\x97\x82\xbe\xb4\x9b\x39\x0a\x61\xd7\x0e\xdb\x2a\x5a\x1e\xe8\x21\x9c\x06\xcc\x31\xb6\x5f\xf8\xec\xa5\x52\xde\x3e\x2d\x61\x9d\xe0\x1a\x19\xe5\xcf\x99\x70\xcd\xf9\xf2\x40\x12\x90\x6f\x5f\x74\xd0\x23\x6a\x2b\x00\xa6\xee\xa4\x7d\xca\x12\xb6\x93\x98\xdc\x0d\xe8\xbc\x1a\x2b\x10\x50\xf8\x52\x22\x2a\x20\xc7\x57\x9b\x49\xd6\xa7\xf1\xea\xa8\x0a\xea\xde\xd9\xa0\x36\x88\x5f\x6e\x41\x98\x69\x1e\xf9\xcf\x38\x50\x1b\xc2\xdc\x44\x60\x60\x5e\x84\xad\xef\xaa\x1a\x36\x41\xd5\x61\x0b\xf6\xc4\x14\xdd\xb8\x7d\x74\x58\x40\x5e\xd8\x75\xd2\xd7\xeb\x3d\x06\x2f\x1c\xf0\xdb\x32\xba\x4f\xac\x4b\x74\xc7\xca\x23\xba\x11\x37\x6d\xbb\x12\xbb\x91\x8a\xf5\xcc\x6a\x49\xa6\x4c\x63\x39\x6d\x5f\x33\xfc\x0d\x92\xc9\xce\x32\x18\x76\xba\x15\xcd\x4c\x60\xbd\x53\x7d\xc3\xb4\x72\x37\x5e\x0d\x1d\xd0\xee\xd4\x81\x4b\xc6\x2e\x52\x9b\x5f\xef\x16\xbd\x8e\x93\x7c\x6d\xad\x2a\x4f\x77\xc1\xae\xa6\x97\x9d\xd0\x07\xe0\x12\x51\x48\xdf\xc8\x2d\xd0\x31\x1c\xde\xc0\x03\x5b\x53\xe5\x57\xf8\xb6\xed\xf0\x3a\x79\xb5\x6b\xcb\xf9\x14\xdb\x6b\x63\x75\x3b\x6f\xee\x53\x92\xda\xba\x63\xd9\x85\x8e\xf2\xc4\x46\x11\x4b\x8d\x2b\xb5\xeb\x7d\x88\x09\x21\x6d\xfe\xd7\xc2\xb1\x68\xb7\x6c\x97\x87\xac\xa9\x12\xc1\xf6\xd9\x46\x2e\x82\x7b\x34\xcf\xd8\x84\x7f\xd9\x48\x14\xbf\x82\x4f\xad\x7a\x69\x96\xb9\x52\xdb\x00\xac\x1d\x50\x0b\x21\x70\x83\xdb\x95\xb6\x60\xf5\x43\x51\x04\x70\xdb\xe8\xed\x7b\xb6\x20\x32\x2b\xfd\xb4\x29\x56\xcd\xee\xeb\x30\xe0\xbe\xce\xb4\x9e\xab\xe3\xa3\xa3\x29\xd7\xb3\x7c\x7c\x18\xc9\x14\xa3\xb7\x64\x36\xc5\x3f\x8e\xb8\x52\x39\x53\x47\x7f\xf8\xee\xbb\x62\x8b\xc7\x34\xba\x9f\x62\xf6\x6f\xdd\x8a\x53\xda\xf2\x9b\x7a\xad\xb2\xf5\x91\x93\x33\x29\x46\xec\x8b\x21\xd2\xa6\x6a\xf8\x5d\x81\x55\x14\xe9\xff\x7c\x43\xd4\x42\x68\xfa\xe5\x98\x7c\xe6\x02\x04\x90\x1f\x64\x9e\x29\x72\x4a\x17\x07\x72\x72\x90\x4a\xa1\x67\xe4\x33\xfc\xaf\xfd\xe9\x91\xb1\x7b\xf2\x0b\xa3\x99\xdd\x5f\x5b\x92\xc0\x17\x4c\x9b\x51\x48\x6d\x81\xc2\xc8\xd9\x82\x7c\xf7\xef\x24\xc5\x96\x8f\xc9\xb7\x47\xdf\xfd\x3b\xf9\x3d\xfc\xff\xff\x4b\x7e\xdf\xa2\xa9\xad\x97\x59\x0e\xb5\x90\xae\xcb\xc6\xad\x5e\x65\xa5\x36\x28\x0f\x77\x92\xc9\x62\xa7\x1a\x5b\xbe\xe7\xd1\xbd\x9c\x4c\x46\x9a\xa7\x0c\x43\x6d\x47\x34\xab\xa1\x92\x6d\x08\xd3\xc3\x6d\x31\x2b\xac\x07\x5c\x40\x15\xdb\x4e\x31\xb1\xc8\x1d\x37\x95\x17\xc5\x7c\xc0\xa7\x52\x2a\x90\xc4\x15\x7c\xc5\x62\x73\x2a\xd6\xf1\x9f\x38\xeb\x4c\xbd\xe4\x66\x91\x88\x17\x16\x68\xf3\x7e\xd0\xd0\xa9\x8f\x7e\x0f\xbb\x90\x8d\xc7\x01\x7c\x22\x72\x2b\x94\xa6\x7b\x56\x0b\x9d\x58\x33\x65\x0b\xc1\x31\xef\x59\x5b\xb9\x56\xb8\x49\x5e\xcc\xf5\x78\x19\x14\x3e\xb7\xa0\xd0\xee\x9a\x04\xc9\xdf\x56\xa2\xb2\x9a\x01\x73\x38\x9c\xdf\x40\xd6\xa4\xfb\xe7\x07\xb7\x59\x46\x50\x54\x3d\xd7\x10\x14\x29\xb5\xf1\x53\x41\x65\x11\x74\x5c\xd9\x16\x15\xd3\x07\x18\xb0\xd1\xdc\x04\x5d\xf8\x16\xc2\x1a\xed\xb6\x91\xb6\xc0\x37\xb3\x97\x54\x77\xf5\x40\x96\x88\xe5\xd2\x7d\xda\x9d\x9a\xfb\xc4\x7d\x6c\x4e\x04\x2d\xbb\xd1\x81\x87\x85\x59\x4e\xde\x22\x69\xe1\x53\x6c\x1c\x88\xcc\x32\x10\x3d\x21\x72\xd2\x2e\xfa\x12\x9a\xbe\xac\xcf\x70\x0d\x74\x87\xc1\x5f\xee\xfa\xe7\x37\x25\x40\x87\xcb\xdb\x51\xfd\xd7\xb3\x8b\xea\x3b\xe5\x5f\x06\xff\x75\x76\x73\x7b\xb3\x14\xdb\xa1\xd2\x68\x1b\x27\x98\xc9\x47\xa8\x04\x62\xce\x0a\x2c\x08\xad\x2c\x89\xb9\xde\xa9\x70\x30\x5d\xdc\x39\x58\xd1\xa7\x09\x58\x6f\x71\x73\x6e\x4d\x3d\xe6\xe8\xab\x09\x24\x81\xa9\xbd\x54\x10\x89\xaa\x75\xbe\x3a\x7e\xe4\x46\x66\x5b\x69\xcd\x6b\x72\xe3\x86\x2a\x67\x61\xc1\x50\xc8\xe4\x92\x99\x07\xcd\x43\xeb\x96\x2d\xe1\xb3\xda\x16\xcd\x33\xf4\xb8\x77\x63\x32\x66\xea\xa7\xfe\x93\x55\xc3\x04\xf7\xbb\x7b\xbb\x28\x4e\x02\xa3\x35\x27\xc1\x30\x95\x86\x11\x37\x20\xeb\xac\xda\xd0\x1b\x9f\x4c\x09\x8d\x43\x2c\x08\xc4\xc1\x0a\xa7\x9f\xd8\x44\xbf\xc6\xfd\x04\xbc\x91\x5d\x40\x11\xd5\xa0\x6b\xb7\xb8\x75\xd1\x60\x5e\x08\x0a\x0e\xf9\xb8\x02\x78\x9c\x51\x73\xa7\x6c\x88\xde\x84\x10\xf6\x3d\x92\x51\x08\xa7\xd0\x33\x2a\xd0\x94\x32\xa1\x11\x17\xd3\x5e\x00\xdc\x03\xf9\x87\xa1\xe4\xd2\xb4\x92\xb7\x54\xdd\xef\x36\x44\x60\xeb\x92\x3e\x3c\x2e\xca\x4a\xd8\x54\x5b\xf4\xa1\xf0\x1a\x6a\x89\xa6\xea\xbe\x2d\xd7\xbc\x06\x74\xb1\x64\x74\x7e\x29\x1c\x3c\xc6\xb2\xf1\xb9\x7c\x26\x16\xaa\x6e\x80\x62\xeb\x0a\x8a\x59\xd8\x1b\x17\x92\x8e\x05\xdf\x79\xc2\xe2\x2a\xde\x53\x75\xfc\xab\x08\x01\x8d\x63\x81\x2f\x1a\xe0\x80\xd2\xb9\x84\xc8\xd3\x09\x49\xa9\x58\xe0\x51\x32\xa2\x14\x55\xf7\xca\xd7\x95\x22\x2a\xa5\x49\xd2\x23\x19\xcb\x95\x11\xc0\x7b\xe6\x22\x9b\x1c\x38\x64\xde\x98\x24\x72\xca\x23\x9a\x90\x71\x22\xa3\x7b\x35\x14\xe6\x2a\x11\x53\x14\xc9\xe6\x99\x8c\x98\x52\x81\x04\x5e\xe4\x3a\xd9\x08\x74\x28\x2a\xa5\x59\x96\x72\xc1\x95\xe6\x91\x97\x36\x7c\x7a\x21\x96\xb1\x8b\x28\x98\x7e\x21\x9e\x1f\x86\x6b\x34\x02\x86\x58\x41\xb9\xb0\x18\xee\xc0\xd0\x2d\x04\x88\x8b\xad\x6a\xa3\xde\x1d\x20\x9a\xb8\xed\x19\xe9\xf2\x69\x58\x41\xcf\x27\xf6\x33\x38\x43\xcb\x28\xe6\xba\x4c\xce\x9e\x1a\x3c\x99\x7b\xa0\x4c\x47\x14\x45\xe4\x58\x59\xa8\x73\x06\xa6\x57\x06\xb0\x00\x43\x6e\x81\x55\x58\x45\xd3\x66\x15\xe1\x52\x84\xb2\x01\x55\xef\xb8\x2d\xad\xed\xe4\x72\x73\x49\x3c\x18\x22\x71\xcb\x63\xd6\xde\x5c\x25\x3d\x42\x15\x79\x64\x49\x62\xfe\x8b\x81\x63\x07\x1e\xc7\xd5\xf0\x43\xc4\xda\x85\x4e\x1c\x8b\x6c\xa5\x28\x98\xc4\x2b\xa9\x77\xe6\x2f\xe9\x75\xd9\xe2\x4a\x41\x42\x95\x2b\x88\x2f\x19\x9f\x5f\x19\x28\x3a\xde\x3c\xbc\x0a\x8d\xd7\x75\x91\x25\x83\xaa\x91\x48\xb3\xd5\x32\x6b\xca\x92\x43\x8a\x83\xa7\x0f\xbc\xa8\xed\x67\x7b\x5b\x6a\xd5\x34\x33\xea\x64\xd2\x0c\x89\x62\x63\x33\x7d\x65\x2a\xb5\x6c\x53\x8e\x85\x49\x71\x42\x20\xd5\xe6\x51\xc4\x58\xdc\xa8\x8e\x99\x11\xbd\x3a\x4c\xa7\x2b\xaa\x67\x98\xb8\x98\x4a\x8d\xa5\xa5\x10\xd3\xc9\x99\x5b\x11\x04\x68\x9c\xc8\x31\x5c\x48\x00\xf7\xe4\x12\x9f\x82\xa4\x09\x9c\x37\x8b\xc9\x37\xc1\xfd\xe2\x93\x6a\x3f\x34\x83\x0f\x95\x56\xe4\x15\x40\x3d\x55\xed\xbc\xad\x80\x4f\xe5\xea\x28\x87\xe4\xaa\x92\x09\x1e\xac\xcc\x84\x9a\x6b\x63\x29\xaa\xc0\x0b\xc1\x43\x55\x26\xf1\x74\x3b\xb4\x26\x3c\x54\xa9\xcf\x1d\xc0\x43\x55\xe6\xd9\x12\x99\x29\xa7\x4f\x9a\x51\x66\x26\x75\x2e\xbb\xdb\xda\x10\x91\x04\x45\xbc\x12\x09\xba\x03\xb9\x68\x22\xc4\xd7\x05\x7d\x55\xa9\x21\xf4\xb2\xd0\x57\x95\xc1\xbc\x66\xe8\xab\xca\x50\x5f\x2f\xf4\x55\xc3\x40\x3b\x40\x5f\x61\xac\xc9\xc8\x10\x75\x37\xa6\x00\x51\xcb\xe3\x7c\x72\x03\xf7\xee\xd2\x31\x9e\x60\x1c\x0b\x5e\x63\x4e\x94\xb4\x48\x90\x30\x5a\x9b\xe1\xd2\x16\x9d\x47\xd5\x56\xb4\xe7\x9d\xc1\x5c\xa1\x16\x3f\x4f\xa8\x28\x5f\x1d\x50\x26\x38\x63\x91\x21\x3f\x64\x54\x3a\xa3\x42\xc1\x54\x7b\xd6\xba\x64\x46\x81\x6e\x95\x88\xce\x6d\xc6\x60\x1b\x40\xfb\xeb\xc9\x8d\x5a\x0f\x55\x0c\xc0\x8e\x4a\xac\xbe\x13\x54\xc9\xe7\x0a\xc6\x31\xda\x82\xbd\x2e\x83\xc4\xd8\x4a\x7a\xd0\xe9\xc8\x2a\xf4\x6d\x2b\xb6\x75\x29\xfb\x5b\x8f\x1f\xe5\x4c\x07\x01\xd2\xb0\x4d\x1f\xf7\x35\x0d\x58\x6c\x0b\x1d\x2b\xa3\x5d\x9b\xe9\xe0\x8d\xaa\x48\x4a\xb9\xd3\xf3\x73\xe5\x4a\xaa\x0f\x05\xc6\xf0\xdb\xfa\x3a\x87\x04\x5c\x2d\x5f\x68\x3a\x4f\x58\x8f\xf8\xf9\x71\x43\x41\xc3\xfc\xdb\x6f\xff\xc8\xc8\xb7\x24\x65\x54\x94\xec\x1b\xa0\xd5\x9b\x2b\x0f\xc0\x82\xf4\x8c\x0d\x45\xe3\x56\x90\xc1\x17\xac\xc8\xe0\xc2\x4e\xcf\xc4\x44\x3a\x7b\x09\x94\x05\xa2\xd1\x8c\xa8\x7c\x8c\x75\xed\x02\xfb\x96\xd3\xf3\xce\xe5\x14\xe2\x25\xe0\x26\x76\x83\xde\x18\x24\xad\xc2\x70\x3a\x82\xa4\x95\xa6\xb6\x07\x49\x6b\x3e\x7d\xaf\x16\x24\xad\xb2\xe7\xdd\x40\xd2\x9a\xb6\x7c\x03\x90\xb4\x52\x33\x5f\x0d\x48\x5a\x65\x45\xbf\x1a\x90\xb4\xca\xbc\xf6\x20\x69\x5f\x09\x48\xda\x6a\x3e\xd2\x08\x03\xd6\x7c\x78\xd7\x83\x01\x6b\xd4\xaf\xda\x59\xc4\xb6\x98\x0b\x20\xcd\x3d\x33\x0c\x58\x69\x02\xfb\x18\xcd\xf5\x63\x34\x1b\x89\xcf\xf6\x6d\x86\xe7\x02\x37\xab\x17\x59\x47\x20\xb0\xd2\xfe\x74\x36\x7d\xee\x82\x12\x9f\x36\x2a\x18\x3c\x30\x5d\xcd\x21\xfd\xd2\x2a\x2a\x0b\x1f\x68\x24\x23\x07\xe0\x82\x9a\x53\xe8\x7d\xde\x53\xee\x06\xd1\xc5\x95\xe5\xf5\x3e\x1b\xa4\xc5\x5d\x1a\xe7\x1b\x6a\xe3\x6e\x41\xaf\x2e\x01\x73\x4d\xe7\x88\x1b\x04\x38\x49\x9a\x0d\x83\x50\x96\x7b\x37\xcd\xae\xba\xc8\x3c\x3c\x45\xa9\x4a\xb8\xcf\x2d\x2d\xaa\x84\xa3\x6c\x5c\x49\xa9\x25\x54\xbb\x2f\xa7\x5c\xe9\xac\x35\xb2\xa6\x36\xc2\x6d\xdc\xb0\xf3\x7c\x93\x44\xf8\xe9\x66\x9f\xa5\x2c\x95\xd9\xaa\xb0\x9e\xc6\x2f\x2d\xaa\xf7\x26\x9f\xb2\xf9\x8c\xa5\x46\x08\x1a\xad\xdb\x48\xd7\xfd\x2e\xc2\xfc\x30\xff\xad\xa1\x54\x7c\xe0\x64\x35\xef\xc6\xb6\xfc\x7b\xd7\xed\xde\x76\x9b\x5d\x9d\xf9\xf5\xac\xf8\x0e\xc6\x6f\xb9\xb5\xc4\xbe\x54\x72\xa5\x03\x7d\x37\x06\x6b\xf8\x58\x99\x0d\xc3\x31\x5a\xa0\xc1\xea\x1d\x82\xb7\x56\xb1\xec\x20\x94\x51\x4b\x1e\xd2\xfa\x08\xca\xeb\x2e\x13\x56\xb3\x66\xaf\xbd\xf2\xca\x06\x71\x3e\xed\x65\xec\xc3\x9f\xbb\x5f\xc8\xda\x4f\x8f\xa8\x20\xa4\x55\xf1\x94\x27\x34\x43\xa3\x2b\x02\xec\x53\x41\xe8\x04\x3a\x5c\x00\x34\x1a\x40\x42\x1a\xf5\xe0\x81\x26\x3c\x26\x2e\x00\x17\x43\x63\x30\x06\x94\xf4\x2f\x4e\x09\x46\x8c\x6e\x12\x2b\xee\x0f\x94\xb7\x01\x63\xb4\xa8\x5f\xcc\x22\x94\x3d\x08\xfd\xa2\xc2\x4d\x8a\x61\xc0\xb8\x0d\x06\x6b\xda\x5c\xa7\xb8\x6e\xb1\xb3\x79\xd6\x1a\x12\xda\xc5\x68\x1b\xe9\x9c\x26\xa0\x15\x87\x75\x8d\x2a\x1b\xf7\x6e\xbc\x68\xc8\x34\xed\xe6\x15\xe0\x42\xff\xe9\xdf\xd6\x89\x91\x01\x0d\xce\x1e\x0a\xa8\xc5\x40\xa3\x88\x29\xb4\x23\xdb\xd5\xc6\x3a\xe1\x79\x96\x6c\x73\x64\x0d\xe7\x33\xf3\x36\xf7\xa1\x07\x53\x8c\x0b\xce\x80\xd2\xd5\x2c\x93\xf9\x74\xe6\x4c\x55\x86\xc5\x98\xa9\x35\xed\xe5\x4f\x35\x7b\xf0\xda\x7b\xf9\x7d\xce\x93\xcd\x0c\x81\x37\xa5\x02\x15\x9f\xce\x6e\x89\x9a\x79\xe6\x36\x86\x66\x1b\x37\xb6\x3e\xe8\xee\x7d\xda\x6f\xbd\x4f\x02\xba\xe9\x39\x00\xb1\x89\x4c\x12\xb0\xaa\x2b\x96\x3e\xb4\xd5\x19\x87\x09\xdf\xf2\x0d\xab\x29\xc3\xd7\xe0\x9b\x53\x9a\xa6\xf3\x4e\xe2\xea\x15\x4a\xd2\x8a\xb8\xd1\x57\x1d\xf3\x18\xb2\x27\x85\x2f\x77\x5f\xda\xe4\x9f\xeb\xb0\xea\x6f\x2c\x70\xd2\x05\xf2\xed\x2c\x78\xd2\x2d\xc9\x33\x07\x50\x36\xcd\x63\x0d\x16\x50\xca\x2a\x2a\x2e\x70\x17\x99\x82\x4a\x5a\xdf\xcc\x6f\x28\xfa\xa5\xfc\x23\x57\xc0\x70\xbc\x28\x42\x97\x51\xdf\x09\x39\x09\xa0\x51\x5b\x23\x10\xf8\x6b\xcc\x5f\xa0\x95\x21\xf6\x1d\x86\x56\xba\xf0\x49\x88\xbb\x66\xf1\x01\x8d\x16\x51\xc2\xa3\xe0\x3a\x99\x66\x74\x3e\x6b\x62\x37\x6e\xd9\xf7\x28\x43\x2f\x85\x32\xd4\x56\x62\x61\x9d\xb8\x71\x47\x57\x50\xcb\x7d\x8f\x7e\xd4\x80\x7e\xd4\xf3\xf8\x1e\xa2\x28\x16\xf1\x82\xb0\x11\xf5\x73\xb7\x87\x40\x7a\x01\x08\xa4\x4d\x0e\x5f\x81\x6f\x54\x3a\x76\x7b\x58\xa6\x77\x9d\x60\x99\xfc\x25\xf8\xaa\x90\x76\xda\xcf\xe3\x0b\x23\xb8\xd4\x07\xf6\x92\x30\x4c\x0d\xe2\xc2\x3a\x72\xd3\x32\x1c\xa6\x65\x74\xd1\x69\x5d\x5e\x16\x15\x69\xbd\x95\x59\x0b\xf0\xa8\xf1\xee\x7a\x25\xf0\x47\xed\xdb\xf0\x4a\xce\xcd\x2e\xb3\x7b\xd6\xab\x86\x15\x66\xf8\xac\xa3\xdd\xac\x97\xec\xe3\xe9\xe1\x6d\x25\xfc\x14\xa5\x48\x36\x4b\xfa\xe9\x3b\x7f\x39\xcb\xc8\x4c\x26\x31\x86\xa4\x05\xab\xe5\x3b\xf0\xa1\xe6\x7e\x81\xdc\x66\xdc\xcc\x59\x84\xda\x56\x51\x4f\x64\x59\x6a\x8f\xdf\xc4\xb7\x9e\xde\x13\xc8\xbf\xbb\x4d\xf1\x09\x57\x76\xd3\x34\x9f\x15\x83\x5b\x26\x7a\x6c\x98\xea\x13\xf4\xb8\xd4\xa3\xe8\x66\xd7\xc9\xab\x58\x25\x96\x0d\x02\xbe\x6a\x85\x5f\xb6\x07\x43\x4a\xe9\x97\xd1\x9c\x66\x34\x49\x58\xc2\x55\xfa\x64\x51\xa7\x27\x65\xd7\xb2\x39\xab\x99\x44\xfb\x8c\xc8\xd3\x31\x92\xa2\x1b\x88\x2d\x37\xa5\x25\xc9\x72\x11\x42\xb9\xf9\x8d\x21\xae\x1c\x51\x0e\xf7\x02\x98\x74\xa2\x19\xd4\x36\x9b\x50\x9e\x09\xa6\x5a\x2b\x49\xb1\x28\xcf\xb8\x5e\x8c\x6c\x61\xae\xee\x07\xee\xc6\x7e\x79\x62\x3f\x5c\xee\x8d\x77\xf9\xef\xae\x3f\x5f\x08\x6c\xce\x32\xa8\x32\xe0\xf0\xf2\x83\xe2\x63\x16\xdf\x80\xf9\x52\x05\x10\x67\x5b\xbb\xb6\xdb\xe2\xc3\xe9\xe3\x28\x48\xd9\x19\x45\x55\xe2\x58\x75\x58\x9b\x70\xb6\x96\x4d\xf2\x89\x91\xa6\x5a\x3c\xde\x4f\x00\x52\x6e\xe3\xf2\xb1\x69\x33\xe0\xc0\x6d\x0d\xc6\xc2\x62\x63\x82\xa4\x7b\xab\x54\xb5\x8c\x93\x0a\x21\x75\x73\x79\x9a\x25\x83\xed\x07\x5f\x75\x18\x71\xd0\xc9\x8e\x86\x6d\x0e\x7a\x96\xe5\x73\xcd\xc7\x75\x28\xa8\x1d\x16\x2d\xeb\x27\x90\x6e\xee\x6c\xfc\xa5\x6e\xb1\x92\x59\x89\x13\xdb\xd9\x19\xf9\xdf\xe2\xa6\x39\x44\x2d\x0b\xc5\x13\x24\x8a\x5d\xa6\x1c\xa8\x10\xcf\x0f\x58\x7f\x0d\x75\x96\x6d\xb3\xef\x5d\x68\x0a\x85\x7a\x68\x68\x22\x3a\x1c\x8a\xbe\x22\x8f\x8c\x08\x86\x4b\xd8\x54\xe9\xcc\x9b\x94\xa1\x74\xc4\x98\x99\x9e\x7c\x1c\x8d\x11\x1e\xb8\x56\xbe\x7a\x09\xf6\x31\xa1\x89\x62\x3d\xd3\x30\x14\x3d\xd3\x12\x02\x3c\x29\x79\xcc\xe8\x7c\xce\xb2\xa1\xb0\xe9\x02\xe0\xed\x90\x32\xc1\xf6\xd7\x92\x7e\xe2\x58\x95\x0d\x5d\xa8\x42\xf0\xbf\x97\x54\xec\x83\x52\x8a\x51\x14\x80\xad\x40\x70\xa1\x2b\x42\xb1\x4c\xd6\xd9\x87\xaa\xd7\x43\xd5\x9b\xd7\xe6\x35\x86\xab\xfb\xf3\xb4\x6e\xc8\x7a\xdb\xf6\xef\x42\x8a\xd9\x61\xe8\xfa\x0b\xc7\x78\x3f\x4d\x78\xf7\xcb\xc6\xe3\x3f\x45\x28\xfe\x3e\x60\xfd\xed\x05\xac\xb7\x1f\xdb\xb5\x82\xd6\x57\xa0\x07\xb9\x5e\xb6\x8d\x10\xf6\x88\x36\x4f\x1a\x98\xe4\xdd\xf6\xc1\x17\x1d\x23\x85\x0b\xc8\x9d\x7d\xb4\xf0\x13\x45\x0b\x37\x2c\xf1\x7a\x11\xc3\x1b\xe9\xf7\xcf\x1f\xcc\x58\xad\x4b\xfc\x94\x01\x8d\x2b\xc2\x3c\x54\x3e\x1e\x3d\xf9\xd1\x6b\x9c\x73\xd7\x13\xf8\xb3\x27\x0a\x14\x89\x32\x43\x67\x63\x16\xc7\x60\x43\x36\xca\x2a\xa4\x89\x16\xb4\xe3\x74\x01\xc3\x7c\xa9\x32\xc4\x4e\x13\x29\xa6\x8a\xc7\x2c\xa8\x04\x5e\xd2\x54\x20\x65\x15\xf6\x37\x49\x58\xe6\x4c\x90\x19\xf9\x46\x71\x11\xb1\xd0\x2c\x99\x91\x58\x32\x25\xde\x6b\xd4\x0c\xa8\x58\x90\x7b\x21\x1f\x13\x16\x4f\x61\x87\xaa\x83\x39\x20\x9c\xf5\x08\xd7\xfe\xb3\x0c\x72\x5c\x65\xae\x87\x66\xec\x10\x58\x82\x22\x20\xb3\xdf\x06\xf5\x13\x7d\x33\x1f\x0e\x09\x39\x13\x64\x42\x23\xdd\x2b\x57\x6e\x8e\x25\x16\xc4\x7b\x60\x22\x9c\x78\xd1\xc8\x93\x05\xb3\x36\x06\xaf\x56\xa8\xcd\x9d\x37\x43\x00\xfd\x84\xd3\xad\x42\x53\x1e\xe8\x36\xc8\x7c\x9f\x73\x65\x7d\x98\x88\xe6\x8a\xe3\xb5\xf0\x17\x1e\x92\x18\xca\x82\x61\xb4\xe6\x92\x9a\xef\xb4\x32\x95\x75\xc7\x52\xc4\x11\xd9\x6a\x64\xd6\xce\x0b\xed\xe2\x72\xc7\xf2\x51\x28\x9d\x31\x9a\x5a\xdb\x9a\x61\xde\xe0\x83\xc6\x28\x22\x33\x7a\x9e\xe1\xa5\xbd\xce\x16\x9f\x73\x71\x6f\x76\xb7\x00\x61\x86\xea\x8e\xd0\x73\xc3\xa6\x7d\xcf\x05\x2d\x45\xc8\x6f\xb0\x6b\x4b\x30\x86\x97\x7b\x26\xc6\x8b\x36\xfc\x6b\x4d\x57\x41\x52\xaf\xa1\x89\x13\x05\x25\x2d\xc9\x18\x2a\x2e\x1b\x56\xe7\x60\x60\x35\x05\x6b\xd8\x8c\x25\xf3\xa0\x2a\xdc\x9c\x66\x5a\x39\x02\x42\x30\x46\xc3\x1d\xd2\x5c\x60\x26\x3e\x6a\x88\x8f\x16\x73\xcf\x1a\x42\x8b\xc6\x0f\x87\xe2\x4c\xbf\x57\xe6\x7c\x49\x31\x4d\x16\x84\xc6\x0f\x5c\x15\x80\xd8\x91\x14\x2a\x4f\x59\x56\xa9\xb6\x8a\x51\x32\x84\x3a\x5a\x31\x63\xb3\xa0\xb4\x3c\x76\xd5\xbf\xcd\x8f\x63\x36\x31\xf7\xde\x9c\x66\xca\xb9\x54\x1a\xdc\x21\x76\x73\x63\xb3\x56\x2f\x76\x26\x7f\x0a\x8f\x1d\x62\x36\xe3\x09\xa5\x56\x77\x39\xaa\x9e\x4f\x59\x94\xc8\x6f\x8b\x50\xae\x4d\x8a\x2c\xbf\x98\xec\x2a\x9c\xae\x82\x8a\x70\x70\x45\x39\xba\xbf\x4d\x3f\x4e\x06\xc2\xc1\xad\x65\xfe\xa9\x4c\xd0\x8e\x1a\x6d\x68\xe1\xd9\x64\x1c\x2e\x05\xa5\xa9\xe6\x91\x15\xb7\x64\x66\xd9\x93\x65\x5f\xed\x5b\x7b\xba\x25\x34\xaa\x8a\x68\x52\xdf\xe1\x25\x16\x77\x7c\x7f\x39\xef\xb3\xc7\x0d\xdb\x5e\x1a\x6d\x1e\xc9\x24\x59\x07\xe8\xb6\x32\xf3\x93\xe2\xf3\xe5\x23\x2a\xfa\x31\x1b\xe0\xf6\x02\x4e\x0d\xfa\x2d\x68\x62\x25\x0b\xa5\xed\x2e\x85\x2f\x21\x0f\x5d\x58\xbf\xc8\x50\xc8\x09\x40\x21\x27\x6d\x1e\x8d\x79\x26\x53\xbe\x0e\x84\x15\x1a\xf9\xaf\x5d\x04\xd2\x0a\xdf\xb3\x8b\x53\x82\xaa\xbd\x48\x5e\xb6\x47\x88\x55\xa5\x02\xe5\x8c\x25\x67\x28\xa5\xf3\x8d\x16\x7c\x95\x96\xdc\x27\x29\x9a\x28\xec\xea\x29\x2c\x0d\x7d\xcf\x16\x80\x70\x93\x3c\xd2\x45\x11\x93\xdf\x06\x4e\x24\xd6\x22\x87\x3b\xf3\xfa\x99\x98\xc8\x35\x0e\x67\x11\x43\x6f\x4f\x1f\x75\x34\x1b\x9c\x3f\x1f\x0f\x86\xbb\x8f\x6b\xda\xe5\x3c\x9e\x34\x11\xf5\xda\x27\xd3\xad\xe0\x53\x8a\xec\x21\x13\x09\xa5\xf5\x75\xee\xd6\xf2\xd1\x0a\x5a\x24\x30\x9c\xe5\x4b\xf5\xb9\x44\x87\x3b\x5f\xa3\x4a\x3b\x04\x35\x43\x17\x48\x70\xd5\xdc\xea\x33\xac\x99\x3d\x24\x9d\x16\x6b\xcb\xa4\xa1\xf5\x40\x96\x5c\x8f\x1e\x5a\xa9\xf9\x84\xae\x44\x90\x5c\x47\x23\x99\x18\x49\xc8\x96\x20\xf7\x5e\x49\x1b\x9e\x39\xe1\x09\x53\x87\xe4\xac\x41\x3b\x71\xc1\x91\x20\xa3\x01\x00\x25\x84\x89\x38\xe9\x29\xcf\x78\x50\x04\xc8\xc9\x48\x84\x03\x48\x71\x68\xf3\xc8\x98\x19\x73\x84\x3e\x17\x89\x88\x4a\x10\x99\x91\x71\xac\x53\x6f\x84\x55\x0d\xe6\x3b\xc3\x0b\xb8\x4d\xa3\x8d\xd9\x9c\x89\xd8\x7f\x20\xd1\x5f\x46\x6d\x9d\xb3\x62\x54\x2d\x5b\xba\x0b\x58\xf3\xee\xb1\xa7\xae\xd7\x5b\xf3\x45\x7d\x6f\x1a\x47\x78\x5b\x6e\x7d\xed\xd1\x79\x29\x7f\x7d\x07\xd2\x47\xf8\xd4\x59\xb3\x28\x99\x64\x0c\x0c\x9e\xa9\x4f\xe6\x12\x31\xcb\x94\x96\x12\xee\xbb\x9b\xd3\x1f\x8f\xee\xce\x08\xd3\x11\x94\x71\x1e\x8a\x48\x3d\xf4\x8c\x78\xfc\xb7\x9c\x69\xf3\x73\x4b\xb0\x33\x4f\x99\x50\xc0\x09\xb8\xae\xe5\x08\x37\x2f\xa4\x5b\x18\xf3\xdf\xd3\xf2\xf7\x4b\x48\xbe\x16\x3a\x0f\xb4\xeb\x30\xaf\x81\x4c\x01\x2f\xd5\x16\xed\x68\xa0\x18\x74\xdf\x0e\x9a\x2a\x27\x6d\x10\x2a\x27\xfe\x9a\x8b\x35\x85\xae\x93\xe2\xa3\x60\x14\x2d\x32\x5d\x3a\xa7\x00\x28\xb6\x5e\x0c\x1e\x7e\xd3\xd8\xfa\x2a\x26\x52\xa4\x24\x58\x47\x37\x29\x8a\x4c\x11\x9d\x31\x06\x2c\xc4\xd3\x93\xbd\xeb\x6d\x0a\x98\x9f\x58\xf0\xd1\xe1\x50\x7c\x76\x06\xd8\xe2\x57\xe5\x9a\xc0\xb8\x4e\x8f\xb3\x56\x6e\x05\x9a\x8d\xb9\xf2\x3f\x00\x5a\xae\xca\x13\x8d\x75\x0f\x26\x5c\xd0\xc4\x0f\x14\x9f\x34\x71\x89\x8c\x8a\x68\x76\x21\xe3\xed\x80\xa3\x26\x23\x96\xac\x23\x89\x9e\x4d\x06\x89\x32\xf4\x1d\xdd\xb7\x9c\xce\x4d\x2a\x7b\x14\x93\x09\xaa\xd8\x50\x8c\x2a\xb2\x56\xbf\x04\xab\x28\x30\x02\x26\xbb\x6a\xe4\x24\x26\x47\x99\x5d\xb4\x92\x3a\x5a\xec\x30\x64\xc9\x87\x23\x40\x2f\x84\xea\xa1\xc8\x72\x01\x48\x9e\xde\x80\x4f\x89\x62\x19\x47\x4b\x7a\x24\x05\xca\x00\xd6\x14\x33\x35\x6c\xc2\x48\x7e\xe0\xc5\x91\x02\xf4\x33\x99\x2b\x88\x7e\x4a\x99\x36\x17\xd4\x37\x50\x33\x0c\x5d\x28\x3d\x32\xcf\x78\xca\x35\x7f\x60\xea\x43\xc3\xd6\x9d\x50\x4d\x13\x39\xed\x67\x9a\x4f\x68\xa4\x6f\xe9\x56\x1a\x38\xb5\xcd\x6c\xea\x8e\x77\xc3\x20\x67\xa7\x66\xf1\xa7\x4c\x40\xc6\x72\x0c\x3a\x79\xf3\x11\x86\x27\x1b\x71\x6e\xa8\x5d\x10\x21\xda\xbb\xf2\x16\x0b\x9a\x6b\x99\x1a\xfd\x96\x26\xc9\x02\x50\xdc\xcd\x93\x19\x55\x33\xb7\xd1\x08\xfd\xde\xe5\x6e\xb2\x8b\x7b\x42\xa3\x19\xbb\xd1\x54\xe7\x8d\x26\xc7\xd5\x65\x8a\x4e\xfa\x27\x3f\x0c\x46\xa7\x67\x37\xfd\xef\xcf\x07\xa7\xc1\x7c\xec\x93\xcf\x67\x37\x37\xf5\x5f\x7f\x38\xbb\xad\xff\x78\x75\x79\x75\x77\xde\xbf\x6d\x6a\xe5\xfc\xf2\xf2\xc7\xbb\xab\xd1\xc7\xfe\xd9\xf9\xdd\xf5\xa0\xe1\xd3\xbb\x5b\xff\xd0\x3e\x6b\xac\x74\xd4\x32\xda\xea\x39\x3b\x20\xe5\x17\x8f\xc9\x5d\x15\x46\xd2\x86\x60\x60\xaa\xd6\x23\x55\x86\x55\xd1\x71\xc2\xe2\xa1\x20\xee\x73\x33\xf7\xb6\x4f\xd1\x49\x15\xcd\x18\x49\xa4\xbc\xcf\xe7\x96\x83\x61\xbc\xb7\xb0\x95\xbd\x98\x0a\x5a\xfb\xe1\xec\xf6\xb8\x0e\x67\xe9\x1b\x0b\x32\xb2\x1d\xa9\xc3\xb8\xa8\xe3\x9a\x60\x32\x99\x67\xec\x01\xce\xa4\xf7\x55\x06\x3d\xf8\x0d\x58\xd6\x0f\xb6\x46\x85\xae\x74\x13\xc7\xb6\x0e\x9c\x9b\x58\xd0\x70\x79\xfb\x96\xad\xa6\x5f\x0e\xc4\xef\x26\x63\x16\xd1\x1c\x5d\x79\xe6\x3a\xca\x32\x99\x85\x03\x2e\xb6\x7d\xcb\x46\xdf\xd5\xa5\x8c\x72\xa5\x1f\x05\x67\xc4\x7c\x12\x9c\x1c\xa3\x7d\x83\x66\xee\xb0\x63\x67\x16\xe3\x9b\x2b\xf4\x36\x14\xfe\x17\x80\x45\x33\x9c\xdb\x63\x7c\x72\xf0\x0d\x52\x4d\x1e\x19\x04\xfd\xe7\x16\x3c\x1b\x35\x64\x73\x02\xa1\x3b\xb4\x6a\xbb\x8a\x0d\xa5\x64\x80\x56\x96\xb9\x0b\xb1\xd8\x7c\xaf\x58\x13\xbb\xdc\x22\x72\xfb\x14\x1b\x05\x1e\xea\x1c\xb5\x30\xe2\x16\xff\x81\xe3\xd9\x0d\x76\xec\x25\x52\x50\xfd\xde\x58\xc1\xd2\x0d\x73\xed\x32\x1e\x97\xad\x56\x82\x8b\xeb\x3e\xb0\x12\xa4\xd8\xca\xb5\xba\x95\x31\x5d\x18\xe2\x80\x08\x09\x95\xcf\xe7\x32\xd3\xa4\xa5\x0d\x8c\xf6\xc3\xf1\xc1\xcd\x60\xe7\xe1\x59\x14\x34\x62\xe4\x00\xd5\x80\xe8\xda\x2d\x81\xc7\xae\x6b\x71\xee\x43\x24\x00\x50\xd7\x3c\xec\x47\x5a\x52\x7c\x4b\x14\xda\x24\xa2\x6e\x13\x17\xb5\x56\x19\xc1\xb6\x11\x34\x54\x14\x0c\x23\x73\xd9\x44\x8f\x1a\xfd\x33\x4b\x4c\x91\xa6\x45\xd1\x96\xf7\xc8\xa7\xb3\x1d\xb4\xd8\x5d\x9e\xff\x83\xf5\x9f\x19\x21\x3e\xd0\xe5\x33\x29\x35\x4a\x92\x85\xb6\xe1\x71\x61\xc0\x10\x60\x3b\x45\x8c\x98\x42\x5c\x33\xd2\xf9\xbd\x90\x8f\xc2\xdb\xe0\xd5\xe1\x50\x0c\x28\xd4\xf4\xf2\x2a\x83\x0d\x81\x40\x79\x7d\xa5\xa4\xbe\x74\x5f\x36\x92\x4d\x06\x7f\x09\x25\x85\x8b\xf2\x3f\x3f\xdd\x96\xff\x55\x92\x2a\xce\x6f\xcb\xff\x5a\x2e\x55\x04\x0d\xd7\x25\x89\x4f\xb7\xc7\xe4\x13\x64\x46\x64\xe4\x76\x46\xf1\xbe\x3d\xbf\x3d\x26\xe7\x4c\x29\xf8\xa5\xe1\xee\x41\x77\x22\x71\xd3\x2f\x30\x9f\x59\x45\xaf\xab\x2e\xa0\xaf\xb1\xf4\xac\x71\x1a\xed\xa0\x53\x05\xf3\xb0\x65\x64\x13\x5f\x2c\x94\xc5\xa4\xf4\x5d\x17\x16\x84\x06\x7e\x27\xed\xe2\x84\x2d\x16\x92\x66\x73\xeb\x84\xc0\x79\x16\x29\x42\xe0\xc7\x36\x5d\x1d\x92\x9f\x9d\x91\x0b\x42\x5e\x8a\xfa\x6f\x1a\xaf\xed\x84\x2e\x1c\xf0\x4a\xd3\xc2\xee\x02\xcb\x64\xd7\x41\x30\xcb\x17\xd8\xe7\x6d\x37\xac\x72\xc9\xd6\x20\x04\x1a\x9f\xd7\x88\xf8\x3b\xf1\x1f\xdd\xb0\xe5\x21\xc1\x1f\xa1\x9c\x0b\x22\x9a\x83\x98\x63\x2e\xa3\xff\x81\x9b\x85\x01\xe7\x0e\xa8\xdd\x96\xd7\xb0\xce\x62\xc3\x80\xc0\xd9\x89\xf1\xe8\x64\xc2\x93\x04\x84\xa9\x43\xd2\x87\x6a\x68\x50\xe7\xca\xc8\x13\x2e\xb0\x8a\x4f\x85\x5c\x15\xcb\xd1\x42\x4c\x51\x40\x4c\x37\xed\xc4\xa4\x80\x9a\x8a\x74\x9d\xdd\x50\xd4\x0e\x52\x37\x0d\x73\xa6\x75\x90\xbe\xee\x09\x9b\x6b\xd8\x29\x5e\x22\x2e\xaa\x36\xdc\xe0\xc3\x7f\x36\x0f\xfd\x53\x4e\x33\x2a\x34\x44\xfb\x58\xf5\x25\x63\x41\xd4\x29\xfb\x02\xf1\x74\x02\x6d\xde\xf0\x53\xb8\xb9\x2e\xba\x61\xca\x1f\x98\x20\x3c\xee\x11\x7e\xc8\x0e\x7b\xb6\xb0\xb9\xca\xc7\xc5\x9b\x33\x23\x7e\x0d\x45\x2d\x0d\xf1\x90\xf4\x13\x25\xed\x17\x4c\x44\x09\x54\x1f\x0c\x02\x93\x3c\xe5\x5b\x0f\xda\x78\x01\x4a\x1a\x6c\x65\xd1\xbc\xb4\x0f\x82\x0f\x87\x82\x2a\x74\xff\x27\x70\xd2\x8b\xdf\x9b\x2a\x8c\x96\x42\x42\x9e\x10\x61\xb6\x76\x0d\x3d\xd9\x26\x61\xe9\x89\x65\x1b\x04\x6f\xc0\xc6\x14\xe9\xa1\x41\xa2\x25\xf9\x86\x6a\x92\x30\xaa\x34\xf9\xee\xc3\x5a\x61\x30\x6e\x82\x05\x77\xb5\xc7\xb7\x88\x11\x76\x41\x86\x6d\xc5\xd2\xa1\x34\x10\xa1\x44\xb0\x20\x61\xa1\x67\xf6\x59\x4b\xf2\xc0\x55\x0e\x05\x1d\x83\xb4\x06\x2c\xc9\x87\x09\x38\x10\xa7\x89\x7a\x67\x0b\x1f\x71\x90\x62\xd6\x53\x5c\xd4\xf7\xae\x52\x96\xd5\x40\x39\xea\xb8\x90\x79\x5f\x84\xfb\xcd\xa8\x1e\x0a\xcb\x59\x5d\x84\x4c\x50\x7c\xab\x9f\x24\xe5\x10\x3b\x0a\x51\xa4\xc2\x4c\x18\xca\x51\x1e\xfa\x05\xba\x00\x1d\xd6\x47\x65\x95\x0b\xd4\xfb\xc3\x62\xd4\xdd\xa1\xf0\x69\xcd\x61\xdb\x8d\xe2\x62\x93\x29\xfd\xd9\x34\x89\xc6\xee\xcf\xb1\x2e\x68\x07\x6d\x82\x35\x0d\x79\xc5\xc1\xaa\xbb\x2f\x96\x28\x17\xbb\xee\xa0\xbb\xae\xd1\xec\x0a\x80\x6b\xf6\x51\x36\x78\x16\x5a\x36\x37\x90\x2d\xb6\xb1\x62\xf8\xf0\xc0\xe7\x72\x6e\x97\x86\x7e\x16\x43\xb8\xff\x6a\x2e\x58\x84\xcf\x3b\xd6\x01\x36\x7d\x1e\x07\xd1\xbc\x41\xa8\x23\x44\x7b\x3b\xc6\x67\xdf\x6c\x71\x32\xcf\xdf\xf6\xf4\x7b\xc5\xfc\xdd\x54\x7c\xbc\x5f\x7d\xe2\xed\xc2\x5e\x3f\xfe\x2b\x8d\x98\x88\x16\xd8\x93\x4b\xcf\xac\xe7\x5d\x3b\xb4\x3a\x0a\x7e\x8b\x46\xf1\xd0\x96\xf8\x3d\x24\x03\xb8\x68\x5c\xc5\x5f\x3a\x71\xbe\x97\xe0\xe5\xa1\x30\x9a\x89\x4b\xd3\x0c\xda\x2f\x93\x78\xd3\x09\x40\xcc\x87\xad\xdc\x56\xe9\x6a\xd8\xe4\x36\x6d\xc2\x41\x4e\x40\x1b\x00\x1d\x4a\x06\xd3\x63\x12\xcb\xe8\x9e\x65\x47\x19\x8b\xb9\x3a\x86\x30\x02\xdd\xea\xbf\x4c\xa9\x68\xf5\xb5\xec\xbe\xfa\x7e\xbd\x56\x6e\x0a\x65\x6c\x21\xce\xdb\x15\xa8\xea\x11\x3e\x01\x75\xc2\xa5\x7c\x60\x1e\x88\xcb\x6a\x65\x42\x67\x8b\xb9\xe4\x42\x7b\x7b\x60\x65\x21\x9c\xa6\x61\x84\xb6\xb6\xa8\xe7\x6c\x17\xe1\x46\x1b\x4e\xfb\x76\xc6\x14\x73\xb1\x15\x38\x29\x2d\x09\x3a\x94\x90\x5d\xcc\xa9\x9e\x29\x48\x5a\x29\xaf\x81\x55\xba\xe0\x53\xb3\x42\x74\x0e\xa1\x19\x68\xe6\x29\x3e\xf2\xa9\x15\x4a\xf3\x24\x19\x0a\xc1\x58\xac\x08\xe4\x97\xbc\x6f\x4c\x8e\x32\x9f\xf6\x08\x8d\x63\xf2\x3f\xbf\xf9\x78\xfe\xcb\xed\x60\x74\x76\x01\x86\xfb\xb3\xf3\xc1\x87\x9e\xff\xf1\xf2\xee\xd6\xff\x8a\x26\xaa\x07\x96\x91\x94\xde\x83\x8a\x27\x14\xca\x7f\x90\x80\x10\x8e\xd4\xa5\x8d\x99\x27\x8a\xb9\xa0\x5e\x2b\xa6\x78\xa4\x14\xbb\x87\xad\xf5\xe7\xd0\x70\xba\x86\xf2\x7b\xed\x3f\x59\x4e\x83\x8e\x78\x7c\x17\x4e\x0c\x4c\x99\xd0\x86\xc7\x58\x93\x69\xa1\xfb\x16\x04\xc7\xc4\x94\x8b\xb6\xd0\x43\x26\x1e\x9e\x52\x88\xff\x91\x2d\x7e\x32\xea\xf5\x15\xe5\xdd\xc1\xa9\x07\xe2\x81\x67\x52\xc0\xd4\xbc\x5d\xd0\x9f\x18\xa3\xa7\x53\x55\x3d\x54\x0a\x65\x61\x08\x47\x99\xb7\x86\xb7\x36\xe1\x3d\xbc\xf8\x74\x6d\xa6\x3f\xfb\xa2\x33\x97\xa0\xe8\xc1\x0a\x1e\x28\x4f\x20\x34\xd9\x5d\x34\x05\x0d\x0e\xc5\xed\xe5\xe9\xe5\x31\x61\x09\x1d\x4b\x07\x7a\x3d\x03\x98\x2b\x6c\xc2\x2e\x18\x54\x7e\xf7\x0d\x95\x92\x53\x7b\x64\x5e\x24\xa7\x86\x46\xb4\x43\x6c\x63\x55\x61\x58\x99\xd5\x53\x3b\x77\xab\x02\xda\xc9\x5e\xc9\xac\xcb\xf5\x6f\x5e\x83\xa5\x93\x73\xa3\xc8\x55\x38\xaf\xbd\x9b\x27\x8c\x62\x4d\x46\xf4\xad\x59\x87\x88\x8d\xd5\x4d\x92\x52\x89\x17\x73\x70\xd4\xa1\x8d\x36\x28\xde\x94\x82\xfc\xf8\x67\x45\xc6\xb9\x1e\x8a\x72\x1b\x52\x90\xfe\xcf\x37\xe4\x7b\xaa\xa3\xd9\x87\xa1\xb8\x34\x6a\xe6\x8f\x7f\x6e\xc9\xa2\x5f\x1b\x84\xc4\xac\xc9\x29\xd5\xf4\x5c\xd2\x98\x8b\x69\x13\x02\x49\x61\xfa\x1d\xdc\xf6\x8f\xc9\xa5\xd5\xe1\x7d\xe2\x6b\x81\x1a\x14\x34\x04\x0c\x19\x26\xe2\xb8\x08\xb0\x72\x51\x46\x69\x40\xcd\x0c\x2e\xac\xa1\xb8\x45\xe8\x15\xc3\x55\xb9\x26\x73\x69\x71\xc2\x8d\x56\x86\xa0\x34\xe8\x0b\xb0\x96\x44\xb3\x3a\x40\xc6\x7e\x33\xac\x3c\x06\xf2\x4c\x9d\xd9\x0f\x05\x28\xe8\x3e\x19\x31\x91\x11\x4d\x20\xfc\xf0\x20\xb0\xe9\x19\xb5\x5d\xe6\x90\x19\x06\x71\x3f\x62\x51\x8e\x12\xf6\xc9\x8a\x5e\x28\x0b\x37\x0a\x0c\x00\xb0\x8f\xd6\x23\x9d\x4a\xc3\x71\x0e\x87\xe2\x6c\x82\xd1\x89\x09\xae\x8e\xf9\x90\x09\x70\xca\xbb\x65\x31\x4f\x1d\x3f\x82\x5a\xb5\xe8\x9b\xa5\x11\xf8\x3f\xc4\x02\x22\xd5\x01\x5b\x58\x42\x94\x4b\xc1\x9d\x2d\x51\xd6\x76\xd1\xdf\x89\xc1\x67\x43\x81\x41\x91\xa5\x7d\x09\x13\xb7\x83\xde\xa5\x80\x98\xcd\xe2\xba\xf4\x02\xc6\xdc\xc6\x70\x5a\x59\x7f\x9e\xb1\x83\x98\x69\x96\xa5\x60\xef\x09\xd7\xd4\xdc\xb0\x87\xe4\x3a\x54\xaf\x63\x19\xe5\xa9\x03\x50\x83\x0c\x3a\x1b\xec\x67\x2f\x51\x4f\x21\x78\xb1\xaf\xa2\x78\x9a\x45\x33\xae\x19\xa4\xb9\x75\xd6\x8f\x91\x60\xfa\xe1\xa7\x75\x49\xbd\x5d\xf0\x05\xde\xb1\x5d\x80\x1e\x36\x34\x9a\x97\x5b\x2a\xb5\xb6\x1a\xff\x69\x05\x18\xff\x45\x01\xf2\x24\x33\x10\xb6\xd8\x97\xb9\x04\x23\x37\x66\x51\xca\xf8\xbd\x22\x67\x57\x46\x02\x32\x1a\xaf\x3f\x83\xb9\xd2\x18\x47\x87\xe5\x18\xe0\x6b\xcc\x8c\xe8\x91\x6f\xb1\x88\x68\x44\xbe\xb8\x3f\xfe\xf4\xef\xff\xfe\xc7\x3f\x6d\x52\x93\x01\xda\x2d\xd6\xc8\x43\xb6\x97\x45\xa2\x70\x07\xea\x9c\x6a\x8b\x5d\xb0\x07\xb0\x6d\xf9\x37\x01\xdc\x09\xc2\xa4\xe8\xd4\x9e\x70\x15\x9e\x4c\x52\x3a\x9a\x45\x38\x86\x62\xba\x57\xe6\x10\x5e\xd8\xb5\x12\xfd\xff\x58\x82\x53\x31\x32\x47\x65\xb3\x70\x2e\x9e\x78\xf1\xda\x34\x42\xbe\xb1\xf6\x3f\x0d\x1e\xd8\x0f\xee\x82\x93\x49\xcc\x32\x5b\x80\xd8\x99\xec\xbc\x21\x11\x98\x03\xfb\x32\x4f\x64\xec\x50\x90\x14\x9b\x53\x10\x20\x0c\x33\x38\x1c\x8a\x81\xab\x47\x6b\xab\xe1\xc3\x47\xe8\x79\x99\xd0\x08\xc1\x7f\x14\xf9\xe6\xcb\xb1\xf9\xad\x47\x16\xc7\x10\x2f\xdb\x23\x7f\x3f\xb6\x79\xf2\x34\xd3\x23\xf3\xd3\x07\x27\x6b\xdb\x26\x60\xd0\x5c\x91\xf7\x47\x0f\x34\xc3\x32\x76\x47\x38\xa2\xf7\x96\xb3\xfa\xda\x13\xa1\x6c\x9e\x48\x79\x6f\x63\x89\x6b\x1f\x1e\x39\xcc\x0d\x20\x6f\xef\x37\xc1\xad\xb7\x61\xe1\x46\x8e\x3c\xb0\xd5\x74\x0f\xe7\x63\x72\xf8\x57\x25\x05\x39\x5c\xd0\x34\xb1\xbf\xba\xa7\x36\xd4\x99\x2a\xe2\xea\x29\xbb\x40\xa7\x64\x81\x96\xd2\xef\x13\x39\x86\x59\x7d\x76\x33\xc5\x60\x61\x18\x68\x71\xfb\x14\x17\x96\x9d\x88\x95\xa4\x10\x39\x20\x95\x1a\x5f\x01\x1e\xd7\x34\xab\x2f\x7e\x48\xff\x85\x8e\x75\x58\x14\x97\xaf\x88\xc6\x61\x1f\xa8\x67\x1a\xfd\x42\xbe\xb1\x2c\xe8\x83\xb9\x63\x6c\x64\x36\x2e\x43\x53\x07\x0b\xdf\xc1\x2f\x41\x07\x5c\x10\xeb\x32\x6e\xff\xf2\xef\x47\x87\x87\x87\xfe\xeb\x0b\x33\x95\xff\x9f\x70\xad\x58\x32\xc1\x96\xdc\x0d\xb6\x18\x8a\xcf\x0e\x5f\xd5\x19\xaf\x0b\x34\x1f\xa8\x83\x1c\xc9\x84\x1c\x14\x06\xdd\x58\x46\x8a\xfc\xce\x88\xb5\xc1\x52\xc2\x8f\x46\x8f\x6b\x3e\x53\x16\xd0\xed\x99\x0e\x95\x35\x88\x57\x8f\x55\x08\xe0\xe1\x15\x5b\xaa\x42\xb0\x5e\xa0\x05\x43\x39\x47\x16\xe4\x23\xcb\xcc\xcb\xec\x8b\x86\x47\x2d\x18\x2a\x8d\x51\xfb\xcd\x37\x65\x8d\xdd\x16\x50\x2a\x48\xd6\x2d\x0b\x60\x91\x2e\x2c\x67\xc0\x79\xf6\x42\xf7\x89\xb9\x5c\x44\x88\xf8\xa9\xf2\x34\xa5\xd9\xe2\xa8\x38\x6d\x75\xe2\x2c\xe0\xbb\x81\xc7\x24\x6e\x01\xc0\x85\x9b\xd8\xa3\x65\xc3\x40\xac\x78\xe9\x6e\x34\x7f\x76\x23\xa8\x17\x02\x41\x89\x58\x2d\x87\x89\x48\xc6\x96\xae\x8b\x44\xdb\xb2\xc4\xe2\xdf\xa9\xcb\x2a\x2e\xac\x48\x15\xc6\x38\xa1\x31\xfb\xde\xbe\xe1\x3e\x6e\x61\xdf\x72\x04\x85\xba\xd8\x74\x0d\xf7\xe8\xd9\xe5\x8d\xfb\xa6\xfb\xa5\x0b\xeb\x50\x16\xd9\xa9\xd3\x12\x9d\x45\x22\xa3\x8f\xc5\xf5\x0b\xc1\x31\x68\x9d\xc9\x7d\x1a\x32\xfe\xfb\x44\x5e\xf1\xc4\xdc\x5a\x40\xe3\x87\x43\x51\xfa\xb9\x47\x58\xc2\x53\x2e\x7c\x80\x22\x32\x77\x39\x41\xe9\xf9\x9e\x6b\xb3\x65\x2a\xbe\x37\x1c\xcc\x21\x3a\x04\x2a\x55\x5f\x2c\x1c\xe9\x78\xc7\x94\xb5\x40\xe4\xca\x8c\xab\xd0\xd1\x8d\x30\x6b\x9a\x38\xb0\x02\x29\x0f\x08\x0f\xce\xef\x50\x98\xd6\xdc\x59\x2a\x22\xa3\x83\xf6\x82\xe6\x0e\x1c\xee\x65\xc0\x01\xa0\x8f\x52\x78\xb3\x97\x7f\x1b\x04\x94\x81\xc8\xd3\x6d\xf3\x6a\x6c\xa4\xf4\x4b\x99\xe9\xae\x8a\xca\xff\x36\x47\x8b\x89\x3c\x75\x07\x6a\x0d\x8a\x1b\x58\xf1\x27\x66\x51\x42\xe1\xee\x80\x86\x20\x7c\xb4\x87\x0e\xd2\x79\xd0\x17\x5e\x2f\xd8\x0d\x42\x69\x27\x4c\x7c\x83\xff\xfe\xe0\x2b\xd7\xf7\xec\x7d\x9e\x29\x07\xf4\x67\xf7\x1c\x4a\xb1\xb0\x18\x6d\xe8\x00\x48\x37\xa5\x59\x8c\xd6\xf2\x50\xab\xc0\x64\x65\x23\x7f\x2d\x64\x4e\x1e\xb9\x9a\x0d\xc5\xad\x74\x06\x47\x22\xa4\x87\xf4\xeb\x81\x32\x5a\xeb\x8f\x2a\x60\x02\x30\xea\x26\x0a\x80\x98\xdd\x6d\xd2\xaa\x20\x12\x78\x24\x64\xcc\xd6\x4c\x08\xa8\xdb\x5b\x9d\x1f\xc2\xf9\xaf\x33\x86\xa9\x6f\x70\x53\xb4\x65\x0e\x63\x49\xfe\x2d\x3a\x86\x25\x70\xa5\xfd\xa1\xec\xd6\xa3\xd8\x14\xc3\xc4\xdf\x6a\xd0\x8a\xd3\x38\x83\xc4\xe7\xd2\xda\x7b\xa0\xbc\x6d\x37\x21\x2a\x67\xe5\xac\x5c\x01\x7f\xf5\xe1\xdc\x23\x58\x76\x1f\xa5\x4d\xc9\x34\x93\xf9\xdc\xa3\x03\xb8\xcc\x46\xdc\x06\x2b\xd3\x9c\x89\x89\x3c\xb6\x3a\xd5\x39\x17\xf7\x48\xf1\x4f\xb5\x47\x88\x85\xc8\x62\x12\xfc\xee\xee\x30\x5c\xf1\x03\xc2\x45\x94\xe4\x70\xf1\x29\x4d\xa3\x7b\xc4\x73\x6c\x33\xfa\x9a\x6f\x46\xab\xf3\x46\x5b\x24\xa6\x3c\x49\x6c\xb7\xc5\x05\x5a\x94\x8a\x7b\xe0\x94\x50\x72\x77\x7d\xd6\xdc\xf7\x3d\xaf\x3b\x73\x9a\x6f\xcf\x32\x81\xc0\xff\xfc\xc8\xd7\x0a\x5c\xad\x20\x67\xb3\x12\xa9\x7b\xe3\x52\x1b\xdc\x5a\xe5\xf6\xde\xd2\x7b\x6c\x6e\xa1\x51\xda\x40\xa9\xcd\x93\x2f\x3a\x3e\xb5\x1f\x7f\x36\xdf\x36\xef\xc8\x67\xc8\xdb\xf2\x50\x19\x29\x15\x66\x82\xae\xd7\x16\x5b\x0c\x5e\x8c\x1b\x0d\xe9\x6e\xbe\xd1\x80\xb0\xc7\x8e\x55\x1e\x6c\x57\xae\x95\x47\x34\x47\xd2\x04\xd5\x6d\x3d\x03\x4d\xac\x40\x47\x36\x1b\x5b\xd6\xc8\x10\x49\x39\xa1\xd9\x14\xe5\x44\xc5\xb4\xfa\xd0\xb0\xc3\x45\xfc\xfc\x16\x3b\xbc\x41\x05\x9a\xd0\xfd\x03\x52\xc8\x32\x0e\xe0\x47\x59\xc6\x82\xf2\xcc\xc9\xd7\x72\xb2\x77\x07\x57\x21\x88\x7d\x24\xb3\x0c\x30\x0b\x63\x23\x8d\xb7\xa3\x64\x6c\x59\x89\xec\x82\xa6\x3e\x07\xdc\xd5\x43\xb2\xa9\x3e\x38\xb8\x31\x03\x60\xb0\xf6\x31\x6c\x5d\x72\x2c\x1c\x82\x2d\x01\xd2\x36\x82\xa1\xe8\xbb\x57\x7c\x1e\x29\x88\xb8\x19\xca\x21\x10\x26\x87\x41\xa1\x20\x66\xd2\x62\xd5\xed\xe4\x5a\x26\xb1\x6e\xba\x5e\xb5\x6a\x9a\x11\x73\x3d\x92\xa0\xc5\x47\xb6\xfa\xce\x0a\x6c\xea\x87\xf5\x8b\x4a\x36\x43\x71\x44\xd5\xa2\x7f\x4d\x1d\xaf\x16\x29\x1d\x46\x80\x6d\x28\xac\x33\x88\xa1\x74\xc9\xa2\x20\x53\xb3\xe2\xa8\x9a\x54\x3a\xab\x9f\x56\xbd\x15\x37\xe6\x34\x1d\x65\xb2\x1d\xbc\xbb\xc3\x32\xb9\x26\x4a\x6a\xee\x0c\x01\x5e\x17\xe4\x6f\x39\x4d\xd0\xda\x2f\x2c\x39\xba\x61\x83\xc4\xf0\x87\x3f\x91\x3e\x5c\x97\xe4\x33\xf0\x45\xf0\x73\x42\x6b\x5a\x12\x9e\xce\x59\xa6\xa4\xd1\xc7\x5a\x36\xf9\xfe\xcf\x6a\x64\xd1\x99\x47\x34\x8a\x64\x5e\x47\x62\x5e\x63\x26\x0d\xad\x85\x93\xa2\xe4\x3e\x1f\xb3\x4c\x30\x44\xea\x87\xf7\x88\x7b\xaf\xd3\x70\x25\xcd\xf5\xec\x0f\xa3\x28\xe1\x9d\x21\xa3\x21\x4b\xa5\x6f\x3e\x3b\xc1\xaf\x96\x4d\xa0\xd4\x7e\x69\xe8\x82\xe0\x33\x82\xcf\x0e\xc9\xf7\x34\xba\x67\x22\x26\xf3\x24\x9f\x72\x9b\x3e\x0e\x37\x14\xb0\xcb\xc0\x4a\x55\x9e\x18\xaa\xbc\xd8\xbe\xb9\x86\x86\x22\xa5\xf7\xa0\x21\x7d\xb1\xb1\xe8\x46\xd3\x5c\x4b\xdb\xf2\xf4\x50\xc3\xd1\x70\xb9\xce\xbe\x2a\x02\x9e\x0f\x8d\xe7\x03\xec\x4a\x80\x4c\x97\x0b\x42\x01\x8a\xe3\xbd\x22\xf9\xdc\x19\x3f\xc0\xe0\x91\x80\xfb\x09\x27\x09\xe5\x2e\xb9\x11\x07\x67\x6c\x28\x20\xa4\xcf\xb5\xb8\xf0\x5c\x25\xf4\x78\x7a\xcf\x7b\xd3\xe1\x9b\x60\x22\xfa\x76\xce\x14\x34\x23\xed\x3c\x5c\x51\xcf\x98\x00\x3d\xac\x7b\xcb\x90\xcd\xdf\x7d\xd3\x4a\xa1\x89\x38\x8b\xc2\x70\xe4\x97\x30\x17\xdc\x82\x94\x5b\x5b\x61\x10\x35\xe4\x0c\xea\xc5\xf7\x5c\x11\x45\x35\x57\x13\xde\xa8\x9f\x86\xe9\xff\xdb\xac\x3a\x5d\x0f\x73\xa0\x01\x6f\xa0\xb2\x16\x3e\xfc\xf9\x90\x7c\x04\x75\xbb\x98\x92\x96\x3e\x7b\xbf\x8d\x25\xe8\x19\x6b\x85\xb1\xdb\x45\xdc\x80\x9b\x41\x57\x2b\x8a\x0f\x75\x3f\x24\xfd\xc2\xcc\x89\xf8\x05\x68\xc0\x5c\x31\x23\x96\x28\xb6\x09\xf1\x75\xb2\x08\x80\x2b\x10\x08\x88\x80\xac\xa2\xcc\xef\x05\xa4\xa6\x1f\xe6\x23\xa4\xe3\xd1\x7b\x26\x96\xa9\x7d\xdd\x47\x38\x28\x25\x34\x37\x0d\xb1\xef\x15\x7e\x89\x3a\xff\x26\x03\xec\x7e\xec\x0a\xc8\x08\x3e\x39\x32\x4b\x6e\x04\xfd\xe8\xde\xc6\xb0\xa3\xd9\xc7\x82\x4e\x3c\xce\xa4\x0a\xcf\x99\xdb\x3f\xd8\x4c\x9d\xe5\xcc\xc5\xaa\x43\x0e\x80\x5f\x60\x74\xfe\x0b\x19\x62\x52\xc0\xa8\xfd\x21\x45\x93\x96\xdf\x6f\xe2\x58\x28\x2c\x03\x98\xcb\x5d\x53\xf5\xd3\xfc\xe3\x9f\xd5\x25\x9c\xd8\x5d\xe4\x55\x37\x97\x79\xd9\x3e\x1c\x77\x43\x43\xa4\x0f\x34\x29\x6a\xc4\xd0\xd8\x27\xf2\xcf\x65\x4c\x0a\xf2\x5a\xbf\x20\xcc\xcb\x4f\xab\x52\x48\xa6\xd3\xdc\x56\x51\xf6\xe7\xc0\x5b\x89\x45\xdc\x11\xbe\x26\x10\xb9\x6c\xda\x18\x68\xbf\xf6\xfa\xe7\xca\xdf\x27\xcd\x34\x76\x25\xe3\x6d\x08\x6b\x7d\x88\xb2\x3a\x5d\x77\x08\x66\x54\x4d\x35\xe4\x96\xac\xc4\x5c\xb6\x87\xa1\xc5\xa3\xee\x55\xd7\xc0\xef\x38\xce\x27\x37\x00\xb7\xdc\x86\x2f\xe0\x90\xa1\x66\xcc\xe7\xba\x98\x7d\x36\xdd\xf8\xc8\xeb\xb6\x4d\xb1\x6e\xac\xe2\xfa\xa7\xe4\x7f\xdf\x5c\x5e\x1c\xa4\x34\x53\x33\x0a\xa9\x87\xae\xad\x9e\x2b\x0a\x80\x0a\xa8\x33\xaf\x73\x41\x86\xe2\x80\x4c\x65\x0f\xbd\x39\xc7\x64\xa6\xf5\x5c\x1d\x1f\x1d\x4d\xb9\x9e\xe5\xe3\xc3\x48\xa6\x47\xc5\xda\x1c\xd1\x39\x3f\x1a\x27\x72\x7c\x94\x31\x88\xe7\x3b\xf8\xee\xf0\x0f\xdf\xc1\xd6\x1c\x3d\x7c\x77\x04\x36\xfc\xc3\xa9\xfc\xdd\xf9\x1f\xfe\xe3\x8f\x7f\x32\x0d\xcf\x17\x7a\x26\xc5\xb1\x75\x15\x2d\x6d\xfb\x00\x05\xdf\x23\xfc\xa4\xd2\xcb\x7f\x1c\x7e\x1b\x0e\xc3\xbe\x9a\xca\x98\x25\xea\xe8\xe1\xbb\x91\xdb\x99\xc3\xf9\x3a\xce\xaf\x82\xe1\xfb\x25\xaf\x94\x1c\x34\xbf\x7b\x92\x71\x99\x47\xab\xb6\xa5\xe1\xac\x84\xd1\x9a\x5b\x9c\x98\x7b\x56\xf3\x07\xae\xa1\x81\x79\x49\xaa\x45\xa7\x5f\x17\xcf\xb9\x55\xb6\x59\x2b\x39\x0d\xbc\x6f\x3c\x02\xac\x50\xb4\x41\xcc\x29\x6f\x8a\xf2\xb1\x5e\xe6\x6d\xd6\xef\x29\x51\x6f\x77\x0d\x77\x6b\xa7\xbb\x21\xd4\x6d\x82\x5f\x3b\x9f\xb8\x7c\x74\x10\xb7\xbb\x00\x86\xed\x58\x3a\xc5\xe3\x5d\x22\xf1\xc0\x58\xdc\xb8\x5a\x86\x31\xa3\x6a\xb3\xe0\x8a\x3e\xa2\x4a\xf9\xac\x67\x5f\x74\xcc\x76\xe8\x78\xa5\xcb\x5e\x85\xba\x5c\x16\x69\x64\x8e\x45\x6d\xd5\x21\xf9\x58\xa9\x2d\x51\x04\x8c\x5c\x7f\x3c\x21\xdf\xfd\xf9\x3f\xfe\x38\x14\xdf\x34\x70\x31\xf0\x60\xcb\x6c\x6a\xe3\x57\x80\x77\xa5\x54\x69\x96\x1d\x65\x93\xe8\x08\x1d\xe2\x47\xe6\xfb\x03\xdb\xe9\x81\x9c\x1c\x78\xd4\xcb\x03\x0b\x00\x78\x98\xc6\xeb\x25\x76\x96\x48\x0f\xc3\x47\x6c\xe0\xa9\x82\x20\x55\xc4\xd0\x90\x13\x8f\x6f\x8c\xf1\xc5\x08\x85\x2e\x27\x0d\x7f\x40\x29\xc0\x0f\x1e\xbd\x87\x2a\xd7\x47\x01\xa5\xd1\x7e\x34\x77\x03\x80\xeb\x48\xe4\x29\xf5\x36\xc7\x4b\x42\xe9\x6c\x9d\x85\x6f\x3e\x6c\x45\xf8\x2f\xe6\xc1\xda\x5a\x72\x08\x20\x2a\x05\x93\x13\x88\x9e\x00\xc1\xc0\x79\x87\xc0\x38\x24\xa4\x0e\x72\x5e\x33\x36\xc7\x0b\x26\xac\x3d\xd7\xb0\xdc\x5b\x82\xe8\xae\x5a\xe7\xa7\x00\xd1\xdd\x76\xdd\x2d\x43\x79\xa1\x05\xdf\x36\x84\x03\x8f\xd2\x1a\xd7\x0f\xbc\xbf\xd2\x65\xe3\xf9\x00\xf8\x68\xc2\x52\x7b\x08\x92\x03\x41\xdb\xec\x40\xcb\x03\x00\x0b\x80\x14\x74\x84\xb5\x6e\x2b\x1d\x03\xae\xae\x75\xae\x49\xf3\x7e\x87\x71\x62\xa0\xfe\x97\x60\xa0\x56\x26\xb1\xc5\x55\xad\x2b\x9c\x0b\xc1\x32\x6b\xc4\x5f\x79\xa3\xae\xe9\x08\x0b\xb7\x72\xb9\x27\xbc\x10\xcc\x43\xc8\x61\x1f\x07\x49\x03\x26\x70\x48\x20\x1a\x7d\x26\x53\x69\xc4\x19\x99\xab\xe0\x21\x66\x33\xc0\x25\xdc\x2a\x7b\xa5\x74\x8e\xe8\x4a\x2f\x37\x1b\x73\xb4\xcc\x23\xb4\x71\x84\x2f\xad\x85\xe2\x3e\x2e\xe3\x56\xaf\x18\xbf\x07\x1c\x5e\x4e\x37\xe0\x66\x4d\xc1\xa6\x0c\xc5\x79\x2c\x8c\x28\xff\xbb\x51\x61\x0c\x49\xf9\xcc\x01\x7f\x73\x63\x40\x2e\x02\x89\x85\x50\x83\x95\x22\xe2\xd5\xe1\x33\x91\xa7\x6b\xee\x81\x0f\xee\xea\xb2\x01\x54\x60\xb8\x93\x8b\x73\x3a\x68\x0c\x74\x6a\x3b\x97\xae\x70\x4f\x3c\x72\x60\x77\xeb\x0d\xf5\xc6\x37\x60\x71\xed\xea\xe3\x2e\x60\x2e\x20\x2a\x0e\xd7\x18\x19\x82\x93\x2d\x5a\xbc\xfc\x62\xfd\xc3\x08\x18\xfe\xeb\xac\x1d\x74\x82\xc4\x59\x5b\xc1\xe0\x2c\xb4\x2d\xe0\x7a\x16\x87\x65\x0a\x7c\x53\x18\x25\x22\x03\x15\x51\xd3\x66\x94\x35\xe5\xd1\x7f\xf8\x50\xd4\xfd\x5a\xcc\x59\x8f\x8c\x73\x78\x7e\x71\x79\x1b\xba\x87\x39\xce\xf6\x20\x9a\xb1\xe8\x1e\x12\xa8\xf0\xca\xc3\xc3\xe0\x6a\xbe\x8d\x17\x43\x51\x54\x97\xd1\xd2\xf9\x3a\x17\x1e\x70\xd7\x83\x4e\xcb\x8c\xc4\x5c\xcd\x13\xba\x00\xaf\x92\xc0\xf8\xc8\xc2\x23\xe5\x03\x8b\x0d\x2b\x58\x65\x3e\xeb\xbe\xd3\x66\x57\x8a\x8a\xca\x6b\xaf\x25\xcd\xc6\x5c\x67\xd4\x96\xa5\xc6\xc5\xac\xf3\x03\xa2\x58\x4a\x85\xe6\xd1\x50\xa4\x8c\x8a\x30\x7e\xd7\x7a\xd5\xcc\x22\xc7\x92\x59\xb0\xcb\xc9\x84\x45\xba\x00\x7a\x02\xe1\xdd\xaf\xd4\xaa\x33\xb8\xde\xdc\xfd\xc9\x5b\x3a\xf5\x1f\xb8\xc0\xb4\x42\x9e\xce\x33\xf9\x60\xd9\xb0\xbb\x1a\x37\xb4\x65\x43\x35\x22\x7b\xe5\x3a\x65\x10\xfe\xe5\x68\xca\x97\xe2\xf5\x89\x17\x4d\x32\xfe\xd6\x88\xd4\xdb\x04\x2d\xb6\xd5\xd5\x0a\x42\x4f\xf0\x80\x85\xd1\x2b\x1e\x70\xa1\x5a\xb1\xfe\xbd\x4d\x05\x01\x6b\xcf\x7b\x1b\x06\xfc\x1e\xae\x69\xa3\x3d\x66\x0f\x2c\x1e\x8a\x32\x9c\x85\x95\x19\x8b\x03\x47\x8a\x5a\x2b\xbb\xe1\x36\x6e\x8d\x3b\x99\x36\x07\x90\xc2\x5b\x80\x77\xf9\x64\x87\x25\xb5\x5f\x9a\x8b\xbc\x3e\x41\x59\x91\xce\x36\xef\xa2\x1c\x8b\xad\xa5\x60\x4b\x2f\x95\xdc\xcb\x9e\x28\x7d\xb2\x3e\x22\xf9\xf8\x20\x70\x1b\x14\x5e\xcb\x7c\x6c\x6a\x63\x28\x5c\x16\xdb\x24\x4f\x10\x9d\xad\xad\x1a\x8d\xc5\xee\x70\x11\xb7\x2f\x17\x79\xed\xed\x6a\x24\x28\x5f\xe3\xbd\xc0\x2e\xf1\x28\x5a\x14\x55\xb7\x81\x74\x99\x50\x39\x88\x14\xae\x72\x05\x24\xa2\x4e\x99\x86\xdb\x3c\xce\x13\x4c\xca\x02\xff\x3e\xe0\x80\xd0\x24\x21\x5c\xab\xa1\xf0\xb0\x25\x88\xe4\x0b\x1c\xd6\xa5\xd8\xc6\x56\xe5\x82\x2e\xa0\x59\x5b\x2d\x11\xe4\x30\x1e\x71\x1d\x8e\x08\xfc\xd6\x8b\x10\xed\x7d\x3e\x67\x14\x73\x08\x70\xdb\x86\xa2\x56\x60\x3d\xf4\xdf\x62\xc0\x3d\xd4\xb0\xdb\x45\xec\x7b\x3b\xe9\x62\x0d\xc3\xb5\xb7\xe4\x90\xf4\x71\x76\x46\xe1\x72\x85\xdc\x70\xb4\xae\x2a\x3e\x86\x76\x19\xad\x46\x2b\x5f\x8b\xda\xeb\xad\x73\x9a\x69\x1e\xe5\x09\xcd\x12\x00\x54\x9e\xe4\x09\xe1\x93\xa0\x26\x1d\xec\x01\x82\x56\x98\xed\x8a\x24\xdc\xd5\xce\x25\xa4\x68\xca\x82\x7c\x39\x6b\xde\x49\x02\x97\x32\x42\x99\xa2\xaf\xd2\xb4\xf5\xe1\x90\x9c\x56\x2b\x10\xc2\x99\x08\xc0\xae\xb8\x42\xf6\xe7\xc7\x1b\xa4\x7a\x60\x25\x43\x3e\x31\x2a\xe5\xfb\xff\xcb\xde\xb7\x35\xb7\x91\x23\xe9\xbe\xef\xaf\x40\xc4\x79\xb0\x7d\x82\x92\xe6\x12\x1b\xb1\xe1\x88\x7d\x60\x4b\xf2\x34\x67\x64\x49\xa3\x8b\xdd\x7b\x96\x1b\x34\x58\x05\x92\xb5\x2a\x02\x34\xaa\x4a\x32\x77\x67\xfe\xfb\x09\x64\x26\x2e\x75\x65\x15\x49\xb9\xbd\xb3\xfd\x30\xd3\xdd\x22\x89\x42\xe1\x92\x48\x64\x7e\xf9\x7d\xc1\xae\x6b\x53\xc7\xe5\xd9\xd3\xc0\x7c\xb5\xe5\x9d\xee\x86\x29\x36\x96\x7a\x3d\x80\x82\x6a\x29\x8b\xed\x36\x44\x4b\x07\xed\xa9\x30\xb0\x93\x21\x51\xd8\x1e\x1d\xfd\x1c\x48\x94\x56\x3b\xbb\xee\x90\xc0\x83\x79\x1c\xd8\xd5\x40\x50\x62\x78\x47\x83\x95\x13\xa2\x13\x5a\x47\x76\x77\x08\xe7\x73\x49\xda\x81\x99\x7e\x99\xeb\xb3\x40\x3c\x4b\x45\xe5\x1c\xfa\x40\x1a\x10\x40\xd6\xeb\x36\xdb\x5c\xb0\x34\x91\x4f\xb6\xb2\xd4\xcc\xfc\x88\x71\xdf\x3a\x6c\x3e\xec\x3d\x2e\xe6\x16\x97\xa6\x89\xde\xfa\x00\x2f\xa7\x5f\x7d\x46\xf3\xd5\xd3\xf6\x64\x10\x83\x79\x4d\x0b\x3c\x78\x8f\xfe\xd3\xd2\x89\xa0\x74\x97\x09\x0b\x9b\xc4\xf3\x25\xc0\x72\xe5\x89\x53\x87\x6e\x1d\xdf\xdb\x55\x19\x1b\x34\x80\x16\xf9\xf1\xfa\xe2\xf2\xc3\xe4\xba\xac\xb3\xf0\xd7\xc7\xcb\xc7\xf2\x5f\xee\x1e\xaf\xaf\x27\xd7\x7f\x0a\xff\x74\xff\x78\x7e\x7e\x79\x79\x51\xfe\xde\x87\xf1\xe4\xaa\xf2\x3d\xf3\xa7\xf2\x97\xc6\x3f\xdd\xdc\x55\x94\x1d\xee\xff\x32\xb9\xbd\x2d\xff\xe9\x61\xf2\xf1\xf2\x62\x76\xf3\x58\x62\x5f\xbe\xf8\xb7\xeb\xf1\xc7\xc9\xf9\xac\xa1\x3f\x77\x97\xe7\x37\x9f\x2e\xef\x2e\x2f\x3a\xe9\x99\xfd\xfb\x36\x0e\xe9\x31\x40\x1d\x7b\x2b\x7d\x8c\xd9\x42\x27\x42\xc6\xe9\x16\x31\xa7\xf6\x82\x55\x81\xb8\x85\x47\x40\xb2\x16\xaa\x38\x04\x3a\xfa\xb0\x12\x4c\x3d\x9b\xcb\x7d\xca\xa8\x35\xaa\x98\xe1\xd9\x53\x2b\x45\x52\xae\xeb\xc1\xe9\x4e\x84\x7c\xae\xb7\xae\x06\xa3\xab\x3b\x9e\x40\x81\x1e\xc2\x36\x42\x77\xf5\x05\x0e\x68\x5d\x6c\xf2\x64\xde\x0e\x06\xee\x49\x2c\x30\xfc\x0a\x88\x74\x3f\xcd\xb5\xd1\xd7\xcd\x86\xb1\x84\x89\x3d\x04\x0e\x08\x2d\xec\x2b\x60\xe3\x7e\x6d\x21\x54\x9b\x62\x9e\x26\x11\x4b\xe2\xea\xb5\x1e\x4b\x37\x30\x72\x59\x65\x05\xdb\x08\x0d\x1e\x93\x71\x44\x37\x5a\x9c\xf0\x22\x5f\x59\x6d\x5d\x08\x26\x11\x87\xeb\x54\x66\x22\xd2\x22\xb7\x72\xff\x22\xb6\x92\x26\xc1\x93\xa0\x33\x54\xc0\x15\x43\xad\xf8\x69\xc0\xd0\xda\x12\xaa\xc6\x5f\x62\xeb\x03\x62\x75\xf8\xfd\xce\xa1\xa1\x1e\x27\x59\x55\xb6\x12\x7c\x43\xfc\xd0\x0a\xa3\x98\xf7\x36\x96\x3a\xb2\x40\x63\x9c\x64\x8b\x59\x6e\x7e\x8d\x5d\x6b\x2c\x5c\x28\x65\x88\x31\xb5\x4e\x1f\x9d\x6b\x01\x87\x08\x65\xa4\xed\x35\x1a\x10\x14\x84\x71\x06\x68\xb3\xb9\x31\xcc\xc5\x8a\xa7\x0b\x0c\x8e\x99\xa9\xf1\xfb\xaa\xbe\x44\x1f\xd4\x93\x90\x77\x38\x61\xbf\x8a\x39\x94\xe8\x80\xfb\x92\x3e\x17\x98\xf0\x91\x34\xd3\x47\xbb\xaa\x6c\x8d\x07\xca\x3f\xa3\xbb\x1a\x7c\x8c\x40\x6b\x4f\xd8\x67\xcb\x43\x16\x8b\xe4\x9b\x69\x70\x2a\x45\x23\x65\x19\xc0\x56\x2c\xb9\x82\xb3\xcb\x40\xd9\x83\x15\xea\x4f\x42\x82\x26\x0b\x0a\x2b\xee\x5c\xb3\xc3\xc2\xb8\xf5\xb9\xe8\x88\x2b\x43\xe8\x29\x29\x49\xd5\x84\xc9\x06\x3b\x4e\x50\xcc\xf5\x24\x4e\xd9\x05\xd5\xdd\x9a\xbf\x9c\x5f\x4d\x2e\xaf\x1f\x66\xe7\x77\x97\x17\x97\xd7\x0f\x93\xf1\xd5\x7d\xdf\xed\x77\x8c\x7a\x80\xca\xee\xab\x96\x64\x38\x0b\x71\x46\x3b\xcf\x97\xa5\xb9\x97\xf2\xdb\x0e\xa6\x64\x77\xef\x93\x78\x33\x8b\x93\x2c\x32\xc7\xdf\x76\x26\x64\x0c\x5c\x8f\x7b\x2d\xd5\xe6\xa6\xaa\x6f\xe1\xbe\xc1\xdc\x37\xac\x05\xc1\xd3\xee\xd9\xae\x68\xf7\x39\x90\x41\x41\x34\x4c\x0b\xb3\xf9\xe3\xa9\x0c\x4e\x9b\xd3\xdd\x04\xdf\xa6\xb9\xc3\xde\xad\xdc\x44\xf5\x9d\xb0\xbf\x49\x96\x15\xdc\xd8\x47\xfb\x35\x28\xf7\x6e\x19\x15\x22\xe0\x09\x09\x27\x93\x40\x17\x8e\x99\x2b\xf2\x9a\xcb\x98\xe7\x4a\x6f\x5b\x5e\xb1\x9f\xf1\x0c\xb7\x4d\xd9\x84\x86\x47\xb6\xb9\xff\xdb\x59\xc0\xaf\x72\x59\x5d\x4a\x48\x4b\xf9\x70\xf3\x97\xcb\xeb\xfb\xd9\xe5\xf5\xa7\xd9\xed\xdd\xe5\x87\xc9\x2f\x8e\x5b\x63\xc3\xb3\xba\xe2\x94\x30\x87\xa2\xb1\x2e\xb6\xca\xb7\xd1\xbe\xa0\xec\x93\x6d\x87\x54\x2a\x92\xc5\x54\x5a\xcb\xa2\x7d\xf3\x2b\xad\x8a\xe5\xaa\xb9\xa1\x6a\x2f\x6f\xc7\x0f\x3f\xef\xd5\x4d\xe0\x60\x40\x5d\x18\xdc\x6d\x75\xa2\xb2\x64\x41\x76\x0f\xd9\xcd\x2a\xdd\x03\x26\x11\xf8\x6a\x53\xb0\xbb\xc5\xa2\xed\x75\x7b\xa9\x1b\xad\x4e\xe7\xbf\xe1\xeb\x6d\x0b\xe8\x21\xb0\x9b\xa5\x63\x04\xb0\xa1\x28\x3b\x56\x6b\xed\x7d\xc3\xdf\x4a\x27\xd8\x1f\x4e\x52\xb1\x5c\x8a\x18\x97\x57\xb5\x61\x0a\x05\x91\x09\x8c\xfc\xb9\xde\x34\x8a\x24\x00\x74\xc0\xc1\xec\x60\x47\xfd\x0d\xf8\xad\xfb\x49\xb3\xad\x38\xb7\x72\xa0\x91\x92\x59\xce\x65\x4b\x3e\xf3\xb9\x0e\x14\xec\x65\x8a\x6e\x34\x73\x25\x09\x14\x20\xb1\x91\x6b\xbf\x0f\xf6\xc9\xe4\x90\xd0\x91\xa4\x88\x47\x20\x80\x14\xe8\x97\x36\x4c\x42\x45\x62\xfe\xd5\x83\x1b\x9d\x57\x27\x22\x9e\x80\x88\x23\x0a\x25\x10\x27\x22\x46\x83\x40\x7d\xa4\x15\x9f\x3a\x68\x42\x2a\x4f\xfe\x44\x43\x8f\xb7\xd6\x72\xc4\xd3\xcb\xe9\xdb\x09\x72\xce\xdb\xf0\xf8\x56\x45\x3e\x3e\x10\xea\x8f\x8b\x88\xc8\x3f\xb1\x59\x0f\xb4\xa0\x80\x96\x3d\x60\x63\x76\x62\xa6\x99\x2e\x29\x22\x3e\x01\x0a\x81\xa9\x6c\xcb\x6a\x58\x1b\xd0\x12\xe6\xba\xb5\xa7\xd6\x61\xf4\x33\x03\x70\xb3\x76\xb0\xfb\x55\x76\x31\xfb\x75\x70\xf6\x5a\x70\x2a\x34\x2f\x73\x8e\x29\xcb\xf2\x71\xdc\x56\xe4\xed\xac\xea\x30\x38\x4d\x3f\x34\x42\x99\x3b\x06\x8f\xc8\x15\xcf\xd0\x73\xcd\xa3\x55\xb9\xe3\xf0\x36\x65\x7e\x98\x6a\x77\x9d\x27\x78\x58\x84\xa0\x57\xe2\x62\x84\x77\xea\x24\xa3\xde\x87\x5a\x1f\x4e\xb8\x68\xd8\xc2\x0f\x9d\x23\x77\x79\x41\xbb\x07\x06\x2b\xe5\x85\x8c\x56\x6c\x93\x72\xac\x66\x5c\xf1\x0c\x97\xb4\xcd\xde\xf3\x79\x92\x26\x39\x10\x31\x60\x52\xa9\x32\xc2\xe6\x46\xc3\xf5\x93\xa5\x80\xe3\x9e\x08\xaa\x6b\xd1\x1f\x88\x92\xf4\x52\xc0\xdf\x13\x27\xe9\xb7\x6c\xf0\x8b\xce\x94\x94\x5f\x96\x84\x91\xf4\xd3\x61\x2c\x1e\x2c\x4b\xff\x2e\xc3\x66\x96\x5a\xbc\xad\xfe\xbc\x34\xde\x0d\x07\xf5\x70\x8c\x00\x71\x9b\x0e\x30\xf3\x55\xe6\xd3\xc6\x9d\xb5\x48\x15\x6f\x91\x2f\xb4\x6d\x23\x91\x69\x5b\xdb\xb1\x2a\xe6\x6d\xd4\x79\xd8\xab\xee\xd6\xbb\xe2\xfe\x76\xdf\x1e\x2b\x2e\x18\x1a\x40\x9e\x8b\x3c\x19\x16\xda\x08\x5e\x9a\xe7\xe2\x04\x7e\xde\xdc\x38\x11\xc6\xf5\x7e\xe7\xda\x42\xf3\x74\xda\x8e\xa0\x0f\xd0\x5b\xf5\xd5\xf5\xd7\x02\xc4\xf6\x6f\x16\xf7\xc8\x0c\x70\xc8\x22\xcb\x93\xfa\x0a\x6b\xde\x89\xd5\xa7\x3e\x94\x93\x2a\xe1\x1a\xe8\x5d\x15\xd6\xf4\x36\xf7\xe6\xd7\xfd\x37\x64\x59\xe7\x77\xa3\x13\x05\xf5\xfb\x24\x0e\xdc\xc1\x31\xd4\xf8\xdc\x03\x46\xf2\x6b\x21\x0a\x61\xd6\xfe\xbc\x88\x97\xf5\xd8\xe6\x00\xef\xcc\xbf\xd2\x4a\xbd\xb0\x75\x11\xad\x98\x6d\x9c\xc5\x22\xe5\xdb\xd2\xab\x81\xbf\x94\xab\x14\x58\xfb\xf6\xa4\x10\x8b\x8a\x2c\x57\x6b\x40\x37\xfa\x76\x75\x21\x61\xc1\x33\x9e\xe7\x3a\x99\x17\x79\x23\x12\xaa\xc4\xa5\xb3\x67\x42\xeb\xfe\xf6\xf2\x7c\xf2\x61\x52\xc9\x26\x8d\xef\xff\x12\xfe\xf7\xe7\x9b\xbb\xbf\x7c\xb8\xba\xf9\x1c\xfe\xed\x6a\xfc\x78\x7d\xfe\xf3\xec\xf6\x6a\x7c\x5d\xca\x39\x8d\x1f\xc6\xf7\x97\x0f\x3b\xd2\x4a\xf5\xa7\xb6\x4f\x04\x0f\xa8\x7e\x2c\xde\xd2\x52\x3f\xda\xdb\x25\x3d\xf5\x3d\x1b\x5b\xe2\xa3\x50\x77\x90\xdb\xd4\x20\xa4\xb4\x51\x08\x91\x32\x88\x17\x3c\xe7\xa4\xce\x7b\xca\xc6\xcc\xaa\x2c\x03\xca\x38\x33\xce\x02\xb1\xc2\x98\xd9\xc1\x26\x8c\xc7\x10\xf9\x9b\x9b\xd7\xb6\x51\x0b\xe2\x63\x4a\x45\xc8\x82\x6a\x4b\x6a\xa6\xf2\xf2\x59\xc8\xbc\x00\x8a\x46\x9e\xa6\x56\x0d\xdb\x7e\x21\xa8\x9e\xb4\xbd\xcc\x92\x75\x92\x72\xed\x65\x48\x6e\xa8\x2d\x70\xd8\x6d\x5f\x1d\x59\x46\x9d\x9b\xde\x5e\x1e\x1e\x27\x0c\xfa\x7d\x7e\x35\x01\x17\x28\xca\x2d\xc7\xb6\x7d\xf8\x54\x22\xdf\x0f\x3d\x71\xcd\x01\xf9\x9e\x2b\x8a\xa7\xe1\xe3\xe9\xcb\xed\x0b\xb1\x51\x09\xbf\x3f\xa1\x14\x46\x9e\x5f\x0b\x5d\xe3\x3a\x69\xff\xe5\x52\xe6\x7a\xdb\xdb\xaf\x79\x00\x92\xc6\x0c\x7c\x53\x02\xd2\x94\xa5\x49\x30\xdc\xc1\x6c\xeb\xd7\xe0\xec\x58\x94\x17\x45\xe3\x5d\xd0\x5d\x00\x11\x64\x8b\xff\x9d\x9a\x43\xe8\x47\x1d\x87\x90\x9c\x00\x46\x61\xae\x0a\x19\x67\x04\xf9\x59\x27\xf2\x6c\xcd\xbf\xbd\xb3\x6f\x8a\xc5\xbe\x8e\x20\x18\x88\x5c\x44\x6a\x6e\x22\x5b\x63\xe4\xba\x87\x6b\x2a\x3b\xc6\x6b\xb7\xb7\x68\x2d\x2b\x5c\x7b\xfc\x1d\x15\xc1\x4b\xcf\x62\xdb\x34\x7f\x35\x92\x77\x04\x48\xd1\x86\x87\x46\x36\x5a\x98\x2f\x3a\x64\x54\x8a\x80\x37\xf7\xdf\x80\x80\x2e\x09\xd1\x34\xdb\xee\x30\xcb\x7b\xd0\xb6\x69\xcc\x2f\xbf\x02\x4b\x3f\x3d\xc9\xcc\x19\x66\x9b\x6d\xa0\x93\x10\xdf\x94\x46\x33\x93\xf5\x9f\x6a\xce\x16\x50\xfe\x40\x42\x93\x5a\x40\x60\x1b\xa6\xc2\xd2\x4a\x02\xdd\x47\x2d\x85\x6d\x97\x40\x2a\x32\x08\xf7\x4a\x73\xdd\x12\x5f\x0b\xca\xd8\xfd\xfe\x77\xc3\xce\xd9\x5c\x6f\x99\xa5\x30\x0e\xcb\x2f\xa8\xfa\x88\xce\x5c\xe8\x57\x21\x93\x26\x0e\xa0\xbb\x42\x9a\xa3\xf8\x18\x60\x87\xfe\xd9\xac\xca\x43\xe9\x3f\x77\x56\x28\xd8\x40\xac\xc6\xef\xbf\x1a\x69\xda\xa7\x0a\x57\x1a\x3d\x0e\xf0\xb0\xd4\x7a\x78\xa0\xcd\x79\xf4\xf4\xc2\x75\x8c\xb1\x42\x40\x1f\x9c\xb2\x9f\xd5\x8b\x78\x16\x7a\xc4\x22\xa1\x73\x4e\x34\x2a\x19\xa4\x5f\x61\x43\x51\x3b\x53\x09\xf0\x70\xe4\xa4\x91\xa0\xd1\x99\x27\xcb\x95\xb9\x4f\x06\xc9\x73\xa5\x8d\x39\xca\x91\xa3\x6a\x23\x22\x22\xae\x68\x19\x80\x45\xca\x9f\xeb\xbc\x30\xfb\x94\x98\xb3\x89\xab\x71\xb3\xd9\x29\x4b\xd5\xdb\x05\x77\xa0\x01\x23\xa3\x89\x4c\x03\x23\xb6\x54\x29\x97\xcb\xd3\xd3\x53\x26\xf2\xe8\xf4\xdd\xa0\x85\x4e\x0d\x86\xf9\x2e\x87\xed\x4c\x95\xca\x44\xba\x75\x64\x0b\x0e\x7d\x0f\xe2\xe8\xdf\x72\x21\xb3\x04\x43\x1e\x0d\xcb\xff\xbe\x5a\xaa\xfe\x7d\x43\xe7\xcd\x37\xd5\xc1\xb5\x5d\x2d\xed\x00\xf3\xff\x80\x96\xf0\xfb\xcd\x37\xaf\x01\xb5\x8a\x56\xa6\xc7\xd7\x2c\xb6\xf0\x2a\x2a\x39\xb4\x10\xef\x93\x6a\xd3\xb3\xdc\x8b\x0b\xa9\xb1\x25\x62\x4a\xd8\xab\x78\xa9\x2d\x72\x51\xa9\x27\x3b\xa0\x94\xac\xa3\x2a\x6c\x60\x41\x58\xc3\xfe\x6b\xd8\x1e\xae\xe4\xf4\x10\x7c\x92\x4a\x8b\x75\x3b\x09\xd0\xa1\x2e\x9f\xef\x24\xfe\xdb\x39\x3c\xae\xb7\xcb\xe7\x35\x46\x2d\x8b\x39\xf5\x17\x03\xb7\x54\x94\x67\x6c\xbb\x4e\x32\xa0\xab\xda\xa7\x42\xc8\x35\x83\x4d\x43\x7e\x69\xbb\xc1\x80\x21\xd6\x0e\xa5\x5b\xac\x41\xb3\xf9\x08\xfa\x49\x86\x7e\x19\x24\xa5\xda\xcd\x58\x15\xf5\x34\x78\x8e\x80\x23\x7b\xaf\x4c\x1c\x38\x3a\x01\x4d\x2b\xc1\x32\xa0\x41\xca\x1d\xe7\x8a\x2d\x6c\xcd\xc9\x93\x08\x54\xbd\x62\x20\x70\x7d\x41\x4a\x88\xbf\xfc\x4b\x66\xb3\xcc\x04\x04\xf0\x67\x6c\xee\x1f\x82\xd1\xec\xe7\xdf\x5b\xfc\x07\xbe\x21\x36\x01\x42\x19\x31\x97\x79\x63\x03\x1e\x1e\x05\x6d\xe1\x4f\x3e\x99\x7b\x7b\xe3\xd7\xa9\x7d\xf8\x2a\x72\xe2\x8f\x3f\xdf\x33\x1c\x6a\xa2\xfa\xd4\x5d\x1d\x0d\x1a\xd9\x8d\x40\x81\xe1\x9a\xed\xe1\xbb\x94\xe6\x01\x07\xdd\x72\xbd\x9a\x61\x17\x79\xb4\xf2\x67\x65\x59\xdc\x8e\x04\x4f\xe8\x3d\xd7\x9e\xbc\x14\xc1\x7d\x21\x4a\x2a\x59\x4a\xa5\x85\x47\x5b\x29\x29\x20\xad\xc0\x73\x16\xab\xb0\x59\x96\xe4\xbb\xa1\x28\x03\x09\x76\x76\x2d\xb5\x5c\x21\xc4\x80\xde\xb3\x94\x1d\x02\x27\x38\x41\x5a\x0e\x8b\xe3\x43\x2f\x9e\xf4\x33\xaa\x94\x9b\xe5\x42\xe7\xa9\x2c\x3f\xaa\x36\x48\x16\x2b\x92\x68\x81\x4c\x79\x99\xf1\x37\xf2\xe4\xd9\x6c\xd4\xfa\xb2\x76\x0b\x14\x2c\x40\x7d\xed\x4d\x25\x76\x3b\xa0\xdb\x7b\x12\xdb\x2c\x14\xeb\xa0\x15\xc5\xda\x16\x64\x62\xde\x87\xe6\x6b\xf7\x54\xc0\xc0\xcd\x02\xf1\xd1\x7e\xa7\x08\x3e\xf4\xa3\xf9\x71\x07\x08\xad\xd6\xb8\x59\x83\xbe\xa8\xc7\x47\xc1\xc8\x4c\xf8\x71\xa6\x39\xf4\x38\x93\x06\x61\x5a\x1f\x50\x84\xab\x9a\xb9\x91\x4d\x25\x31\x72\x06\xf9\x5b\x63\x70\xea\xd3\x46\x95\x86\xc8\x03\xb8\x2d\xb1\x24\x00\x5b\xaa\x55\x50\x6c\xd6\x03\xb6\x5a\x4f\xa4\x83\x8f\xb5\x58\x36\xea\xd4\xf8\xc0\x3d\xc1\x4b\x34\xb9\xad\x80\x25\xef\x74\xd3\xc0\x11\x51\x16\xaa\xbe\xa0\xbf\x1e\x09\x33\x7c\x63\xd9\x88\x15\xb2\x48\xa1\xfb\xcb\xf3\xbb\xcb\x87\xef\x06\x68\xb2\x68\xa2\xc1\x88\x26\xdb\xcf\x8b\xcb\x0f\xe3\xc7\xab\x87\xd9\xc5\xe4\xee\x35\x20\x4d\xf4\xd1\x1e\x98\xa6\x7b\x22\xfa\x3d\x57\x32\x17\xdf\x0e\x3a\x93\x75\x21\x67\x7c\x00\xb6\xde\x91\x69\x77\xb9\x3b\xd8\x68\x9d\xa8\xd8\xb1\x08\x13\x4d\x1b\x9e\x68\x8e\x97\x38\x10\x78\x5e\x24\x69\x0a\x15\x6f\x2e\x20\x4c\x65\x2c\x66\x50\xc1\xfe\x58\xa5\x4a\xb2\xa9\x53\x39\x2f\x31\x35\x43\x90\x6a\x65\xae\x6d\x58\xeb\xb6\x31\x03\xa0\x13\x28\x78\xea\xe2\x32\x5e\x26\x52\xf8\x6e\xa0\x42\x5b\x21\x59\x2b\x01\x25\x4d\xe2\x6b\x16\x34\x92\xe3\xd5\xd7\xd7\xb4\x2b\xae\xb4\x3e\xad\xfb\x69\x3f\x74\x6f\x88\x9b\x38\x91\xe8\x98\x96\x76\xf3\x7d\xf3\xd2\x3d\xf3\x5b\x00\xc6\xdd\xcc\x24\x87\xa8\x39\x88\xa0\xf9\x89\xa4\x89\x40\x15\x01\x1f\x4e\x7f\x4a\x10\xf7\xa1\x16\x95\x71\x36\xa6\xd0\x8c\x75\x02\xb1\x75\x4e\x45\xfc\x51\x5a\x64\xb9\xd0\x74\xd1\x1f\x7f\xbe\x9f\x4a\x54\xca\xa5\x53\x88\x98\xe6\xf1\x11\x88\x3a\x50\xa5\xe7\x5b\x0f\x25\xb4\x60\x6f\x31\xaa\xba\x16\x5c\x66\x28\x50\x99\xa6\x42\xfb\x95\x81\xfd\x11\x22\x26\x91\x12\x50\x31\xf5\xbf\x27\x8d\x42\x05\xbb\xd6\xf4\x97\x3e\x25\x95\xbe\xea\x7a\x6a\x2b\xa8\x04\x48\xe3\x6b\xae\x9c\x06\x64\x7d\xdf\x55\x44\x68\xd0\xc6\x45\x54\xc6\xb9\xf7\x5a\x4b\x0f\xd8\xdc\x6f\x4b\xe9\x88\x4b\xa9\xc7\xb9\x1e\x9e\x12\x6c\xa5\x8c\x01\x75\x24\xf1\x3e\x31\xea\x0a\xba\x53\x40\xec\x98\x61\x6c\x3c\x75\x3c\x87\xd5\x5e\xa9\xd2\xeb\x9b\xeb\xcb\x30\xd1\x39\xb9\x7e\xb8\xfc\xd3\xe5\x5d\xa9\x78\xef\xea\x66\x5c\x2a\xc0\xbb\x7f\xb8\xab\xd4\xdd\xfd\x74\x73\x73\x75\x59\xcb\x98\x5e\x3e\x4c\x3e\x96\x1a\xbf\x78\xbc\x1b\x3f\x4c\x6e\x4a\xdf\xfb\x69\x72\x3d\xbe\xfb\xb7\xf0\x2f\x97\x77\x77\x37\x77\x95\xe7\x3d\x9e\x77\xe7\x5e\x4b\xaf\xd1\x7c\x15\xf7\xa9\x9d\x80\xce\xab\x71\x48\xbf\x1e\x46\x82\x99\xf3\xbc\xd1\xa1\xee\x7d\xd3\x21\x91\xc4\xaf\x85\xd0\x5b\xe2\x10\x40\x2f\x14\xff\x12\x71\x89\x00\xae\x9c\x44\xde\xe3\x10\x79\x34\x95\x9f\x51\x06\x1e\x92\x9b\x6f\x32\xf6\x27\x08\xbf\xda\x2f\x7b\x31\x51\xd8\xac\x7f\xc5\x67\xb8\xcf\x4e\xa7\xb2\x24\xc2\x18\xfc\xaa\xa4\x20\x7d\x3a\x95\x96\xa7\x31\x56\x51\x76\x0a\x7b\xf9\x54\xe9\xe5\x19\x49\xaa\x18\x5b\xa7\x9e\xe6\x4a\x3d\x9d\x09\x79\x06\xde\x46\x7e\xc6\x8b\x5c\x9d\x41\xea\x06\xa1\x2d\xd9\x99\x55\x5e\xb0\xd2\x15\xd9\xd9\x2a\x79\x16\xf0\x7f\xa7\xab\x7c\x9d\xfe\x9f\x6c\xb3\xfa\x76\xb2\x4c\xf5\x89\xf9\xed\x49\xf8\xdb\x13\xfb\xdb\x13\xfb\xdb\x13\xf3\x33\xfc\xbf\xcd\x16\x2f\xee\x82\x14\x70\xa7\x32\x91\x99\xd0\x39\xd4\x39\xbe\xe8\x24\xf7\xfa\xdc\x5b\xf6\xe6\xbf\xff\x9b\x9d\x6a\xfe\x82\x50\xde\x0b\x9e\xf3\x5b\xf4\x1c\xff\xfe\xf7\x37\x2c\xcb\x15\xe9\xc8\x6c\xb8\xfe\x5a\x88\xdc\xf8\xb0\xa9\x88\x72\xf6\x7f\xa7\x12\xa4\xa7\xd6\xdb\x59\x8e\x1e\x35\x7a\x97\x71\xc6\xfe\x15\xdb\x9c\x20\x9f\x46\x9c\x99\x96\x5a\x50\x3e\x09\x4f\x1b\xc4\x7a\x5a\x2e\x5f\x5f\xd3\x0b\xfa\xfe\x00\x8b\xf3\x35\x2d\xa1\x06\x1c\x23\x6c\xf6\x35\x05\xd2\x96\x54\x71\x9b\x38\x62\x6e\xf1\x82\x05\xa4\xce\x35\xed\x91\x5a\x78\xf2\x80\x1d\xb3\xaf\x7e\xd9\x3d\x72\x7a\xd9\x3b\x59\x4d\x8a\x06\x6e\x81\xfe\x86\x09\x54\x2e\x89\xd9\x21\xf7\xe8\xe3\xa2\x3e\x2c\xbc\x39\xd8\xfe\x5c\x69\xbe\xf4\x7a\xbe\x74\x24\x65\x7f\x7c\x7f\x76\x36\x62\xcb\x0c\xfe\x31\xff\x0a\xff\x80\x4c\xc6\xb1\x68\x69\x6a\x83\xe9\x92\x72\x7d\x22\xb5\xad\x3f\x3e\xc8\x86\xbd\x3e\x13\x5a\x65\x99\xfe\x54\xc8\x38\x15\x1e\x99\x5c\xba\xec\xa6\xca\x8a\x85\xa1\xcb\x53\xe5\x9c\x85\x39\x9e\x8b\x88\x1b\xc3\x57\x7b\x36\x26\xba\xd5\x22\x17\x12\xfd\x1c\xed\x19\xba\x39\xfa\x24\x90\x65\x82\xb4\x2c\x68\xdf\xae\x37\x20\x84\x9b\x40\x00\xf0\x01\xa9\xc5\x46\xd5\x8f\x40\xca\x12\x59\xb2\x80\xfb\x05\x15\x37\x85\xbd\x89\x63\x45\x57\xa1\x8d\xab\xb3\xe1\x32\xe6\x19\xac\xc0\x85\x86\x38\x96\x66\xbc\xde\xd1\x11\x42\x03\xcc\xcd\x9e\xcb\x2d\xc5\x8c\xc3\x91\x40\x1a\xb3\xa0\xcf\xa3\xa0\x13\x78\x26\xa0\x78\x6f\xf5\x87\xa7\x53\xe9\x64\x60\x31\x2f\x67\x65\xc5\x37\x5b\x2a\x96\xac\x0e\x7a\x62\x7d\x22\x1a\xee\x91\x17\xda\xab\x7e\x17\x04\xc6\xc3\xa0\x09\x30\xa6\x85\x2a\x38\x56\xa9\xe7\x2d\x08\xf3\x0a\x9d\xbd\x33\xdb\x10\x78\x44\x73\xcf\x47\x96\x64\x7e\x32\x9c\x6a\x2c\xf9\x81\xa6\x79\x47\x2d\x6c\x46\xa7\xc4\xb1\xd5\xe4\x82\xed\xde\x2a\x3f\x7a\x7e\xa3\xa9\xbf\xf4\xaf\xdf\x35\xd7\x11\xe6\x98\x1b\x85\xac\x07\x91\x0d\xe0\x96\x0d\x2d\x2e\x36\x4a\x22\xb3\xe8\x9c\x58\xc9\x91\xc4\x1c\x59\xb9\xb9\x01\xe4\x53\x49\x27\xf0\x88\x2d\x04\xcf\x57\x90\x64\xcf\x9e\xd1\x18\xe3\x71\x9f\xbf\x28\x9f\x5d\xb1\x04\xad\x90\x98\x2f\x35\xee\xdd\x7f\xfc\x1a\xc4\x8a\x79\x94\x63\xe8\xb8\x8d\xba\xd2\xb9\x2a\x30\x58\x8d\x06\x71\x8f\x71\xb0\x7c\x9f\x55\x6e\xed\x90\x6e\x16\x46\x62\x8b\x21\x40\x56\xed\x07\x7e\x60\x0c\x0f\xbe\x1d\x06\xf8\x03\xe3\x08\x95\x4d\x94\xd7\xc7\x7d\xe6\xa3\x73\x21\xe9\x1a\x44\x5e\xda\x36\x55\xc7\x40\x40\x07\xf6\x83\x40\x9b\x9f\xee\xa4\xa6\xc8\x84\xb6\x64\xa4\xf8\xae\xc8\x4d\xb1\x4a\x74\x7c\xb2\xe1\x3a\xdf\xda\xe5\x9b\x26\x73\xe0\x30\x4c\x93\x27\xc1\xc6\x5a\xab\x97\x63\x8f\x42\xab\x69\x79\xe0\xd9\xd3\x91\xa9\x6e\x80\xda\x69\x08\x55\x4d\x23\x33\x4d\x29\xed\x1e\x8b\xd9\x7e\x2c\x38\x6d\x4c\x3e\x8d\xcf\xd1\x22\xd7\xdb\x99\x59\x88\xeb\x4d\xab\xa5\xe8\x05\xe0\xea\xef\xe4\x0e\x23\xd8\x81\xf3\xb9\x07\xc1\x4e\x69\x56\x7f\x1c\x82\x9d\x06\xee\x9c\x3a\xc1\xce\xe4\x7a\xf2\x30\x19\x5f\x4d\xfe\x5f\xa5\xc5\xcf\xe3\xc9\xc3\xe4\xfa\x4f\xb3\x0f\x37\x77\xb3\xbb\xcb\xfb\x9b\xc7\xbb\xf3\xcb\xee\x8a\xd9\x7a\xef\xbd\x0b\x7e\xc2\xc2\xe7\xbc\x67\x0f\x41\x08\x1e\x81\x4f\xe4\x7f\x93\x88\x07\xac\x2a\xb3\x99\x13\xb9\x1c\xc1\x46\x7d\xcf\x2e\xb5\x9e\xac\xf9\x52\xdc\x16\x69\x0a\x89\x32\x44\x19\x9e\x6b\x01\x17\xcf\x11\xbb\x55\xf1\x24\xf8\x1d\x40\xa3\x1b\x5f\x03\x9e\xcf\xe3\x58\x8b\x2c\xc3\xc7\x8f\xe8\xf9\x41\x5a\xc8\xc1\xae\x29\x2d\xca\x9f\x79\x92\x9a\xfb\xdb\x7b\xd0\x15\x54\x0b\x52\x88\x1e\x39\x10\x27\xfb\x5a\xa8\x9c\x33\xf1\x2d\x82\x2a\xf1\xe6\x75\x72\xa5\x96\xaf\x7b\x07\x6a\xde\xd3\xbb\x89\x35\x5a\x2e\x29\x40\xd6\x3e\x6b\x3e\xce\x9b\x0d\x01\xbd\xe5\x47\xfc\xe9\x07\xfc\x65\x63\xeb\x79\x9e\x1e\xa1\x6a\xe5\x4a\x2d\x9b\xa9\x73\xc1\xbb\x26\xbe\x5f\x2f\xa0\x0b\x35\x70\x6a\xc9\xb2\x44\x3e\x4d\xe5\xe7\x95\x90\x4c\x15\x1a\xff\x04\xd7\x7c\xe3\x66\xa6\x45\xb6\x12\x31\x53\x45\x3e\x62\x2f\x82\xad\xf9\x16\xdd\x66\xb8\x13\x38\xbe\x4f\x58\x32\x70\x8a\x98\x5f\xa7\x89\x34\xd6\x62\x93\x58\x8c\x54\x75\xea\x8f\x71\xe3\xb2\x1c\x09\xfc\x70\x0a\xa3\x7e\x85\x20\x2f\x2b\x01\x18\x78\x9f\x11\xb7\xa9\x1f\xb2\xdc\x20\x27\xa2\xd4\x53\xb1\xf1\x6c\x2a\x6f\x2c\x65\x21\x0c\xf7\xb3\x4a\x62\x16\x17\x9b\x34\x89\x9c\xdd\x7d\x51\xba\x95\x32\x0a\xc1\x7c\x03\x28\xa3\x2a\x10\xd5\xae\x17\x6b\x40\x0a\x06\x39\xd2\x0e\xf2\xa8\x57\xa6\xcf\x0a\xe4\xdc\x8b\x4c\xe8\x93\x5c\x27\xcb\x25\x38\xe0\x16\x77\xfc\xe3\xf3\x6b\x79\xfe\x8e\xc3\x21\xb6\x61\x01\x4c\xaa\x96\x49\xc4\xd3\x10\xb6\xe2\xe3\xdd\x8e\xc0\xc7\x6e\x7b\x92\x91\x31\xfd\x76\x1d\x6a\x2d\x4c\xde\x68\x01\x1c\x52\x33\x54\xc8\x3f\x5c\xb9\x7f\xb2\x60\xe6\x82\x6e\x25\x66\x7d\x85\x98\x55\xe9\xb6\x27\x9c\x7f\xb6\xe5\x12\x47\x31\x41\x09\x60\x6c\xf5\x22\x85\x06\x0f\x16\x02\xfa\xe6\x4d\xa5\x02\xdf\xc4\xf1\x8b\x3b\xe4\x89\xe5\xd7\x5f\x38\x88\x0d\xa2\xf8\x97\xc9\xb3\x90\xdf\x9f\x0f\x2d\x78\x40\xc4\xa3\x95\x98\x59\xbf\xfc\xd8\x26\xcb\x1d\x00\x03\x8d\x95\x25\xfa\x0c\x4d\x29\x4b\x80\x83\x22\xc2\xab\x13\xf6\xb8\x6e\xbb\x90\xbc\xba\xd7\xa1\x04\x14\xa8\xe5\xf8\x5c\xf5\x38\x38\x94\xc9\xdb\x81\xe4\xf6\xf5\xfe\xbb\x03\x01\xcb\x54\xcd\xa1\x5a\xab\xce\xf1\x1d\x9e\xb0\x6d\x94\xc1\xcf\x42\xeb\x24\x1e\x62\x99\xec\x98\xdc\xb8\x9f\x76\x75\xd0\x09\x35\xba\x27\x81\x51\x48\x30\x56\x57\xf1\xdc\xab\xd5\x00\xbb\xae\x09\x90\xdb\xc8\x5c\x72\xc3\x39\x12\x96\xab\x0f\x02\x13\xaa\x43\xf9\xb3\xfe\x2e\x07\x4d\x74\xbd\xbe\x6c\xc7\x58\xfa\x92\xb4\xee\x49\x3e\xa0\x48\x08\x2b\x9a\x5c\xa5\xd0\x10\xc2\x25\x3b\x75\x98\x78\x06\x55\x55\x37\x89\x25\x44\x50\xaf\x19\xad\x8e\xfb\x03\xa5\xbb\x0e\xaa\x80\x7f\x85\x1d\x55\xe4\xca\x47\x2b\xe1\x7d\x26\x40\x43\x12\x62\x0d\xc1\x6c\x4c\xe2\x46\xb5\x7c\x7f\x7c\xd8\xad\xd9\xe6\xaa\x1c\x16\x71\x1a\xb3\x8d\x16\x36\xee\xbd\x15\xb9\xab\x91\x48\x2d\xb3\x33\x84\x75\xdd\x5b\x97\x8b\xc4\x6c\x1d\x88\x2b\xec\x85\x20\xac\xb2\x3a\xd8\xeb\x8d\x92\x42\x12\x3a\x40\xaa\xa9\xa4\xc6\xad\x3e\x8f\x8b\x0c\x97\x40\x98\x23\xba\x90\x23\xa4\x47\x64\x2a\x7d\xa6\x14\x40\xc0\xdf\x07\xcc\xde\xa6\x83\xe7\xc6\xb7\x31\x9e\x3c\xe4\xa6\x08\x91\x07\x18\x85\x8a\x48\x8d\x16\xcb\x24\xcb\x45\x88\x5b\x0d\x7f\x7f\x34\x3d\x81\x92\xf3\xdf\x35\xf4\xad\x7a\x02\xbb\x4e\x71\xb3\x6b\x07\xf4\x67\xbb\x11\xf1\xc4\xfd\xae\x7b\x31\x94\xc0\xe7\x71\x60\x24\x4a\xa7\x00\xae\x01\xf4\x5e\x32\x2c\x9b\xcd\x1c\xf3\x9e\x9b\x24\x2a\x68\xe4\x4e\x04\x02\xa6\x68\x59\x70\xcd\x65\x2e\x44\x36\x95\x94\x38\xc1\xf2\xef\xb0\xc2\x69\x51\x12\x8f\xf0\x67\x73\xa4\xb2\x1c\xab\x29\xe1\x27\x0b\x9e\xa4\x85\x6e\x75\x97\x71\x55\xee\x55\xba\xd1\x35\x4a\xe7\xd0\x2c\x6b\x9a\x34\x07\xad\x0e\x76\x91\xab\x40\xaa\xa6\x3d\xca\xc8\xe3\x96\x57\xb0\x26\xb7\xff\x7c\xbb\x58\x49\x0b\xda\xfa\x5f\xb2\xd9\x46\x0d\xb0\x78\xa4\x39\xdc\xd8\x58\xf6\xb5\x76\xa7\xef\x48\xff\x7d\x6d\xe3\x22\xe4\xd9\x13\x44\xce\x77\x5d\x25\x76\xc7\x07\xff\xf8\x87\xdd\xf1\xf5\x56\xdb\x05\xab\x76\xc5\x65\x9c\x82\x3e\x71\x5e\x39\x81\xdc\x1e\x00\x01\x80\xdc\x1a\xc7\x76\xb8\x21\xa0\x77\x66\x51\x0d\xfa\xb9\x6b\x9c\x2a\x98\xd1\x1d\x10\xc2\xd2\x53\xca\x48\xce\x26\x04\x91\x3f\xd9\x49\x88\xc2\x6d\xd8\xf6\x25\xb8\x48\x96\xc7\x27\xe2\xe9\xab\xcc\xe1\xbc\xec\x8f\x75\x4b\x19\xd1\x56\xa4\xf3\xcb\x89\x71\x1c\xb8\x19\x01\xf9\x65\x8c\x59\x48\x77\x34\x95\xa4\x53\x83\x49\x23\xc8\x16\x60\x49\x6f\xc6\x7e\xef\xe0\xc0\xbf\xff\x67\x5b\xd0\xb9\x65\x0b\x18\x6b\xa8\x9a\x56\x51\x54\x68\xc8\xe8\xd0\xad\x93\x09\x3c\x9b\x86\xb0\xd2\x8d\xf1\x44\x76\x79\x78\x74\x9f\x9a\xbc\x07\x17\x66\x28\xbd\xd4\x03\xdc\x2e\x51\x71\xc7\x9d\x85\xc4\x60\xab\xb3\x9c\x65\xb9\xd8\x34\x5a\xa5\x92\xd3\x55\x16\x95\x3a\xc0\xed\xea\x50\x84\x3f\xd8\x46\x8f\x03\xf5\xaa\x3f\xdf\xdf\x5c\xb3\x0d\xdf\x02\xa4\x25\x57\xa4\x06\x06\x9c\x16\xd5\xfd\xbb\x6b\x06\xca\x2f\x5f\xde\x6c\x38\xa6\x9a\x7b\x7b\x51\x0f\x3b\x71\xa7\xf6\x57\xb1\x43\xb0\x66\x68\x49\x9a\xad\xac\x55\x7a\xb2\x49\xb9\x14\xc8\x3f\x88\x05\xbe\xac\xf2\xf8\x30\x4d\xe5\x02\xd6\x04\x04\x80\x0e\x84\x62\xd9\xba\x90\x4d\xb8\xb6\xb2\x4e\xd6\x41\x99\xa9\x56\x1b\xd1\x89\xd7\xf9\x88\xac\x84\x3c\x32\xdb\x04\xcb\x5d\x6c\xb6\xcd\x25\x6c\x79\x06\x58\xaa\x01\x13\xd5\x2d\xea\x35\x95\x56\xb3\x45\xbd\x64\x2c\xc6\x82\xa0\x22\xc9\x50\x0b\x13\x63\x99\x80\x6b\x20\xfb\x82\x49\x57\xcd\x65\x66\x26\x14\xc2\x31\xe2\x59\x48\x56\x2f\x2f\x99\x5c\x5c\xb9\xd4\x24\x4e\x12\xf1\x99\xb7\x0c\x7d\xe0\x98\x1d\x44\xe1\xd5\xa4\x32\xb5\x9b\x2a\xf0\x23\xdf\xb4\x5c\xe8\x51\x82\xe6\xd0\x16\x77\xcd\x92\x2b\x87\xac\x7a\x9d\xa0\x7f\x03\x14\xc7\xa4\xdd\x53\x1f\xbd\x47\x79\xa0\xf9\x69\xe4\x0e\x1b\xa0\xa2\xbb\x3f\x75\x77\x28\x20\x3a\xc0\xf6\x04\xb5\xf4\x0e\x16\xe0\xfc\x65\xb3\xcb\x81\x40\x16\xd5\x1a\x49\x9d\xfa\x5e\x08\xf6\xc5\x09\x3e\x7e\x21\x82\x72\xaf\xb5\xdd\x36\xae\x13\xb9\x50\x87\x19\x03\xbd\xac\x21\x69\x0e\x1a\x95\xe6\x7e\x1e\x8a\xd5\x81\x8a\x22\xf9\xba\x45\x21\x8d\xef\xb5\x03\x99\x73\xeb\xef\xe4\x04\x4f\xb6\x3d\x35\xe7\x33\x4c\xf1\x7e\xc2\x84\xa5\x45\x92\x83\x06\x26\x90\x3f\x3d\x49\xf5\x22\xd1\x17\xa0\x27\xb1\xb7\x66\xff\xc1\x01\x06\x2c\x4e\x04\xce\x29\xd0\x1a\xbe\x03\x36\xaa\xb1\xfb\x6f\x76\x8f\x61\x6e\xec\x33\xd0\xad\x66\xe0\xfc\x10\x51\x2a\x58\xf3\xb7\xe3\x11\xfb\x69\xc4\xce\x47\xec\xf4\xf4\xf4\xdd\x88\x09\x1e\xad\x6c\x8f\xf0\x27\x08\x7a\xc9\xf9\xd2\xb4\xed\x74\x72\xfd\x03\x80\x3d\xd8\x1c\x56\xe6\xc8\x34\x06\x9a\x07\x6a\xba\x3e\xf2\x60\x5f\x01\xc1\xdc\xa8\x50\x61\x53\x82\xd1\x4a\x25\xbe\x53\x80\x2e\x13\x91\xd2\x16\x9f\x96\xe5\x4a\x5b\xac\xcd\x33\xd7\x3c\x91\x50\x6f\xc0\xeb\x48\x43\x7a\x72\xc0\x91\x25\xbe\xf1\x35\xbc\x7f\x22\x1d\x4d\x88\x19\xa6\x07\xd7\xff\x7c\xbb\x49\x22\x18\xcf\x17\x9d\xe4\xb9\x39\x9d\xb3\xa9\xbc\x67\xef\xff\x95\x8d\x37\x9b\x54\xb0\x31\xfb\x1b\xfb\x89\x4b\x2e\x39\xfb\x89\xfd\x8d\x9d\x73\x99\xf3\x54\x15\x1b\xc1\xce\xd9\xdf\xcc\xb0\x99\xf6\xae\x95\x39\x0e\xb7\x23\xc6\x99\x2c\x52\x3c\xf5\xdf\x5a\x1c\xcb\x3b\xf7\x5e\xdc\xcf\x8e\x15\x9b\xcc\xd4\x9a\x8e\xc2\x5f\xb0\x9a\xc1\x8c\x4c\x22\x97\xa9\xc8\xad\xc4\x6b\x09\x71\x84\x0f\x38\x81\x37\x7d\x3f\x95\x2e\x96\xf7\x8b\xe9\xf1\x2f\xec\x6f\xec\xba\x48\x53\xd3\x25\x63\x68\xcc\x42\x7a\xcf\x2c\x02\x5c\xc8\xd3\x97\xe4\x29\xd9\x88\x38\xe1\x80\x01\x37\xff\x75\xf6\x00\xb3\x3d\x2b\x3c\xe5\x40\xb8\xa7\x1d\x85\xed\x77\xe1\x9d\x19\xa2\xe5\xec\x98\x8c\xed\xe4\x77\xdc\xfc\xca\x3f\x1d\xee\x11\x79\xc2\x15\xda\x0f\xe4\xb0\x22\xfd\x70\xc8\x98\xbc\x97\x09\xa8\x1c\xb6\xb6\xad\x86\xa3\x20\x3c\xd4\x0f\x35\xb2\x40\xc0\x7d\xf4\x3b\x64\x0f\x36\xe4\xbe\x26\xb7\xc6\xe5\xfa\x1c\x92\x57\x83\x2f\xe9\xeb\x4f\x7b\x65\x85\x1c\x87\xeb\xa7\x32\x03\x79\x69\x88\x55\xd2\x8b\xaa\xbd\xd2\xd9\x47\x8a\x5d\xc4\x42\xaa\xdc\x5c\x64\x64\x92\x9e\x99\xad\x7a\x76\xad\xa4\xb9\xb6\x66\xc9\x12\x6b\x66\x01\x01\x91\x01\xaf\x8d\x75\x0a\x1e\xca\x2e\x6b\xb0\x05\xc0\x3f\x30\x5d\x42\x54\x4e\x6e\xac\x80\x99\x82\x74\x3b\x95\xe6\x17\x74\x22\x01\x42\x37\x71\x64\x40\xf8\x34\x2b\x0a\x47\xcf\x22\x83\x1c\x34\xde\xb0\xc0\xba\x74\xd4\x0e\x22\xe1\x81\x6a\x93\x03\xa2\xe2\xd7\x01\xad\x00\xb5\x66\x6b\xce\x10\xfc\x33\x17\xa9\x92\x4b\xb3\x2a\xda\x8c\x80\x5a\xf3\xe4\x90\x9c\x78\xd8\x05\x6c\xac\xb5\x07\xe6\xb0\xa4\xaf\xd0\x94\x04\x62\xd6\x24\x66\x03\x82\x98\x2e\x22\xeb\x4e\x43\x7a\xb9\x96\x97\x18\xaa\xd0\x53\x5f\xa5\xa0\x7d\x4d\xc9\x59\x17\xed\xc7\x83\xd3\x46\xd3\xec\x1b\xf5\xdb\x54\x9d\x98\xbe\xe6\x50\x08\x65\x13\x6c\x30\xd9\x05\xf5\x7a\xac\xc7\x5f\x13\xde\xf7\x9a\xaa\x7a\x8d\x12\x7a\xf0\x3d\xd3\x1a\xfd\x69\xa8\x4c\x9e\x1d\xbd\x63\x20\x9f\xbe\x22\x6b\xee\x4c\x2d\x6c\x11\x58\xff\x33\xbd\xc6\x5b\xdc\x0f\x7a\x12\x72\x95\x85\xfc\xbe\xf5\x85\xd3\x96\x6f\x50\x72\x46\x19\x89\x7e\x9d\xad\x0e\xd8\x8d\xfc\x80\x3f\xbf\x55\x69\x12\x75\xe3\x75\xec\x71\x05\x22\xce\x35\x00\x04\xe8\xa9\xbb\xf8\x0f\x75\x0a\x3d\xf4\x5c\x44\xb9\xcf\xb8\xd5\x5f\x6e\x50\x38\x8c\x02\xac\xae\x15\x90\x92\x70\x29\x2d\x38\x6a\x80\x04\x05\xd8\xea\x30\xf4\x08\x55\x31\x90\xea\x8d\x38\x45\x64\x4b\x1d\x01\x7b\xf5\xb2\x52\xa9\xb9\x9a\xc8\x98\x08\x65\xa6\x72\x23\x74\xa4\x52\x9e\x1b\x6b\xf8\x42\xa4\x01\x49\x1a\x7b\x4a\xd8\xb7\x80\xcd\x03\x04\xcd\x3b\xe2\xbd\x17\x2e\xe5\xea\x74\xc8\x77\x2f\x5b\xab\x7d\x75\x58\x40\xe6\x78\x60\x9b\xae\x55\xf0\x99\x20\x30\x38\x14\x24\x1f\x5c\x49\x9e\x99\x41\x2f\xf5\x67\xd8\x0c\x0b\xc7\xf6\x19\xf9\x7b\x44\x5e\x99\x57\xba\x4a\x54\x87\x12\x88\x81\xb0\xae\x03\xf1\x14\x99\x80\xee\xac\x05\x47\xd7\xc4\xd3\x74\xd0\xa4\x4e\xa5\x4f\x17\xbe\xc9\x42\x37\xa5\x71\x9e\x91\xf7\xc6\xc2\x79\x46\xec\x4d\xe9\x45\xdf\x00\x71\x8c\x54\xf0\x3c\x4a\xe9\x94\x86\x06\x96\xeb\x88\x25\xf9\x54\x26\x19\xae\x4c\x2d\x52\xf1\x6c\x7a\x17\xc6\x4e\x09\xfa\x61\xaf\x92\xf6\xb5\x01\x11\xca\x6d\x21\xa1\x93\x4c\x83\x12\x6d\x1d\x12\x90\x70\x88\xd3\x82\xa6\x74\x21\x81\xec\x53\x7c\x43\xe1\xee\x74\x6b\xd1\x10\xb1\x90\xb6\x7f\x00\x92\x40\x55\x96\xa9\x9c\x2c\xa0\x9a\x0b\x6a\xc8\xe2\x18\x2f\x65\x96\xfe\xd1\x55\x83\x27\x14\x2b\x55\x74\x45\x75\x8a\xbc\x28\xdb\x80\x3b\x49\x3c\x0b\xbd\xcd\x21\xc6\x09\xe3\x2a\x05\xcf\x57\x2c\xc9\x47\x50\xc6\x6f\x0d\xc7\x54\xf2\x98\x54\xaf\xa8\x39\x33\x34\xb0\xee\x3b\xe6\x99\x3e\x9f\xab\xe7\x2e\x3f\xef\x50\x10\x14\xee\xea\x4d\xca\xe5\x0c\x0d\xea\xaf\x00\x83\x0a\x14\x35\xda\x32\x7f\xc5\x7c\xe6\x14\xae\x8f\xd2\x4f\xe7\xfd\xdc\x95\x74\x6e\x8c\x5b\x67\x1f\x34\xc2\xc5\xe0\xa9\xc7\xac\xb7\xee\xc2\x16\x94\x6c\xd7\xcc\x26\x24\xfb\x5b\x01\x8f\x90\xe2\x95\xc4\xbc\x5d\xad\xbb\x20\x52\x76\x05\xfc\xa8\x70\x9d\x3e\x33\x5f\x39\x43\xaa\xd3\x3e\x1c\x29\x52\x73\x98\xf6\x42\x8b\xec\xe8\xd6\xeb\x22\x46\x5a\xc3\x0a\x75\xe4\x88\x7d\xdb\x20\xfb\x85\x30\x68\x81\x61\x29\x17\xf5\x68\x56\x4c\x09\xaf\x25\xaa\x01\x6a\x78\xcc\x90\x6d\x59\x57\xb9\x77\x15\x25\xf4\xeb\x94\x4d\x24\xb3\xd1\x8b\x11\x7b\x83\x0b\x2b\x7b\x43\x11\x39\x92\xdd\xa1\x54\x72\x4c\xbb\x87\xea\xce\xaa\xc8\x04\x44\xff\xfa\xed\x86\x89\x91\x36\xef\xb3\x39\x67\x73\xcc\x71\xf9\x29\x01\xf4\xf1\x3e\x05\xa6\x98\x54\x9b\x63\x03\x74\x48\xe2\x2d\x74\x8b\x3e\xac\xf2\xc1\x5d\xff\xc2\x36\xfd\xc3\x7e\xb2\x3f\x34\x43\xb4\x29\xe8\x3c\xb5\x9f\x33\xa5\xa7\xd2\xb6\x46\x11\xba\x0c\x19\x9a\xab\x4d\xd9\xab\xaf\x77\x81\x83\x95\x0a\x39\x7d\x4b\xca\x0d\x5c\xef\x9e\x23\xa7\x6a\x05\x00\x23\x30\x17\x5e\x30\xec\x94\x8d\xfd\xd3\x8c\xe3\x61\x16\xf8\x1a\x8f\x79\xe2\x84\x13\x32\xda\x02\xcd\x4d\x9a\x9a\x41\x49\xf2\x8c\x7c\xb6\x00\xa8\x9c\x15\x40\x3e\xb3\x28\x8c\x31\x0a\x18\x7a\xa6\xd2\x0c\x1e\x5b\x24\x00\x83\xa5\x71\x99\xca\x8f\x2a\xb3\x75\xb1\x99\x1f\x0f\x0b\xa9\xa4\x61\x7b\xe3\xb8\xc9\xe9\x0f\x17\x70\x68\x53\x08\xbc\x22\x56\x07\x08\x75\x2a\x6e\xdf\xaa\x42\xfb\x97\x8a\xb8\x9c\xca\xff\x34\xc3\x83\x52\x51\x4e\x67\x4d\x2d\x70\x0b\x5b\x71\x3f\xf6\xf6\x0b\x36\xfa\xf6\x9f\xdf\x7d\x79\x87\xf5\xe9\x45\x06\x72\x10\xa3\xf2\x01\xe2\xc8\xda\x8a\x34\x85\xc4\xac\x7d\x03\x57\x56\xee\x1f\xd1\x29\x3d\x4e\x77\x9c\x99\x2c\xbb\x18\x7d\x36\x7a\xd7\x0a\xf6\xb1\xd8\x31\x8b\x78\x1e\xad\x4e\xac\x2f\x47\x66\xcc\x9e\x7e\x34\x7d\xc8\x0b\x6f\x3c\xad\x66\xbe\x32\x73\xff\xd2\x6b\x27\xb7\x56\x5a\x2f\xe6\x15\x00\x67\xf2\x50\x5a\x95\xa1\xa8\x21\x2e\x4e\xaf\x74\xe6\xfd\x3c\xf7\x75\x4b\xf6\xee\x03\xa8\x14\x34\x96\x7c\x2d\x62\xf6\x06\x6a\x1f\xde\xd8\xc9\x9f\xca\xcd\xfc\x34\xdd\x2e\x72\x22\x6b\x31\x83\x72\x0a\x74\xc8\x3b\x4e\xb9\x59\x5c\xbf\x26\xed\x18\xec\xd6\x8b\x56\xb3\xaf\xe3\xc6\xc6\x3d\xa9\xbf\xc3\x82\x21\x1f\x37\x3a\xf7\x65\xc4\x4c\x99\xed\x8e\x67\x4f\x23\x36\xd7\x5c\x02\x3f\x68\x1c\x3a\x55\x7e\x77\xa2\x9a\x39\x30\xa1\x50\x02\x87\x4b\x9e\x6e\x01\x4a\x3d\x9a\x4a\xa4\x8d\x01\xe6\xa8\x6d\x94\x26\x11\x2a\x2b\x56\xfc\x20\xf1\x2c\x64\x7e\x49\x75\xd2\x16\xb3\x7d\x68\xa6\xd5\xd5\x5d\x1f\x24\x11\x39\x29\x7b\x3b\xdc\x17\x94\xfb\x80\x63\xa4\x05\x60\x99\xe7\xdb\x00\xe3\xe9\x16\xf8\x88\x08\xd6\x81\x59\x87\xfd\xb5\x98\xab\xd4\x52\x13\x4d\x2e\x98\xd2\xc0\xf7\x98\x2b\xfa\x53\x12\xb7\x9d\x62\x89\x8c\xc5\xb7\x83\xea\x83\xbb\x0f\x24\xeb\xde\x99\xc7\x04\xb4\x82\xd5\x97\x85\x5d\xa4\x85\x39\x2c\x72\x7b\x83\xab\x7d\x2b\xab\x02\xce\xc6\x69\xbe\x02\x14\x18\xe2\x8f\xfd\xa0\xae\xf9\x96\x45\x2b\x2e\x97\xc1\x15\x1a\x40\x39\x62\xa3\x34\x32\xf9\x3f\x03\x11\x8f\xd2\xb6\xfe\x8a\xaa\x8a\x08\x04\xed\xe2\xbf\x88\x3d\x54\xb6\x74\x88\x2f\x97\x5a\x2c\xa1\x24\xb6\x24\x00\x8d\xf6\xd3\x51\x32\xe2\x73\xba\xca\xca\x8e\x53\x9b\xdd\x76\x6b\xc9\xf5\xd6\x15\xe5\x90\x0c\x86\x1b\xba\xda\xb0\x8e\x58\x22\x4e\x47\xec\x0f\x1e\x6f\x29\x22\x25\x5d\x55\x4f\xf3\x3b\x6c\x2a\x91\xda\x1d\xb6\xa8\xa1\x88\xbb\xb9\xef\xf0\x59\x4d\x4c\xa3\x71\xd1\x74\x96\x45\xe5\x3c\x2f\x06\xd8\x4a\x12\x4c\x3a\x37\x3f\xbe\xc7\xdf\x76\x42\x92\xf9\xc6\x98\x37\x4b\xa0\x61\xbe\x6f\x2c\xbc\x79\x36\x71\x7b\xb5\x8c\x75\x73\xdc\x2f\xe8\x7e\xaa\x96\xaf\xea\x52\xda\x2a\xe9\x56\x97\xd2\xcd\x44\xda\x52\xf9\xdb\xf1\x4e\x43\x43\x99\x16\x9b\x49\xa8\xeb\xac\x7a\xdd\x6a\xb0\x00\x4e\x62\x56\x69\xf4\xdb\x11\xc8\xe0\x0a\x90\x4b\x46\xb2\xe9\x40\x28\xb1\x28\x80\x6c\xd6\xf7\xba\x1b\xb7\xf1\x37\x34\x0f\xff\x63\xcb\xbd\xd8\x7a\x26\x4d\x83\x1e\xee\x4f\x1c\x27\x3d\xf0\x9c\xf2\x62\xf3\x40\x4a\x6b\x83\x9b\x4a\x27\xcb\x44\xf2\x5c\x69\xf6\xf6\xd6\x32\x39\xbe\x73\xec\xc3\x30\x8a\xc7\x30\x13\xa5\x21\x42\x33\xd1\x7c\xf7\x02\x78\xaf\x88\x67\xc3\x58\x70\x9a\x64\x1f\x77\xc2\xd7\xcd\xb7\xb2\x9c\xaf\x37\x21\x81\x9b\x53\x23\xa2\x91\x49\x71\x10\x98\xed\x18\xc4\xf8\x92\xcc\x97\x24\x4d\x25\x45\xc6\x71\xde\x94\x6e\xd0\x33\xae\xbe\x25\xf8\x91\xb3\x3d\x49\x09\xd0\x8f\xef\xf1\xeb\xce\x8c\xe2\xdd\x95\x4d\x18\xf8\x7b\x41\xc9\xd1\x86\x17\x45\x3e\xa9\x0c\x4e\x6d\xbc\xe2\x39\xb3\x61\x4e\x49\x5b\x7b\x7d\x9e\xaa\x22\x66\x64\x34\x28\x3b\xa9\x4f\xf1\xf4\x01\x82\xb7\xd3\xd3\x36\xb6\x9b\x81\xfa\x22\x6e\x7f\xc3\xef\x9a\x57\x38\x7c\xd6\x62\xe1\x3a\xb7\x16\x8d\xec\xb0\xd8\x13\x25\xe6\x3f\xf2\x4d\x77\x05\x3d\xb7\x37\x67\xac\x77\x09\x15\xb5\x1b\xf6\x7e\xcb\x70\xb9\x68\x28\xb0\xcd\x0c\x0b\x94\x59\xfd\x18\x58\xcf\x61\x20\xb9\x81\x0f\x2f\x44\x64\xf2\xec\xe9\xe0\xc7\xd9\xc2\xce\xee\x47\x6d\xb8\x16\x32\x9f\xc1\x13\x87\x3d\x0c\x1e\x72\x0b\x3f\x2f\x39\x24\xbd\x02\x82\xff\xfe\xa0\x30\xce\x6b\x4b\xcb\xff\x83\xdd\x53\x6c\x23\xb3\x5a\x74\xe6\xf4\x79\x9b\x00\x14\x23\xc8\x89\xb9\x89\x6b\x99\x2e\x7a\xa1\x3d\x46\x2f\x78\xa1\x92\xe9\xec\xf5\x42\xbe\xf7\xc8\xcc\x6e\x5a\xa1\x30\x0f\x15\x14\x1a\x53\x66\xff\xe6\xd7\x1c\x16\xe9\xfa\xec\x2c\xe3\x39\x33\xf3\x97\xb2\xff\x12\x5a\x79\x94\x3c\xe9\x5b\x07\x0d\x77\xfa\xc3\xfb\x6b\xa0\xa0\xbf\x8b\xea\x1b\x21\xfd\x3c\xfc\x85\xaa\xf7\xf1\x66\x39\xdf\x5a\x77\xbf\x25\x95\xb0\x11\x11\xce\xc3\x9e\xc7\x66\x70\xb1\x0b\xec\xbb\x0d\x7d\xb9\xc3\xc2\x6e\xd0\x33\xb8\xb7\x12\x3f\xd6\x9a\x6f\x08\xf6\x44\x08\xcb\x6a\x10\xff\x14\x5e\xe2\xdf\x7f\xf9\x8f\xd3\x36\x1d\x26\xe8\xfa\x50\x14\x89\xeb\xfc\x07\x9d\x08\x19\x43\x52\x8e\xc7\x0e\x8a\xe5\xcc\xa2\x2c\x45\x69\x4b\xe6\xd9\x2c\xc3\xa3\x14\x93\x35\x9f\x83\xd9\x0c\x17\xd1\x77\xc8\xec\x7a\x23\xeb\xb6\x6f\x29\xef\xd3\x76\x54\x67\xb3\x78\x2b\xf9\xba\xae\x5c\xf5\xaa\x7d\xdc\x26\x22\x8d\xa1\x8b\xf4\xf4\x5d\xd9\x89\x58\x44\x4f\x43\x7d\x82\xbd\xa9\x5e\x45\xf4\xc4\x7e\x7e\xf8\x78\x85\x9a\x0d\x49\x36\x95\xd7\x3c\x4f\x9e\xc5\xa3\x4e\x5d\x58\x18\x8d\x4f\xa1\x53\xbb\x47\xca\xd4\x83\x58\x0c\x57\x80\x30\x2a\xf1\x14\x5a\xc7\x21\x64\x86\x5d\x6f\x4f\xe6\x45\xf4\x24\xf2\x33\xcd\x65\xac\xd6\xf8\x1a\x67\x59\xb1\x58\x24\xdf\x4e\x73\xae\xdf\xed\x82\xb8\xef\xb4\xa4\x07\x5c\x12\x0e\x31\x28\xf5\x6b\x80\x53\xd2\xf0\xb6\x39\x89\x43\xf5\x57\x67\x99\x3d\xef\x9e\x33\x29\x10\x6f\x6c\xb9\x88\x9c\x52\x3f\x1b\x9e\x30\x60\xf4\x9a\x0f\xd6\xef\x74\xc5\x6a\x63\x00\xec\xd3\x7d\x1b\x21\xbc\x55\x2a\x3d\x34\x4a\xc8\x53\xbb\x49\x66\x20\x09\x70\x88\x0b\x8e\x0b\xc0\x5d\xb6\x27\x17\x2e\x5f\xe5\x28\xf5\x28\xd6\xe0\x04\x79\x00\x4a\x41\x5d\x00\x00\x03\x74\xa2\x03\x74\x98\x6d\x1a\x12\x96\x03\xc1\x93\xd0\x06\x22\x1d\x9c\x34\x6f\x2d\x6c\x19\x94\xc3\x72\xdf\x47\xa0\x1d\xaa\xf4\x70\x50\x00\x01\x09\xfc\x2b\x8f\x72\xc1\x84\x90\x9e\xcc\x8d\x63\xf0\x6c\x3b\x9e\x28\x1b\x64\x6c\x0e\x79\x3e\x53\x19\x78\x39\x48\xcc\x61\xd1\xa9\x6e\xd4\x9a\x62\x0c\xa5\x65\x78\x70\x8c\xe1\x10\x0e\xca\xce\x20\xf4\x45\x28\x0f\x01\x79\xd4\x48\xad\xe7\xe6\x9e\x8f\xd5\x8e\x14\x78\x03\xf7\x6c\x6c\x29\x7e\x5c\x90\xd4\xba\x59\xc8\x31\x5c\x19\x7b\x77\x34\x84\x6c\x49\xa1\xc9\xda\x75\x85\x09\x7d\xe2\xe3\xd2\x65\x36\xdb\xd9\x71\xf5\x0d\x40\xa6\xfd\x85\x6f\x33\xd0\xd2\x10\xc6\x2a\x2e\x30\xd8\x54\xee\xff\xc8\x87\x40\x1c\x7d\x14\x09\x53\x15\x24\xb1\x43\xef\x92\x60\x09\xb8\x48\xad\x6a\x88\xa7\xd6\x78\x93\x35\x0f\xce\xaf\x13\x3f\xd6\x9d\xf1\x63\x4c\xe0\xfc\xcf\x08\x19\x77\x04\xa6\x0e\x8c\x8f\x05\xc7\xa4\x56\x11\xe9\x49\xe7\x0c\x24\xb6\xd0\x1c\x9b\x67\x8f\xd8\x9a\x27\x92\xb6\x41\xae\x8d\x81\x8c\xc5\xbc\x58\x2e\x5b\xc3\x36\x3f\x7e\xfc\xb7\xbc\x4f\xfe\xe1\xe3\x73\x9d\xe4\x30\xc7\x88\xb0\x4d\xec\x93\x30\x6d\x6c\x7c\xe5\xef\x13\x54\x3b\x52\x84\x70\xd2\x27\x42\x68\x71\x07\x50\x0d\x41\x2e\xbe\xcd\x0d\xff\x16\x3a\xfc\x3e\xa1\xc3\xc6\xdc\x48\xb5\x87\x58\x81\x3f\x4b\xca\x0e\x70\x47\x0f\xf7\x24\xf2\x71\x8c\x6f\xd0\x2b\x52\x91\xca\x84\x8c\x33\x50\x74\x3f\x3e\xb3\x0f\x9c\x3e\x87\xc7\x28\x76\x24\xbc\xef\xd5\x5a\x30\x78\x54\x86\xcc\xca\x8c\x0a\x4e\x46\x80\xa4\x32\x2f\xe8\xb3\xc4\x94\x83\x86\xe3\x0a\xb3\xd5\xb1\x77\x5a\xdf\x4a\xf1\xc2\xcc\x69\x30\x0a\xa1\x25\xc1\xf4\x00\xe5\xfe\x3b\x92\x81\xf5\x38\x54\x57\x5d\xab\xc5\x92\xeb\x18\xd0\xcf\xb4\x25\x53\x1e\x3d\x99\x7f\x87\xfe\xd1\x13\x09\xfe\x62\xd9\x3f\x11\x92\xe5\x5b\x4b\x64\x84\x92\x9c\x84\xb4\xf1\xfd\xc3\x9f\x67\x8c\x47\x5a\x65\x78\x8b\x8f\x0b\xed\xeb\xe3\x25\x38\x88\xcf\x49\x5c\xf0\x14\x9f\xd8\x1a\xfd\xe3\xd9\x41\x6c\xa6\xe3\x80\x54\x5e\x7c\xdb\xa4\x5c\x96\xf7\x24\xbe\x2e\xd0\x49\x24\x1d\x2b\xdf\xb1\x22\x7d\x57\x76\xb7\x50\xda\xd1\x6f\x2b\xf4\x3e\xb5\xe0\xf1\x36\xe4\x8e\x49\x24\xe9\xb5\xf1\x78\x9d\x48\x33\xf5\x56\x33\xc4\xd9\x57\x68\x3a\xe2\x29\x82\xc0\x80\x5a\x3b\x4d\x2b\x5b\x3f\x63\x52\x18\x97\x85\xeb\x24\xdd\x82\x97\xba\xd1\xe2\x24\x78\x4e\xb0\xbf\x09\x83\x9e\x64\x53\x69\xeb\x9c\x8b\x4c\x2c\x8a\x14\x7d\x59\xb8\xed\xb9\x17\xa0\x7d\xf8\x38\x19\x99\x63\x2c\x27\x42\xdb\xe0\xc1\x28\x13\x71\x0c\x3c\x6f\xfd\x9e\xd5\x2b\xe6\xed\x39\x8d\x34\xc0\x0d\x57\xea\xc5\x16\x1d\xbc\x70\x8f\x2a\x6b\x3b\x4b\x8e\x16\xe7\xec\xf6\x6a\xec\x7d\xc2\xee\x4a\x1c\xf4\xb2\xb6\x2a\x7d\x26\x62\xb7\x13\x13\x09\xaf\x43\x0a\x4b\x84\x41\x11\x31\x2b\x32\xac\x5d\x30\x73\x08\xd6\xda\x5e\x9b\xb1\x9a\xc3\xaa\x73\x31\xf7\x76\x49\xa6\x24\x9b\x16\xbf\xfb\xdd\x1f\x05\xfb\x1d\xe9\xf7\x81\x95\xc1\x08\x35\xb0\x1a\x61\xeb\x60\xa0\xdc\x03\x04\x52\x1e\xd5\x66\x84\x35\x81\xb0\x6c\x21\x21\xc0\x98\x78\xb4\x62\x59\x31\x47\x8c\x0e\xa7\x20\x27\x97\x8e\x34\xf0\x4a\x01\xdc\x06\xcf\x31\xdb\xfb\x01\xc1\x82\x5b\x3a\x5f\x6c\x20\x20\xc0\x09\xc2\x40\x87\x22\x3d\x30\x28\xf8\x92\x60\xc0\x6f\x41\xa9\x67\xc4\x7e\x4e\x9e\xc5\x88\xdd\x6f\xb8\x7e\x1a\xb1\x0b\x0c\xb7\xfe\x59\xcd\x77\xde\xff\x8f\x11\x03\x73\x6e\xea\xe0\xe0\x7e\x63\x34\x69\x14\x50\x65\x06\x21\xfe\x7a\xb4\xc6\x22\x2c\x40\xfb\x04\x55\x64\x77\xe9\x91\xb4\xf2\xa9\x1e\xeb\x16\xd3\x0e\xeb\x6b\xbd\xd3\x54\xad\xb4\x3f\x4f\xa9\x6a\xaa\x09\x69\x62\xce\x31\x58\x89\xe6\xc5\x4f\xc0\x33\x51\x9a\x6d\x52\x9e\x9b\xb5\x92\x51\xf8\x19\x57\x05\xe2\xef\xf0\x44\xae\xd4\xc2\xf5\x75\xbc\xec\x83\x67\x1b\xa5\xd2\x46\xff\xeb\xa8\x03\x58\x8b\x76\xf6\x1d\xbc\x09\xd6\x10\x64\xa1\x57\x62\x47\xd1\x47\xce\x7c\x9c\x2d\xd0\xe2\x86\xd5\x14\x17\x90\x44\xf0\xc3\x11\xca\xc3\x18\xb3\x82\xa8\x47\x74\x44\xac\x9a\x18\xb7\x1e\xa2\x71\xa2\x28\x84\x18\xa2\xed\x6a\x31\xbd\xac\xfe\x9c\x16\xb7\x10\xda\x9d\x25\x4d\x85\xf0\x43\x37\xd7\xc3\xaa\x31\x50\x8f\x3d\xb7\x06\xdc\xe2\xce\x77\xd1\x00\xda\x22\xbb\x59\x94\xf2\xac\x27\x92\xad\xd1\xee\x4c\xa8\xa1\x73\x68\xa7\xbf\xcd\xfc\x19\x62\xaa\xeb\x9e\x07\xe6\x54\x8e\x1d\x0d\x9e\x77\xb5\x9c\x7b\x88\x66\x16\x1d\xe3\xda\xd4\x20\x98\xdd\x73\x26\x8e\x58\x56\x44\x2b\x80\xeb\x97\xed\x54\x68\xb7\xea\x3b\x76\x34\x95\xc6\x59\x41\x15\x09\x0e\x09\xe1\x17\x20\x1c\x4f\xfe\x4b\x38\x6f\x88\x50\xa1\xa1\x03\x34\xe7\x66\x6a\x48\x3e\xbe\xea\x2c\xda\xca\x09\xae\x9f\x44\x1c\x84\xfa\x8a\x4d\xcc\x73\xe3\x3d\xbb\x43\x0e\xd6\xaf\xe3\x0f\xb5\xde\x67\x16\xbe\x58\xe8\x2c\x57\x2c\x6d\x9a\x2c\x44\xb4\x8d\x6a\xbc\x20\x25\x18\xc6\xf1\x62\xca\xfb\x85\x54\xbb\xf8\x23\x9a\x6f\xca\x9f\x6b\xf5\xce\xac\x2d\x77\xfd\x3f\x13\xb1\xd6\x42\x61\xf0\x8f\x1e\x15\xdb\x91\x66\xfe\x0d\x7c\xf6\x0f\x19\x41\xea\xc7\x5e\x50\xb2\x5f\x16\xdf\x05\x37\x56\xf2\x9a\x1b\x51\x65\x3f\x56\x81\x6a\x12\x87\xfb\x06\x49\x27\x5b\x12\xf1\x3b\xb6\x02\x95\x01\xc7\xae\x44\x79\x00\x28\x9d\x7e\x6a\xc7\xeb\x3c\x55\x59\xa1\xbb\x37\xff\x5d\xb9\xd7\xf6\xe9\x0d\x0c\x86\xb0\xd8\xd6\x73\x01\xd5\xe7\x5d\xf0\x91\x5d\x8e\x82\xb9\x2f\x55\x7f\x4f\x78\xab\x17\xc1\x22\x84\xca\xb7\x68\x02\xd5\x7e\x17\xc4\x40\xe0\xe4\x5d\x8a\xd0\x0b\xa8\x1c\x8e\xa5\xc5\x55\xca\xf7\xfd\x50\x98\xee\xc6\x3b\x58\x85\x35\xa7\x14\x2e\xeb\x95\x21\x3d\x46\xf6\xe1\x96\xe7\x2b\x0c\xe4\x80\xa6\x3e\x66\xcb\x73\xe3\x40\x21\x8c\x07\x53\x12\xf3\x54\xcd\x41\xe6\x0b\x54\xb8\xdb\xd6\x39\x2d\xce\x5e\x43\x57\x9f\xb0\x3e\x6b\xdb\xec\x07\xa8\xf9\xd3\x22\x03\xea\x87\x7a\xce\xaf\x2f\x42\x76\x58\xb0\xa9\xde\x5d\x63\xb6\x2e\x6a\xc1\xa6\x3a\x75\xb6\xb1\xea\x00\x97\xbc\xdc\xa3\x46\xe2\x32\xac\x9b\x33\xc7\x1b\xb1\x88\x52\x52\x1d\x89\x04\x2b\xef\x6b\x75\x14\xa7\x72\x8c\x9f\x94\x54\xc7\x9d\x44\x84\x43\x24\x92\x64\x96\xdb\x7f\x58\x48\xc7\xc6\x21\x06\x8e\xfc\xfa\x91\xbf\x71\x41\x78\x64\x04\x75\x6b\x32\x4f\xb4\xf1\xa7\x33\x70\x17\xb2\x62\x7e\xe2\x29\x12\x94\x06\x07\x03\x18\x34\x36\x5c\x83\x1e\xe1\x2a\x49\xe3\x93\x86\x83\x04\xe3\xd0\x9e\xea\xdd\x32\x6b\xf1\x94\xcc\x17\xdc\x0b\xb1\x46\xd7\xbd\xbb\x6b\xc7\xb8\xf7\x10\x45\xb2\xf5\xa1\x68\xae\xbb\xec\x45\xe9\xb2\xf4\x6b\x03\x94\x7a\x20\x80\x5a\x24\x82\xfe\xf1\xed\x44\x69\xcc\xfa\xd8\x89\x87\xf2\xd5\xca\xee\x1a\x73\x39\x24\xcb\xd1\x8e\xe2\xfc\xbe\x40\x53\x98\xc0\x6c\xc3\x5f\x24\x51\x13\x74\x53\x1d\xee\x65\x1f\x9a\x75\x56\x8d\x7d\xa8\x41\xb3\xbc\xa5\x90\x44\xf2\x93\x27\x4e\x4f\x67\x14\xa8\xe8\xf1\x34\x0d\x59\xa3\x7d\x28\x68\x2a\x7d\xc0\xc0\x1c\xff\x69\x6a\xfe\x19\x55\x0d\x37\x11\x51\x80\xfa\x7f\x2e\x46\xb6\x8e\x9e\x18\xa8\x28\x8d\x74\x82\x17\x73\x7f\x7d\xde\xb5\x9b\x8f\xe5\x4f\xfe\x60\x25\x84\x3b\x12\xb6\xf8\xd8\xd9\x93\xd8\x0e\xee\x6b\x73\xca\xc4\xcb\xac\x81\x2a\xb9\xab\xe5\x8e\xb8\xd6\x16\xb0\x4b\x4f\x65\x5c\xe7\xc9\x82\x47\xa5\x08\x7a\x4b\x3f\x57\x22\x7a\xda\xa8\x44\x0e\xb6\x45\x41\x7f\xcc\x89\x94\x8b\x2c\x67\xbe\x35\x07\x47\xee\x45\x67\x58\x3a\x98\xf1\x45\x32\x40\x25\x58\xc4\xa2\xe7\xd7\xe1\xcc\xe9\xc8\xb5\x2f\xbb\x63\x5f\x65\x84\x3f\x1b\x5e\x21\x2c\xd3\x1d\xaf\x44\xab\x51\x3f\x9a\x4b\x01\x6d\x5e\x2b\xe4\xe8\x39\xd8\x9c\x95\x58\xa9\x1a\x87\x14\xd4\x58\x40\x46\xfc\x90\x31\xdc\xb3\x60\x6e\x18\x91\x31\x76\x73\x20\xa5\x7c\x4d\xef\x89\x34\xd3\xe1\xa6\x13\x13\xb5\x4f\x5e\x65\xa3\x80\x21\xc4\xb2\x95\x67\xcb\xc3\x5d\x91\x41\xb0\xd8\xf8\xb5\x88\x93\xa2\xaa\x22\x52\x2a\xb1\xfa\xed\x0a\xfe\xbf\xef\x0a\x0e\xa8\x93\xd7\xbc\x7f\x37\x17\xef\xfd\x76\x02\xff\x58\x27\x30\x72\x60\x61\x55\xc2\x90\xa1\xa5\xae\xde\xf9\x9f\x1f\x36\xb8\x82\x05\x3d\xc9\x06\x8c\xf3\x77\xf4\x20\x82\xc7\xd2\x16\x19\x68\x3c\x7a\x1b\xdd\xee\x5c\xab\xf7\x51\xfc\x7d\x21\x28\x4c\xab\x6d\xdf\x30\xe0\x96\x87\x4b\xc7\x5c\xd3\x7a\x07\x6b\xdb\x6b\x7f\x7f\xa8\x94\x53\x1f\x1f\xc4\x58\x46\x97\x84\xba\xb6\x16\x51\x0a\x4c\xc6\x76\x58\xc6\x80\x73\x91\xe7\x6f\x32\x37\xea\x65\x0b\x68\xd1\x8f\x57\x49\x96\x7f\xaa\x08\xdc\xec\xa7\x90\xf3\x6a\xb8\x09\xdb\x55\xec\x66\xf0\x8b\xce\x74\xff\x5d\x39\x21\x6f\xdc\x11\x5c\x73\x40\xca\x64\x25\x0d\x4c\xbf\x87\x9c\x57\x5f\xdc\x78\x7d\x41\x57\xfb\x45\xf3\xcd\x46\x68\x9b\x65\xae\x01\x01\x40\x1f\x00\x9e\x02\x02\x1f\x2b\x81\x2a\x63\x95\x23\xd5\x98\x92\x4a\xd3\xf0\x35\x18\xba\xd3\xe6\x99\xbb\x2e\xd2\xb4\x75\xe6\x76\xd3\x8e\x5f\x3f\x5e\x5d\xcd\x3e\x8d\xaf\x1e\x2f\x3b\x69\xbc\x83\xaf\xb5\x8e\x89\xeb\x09\x8d\x89\x17\x0a\x31\x8f\x15\x56\xe9\x4c\xf9\xb7\xc6\xfb\x4a\x91\xa6\x65\x8a\xf7\xa9\xfc\x42\xed\x00\x64\x0f\xe5\x6b\xcc\xb8\xb1\xce\x81\x2b\x3f\x1f\xbe\xf6\xc5\x34\xfe\x05\x7f\x7b\xc2\xfc\x4b\xbc\x07\x21\x12\x12\x38\x68\x1e\x57\xc2\x03\x1f\xb0\x1d\x10\x20\xd6\xb6\x1d\x8e\x2d\x62\xb1\xdf\xf6\x78\x94\xc0\x17\x28\x62\xab\x3d\x71\x94\xdd\x81\x63\xf7\xa5\x1c\xbb\x75\xb6\x3c\xc6\x1b\x01\xb4\x3b\x42\xe9\x01\x10\x54\xf3\xec\xfc\x53\x89\xd7\x59\xd3\xa7\x5c\xb5\xf7\x89\x4d\x08\x7b\x91\x72\xb9\x2c\xf8\x52\x64\x23\x66\x1f\x3e\x95\xeb\x64\xb9\x02\x66\x46\x52\xbe\x77\x17\x40\x28\xe2\xad\x2c\xa1\x0a\x96\x30\x91\x53\x49\xef\x24\x97\xbe\x79\x44\xd4\xfd\xf9\xde\xbd\x0e\x01\x15\xb1\x21\x52\x4f\x90\x53\x89\x93\x8b\xf4\xcf\x36\xa8\x05\xfe\x32\xcf\xab\x4b\x97\x83\xba\x16\x2a\x0c\x1a\x9b\xbe\x84\xf0\xda\x54\xba\x22\x20\x84\x3c\x86\xea\xfd\x88\x85\xc6\x2e\xed\xb6\x27\x76\x32\xec\x9e\xa0\xbe\x35\xaf\xfa\x83\xcf\x00\xb3\xe1\x66\x03\xa4\xd2\xea\x66\xac\xe7\xd5\x84\x07\x86\xa3\xad\x32\x14\x2a\xbf\x9a\x7b\x63\xdf\x0b\xbf\xd3\x0a\x58\x50\xc5\x3c\x1d\xd0\x25\xfc\x7e\x67\xa7\xd0\x24\x77\x77\xaa\x47\x44\xfb\xae\xb2\xb5\xcc\x32\xed\x7a\xec\x5c\xa9\x96\x79\x39\x62\x6c\xb8\xd4\x29\xfa\xc1\xae\xc1\x28\xa2\x7c\x9f\xf5\xd2\xa3\x5c\xa3\x3a\x44\xd6\xfa\x74\x75\x28\x4d\xb2\xbd\xba\xe3\xfd\xa7\xde\x3d\x72\x1e\x02\x1d\x76\x83\x2c\x2c\x9d\x73\x25\x03\xdb\x62\x26\x29\x34\x68\x35\xc7\x12\x34\x2f\x66\xf3\xa0\x20\x98\x59\xff\x23\xb7\x88\x46\x7e\xe6\x46\xd0\xc9\xa8\xd0\x99\x31\x97\x64\xef\xc8\x6a\x2b\xcd\xf8\x54\x5a\xb6\x5e\x6b\x8e\xc7\x16\x72\xa1\xdd\x5f\xb1\x04\x66\x83\x6c\x97\xe0\xb1\xe6\x4c\x49\x61\xad\xe1\x54\x5a\xa1\xba\x11\xe3\xf3\xcc\xea\xbf\x71\xb9\x75\xa2\x6c\x89\x53\xdc\xe0\x92\x01\x96\x65\xb7\xcd\xab\xb8\x01\xa5\x73\xfe\x9f\xcc\xff\xfe\xfe\x4f\xff\x3f\x00\x00\xff\xff\x7d\xc5\x52\x76\x6a\x3b\x04\x00") +var _adminSwaggerJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xbd\x79\x73\x24\xb7\x95\x2f\xfa\xff\x7c\x0a\xdc\xf6\x8d\x68\xc9\xe6\x22\xc9\x33\x7e\x1e\x4e\xdc\x78\xaf\x44\x56\xb7\x78\xc5\x26\x69\x2e\xd2\xe8\xdd\x72\x94\x50\x99\xa8\x2a\x98\x99\x40\x1a\x40\x92\x5d\x76\xf8\xbb\xdf\xc0\xc1\x92\xc8\xad\x2a\x6b\x21\x59\x6c\xe5\x4c\x84\xc5\xae\xcc\xc4\x7a\x70\x70\xd6\xdf\xf9\xe7\xbf\x21\xf4\x4e\x3e\xe1\xd9\x8c\x88\x77\x27\xe8\xdd\x77\x47\xdf\xbc\x3b\xd0\xbf\x51\x36\xe5\xef\x4e\x90\x7e\x8e\xd0\x3b\x45\x55\x42\xf4\xf3\x69\xb2\x50\x84\xc6\xc9\xb1\x24\xe2\x91\x46\xe4\x18\xc7\x29\x65\x47\x99\xe0\x8a\xc3\x87\x08\xbd\x7b\x24\x42\x52\xce\xf4\xeb\xf6\x4f\xc4\xb8\x42\x92\xa8\x77\xff\x86\xd0\xbf\xa0\x79\x19\xcd\x49\x4a\xe4\xbb\x13\xf4\x7f\xcc\x47\x73\xa5\x32\xd7\x80\xfe\x5b\xea\x77\xff\x0a\xef\x46\x9c\xc9\xbc\xf4\x32\xce\xb2\x84\x46\x58\x51\xce\x8e\xff\x26\x39\x2b\xde\xcd\x04\x8f\xf3\xa8\xe3\xbb\x58\xcd\x65\x31\xc7\x63\x9c\xd1\xe3\xc7\x6f\x8f\x71\xa4\xe8\x23\x19\x27\x38\x67\xd1\x7c\x9c\x25\x98\xc9\xe3\x7f\xd2\x58\xcf\xf1\x6f\x24\x52\xff\x82\x7f\xc4\x3c\xc5\x94\x99\xbf\x19\x4e\xc9\xbf\x7c\x3b\x08\xbd\x9b\x11\x15\xfc\x53\xcf\x36\x4f\x53\x2c\x16\x7a\x45\x3e\x10\x15\xcd\x91\x9a\x13\x64\xfa\x41\x6e\x89\xf8\x14\x61\x74\x22\xc8\xf4\xe4\x57\x41\xa6\x63\xb7\xd0\x47\x66\x81\x2f\x60\x34\xd7\x09\x66\xbf\x1e\xd9\x65\x82\x96\x63\x22\x23\x41\x33\x65\xd7\xfb\x86\x28\x41\xc9\x23\x09\x3b\x30\x13\x41\x7a\x22\xbe\x33\x99\x91\x88\x4e\x29\x89\xd1\x64\x81\x28\xcb\x72\x85\x04\xf9\x7b\x4e\xa4\x42\x53\x9a\x28\x22\x64\xa9\x17\x9e\x11\x01\x2b\x78\x1e\xeb\x5e\x3e\x12\x35\x80\xb6\x8b\x51\x85\x6f\x0b\x22\x33\xce\x24\x91\xa5\x45\x40\xe8\xdd\x77\xdf\x7c\x53\xf9\xa9\x3e\x83\x01\x92\x79\x14\x11\x29\xa7\x79\x82\x5c\x4b\xe1\x60\xcc\x82\x6a\xf2\xc1\xb5\xc6\x10\x7a\xf7\x3f\x05\x99\xea\x76\x7e\x77\x1c\x93\x29\x65\x54\xb7\x2b\x0d\x95\x06\xa3\x2d\x7d\xf5\xaf\x7f\x6b\xfa\xfb\x5f\xc1\x8c\x32\x2c\x70\x4a\xf4\xb2\x78\xba\x32\xff\x57\x99\x8b\xa6\x04\xdd\x79\x41\x2d\xd5\x81\x57\x66\x7b\x89\x53\xa2\x77\x5e\x6f\x97\xfd\x02\xfe\x16\x44\xf2\x5c\x44\x04\x4d\x48\xc2\xd9\x4c\x22\xc5\x6b\x6b\x40\xa1\x05\x4d\xc4\xd5\x27\x7a\x2b\xa9\x20\x7a\xaf\x94\xc8\x49\xe5\xa9\x5a\x64\x30\x48\xa9\x04\x65\xb3\x70\x29\xfe\x75\xd0\x69\x6a\x86\xf6\xd7\x98\x99\xf9\xa0\x75\x62\x23\x36\x70\xaf\x44\x98\xa1\x09\x41\xfa\xc4\xd3\x98\x08\x12\x23\x2c\x11\x46\x32\x9f\x48\xa2\xd0\x13\x55\x73\xca\xf4\xbf\x0d\xf9\x46\x6e\xcd\xf6\x67\x6d\xe0\xcf\xe5\x2b\x73\x2f\x89\xd0\x03\x7f\xa4\x31\x89\xd1\x23\x4e\x72\x82\xa6\x5c\x94\x96\xe7\x68\xc4\xee\xe6\x7a\x1d\xd2\x09\x65\x70\xf2\xf4\x5a\x3a\x0a\xf9\x83\x5b\xae\x3f\x20\xdd\x1f\xca\x19\xfd\x7b\x4e\x92\x05\xa2\x31\x61\x4a\x9f\x6b\x59\x6d\xed\x0f\x1c\xfa\xc7\x09\x3a\x44\x7a\x9d\x89\x50\xb0\xde\x9c\x29\xf2\x59\x49\x74\x88\x12\xfa\x40\xd0\xfb\x0b\x2a\x15\x1a\x5c\x9f\xbf\x3f\x40\xef\x2f\x0a\xc6\x21\xdf\xbf\xc0\x0a\xfb\xbf\xff\x1a\x1c\x3d\x85\x67\xd5\x43\xf7\x6e\xa0\x4f\xf3\xad\xb9\x80\x8a\x16\xfe\xfa\x6f\x61\x3b\x76\xbf\x96\x73\xf5\x82\xa5\x5b\x7e\xde\x95\x8b\xc3\x32\x95\x19\xb8\xd4\x3b\xb4\x2d\xff\xae\xdd\x0e\x0d\xcc\x5b\x6e\xc9\xbd\xf5\xd8\xab\xec\x5b\xbe\x2d\xfe\xad\xa7\xf0\xdc\x3c\x7c\x1b\x06\x8e\x15\x9c\x2c\x4c\x99\x39\x88\xfe\x5c\x0a\xa9\xcf\xa2\x3b\x21\x7b\xc2\xb6\xb6\xe1\xe7\xc1\xcc\x02\x96\xee\x38\x75\xb0\x2a\x7b\x38\xef\x84\xa6\x74\xd5\xfe\x9e\xb3\x58\x0b\x8f\x96\xa1\xb2\x3c\x9d\x10\xa1\x97\xc1\xb1\x56\x98\xed\x44\xb3\x5a\x95\x0b\x46\xe2\x0e\xd3\xfc\x7b\x4e\xc4\x62\xc9\x3c\xa7\x38\x91\x6d\x13\xa5\x4c\x11\x2d\xa9\x57\x1e\x4f\xb9\x48\xb1\xb2\x2f\xfc\xe9\xdf\xd7\x5d\x08\xc5\x1f\xc8\xaa\xfd\x3f\x37\xbb\x19\x61\x09\x64\x90\xe6\x89\xa2\x59\x42\x50\x86\x67\x44\xda\x15\xc9\x13\x25\x0f\xe0\x35\xad\x1d\x10\x71\xe8\x6f\x39\xe8\xc1\xdd\xee\xb9\x84\x5f\xd0\xd4\x33\x3b\x46\x3e\x2b\x68\x69\xc4\xe0\x7e\x87\x25\x0a\x6f\xad\x67\x58\xca\xcd\x68\x46\x72\xa1\xc6\x93\xc5\xd1\x03\xa9\xf5\xdb\x4a\x39\x98\x21\xac\x94\xa0\x93\x5c\x11\x3d\x6f\xdd\x86\xbb\x9f\x81\x3d\x1a\x21\xa0\x0b\x6b\x78\xbd\x09\xc7\x54\x90\x08\xe6\xb6\xce\x81\xf1\x5f\xe9\x79\x6b\x4d\x6c\x61\x66\xff\x40\x16\x20\xf3\x34\xac\x80\xdf\xf2\x11\x1b\x31\x74\x88\xce\x86\xb7\xa7\xc3\xcb\xb3\xf3\xcb\x8f\x27\xe8\xfb\x05\x8a\xc9\x14\xe7\x89\x3a\x40\x53\x4a\x92\x58\x22\x2c\x08\x34\x49\x62\x2d\xd7\xe8\xc1\x10\x16\x53\x36\x43\x5c\xc4\x44\x3c\xdf\x32\x56\x9e\x12\x96\xa7\x95\x7b\x05\x7e\x2f\x46\x5f\xf9\x42\x8b\x31\xfe\x51\xe9\xc9\x5f\x6b\x0b\x0c\x33\xd6\x7d\x07\xad\xbd\x98\xe0\x14\xcd\x69\x12\x0b\xc2\x8e\x15\x96\x0f\x63\xf2\x99\x44\xb9\xb9\x93\xff\x59\xfe\x61\xac\xa5\x5f\x1e\x93\xf2\x2f\xa5\x7f\x14\xe2\xd6\xda\x9f\x7a\x7d\x7b\xed\x2f\x41\x3b\xef\xf6\x1d\xfc\x42\xe3\xc6\xb7\xe1\x97\x15\x73\x70\xef\x2c\x19\xac\x7b\xa5\x75\x54\xee\x05\x2b\xec\x35\xbe\x23\x88\x12\x8b\x31\x56\x8a\xa4\x99\x5a\xd3\xf2\x80\x51\xa2\x65\xd7\x65\xb2\xea\x25\x8f\xc9\xd0\xf5\xf7\xab\x15\x41\x8d\xb0\x69\xb8\xd6\x94\x08\xc2\x22\xd2\xde\xc2\x1d\x96\x0f\x45\x0b\xab\x05\x5e\xa0\x31\xa4\x97\x1f\x15\x04\x56\xeb\xb8\x10\x7b\xf5\x92\x14\x6f\xae\x12\x76\x4b\xf3\x91\x1f\xb8\xd0\xc3\x7b\x0b\x02\x6f\x69\xe0\x2f\x21\xf3\x6e\x7a\xa2\xbf\x38\x2b\xc7\x86\xfc\xa9\xb7\x89\x6c\xbf\x92\x5d\x2d\x28\x5c\x20\xb9\x90\x8a\xa4\x2b\x6d\x29\x6f\x67\x21\xec\x05\xb4\xaf\x03\xae\xdc\x81\xbf\x81\x53\x5f\xbe\xd1\xfb\xe3\xbd\xc6\x92\xed\xca\x12\xba\xef\xf3\x74\xde\xae\xe5\x53\xbd\x75\xdb\x17\xb8\x7b\xde\xc4\x34\x4b\xb2\xe6\xae\x07\xf9\x4c\xe6\x8c\xd6\xbd\x72\xab\x3d\x86\x01\xac\x50\x64\xcb\xb6\x74\x7f\xfe\xf4\xa7\xa1\x05\xc8\x98\xfb\xd4\x9c\xca\xc0\x18\x86\x22\x2e\x8c\x2c\x18\xdb\xf3\x6e\x74\xd9\xc1\xdd\xe0\x76\x78\x77\x82\x06\x28\xc6\x0a\xeb\x03\x2e\x48\x26\x88\x24\x4c\x81\x9d\x40\x7f\xaf\x16\x28\xe5\x31\x49\x8c\x46\xfb\x41\x4b\xd6\xe8\x0c\x2b\x7c\x8a\x15\x4e\xf8\xec\x08\x0d\xe0\x9f\xfa\x63\x2a\x11\x4e\x24\x47\xd8\x91\x15\x89\x5d\x13\x98\xc5\x8e\xb5\x60\x14\xf1\x34\xa3\x89\xf7\x23\x78\xe3\x0d\x65\x31\x7d\xa4\x71\x8e\x13\xc4\x27\x9a\xab\x68\x0d\x7c\xf8\x48\x98\xca\x71\x92\x2c\x10\x4e\x12\x64\xbb\x75\x2f\x20\x39\xe7\x79\x12\xeb\x76\xdd\x28\x25\x4d\x69\x82\x85\x56\xf1\xcd\x68\xaf\x6c\x5b\xe8\x6e\x4e\xfc\x58\x61\x5c\x7a\x35\x53\xfc\x40\x24\xa2\x0a\x65\x5c\x4a\x3a\x49\x8a\x33\x7f\x7f\x8e\x60\xdc\xa7\x17\xe7\x60\x2f\x88\x14\xe2\x86\x87\xba\xce\xad\x7d\xc8\xf5\x98\x62\xc6\x08\x74\xcc\xd5\x9c\x08\xdb\xbd\x7d\xf9\xb5\x55\xff\xfb\xcb\xdb\xeb\xe1\xe9\xf9\x87\xf3\xe1\x59\x5d\xf7\xbf\x1b\xdc\xfe\x58\xff\xf5\xe7\xab\x9b\x1f\x3f\x5c\x5c\xfd\x5c\x7f\x72\x31\xb8\xbf\x3c\xfd\x61\x7c\x7d\x31\xb8\xac\x3f\xb4\x64\xd5\xd9\x8c\x10\x8e\x6c\xcd\xb3\xd5\xdb\x4c\x9f\xcb\x66\x7a\xf0\xe5\x1a\x4d\xad\x53\xaa\xbb\xc1\xd4\xdb\x28\xec\x97\x28\xc3\x52\x1a\xc9\xc8\x8c\xe0\x68\xc4\x3e\x71\xa1\x19\xd8\x94\x6b\x1e\xa1\xa5\x27\x25\xf2\x48\x51\x36\xf3\x1f\x9d\xa0\x51\xfe\xcd\x37\x7f\x8c\x2e\x28\x7b\x80\xbf\xc8\x3e\x2e\x4e\x6f\x51\xee\x2d\xca\xbf\x2d\x8b\xb2\x16\x7d\x8e\x43\x43\xf2\x6e\x83\xab\xb4\x70\x01\x3e\x71\x2d\x4a\xf0\x5c\xe9\x3f\x75\x97\x40\x1e\x4b\x42\xac\xba\x19\x2c\x7d\x84\x55\x4b\x1f\x82\xa7\x20\xc8\x7d\xa6\x12\x98\xd1\x13\x17\x0f\xd3\x84\x3f\x75\x33\x57\x7e\x24\xca\x0f\x43\x0b\x4e\x6f\xc1\x4a\xf9\xb3\x9d\xa1\x1f\xf8\x47\xa2\xf4\xd8\x6f\x6c\x2f\x7d\xb0\x55\x1f\x6c\xf5\xba\xc1\x56\x7b\x65\x2a\x7c\x7e\xd6\x5a\xb6\x2b\x1a\xfe\xda\xe2\x87\x6b\x75\xb3\xb5\x78\xd1\x02\x27\xd9\x8b\xf0\xe4\xb2\x2b\x6a\x97\x7c\xb9\xec\x6c\x5a\xc1\x93\x4b\xc3\x78\x2b\x7c\xb9\x34\xe8\x97\xe7\xc9\xbf\x09\x3f\x51\xef\x06\xda\x70\xa1\xde\x24\xeb\xee\x78\x2b\xbd\x98\x13\xe7\xf9\xaf\x92\x5a\xcc\xc7\x3a\x41\x1e\x6b\x44\x75\x74\x0e\xe3\x58\x11\xb7\xd1\x18\xa8\xd1\x14\x99\x51\x0f\xc5\x68\x8c\xbd\xd8\x2e\xd8\x62\xd3\x5b\xaf\x7b\xf8\xc4\xba\xb7\x5e\xf7\xc0\x89\x8f\x44\x95\x86\xf1\x56\x6e\xbd\xd2\xa0\x5f\xfe\xd6\xfb\x8d\xc6\x4b\xf4\x01\x12\xcf\xb8\x74\x5f\xfa\x5d\xb9\xbf\x21\x10\xbf\x81\x98\x87\x3e\xc8\x61\xad\x35\xfa\xb2\xa2\x1a\xbe\xd4\x30\x86\xb7\x19\xb7\xd0\x07\x2a\xf4\x81\x0a\xaf\xe1\x51\x7a\x7b\x81\x0a\xcf\xaa\xf8\x12\x4d\x56\x12\xac\xa8\xa1\x72\xf3\x2e\xe3\xb2\x5d\xdf\x0b\x9d\xd7\x0d\x7a\x1d\xb4\x59\xb6\x66\x02\xf5\xfe\x8a\xe6\x58\x22\x1e\x45\xb9\xa8\xb8\x68\xab\xa7\xfc\x54\x10\xac\xf4\x11\x29\x1b\x2e\x11\xb4\x8c\x04\x89\xb8\x00\x27\x25\x46\xd9\x1c\x4b\x82\x94\xc0\x4c\xd2\x55\x5a\x9e\x69\x15\xc6\xa5\xdb\x79\x0b\x0a\x5e\x7d\x11\x5f\x4a\xbd\x9b\xf0\xb8\x76\x20\xcd\x59\x6d\x7a\xb2\xfc\x26\xd9\xd9\xd4\x21\xed\xb7\xcb\xcc\x9f\xf1\xa8\xe8\x5b\x6b\xc7\x47\xa5\xa4\xc6\x6f\x7a\x54\xca\xd6\x8e\x9d\x1c\x15\x18\xd7\x5b\x39\x2a\xf5\x45\xfc\xcd\x1c\x95\xa6\xa9\xef\xc3\x51\x71\xe1\x00\x3b\x3e\x2e\x35\x1f\xfc\xa6\x47\xa6\x1e\xae\xb0\x93\x63\xe3\xc7\xf7\x56\x8e\x4e\xf3\x82\xfe\x66\x8e\x4f\xdb\xf4\x5f\xf7\x08\x79\x3f\x44\xe7\xc3\x73\x27\xe8\x6c\x46\x84\xd1\x8c\x22\x4d\x8a\xab\xa1\x96\x0a\xcb\xfb\x66\x07\x66\xf5\x69\xf0\x3d\xbc\x85\x93\xe0\x07\x6b\xc6\xfe\x9b\x39\x02\xb5\x79\xef\x09\xed\x1f\x6b\x4e\xfc\x08\x68\x6d\xdd\xce\xc0\x0d\x01\xc2\x87\x0b\x24\x13\xe4\x91\xf2\x5c\x26\x8b\x43\x91\xb3\x26\x6e\x0f\x46\x82\x27\x9a\x24\x88\xb3\x64\x81\xa4\xc2\x42\xb9\xc7\x6c\x66\x3c\x4a\xfa\x30\x25\x58\x2a\xf4\xc0\xf8\x13\x43\x53\x4c\x93\x5c\x10\x94\x71\xca\xd4\xd1\x88\x9d\x33\x74\x63\xc6\x08\x9a\xf7\x01\xca\xa5\x3e\x82\x11\x66\x8c\x2b\x14\xcd\x31\x9b\x11\x84\x99\x83\xae\x29\x28\x03\x71\x81\xf2\x2c\xd6\x07\x4b\x77\x51\xb1\x31\x15\x07\x6c\xc4\xee\xc0\x8a\x21\x11\xf9\xac\x04\x49\x49\xb2\xd0\x7d\x68\xda\x57\x1c\xd9\xf5\x31\x43\xb5\x06\x71\x22\x04\x17\x12\x74\xf6\xc9\xe2\x1f\x98\x29\xca\x08\x02\x35\x53\x1a\xe0\xa3\x43\x74\xc1\x25\xc4\x64\xff\xf8\x67\x89\xa2\x24\x97\x8a\x88\x03\x34\xc9\x67\x12\x51\x86\xb2\x04\xab\x29\x17\xa9\x1e\x21\x65\x52\xe1\x09\x4d\xa8\x5a\x1c\xa0\x14\x47\x73\xd3\x16\xac\x81\x3c\x18\xb1\x98\x3f\x31\xa9\x04\xc1\xbe\x77\xf7\x10\x7d\x15\x3e\x33\x04\x20\xbf\x3e\x00\xc3\x3d\x4d\xb3\x64\x11\x0e\x3f\x48\x84\x86\x3d\xd1\x8d\x90\x18\x4d\x48\x84\x73\x69\x0d\x3b\x4a\x2c\x10\xf9\x3c\xc7\xb9\x84\xbd\xd3\xd3\xb3\x56\x8f\x88\xa7\x59\x42\x14\x41\x74\x8a\x94\xa0\x24\x46\x78\x86\xa9\x5e\xba\x5b\xb2\x24\x71\xdb\x13\xbd\xdd\x40\x4b\xf5\xbf\x82\xe5\x23\xe5\x82\xa0\x98\x28\x4c\x13\xb9\xdc\x29\xf9\xa2\x04\x87\x9e\x9d\xde\xd0\xfe\x92\x1b\xda\x6b\x6a\x5b\x72\x13\xda\x1d\xeb\xaf\xc2\xb7\x74\x15\x96\xb9\xc2\x5e\xdc\x85\x06\x24\x62\x07\x02\x21\xb3\x56\xf1\x08\x27\x5b\xca\x86\x37\x76\x50\x6b\x4b\x87\xee\xc3\xfe\x50\xbc\xad\x43\x61\x76\x6d\x7f\x4e\x45\x5b\x42\xc5\xce\x91\x62\xd6\xc1\x78\x59\x92\x11\x21\x51\x8a\x95\xbe\xd8\x66\xf6\x8a\xee\x88\x62\x58\x80\xba\xbc\xa9\x83\xf2\x12\x48\x2e\x5f\x76\xc4\x42\x1f\xa9\xf0\x1b\x44\xa0\xdd\x9b\x04\xc6\x3e\x07\xfa\x99\x72\xa0\xa9\xec\x73\xa0\xfb\x1c\xe8\xae\x0b\xd4\xe7\x40\xf7\x39\xd0\x6f\x36\x07\xfa\x59\xd3\x9f\x77\x97\xe4\xbc\x9b\x4c\xe6\x37\x25\x9d\xf7\x92\x79\x2f\x99\xf7\xe9\xca\x7e\x6a\xbb\xe2\x82\xee\xeb\x77\x31\x49\x88\x22\xed\x06\x3a\x22\x52\xad\x70\x98\x1b\x9e\x32\x2d\x0a\xce\x04\x91\x72\x5b\x9e\xe6\x1b\x0e\xcb\x2b\x34\xf8\x23\x0a\x94\x59\x4f\x96\x60\xd7\x59\xc6\xec\x7c\xdb\x6f\x93\xe5\xf9\xe1\xf7\x90\x0d\x3d\x0f\xec\x79\xe0\x26\x53\xdb\x1f\x73\x74\x70\x98\x5f\xca\x1e\xed\x79\x7b\x96\xb7\x0b\xa7\xf7\xc6\xd1\x5a\x30\x5a\x43\xe1\x90\x95\xca\xfd\xe1\xb6\x74\xbe\x25\xaf\x5f\xa7\xaf\x65\x7c\xdd\xb4\xf3\x36\x99\xba\x19\x7b\xcf\xd1\x7b\x8e\xde\x73\xf4\xb7\xcd\xd1\xdd\x49\x7e\x55\xf7\x62\x50\x38\x6d\x4c\xe3\x6d\x6a\xa7\x75\xaf\x43\x81\x53\x12\x0f\x21\x4b\xcc\xe7\xb8\x89\x5f\xf5\x27\x61\x55\x34\x97\x0f\xd6\xdd\x01\x19\x7e\x5d\xac\x7a\xa9\x94\xd5\x66\xfe\xc8\xa2\x40\xd9\x79\xfc\x26\x5c\x92\x8d\x2b\xfc\x85\x14\x57\xdb\x0f\x2e\xf2\xe2\xb5\xd5\xf6\x63\xda\xbd\x8b\xac\x2f\xad\xd6\x3b\x81\x3a\x4e\xb8\x77\x02\xed\xaf\x13\xa8\xc3\x36\x3e\x8b\x67\xf7\x85\x8f\xe7\x4b\x89\x8e\xdd\x33\x77\x5c\x82\x0d\x8b\x51\x9e\x25\x1c\xc7\x1d\xab\xa3\x07\x12\x5d\x87\xf4\x1d\x16\x23\x41\x66\x54\x2a\x22\xf4\xbe\x34\x0a\x86\xab\xf3\x79\xde\x6a\x19\xf4\xce\x11\x9b\x61\xb7\xef\xfe\xbd\xc3\xf0\x6f\xec\x9d\x0d\x9c\x68\x82\x63\x5f\x9f\x18\xc4\xb7\x14\x2f\xd0\x1c\x3f\x12\x17\x65\xfe\x88\x13\x1a\xe3\xea\x5a\x57\x66\xb8\x6c\x40\xff\xb9\xde\x80\x70\x79\x38\xbe\xa0\x9d\x2c\x47\x01\x5b\x80\x0a\x78\x67\xae\xb5\xf2\x44\x10\x1c\x2f\xd0\x84\x10\xe6\xc9\xa6\xe1\x3e\x69\x19\xf3\x4e\x04\xe7\x57\xd7\x4a\xeb\xd4\xb3\x2f\x6a\xe9\x0b\xc6\xbd\x36\xf3\x9b\xed\x75\xd0\xed\x15\x4f\xf9\xdd\xdb\x62\x41\x7d\x2c\x6c\x6f\x9b\x7c\x7d\xdb\x64\x1f\x0b\xdb\x2b\xfa\x7b\xa6\xe8\xf7\xb1\xb0\x7d\x2c\x6c\x6f\x06\x59\x3e\xed\xde\x0c\xf2\x45\xc4\xc2\x76\x92\xe1\x37\x8c\x86\x7d\xe3\xd2\x7c\x2f\xcc\xbb\xf7\x7a\x61\xbe\x17\xe6\xbf\x50\x61\x7e\x3f\x56\xb8\x97\xe4\x7b\x49\xbe\x97\xe4\x7b\x49\xbe\x97\xe4\x77\xbe\x8c\xbd\x24\xdf\x2c\xc9\xc3\x5f\xae\xd8\xce\xba\x62\xfd\x9a\xe2\xfc\xda\xe9\x6e\xeb\x3b\x03\x3f\x12\xf5\x56\x3d\x81\xbd\xd4\xde\x4b\xed\xfb\x2d\xb5\xef\xcd\x84\xbe\xbc\x42\x19\x7d\xa9\x89\xbe\xd4\x44\x5f\x6a\xe2\x99\x4b\x4d\xb8\xaf\x3b\xe4\x48\xd9\xc3\xa5\xb0\xca\xa5\xc1\x2a\x2e\x82\x4d\x3a\x89\x3d\x1d\x52\xa3\x2a\x3d\xac\x96\x7b\xd0\x40\xa1\x94\x6b\xdd\x8d\x91\xd2\x3b\x8e\xc1\x99\xc0\x9a\x19\x7d\x24\x0c\xb9\xe4\x80\x03\x7b\x8d\x1d\x80\x31\xe5\x5f\xfe\xf0\x99\xe4\x5b\xac\x10\x46\x8a\xa6\xe4\x08\x9d\x4f\x0d\xb7\x88\xf4\xe9\x92\x44\xc9\x4a\x34\x96\xa1\x7c\xf8\x88\xc5\xc5\x58\x5d\xdf\xb4\x08\xce\x31\xaf\x1d\x38\x66\x9b\x27\xca\xb0\x5e\xd7\x38\x20\x8d\x4e\x3c\x87\x82\x83\x96\x12\x91\xb8\x2f\x4b\xdd\xba\x97\x53\x1c\x6b\xc6\x10\x0c\xa1\xc8\x12\x0e\xdf\x87\x3b\x9d\x4a\x1f\x5e\x54\xfa\xde\x7c\x0d\x70\xa5\x00\x2f\x0a\xb0\xea\x9d\x86\x31\x87\xe8\x37\x2d\xe2\xc5\x79\x42\x10\x96\x92\x47\x14\x83\x1a\x63\x64\x00\x44\x95\xb3\x34\xb8\x97\x5c\xd7\x31\x95\x78\x92\x90\xd8\xae\x31\x29\xa2\x9d\x96\x8e\x9c\x4a\x34\x21\x7a\x89\x35\x9b\x2a\xaf\xfe\xdc\x48\x20\x0d\xa3\x09\x86\x42\xea\x23\x21\xcc\x0c\x64\x89\x04\x6d\x88\xf3\xad\x0a\xd1\x7d\xc6\x9d\x7f\xda\x8b\xd4\xbd\x48\xfd\x1b\x15\xa9\xf7\x28\x42\x73\x2f\x12\x07\xc1\x07\xaa\x39\xff\xd8\x1b\x36\x65\x57\x5b\xcf\x05\x95\x4a\xa2\x28\x97\x8a\xa7\xed\x92\xcf\x27\xd7\xc3\xc0\x77\x70\xca\xd9\x94\xce\x72\x73\xb7\xfc\x6a\x65\x13\x7f\xa2\x0b\x35\x65\x91\x91\x6e\x86\x21\x6f\xb7\x5e\xd5\x59\x63\x3e\x62\x83\x93\xb7\xa1\x9d\x37\x71\xdb\x35\x0f\xfd\xa5\x2e\xbd\x75\x94\xd5\xc2\x3e\x6e\x35\x4d\xad\x5f\x8c\x6f\x86\xb7\x57\xf7\x37\xa7\xc3\x13\x34\xc8\xb2\x84\x1a\x97\x95\xa1\x30\xfa\x0f\x3d\x29\x53\x35\xca\x93\x88\x15\x88\x0c\x98\x3b\xf8\xc8\xb4\x3e\x88\x0e\xd1\xe9\xc5\xfd\xed\xdd\xf0\xa6\xa5\x41\x4b\x12\x80\x38\x40\xd2\x2c\x01\xf9\xe8\x21\x9f\x10\xc1\x88\x96\xf0\x2d\xe4\x7b\xe1\x39\x33\x8d\x0e\xff\x7b\x78\x7a\x7f\x77\x7e\x75\x39\xfe\xcb\xfd\xf0\x7e\x78\x82\x1c\x6d\xe9\x66\xf5\xb8\xf4\x28\xe2\x05\xc3\xa9\xd6\xba\xcb\xe5\xad\xfe\x9e\x93\x1c\xc4\x31\x3a\x63\x29\x81\x4a\x0c\xa5\x16\xdd\x80\x2f\x06\xdf\x0f\x2f\xca\x2d\xcf\x49\x88\x43\x8f\x12\x3c\x21\x89\x75\xe5\x81\x77\x4a\x9f\x9f\x00\xb1\xdf\xf8\xf8\x72\xb3\xaa\x7f\xb9\x1f\x5c\x9c\xdf\xfd\x32\xbe\xfa\x30\xbe\x1d\xde\xfc\x74\x7e\x3a\x1c\x5b\x4d\xea\x74\xa0\xfb\x2d\xf5\x64\x15\x2e\xf4\xf7\x1c\x27\x5a\x23\xe7\x53\x87\x4c\x8f\x9e\xe6\x84\xa1\x9c\x01\xc5\x19\x35\x1f\xb4\x92\x10\x96\xc7\xcc\xe8\xfa\xe2\xfe\xe3\xf9\xe5\xf8\xea\xa7\xe1\xcd\xcd\xf9\xd9\xf0\x04\xdd\x92\x04\x14\x61\xb7\xe8\xb0\x8b\x59\x92\xcf\x28\x43\x34\xcd\x12\xa2\x57\x03\x5b\x1c\x88\x39\x7e\xa4\x5c\x94\xb4\x15\x58\x47\x60\x05\xd0\xbe\x53\x38\xc7\xc1\xd2\x5d\x5d\x7e\x38\xff\x78\x82\x06\x71\xec\xe7\x20\xa1\x8d\x12\xe5\x38\x34\xa1\xc3\x1a\x9a\x50\x84\x4d\x40\x08\x14\x68\x7f\x24\x42\xd0\x98\x54\xe8\x68\x70\x7b\x7b\xfe\xf1\xf2\xd3\xf0\xf2\x0e\x56\x4c\x09\x9e\x48\x34\xe7\x4f\xe0\x05\x82\x19\x82\x73\xe8\x11\xd3\x04\x3a\x73\x9b\xc5\x19\x7a\x9a\x53\xf0\x1c\x42\x85\x02\xdf\xb3\xb1\x49\x88\xbc\x9e\x54\xf1\xd2\x5a\x7f\xe9\xe0\xd5\x55\xf5\xea\x49\xaa\xbf\x51\x39\x16\xcb\x5e\x28\x51\x79\xfd\xc5\x55\xd4\x5a\xff\xa2\x42\x6e\xed\x06\x8a\x1a\xbd\xb4\xcf\xb4\xd8\xeb\xce\xf6\x89\xf2\x1a\xbe\xd8\xed\xad\x19\x6f\x3c\x76\x76\xaa\xe3\x7f\x96\x18\xf0\xbf\x76\x18\xad\x65\x12\x74\x96\x62\x17\x06\xd9\xea\xbf\xda\x6b\xb6\xe3\xe5\x1d\x7c\xd9\xf4\x61\xdd\x8f\x13\x7c\xf0\x16\x6e\xe5\x70\xb8\x7b\x74\x03\xdf\x84\x72\x96\x13\xd7\x53\xa2\x70\x8c\x15\xd6\x7c\x6d\x46\xd4\x11\xba\x62\xf0\xec\x0e\xcb\x87\x03\xe4\x0a\x8f\x21\x2e\x50\x21\xc8\xbe\x40\x82\xfb\x1b\x31\x60\xae\xaf\x5c\xf5\x46\x82\xde\x48\xd0\xbc\x32\x7d\xb4\x5c\xcb\x0a\xef\xea\x46\x5d\xcb\xe6\xbf\xbb\x8b\x2f\x30\xf1\xbb\xc0\x97\x8a\x8d\xb6\x74\x23\xae\xb4\xc7\xbe\xdd\xcb\xf0\x65\x2d\xb2\x3b\xbd\x1a\x4d\x5d\xb2\xfe\xde\x33\xff\xd7\xdf\x7b\xfd\xbd\xd7\xdf\x7b\x7b\xb0\xc2\xaf\x6e\xdd\x6e\xe0\xee\xaf\x6a\xde\x5e\xa5\x20\x6f\x0c\x93\x57\x28\xc4\xeb\x00\xe5\xfd\xda\x05\x0f\xaf\xc1\xac\x5d\xd7\x90\x25\x92\x73\x2c\x4c\xc1\xef\x88\xa7\x29\x67\x65\xbb\xf9\x01\xf2\x4e\x7e\x30\x4a\xae\x04\x53\xd5\x94\x5d\x74\x43\xdf\x86\xbd\x3b\x58\x97\x97\xc8\x6e\xda\xa9\x08\x61\xd2\x06\x7a\xfd\xfa\x19\xe5\x8c\x1e\xc7\x70\xa7\x38\x86\xfb\x31\xd7\x67\xc9\x84\xda\xbd\x0d\xfe\x6d\x64\x3f\xf5\x80\x85\x7d\x7e\x4f\x9f\xdf\x03\xbf\xf7\x80\x85\xbb\xa3\xd6\xe7\x95\xe9\x79\x4c\xc6\x95\x0a\x5d\xfe\x9f\xe3\xaa\xcb\xab\xf4\x24\xf4\x7f\x95\x1e\x14\x09\x4f\xd0\x3a\x8d\x77\x59\xd5\xeb\x92\xc7\x64\x8b\xca\x5e\x7a\x44\x9d\xab\x7a\x95\xfa\xda\x73\x11\xde\x2d\x93\x11\xe5\x4b\x03\x7f\x66\x41\xbe\x85\x62\xbe\x44\x6b\x54\x03\xfd\xf7\xa6\xa9\x95\x0b\xf5\xa5\x96\x4d\x28\x18\xdc\x1b\x72\xd4\x74\xbb\x05\x5c\x78\xcf\xb8\xe5\x2e\x68\x7e\xee\x6f\x84\xe6\xc7\xcf\x03\x69\xd3\xfd\x42\xa8\x20\xd9\x94\xaf\x82\x4d\x11\x6c\x4a\xdd\xbf\x0d\x3b\x4f\x38\xe2\x97\xb0\xf4\x2c\x25\xa6\x2f\xee\x9a\x58\x76\x34\xfa\xcb\xa2\xe3\x72\x7d\xa9\x57\x46\x8f\x3c\xb3\xcc\xf6\xd2\x43\xbb\xf4\xa6\x9f\xfd\x99\x70\x6f\xfa\x79\xd3\xa6\x1f\xe3\xa8\x1e\x67\x58\x10\xa6\x1a\x64\xf4\xea\x75\x02\xaf\x87\x39\xfc\x4e\xea\x80\x06\x8c\xb4\x68\x2f\x64\x7f\x55\x7d\x59\xb6\x20\x2b\x18\x04\xc9\x4b\xc7\xff\x2c\xfe\xf6\xd2\x7f\xa9\xae\xc5\x92\x68\x2f\x03\x9a\x2f\xf5\x1d\x9d\xdb\xc0\xaf\xed\xd3\x9b\x6c\x0a\xb1\x13\x05\x13\xf2\x48\x92\x6e\xf1\x61\x2e\x7d\x81\xc4\x85\x40\x55\xcc\xae\x21\x6e\xac\x2e\xa0\x36\xc7\x8c\x5d\x9b\xf7\xde\x56\x72\x53\x6d\xd0\x2f\x1b\x3f\x56\x27\xab\x6e\xc7\xd3\xed\x3b\x35\x89\x3a\x41\x36\x88\x96\x75\xf9\x34\xdc\x51\x97\x8c\x8d\x21\x57\xa9\xed\x7e\xf9\xcd\x45\x95\xb4\xee\xfc\xab\xc6\x96\x34\xf1\x9e\x26\x86\xd3\xc5\x7a\xbc\xab\x24\x4a\x47\x6c\x2d\x31\x1f\x6d\xe6\xe6\x67\x62\x36\x1f\x89\xfa\x32\x38\xcd\x47\xa2\x5e\x8a\xcd\x6c\xca\x5b\x96\xf2\x95\xa2\x86\xce\xfe\xc5\x2e\xac\x13\x54\xf3\xb3\x99\xa4\x8d\xa8\xf1\xb9\xcb\xe1\x54\x15\xb7\x5a\x66\x49\x50\xef\x73\x4c\xfb\x1c\xd3\x3e\xc7\xb4\x7a\xd4\xfb\x1c\xd3\x3e\xc7\xb4\x31\x23\x26\x26\x09\x51\xa4\x55\x6a\x39\x83\xc7\xaf\x25\xb5\x98\xde\x9f\x4b\x66\x31\xad\x7f\x19\x62\x8b\x99\x4b\x2f\xb9\xfc\x66\xf4\x22\xb7\xe1\x7b\xa1\x17\x99\x93\xbc\xca\x34\x53\xfa\xb1\x21\x08\xff\xc5\xcd\x35\x9b\xb0\xa4\x1d\xd8\x6c\x0e\x9d\x6b\xac\xc8\x69\xe9\x6a\xc6\x39\x83\x2f\xdf\x24\xaf\xaa\x0e\xbd\x37\xe9\xa0\x60\xeb\x9e\x8f\x75\xd5\xce\x5c\xb7\x89\x5b\x1a\x7d\xbb\xf3\xde\x17\x96\xdd\x46\xf7\xfb\xca\xb8\x37\xce\x93\xfa\x02\x0c\x5c\xeb\x71\xe6\xc2\xe6\xf5\x05\xb1\xe5\xde\xfe\xf5\xca\xb9\x3b\x35\xfe\xfb\x66\xa7\xdb\x9b\xfb\x7a\x73\x5f\x6f\xee\xeb\xcd\x7d\xbd\xb9\x0f\xf5\xe6\xbe\x17\x32\xf7\xad\x27\xc1\x95\x2c\x80\x5f\x90\x10\xd7\x5b\x03\x7b\x39\x6e\x77\xd3\xdd\x57\x4d\x7a\x9f\x4c\xa0\x9d\x91\xb4\x8b\x24\xc2\x95\xb9\x23\x76\xda\xbf\xae\x4c\x1a\x09\xaa\x92\xb8\xe1\xac\x4a\x0c\xb9\x76\xc3\x7e\x3b\x4c\x4e\x3e\x37\x1f\xdb\x26\xfc\xdd\xad\xfb\x17\x1b\xfd\xde\xd7\x5d\x6d\x5c\xab\x3e\x38\x7f\xc9\xe2\xf4\xc1\xf9\x7d\x70\xfe\xde\x05\xe7\xef\x5c\xa5\xca\xb8\x5c\x06\x1e\x66\xae\xe6\xa5\xa8\x01\xee\xa2\x37\xba\x8c\x26\x05\x53\x2b\x2e\x26\x59\xc2\x17\x60\xef\x59\x6a\xf9\x36\x5d\x14\x4a\xd0\xb2\xcb\xdf\xbd\x7d\x5d\x0f\x8f\xd8\xf3\xfb\xdf\x8d\xfc\xa5\xd4\x9a\x7d\x11\x7b\x8b\x79\xef\x85\xa0\x7b\xfc\xcf\x0a\x64\x46\x27\x4c\xdd\x00\xe4\x62\xf5\x31\x18\xb1\xe6\x27\x41\x79\x47\x7b\x6b\x4e\x72\x15\xe4\xa3\x4a\x7d\x00\x32\x22\xd4\x22\x78\x93\xa4\x99\x5a\xfc\xd7\x88\xd1\xa2\x0a\x1c\x9d\x31\x2e\x0c\x0f\xd4\x1f\xcf\x31\x8b\x13\x7d\x7e\xa4\x6f\x27\xc2\x8c\x71\x05\xc2\x09\xcc\x20\x46\x8f\x14\x1b\x51\x66\x70\x7d\xde\x21\x3e\xa0\xd3\x59\x2c\xb9\xf6\xdf\xd0\x49\x7c\xe9\xfa\x6a\x2b\x6e\xd1\x8f\x09\x9f\x40\x45\xd0\xbc\x6c\x62\xd0\x0d\xf4\xce\xe8\xd2\xce\xbd\x16\xf3\x50\x58\x3e\x54\x81\x7c\xca\xb0\x0e\xe3\xa5\xd0\x3e\x2b\xde\x2d\x15\xbb\x58\xfe\x6a\x05\xfe\xa7\xfc\xcc\x02\x02\xc1\x63\x18\x72\x75\x1c\xee\xc7\xb0\x43\xf7\x5b\xd1\xb2\xfb\xc5\x55\x54\x87\x1f\x05\x51\x62\x31\xc6\x4a\x69\x86\xb4\x4b\xcc\xa1\x3b\x2c\x1f\xb6\xc0\x1c\x2a\x7b\x9a\x56\x60\x0e\x95\xfa\xda\x73\x8e\x55\xc2\x1c\x2a\x0f\xfc\xd9\x39\x56\x47\xe2\x5e\xc1\xd8\xde\x1e\xbc\x44\xd7\xa3\xba\xc6\xc4\x7f\x2b\x50\x13\xdd\x58\xd7\x2a\xa3\xf3\x5b\x84\x9d\x58\xc6\x8b\xf7\x66\x84\x95\xeb\xe0\x4b\x3c\xb9\xe5\xcb\xad\x3f\xa2\xcb\xd6\xe8\x8b\x2b\xfd\x5a\x91\x59\x56\xcc\xed\x8d\x94\x80\xad\x8a\x5d\xbb\x1e\xd5\xf3\xd8\xdf\x83\xdd\x58\x27\x84\xea\xbc\x5c\xf2\xc0\x9f\x21\x17\x54\x55\x80\xc6\x9b\x52\xe7\x54\x86\x78\x12\x11\x17\x46\xf2\x8a\xed\x99\x35\xf6\x44\x83\xcd\x7d\x82\x06\x28\xc6\x0a\xeb\x43\x2a\x48\x26\x88\x24\x4c\x19\xad\xde\x20\xd5\xa7\x3c\x26\x89\xd1\xa8\x8d\xe9\xea\x0c\x2b\x7c\x8a\x15\x4e\xf8\xec\x08\x0d\xe0\x9f\xfa\x63\xa8\x0f\x2f\x39\xc2\x8e\x70\x48\xec\x9a\xc0\x2c\xf6\x65\xe9\x51\xc4\xd3\x8c\x26\xbe\xdc\x83\x77\x2f\x50\x16\xd3\x47\x1a\xe7\x38\xf1\xf0\xfa\x23\x36\x7c\x24\x4c\xe5\xa0\x01\xe2\x24\x41\xb6\xdb\x00\x3d\xdf\x99\x02\xdc\x28\x25\x4d\x69\x82\x05\x52\xdc\x8e\xf6\xca\xb6\x85\xee\xe6\xc4\x8f\xd5\x95\x12\x40\x29\x7e\x20\x12\x51\x85\x32\x2e\x25\x9d\x24\xc5\x31\xbe\x3f\x47\x30\xee\xd3\x8b\x73\x5b\x9b\x1d\x71\xc3\x07\x5d\xe7\xd6\x81\xe1\x7a\x4c\x31\x63\x04\x3a\xe6\x6a\x4e\x84\xed\xde\xbe\xfc\xda\xe6\xd7\xd7\x86\x7c\x6f\x37\xe5\x86\x23\x7b\x3d\x9d\xb5\xb3\xc2\xda\x55\x5b\xed\xa6\xaa\xb6\xeb\xa9\xcf\xe0\x73\xee\xae\x4c\x56\xf0\x0a\xcb\x6a\xe4\xa6\x78\x85\xa5\xee\xdf\x84\x73\xba\x34\xe2\x97\xc0\x2b\xfc\x8d\x6a\x96\xbd\x5a\xf9\x2c\xeb\xf6\xa5\xea\x94\x7b\xae\x50\xf6\x48\x8b\x7d\x95\x8b\x3e\xd4\x64\x87\x8b\xd3\x87\x9a\xf4\xa1\x26\x5f\x6c\xa8\x49\xbb\x7a\x42\xe3\xad\x33\x36\xd7\xac\x6b\xe7\xad\x0c\xe2\x57\x10\xa5\xb4\xd8\xdf\xa1\xd2\x5d\x93\xb6\x50\xc8\xd2\xa5\xca\x54\x9b\x6b\x0e\xe7\xf1\x9b\x50\x19\x1a\x57\xf3\x25\x54\x87\xbe\x48\xda\x4e\x8b\xa4\xed\xdd\xb4\x7b\xa9\xb2\x97\x2a\x7b\xc1\xa9\xe3\x84\x7b\xc1\x69\x7f\x05\xa7\xd7\xd2\x86\xbe\x24\xbc\x6c\x2d\x62\x95\xb2\x92\x96\xc6\x29\x1b\x7c\x25\x70\x66\xe4\x59\xc2\x71\xbc\x2a\xe2\xe8\xd7\x40\x7c\x5b\x22\xf7\x05\xed\x8a\x22\x4e\xb9\x22\xfe\x2d\x93\xed\x4c\x03\xba\xc7\xb7\x20\xda\xe9\x71\x9a\x11\x77\x88\x8e\x0c\x3b\x7c\xf7\xef\x1d\x06\x7e\x63\xef\x64\xe0\x34\x13\x1c\x3b\x00\x03\x23\x9e\xa5\x78\x81\xe6\xf8\x91\xa0\x29\xa6\x89\xb1\xcf\xd1\x18\x57\xd7\xb7\x32\xb7\x65\x03\xfa\xcf\xf5\x06\x84\xcb\xc3\x29\x32\x1a\xf5\x7d\x61\xa4\xaa\x08\x27\xce\xdd\x07\xef\xcc\xb1\x44\x38\x11\x04\xc7\x0b\x34\x21\x84\x05\x99\x6c\x5d\xc7\xbc\x13\xc1\xf8\xd5\xc3\x33\x43\xba\x79\xd5\x28\x6f\xe0\x1a\x10\xaf\x58\x8a\x7b\x7c\x2e\xc5\xb2\xca\x49\xb6\xd0\x21\xb7\x51\x1c\xe5\x77\x6f\x85\xb9\xbc\x84\x9a\xf8\x05\x7b\x91\x7a\x4f\xd1\xf2\x30\xbc\x1d\x45\x35\x8d\xd8\x9d\x56\xad\x0a\x0c\x86\x20\x45\x16\xfd\xc1\x2d\xd7\x1f\x20\x42\xdf\x46\xed\x27\x8b\x42\xf3\x96\xd5\xd6\xbc\x5c\x86\x0e\xb5\x50\x1c\x11\xa1\x0c\xc8\x03\x53\xe4\xb3\x92\xe8\x10\x25\xf4\x81\xa0\xf7\xfa\x74\xa0\xc1\xf5\xf9\xfb\x03\xf4\xde\x14\xd5\x47\x59\x82\x99\x7c\xbf\x37\xda\x47\xaf\xa2\xf7\x49\xc6\xbd\xe7\xa7\x37\x60\xf4\x06\x8c\x9d\x2f\xe3\x3e\x19\x30\x5e\x51\x46\x37\xb9\x4d\xcf\x52\xcc\x76\x5f\xa4\xf5\x5e\x58\xef\x85\xf5\x5e\x58\xff\x62\x85\xf5\xfd\x58\xe1\x5e\x52\xef\x25\xf5\x5e\x52\xef\x25\xf5\x5e\x52\xdf\xf9\x32\xf6\x92\x7a\x45\x52\x87\xbf\x1c\x5a\xc0\xba\x62\x7b\x67\x71\x7d\x33\x68\x80\x6e\x6e\x3a\x8b\x0d\xf0\x56\x24\xf3\x5e\x2a\xef\xa5\xf2\xfd\x96\xca\xf7\x66\x42\x5f\x5e\x42\x70\x9f\x52\xdb\xa7\xd4\xf6\x29\xb5\xaf\x91\x52\xeb\x78\xc9\x32\x09\x67\x59\x5d\x9f\x9f\x2c\x73\xf9\x8a\xb2\x28\xc9\x41\x54\xd5\x3f\x7f\x9f\xd3\x24\x46\xa0\x22\x69\x4d\x97\x72\xf6\x35\xd0\x13\x90\x02\x8c\xd3\x55\xa2\x58\x2e\xc1\xfc\x54\x63\x75\x7b\x2b\xc4\x14\xa3\xdd\x14\x86\x6d\x57\x7b\xea\x0a\x63\x6c\x52\xfd\xaf\xf4\x9b\x6b\x68\x8f\x6a\x02\x1e\x38\xb1\x44\x73\x24\x37\xbe\x67\xae\x0e\xd8\xd8\xe7\x5a\xb5\x02\x7f\xb6\x1f\xbd\xad\x52\x06\xf5\x51\xf7\x15\x02\x51\xb0\x6b\x7d\x85\xc0\x67\x9c\xb7\x3b\x67\x2b\x66\xee\x68\xd4\xd8\xc2\xdf\xe8\xb4\x5f\x3d\xd8\xb1\xfd\xa4\xbf\x6a\xe8\x63\xe3\x45\x56\xcb\xad\x3b\xfe\x67\xe3\x3d\xf5\x0a\x85\x11\xd7\xbe\x9c\x76\x52\x22\x71\x9b\xeb\xe9\x23\x51\x5f\xca\xdd\xd4\x97\x49\xec\xcb\xeb\xec\x68\xba\x1b\xdd\x3d\x6f\x76\xb6\x7d\x51\xc8\xbe\x28\x64\x5f\x14\xb2\x2f\x0a\xd9\x17\x85\x44\xbf\xf1\xa2\x90\x6b\xcb\xaf\x3b\x28\x0f\xb9\x8d\xf4\x6a\xba\xff\x52\x04\xd8\xbe\x44\x64\x2f\xc3\xee\x6e\xba\xbf\x2d\x19\x76\x0f\x2d\x28\x7b\x51\x0b\xd3\x5b\x50\x5e\x1d\x96\xc8\xb3\xf6\xce\xd0\x44\x61\xdc\x8b\xff\x7a\xa7\x08\x45\x6e\xd3\x7a\x94\x22\xfb\x7f\x3d\x4a\x51\x8f\x52\xd4\x32\xeb\x3e\xb0\xba\x47\x29\x42\x7d\xe8\x70\x1f\x3a\xbc\xcf\xa1\xc3\x1d\xb6\xb1\x47\x29\xea\x28\x32\x3e\x13\x52\x91\x93\xb9\xb6\x42\x2b\x6a\x10\x07\x57\x23\x16\xfd\x5c\xd7\x88\xf6\x56\xd4\x73\x63\xed\x91\x8b\x7a\xe4\xa2\x6d\x69\x67\x2f\x14\xd0\x17\x44\x30\x6a\xe2\x30\xeb\xe4\x45\x37\x30\x97\x6d\x15\xcc\xb7\x81\x66\xe4\x46\xdb\x27\x49\xf7\xe9\x18\xfb\x9f\x8e\xb1\x77\x49\xd2\x7b\xa3\xa9\xf4\xea\x7c\x9f\x27\xdd\xe7\x49\xf7\xc6\x8e\xde\xd8\xb1\xf3\x65\xdc\x27\x63\xc7\x2b\xcb\xed\xcf\x88\x6a\xb4\x8f\x12\x7c\x2f\xc0\x9b\xf7\x7a\x01\xbe\x17\xe0\xbf\x50\x01\x7e\x3f\x56\xb8\x97\xde\x7b\xe9\xbd\x97\xde\x7b\xe9\xbd\x97\xde\x77\xbe\x8c\xbd\xf4\xfe\x62\x48\x47\x4d\x22\xfc\xda\x68\x47\x6b\xba\xf9\x82\x64\xb6\xb7\x24\xad\xf7\x92\x7a\x2f\xa9\xef\xb7\xa4\xbe\x37\x13\xea\x91\x8f\x7a\xe4\xa3\x1e\xf9\xa8\x47\x3e\xda\x48\x46\xfa\x37\x7b\x2c\xdf\x05\x37\xb1\xbf\xb2\xdf\x7d\x9f\xf0\xc9\xdd\x22\x23\xfa\xbf\x67\x34\x25\x4c\x82\x44\x4b\xd5\x22\x94\x89\x5a\x56\xbe\xbe\xe6\xef\x6e\xcf\x2f\x3f\x5e\x84\xa9\x6a\xef\x3e\xdd\x5f\xdc\x9d\x5f\x0f\x6e\xfc\xba\xf8\x59\x85\x6b\x61\xbf\x2b\x89\x75\x96\xe4\x6f\x88\xd6\x5f\xe1\xd4\xdc\x2a\xac\x72\xb9\xd9\xc8\x6e\x86\xb7\xc3\x9b\x9f\x20\xd5\x6e\x7c\x76\x7e\x3b\xf8\xfe\xa2\x44\x10\xa5\xe7\x83\xd3\xbf\xdc\x9f\xdf\xb4\x3f\x1f\xfe\xf7\xf9\xed\xdd\x6d\xdb\xd3\x9b\xe1\xc5\x70\x70\xdb\xfe\xf5\x87\xc1\xf9\xc5\xfd\xcd\x70\xe9\x7a\x2c\x1d\xed\x72\x45\x46\xc2\x22\x41\x16\x0b\x8a\x2c\xd7\x10\xc5\x1a\x22\x2f\x3e\x3a\x76\xd8\xd4\xd7\x09\xba\xb7\x76\x01\x6a\x1b\x77\x21\x49\xbe\x21\xa3\xd0\xc4\x54\xe2\x49\x42\xe2\x5a\x4b\x6e\x0d\xdb\x5a\xc2\xa5\x41\x3d\x69\x0d\xdc\x8b\x9c\x9a\xe7\x45\x86\x17\x20\x48\x00\x56\x84\xc5\x0d\x7d\x98\x7d\x68\xed\x81\x69\xde\x45\x1f\x49\xa9\xa7\x28\x17\x82\x30\x95\x2c\x8c\xc0\x2d\x6b\x8d\xba\xed\x6b\x6b\xd6\xde\xa9\xbe\xc1\x39\x96\x26\xf2\xaa\x34\x7e\x41\x12\x82\x65\xc3\x98\xed\xee\x77\x5b\x16\xbf\x57\xd6\xa2\x63\x2e\xa3\x29\xa6\x49\x2e\x48\xe5\xb4\x70\xf6\xb7\x9c\x81\x06\x3b\xfc\xac\x2f\x33\x7d\x92\x2f\xf8\x8c\x46\x38\xb9\x82\x66\xb8\xd8\xec\xe4\x0c\x2e\x4b\xa4\x7c\x75\xb3\x94\x72\xc3\xb7\xab\x84\x7a\x88\x06\x97\x67\x90\x64\xec\x86\x5a\xbc\xaa\xa8\x4a\x60\x40\x97\x44\xea\x79\x46\x9c\xc5\xd6\x05\xa2\x2f\xb0\x45\x20\x97\xfe\x8d\x43\xa2\x76\x2e\xb5\xb6\x34\xb8\x3c\x43\xc7\xe8\xea\x66\xc4\xae\xb4\x1a\xad\xe9\x9e\x68\x81\xce\x2c\x1b\x95\x88\x71\x85\x68\x9a\x71\xa1\x30\x53\x5a\x96\x85\x9b\xcc\xae\x88\x21\xe2\x53\x9e\xa6\xb9\xc2\x9a\x56\x6a\x8b\xca\x8c\x55\xe0\x96\xa8\xf3\x18\x3c\x0c\x0d\x6b\x68\xae\xba\x62\x2e\x99\xd0\xed\xeb\x6b\xb6\xac\x4a\xd2\xb8\xa6\x8d\xb9\x26\xb0\x10\xb8\x7c\x21\xbe\xa3\x8a\xa4\xd5\xf7\x3b\x46\xc8\xfe\xab\x51\x4f\x3e\x35\x19\x29\x44\x0c\x44\x34\xa7\x8a\x44\x4a\x53\xd1\x46\x34\x71\x7f\xf9\xe3\xe5\xd5\xcf\xe1\x25\xf8\x6e\xf0\xe9\xec\x4f\xff\x5e\xfa\xe1\xe6\x53\xed\x87\xf1\x4f\x7f\xaa\xfd\xf2\xff\x2c\xa5\xa7\x6a\x4f\x35\x55\x35\x98\xcb\x21\x48\x85\x60\x1a\x75\x53\x45\x34\xc5\x33\x82\x64\x9e\x69\x0a\x90\x47\xe5\xfd\xd5\x52\xd1\x05\xc7\x31\x65\x33\x93\x21\x7c\x41\x15\x11\x38\xf9\x84\xb3\x0f\xce\x8c\xbb\xc1\xea\xfc\xef\xdb\x52\x3e\xf7\xbb\x5f\x06\x9f\xc2\x8c\xf0\x77\xd7\x37\x57\x77\x57\x4b\x67\x5d\x6a\xa1\x7e\x8c\xf4\xe3\x13\xf8\x5f\x74\x8c\x74\xeb\x5e\x78\x4b\x89\xc2\x5a\xa8\x45\x5f\x99\xac\x46\x9f\x85\x44\x59\x02\xa7\x26\x13\x34\xa5\xc0\x15\x8d\x21\xeb\x6b\x23\x1f\x7a\x01\xd8\x9f\x1b\xf3\x81\xc9\x5b\xb6\xf7\x0a\x8b\xb1\x88\xd1\xdf\x64\x15\x5e\x00\xec\xa7\xe6\x07\x12\xa3\x43\x34\x57\x2a\x93\x27\xc7\xc7\x4f\x4f\x4f\x47\xfa\xed\x23\x2e\x66\xc7\xfa\x8f\x43\xc2\x8e\xe6\x2a\x4d\x0c\x9c\x82\x5e\x85\x13\x74\x2d\xb8\xe6\x82\xa0\x63\x12\x41\x71\x02\xd9\xd4\x13\xca\xb0\x00\x98\x86\x5f\x23\x2e\xc8\x51\xb1\x31\xd6\xb6\x62\x59\xa1\xb5\xbf\x1c\xeb\x97\x1a\x98\x49\x75\x3f\x51\x4c\x22\x1a\xdb\x9b\x92\xb0\x88\x83\x01\xce\x98\xec\x75\x7b\x2e\x15\x94\x58\x7f\xa9\x5f\xce\x40\xde\xc6\x31\x09\xd0\x10\x14\x2f\x13\x9c\x96\xdd\xcf\x8d\xe6\x95\x6b\x2d\x13\x02\x74\xe1\x62\x70\xaf\x66\x7a\xc2\x11\x4f\xd0\x24\x9f\x4e\x89\x08\xdd\xb5\x07\x5a\x20\xa7\x12\x09\x12\xf1\x34\x85\x4b\x4f\x7f\x95\x4b\x43\xd5\xb0\x62\x76\xb4\x47\x23\x06\xfb\xaf\x25\x75\xa0\x80\x98\x03\xab\x63\x44\x6b\xec\x6c\x61\xba\x99\xe4\xd3\x92\x3b\x18\x60\x4a\x70\x8c\xa8\x1a\xb1\x41\x92\x20\x41\x52\xae\x48\x18\x69\x0c\xbe\xa3\xd2\x82\x03\x8b\x14\x24\x4b\x70\xe4\xf2\xd8\x13\x1e\xe1\x04\x4d\x69\x42\xe4\x42\x2a\x92\x86\x0d\x7c\x05\xe6\x06\xbd\x66\x54\xa2\x98\x3f\xb1\x84\x63\x3b\x8f\xea\x67\x5f\x97\x4f\xe3\xd0\x41\x48\x0c\x85\xe0\x02\xfe\xe7\x47\xca\xe2\x9d\x71\xa8\xfb\xdb\xe1\x4d\xf8\xef\xdb\x5f\x6e\xef\x86\x9f\xd6\xe3\x3e\x9e\xb2\x60\x78\xa0\x86\x9e\xa0\x5b\xb3\x08\x5c\xe8\x4b\x5d\xb4\x4c\xea\x93\x25\xa5\xe2\x07\x1e\x6f\xc8\x7d\x3f\x0d\x2e\xef\x07\x25\x8e\x72\x7b\xfa\xc3\xf0\xec\xbe\x22\xd2\xda\xf9\x95\xc4\x50\xa3\xc1\x84\xbf\x9d\xfe\x70\x7e\x71\x36\x6e\xd0\x79\xde\xdd\x0c\x4f\xaf\x7e\x1a\xde\x14\xea\x49\xe3\x12\x55\x06\x53\x65\x56\x77\x86\x29\xcd\x79\x8c\x26\x8b\x66\xc0\x10\x2d\xfc\x25\xe0\x92\x2c\x20\x73\x4c\xab\x27\xc0\x9b\x1c\x76\x4b\xf1\x85\xd6\x79\x0f\xec\x3b\x80\xb4\x62\xec\x03\x46\xe8\x6b\x6e\x58\xf7\x8e\x59\xa0\x6b\x1b\x10\x14\xbf\x70\x27\x68\x80\xa4\x7e\x31\xd7\x87\x5a\xd0\xd9\x0c\x6c\x5f\x95\xa1\x9a\xd6\xec\xa7\xb0\xbc\xf0\x9d\xd9\xff\x4c\x70\x38\xe7\xba\x5b\x6b\x34\xf5\x8a\xb5\xf9\xd0\x00\xc5\x96\x5a\x14\x18\x74\xe6\x86\xa1\xb9\xcd\xd2\x8b\xd0\xba\x5e\xe6\x3c\x16\xb9\x01\xc0\xb6\xa4\x31\xd9\x65\x82\x3c\x52\x9e\x07\x9f\x5a\xe0\x97\xd2\x8e\x37\x36\x5f\x2c\x00\x2c\x9b\xd1\xeb\x2b\xcd\x78\xf2\x68\x6c\x41\xb3\xb0\x47\x68\x61\x2a\x78\xda\xd0\x46\xf9\x98\x9c\x5f\xdd\x2a\x81\x15\x99\x2d\xce\x2c\xcb\xd8\xfc\x78\x9c\x5d\xfd\x7c\x79\x71\x35\x38\x1b\x0f\x07\x1f\xcb\x27\xde\x3f\xb9\xbd\xbb\x19\x0e\x3e\x95\x1f\x8d\x2f\xaf\xee\xc6\xee\x8d\xa5\x24\xdf\xd2\x41\xfd\x9e\x2e\xbf\x78\x82\x34\xcb\x05\xd6\xe8\x10\x19\x03\xfe\x38\x21\x53\x2e\x0c\x9f\x4f\x9d\x07\xdf\x8a\x30\x6e\x6d\xad\x3a\x51\x99\xc5\x09\x18\x77\x9a\x9a\x34\x86\x5b\x25\x08\x4e\xe1\x9e\xc0\x0c\x0d\x59\x7c\x78\x35\x3d\xbc\x35\x3f\xa6\x58\x3c\x10\xe1\x3f\x7d\x12\x54\x29\xc2\x4a\x5a\x09\x76\x43\xf6\x7a\x4e\xd1\xc1\x11\xba\xd1\x7c\x5f\xbf\xef\x2f\x35\x4d\xec\x31\x51\x98\x26\xd2\x0e\xb6\xb4\xae\x27\xe8\x02\x8b\x59\x61\x4a\xfa\x8a\x4f\xa7\xa6\xb1\xaf\xcd\x30\xf4\x1d\x56\x9a\x45\x03\xef\xd5\xa4\xe1\xee\x45\xe8\xcf\xbe\xec\xe5\xe1\x3a\x55\xdd\x67\xdb\xd1\xd4\xfd\x35\xac\xb8\x51\x3a\xef\x4a\xb7\xca\x75\x1b\xad\xc1\xc4\xcd\xe3\xe5\x97\x4c\x73\xdb\x75\x72\x2a\xbf\xd8\x40\x4e\x26\x11\x4d\xef\xfc\x54\x11\xd1\x44\x4b\xe4\x33\xb5\x3a\x6f\x38\xee\x0a\x09\x15\xcd\x80\x85\x10\x67\x19\xc1\x42\x36\xed\x76\x59\x0c\x6c\xd9\x7b\xd3\x53\xd8\x87\xdd\x64\xd7\xcf\x01\xe2\x0c\x74\x66\x2f\x44\x54\x28\xb2\x03\x0d\x98\xb6\x6a\x14\x70\x0d\x68\x5c\x57\x16\xf9\xea\x13\x95\x5a\x69\x34\x3f\x7e\x6f\x21\xb9\x36\x23\x08\xad\xc7\x57\x84\x8b\xf1\xd9\xf0\xc3\xe0\xfe\x62\xb9\xa5\xab\xf4\x5d\x75\x8b\xd1\x21\xd2\xcf\xcb\xee\x63\x3a\x35\x77\x86\x03\x16\x33\x2a\x2d\x61\x60\x77\xb1\x79\x63\xc6\xe4\x1a\x93\x2c\xe1\x8b\x94\x30\xb0\x52\x94\x6e\x42\xbd\x9e\x53\x4c\xed\xd5\x12\x0c\x16\x0c\x11\xd6\x72\x04\xd7\xd8\xa1\x43\x33\x23\xb1\xbf\x79\xcb\x60\x66\x15\xd6\x7d\x6d\x1c\x40\xf6\x3f\xb7\x0a\xab\x0d\xcf\xd8\xe0\xf4\xee\xfc\xa7\x61\x59\x3f\x3c\xfd\xe1\xfc\xa7\x26\xa9\x66\xfc\x71\x78\x39\xbc\x19\xdc\xad\x10\x4e\x2a\x4d\x36\x09\x27\x52\x0f\xb8\xea\x00\xa4\xd2\x07\xc6\x44\x06\x12\x0d\x51\x25\xd1\x23\x95\x74\x42\x01\x40\xce\x3a\xd3\xee\xcf\x81\xb3\x42\xa6\x20\x55\x0b\x27\xbe\x98\x7e\xcb\xfb\xa8\x39\xa9\x6d\xdf\x98\x1d\x42\x17\x1b\x18\xaa\xcc\xe6\xb8\x49\x9f\x20\xd0\x6d\x1f\x41\x69\x0b\x3e\x63\x5a\x90\x66\x33\x22\xcc\x70\xc0\x81\x10\x8e\x25\x78\xae\x47\x15\x0a\x2b\xc5\xaa\x79\xa1\x75\x46\x18\x11\x80\x50\xe5\x3b\x31\x82\x94\x20\xec\xbd\x96\xb9\xb2\x84\x46\x54\x25\x0b\x14\x41\x66\x1d\x58\xe4\x52\xcc\xf0\xcc\x0a\x07\xa0\xe6\x54\x48\xe2\x2f\x06\x65\xef\x6a\x6a\xad\xd3\x77\x94\x6c\x78\xcc\xee\x2f\xcf\x86\x1f\xce\x2f\xcb\x24\xf0\xc3\xf9\xc7\x92\x08\xfb\x69\x78\x76\x7e\x5f\xba\xcd\xb5\x24\xbb\x5c\xae\xaf\x36\xdb\x70\x14\xfd\x4b\x27\xe8\xcc\x7c\x7a\xa2\x17\xb7\x01\x42\xd0\x2b\xbf\x95\x75\xb8\x71\x91\x69\xee\x8f\x21\x53\xa2\xd1\xb4\xde\xd5\x84\x64\xdd\x68\x25\x1b\x52\xb3\xb7\xbd\xd6\xf7\x65\xd5\x2f\x5a\x8f\x46\xb0\xbe\x34\xdd\xc9\x51\x61\x59\x0a\xdd\xf0\x60\x34\x68\x33\x62\x35\x78\x66\x0a\x86\xfd\x13\x78\x59\xd3\x5c\x2a\xe3\x0d\x03\xe2\x44\x0f\x7f\x96\x7a\x41\xc1\x5b\x76\x84\x6e\x09\x19\x31\x67\x3d\x98\x51\x35\xcf\x27\x47\x11\x4f\x8f\x0b\xfc\xca\x63\x9c\xd1\x14\x6b\x49\x9a\x88\xc5\xf1\x24\xe1\x93\xe3\x14\x4b\x45\xc4\x71\xf6\x30\x83\x40\x10\xe7\x11\x3c\xf6\xcd\xce\xf8\xef\x2e\xfe\xf8\xcd\xe1\xc5\x9f\xbf\x79\x57\xb7\x90\xb5\xed\xff\x90\x45\x38\x93\x79\x62\x03\xc7\x44\xb8\x36\xee\xc8\xe7\x64\xd5\x7e\x5f\x96\xb7\x6b\x3b\xfd\xf5\xf4\xfa\x3e\xfc\xe7\xc7\xf2\x3f\x3f\x0d\x3f\x5d\xdd\xfc\x52\xe2\x94\x77\x57\x37\x83\x8f\x25\x86\x3a\xbc\xfe\x61\xf8\x69\x78\x33\xb8\x18\xbb\x87\xdb\xd8\xde\x7e\x64\xfc\x89\x95\x97\x46\x3a\x0e\x58\xeb\xe9\x04\x7d\xe0\x02\xfd\xe8\x77\xf2\x70\x82\x25\x5c\x31\xee\xce\x92\x07\x28\xe3\x31\x30\x5e\x44\xb2\x39\x49\x89\xc0\x89\xb5\x19\x48\xc5\x05\x9e\x99\x9b\x5e\x46\x02\xab\x68\x8e\x64\x86\x23\x72\x80\x22\xa0\x86\xd9\x01\x6c\x0a\xa8\x5a\x7c\x56\xb5\xf3\xdd\xe4\x4c\xd1\x94\x38\x15\xdc\xfe\xf3\xce\x6c\xc6\x06\x9b\x73\x75\xf7\x43\x59\xd8\xfb\x70\xf1\xcb\xdd\x70\x7c\x7b\xf6\xe3\xd2\xf5\x34\x9f\x95\x46\x76\x0b\x31\x34\xa7\x3c\xc9\x53\x16\xfe\xbd\xf9\xd8\xce\x2f\xef\x86\x1f\xab\xa3\xbb\x1a\xdc\x95\x29\xe3\xa6\x1c\xe7\xf5\xee\xfb\xab\xab\x8b\x61\xc9\xab\xf9\xee\x6c\x70\x37\xbc\x3b\xff\x54\xa2\x9f\xb3\xfb\x1b\x83\x56\xb9\x6c\x9a\x6e\x04\x0d\x13\xd5\xd3\x0a\xa7\xb9\x6b\x56\xd8\x89\x13\x0d\x6c\x5c\xb5\x39\xcb\x87\x01\x56\x91\x89\x68\x02\xab\xce\xa1\x37\xa9\x46\x66\xa4\x8d\xec\x50\x95\xb7\x09\xb5\xb3\xe3\xa5\x1b\xbd\x8c\x2b\xdf\xf9\x21\x18\xa8\x58\xa3\x6c\xe3\x24\xe1\x4f\x26\xa2\x35\xa5\xfa\x56\xb6\xc8\x75\xfa\x15\x59\x38\xb9\x8e\x1a\x38\x5e\x79\x5b\x48\x24\x88\xfa\xc4\x73\xa6\x36\x27\xb9\xc1\x65\x89\xef\x0c\x2f\x7f\x1a\xff\x34\x28\x53\xe0\xf9\xc5\x72\x56\x13\x36\xd1\x70\x15\x0f\x2e\x7f\xf1\x97\x30\xc4\x3d\x1f\x78\x0d\xd5\xc8\xae\x51\x42\xb5\xd8\x1b\x61\xad\xbd\x26\x20\xd1\x20\x42\xc1\xe4\x90\xea\xc9\x41\x9c\x65\x66\xfc\x49\x86\x3f\x99\x41\x9e\xb8\x3f\x2a\xed\x49\x58\x17\xb0\xa6\xba\xb0\x72\x68\xc7\x6a\xd5\x0c\x11\xf6\x48\x05\x07\xbc\x63\xf4\x88\x05\xd5\xd2\xb8\x69\x59\xcf\xf5\x04\xfe\x77\xbd\x36\xc1\x30\x5a\x61\x5c\xb7\x5c\xa8\x33\x1f\xcf\xba\x99\x35\xa4\x29\xae\xb3\x1e\xd1\xd9\x6c\xe8\xa8\x7f\xdb\xb0\x39\x5b\xc6\xbd\x96\x27\xfc\xf7\xe4\x8c\xe2\x44\x33\x80\xdd\xc9\x8b\x83\xcb\xdb\xf3\xb2\xfc\x58\x56\x33\x02\xbe\xbc\xb1\xbc\x08\x86\x4a\x33\x72\xa7\x4c\xdc\xfe\xe5\xc2\x68\x17\x00\x8a\x6d\xce\x6d\xa0\x58\x58\x74\x11\x23\x4d\x64\x58\xc8\xca\x17\x12\x01\x8a\x5c\x11\x33\xa4\xef\x2c\x88\xc8\x79\xe4\x34\x1e\x31\xf2\x39\x23\x4c\x82\x7f\xdb\xdc\x67\x85\xbb\x58\x1e\xa1\xf3\x29\xb0\x04\xfd\x3a\x43\x39\xb3\x0e\x30\x7d\xe1\x9a\x41\x1e\x68\x51\xb6\x00\x38\x09\xcc\x47\x8c\xb8\x78\x9f\x62\xf0\x23\xf6\xb3\x77\xa2\xc1\xa3\x29\xd7\x0c\x48\xef\xa2\x6d\xef\x04\x61\x26\xe9\x01\xd2\x0a\x4b\x75\x4f\x21\x82\x5e\x2b\x94\x36\x0a\x49\x73\x1a\xfb\xe7\xcb\x5f\x03\xb5\x50\xd7\xf0\x32\x68\xbe\x0b\x2a\x57\x41\x8b\x68\x9c\x18\x8f\xc9\xb8\xfb\x9d\x10\x71\x41\xac\x9f\x65\xed\x6b\x60\x15\x63\xbf\xc3\xf2\xa1\xe6\x7b\x38\x67\x52\x61\x16\x91\xd3\x04\xcb\x0d\xe3\x68\x9c\x8d\xe3\xa0\x2c\x71\xdc\xdc\xdc\x5f\xdf\x9d\x7f\xbf\x82\xcb\x57\x3f\xae\x47\xb2\x44\x49\xee\xdc\x73\x13\xc1\x71\x8c\x34\xfb\x9c\x71\xe3\x0a\xb4\x82\x7f\x01\x0d\x6f\xd2\x5b\x7c\x4c\x60\x09\x96\xbe\x88\xca\xb7\x76\x8e\xd0\x95\x40\xed\x42\xa0\x48\xaf\x04\x0a\x4c\x1e\x6e\xab\xc1\xb3\x68\x2a\xe6\x58\xeb\x56\x96\x60\x35\xe5\x22\x35\x5c\xbe\x34\x69\xd3\xf8\xf2\x46\x29\x53\x44\x88\x3c\x53\xd4\x61\xfd\x57\xa5\x54\xbd\x65\x17\x7c\xf6\x89\x48\x89\x67\x64\x1b\x07\x74\x93\xf2\x70\xfb\x53\xf8\x4f\x70\x30\x77\x91\xfd\x4b\x23\x74\xc1\xdb\x8e\x9e\xae\xd8\x07\x13\x8b\x72\xcd\x13\x1a\x6d\x18\x33\xf6\x61\x70\x7e\x31\x3e\xff\xa4\x95\xf8\xc1\xdd\xf0\xa2\x24\x4a\xc0\xb3\xc1\x87\xbb\xe1\x8d\x05\x39\x1f\x7c\x7f\x31\x1c\x5f\x5e\x9d\x0d\x6f\xc7\xa7\x57\x9f\xae\x2f\x86\x77\xcb\x29\xae\xb5\xf1\xba\x75\xb5\xfa\xea\x49\xed\x17\xd8\x61\xcd\xcb\x42\x7b\x19\x24\x4f\x61\x9a\x80\x13\x9c\x1b\x67\x38\x46\x8c\xc7\x06\x46\x4a\x3a\xeb\x8c\x47\x16\x47\xe7\xea\x7d\x92\x20\x9c\x2b\x9e\x62\xf0\xda\x24\x8b\x11\xc3\x13\xcd\x5a\x71\x92\x04\x11\x4a\x22\x67\x4c\xb3\x58\xdd\x98\x81\xf0\x8f\x12\xa2\xd9\x79\x16\xe4\xbc\x59\xbf\xc1\x94\x32\x08\x16\x4d\xb1\x78\x70\xf5\x08\x7d\x26\x81\x3f\x14\x12\x61\x39\x62\x06\xde\xca\x4a\x2b\x1d\x56\xf8\xa4\xd3\x5b\xad\xab\x93\xe2\x07\xa2\x57\x25\xcd\xa3\x39\xca\x04\x9f\x09\x22\xa5\xb5\x2d\x47\x98\x99\x00\x04\xfb\xba\xbe\x86\x46\x8c\x71\xbd\x14\xce\x84\x1d\x93\x8c\xb0\x98\xb0\x88\x9a\xec\x36\xf0\xdd\x7b\xd3\xe6\x4c\xe0\x6c\x8e\x24\x07\xa7\x37\x2c\x3b\xd8\xaf\xcc\x47\xee\x26\xb3\x80\x5e\xf0\x38\xb4\x40\x8b\x5c\xf3\x89\x2b\x90\x13\xcd\x2a\xc3\xc7\xee\x32\x74\x6e\x17\x63\x07\x4c\xb3\x84\x28\x53\xcc\x01\x96\x1c\x36\x43\xaf\x75\x69\x3f\xf4\x36\x35\x6d\x82\xbe\xb0\xdd\x98\xb1\xb4\x23\x3a\x6a\xb0\x6c\xdb\x23\x85\x7e\xc0\x2c\x4e\x74\x2b\xce\x87\x51\x3e\x8b\x90\x4d\x31\xd0\x54\xe3\x4e\xe3\x36\xb7\x68\x84\x73\xb9\xcd\x35\x5a\x49\x49\x34\x56\xc1\xc3\x22\x28\x04\xc8\xdb\xe6\x23\xc2\xea\x66\x9a\x45\xe2\x84\xdb\x55\x32\xaf\xe7\xa6\x40\x19\x82\xd1\xb4\x5c\xb3\x99\xa0\x2c\xa2\x19\x4e\x36\xd2\xfd\x2a\xf1\xe4\x36\x4c\xfb\x2b\x3a\xd5\xe4\xf3\x75\xcd\x6d\xab\x88\x48\x21\x4f\xd7\x0e\xd3\x6f\xe1\x1a\x96\x24\x1b\x98\x4f\x64\x11\x4d\x82\x05\xcf\x8d\x3f\x0e\xd6\x85\xc4\x0d\x47\xf5\xa8\x69\xbb\xa7\x20\x3c\x6c\x65\x41\x34\x25\x3d\xb8\xd8\x41\x28\xda\x92\x34\x9f\x5b\xdb\x4b\x6b\x7a\x40\x75\x95\x3e\xd9\x68\x78\x89\xfc\x00\x41\x73\x78\x8f\x59\xfc\xfe\x10\x8e\xe0\x8c\xc0\x39\x35\xfe\xa7\x38\x8f\x8c\xb3\xd4\xa5\x74\x3a\xa4\x83\x03\x44\x12\x3a\x83\x1d\xf4\xa0\xdb\xdd\x37\xeb\x0c\x62\x8b\x4c\x30\x12\x34\x6b\x32\x40\x31\xd5\xf2\xb8\x93\xdc\x6d\x55\x94\x6a\x3f\xc8\x58\xb4\x20\x4c\x60\x42\x12\xa0\xb0\x05\xc4\xd7\x13\x59\xbd\xeb\xcd\x76\x6a\x46\x87\xcb\x21\xd9\x1b\xec\xa8\x09\xe4\x6a\xdb\xce\x4a\x2b\xb6\x77\x13\x5b\x89\x93\xeb\xe6\x36\x9b\x0e\x54\xe7\x9d\xc4\x19\x2c\x9c\xa9\xd2\x81\x8b\x39\x5a\x9d\xd7\x56\x21\x74\xe1\x50\x41\x28\x84\xcf\x54\xe9\xbe\x5f\xc5\x12\xda\x78\xb6\x7a\x27\xa5\x90\x90\x20\x73\xde\xb2\xac\x69\xae\x55\x13\x84\x21\xa8\x04\x7d\x45\x8e\x66\x47\xc8\xd5\x5c\x39\x40\x83\xeb\xeb\xe1\xe5\xd9\x01\x22\x2a\xfa\xda\x85\xa0\xda\xf8\xb3\x11\xd3\xa4\x00\x87\x7b\xe1\xea\xe5\xa4\x44\xcc\x48\x69\xce\x2e\x58\x0d\x82\xa7\x67\x54\xd3\x92\xb9\x02\x58\x1c\x56\x36\xa2\x69\x55\x6b\x32\x14\x92\xab\xf9\x36\xa4\x81\xa5\xcc\x53\x3c\x49\xc8\x98\xe2\x74\x2c\x78\xb2\x0d\x8f\xf7\x67\x83\x21\x0f\x3a\x40\x71\x8a\x74\xb3\x36\xb2\xc7\x7b\x90\xbd\x84\xae\xe5\x5c\x7d\xcd\x6a\x31\x28\x10\x43\x9c\x33\xc9\x86\x17\x52\x17\xd1\x02\xa0\x04\x2d\x9c\xbf\xf0\x02\x8c\xad\xe3\x65\x8c\xa3\x88\xe7\x4c\xed\x78\x52\x41\xb9\x2c\xe7\xe1\xb1\x1d\x3d\xdb\x34\xbb\xf2\xa5\x4c\x5f\x48\x10\xdb\x5d\xaf\x2e\xd3\xd0\xef\x64\x51\xeb\xd5\x15\xb4\xba\x97\xde\x42\x66\x64\x2a\x49\x60\x27\xa5\x29\x88\x05\xbc\x0b\xc0\x50\xc3\x2e\x5d\x8a\x8e\x6e\x78\xc1\x73\xd1\x74\x6f\x8d\xd8\x19\xc9\x04\xd1\x8a\x5b\xd5\x1f\xe6\x69\xfa\xa6\x4c\x89\x3d\x5d\xf7\x74\xfd\xe6\xe9\xfa\xd4\xd4\x45\x1b\xf8\x3a\x78\x5b\x11\x78\x5d\xd2\x43\x2b\x44\x2e\x2f\x1c\x36\x12\x99\xb5\x8a\x97\xcd\xc8\xab\x9a\xbc\x2b\x3e\xea\xbe\xa5\x25\xcf\x69\xa5\x0c\x1d\x20\x29\xf0\x1c\xe4\xe9\xd2\xbd\xcc\xf5\x65\x1a\x64\x15\xdb\x22\x73\x4b\xd6\xd9\xb9\x58\x83\x02\x58\xdb\xac\x77\x53\x2b\xcb\x5a\x42\xcf\x2e\x47\x9d\x1a\x01\xaa\xa9\xae\x58\xf9\xb4\x3a\x59\x87\xb2\x5a\x75\x47\x73\x60\xf4\x02\x1b\xc1\xe6\xef\x39\x57\x58\x7e\x7d\x34\x62\x5a\x4a\x7b\x20\x0b\x23\x64\x6b\x39\xe8\xf7\x5a\x77\x3b\x94\x84\x49\x48\x0f\xf8\xbd\x71\xe7\xea\x33\xe4\xdc\x1b\xc6\x94\x61\x8a\x4a\x96\x4b\x9e\x41\x48\xb7\x6d\xd4\x8a\x61\x45\xc0\x7c\x51\x27\xcd\x3d\x33\xc3\x9f\x11\x05\x59\xe5\x8a\x2a\xd0\xb1\x63\x53\xb5\xb2\x36\xf4\x95\xa6\x4e\x43\x15\x82\x83\x5f\x2d\xce\xb7\xbb\x59\x64\xbd\x8d\xa6\x4d\x6c\xd6\x2e\x6f\x6d\x8e\xc4\xb1\xb3\x33\x46\x82\xd7\x4a\x41\x62\x89\xcc\x4e\x4f\x0c\xbf\x71\xf1\x0e\x84\x1d\x3d\xd1\x07\x9a\x91\x98\x62\xc8\x98\xd0\xff\x3a\xd6\xf3\xfa\xdd\xe9\xcd\xd5\xe5\x98\xf8\xb4\xae\xff\x1a\xb1\x41\x22\xb9\xcf\x6a\x41\x8c\x33\x9f\x9e\x91\x09\xe2\x64\x4e\x3b\x17\xb0\xd2\x17\x47\x7b\xc4\xda\x46\x10\xf3\x48\x1e\xe1\x27\x79\x84\x53\xfc\x0f\xce\x20\xf4\x62\x00\x7f\x9e\x26\x3c\x8f\x7f\xd6\x1a\xd6\x31\x9c\x6b\x75\x4c\x1e\x09\x53\xc6\xad\xa9\x97\x2b\x86\x7c\x65\x09\xd9\x1d\xbf\xd3\x63\x2e\x92\xd0\xe4\x88\x91\xcf\x11\xc9\x14\xfa\xff\x04\x99\x70\xae\x9a\x19\x14\x9f\x4e\x25\x59\xeb\xc6\x2b\x94\xfa\xdb\x2b\xf4\xe7\x3f\x7d\xf3\xad\x26\xa1\x4d\xd6\xf8\xfc\xf6\x6a\xac\xbf\xff\xdd\x99\xfd\x5e\xae\xc1\xee\xae\xb2\x82\xb5\x39\xe2\x31\x89\x16\x39\x83\xeb\x55\x80\xb3\x0b\xd8\x1b\x90\x43\xb1\x8f\x4d\xdc\xed\xcc\x20\x3b\x6c\x95\x65\xb6\x85\xd8\xf0\x31\xe1\x13\xb0\x23\xe6\xa5\x9a\x70\x4b\x22\x82\xb6\xf4\xbf\x9c\x51\x99\x25\x78\x51\xeb\x61\xd5\xb2\x5f\x6a\xee\x94\xe1\x88\x14\x90\x14\x2e\x78\x2f\xe2\x69\x0a\x01\xa5\x4e\x5f\x8f\xe9\x14\x22\x4b\x95\x16\x2a\xd0\x84\xa8\x27\x88\x63\x76\xbf\x7a\x61\xc8\x19\xf0\x35\x2b\x03\x76\x39\x7a\x67\x2c\x0d\xba\xd3\xd1\xbb\x03\x34\x7a\x17\x93\x47\x92\xf0\x4c\x9f\x66\xfd\x03\x51\x51\xd3\x26\x0e\x53\x4c\x93\x4b\xae\xfc\xcd\xb7\xcd\x7e\x0a\x12\xd1\x8c\xea\xd3\x35\x26\xba\xdd\x67\x4d\x21\x6c\x3e\x60\x77\x81\x9d\x05\xc6\x80\x70\x1c\x6b\x22\x86\x02\x79\x6e\x78\x85\x4b\x86\x05\x53\x2f\x15\x7e\xda\xc0\x10\xc3\x6c\x8f\x61\x9b\x65\xb1\xa2\x71\x07\xbc\xa1\x6e\xa7\x27\xa9\xdd\x8f\xe7\x5c\x23\xbe\xe3\xa2\x58\xd9\x52\xfa\xb7\xb5\x17\x03\xd0\x0a\x6b\xe1\x6e\xb5\x08\x56\x0f\xa0\x5e\x8b\x35\x64\x3a\x3f\xc0\x5b\xfd\xdd\xd2\xa1\xc9\x10\x35\x2e\x0a\x4b\xa8\x82\xf9\xc2\xe6\x9a\x54\xd3\x5b\xc8\xca\x11\x47\x09\x97\xe5\xd4\xd3\xce\x83\x3e\xb5\x9f\x2e\x1b\xf7\x30\xb4\xf6\xe4\xc9\x7a\x06\xc0\x41\xc3\xc2\x57\xe0\x41\x0c\x9b\x50\x56\x43\xb1\x6f\x1f\x20\x0a\xce\x4b\x90\x6c\x93\x22\x11\x87\xc5\xa8\x90\x12\x47\xac\x30\x01\x4b\xf4\x44\x12\xf0\x1a\x45\x3c\xcd\x40\x02\xb2\xc3\xb5\x2d\xe9\x0b\x5c\x61\x45\x0e\x10\xcf\x95\x6e\xcc\x84\xb8\xb9\x3b\xce\xc6\xcf\x15\x52\xa1\xd1\x7d\x6c\x2c\x89\x87\x2b\x33\xb4\x6e\x58\x21\x65\xe8\x23\x51\xd0\x0a\xc0\x41\x86\x13\x34\xc5\xc6\x97\x1e\xa5\xd3\xda\xb6\xad\x7d\xa2\xec\x4c\xd6\xd8\xf9\x22\x0f\xf1\xfb\x84\x4f\x96\xee\xfb\x15\x34\x8e\xee\x6f\xce\x9d\xcf\xad\x70\x47\x04\x78\x56\x25\x8d\x6e\x78\x7d\x33\x3c\x1d\xdc\x0d\xcf\x8e\x90\x56\x1c\x3f\x12\xe5\xa7\x0b\xe9\x0a\x1e\x19\xd1\x8c\xdc\x26\x36\x32\xa9\x08\x8e\x5b\xa8\x9b\x08\x51\x4a\x2a\x58\xc1\x38\xca\x59\x8f\xcb\x09\x1b\x72\x0e\x29\x33\x19\xa0\x90\xa7\x5b\x9d\xa7\x75\x74\xad\x3a\x81\xe0\x76\x18\xbf\x1d\xa7\x8f\x19\x6f\x5a\x77\x74\xad\x22\x9f\xb2\x83\xec\xb9\x27\x03\x47\x4b\xcd\x09\x15\xa8\xd3\xb4\x0c\x51\x8d\xbb\xcf\x29\x88\x18\xf9\x84\xb3\xe5\xd1\xdc\xf8\xa9\x44\xb4\xd6\x67\x52\xd8\x4e\x9e\xfb\x1c\x38\xb6\x36\x36\xac\x70\xfb\x09\x16\xf2\xbe\xe1\xad\x9e\x6f\x9a\x00\x2a\xe9\x8c\x56\xe1\xc4\x2a\x83\xb0\x6e\x61\x89\xe0\xec\xc0\x2f\x94\xa1\xd2\x95\x78\x80\xa6\xf4\xb3\x6d\xb4\x08\x17\x71\xaf\x06\x06\xa7\x16\xf7\xe4\x1c\xd7\xcf\xd4\x1a\x62\xc3\x35\x7c\xbf\xd4\xbf\xc2\xa5\xd2\x52\x97\x96\x5c\x05\xd1\xfa\x05\x89\x11\x74\xeb\x83\x57\x56\x8a\x0c\x0a\x0b\xbd\x28\x78\x2d\x7d\xab\x40\xb6\x8d\xb1\x22\x87\x8a\xae\xcc\x27\xb0\x21\x67\x10\x9c\x86\x55\x90\x5d\x5f\xdc\x3c\x13\x32\xc3\xcc\x45\x3a\xb4\x0c\xd7\x5d\x79\x5b\xb0\x2a\x2d\xc1\x62\x88\xb6\x04\xf9\x0a\x22\xe9\x4a\xe3\x90\x19\xac\xe7\xd2\x71\x58\xeb\xe3\x3e\x2c\xdb\x13\xf6\xc6\xd0\x96\xc1\xe6\x59\xbc\x4f\x83\x4d\xb0\x54\xc8\x8e\xa9\x4d\x93\x0c\x24\xfc\xe7\xf5\x4e\x97\x54\xb3\xae\xf6\x38\x4d\x42\x65\x25\x84\x28\x45\x6d\xc1\xdb\x5c\x12\x9b\x74\x99\x12\x31\x73\x82\xb0\x29\x46\xe6\xcf\xb6\xad\x4a\xe6\x6e\x89\x90\x99\x40\xcc\x4b\xbd\xe9\x23\x34\x60\xb5\xf4\x73\x67\x17\x2f\xad\x97\xb9\x93\x70\xf2\x84\x17\x12\x65\xc2\x64\x6a\x9a\x40\x18\x37\x79\x70\x58\x96\x3f\xf2\x96\x22\xe5\x22\x91\x10\xa8\xd2\xab\x9d\x16\x41\x8d\xed\xee\xdc\xae\xa3\x4e\x54\x09\xd2\x68\x2a\x83\xed\x55\xcd\x0e\xac\x4e\x91\x71\x34\xc7\x6c\x46\xc6\x36\x39\x75\x23\x6d\x49\xb7\x73\x0a\xcd\x9c\xd9\x56\x9a\x2f\xa7\x6b\xa3\x30\x59\x54\x61\xf3\xaa\xd3\xe9\xe0\x10\x48\x85\x67\x04\x99\x11\x2d\x53\x4c\x0a\xa8\x89\xd0\xa0\x6e\xe1\xa7\x40\x4f\xb0\xad\x0e\xcb\x41\x29\x6d\xc2\x3b\x58\x86\x2f\xf0\x84\x24\x5b\x07\x1b\x6c\x64\xa5\x83\xae\x2d\xd8\xa6\xe2\x7a\x69\x20\xb8\x86\xa0\xa7\x39\x11\x55\x76\xec\x6c\xdb\x22\x6f\x72\x3d\x2c\x9b\x67\xa9\xfe\xdf\x16\x13\x75\xe8\xb1\x9b\x4c\xb5\x0d\x53\x36\xbc\xf6\x02\xec\xd5\x26\xfb\x48\x78\xfd\x55\x4d\x82\x9b\x0d\x24\x80\x80\x6d\x19\xc7\xd6\x18\xb0\x2b\xa7\xb2\x71\xce\x4e\xc7\xda\x0a\xe7\x53\xc4\x38\x23\x88\xca\xe2\x65\x55\x8e\x2e\xf4\x19\xaf\x5a\xc4\x37\xc6\x97\x7a\x45\xdb\xe7\xb6\xb4\x14\xb9\x48\xde\x36\xe0\xd2\x25\x18\xd1\x8a\x2a\x16\x0b\x40\xcc\x31\x7c\xb8\x2c\xd3\xad\x1c\xe7\xce\x05\xee\x3b\x07\x88\x14\x78\x4a\x15\x47\x20\x46\x56\x06\x87\x0c\xac\x90\x7d\xc9\x7e\x64\xb3\x3e\x47\xcc\x5b\x36\x80\x10\xa9\x44\x29\xce\x20\x57\x81\x71\x55\x7c\x65\xb2\x98\x95\xdf\xc2\x03\x27\x88\x4b\x83\xcc\xde\xb2\x02\xab\x4c\x3b\xee\xfa\x2d\xd6\xb5\x8c\x16\xe3\x90\xae\x66\xf4\x91\x30\x47\xd3\x07\xee\x4c\xe8\x41\xb9\x4e\x93\xc5\x21\x06\x37\x2f\x89\x43\xc3\xf5\x72\x8e\x64\xab\xd9\xee\x81\x3d\xb2\xfb\x92\xe9\x8d\xcf\x6b\x16\x4a\x83\x39\x50\xc2\x3b\x74\x8e\xf9\x90\x4a\x2d\x0c\x96\x49\xac\xc0\x12\xfd\x9e\x71\xf5\xfb\x00\x28\xcc\x19\x2f\x4c\xb1\x63\x6b\x82\x3a\xa8\x81\xf8\xc2\xa1\xb5\x84\x83\x70\x90\xb0\xbe\x72\xe5\xb7\xc5\xeb\x2b\x02\x0f\x9e\x55\x1a\x1d\xd6\x83\x4a\xdb\x50\xd0\x4d\x75\x90\x9d\x59\x6c\x5e\xa2\x8c\x3f\x32\x64\x20\x88\x03\x2f\x48\xb9\x20\x95\x0a\x25\x86\x9f\xfb\xa8\xeb\x34\x53\x8d\x99\x8b\x75\xd1\xa8\xc1\xe0\x69\x8a\x35\x14\x27\xbd\x64\xe8\x94\x47\x23\x76\x4b\x48\x3b\x82\xbf\xdf\x8b\x5f\xa1\x21\x18\xab\x93\x1a\x97\x50\xda\x2e\x42\xb0\xd3\x32\x38\xcd\x12\xaa\x59\x81\x29\xd6\x6c\x97\xd8\x24\x6c\xba\x4d\x2e\xf7\x4e\x8a\xb0\x14\x75\x1b\x68\xd6\xd1\x88\x7d\xe0\xc2\x5e\xc1\xd2\xc2\x76\x4e\x70\xf4\x70\x48\x58\x8c\x70\xae\xe6\x06\xbc\xca\xfa\x15\x16\x96\x1a\xb4\xa4\x01\x64\xe3\x33\xd3\xa8\x8c\xb0\x88\x1d\x06\xea\x23\x77\xa3\x18\xb1\xa0\x11\x00\x06\x05\xe8\x6f\x28\x80\xd4\xa6\x6a\x12\xa8\xb5\xd0\xb6\x16\x4d\xa5\x7d\x6a\x85\x7d\x96\x9f\xb3\x52\xa9\x22\x80\x34\x65\x44\x5a\x91\xbd\xb2\x3a\xe7\xce\xda\xe8\xf4\x3b\x19\x16\x7b\xf7\x6f\x1e\x58\x8d\xc2\x98\xa4\xec\x0c\xb4\xa4\xf3\x8d\xe3\xb5\x25\x10\xae\x69\x2e\x20\x08\xaa\xa9\xcd\xaf\xa2\x39\x4d\x0a\xdf\xc5\xd7\x07\x7e\x98\xba\xc9\x84\x3c\x92\xc4\x40\x40\x46\x02\x02\x17\x8c\xd5\xf0\x1b\xf4\xbf\x4c\xb9\x1b\xf4\xed\x88\x7d\x04\x36\x9c\x24\x0b\x00\xa8\xf1\x2d\x63\x55\x69\xe6\xa1\x71\x00\xca\x86\x62\xa1\xf2\x40\xcc\x5e\xcf\xf1\x23\x19\x31\xd7\xcc\xff\x42\x0f\xe8\x0f\xe8\xdb\x36\xf5\xce\xc5\x1f\x3c\xb3\x9d\xe3\x43\xe0\xdd\x0f\x6e\x39\xcb\x28\x2d\xbf\x71\x66\x90\x92\x11\xb2\x21\x51\xcd\xe3\xcc\x51\xf6\xc8\xa3\x5a\x90\x4b\x78\x6a\xb1\x20\x4c\x8d\x19\x8f\xc9\x98\x34\xb8\x34\x97\x30\x09\x2d\x04\x5c\xf2\x98\xac\x74\x48\x7a\x66\xfa\x33\x98\x6e\x64\x3e\xf1\xdb\x01\xf9\x32\x3e\x39\xc2\x5b\x1f\xca\x94\xd6\x3c\x72\x0f\xe6\xb4\xc9\xb8\x37\x75\xa6\x5e\x59\xf9\xec\x00\x2e\x04\x3b\x80\x66\x87\x5e\x82\x95\x8b\x41\xaf\x1e\xc7\xaa\x23\x40\xbf\xac\x67\x6e\x2f\xab\x00\xa6\x0a\xa0\x84\x05\x9d\x51\x2d\xbf\x77\x77\xd8\x02\x27\xdc\xc4\x9b\x61\x30\x7b\x3a\xb9\x33\x8a\xa5\x70\x79\x8b\x87\x9e\xfe\x0a\x27\xe4\x84\xe7\x55\x01\xde\x2e\x00\x95\x61\x74\xbc\x95\xd5\x17\x9a\x0f\xcf\x4c\x04\x26\x99\x53\x93\xc2\x32\x38\xbd\x40\xfa\x74\xf0\xd4\xe4\x79\xc3\xa2\xe5\x6a\xce\x05\xfd\x47\x6b\x00\x57\xbb\x8c\x5e\x78\x5a\x8b\x78\x37\x33\xce\xb2\xb4\x0e\xc4\x6a\x44\x0a\x55\xd2\x4a\x9a\x74\x26\x34\xc9\x01\xd2\x48\xb3\xd9\x69\x9e\x18\x1c\xd4\x88\x8b\xd8\xd4\xe3\x93\xa5\xe8\x3a\xfd\x9e\x17\xef\xb1\xf2\x0d\x52\x8b\xfc\x62\x91\x56\x8d\x05\x67\xa9\x00\xfa\x97\x9c\xe4\x3b\x0a\x50\xb4\x05\x00\x5e\x28\xf2\xa3\xaa\x06\xe0\x99\x2c\x82\x82\xcd\xda\x68\xde\x5c\xac\xef\xdf\xf5\x4c\x65\x10\x33\xec\x2c\x8b\x3e\xa3\xda\xa8\xe4\xa6\x54\xcc\x5a\x16\x9d\x1b\x83\x24\xb9\x03\x93\xce\x4b\xc4\x73\xd4\x65\xa4\x06\xf6\x63\xc9\xef\xd1\x07\xb8\x56\x59\xc4\x33\xd9\x49\x1c\x24\x67\x45\xfa\x78\x46\x93\xc9\x06\x4c\xae\x2e\x54\x2f\x5b\xef\xc0\x80\xe2\xd9\x5a\x43\x30\xbb\xe2\x48\xcf\xfd\x49\x50\x00\x5c\x58\x14\x2f\xfb\xaa\x48\xee\xba\x08\x79\x8c\x96\x52\x8c\x58\x0b\x71\x1d\x6e\x09\x17\xcd\x3c\x7e\x0d\x03\x84\x6d\xa8\xdc\x75\xdd\x6f\xdf\x76\x22\x0c\x4b\xda\xd7\x23\x51\xcf\xb6\x5c\x79\x18\x3c\xb0\xee\xeb\x18\x10\xbd\x68\xf3\xcc\x27\x63\x2d\x0a\x09\x2e\xb2\xb5\x49\xe4\xb6\x6c\xaa\x5c\x9b\x2e\x4c\xdf\x63\xf0\x73\x6f\xed\xde\x09\x5c\x00\x45\xba\x86\xc9\xd3\x73\x19\xd6\x2f\x64\xc8\x84\xc8\x81\x72\xa6\x60\x10\x38\xd0\x96\xe1\xfb\xac\xfc\xac\x40\x34\x75\x1c\xa9\xe3\x50\x96\xba\x4b\x3b\x3a\x3f\xc1\x42\xb6\x8c\xbd\x5e\xd8\xa8\xcf\xb2\xdb\xd0\x27\xba\x16\xa1\x76\xb6\xec\x8c\x12\x18\x12\x08\x20\xec\xfb\x67\xa3\xe5\x51\x69\xac\x30\x0e\xb9\x34\xcd\xd4\xc2\x02\xdd\x03\x6f\xb6\x10\xd8\x6a\x8e\x99\x4d\xe2\x6f\x72\x51\x56\xf9\x74\x5c\x72\x52\x36\x75\x06\x1d\x59\xd5\xb6\xb1\x49\xb7\xd0\x61\x16\x51\x25\xa9\xa2\x2d\x22\xc1\x94\xbd\x19\xe3\xa4\xd5\x9e\x32\xe1\x3c\x21\x98\xb5\xa9\x9d\x8d\x8f\x6b\xd6\x57\x1a\x26\x52\x58\x3c\x1f\x25\x72\xa2\x75\x6e\x9c\x24\x95\x79\x61\xa8\x5c\xab\x7c\xdd\x80\x49\x51\x9f\xa7\xbb\xc3\xd4\xe4\x2e\xaf\x13\xa1\x67\x3e\x58\x4a\x45\x36\x1f\xda\x55\x56\xed\x94\xfa\x1b\x86\x7f\x35\x26\x4a\xaf\x1a\x58\x98\x5e\xbd\x54\x84\x28\xa7\x28\x6f\x36\x44\x49\xa2\x5c\x50\xb5\x18\x5b\xc3\x53\x77\xa6\x75\x6b\xbf\x3c\xb5\x1f\x76\xd1\xea\x4e\x90\xeb\xcf\x19\xba\x40\xbc\x11\xd4\x80\x22\xdb\x29\x74\xd9\x6e\xad\xa9\x35\x26\x50\x2e\x5b\x58\x97\xc1\xd9\x6d\xa8\xba\x8b\x4d\x87\x67\xc1\x56\xc7\x7c\xea\x72\x23\xbb\x2f\x6c\x15\x85\x76\x0d\x8b\x9d\x43\xd4\xca\x04\xe5\xc2\x82\xbd\x76\x09\xac\x4a\xf1\xe7\x71\x86\x05\x4e\x12\x92\x50\x99\x6e\x6e\x5f\xfc\xe3\x77\x4b\x47\x7b\x6a\x40\x89\xa5\x85\xf8\xfe\x4c\xd3\x3c\x0d\x2a\xa2\x03\x12\x52\x80\x67\x62\x4d\xf6\x36\x8f\xd3\x0d\xb0\xb8\x68\x98\xa2\x22\x40\xa8\xd1\x3a\xb1\xc7\x2a\xb3\xea\x32\x8e\xe6\x50\xa9\x76\x8a\xa9\x60\x44\xca\x23\x74\xc9\x15\x39\x41\x9f\x70\x76\x07\x0a\x9f\xa9\x12\x32\x33\x16\x5a\x2c\x91\x96\x9c\x72\x46\xd5\xc1\x88\x59\x80\x33\xb7\x2a\xc7\x11\x67\x06\xe4\x26\x82\x85\xf5\x4d\x80\xc9\xd1\xa1\xbd\x28\x53\x38\x40\x53\x49\xcb\x62\x0b\xfc\x34\x0e\x22\x28\xc7\x26\x42\x7d\x0d\x3a\xbe\xc1\x4f\x26\x66\x18\x0a\x3b\x9a\xaf\x97\x48\x8f\x36\x28\xc7\x82\x42\x1b\x6c\x27\x17\xbc\xc0\x01\xa2\x94\x20\x0f\x67\x6f\x22\x24\xbf\xa2\x47\xe4\x08\x7d\x9f\xf0\x89\x3c\x40\xd2\xe3\xa0\xb9\xba\x93\xf2\xc0\x38\x49\xe0\xdf\x26\x9b\xe4\x6b\xb7\xfa\x05\xdf\x87\x4a\x0e\x53\xfa\xd9\x54\xf2\x97\x7f\x3c\x39\x3e\x4e\x17\x87\x93\x3c\x7a\x20\x4a\xff\x05\x32\x45\xe3\x0a\xd9\x74\xc0\x31\x6e\xca\x49\x5d\xb5\x3a\xf5\x7c\xd6\x4e\x14\x69\x91\x10\x2c\x46\x86\xbe\xd2\x7d\xad\x1c\x97\x9d\xc8\x59\x73\x21\x10\x3b\x65\x91\xb7\x1d\xaf\x12\x86\xd6\x33\x5e\xbc\x03\x83\xae\xe9\xce\x47\x19\xba\x6b\x9a\xe0\x99\x31\x0c\x16\xe6\x6c\xb8\x6b\x9d\x82\xa9\x08\x73\x2e\x52\xca\x66\x49\xd9\xb8\x76\x95\x52\x4b\x45\x7a\xee\xe0\xf3\xd7\xa7\xac\x1c\xe9\xf4\xde\xb9\xc4\xc0\xb5\x65\x4d\xfe\x47\x23\x36\x90\xe8\x89\x98\x12\x3f\x90\xd6\x04\x16\xf2\x9c\xca\xb9\x4f\x6a\x02\x9b\x1d\x34\x6a\x10\x8e\x74\x4f\x5e\x79\x81\xa4\x0d\x08\x82\x35\x3e\x04\xab\x05\x41\xad\x4d\xdd\x30\xa4\x45\xbb\x60\x36\xf4\x24\x70\x96\x11\x31\x62\x16\xad\x06\x30\xd9\x38\xb7\x81\x0a\xeb\x81\x74\x94\x43\x6c\xa1\xf2\x52\x0a\x82\xb7\x2c\x0a\x4c\x38\x3d\xdd\xab\x3d\xa5\xeb\x01\x40\xa2\xe0\xe3\x98\x13\x19\x18\xe0\x90\xd7\xa3\x13\x3a\x25\x9a\x6b\x8f\x98\xde\x9d\xd0\x58\x68\xb0\xa6\x1c\xf4\x94\xee\x34\x12\x5c\x4a\x1b\x35\x6b\xda\x59\x9e\xfb\xb0\x05\xac\xbd\x01\xcc\x32\x35\x11\xab\x00\xf7\xc1\x33\x07\x75\x6f\x1f\x36\xa2\x99\xb5\x36\xb5\x12\xd8\xbe\x58\x8b\x35\xa0\xed\x8f\x4f\x2f\xce\x3d\x9e\x73\xa5\xeb\x3a\xb6\x7d\x08\x32\xd6\x8e\x6e\x5f\x9f\x71\x80\x73\x5f\x69\x62\x09\xd2\xfd\xea\xcd\x2a\xc7\xea\x6d\x93\x11\x5c\xd9\xfa\x55\x7c\xb3\x42\x33\xab\x42\x4a\x77\xb4\x4d\x2d\x09\x06\x11\x5c\xb4\xcf\xed\x1d\x83\x0b\x4b\xbf\x25\x15\x4e\xb3\x30\x5d\xca\x61\x2e\xd8\x69\x9a\xa3\xd6\xa6\x55\xbd\x28\xb4\x57\x84\x8d\x27\xba\x3a\xb8\xda\x56\xac\x67\xad\xbe\xb3\x88\x61\xbb\x08\x41\x7c\xb9\xfc\xc3\x64\x51\x44\xdc\x48\x7b\xe7\xf9\xa2\xd4\xcd\x36\xbb\x09\xf1\xe8\x68\xad\x1b\xba\x6d\x82\x91\xd3\x21\x90\x20\x58\x5a\x57\x2a\xe4\xe1\x54\x62\xf4\xd7\x30\xab\xf9\x31\x9b\x4c\xbe\x43\x8f\x47\x18\x5c\x35\x16\x62\x3b\x72\x07\x91\x0a\x41\xa0\xb4\xb7\xc1\x78\x3e\xaf\xdc\x2e\x00\xc7\x2d\x08\x8e\x17\xc1\x8a\x78\x67\xa1\xe9\x19\xcc\x0a\x92\xa6\x5a\xf1\x01\x91\x8e\xf1\x43\x9e\x39\x59\xaf\xf4\x16\x80\x49\xd2\xa9\xbe\xb1\x02\x57\xa3\xfe\x82\x1d\x42\xcd\x5a\x2d\x1b\x37\xc4\x59\xb9\x46\x20\x2e\x0b\x20\xa6\xe7\xc4\xde\x70\xa3\x77\x83\xef\xaf\x6e\xee\x86\x67\xa3\x77\x45\x64\xad\x4b\x1d\x71\x52\x8e\xc7\xba\xe3\x6c\xc4\x7c\x30\x9c\x07\x8f\x81\xbd\x44\x38\x8e\x0b\xe8\x2e\x2b\x7c\x9b\x58\x9e\xa5\x1c\x39\x38\x15\x2b\xc3\xe0\x96\x34\x73\x0f\xf9\x03\xfb\x7a\xb2\x96\x98\xbd\x4b\x27\xc7\x64\x41\x2c\x09\x57\xdf\xd1\x65\x13\xc2\x52\x28\xa3\xa3\x10\x5f\x01\x97\x91\x27\x27\x63\xc2\xed\x7c\x8c\xcd\x25\xbc\x1e\xb7\x73\x1b\xb2\xc1\xa6\x7e\xa0\x9f\x49\x7c\xd3\x22\x55\xed\x24\x1a\xbd\x53\x14\x4f\xe3\x2e\x68\xbd\x75\x8d\x4d\xf0\x53\xb9\xd7\xdf\x75\x67\x4b\x86\xbd\x55\x90\x23\x00\x36\x42\x21\x8c\x22\x22\x14\xa6\x0c\x4d\xe1\x60\x6b\x5d\x19\x30\x09\x08\xf8\x9f\xbe\x43\x29\x65\x90\xf5\xbb\x6c\x69\xef\xcb\xf3\x58\xa7\xc4\xe4\xf9\xe5\xfd\x5d\x49\x54\xfd\xe1\xea\xbe\x5c\xdf\x6c\xf0\xcb\x52\x59\xb5\xd2\xc2\x32\x47\x7f\x30\xc5\x22\x83\xc8\x02\x68\xf8\x95\x69\x9a\xe8\x47\xa2\x7e\xd2\x7c\x99\xb3\x5d\x84\xd7\x5a\x39\x0b\x9c\x1e\x64\xfc\x68\x1a\x5e\x83\x0c\xec\x50\x96\xc4\x50\x3b\x49\x0e\x7a\x40\xb6\x87\x30\xa1\xf7\xc8\x54\xf2\x82\xca\xfe\xa0\xae\xb9\x40\x15\xad\x2f\x71\xa6\x97\x6b\x04\x6f\x23\x55\x6b\x8e\x4f\xcd\xc7\x9d\x02\x27\x6f\xc2\x70\x49\xdd\x56\xb1\x94\x68\x70\x7d\xde\xb0\xd6\x17\x55\xbb\xf0\x97\x85\x53\x99\x78\x13\xf5\xae\x21\x2a\x83\xbc\x97\xbd\x40\xa7\xb4\x33\xdd\x0e\x98\xd2\x78\xf2\xae\xcb\xee\xc1\x67\xbd\x86\xb7\x90\x67\x4b\xf9\x6c\x56\x31\xd8\x0d\x98\x46\xb1\x0c\x6b\xa2\x69\x84\x03\xb2\xf1\xc5\x21\x82\x44\x3d\x78\xed\x20\x44\x94\x30\xb5\x54\x9d\x2f\x72\x67\x28\x1b\xc5\x6c\xba\xc0\x6c\xfc\x64\x28\xda\x67\x61\x43\x5e\xb9\x03\xce\x77\x41\x67\x36\x29\x32\x9c\x6e\x48\x6d\xeb\x21\x73\x14\xe3\x73\x36\x2d\x5b\xfc\x05\x67\xd8\x2a\xc5\x20\xe1\x3b\x84\xb2\x26\x00\xf4\xa3\x11\x0b\xbc\xd0\xd2\xc8\xe4\xfa\x8c\x38\xd4\x41\xa8\x4c\xa2\xd9\xa9\x8d\xfe\xf6\x37\x73\x69\x07\xaa\xb9\x97\x6a\x5e\xc6\x0d\xac\xf5\x63\x4f\xa7\x9c\x63\x97\xe1\xe2\xd4\x7b\x1b\x60\x12\x1a\x3f\xa0\xbd\x00\xc8\xcb\x76\x4c\x1e\x89\x0d\x4a\xc1\x01\xac\x78\x90\x15\x19\x73\x22\xd9\x7b\xe5\x73\x88\x68\x62\xb1\x0e\x71\xd5\xe6\xa7\x45\x0e\x4c\x6d\xcb\xcb\x0f\xf8\x0e\x60\x3f\xd6\x95\x6a\x83\x63\xb5\xd2\x86\xe2\x1c\x37\x40\x09\x61\x80\x01\x74\xda\x86\xd1\xf1\x39\x23\xd1\x26\xd8\x04\xd7\x58\xe0\x94\x28\x22\x96\xc5\x18\x94\x8b\xfe\x80\xff\xdc\xed\xa0\xed\xd7\xec\xa2\x41\xb8\xab\x42\x21\x7a\xd5\xeb\x62\x15\xd6\x80\x9f\xc5\x5a\xb0\x2a\x7a\x1a\x3f\x59\x48\xbf\x35\x67\x61\xfb\x29\xa6\x61\x43\x28\x02\x68\x89\x6d\xe7\xf4\x32\x39\xf6\x77\xb5\x6c\xf5\x52\x0c\xc0\x9e\x24\xd7\xaf\x1e\x65\x5b\x56\xfd\x2a\x5e\xba\x13\xde\xed\x42\x67\x5d\x6e\x56\xe5\x50\x95\x82\x72\x81\x4a\x40\xde\x37\x09\xe6\xcd\x99\xf1\x20\xb4\x34\x85\x3d\x05\x09\x06\x16\x37\xa9\xb0\x36\x5a\xc9\xaa\x8a\x1a\x5b\x59\xae\x15\x3c\x6e\x57\x59\xc3\xbd\x44\xb3\x6b\x89\x66\x0d\xdb\x9e\xa1\x4e\x22\x2a\x00\x06\xb6\x38\x8f\xcd\x3c\x2d\x4f\x10\x82\xda\xed\x15\x69\x2b\x7c\xc0\xd5\x4f\x99\xff\x57\x99\x83\x3b\xa2\x0e\x49\xb5\x29\x5b\xe7\x28\xf0\x8f\x80\x7b\x24\x09\xa5\x01\xeb\x2c\x87\xd1\x9a\xd8\x26\x63\x82\x3e\xbf\x34\xde\x15\xc8\x9a\x5b\xf0\x1c\x3d\x51\xa9\x75\xe1\x11\x83\xe0\x1f\x6f\xaa\x56\xdc\x96\x18\x3e\x80\xb7\x20\xbf\x56\xe6\x93\x94\x2a\x84\x83\x19\x96\xec\x65\x07\xf6\x3c\xeb\x0f\x60\xc6\x8d\x09\x9c\x4d\xd8\x0f\x2b\x0e\xcd\x06\xc6\x9f\xa2\x91\x6d\x73\x34\x83\x40\xc5\xe7\xcd\xd2\x0c\x34\x9e\x50\xc3\x6c\x3c\x73\x7d\x9a\x26\x6a\xb6\x36\x58\x34\x3a\x80\x0c\xa4\x52\x55\xee\x16\x8b\x41\xb7\x22\x45\xb3\xd8\x88\x4e\x39\x9a\xc5\xeb\xbb\x48\xd2\x6c\x83\x07\x5e\x96\xb4\xe3\x3e\x69\x31\xce\xba\x64\x30\xc5\x5d\x34\x6c\x28\x29\x5d\xb7\x4a\x4a\xfb\x06\x97\x53\x44\xf9\x6e\x1e\x33\xba\x8e\x3a\x58\x04\xfe\x87\x54\x14\xe4\xf1\x94\xc1\x06\x48\x95\xf3\x33\xae\x20\x58\x3b\x82\x52\x5b\xb5\x04\xa2\x11\x6b\x96\x40\x96\xf3\xc4\x6d\xe3\xae\x77\x0a\xab\x13\x9c\x3f\x37\x0b\x6b\xd1\xfa\xd9\x47\xae\x18\x65\xd9\x16\xcd\xaa\x8a\x98\x85\xff\xa9\x45\x01\x01\xc1\x63\x93\x4c\xb6\x86\x53\xd9\x31\x2a\x7a\xe5\xb9\xb0\x97\xee\x0e\x55\xbb\x1a\x77\xee\x1c\x44\xee\x65\x64\xcb\x8d\x5d\x14\xa4\x53\xe3\x2b\x6e\xc4\x4d\xaa\x47\x00\x5a\xdd\xce\x30\xf6\xaa\x69\xaf\xba\xf1\x03\x70\x3d\xda\xa1\x63\x13\x86\xe1\x91\x5f\x2b\x5b\x52\x9a\xb0\x2d\xb2\xf6\x0c\x93\x5e\xb7\xe2\x47\xe0\x0a\x13\x36\x84\x8f\x86\x76\x03\x28\xf5\x61\x23\x9f\x2a\x7c\xd8\x8b\x76\x39\x8b\x89\x60\x04\xab\xf9\xcb\x05\x4e\x9f\x6e\x6b\x9c\x7e\xb1\x20\xea\xd3\x9d\x94\x7b\xaa\x04\x26\xaf\x19\x93\xbc\x46\x80\x6f\x51\xfc\xa3\xa6\x38\x36\x55\x4d\x2c\xb0\x0d\xd6\xa1\xd2\xad\x62\xab\x9b\x95\xb9\xe7\x89\x32\x6f\xb0\xfa\xd4\xe2\xcb\xf5\x61\x0f\x4b\xa6\xac\x58\x92\x2f\x22\x9c\xfb\xf9\x23\x8c\x97\xd5\x4e\xc9\x83\xa0\x63\xa8\x90\xa3\x30\x65\x96\x7b\x2d\x8b\x33\x36\xe5\xe5\x9b\x42\x8b\xf7\x3e\x68\xfd\x8b\x8f\x59\xef\x23\x98\xdf\x64\x04\xf3\x32\x53\x97\xf7\xbe\x40\x81\xde\x12\x4a\xbe\x91\x11\x57\x68\x0c\x9b\x47\x16\x3b\x6b\x51\x18\x96\x61\x7f\xb1\x3f\x34\x46\x66\xd4\x3e\xab\xce\x36\xb4\x5c\xb1\x45\xd5\x00\x8c\x45\x9c\x58\x28\x1b\x1b\x37\x59\xb6\x34\x2c\x33\x8a\x8d\xd8\x0f\xfc\x89\x3c\x12\x71\x80\xb0\x42\x29\xd7\x8a\x62\x10\x09\x01\x34\x59\x42\x45\x35\x1e\x6f\x8c\x2e\x71\x4a\xe2\x21\xa8\x1b\x41\x74\x95\x35\xcd\x59\xa7\x5a\x13\x62\x1b\x80\x8f\x99\x6d\x70\x1e\xf2\x11\x33\x11\x4f\x26\xca\x06\xee\x05\xea\x26\x06\x42\xcb\xef\xbd\xcb\xef\xf7\x47\xe8\x4e\xf3\x22\x2a\xcb\xe3\x0d\x00\x5c\xda\xc6\x36\x62\x33\xc1\xf3\xcc\x5b\x4b\xf8\x04\xcc\x34\x86\x84\x1b\x5c\x7e\x30\x18\xe7\xef\x8b\x70\xac\xb5\xae\xe5\x84\xf3\x2a\xc1\x70\x1b\xa1\x20\x84\x04\xa4\xd9\x8a\x8f\xf0\xb1\x11\xb7\xc6\x53\x17\xe4\x7e\x2f\xc3\x72\x7d\x26\x37\xe2\x19\x91\xa0\xff\x7b\xfb\x6a\x29\x0d\xb0\x9c\x6a\xda\x38\xce\x65\xd6\x2f\x6f\xa1\x76\x56\xdc\xe6\x2c\xd6\xa2\x73\x1b\xdd\xe3\xea\xc7\x03\x01\x3f\x9b\x5d\xac\x73\x10\x5f\x1b\xbf\xb8\xce\x45\xc6\xe1\xd6\x4d\x16\x2e\xeb\xd6\x82\xc5\x64\x3c\xcb\x4d\x04\x13\x0d\x03\x5a\x1a\x29\x9b\x4a\xf5\x09\xab\x68\xae\x55\xcc\x02\x34\x65\x47\x91\x5d\x05\x57\x7e\x5e\x5b\x59\xc3\x0c\x4e\xc3\xde\x5b\x8c\xc7\x1d\x6c\xa7\xe6\x42\x76\x51\xbe\xf0\xaf\x24\xf1\x65\x8f\x1b\xeb\xc4\xb9\x4f\xec\x13\x3d\xd1\x55\x54\xb4\x6a\xfc\xdd\x68\xab\x5c\xb4\x63\xe7\x31\x63\x5b\x20\x00\x9c\x59\xcc\x8f\xe2\x45\x64\x25\xab\x46\x96\x93\x0b\xba\x59\x32\x82\x05\xda\x7d\xd4\x42\xa1\xb7\xad\xa5\x38\xd3\x02\xa3\xe2\xfa\x96\x14\x33\x23\xb3\x08\xa2\x72\xa1\xef\x91\x5c\x50\x77\xf6\x2b\x29\x7d\xed\xd4\x01\xb6\xa8\xe3\xb0\x28\x43\x84\x83\x7a\x35\xc6\xb5\x8b\x23\x95\x63\x1f\x82\x06\x34\x91\x50\xf6\xa0\x3b\x33\xe9\x8b\xce\x85\x2a\x88\x49\x63\x8c\x1b\xf6\x74\x25\x61\x6f\xb1\xcb\xed\xd5\x17\x57\x9d\x34\xca\x66\x01\xbe\x52\xb3\x3d\xb0\x0b\x7c\x72\xe3\x97\xdd\x20\xa0\x1b\x3f\x75\xb2\xcf\x26\xdf\x2e\xc1\xde\x68\xfd\x7c\x95\x00\x5b\x0a\xb7\xb5\x21\x8f\x56\x7a\x0a\x91\xaf\xac\xad\x06\x00\xec\x4c\x0d\x55\x6c\xa5\xa9\xff\xf2\x7f\x99\x72\x1b\x66\x69\xfe\x0b\x71\x31\x62\xe6\xf7\x03\x0f\x75\xad\x5f\x28\x30\xe4\x70\x4a\x0a\x94\x2d\x51\xc6\xe3\x81\x8c\x70\x8b\xa7\x62\xf0\x02\x3d\xd2\xaf\x1e\x43\x50\xb0\xb6\x56\xd9\x32\xc5\x0c\xcf\x00\x9d\xf0\x00\x62\xa0\x40\x5c\x2d\xac\x4b\x86\xa4\x4d\xc9\x24\xe0\x56\x9a\x59\xda\xb4\xbf\xa2\xf2\x1b\xf4\x69\x44\x59\x0b\x8e\x56\x38\xd2\x9b\xa9\xdf\x95\x1d\xdd\x4c\x62\xbf\x1b\xdc\xfe\x38\xbe\x19\xde\x5e\xdd\xdf\x9c\x96\xc4\xf6\xd3\x8b\xfb\xdb\xbb\xe1\x4d\xe3\xb3\x22\x65\xee\x2f\xf7\xc3\xfb\x96\x47\xae\x81\x8b\xc1\xf7\xc3\x8b\xf0\x95\xbf\xdc\x0f\x2e\xce\xef\x7e\x19\x5f\x7d\x18\xdf\x0e\x6f\x7e\x3a\x3f\x1d\x8e\x6f\xaf\x87\xa7\xe7\x1f\xce\x4f\x07\xfa\xcb\xf0\xdd\xeb\x8b\xfb\x8f\xe7\x97\x63\x17\x60\x1a\x3e\xfa\xf9\xea\xe6\xc7\x0f\x17\x57\x3f\x8f\x83\x2e\xaf\x2e\x3f\x9c\x7f\x6c\x9a\xc5\xe0\xf6\xf6\xfc\xe3\xe5\xa7\xe1\xe5\xdd\x52\x45\xa4\x79\x35\xda\x4b\xf2\x17\x17\x59\x60\x20\x08\xc4\xa4\xc9\xc2\x92\x36\xfd\x07\x98\xa9\xaf\x0d\x3d\x1e\x1e\xb8\xbf\x4c\x71\xc5\x43\xcd\x02\x9d\x07\xa4\xe0\x1e\x23\xe6\x5d\x54\xfe\x52\x55\x78\x26\x5d\x06\x64\x69\xb4\x27\x68\x00\x67\x05\x14\x86\x52\xa7\x90\x7b\xef\x47\xea\x9c\x9a\x40\x87\x09\x4d\x29\xf8\x37\xd1\x21\xaa\x6e\x78\xb9\x41\x3b\x27\x18\x82\xf5\xd0\xc4\xcb\x4e\x83\xac\x26\x57\x02\xa5\x9c\x20\xc7\xa1\x75\xb3\x7a\x5c\x00\x5f\xb7\x60\x38\xa5\x91\xf9\xa1\x82\xe0\x86\x8a\x4c\xf1\x6a\x8b\x25\x02\x2b\xb7\x3c\x27\xe8\xc7\x3f\x17\x83\x02\x6b\xb5\xb5\x28\xe4\xb5\xa2\x3c\xf6\x81\xc8\xcd\xaa\xae\x22\xcf\x52\x4f\xee\x98\x5b\x33\x22\x9c\x5b\x5b\xbb\x11\x5c\x0b\x39\x0b\xd0\x62\x4a\x7e\x06\x5b\x1c\x1a\x1d\xa2\x0a\x8d\x9f\xa0\x5b\xc8\x54\x97\x85\xea\xae\x77\x31\x4b\xf2\x19\xad\x95\x6e\x9d\x90\x39\x7e\xa4\xdc\x21\x60\x1b\xa0\x70\x58\x47\x2b\x5a\xa1\x43\xd4\x7a\x50\x4e\xd0\x20\x8e\x65\x99\xc1\x95\x28\xc7\xb1\xcc\xc3\xf2\xb0\x43\x80\x17\x16\x7b\xb6\x59\xa1\xa3\xe2\xc8\xc1\x8a\xed\x3e\x17\xbf\xce\x0e\xcb\x77\xef\x56\xd8\x86\xf2\x61\xec\x48\x79\xbc\x91\x30\x70\x87\xe5\x43\x43\x45\xe8\xc6\xfb\xd5\xa1\x22\x6c\xd7\x63\x7b\x19\xea\xc6\x4e\xfd\xca\x8e\xe1\xa0\x6d\xd6\x67\x2b\xb0\xe4\x8a\x2e\xdd\x8c\x93\x4a\xf5\x8f\xce\xfd\x95\xaa\x87\x3c\xbf\x65\xbf\x59\x1a\x83\x23\x39\xf6\xf4\xbf\xc6\x3c\xae\xe1\xd3\x2b\xff\xe5\x52\x91\x6d\x1c\xac\xdb\xba\xf6\xfe\x5a\xae\xa0\xb5\xf9\x2f\xa5\xc3\x1d\xa1\x73\x74\x17\x06\x01\xbb\x99\x46\xe0\xda\xc1\x94\x59\x44\x7f\xe2\x7d\x0f\xae\x86\xa5\x3e\xc7\xbe\xca\x0c\x9e\xf0\xc7\x92\x72\x99\x12\x29\x71\x0b\x6e\x42\x60\x12\xdb\x86\x31\xf8\x13\x6a\x3f\xec\x48\x4f\xee\x4c\xde\xe9\xaf\x96\x19\x7d\x6e\x42\xcd\xd8\x4d\x54\x0b\xac\xb1\x8b\xa9\x44\x57\x26\xb3\x4a\xf3\x97\x83\x22\x6c\x82\x8b\x20\x9a\xa4\xcd\xd4\xdf\xd1\xac\x56\x5d\xb0\xc6\x42\x0d\xa1\xbb\x66\xfd\x68\x8b\xa0\xf5\x8d\x41\x35\xad\x0d\x1d\x97\xd7\x67\x0d\xaa\x2b\xf9\xb6\xc2\x22\x96\xa6\x5e\xb3\xa9\x90\x1d\x8c\xf4\x00\x61\x93\xd0\x56\x48\x53\x32\x8f\xe6\xc6\xa3\xa0\xaf\x8c\x83\x11\x7b\x0a\x36\xa4\x14\xf2\x39\x08\x5b\x02\x30\xb8\xcf\xfa\xb8\xd1\xc7\x52\x20\x2d\x88\x8c\x14\xa2\x3a\x03\x42\x30\xce\x9f\xa2\x02\xc5\x0a\x02\x0f\xf6\x6b\x0b\x52\xdf\xa0\xdc\x50\x43\x45\xec\xa6\xa2\x43\x7e\x6e\x41\xad\x9f\x2d\x34\xe5\xae\x43\x08\xca\x0d\x35\x8d\x60\x07\xd5\x86\x5e\x14\x21\xd4\x27\xe6\x99\x3c\xce\x74\x62\x53\xe5\xf5\x74\xdd\x6a\xff\xc1\xcd\xe8\x0f\xc6\xef\x90\xb7\x60\x2b\x04\xad\x79\x90\x50\x74\xa8\x65\x56\x97\xf3\x6b\x9d\xee\x12\x1d\x1a\xd0\xa7\xf7\x10\x53\x37\xb8\x3e\x7f\x7f\x80\xde\x87\x79\x45\xef\x37\x3a\x80\x76\xdc\xb6\xe2\x10\x68\x53\xa5\xe0\xf2\xf2\xb1\x83\xbd\xaa\x9c\x44\xbb\x67\xf6\x20\xa2\xb6\x73\xa8\xbf\x2c\x7d\x03\x8e\x48\xa8\xa0\x63\x7c\x75\x3e\xb4\xd5\xba\x80\x8c\x8c\x4b\x65\xc3\xda\xc5\x23\x36\x59\x54\x9d\x3c\x07\xde\xcb\xd3\xf9\x94\x6e\x5d\x15\x46\xb7\x57\x4f\x44\xdd\x71\xc8\xe5\xf2\xfb\x60\x45\x6a\xeb\xc0\x57\x6b\x2f\xb8\x58\x9b\x47\xba\x8f\x55\x6e\x9a\x55\xc9\x5e\xe6\x16\xb3\x71\x53\x56\xc9\x3f\x6f\x8d\xdc\x3a\x04\xf8\x0e\x9a\x56\xc4\xc6\x76\xb7\x08\xd7\x3d\x95\x3d\x2f\x95\xed\x22\xb6\xbd\x3c\xb8\xf5\x2f\xd0\x53\x23\xc7\x05\xcd\x38\x83\xab\x56\x26\x3c\x83\x2f\x95\x0e\x5a\x5d\x73\x6f\x4d\x9f\x6f\xb0\x26\xab\x9d\xbe\xb7\x26\x70\xc0\xb8\x5d\xeb\x63\xad\x0e\x75\xa0\x6c\x1d\x03\x4e\x4d\x1e\x9b\xa2\x29\x39\x40\x9c\x25\x8b\x20\xd8\xc1\x9e\x57\x20\x37\x13\x8f\x62\x0a\x82\x9b\x4e\x2c\xd4\xd9\x5a\x89\xcf\x6b\x4a\xe3\x6d\x34\xb2\x45\xa4\xc9\xe5\xe0\xd3\xf0\x6c\x3c\xbc\xbc\x3b\xbf\xfb\xa5\x01\xc6\xae\xfc\xd8\x21\xd9\x05\x2f\xdc\xfe\x72\x7b\x37\xfc\x34\xfe\x38\xbc\x1c\xde\x0c\xee\x56\xa0\xdc\x2d\xeb\xac\x0d\x41\x2d\x97\x4d\xea\xdb\x3a\x28\x6a\xce\xcc\xdb\xd0\x7b\x1d\xeb\x2e\xe8\x84\x92\x16\xbc\x3b\x93\xe4\xcd\x62\x22\x50\x4c\x1e\x49\xc2\xb3\xc2\xac\xda\xb8\x60\x01\x10\x5e\x43\xfb\xcb\xc0\xf0\xa0\xcd\xea\x1a\x9f\x20\x53\x2e\x26\xa8\x98\xe7\x1b\x04\x91\x0f\x0b\xc2\xde\x2b\x44\x3e\x67\x09\x8d\xa8\x0a\x92\xc0\xb8\xb0\xee\x15\xe3\x3e\x84\x48\xc4\x15\xc4\xb5\xb3\x68\x94\x9d\xeb\xfc\xa1\x27\xbd\xae\xed\xfb\x13\xe5\x81\x99\x56\xd6\x20\xd8\x81\x62\xdf\xe2\x34\xae\xe1\x46\x6d\x30\xba\xe7\x30\x0f\xd4\xb3\x31\x6c\x22\x57\x0b\xa6\x54\xf3\x20\x57\xdf\x86\xcb\xe2\x64\x4a\xe7\x7a\x79\xa0\x4c\x37\x4a\x7d\xe5\x70\x97\x52\x6d\xae\x1d\x60\x2c\xd8\x38\xe5\x35\x03\x16\x6a\x70\xff\xec\xc1\x80\xa0\x23\x41\x52\xae\xb4\x02\x66\x22\x02\x0e\xb4\x50\x45\x71\x42\xff\x01\x68\x44\x82\x1c\x05\x11\x14\x90\xec\x15\x87\xc1\xfd\x16\x29\xe0\x68\xc4\xce\x86\xd7\x37\xc3\x53\xcd\x90\x8e\xd0\xbd\x04\xa0\xa1\xd2\xd4\xcf\x2c\x79\x1b\x71\x2c\x8c\x64\xa0\x4c\x2a\x82\xdb\x82\xc1\x88\x10\x5c\x74\xe7\x0f\xbe\xbf\x21\x7c\xd7\x4c\xde\xf0\xac\x64\x9b\x72\x06\x80\xcb\xd6\xc2\x8a\x41\x7c\xf8\xce\xd3\x6f\x6e\xf0\x53\x69\x45\x42\xa0\x05\x90\x44\xca\xab\xfe\x8c\xab\x0d\x38\x82\xdd\xe7\x57\xea\xf3\x1a\xbe\x5d\x36\xcf\x3b\x57\x1b\xdd\x83\x12\x1a\xdc\x42\x5f\xb4\xa0\x32\xcf\x56\x51\x51\xbc\x06\x28\x43\x85\xf4\x27\x64\x86\x19\x12\x39\x63\x15\x94\xca\xd0\xd2\x56\x0f\x9a\x59\xf7\xa8\xea\x35\xc3\x29\xcf\x19\x28\x0d\x10\xc6\xda\x30\x18\x99\x11\xa6\x56\x0c\xe6\xb5\x20\x37\x2a\x43\xdd\x5f\xd4\x8d\x86\x81\xb6\x01\x6f\x34\xf9\x93\xa0\x7a\xe3\x7a\xd7\xb2\x0b\xca\x2b\x39\x95\xf4\xa1\xf2\xf7\x73\xb3\x96\x8d\xe5\xc3\xd6\xdd\xdd\x61\xf9\xb0\xba\xab\x98\x44\x0f\xeb\x5e\x36\xd5\x2c\xbc\xc4\x16\xbf\xac\x19\xfb\x16\xfa\xa9\x45\xd6\x87\x9a\xa7\xd1\x03\xfa\xe1\xee\xd3\x05\x9a\x52\x2d\xf7\xea\x6b\xe5\x12\x6b\x19\xfb\x5e\x24\xbe\xa0\xb4\x91\x41\x72\x91\xf8\xbb\x17\x36\xde\x89\x52\x81\x94\xa0\x6f\x34\x3c\x23\xce\xd8\x2b\x2c\xae\x5a\x05\x59\x5f\x60\x16\xf3\xd4\xcc\xe3\x58\xe6\xd3\x29\xfd\x7c\xa4\xb0\xf8\x7a\x0d\x89\xe6\xb4\xe4\x60\xab\x90\x91\x0d\x9f\xb4\x30\x7f\x60\x55\x58\x29\x27\x0c\x1f\x09\x53\x3b\x11\xb2\xa1\x89\x86\x2c\xe3\x6e\xa6\x72\x53\xea\xea\xfc\xac\xe0\xd0\xbe\xe4\x72\x10\x9a\xa3\x04\x86\xcb\xca\x66\x76\x58\xbf\x70\x9b\xb7\xfa\xb1\xb3\x03\x14\x5e\xad\xaf\xcb\x8a\xf8\x6e\xbb\xda\x45\xc9\xcb\x22\x36\xd3\xc1\x64\x6f\x88\x3b\x22\x89\x51\xc5\x83\x7c\x77\xab\x61\x55\xf7\xdc\xf4\x39\xc7\xb2\xda\xe5\xca\x2d\xdf\x00\x64\xa3\xd4\xcc\x47\x02\x39\x68\x3b\x29\x43\xbf\x46\xae\x31\x0c\xe4\x5e\x24\x10\x07\xbc\xd4\x14\x63\xca\x6d\xea\xe3\xeb\xc5\x13\xdc\x41\xd0\x34\x83\xd1\x92\x0f\xc9\x04\x81\x02\xd0\x27\xe8\x3a\x21\x5a\x7c\xc8\xb5\x08\x91\x27\x89\x03\x24\x5a\x2e\xe2\xac\x05\xa2\xf5\xec\xf3\x0a\x04\xe8\x25\x13\x73\x80\x5c\xcb\x67\x16\xac\xc1\xee\x33\xc4\x83\xf5\x05\x3b\x28\x58\xc3\xca\xaa\x10\x30\xe0\x85\x09\xfe\x04\x7b\x08\x2e\x71\x63\xfa\x0f\xcd\xe6\x05\x91\x73\x9e\x2c\x9d\xc2\xda\x30\x67\xeb\xcc\xc1\x2d\xe5\x33\x4e\xc2\x46\xde\x8d\xdb\x82\x83\x3b\x5c\xce\x67\xa6\x89\x46\x91\x60\xd9\x14\x3d\x92\xba\x0f\x61\xb0\xf0\x90\x36\x94\xcd\x0e\x0d\x1c\x73\x85\xbd\x28\x84\x6a\x2a\xec\xef\x85\x44\xbe\x30\x0e\x44\xff\x79\x50\xc8\xdb\xc7\xb5\x53\x25\x8b\xca\x37\x50\xd1\x7d\x3d\x2e\x6b\xb3\x1f\x8a\x26\xf4\x80\x9b\x59\x9b\x05\x51\x07\xb9\xcd\xc6\xb6\xc8\x12\xc8\x94\xdd\x62\x33\xe5\x46\x9d\xa2\x9d\x81\x6e\xeb\xc7\x29\xd7\xf0\x7e\x36\x77\x4e\x89\x5a\x4a\x13\xe8\x61\x8b\xd6\x87\x2d\xb2\x88\xfa\x9e\xf6\x00\x64\x4c\x09\xc8\x2a\x2e\x3c\x36\xd5\x4b\xde\x5a\x59\x57\xa5\xda\x94\x76\xa7\x53\x5e\x4d\xe9\x0b\x7d\xee\xcf\xb6\x74\xf9\xe8\xc9\x2c\xc6\x90\xa9\xb8\x4d\xd8\x47\x69\xfe\xc6\x5c\x0d\x6d\x92\x18\x99\xd4\x68\x03\xaa\x6a\xd7\xce\x9b\xea\x4d\x75\xfb\x11\xbb\xd1\xa3\x30\x5f\x14\xae\xff\xa2\x72\x34\x29\x6a\xdc\x4d\x11\xb6\x5f\xc1\xa2\xb7\x45\x5e\xc9\x71\x50\x38\xff\x19\xb3\xac\xbf\x37\xef\x98\x84\x6a\x0b\x28\xa2\xa7\x4a\xa7\x85\xde\xa8\x85\xbd\x68\x4e\x21\x9f\x39\x26\xd2\x5e\x1e\x54\xd9\x84\x75\x2f\x2a\xe7\xc4\x41\xbb\xc2\x67\x9e\x7f\x35\x31\x57\xa7\x99\x32\x67\x11\x92\x23\x16\xf4\xb1\x04\x09\xd0\x68\x87\x1b\x8a\xfd\xb0\xcf\x34\xf6\x9e\x16\xf8\xa7\xd9\xa1\x5a\x15\x7c\x3b\xbd\x14\x67\x60\x4f\x34\x67\x90\x4f\xfd\xfd\x73\x67\xc3\xda\x8f\x60\xc4\xff\xe7\xbf\xff\x7a\x44\xdb\xcc\xed\x72\x6c\x57\x60\x1f\x76\x72\xbd\x6d\x09\x77\x3e\x80\x28\x68\x49\x7d\x97\xf9\xc4\xe3\x07\x97\x42\xf5\x8b\x5f\xed\xe5\xa6\x89\x86\xab\xb9\xf1\x2f\x96\xc9\x1d\x8c\xf1\x22\x5f\x7e\xcb\x06\x2c\xae\xf0\x40\x17\x6e\xc6\x20\xca\xd3\x01\xd0\x9b\xe8\x3c\xdd\x7e\xe5\x42\xa9\x30\xa8\x00\x29\x6c\x9b\x68\xb8\x39\x96\xcf\x17\xf2\xd0\x58\xd5\xc3\x58\x29\xc3\x3b\x72\x55\xf0\x83\x19\xa4\xc9\xa2\xd3\xbb\x92\x4b\x22\xcc\x81\xf6\x90\x32\xa8\x5e\x7c\x16\x62\xdf\x56\xf8\x70\x48\x8a\xe9\x5a\x71\xda\xfa\xfd\x66\x94\xb6\x92\x11\x17\xcf\x88\x18\xc7\x79\x29\x28\x77\x55\xdb\xd7\xfa\xa3\xb3\x5c\x2d\x56\xb7\x2f\x13\x1c\x3d\xac\x83\x8c\xa7\xdf\x6f\x69\x76\xb5\x60\x18\x84\x4e\x94\x85\xc3\x16\xdc\x39\x52\xc1\x9d\xb3\xb1\x7c\x25\xad\x1d\x2e\x1a\x06\xd5\x83\x03\xe1\xde\xde\x44\x06\x1d\x17\x46\x8e\x26\x79\x61\xe5\xf0\x78\xe3\xf1\xd1\x88\x7d\x30\x80\xfd\xa0\x78\x98\x01\x44\x90\x48\x41\x3e\x67\x5c\x92\x52\x66\x4f\x03\x86\xb8\xcd\xcc\xb3\xc3\x68\x96\x49\x2b\xd5\x9b\xb7\x12\x49\x5f\x1d\x41\xb0\xbe\xe1\xf5\x29\x37\x53\xe0\x56\x52\x4f\x44\x33\xaa\x69\x67\xdc\x78\xd2\xd6\x9f\x7a\xd7\x12\x14\x45\xac\x0c\x60\xc9\xa8\x64\x71\x80\xfc\xf4\x2a\x04\x91\x90\x47\x02\x66\x4a\x18\x63\x88\x14\x5f\x36\x35\xb5\xb0\x93\x55\x07\xa8\x48\xab\x03\xb6\x80\xe2\xea\x08\xca\xc9\x47\x4d\xb4\x58\x4e\xab\xd8\x3a\x03\xa8\xc9\xe1\xbf\x86\x14\x3a\x08\x11\xf3\x17\x44\x21\xf2\x59\x11\x5b\xf0\xed\xce\xe5\x68\xd5\xc3\xba\x51\x73\x9a\x49\xbb\x88\xb4\x7b\xaa\xa8\x4d\xc4\x66\xe6\xba\x24\xb4\xd8\xdd\xfb\x36\x29\x6b\x8e\x59\x6c\x33\x0d\xad\x2c\xad\x65\x0a\x98\x9d\xb1\x03\xf9\x18\x6c\x9b\x2f\x17\x40\x0d\x9b\x36\x0d\x26\x32\x5c\x64\x4e\x2f\xd2\x92\x39\xb8\xad\xb9\xd0\x02\x6a\xce\x14\x4d\x34\x71\xd8\x31\x68\xad\x39\x67\x1e\xec\x0b\x22\x86\xdb\xf0\xa4\xa8\x94\x94\xcd\xc6\x76\x25\x5d\xd2\x5c\xb7\x8b\xa1\x4c\x53\x9f\x4c\x53\xe6\xc7\xef\x5d\x43\xcb\xed\xbc\x86\xac\x01\xeb\xc7\xa5\xeb\x81\x60\xcd\xb8\x9b\x8c\x05\x69\x72\x59\x7e\x63\x1a\x97\x0a\xd4\xc3\x44\xd7\x31\x52\x80\x58\x57\xcf\x8f\x2f\xae\x10\x69\x53\xf0\x4c\x62\x0d\x44\x40\xab\x96\x1c\x43\xd9\x9a\x5b\x78\xce\xbc\x88\x66\x0b\xc7\xf8\x0c\xea\x4a\x9a\x22\x76\xdd\xd9\x30\x6f\x9c\x24\x13\x1c\x3d\x78\x65\xc3\xab\xdc\x5c\x38\xe0\x6d\x2d\xa0\x42\x65\x21\x43\x5c\x7a\xa0\x11\x48\x37\xa1\x17\xc6\x20\xa4\xd8\x61\x17\x9d\xdb\xb2\xfe\xcc\x14\x9a\x07\xe5\xdc\x8c\xde\xc4\x8c\xc7\x24\x4b\xf8\x22\x6d\xb9\xcf\xaa\xa9\x59\xdb\x44\x40\xb4\x65\x86\xed\xf4\x2a\xab\x30\xbd\xb5\x2f\xb3\x5a\x9e\xc7\x0e\xf0\x7a\xd6\xe0\x92\x1f\x13\x3e\x01\x2b\x9f\xd5\xb2\x5d\xee\x42\x10\x42\x5f\x3d\xcf\xeb\x66\x54\x54\x4f\x24\x95\x59\x82\x17\xcb\x7a\x30\xb1\xfc\xcf\xbb\x6f\x26\xf7\x7b\xb5\x11\xac\x7b\x14\x6c\xe3\xe7\xcf\x81\x02\x7a\xe1\x24\x01\xf3\xae\xe1\x5f\x15\x63\x92\x49\xa2\x3a\xca\x04\xd7\x82\x02\x1f\x31\x85\x67\x6e\x73\xad\x70\xc9\x9f\x18\x11\x72\x4e\xb3\x52\xc5\xb1\xad\xc3\x6e\x2d\x45\xdb\xff\x98\x20\xd3\x35\x78\x27\xcf\x0e\x0d\xf2\x83\xa6\x0f\x99\xe1\xa8\x30\xfe\x45\x09\x96\x92\x4e\x17\x01\x60\x83\x8f\x60\x84\xb4\x98\xb2\xb6\x1c\x14\xf9\x69\x62\x34\x66\x7c\xbb\xc9\x58\xde\x3e\x5b\xeb\xbe\x7c\xfc\x68\x1c\x22\x63\x41\xfd\xf7\x1a\x3a\x87\xbb\xa9\x2d\x4a\x47\x2b\x9a\xa3\x49\xcd\xde\x2c\xc3\x78\x29\xa8\x4a\xbb\x19\xa1\x10\x26\xed\xb0\xad\x22\xe3\x81\x14\x42\x90\x11\x55\x4a\x51\x83\xcd\xd7\x8a\x93\x33\x7f\x6a\xe2\xf4\x20\x0c\x90\xab\x5e\x7c\x7c\x80\xe4\x56\xe0\x45\x5d\xe8\xe2\x8c\x24\x64\x27\x91\xac\x1b\x10\x49\xd5\xc3\x1e\x90\xc7\x52\xd2\x28\x80\xba\x57\x1b\x17\x36\x08\xb0\x6d\x81\x40\x69\x1e\xfa\xcf\x66\xa0\x36\xc6\xb6\x69\x17\xc1\xfe\x05\xab\xdc\x55\x77\x69\xc2\x52\x33\x2d\x58\x92\x2b\xba\x29\xd1\x55\xd1\xa9\x97\x57\xf6\x91\xd4\x5e\x39\x14\xb5\x36\xae\x8f\xa4\x4b\xc4\xc1\xca\x03\xb0\x11\x07\xaa\xf3\xe9\x6e\x74\x61\xfd\x84\x8a\xa3\x19\x51\xa6\xb8\xb3\xaf\x60\xfd\x96\x68\x62\x67\x81\xf4\x3b\x5a\xfd\xe6\x43\xbe\xde\xa9\xbd\x25\x4a\xba\x2b\xa1\x06\x4f\x67\x37\x67\x0f\xb7\x60\x3f\x8e\xa5\x11\x5c\xbf\x78\xb9\x65\xeb\xe4\x73\x3b\x32\x9b\x82\xfd\x1b\x12\xa8\xcc\x1c\x63\xfb\x85\x4f\xb7\x2e\x01\x0d\xe1\x12\x38\x9b\x59\xa3\xd7\xe7\x7a\x55\xd2\xfe\xd2\x45\xaf\xf5\x69\xbc\x3a\xaa\x82\xba\x7b\x79\x70\x3d\x79\xd0\x81\x17\xee\xe1\xe5\xdf\x76\x0c\xf6\xf3\xfe\xd9\x03\xe1\xb0\x76\x25\xee\x4e\x44\x7c\x43\x64\xb2\x17\x92\x62\x6d\x2b\x5e\x4a\x5e\x3c\x74\xe8\x31\x05\x16\xcb\xfe\x6e\xd1\x7e\x9c\xe4\x1b\xeb\x06\x7a\xbe\x0b\x76\x35\xbd\xec\x84\x3e\x00\x48\x11\x43\xbe\x69\x6e\x2b\x33\xc0\xe1\x0d\x42\xc6\x6a\xbe\x87\x15\xc1\x78\x76\x78\x9d\xc2\xf0\x6a\xcb\xf9\x1c\xdb\x6b\x93\x8b\x3a\x6f\xee\x73\x92\xda\xba\x63\xd9\x85\x8e\xf2\xcc\x5e\x1c\x4b\x8d\xc1\x07\x7d\x4c\x6c\xb7\x5b\xb4\x01\xb2\xc4\x6d\xd9\x2e\x0f\x59\x53\xe9\xa4\xed\xd3\xa3\x5d\xca\xd9\x38\x13\x64\x4a\x3f\x6f\x24\x8a\x5f\xc3\xa7\x56\xbd\xd4\xcb\x5c\x29\xc6\x04\xee\x19\x28\xde\x14\xc4\xed\xd9\x95\xb6\xd5\x75\x46\xac\xc8\x38\xb3\xe9\x66\x0f\x64\x81\xb8\x28\xfd\xb4\x29\xb8\xde\xee\x0b\x47\x99\x7d\x9d\x2b\x95\xc9\x93\xe3\xe3\x19\x55\xf3\x7c\x72\x14\xf1\xd4\x84\x9b\x73\x31\x33\x7f\x1c\x53\x29\x73\x22\x8f\xbf\xfb\xf6\xdb\x62\x8b\x27\x38\x7a\x98\x19\xb8\x92\xba\xdf\xa9\xb4\xe5\xb7\xf5\xe2\xaa\xeb\x97\x7a\x10\x9c\x8d\xc9\x67\x4d\xa4\x72\x53\x20\x9b\x7b\x49\x24\x1a\xfc\x7c\x8b\xe4\x82\x29\xfc\xf9\x04\x7d\xa2\x0c\x04\x90\x1f\x78\x2e\x24\x3a\xc3\x8b\x43\x3e\x3d\x4c\x39\x53\x73\xf4\x09\xfe\xd7\xfe\xf4\x44\xc8\x03\xfa\x85\x60\x61\xf7\xd7\xd6\x50\xf2\x15\x5e\xe7\x18\x72\x71\x25\x22\x8f\x7a\x85\xbf\xfd\x0f\x94\x9a\x96\x4f\xd0\x37\xc7\xdf\xfe\x07\xfa\x3d\xfc\xff\xff\x8b\x7e\xdf\xa2\xa9\xad\x07\x85\x03\xc5\x1b\x6f\xca\xee\xb8\x83\xca\x4a\x6d\x50\xcf\xf6\x54\xf0\x62\xa7\x1a\x5b\x7e\xa0\xd1\x03\x9f\x4e\xc7\x8a\xa6\xc4\xe4\x06\x8d\xb1\xa8\xc1\xa8\x6e\x88\x2b\x48\x6d\xf5\x4d\x41\x0d\xdc\xb6\xab\xad\x60\x3b\x35\x99\xd0\xee\xb8\xc9\xbc\xa8\x3e\x08\x41\x20\xa5\x8a\x8e\x54\xc2\x57\x24\xd6\xa7\x62\x9d\x80\x0f\x67\x9d\xa9\xd7\x08\x2f\x90\x03\xc2\x8a\xb2\x3e\x70\x2b\x8c\x42\x34\x81\x1a\x76\x21\x1b\x8f\x03\x04\x71\xf0\xad\x60\x25\x1f\x48\x2d\xd6\x73\xcd\x1c\x73\x83\xe6\xfd\x40\xda\xea\xcb\xc3\x4d\xf2\x6a\xb1\x52\x00\xcf\x6a\x19\x8d\xad\x62\xe1\xae\x49\x90\xfc\x6d\xe9\x4c\xab\x19\x10\x07\x1c\xfe\x15\xc0\x3c\xb8\x7f\x7e\xed\x36\x4b\x0b\x8a\xf2\xc0\x35\x04\x55\xd5\x6d\xc0\x77\x50\x0a\xcd\x44\xda\xd8\x16\x25\x51\x87\x26\xc2\xb4\xb9\x09\xbc\xf0\x2d\xf0\x60\xa8\xb6\x91\xb6\x48\x7d\xbd\x97\x58\x75\x0d\x99\x2a\x11\xcb\x95\xfb\xb4\x3b\x35\x0f\x90\xfb\x58\x9f\x08\x5c\x8e\xfb\x03\x1e\x16\xa6\x65\x7b\x8b\xa4\xc5\x7b\xb3\x81\xab\x5c\x08\x10\x3d\x21\xd5\xc3\x2e\xfa\x12\x9a\xbe\xaa\xcf\x70\x0d\x38\xaa\xe1\x5f\xee\x07\x17\xb7\x25\x04\xaa\xab\xbb\x71\xfd\xd7\xf3\xcb\xea\x3b\xe5\x5f\x86\xff\x7d\x7e\x7b\x77\xbb\x14\x8c\xaa\xd2\x68\x1b\x27\x98\xf3\x27\x28\x5d\xa6\xcf\x0a\x2c\x08\xae\x2c\x89\xbe\xde\x31\x73\xb8\xa2\xd4\x45\x84\x99\x20\x2c\x00\xa7\x8d\x9b\x93\x81\xeb\x41\xd2\x5f\x4c\xe4\x2b\x4c\xed\xb5\xa2\x5e\x65\xad\xf3\xd5\x01\xaf\xb7\x5c\x6c\xa5\x35\xaf\xc9\x8d\x1b\xca\xb2\x86\x15\xce\x21\xf5\x9c\x0b\x8f\xf2\x6b\xac\x5b\xb6\xe6\xe0\x6a\x5b\x34\x15\x26\x44\xb0\x1b\x93\xd1\x53\x3f\xf3\x9f\xac\x1a\x26\xc4\x0b\xba\xb7\x8b\x6a\x6a\x30\x5a\x7d\x12\x34\x53\x69\x18\x71\x03\x14\xe0\xaa\x0d\xbd\xf5\xe8\x0f\xd0\x38\x04\xaf\x42\xe2\x0e\x73\xfa\x89\x45\x26\x68\xdc\x4f\x00\x48\xdb\x05\x76\x62\x0d\x6b\x7f\x8b\x5b\xd7\x18\xcc\x0b\x41\xc1\x95\x6a\xa8\x54\x68\x10\x58\xdf\x29\x1b\xc2\x4d\x9a\x9a\x3b\x07\x48\x60\x88\xff\x54\x73\xcc\x8c\x29\x65\x8a\x23\xca\x66\x07\x01\xd2\x20\x00\x26\x84\x92\x4b\xd3\x4a\xde\x61\xf9\xb0\xdb\x98\xc6\xad\x6b\x10\xd2\xb8\xa8\x83\x65\xb1\x41\x8c\x0f\x85\xd6\x60\xd6\x14\x96\x0f\x6d\xe0\x38\x35\x64\xae\x25\xa3\xf3\x4b\xe1\xf0\xbc\x96\x8d\xcf\x25\x60\x93\x50\x75\x03\xd8\x7d\x57\x01\xd5\xe2\xf4\xb9\x1c\x3a\x0c\xf2\x26\x4d\x48\x5c\x05\xa8\xac\x8e\x7f\x15\x21\x18\xe3\x58\x10\x3d\x07\xf8\x85\x69\xc6\x21\x55\x66\x8a\x52\xcc\x16\xe6\x28\x69\x51\x0a\xcb\x07\xe9\x0b\x61\x22\x99\xe2\x24\x39\x40\x82\xe4\x52\x0b\xe0\x07\xfa\x22\x9b\x1e\xba\x52\x02\x31\x4a\xf8\x8c\x46\x38\x41\x93\x84\x47\x0f\x72\xc4\xf4\x55\xc2\x66\x46\x24\xcb\x04\x8f\x88\x94\x81\x04\x5e\x24\x67\xdb\x94\x39\xa8\x82\xa9\x88\x48\x29\xa3\x52\xd1\xc8\x4b\x1b\x1e\x0f\xc1\xd4\xdd\x8d\x30\x98\x7e\x21\x01\x11\x86\xab\x35\x02\x62\xc0\x0d\x73\x66\x8b\xce\x00\x43\xb7\x98\x65\x2e\x18\xbc\x8d\x7a\x77\x00\xc1\xe6\xb6\x67\xac\xca\xa7\x61\x05\x3d\x9f\xda\xcf\xe0\x0c\x2d\xa3\x98\x9b\x32\x39\x7b\x6a\xf0\x64\xee\x91\xbd\x1d\x51\x14\xa1\xee\x65\xa1\xce\x19\x98\xf6\x0c\x11\x0a\x86\xdc\x82\x03\xb5\x8a\xa6\xf5\x2a\xc2\xa5\x08\x75\x8e\xaa\xde\x71\xca\x40\xc2\x72\x72\xb9\xbe\x24\x1e\x35\x91\xb8\xe5\xd1\x6b\xaf\xaf\x92\x03\x84\x25\x7a\x22\x49\xa2\xff\x6b\x22\xdd\x0f\x3d\xf0\xbc\xe6\x87\xa6\x38\x00\x74\xe2\x58\x64\x2b\x45\xc1\x24\xf6\xa4\x40\xab\xbf\xa4\xd7\x65\x8b\x2b\x05\x09\xbd\x3c\x6b\xb2\x47\xbd\xd2\xad\x20\x9d\xa5\xb1\xd5\x75\x91\x25\x83\xaa\x91\x48\xb3\xd5\x52\x34\xa5\xf5\x1b\x8a\x83\xa7\x8f\xb4\x28\x46\x6c\x7b\x5b\x6a\xd5\xd4\x33\xea\x64\xd2\x0c\x89\x62\x63\x33\x7d\x65\x2a\x35\x78\x0c\x6a\x2a\xa9\x9b\x09\x81\x54\x9b\x47\x11\x21\x71\xa3\x3a\xa6\x47\xb4\x77\x20\x94\xd7\x58\xcd\x0d\xd2\x42\xca\x95\xa9\x85\x69\x40\x28\x9d\xb9\xd5\xa0\x16\x4e\x12\x3e\x81\x0b\x09\xf0\x29\x5d\xa6\x76\x90\xe5\x69\xe6\x4d\x62\xf4\x55\x70\xbf\x78\x14\x90\xaf\x9b\xd1\x12\x4b\x2b\xb2\x07\xd8\x94\x55\x3b\x6f\x2b\x42\x65\xb9\x9c\xdb\x11\xba\xae\x40\xd7\x04\x2b\x33\xc5\xfa\xda\x58\x0a\x83\xf4\x4a\x78\x96\x95\x49\x3c\xdf\x0e\xad\x89\x67\x59\xea\x73\x07\x78\x96\x95\x79\xb6\xa4\x92\xf0\xd9\xb3\xa6\xc0\xeb\x49\x5d\xf0\xee\xb6\x36\x03\xa1\x66\x44\xbc\x12\x09\xba\x03\xb9\x68\x22\xc4\xfd\xc2\xea\xac\x14\x3d\x7c\x5d\xac\xce\xca\x60\xf6\x19\xab\xb3\x32\xd4\xfd\xc5\xea\x6c\x18\x68\x07\xac\x4e\x13\x6b\x32\xd6\x44\xdd\x8d\x29\x40\x9e\xd5\x24\x9f\xde\xc2\xbd\xbb\x74\x8c\xa7\x26\x8e\xc5\x5c\x63\x4e\x94\xb4\xd0\xd5\x30\x5a\x9b\x92\xdb\x16\x9d\x87\xe5\x56\xb4\xe7\x9d\xc1\x54\x1a\x2d\x3e\x4b\x30\x2b\x5f\x1d\x29\x37\xac\x4a\x93\x9f\x61\x54\x4a\x60\x26\x61\xaa\x07\xd6\xba\xa4\x47\x61\xdc\x2a\x11\xce\x2c\xc4\x41\x5b\x45\x99\xfd\x49\xe6\x5e\x0f\x06\x15\xd0\x19\x4b\xac\xbe\x13\xb6\xda\xa7\x4a\x51\x06\x63\x0b\xf6\xba\x8c\x21\xc6\x56\xd2\x83\x4e\xc7\x56\xa1\x6f\x5b\x31\xca\x14\x99\x55\x45\xfa\xe2\xb0\x50\xa6\xfe\xf8\xdd\x4a\x0e\x64\xc0\x27\x9d\xe9\x20\x28\x8d\x60\xf1\x6e\x7c\x11\x26\x12\xa3\x68\xae\x95\x76\xa9\xb5\x6b\x3d\x1d\x73\xa3\x4a\x94\x62\xea\xf4\xfc\x5c\x82\x47\x79\x4e\xe5\x88\x99\xac\x43\x5b\x10\xf0\x08\x81\xab\xe5\x33\x4e\xb3\x84\x1c\x20\x3f\x3f\xaa\x29\x68\x94\x7f\xf3\xcd\x1f\x09\xfa\x06\xa5\x04\xb3\x92\x7d\x03\xb4\x7a\x7d\xe5\x01\xba\xa1\x9a\x93\x11\x6b\xdc\x0a\x34\xfc\x6c\x4a\x48\xb9\xb0\xd3\x73\x36\xe5\xce\x5e\x02\x75\x0c\x71\x34\x47\x32\x9f\x98\x42\xbc\x81\x7d\xcb\xe9\x79\x17\x7c\x06\xf1\x12\x70\x13\xbb\x41\x6f\x8c\xea\x5a\x61\x38\x1d\x51\x5d\x4b\x53\xeb\x51\x5d\x9b\x4f\xdf\xde\xa2\xba\x56\xf6\xbc\x1b\xaa\x6b\xd3\x96\x6f\x80\xea\x5a\x6a\xe6\x8b\x41\x75\xad\xac\xe8\x17\x83\xea\x5a\x99\x57\x8f\xea\xfa\x85\xa0\xba\xae\xe6\x23\x8d\xb8\xa5\xcd\x87\x77\x3d\xdc\xd2\x46\xfd\xaa\x9d\x45\x6c\x0b\x12\x05\xd2\xdc\x0b\xe3\x96\x96\x26\xd0\xc7\x68\xae\x1f\xa3\xd9\x48\x7c\xb6\x6f\x3d\x3c\x17\xb8\x59\xbd\xc8\x3a\x22\x97\x96\xf6\xa7\xb3\xe9\x73\x17\x94\xf8\xbc\x51\xc1\xe0\x81\xe9\x6a\x0e\x19\x94\x56\x51\x5a\xbc\x63\x2d\x19\x39\xc4\x39\xa3\x39\x85\xde\xe7\x9e\x72\x37\x88\x2e\xae\x2c\xaf\xf7\xd9\x18\x5a\xdc\xa5\x71\xbe\xa1\x98\xff\x16\xf4\xea\x12\x30\xd7\x74\x8e\xb8\x41\x80\x93\xa4\xd9\x30\x48\x53\xba\xab\x66\x57\x5d\x64\x1e\x4f\x0b\xb4\xa9\x5a\x6e\xa9\xbe\x9e\xcc\x70\x8c\x6c\x5c\x49\xa9\x05\xb0\x0f\xf3\xe5\x8c\x4a\x25\x5a\x23\x6b\x6a\x23\xdc\xc6\x0d\x9b\xe5\x2b\x8e\x54\xe3\xaa\xce\x36\xfb\x2c\x25\x29\x17\xab\xc2\x7a\x1a\xbf\xb4\x65\x48\x36\xf9\x94\x64\x73\x92\x6a\x21\x68\xbc\x6e\x23\x5d\xf7\xbb\x08\xf3\x33\xf9\x6f\x26\xd8\xb6\x44\x04\x81\x93\x55\xbf\x1b\x1b\x54\xcb\xce\xdb\xbd\xed\x36\x5b\xdc\xcd\x35\xad\xf8\x0e\x77\x78\xb9\xb5\xc4\xbe\x54\x72\xa5\x03\x7d\x37\x06\x6b\xf8\x58\x99\x0d\xc3\x31\x5a\xb0\x4c\xeb\x1d\x82\xb7\x56\x12\x71\x18\xca\xa8\x25\x0f\x69\x7d\x04\xe5\x75\xe7\x09\xa9\x59\xb3\xd7\x5e\x79\x69\x83\x38\x9f\xf7\x32\xf6\xe1\xcf\xdd\x2f\x64\xe5\xa7\x87\x64\x10\xd2\x2a\x69\x4a\x13\x2c\x8c\xd1\xd5\x54\x04\xc2\x0c\xe1\x29\x74\xb8\x00\x2c\x57\xc0\xb0\xd6\xea\xc1\x23\x4e\x68\x8c\x5c\x00\xae\x09\x8d\x31\x31\xa0\x68\x70\x79\x86\x4c\xc4\xe8\x26\xb1\xe2\xfe\x40\x79\x1b\xb0\x89\x16\xf5\x8b\x59\x84\xb2\x07\xa1\x5f\x98\xb9\x49\x11\x13\x30\x6e\x83\xc1\x9a\x36\xd7\x29\xae\x5b\xec\x6c\x2e\x5a\x43\x42\xbb\x18\x6d\x23\x95\xe3\x04\xb4\xe2\xb0\x10\x63\x65\xe3\xde\x4d\x16\x0d\x99\xa6\xdd\xbc\x02\x94\xa9\x3f\xfd\xfb\x3a\x31\x32\xa0\xc1\xd9\x43\x01\xc5\xa3\x70\x14\x11\x69\xec\xc8\x76\xb5\xf1\x84\x3f\x42\xdd\xa8\x6d\x8e\xac\xe6\x7c\x7a\xde\xfa\x3e\xf4\xe8\xcf\x71\xc1\x19\x8c\x74\x35\x17\x3c\x9f\xcd\x9d\xa9\x4a\xb3\x18\x3d\xb5\xa6\xbd\xfc\xa9\x66\x0f\x5e\x7b\x2f\xbf\xcf\x69\xb2\x99\x21\xf0\xb6\x54\x51\xeb\xe3\xf9\x1d\x92\x73\xcf\xdc\x26\xd0\x6c\xe3\xc6\xd6\x07\xdd\xbd\x4f\xfb\xad\xf7\x49\x40\x37\x07\x0e\xf1\x74\xca\x93\x04\xac\xea\x92\xa4\x8f\x61\x21\xfc\xb0\x7b\x98\xf0\x1d\x5d\x0f\xac\xd0\x0f\x00\xbe\x06\xdf\x9c\x54\x38\xcd\x3a\x89\xab\xd7\x46\x92\x96\xc8\x8d\xbe\xea\x98\x37\x21\x7b\x9c\x11\xd6\x64\xca\xfb\xb9\x5e\x07\xe6\x8d\x05\x4e\xba\x40\xbe\x9d\x05\x4f\xba\x25\x79\xe1\x00\xca\xa6\x79\xac\xc1\x02\x4a\x59\x45\xc5\x05\xee\x22\x53\x8c\x92\x36\xd0\xf3\x1b\xb1\x41\x29\xff\xc8\x55\x5c\x9e\x2c\x8a\xd0\x65\xa3\xef\x84\x9c\x04\xca\x67\x58\x23\x10\xf8\x6b\xf4\x5f\xa0\x95\x19\xb0\x5e\x13\x5a\xe9\xc2\x27\x21\xee\x9a\xc4\x87\x38\x5a\x44\x09\x8d\x82\xeb\x64\x26\x70\x36\x6f\x62\x37\x6e\xd9\x7b\x94\xa1\xd7\x42\x19\x6a\xab\x09\xb5\x4e\xdc\xb8\xa3\x2b\x86\x53\xd2\xa3\x1f\x35\xa1\x1f\x1d\x78\x7c\x0f\x56\x54\xb7\x7a\x45\xd8\x88\xfa\xb9\xeb\x21\x90\x5e\x01\x02\x69\x93\xc3\x57\xe0\x1b\x95\x8e\x5d\x0f\xcb\xf4\xae\x13\x2c\x93\xbf\x04\xf7\x0a\x69\xa7\xfd\x3c\xbe\x32\x82\x4b\x7d\x60\xaf\x09\xc3\xd4\x20\x2e\xac\x23\x37\x2d\xc3\x61\x5a\x46\x17\x9d\xd6\xe5\x75\x51\x91\xd6\x5b\x99\xb5\x00\x8f\x1a\xef\xae\x3d\x81\x3f\x6a\xdf\x86\x3d\x39\x37\xbb\xcc\xee\x59\xaf\x7c\x67\x98\xe1\xb3\x8e\x76\xb3\x5e\xb2\x8f\xa7\x87\xb7\x95\xf0\x53\xd4\x4e\xdb\x2c\xe9\x67\xe0\xfc\xe5\x44\xa0\x39\x4f\x62\x13\x92\x16\xac\x96\xef\xc0\x87\x9a\xfb\x05\x72\x9b\x71\x9b\x91\xc8\x68\x5b\x45\x01\xb4\x65\xa9\x3d\x7e\x13\xdf\x7a\x7a\x4f\x20\xff\xee\x36\xc5\x27\x5c\xd9\x4d\xd3\x7c\x56\x0c\x6e\x99\xe8\xb1\x61\xaa\x4f\xd0\xe3\x52\x8f\xa2\x9b\x5d\x27\xaf\x62\x95\x58\x36\x08\xf8\xaa\x55\xaa\xdb\x1e\x0c\x29\xc5\x9f\xc7\x19\x16\x38\x49\x48\x42\x65\xfa\x6c\x51\xa7\xa7\x65\xd7\xb2\x3e\xab\x82\x1b\xfb\x0c\xcb\xd3\x89\x21\x45\x37\x10\x5b\x1f\x53\x71\x24\x72\x16\x42\xb9\xf9\x8d\x41\xae\x7e\x62\x0e\xf7\x02\x98\x74\xa2\x39\x14\x63\x9d\x62\x2a\x18\x91\xad\xa5\x2f\x49\x94\x0b\xaa\x16\x63\x5b\x49\xb4\xfb\x81\xbb\xb5\x5f\x9e\xda\x0f\x97\x7b\xe3\x5d\xfe\xbb\xeb\xcf\x57\x2e\xcd\x88\x80\xb2\x48\xae\xc0\x4f\x50\x2d\xd5\xe2\x1b\x10\x5f\x5b\x09\xe2\x6c\x6b\xd7\x76\x5b\x7c\x38\x7e\x1a\x07\x29\x3b\xe3\xa8\x4a\x1c\xab\x0e\x6b\x13\xce\xd6\xb2\x49\x3e\x33\xd2\x54\x8b\xc7\xfb\x19\xaa\xaa\xd8\xb8\x7c\xd3\xb4\x1e\x70\xe0\xb6\x06\x63\x61\xb1\x31\x41\xd2\xbd\x55\xaa\x5a\xc6\x89\x19\xe3\xaa\xb9\x9e\xde\x92\xc1\x0e\x82\xaf\x3a\x8c\x38\xe8\x64\x47\xc3\xd6\x07\x5d\x88\x3c\x53\x74\x52\x87\x82\x52\xbb\xab\xb2\x3a\x48\x20\xdd\xdc\xd9\xf8\x4b\xdd\x9a\xd2\xab\x25\x4e\x6c\x67\xa7\xe5\x7f\x8b\x9b\xe6\x10\xb5\x2c\x14\x4f\x90\x28\x76\x95\x52\xa0\x42\x73\x7e\xc0\xfa\xab\xa9\xb3\x6c\x9b\x7d\xef\x42\x53\x30\x14\x70\x35\x26\xa2\xa3\x11\x1b\x48\xf4\x44\x10\x23\x66\x09\x9b\x4a\xb3\x7a\x93\x32\xd4\xba\x9a\x10\xdd\x93\x8f\xa3\xd1\xc2\x03\x55\xd2\x97\x5b\x33\x7d\x4c\x71\x22\xc9\x81\x6e\x18\xaa\xb4\x2a\x0e\x01\x9e\x18\x3d\x09\x9c\x65\x44\x8c\x98\x4d\x17\x00\x6f\x07\xe7\x89\x69\x7f\x2d\xe9\x27\x8e\x65\xd9\xd0\x65\x54\x08\xfa\x8f\x92\x8a\x7d\x58\x4a\x31\x8a\x02\xb0\x15\x08\x2e\x74\x55\xb3\x96\xc9\x3a\x7d\xa8\x7a\x3d\x54\xbd\x79\x6d\xf6\x31\x5c\xdd\x9f\xa7\x75\x43\xd6\xdb\xb6\x7f\x17\x52\xcc\x0e\x43\xd7\x5f\x39\xc6\xfb\x79\xc2\xbb\x5f\x37\x1e\xff\x39\x42\xf1\xfb\x80\xf5\xb7\x17\xb0\xde\x7e\x6c\xd7\x0a\x5a\x5f\x81\x1e\xe4\x7a\xd9\x36\x42\xd8\x23\xda\x3c\x6b\x60\x92\x77\xdb\x07\x5f\x74\x8c\x14\x2e\x20\x77\xfa\x68\xe1\x67\x8a\x16\x6e\x58\xe2\xf5\x22\x86\x37\xd2\xef\x5f\x3e\x98\xd1\xf5\xfc\x12\x01\x8d\x2b\xc2\x3c\x64\x3e\x19\x3f\xfb\xd1\x6b\x9c\x73\xd7\x13\xf8\xb3\x27\x0a\x23\x12\x09\x4d\x67\x13\x12\xc7\x60\x43\xd6\xca\x2a\xa4\x89\x16\xb4\xe3\x74\x01\xcd\x7c\xb1\xd4\xc4\x8e\x13\xce\x66\x92\xc6\x26\x75\x3f\xc3\x50\x8e\x32\xd4\x54\x20\x65\x15\xf6\x37\x49\x88\x70\x26\x48\x81\xbe\x92\x94\x45\x24\x34\x4b\x0a\x14\x73\x22\xd9\x7b\x65\x34\x03\xcc\x16\xe8\x81\xf1\xa7\x84\xc4\x33\xd8\xa1\xea\x60\x0e\x11\x25\x07\x88\x2a\xff\x99\x80\x1c\x57\x9e\xab\x91\x1e\x3b\x04\x96\x18\x11\x90\xd8\x6f\x83\x82\xcf\xbe\x99\xaf\x8f\x10\x3a\x67\x68\x8a\x23\x75\x80\x64\x3e\x29\xda\x8f\xb9\xa9\xe0\xfb\x48\x58\x38\xf1\xa2\x91\x67\x0b\x66\x6d\x0c\x5e\xad\x50\x9b\x3b\x6f\x9a\x00\x06\x09\xc5\x5b\x85\xa6\x3c\xe2\x6d\x90\xf9\x3e\xe5\xd2\xfa\x30\x0d\x9a\xab\x19\xaf\x85\xbf\xf0\x90\xc4\x50\xc8\xd4\x44\x6b\x32\x1e\xb7\x9a\x0a\x2a\x53\x59\x77\x2c\x45\x1c\x91\xad\x9f\x6a\xed\xbc\xd0\xae\x59\xee\x98\x3f\x31\xa9\x04\xc1\xa9\xb5\xad\x69\xe6\x0d\x3e\x68\x13\x45\xa4\x47\x4f\x85\xb9\xb4\xd7\xd9\xe2\x0b\xca\x1e\xf4\xee\x16\x20\xcc\x50\x8e\x1a\x7a\x6e\xd8\xb4\xef\x29\xc3\xa5\x08\xf9\x0d\x76\x6d\x09\xc6\xf0\x72\xcf\xc4\x64\xd1\x86\x7f\xad\xf0\x2a\x48\xea\x35\x34\x71\x24\xa1\x06\x37\xd2\xdd\x21\x60\x75\x0e\x06\x56\x61\xb0\x86\xcd\x49\x92\x05\x75\x6c\x33\x2c\x94\x74\x04\x64\xc0\x18\x35\x77\x48\x73\x66\x32\xf1\x8d\x86\xf8\x64\x31\xf7\xac\x21\xb4\x68\xfc\x68\xc4\xce\xd5\x7b\xa9\xcf\x17\x67\xb3\x64\x81\x70\xfc\x48\x65\x01\x88\x1d\x71\x26\xf3\x94\x88\x4a\x79\x78\x13\x25\x83\xb0\xa3\x15\x3d\x36\x0b\x4a\x4b\x63\xdd\xad\xb9\x1b\x66\x68\x42\xa6\xfa\xde\xcb\xb0\x90\xce\xa5\xd2\xe0\x0e\xb1\x9b\x1b\xeb\xb5\x7a\xb5\x33\xf9\x53\x78\xec\x0c\x66\xb3\x39\xa1\xd8\xea\x2e\xc7\xd5\xf3\x69\x57\x7d\xc9\xd9\x9c\xd4\x26\x85\x96\x5f\x4c\x76\x15\xce\x56\x41\x45\x38\xb8\xa2\xdc\xb8\xbf\x75\x3f\x4e\x06\x32\x83\x5b\xcb\xfc\x53\x99\xa0\x1d\xb5\xb1\xa1\x85\x67\x93\x50\xb8\x14\xa4\xc2\x8a\x46\x56\xdc\xe2\xc2\xb2\x27\xcb\xbe\xda\xb7\xf6\x6c\x4b\x68\x54\x19\xe1\xa4\xbe\xc3\x4b\x2c\xee\xe6\xfd\xe5\xbc\xcf\x1e\x37\xd3\xf6\xd2\x68\xf3\x88\x27\xc9\x3a\x40\xb7\x95\x99\x9f\x16\x9f\x2f\x1f\x51\xd1\x8f\xde\x00\xb7\x17\x70\x6a\x8c\xdf\x02\x27\x56\xb2\x90\xca\xee\x52\xf8\x92\xe1\xa1\x0b\xeb\x17\x19\x31\x3e\x35\xd5\x4a\xdb\x3c\x1a\x99\xe0\x29\x5d\x07\xc2\xca\x18\xf9\x6f\x5c\x04\xd2\x0a\xdf\xb3\x8b\x53\xd2\xa7\xc8\x92\x97\xed\x11\x62\x55\x31\x33\x72\xc6\x92\x33\x94\xe2\x6c\xa3\x05\x5f\xa5\x25\x0f\x50\x6a\x4c\x14\x76\xf5\x00\x9a\x94\x00\xaa\x30\x2c\xf2\x13\x5e\x14\x31\xf9\x6d\xe0\x44\x6c\x2d\x72\xb8\xd7\xaf\x9f\xb3\x29\x5f\xe3\x70\x16\x31\xf4\xf6\xf4\x61\x47\xb3\xc1\xf9\xf3\xf1\x60\x66\xf7\xcd\x9a\x76\x39\x8f\xa7\x4d\x44\xbd\xf6\xc9\x74\x2b\xf8\x9c\x22\x7b\xc8\x44\x42\x69\x7d\x9d\xbb\xb5\x7c\xb4\x82\x16\x11\x0c\x67\xf9\x52\x7d\x2a\xd1\xe1\xce\xd7\xa8\xd2\x0e\x32\x9a\xa1\x0b\x24\xb8\x6e\x6e\xf5\x05\xd6\xcc\x1e\x92\x4e\x8b\xb5\x65\xd2\xd0\x7a\x20\x4b\xae\x47\x0f\xad\xd4\x7c\x42\x57\x22\x48\xae\xa3\x91\x4c\xb5\x24\x64\x84\xd4\xc2\x2b\x69\xc3\x33\xa7\x34\x21\xf2\x08\x9d\x37\x68\x27\x2e\x38\x12\x64\x34\x00\xa0\x84\x30\x11\x27\x3d\xe5\x82\x06\x45\x80\x9c\x8c\x84\x28\x80\x14\x87\x36\x0f\x41\xf4\x98\x23\xe3\x73\xe1\x06\x51\x09\x22\x33\x04\xd5\x3c\xcb\x08\xab\x0a\xcc\x77\x9a\x17\x50\x9b\x46\x1b\x93\x8c\xb0\xd8\x7f\xc0\x8d\xbf\x0c\xdb\x3a\x67\xc5\xa8\x5a\xb6\x74\x17\xb0\xe6\xdd\x63\x4f\x5d\xaf\x77\xfa\x8b\xfa\xde\x34\x8e\xf0\xae\xdc\xfa\xda\xa3\xf3\x52\xfe\xfa\x0e\xa4\x0f\xf0\xa9\xb3\x66\x61\x34\x15\x04\x0c\x9e\xa9\x4f\xe6\x62\x31\x11\x52\x71\x0e\xf7\xdd\xed\xd9\x8f\xc7\xf7\xe7\x88\xa8\x08\x25\xf4\x81\x8c\x58\x24\x1f\x0f\xb4\x78\xfc\xf7\x9c\x28\xfd\x73\x4b\xb0\x33\x4d\x09\x93\xc0\x09\xa8\xaa\xe5\x08\x37\x2f\xa4\x5b\x18\xfd\xdf\xb3\xf2\xf7\x4b\x48\xbe\x16\x3a\x0f\xb4\xeb\x30\xaf\x81\x4c\x01\x2f\xd5\x16\xed\x68\xa0\x18\xe3\xbe\x1d\x36\x55\x4e\xda\x20\x54\x8e\xfd\x2d\x67\x6b\x0a\x5d\xa7\xc5\x47\xc1\x28\x5a\x64\xba\x34\xc3\x00\x28\xb6\x5e\x0c\x9e\xf9\xa6\xb1\xf5\x55\x4c\xa4\x48\x49\xb0\x8e\x6e\x54\x14\x99\x42\x4a\x10\x02\x2c\xc4\xd3\x93\xbd\xeb\x6d\x0a\x98\x9f\x58\xf0\xd1\xd1\x88\x7d\x72\x06\xd8\xe2\x57\xe9\x9a\x30\x71\x9d\x1e\x67\xad\xdc\x0a\x34\x1b\x53\xe9\x7f\x00\xb4\x5c\x99\x27\xca\xd4\x3d\x98\x52\x86\x13\x3f\x50\xf3\xa4\x89\x4b\x08\xcc\xa2\xf9\x25\x8f\xb7\x03\x8e\x9a\x8e\x49\xb2\x8e\x24\x7a\x3e\x1d\x26\x52\xd3\x77\xf4\xd0\x72\x3a\x37\xa9\xec\x51\x4c\x26\xa8\x62\x83\x4d\x54\x91\xb5\xfa\x25\xa6\x8a\x02\x41\x60\xb2\xab\x46\x4e\x9a\xe4\x28\xbd\x8b\x56\x52\x37\x16\x3b\x13\xb2\xe4\xc3\x11\xa0\x17\x84\xd5\x88\x89\x9c\x01\x92\xa7\x37\xe0\x63\x24\x89\xa0\xc6\x92\x1e\x71\x66\x64\x00\x6b\x8a\x99\x69\x36\xa1\x25\x3f\xf0\xe2\x70\x06\xfa\x19\xcf\x25\x44\x3f\xa5\x44\xe9\x0b\xea\x2b\xa8\x19\x66\x5c\x28\x07\x28\x13\x34\xa5\x8a\x3e\x12\xf9\x75\xc3\xd6\x9d\x62\x85\x13\x3e\x1b\x08\x45\xa7\x38\x52\x77\x78\x2b\x0d\x1c\xdb\x66\x36\x75\xc7\xbb\x61\xa0\xf3\x33\xbd\xf8\x33\xc2\x20\x63\x39\x06\x9d\xbc\xf9\x08\xc3\x93\x8d\x38\x37\xd4\x2e\x88\x0c\xda\xbb\xf4\x16\x0b\x9c\x2b\x9e\x6a\xfd\x16\x27\xc9\x02\x50\xdc\xf5\x93\x39\x96\x73\xb7\xd1\x06\xfa\xbd\xcb\xdd\x64\x17\xf7\x14\x47\x73\x72\xab\xb0\xca\x1b\x4d\x8e\xab\xcb\x14\x9d\x0e\x4e\x7f\x18\x8e\xcf\xce\x6f\x07\xdf\x5f\x0c\xcf\x82\xf9\xd8\x27\x9f\xce\x6f\x6f\xeb\xbf\xfe\x70\x7e\x57\xff\xf1\xfa\xea\xfa\xfe\x62\x70\xd7\xd4\xca\xc5\xd5\xd5\x8f\xf7\xd7\xe3\x0f\x83\xf3\x8b\xfb\x9b\x61\xc3\xa7\xf7\x77\xfe\xa1\x7d\xd6\x58\xe9\xa8\x65\xb4\xd5\x73\x76\x88\xca\x2f\x9e\xa0\xfb\x2a\x8c\xa4\x0d\xc1\x30\xa9\x5a\x4f\x58\x6a\x56\x85\x27\x09\x89\x47\x0c\xb9\xcf\xf5\xdc\xdb\x3e\x35\x4e\xaa\x68\x4e\x50\xc2\xf9\x43\x9e\x59\x0e\x66\xe2\xbd\x99\xad\xec\x45\x64\xd0\xda\x0f\xe7\x77\x27\x75\x38\x4b\xdf\x58\x90\x91\xed\x48\x1d\xc6\x85\x1d\xd7\x04\x93\x49\x26\xc8\x23\x9c\x49\xef\xab\x0c\x7a\xf0\x1b\xb0\xac\x1f\xd3\x1a\x66\xaa\xd2\x4d\x1c\xdb\x3a\x70\x6e\x62\x41\xc3\xe5\xed\x5b\xb6\x9a\x7e\x39\x0c\x7e\x37\x9a\x90\x08\xe7\xc6\x95\xa7\xaf\x23\x21\xb8\x08\x07\x5c\x6c\xfb\x96\x8d\xbe\xab\x4b\x19\xe5\x4a\x3f\x12\xce\x88\xfe\x24\x38\x39\x5a\xfb\x06\xcd\xdc\x61\xc7\xce\x2d\xc6\x37\x95\xc6\xdb\x50\xf8\x5f\x00\x16\x4d\x73\x6e\x8f\xf1\x49\xc1\x37\x88\x15\x7a\x22\x10\xf4\x9f\x5b\xf0\x6c\xa3\x21\xeb\x13\x08\xdd\x19\xab\xb6\xab\xd8\x50\x4a\x06\x68\x65\x99\xbb\x10\x8b\xf5\xf7\x92\x34\xb1\xcb\x2d\x22\xb7\xcf\x4c\xa3\xc0\x43\x9d\xa3\x16\x46\xdc\xe2\x3f\x70\x3c\xbb\xc1\x8e\xbd\x44\x0a\xaa\xdf\x1b\x2b\x58\xba\x66\xae\x5d\xc6\xe3\xb2\xd5\x4a\x70\x71\xdd\x07\x56\x82\x14\x5b\xb9\x56\x77\x3c\xc6\x0b\x4d\x1c\x10\x21\x21\xf3\x2c\xe3\x42\xa1\x96\x36\x4c\xb4\x9f\x19\x1f\xdc\x0c\x76\x1e\x9e\x45\x41\x23\x5a\x0e\x90\x0d\x88\xae\xdd\x12\x78\xec\xba\x16\xe7\x3e\x44\x02\x00\x75\xcd\xc3\x7e\xa4\x25\xc5\xb7\x44\xa1\x4d\x22\xea\x36\x71\x51\x6b\x95\x11\x6c\x1b\x41\x43\x45\xc1\x30\x32\x97\x4c\xd5\xb8\xd1\x3f\xb3\xc4\x14\xa9\x5b\x64\x6d\x79\x8f\x74\x36\xdf\x41\x8b\xdd\xe5\xf9\xef\xac\xff\x4c\x0b\xf1\x81\x2e\x2f\x38\x57\x46\x92\x2c\xb4\x0d\x8f\x0b\x03\x86\x00\xdb\xa9\xc1\x88\x29\xc4\x35\x2d\x9d\x3f\x30\xfe\xc4\xbc\x0d\x5e\x1e\x8d\xd8\x10\x43\x4d\x2f\xaf\x32\xd8\x10\x08\x23\xaf\xaf\x94\xd4\x97\xee\xcb\x46\xb2\xc9\xf0\x2f\xa1\xa4\x70\x59\xfe\xe7\xc7\xbb\xf2\xbf\x4a\x52\xc5\xc5\x5d\xf9\x5f\xcb\xa5\x8a\xa0\xe1\xba\x24\xf1\xf1\xee\x04\x7d\x84\xcc\x08\x81\xee\xe6\xd8\xdc\xb7\x17\x77\x27\xe8\x82\x48\x09\xbf\x34\xdc\x3d\xc6\x9d\x88\xdc\xf4\x0b\xcc\x67\x52\xd1\xeb\xaa\x0b\xe8\x6b\x2c\xbd\x68\x9c\x46\x3b\xe8\x54\xc1\x3c\x6c\x19\xd9\xc4\x17\x0b\x25\x31\x2a\x7d\xd7\x85\x05\x19\x03\xbf\x93\x76\xcd\x84\x2d\x16\x92\x22\x99\x75\x42\x98\x79\x16\x29\x42\xe0\xc7\xd6\x5d\x1d\xa1\x9f\x9d\x91\x0b\x42\x5e\x8a\xfa\x6f\xca\x5c\xdb\x09\x5e\x38\xe0\x95\xa6\x85\xdd\x05\x96\xc9\xae\x83\x60\x96\x2f\xb0\xcf\xdb\x6e\x58\xe5\x92\xad\x81\x31\x63\x7c\x5e\x23\xe2\xef\xd4\x7f\x74\x4b\x96\x87\x04\x7f\x80\x72\x2e\x06\xd1\x1c\xc4\x1c\x7d\x19\xfd\x0f\xb3\x59\x26\xe0\xdc\x01\xb5\xdb\xf2\x1a\xd6\x59\xac\x19\x10\x38\x3b\x4d\x3c\x3a\x9a\xd2\x24\x01\x61\xea\x08\x0d\xa0\x1a\x1a\xd4\xb9\xd2\xf2\x84\x0b\xac\xa2\x33\xc6\x57\xc5\x72\xb4\x10\x53\x14\x10\xd3\x6d\x3b\x31\x49\xa0\xa6\x22\x5d\x67\x37\x14\xb5\x83\xd4\x4d\xcd\x9c\x71\x1d\xa4\xaf\x7b\xc2\xe6\x1a\x76\x8a\xd7\x88\x8b\xaa\x0d\x37\xf8\xf0\x5f\xcd\x43\xff\x98\x63\x81\x99\x82\x68\x1f\xab\xbe\x08\x12\x44\x9d\x92\xcf\x10\x4f\xc7\x8c\xcd\x1b\x7e\x0a\x37\xd7\x45\x37\xcc\xe8\x23\x61\x88\xc6\x07\x88\x1e\x91\xa3\x03\x5b\xd8\x5c\xe6\x93\xe2\xcd\xb9\x16\xbf\x46\xac\x96\x86\x78\x84\x06\x89\xe4\xf6\x0b\xc2\xa2\x04\xaa\x0f\x06\x81\x49\x9e\xf2\xad\x07\x6d\xb2\x00\x25\x0d\xb6\xb2\x68\x9e\xdb\x07\xc1\x87\x23\x86\xa5\x71\xff\x27\x70\xd2\x8b\xdf\x9b\x2a\x8c\x96\x42\x42\x9e\x11\x61\xb6\x76\x0d\x3d\xdb\x26\x99\xd2\x13\xcb\x36\x08\xde\x80\x8d\x29\xd2\x43\x83\x44\x4b\xf4\x15\x56\x28\x21\x58\x2a\xf4\xed\xd7\x6b\x85\xc1\xb8\x09\x16\xdc\xd5\x1e\xdf\x22\x46\xd8\x05\x19\xb6\x15\x4b\x87\xd2\x40\x08\x23\x46\x82\x84\x85\x03\xbd\xcf\x8a\xa3\x47\x2a\x73\x28\xe8\x18\xa4\x35\x98\x92\x7c\x26\x01\x07\xe2\x34\x8d\xde\xd9\xc2\x47\x1c\xa4\x98\xf5\x14\x17\xf5\xbd\xab\x94\x65\x35\x50\x6a\x74\x5c\xc8\xbc\x2f\xc2\xfd\xe6\x58\x8d\x98\xe5\xac\x2e\x42\x26\x28\xbe\x35\x48\x92\x72\x88\x1d\x86\x28\x52\xa6\x27\x0c\xe5\x28\x8f\xfc\x02\x5d\x82\x0e\xeb\xa3\xb2\xca\x05\xea\xfd\x61\xd1\xea\xee\x88\xf9\xb4\xe6\xb0\xed\x46\x71\xb1\xc9\x94\xfe\x62\x9a\x44\x63\xf7\x17\xa6\x2e\x68\x07\x6d\x82\x34\x0d\x79\xc5\xc1\xaa\xbb\x2f\x96\x28\x17\xbb\xee\xa0\xbb\xae\xd1\xec\x0a\x80\x6b\xf6\x89\x37\x78\x16\x5a\x36\x37\x90\x2d\xb6\xb1\x62\xf8\xf0\xc0\x97\x72\x6e\x97\x86\x7e\x1e\x43\xb8\xff\x6a\x2e\x58\x84\xcf\x3b\xd6\x01\x36\x7d\x1a\x07\xd1\xbc\x41\xa8\x23\x44\x7b\x3b\xc6\x67\xdf\x6c\x71\x32\x67\x6f\x7b\xfa\x07\xc5\xfc\xdd\x54\x7c\xbc\x5f\x7d\xe2\xed\xc2\xde\x20\xfe\x1b\x8e\x08\x8b\x16\xa6\x27\x97\x9e\x59\xcf\xbb\x76\x68\x75\x18\xfc\x16\x8d\xe2\xa1\x2d\xf1\x7b\x84\x86\x70\xd1\xb8\x8a\xbf\x78\xea\x7c\x2f\xc1\xcb\x23\xa6\x35\x13\x97\xa6\x19\xb4\x5f\x26\xf1\xa6\x13\x60\x30\x1f\xb6\x72\x5b\xa5\xab\x61\x93\xdb\xb4\x09\x07\x39\x01\x6d\x00\x74\x28\x1a\xce\x4e\x50\xcc\xa3\x07\x22\x8e\x05\x89\xa9\x3c\x81\x30\x02\xd5\xea\xbf\x4c\x31\x6b\xf5\xb5\xec\xbe\xfa\x7e\xbd\x56\x6e\x0a\x65\x6c\x21\xce\xdb\x15\xa8\x3a\x40\x74\x0a\xea\x84\x4b\xf9\x30\x79\x20\x2e\xab\x95\x30\x25\x16\x19\xa7\x4c\x79\x7b\x60\x65\x21\x9c\xa6\xa1\x85\xb6\xb6\xa8\x67\xb1\x8b\x70\xa3\x0d\xa7\x7d\x37\x27\x92\xb8\xd8\x0a\x33\x29\xc5\x91\x71\x28\x19\x76\x91\x61\x35\x97\x90\xb4\x52\x5e\x03\xab\x74\xc1\xa7\x7a\x85\x70\x06\xa1\x19\xc6\xcc\x53\x7c\xe4\x53\x2b\xa4\xa2\x49\x32\x62\x8c\x90\x58\x22\xc8\x2f\x79\xdf\x98\x1c\xa5\x3f\x3d\x40\x38\x8e\xd1\xff\xfc\xea\xc3\xc5\x2f\x77\xc3\xf1\xf9\x25\x18\xee\xcf\x2f\x86\x5f\x1f\xf8\x1f\xaf\xee\xef\xfc\xaf\xc6\x44\xf5\x48\x04\x4a\xf1\x03\xa8\x78\x4c\x1a\xf9\x0f\x12\x10\xc2\x91\xba\xb4\x31\xfd\x44\x12\x17\xd4\x6b\xc5\x14\x8f\x94\x62\xf7\xb0\xb5\xfe\x9c\x31\x9c\xae\xa1\xfc\xde\xf8\x4f\x96\xd3\xa0\x23\x1e\xdf\x85\x13\x03\x53\xc2\x94\xe6\x31\xd6\x64\x5a\xe8\xbe\x05\xc1\x11\x36\xa3\xac\x2d\xf4\x90\xb0\xc7\xe7\x14\xe2\x7f\x24\x8b\x9f\xb4\x7a\x7d\x8d\x69\x77\x70\xea\x21\x7b\xa4\x82\x33\x98\x9a\xb7\x0b\xfa\x13\xa3\xf5\x74\x2c\xab\x87\x4a\x1a\x59\x18\xc2\x51\xb2\xd6\xf0\xd6\x26\xbc\x87\x57\x9f\xae\xcd\xf4\x27\x9f\x95\x70\x09\x8a\x1e\xac\xe0\x11\xd3\x04\x42\x93\xdd\x45\x53\xd0\xe0\x88\xdd\x5d\x9d\x5d\x9d\x20\x92\xe0\x09\x77\xa0\xd7\x73\x80\xb9\x32\x4d\xd8\x05\x83\xca\xef\xbe\xa1\x52\x72\xea\x01\xca\x8a\xe4\xd4\xd0\x88\x76\x64\xda\x58\x55\x18\x96\x8b\x7a\x6a\xe7\x6e\x55\x40\x3b\xd9\x6b\x2e\xba\x5c\xff\xfa\x35\x58\x3a\x9e\x69\x45\xae\xc2\x79\xed\xdd\x3c\x25\xd8\xd4\x64\x34\xbe\x35\xeb\x10\xb1\xb1\xba\x49\x52\x2a\xf1\xa2\x0f\x8e\x3c\xb2\xd1\x06\xc5\x9b\x9c\xa1\x1f\xff\x2c\xd1\x24\x57\x23\x56\x6e\x83\x33\x34\xf8\xf9\x16\x7d\x8f\x55\x34\xff\x7a\xc4\xae\xb4\x9a\xf9\xe3\x9f\x5b\xb2\xe8\xd7\x06\x21\xd1\x6b\x72\x86\x15\xbe\xe0\x38\xa6\x6c\xd6\x84\x40\x52\x98\x7e\x87\x77\x83\x13\x74\x65\x75\x78\x9f\xf8\x5a\xa0\x06\x05\x0d\x01\x43\x86\x89\x38\x2e\x02\xac\x9c\x95\x51\x1a\x8c\x66\x06\x17\xd6\x88\xdd\x19\xe8\x15\xcd\x55\xa9\x42\x19\xb7\x38\xe1\x5a\x2b\x33\xa0\x34\xc6\x17\x60\x2d\x89\x7a\x75\x80\x8c\xfd\x66\x58\x79\x0c\xe4\x99\x3a\xb3\x1f\x31\x50\xd0\x7d\x32\x62\xc2\x23\x9c\x40\xf8\xe1\x61\x60\xd3\xd3\x6a\x3b\xcf\x21\x33\x0c\xe2\x7e\xd8\xa2\x1c\x25\xec\x93\x15\xbd\x50\x16\x6e\x14\x18\x00\x60\x1f\xad\x47\x3a\xe5\x9a\xe3\x1c\x8d\xd8\xf9\xd4\x44\x27\x26\x66\x75\xf4\x87\x84\x81\x53\xde\x2d\x8b\x7e\xea\xf8\x11\xd4\xaa\x35\xbe\x59\x1c\x81\xff\x83\x2d\x20\x52\x1d\xb0\x85\x39\x44\xb9\x14\xdc\xd9\x12\x65\x6d\x17\xfd\x9d\x18\x7c\x36\x62\x26\x28\xb2\xb4\x2f\x61\xe2\x76\xd0\x3b\x67\x10\xb3\x59\x5c\x97\x5e\xc0\xc8\x6c\x0c\xa7\x95\xf5\x33\x41\x0e\x63\xa2\x88\x48\xc1\xde\x13\xae\xa9\xbe\x61\x8f\xd0\x4d\xa8\x5e\xc7\x3c\xca\x53\x07\xa0\x06\x19\x74\x36\xd8\xcf\x5e\xa2\x9e\x42\xcc\xc5\xbe\x8a\xe2\xb1\x88\xe6\x54\x11\x48\x73\xeb\xac\x1f\x1b\x82\x19\x84\x9f\xd6\x25\xf5\x76\xc1\x17\x78\xc7\x76\x01\x7a\xa6\xa1\x71\x56\x6e\xa9\xd4\xda\x6a\xfc\xa7\x15\x60\xfc\x97\x05\xc8\x13\x17\x20\x6c\x91\xcf\x19\x07\x23\xb7\xc9\xa2\xe4\xf1\x7b\x89\xce\xaf\xb5\x04\xa4\x35\x5e\x7f\x06\x73\xa9\x4c\x1c\x9d\x29\xc7\x00\x5f\x9b\xcc\x88\x03\xf4\x8d\x29\x22\x1a\xa1\xcf\xee\x8f\x3f\xfd\xc7\x7f\xfc\xf1\x4f\x9b\xd4\x64\x80\x76\x8b\x35\xf2\x90\xed\x65\x91\x28\xdc\x81\x3a\xa7\xda\x62\x17\xec\x01\x6c\x5b\xfe\x4d\x00\x77\x82\x30\x29\x3c\xb3\x27\x5c\x86\x27\x13\x95\x8e\x66\x11\x8e\x21\x89\x3a\x28\x73\x08\x2f\xec\x5a\x89\xfe\x7f\x2c\xc1\xa9\x18\xeb\xa3\xb2\x59\x38\x17\x4d\xbc\x78\xad\x1b\x41\x5f\x59\xfb\x9f\x02\x0f\xec\xd7\xee\x82\xe3\x49\x4c\x84\x2d\x40\xec\x4c\x76\xde\x90\x08\xcc\x81\x7c\xce\x12\x1e\x3b\x14\x24\x49\x32\x0c\x02\x84\x66\x06\x47\x23\x36\x74\xf5\x68\x6d\x35\x7c\xf8\xc8\x78\x5e\xa6\x38\x32\xe0\x3f\x12\x7d\xf5\xf9\x44\xff\x76\x80\x16\x27\x10\x2f\x7b\x80\xfe\x71\x62\xf3\xe4\xb1\x50\x63\xfd\xd3\xd7\x4e\xd6\xb6\x4d\xc0\xa0\xa9\x44\xef\x8f\x1f\xb1\x30\x65\xec\x8e\xcd\x88\xde\x5b\xce\xea\x6b\x4f\x84\xb2\x79\xc2\xf9\x83\x8d\x25\xae\x7d\x78\xec\x30\x37\x80\xbc\xbd\xdf\xc4\x6c\xbd\x0d\x0b\xd7\x72\xe4\xa1\xad\xa6\x7b\x94\x4d\xd0\xd1\xdf\x24\x67\xe8\x68\x81\xd3\xc4\xfe\xea\x9e\xda\x50\x67\x2c\x91\xab\xa7\xec\x02\x9d\x92\x85\xb1\x94\x7e\x9f\xf0\x09\xcc\xea\x93\x9b\xa9\x09\x16\x86\x81\x16\xb7\x4f\x71\x61\xd9\x89\x58\x49\xca\x20\x07\xa4\x5c\x99\x57\x80\xc7\x35\xcd\xea\xb3\x1f\xd2\x7f\x1b\xc7\x3a\x2c\x8a\xcb\x57\x34\xc6\x61\x1f\xa8\xa7\x1b\xfd\x8c\xbe\xb2\x2c\xe8\x6b\x7d\xc7\xd8\xc8\x6c\xb3\x0c\x4d\x1d\x2c\x7c\x07\xbf\x04\x1d\x50\x86\xac\xcb\xb8\xfd\xcb\x7f\x1c\x1f\x1d\x1d\xf9\xaf\x2f\xf5\x54\xfe\x7f\x44\x95\x24\xc9\xd4\xb4\xe4\x6e\xb0\xc5\x88\x7d\x72\xf8\xaa\xce\x78\x5d\xa0\xf9\x40\x1d\xe4\x88\x27\xe8\xb0\x30\xe8\xc6\x3c\x92\xe8\x77\x5a\xac\x0d\x96\x12\x7e\xd4\x7a\x5c\xf3\x99\xb2\x80\x6e\x2f\x74\xa8\xac\x41\xbc\x7a\xac\x42\x00\x0f\xaf\xd8\x62\x19\x82\xf5\x02\x2d\x68\xca\x39\xb6\x20\x1f\x42\xe8\x97\xc9\x67\x05\x8f\x5a\x30\x54\x1a\xa3\xf6\x9b\x6f\xca\x1a\xbb\x2d\xa0\x54\x0c\x59\xb7\x2c\x80\x45\xba\xb0\x9c\xc1\xcc\xf3\x20\x74\x9f\xe8\xcb\x85\x85\x88\x9f\x32\x4f\x53\x2c\x16\xc7\xc5\x69\xab\x13\x67\x01\xdf\x0d\x3c\x26\x71\x0b\x00\x2e\xdc\xc4\x1e\x2d\x1b\x06\x62\xc5\x4b\x77\xa3\xf9\xb3\x1b\x41\xbd\x10\x08\x4a\x34\xd5\x72\x08\x8b\x78\x6c\xe9\xba\x48\xb4\x2d\x4b\x2c\xfe\x9d\xba\xac\xe2\xc2\x8a\x64\x61\x8c\x63\xca\x64\xdf\xdb\x37\xdc\xc7\x2d\xec\x9b\x8f\xa1\x50\x17\x99\xad\xe1\x1e\x3d\xbf\xba\x75\xdf\x74\xbf\x74\x61\x1d\xca\x22\x3b\x76\x5a\xa2\xb3\x48\x08\xfc\x54\x5c\xbf\x10\x1c\x63\xac\x33\xb9\x4f\x43\x36\xff\x3e\xe5\xd7\x34\xd1\xb7\x16\xd0\xf8\xd1\x88\x95\x7e\x3e\x40\x24\xa1\x29\x65\x3e\x40\xd1\x30\x77\x3e\x35\xd2\xf3\x03\x55\x7a\xcb\x64\xfc\xa0\x39\x98\x43\x74\x08\x54\xaa\x01\x5b\x38\xd2\xf1\x8e\x29\x6b\x81\xc8\xa5\x1e\x57\xa1\xa3\x6b\x61\x56\x37\x71\x68\x05\x52\x1a\x10\x1e\x9c\xdf\x11\xd3\xad\xb9\xb3\x54\x44\x46\x07\xed\x05\xcd\x1d\x3a\xdc\xcb\x80\x03\x40\x1f\xa5\xf0\x66\x2f\xff\x36\x08\x28\x43\x96\xa7\xdb\xe6\xd5\xd8\x48\xe9\xd7\x32\xd3\x5d\x17\x95\xff\x6d\x8e\x16\x61\x79\xea\x0e\xd4\x1a\x14\x37\xb4\xe2\x4f\x4c\xa2\x04\xc3\xdd\x01\x0d\x41\xf8\xe8\x81\x71\x90\x66\x41\x5f\xe6\x7a\x31\xdd\x18\x28\xed\x84\xb0\xaf\xcc\xbf\xbf\xf6\x95\xeb\x0f\xec\x7d\x2e\xa4\x03\xfa\xb3\x7b\x0e\xa5\x58\x48\x6c\x6c\xe8\x00\x48\x37\xc3\x22\x36\xd6\xf2\x50\xab\x30\xc9\xca\x5a\xfe\x5a\xf0\x1c\x3d\x51\x39\x1f\xb1\x3b\xee\x0c\x8e\x88\x71\x0f\xe9\x77\x00\xca\x68\xad\x3f\x2c\x81\x09\xc0\xa8\x9b\x28\x00\x62\x76\xb7\x49\xab\x82\x48\xe0\x31\xe3\x31\x59\x33\x21\xa0\x6e\x6f\x75\x7e\x08\xe7\xbf\x16\xc4\xa4\xbe\xc1\x4d\xd1\x96\x39\x6c\x4a\xf2\x6f\xd1\x31\x2c\x81\x2b\xed\x0f\x65\xb7\x9e\xd8\xa6\x18\x26\xfe\x56\x83\x56\x9c\xc6\x19\x24\x3e\x97\xd6\xde\x03\xe5\x6d\xbb\x09\x51\x39\x2b\x67\xe5\x0a\xf8\xab\xcf\xcc\x3d\x82\x65\xf7\x51\xda\x18\xcd\x04\xcf\x33\x8f\x0e\xe0\x32\x1b\xcd\x36\x58\x99\xe6\x9c\x4d\xf9\x89\xd5\xa9\x2e\x28\x7b\x30\x14\xff\x5c\x7b\x64\xb0\x10\x49\x8c\x82\xdf\xdd\x1d\x66\x56\xfc\x10\x51\x16\x25\x39\x5c\x7c\x52\xe1\xe8\xc1\xe0\x39\xb6\x19\x7d\xf5\x37\xe3\xd5\x79\xa3\x2d\x12\x53\x9e\x24\xb6\xdb\xe2\x02\x2d\x4a\xc5\x3d\x52\x8c\x30\xba\xbf\x39\x6f\xee\xfb\x81\xd6\x9d\x39\xcd\xb7\x67\x99\x40\xe0\x7f\x7e\xa4\x6b\x05\xae\x56\x90\xb3\x49\x89\xd4\xbd\x71\xa9\x0d\x6e\xad\x72\x7b\x6f\xe9\x3d\xd6\xb7\xd0\x38\x6d\xa0\xd4\xe6\xc9\x17\x1d\x9f\xd9\x8f\x3f\xe9\x6f\x9b\x77\xe4\x13\xe4\x6d\x79\xa8\x8c\x14\x33\x3d\x41\xd7\x6b\x8b\x2d\xc6\x5c\x8c\x1b\x0d\xe9\x3e\xdb\x68\x40\xa6\xc7\x8e\x55\x1e\x6c\x57\xae\x95\x27\x63\x8e\xc4\x89\x51\xb7\xd5\x1c\x34\xb1\x02\x1d\x59\x6f\x6c\x59\x23\x33\x48\xca\x09\x16\x33\x23\x27\x4a\xa2\xe4\xd7\x0d\x3b\x5c\xc4\xcf\x6f\xb1\xc3\x1b\x54\xa0\x09\xdd\x3f\x20\x85\x2c\xe3\x00\x7e\x94\x65\x2c\x28\xcf\x9c\x7c\x2d\x27\x7b\x77\x50\x19\x82\xd8\x47\x5c\x08\xc0\x2c\x8c\xb5\x34\xde\x8e\x92\xb1\x65\x25\xb2\x4b\x9c\xfa\x1c\x70\x57\x0f\xc9\xa6\xfa\x98\xc1\x4d\x08\x00\x83\xb5\x8f\x61\xeb\x92\x63\xe1\x10\x6c\x09\x90\xb6\x11\x8c\xd8\xc0\xbd\xe2\xf3\x48\x41\xc4\x15\x46\x0e\x81\x30\x39\x13\x14\x0a\x62\x26\x2e\x56\xdd\x4e\xae\x65\x12\xeb\xa6\xeb\x55\xab\xa6\x69\x31\xd7\x23\x09\x5a\x7c\x64\xab\xef\xac\xc0\xa6\x7e\x5c\xbf\xa8\x64\x33\x14\x47\x54\x2d\xfa\xd7\xd4\xf1\x6a\x91\xd2\x61\x04\xd8\x86\xc2\x3a\x83\x26\x94\x2e\x59\x14\x64\xaa\x57\xdc\xa8\x26\x95\xce\xea\xa7\x55\x6d\xc5\x8d\x29\x4e\xc7\x82\xb7\x83\x77\x77\x58\x26\xd7\x44\x49\xcd\x9d\x1b\x80\xd7\x05\xfa\x7b\x8e\x13\x63\xed\x67\x96\x1c\xdd\xb0\x41\x62\xf8\xee\x4f\x68\x00\xd7\x25\xfa\x04\x7c\x11\xfc\x9c\xd0\x9a\xe2\x88\xa6\x19\x11\x92\x6b\x7d\xac\x65\x93\x1f\xfe\x2c\xc7\x16\x9d\x79\x8c\xa3\x88\xe7\x75\x24\xe6\x35\x66\xd2\xd0\x5a\x38\x29\x8c\x1e\xf2\x09\x11\x8c\x18\xa4\x7e\x78\x0f\xb9\xf7\x3a\x0d\x97\xe3\x5c\xcd\xbf\x1b\x47\x09\xed\x0c\x19\x0d\x59\x2a\x03\xfd\xd9\xa9\xf9\x6a\xd9\x04\x4a\xed\x97\x86\xce\x90\x79\x86\xcc\xb3\x23\xf4\x3d\x8e\x1e\x08\x8b\x51\x96\xe4\x33\x6a\xd3\xc7\xe1\x86\x02\x76\x19\x58\xa9\xca\x13\x33\x2a\xaf\x69\x5f\x5f\x43\x23\x96\xe2\x07\xd0\x90\x3e\xdb\x58\x74\xad\x69\xae\xa5\x6d\x79\x7a\xa8\xe1\x68\xb8\x5c\x67\x5f\x15\xc1\x9c\x0f\x65\xce\x07\xd8\x95\x00\x99\x2e\x67\x08\x03\x14\xc7\x7b\x89\xf2\xcc\x19\x3f\xc0\xe0\x91\x80\xfb\xc9\x4c\x12\xca\x5d\x52\x2d\x0e\xce\xc9\x88\x41\x48\x9f\x6b\x71\xe1\xb9\x4a\xe8\xf1\xf4\x9e\xf7\xa6\xc3\x37\x35\x89\xe8\xdb\x39\x53\x8c\x19\x69\xe7\xe1\x8a\x6a\x4e\x18\xe8\x61\xdd\x5b\x86\x6c\xfe\xee\x9b\x56\x0a\x4d\x34\xb3\x28\x0c\x47\x7e\x09\x73\x46\x2d\x48\xb9\xb5\x15\x06\x51\x43\xce\xa0\x5e\x7c\x4f\x25\x92\x58\x51\x39\xa5\x8d\xfa\x69\x98\xfe\xbf\xcd\xaa\xe3\xf5\x30\x07\x1a\xf0\x06\x2a\x6b\xe1\xc3\x9f\x8f\xd0\x07\x50\xb7\x8b\x29\x29\xee\xb3\xf7\xdb\x58\x82\x9a\x93\x56\x18\xbb\x5d\xc4\x0d\xb8\x19\x74\xb5\xa2\xf8\x50\xf7\x23\x34\x28\xcc\x9c\x06\xbf\xc0\x18\x30\x57\xcc\x88\x24\x92\x6c\x42\x7c\x9d\x2c\x02\xe0\x0a\x04\x02\x42\x20\xab\x48\xfd\x7b\x01\xa9\xe9\x87\xf9\x04\xe9\x78\xf8\x81\xb0\x65\x6a\x5f\xf7\x11\x0e\x4b\x09\xcd\x4d\x43\x1c\x78\x85\x9f\x1b\x9d\x7f\x93\x01\x76\x3f\x76\x05\x64\x04\x9d\x1e\xeb\x25\xd7\x82\x7e\xf4\x60\x63\xd8\x8d\xd9\xc7\x82\x4e\x3c\xcd\xb9\x0c\xcf\x99\xdb\x3f\xd8\x4c\x25\x72\xe2\x62\xd5\x21\x07\xc0\x2f\xb0\x71\xfe\x33\x1e\x62\x52\xc0\xa8\xfd\x21\x35\x26\x2d\xbf\xdf\xc8\xb1\x50\x58\x06\x30\x97\xbb\xa6\xea\xa7\xf9\xc7\x3f\xcb\x2b\x38\xb1\xbb\xc8\xab\x6e\x2e\xf3\xb2\x7d\x38\xee\x86\x86\x48\x1f\x68\x52\xd4\x88\xc1\xb1\x4f\xe4\xcf\x78\x8c\x0a\xf2\x5a\xbf\x20\xcc\xeb\x4f\xab\x52\x48\xa6\xd3\xdc\x56\x51\xf6\xa7\xc0\x5b\x69\x8a\xb8\x1b\xf8\x9a\x40\xe4\xb2\x69\x63\xa0\xfd\xda\xeb\x9f\x4a\x7f\x9f\x34\xd3\xd8\x35\x8f\xb7\x21\xac\xf5\x21\xca\xea\x74\xdd\x21\x98\x51\x36\xd5\x90\x5b\xb2\x12\x19\x6f\x0f\x43\x8b\xc7\xdd\xab\xae\x81\xdf\x71\x92\x4f\x6f\x01\x6e\xb9\x0d\x5f\xc0\x21\x43\xcd\x89\xcf\x75\xd1\xfb\xac\xbb\xf1\x91\xd7\x6d\x9b\x62\xdd\x58\xc5\xf5\x8f\xd1\xff\xbe\xbd\xba\x3c\x4c\xb1\x90\x73\x0c\xa9\x87\xae\xad\x03\x57\x14\xc0\x28\xa0\xce\xbc\x4e\x19\x1a\xb1\x43\x34\xe3\x07\xc6\x9b\x73\x82\xe6\x4a\x65\xf2\xe4\xf8\x78\x46\xd5\x3c\x9f\x1c\x45\x3c\x3d\x2e\xd6\xe6\x18\x67\xf4\x78\x92\xf0\xc9\xb1\x20\x10\xcf\x77\xf8\xed\xd1\x77\xdf\xc2\xd6\x1c\x3f\x7e\x7b\x0c\x36\xfc\xa3\x19\xff\xdd\xc5\x77\xff\xf9\xc7\x3f\xe9\x86\xb3\x85\x9a\x73\x76\x62\x5d\x45\x4b\xdb\x3e\x34\x82\xef\xb1\xf9\xa4\xd2\xcb\x7f\x1e\x7d\x13\x0e\xc3\xbe\x9a\xf2\x98\x24\xf2\xf8\xf1\xdb\xb1\xdb\x99\xa3\x6c\x1d\xe7\x57\xc1\xf0\xfd\x92\x57\x4a\x0e\xea\xdf\x3d\xc9\xb8\xcc\xa3\x55\xdb\xd2\x70\x56\xc2\x68\xcd\x2d\x4e\xcc\x03\xa9\xf9\x03\xd7\xd0\xc0\xbc\x24\xd5\xa2\xd3\xaf\x8b\xe7\xdc\x2a\xdb\xac\x95\x9c\x06\xde\x37\x1a\x01\x56\xa8\xb1\x41\x64\x98\x36\x45\xf9\x58\x2f\xf3\x36\xeb\xf7\x9c\xa8\xb7\xbb\x86\xbb\xb5\xd3\xdd\x10\xea\x36\x31\x5f\x3b\x9f\x38\x7f\x72\x10\xb7\xbb\x00\x86\xed\x58\x3a\xc5\xe3\x5d\x1a\xe2\x81\xb1\xb8\x71\xb5\x0c\x63\x8e\xe5\x66\xc1\x15\x03\x83\x2a\xe5\xb3\x9e\x7d\xd1\x31\xdb\xa1\xe3\x95\x2e\x7b\x15\xea\x72\x59\xa4\x91\xcc\x14\xb5\x95\x47\xe8\x43\xa5\xb6\x44\x11\x30\x72\xf3\xe1\x14\x7d\xfb\xe7\xff\xfc\xe3\x88\x7d\xd5\xc0\xc5\xc0\x83\xcd\xc5\xcc\xc6\xaf\x00\xef\x4a\xb1\x54\x44\x1c\x8b\x69\x74\x6c\x1c\xe2\xc7\xfa\xfb\x43\xdb\xe9\x21\x9f\x1e\x7a\xd4\xcb\x43\x0b\x00\x78\x94\xc6\xeb\x25\x76\x96\x48\xcf\x84\x8f\xd8\xc0\x53\x09\x41\xaa\x06\x43\x83\x4f\x3d\xbe\xb1\x89\x2f\x36\x50\xe8\x7c\xda\xf0\x07\x94\x02\xfc\xda\xa3\xf7\x60\xe9\xfa\x28\xa0\x34\xda\x8f\xe6\x6e\x00\x70\x1d\x89\x3c\xa7\xde\xe6\x78\x49\x28\x9d\xad\xb3\xf0\xcd\x87\xad\x08\xff\x35\x79\xb0\xb6\x96\x9c\x01\x10\xe5\x8c\xf0\x29\x44\x4f\x80\x60\xe0\xbc\x43\x60\x1c\x62\x5c\x05\x39\xaf\x82\x64\xe6\x82\x09\x6b\xcf\x35\x2c\xf7\x96\x20\xba\xab\xd6\xf9\x39\x40\x74\xb7\x5d\x77\xcb\x50\x5e\x69\xc1\xb7\x0d\xe1\x30\x47\x69\x8d\xeb\x07\xde\x5f\xe9\xb2\xf1\x7c\x00\x7c\x34\x61\xa9\x3d\x03\x92\x03\x41\xdb\xe4\x50\xf1\x43\x00\x0b\x80\x14\x74\x03\x6b\xdd\x56\x3a\x06\x5c\x5d\xeb\x5c\x93\xfa\xfd\x0e\xe3\x34\x81\xfa\x9f\x83\x81\x5a\x99\xc4\x16\x57\xb5\xae\x70\xca\x18\x11\xd6\x88\xbf\xf2\x46\x5d\xd3\x11\x16\x6e\xe5\x72\x4f\x78\x21\x98\x87\x90\xc3\x3e\x0e\x12\x07\x4c\xe0\x08\x41\x34\xfa\x9c\xa7\x5c\x8b\x33\x3c\x97\xc1\x43\x93\xcd\x00\x97\x70\xab\xec\x95\xe2\xcc\xa0\x2b\xbd\xde\x6c\xf4\xd1\xd2\x8f\x8c\x8d\x23\x7c\x69\x2d\x14\xf7\x49\x19\xb7\x7a\xc5\xf8\x3d\xe0\xf0\x72\xba\x01\x37\x6b\x0a\x36\x65\x28\xce\x63\x61\x44\xe9\x3f\xb4\x0a\xa3\x49\xca\x67\x0e\xf8\x9b\xdb\x04\xe4\x1a\x20\xb1\x10\x6a\xb0\x52\x44\xbc\x3a\x7c\xc2\xf2\x74\xcd\x3d\xf0\xc1\x5d\x5d\x36\x00\x33\x13\xee\xe4\xe2\x9c\x0e\x1b\x03\x9d\xda\xce\xa5\x2b\xdc\x13\x8f\x1d\xd8\xdd\x7a\x43\xbd\xf5\x0d\xfc\x5f\xf6\xbe\xac\xb9\x8d\x25\x39\xf7\xdd\xbf\xa2\x22\xee\x83\xa4\x1b\x20\x39\x4b\x38\xc2\xa1\x08\x3f\xe0\x90\xd4\x1c\xcc\x50\x24\x87\x8b\x74\x7c\x0d\x07\x54\xe8\x2e\x00\x65\x36\xaa\xa0\x5e\x48\xc1\x9e\xf9\xef\x37\x2a\x33\x6b\xe9\x15\xdd\x00\xa8\x23\x8f\xcf\x83\x3d\x47\x04\x50\x5d\x5d\x4b\x56\x56\xe6\x97\xdf\x47\xbc\x76\xf5\x7e\x7b\x9a\x0b\x40\xc5\xe1\x18\xa3\x41\xb0\xbe\x45\x4b\x96\x5f\x0d\xdf\x8c\xc0\xe1\x3f\x64\xec\xe0\x21\xb8\x38\x6b\x23\x18\xec\x85\xb6\x01\x1c\x16\x71\xe8\xba\xc0\x37\xc1\x28\x91\x19\xc8\xa3\xa6\x4d\x2f\x6b\x97\x47\xf7\xc3\x67\xaf\xfb\xb5\xdd\x88\x11\x9b\x17\xf0\xf9\xf5\xcd\x43\x98\x1e\x96\xf8\xb6\x27\xd1\x4a\x44\x4f\x50\x40\x85\x47\x1e\x6e\x06\xab\xf9\x36\xdf\x4e\x95\x57\x97\xc9\xb5\xcd\x75\x6e\x1d\xe1\xae\x23\x9d\xd6\x29\x8b\x65\xb6\x49\xf8\x16\xb2\x4a\x0a\xf1\x91\x3e\x23\xe5\x80\xc5\xc6\x14\xec\x0a\x9f\xf5\x9f\x69\x33\x2b\x5e\x51\x79\xf0\x58\xf2\x74\x2e\xf3\x94\x93\x2c\x35\x0e\x66\xdd\x1e\xb0\x4c\xac\xb9\xca\x65\x34\x55\x6b\xc1\x55\x88\xdf\xa5\xac\x9a\x19\xe4\x58\x0b\x22\xbb\x5c\x2c\x44\x94\x7b\xa2\x27\x70\xde\xdd\x48\xed\xda\x83\xc3\xde\xdd\xed\xbc\xce\x57\xff\x59\x2a\x2c\x2b\x94\xeb\x4d\xaa\x9f\xc9\x0c\xdb\xa3\x71\xcf\x58\x36\xa8\x11\xd1\x91\x6b\x2f\x83\xf0\x2f\xbb\xa6\x9c\x14\xaf\x2b\xbc\x68\xf2\xf1\x0f\x66\xa4\x3e\x04\xb4\xd8\xa6\xab\x15\x40\x4f\x70\x83\x85\xe8\x15\x47\xb8\x50\x55\xac\x7f\x43\xa5\x20\x10\xed\x79\x43\x30\xe0\x37\x70\x4c\x9b\xdb\x63\xfa\x2c\xe2\xa9\x2a\xd3\x59\x90\xcf\xe8\x37\x1c\xf3\x5a\x2b\xc7\xb1\x36\x76\x8c\x7b\x85\x36\x2f\xa1\x84\xd7\x93\x77\xb9\x62\x87\x0e\xed\x97\x66\x91\xd7\x57\x90\x15\xe9\x1d\xf3\xf6\x72\x2c\xa4\xa5\x40\xd2\x4b\xa5\xf4\xb2\x5b\x94\xae\x58\x1f\x99\x7c\x1c\x08\x9c\x40\xe1\xb5\xca\xc7\xa6\x36\xa6\xca\x56\xb1\x2d\x8a\x04\xd9\xd9\xda\xd4\x68\x88\xbb\xc3\x22\x6e\x7f\x3d\xe4\xb5\x8b\xab\xb1\x40\xbe\xc6\x65\x81\x6d\xe1\x51\xb4\xf5\xaa\xdb\xb0\x74\x85\xca\x0a\x70\x29\xac\x72\x05\x14\xa2\x2e\x45\x0e\xa7\x79\x5c\x24\x58\x94\x05\xf9\x7d\xe0\x01\xe1\x49\xc2\x64\x9e\x4d\x95\xa3\x2d\x41\x26\x5f\xb0\xb0\xb6\xc4\x36\xa6\x2b\x17\x3c\x02\x9a\x25\xb5\x44\xf0\xc3\x64\x24\xf3\xb0\x47\x90\xb7\xde\x86\x6c\xef\x9b\x8d\xe0\x58\x43\x80\xd3\x36\x55\x35\x81\xf5\x30\x7f\x8b\x80\x7b\xd0\xb0\x3b\x06\xf6\xbd\x7d\xe9\xa2\x86\xe1\xe0\x29\x39\x65\x63\x7c\x3b\x73\xe1\xb2\x42\x6e\xd8\x5b\xab\x8a\x8f\xd0\x2e\x73\xab\xc9\x33\xa7\x45\xed\xee\xad\x1b\x9e\xe6\x32\x2a\x12\x9e\x26\x40\xa8\xbc\x28\x12\x26\x17\x81\x26\x1d\xcc\x01\x92\x56\x98\xe9\x8a\x34\x9c\xd5\x36\x25\x94\xf1\xb5\x08\xea\xe5\x28\xbc\x93\x04\x29\x65\xa4\x32\xc5\x5c\xa5\x69\xeb\xdd\x29\xbb\xa8\x2a\x10\xc2\x9e\x08\xc8\xae\x64\x86\xe6\xcf\xf5\x37\x28\xf5\x40\x25\x43\xb9\x30\x57\xca\x37\xc1\xae\x6b\x53\xc7\xe5\xd9\xd3\xc0\x7c\xb5\xe5\x9d\xee\x86\x29\x36\x96\x7a\x3d\x80\x82\x6a\x29\x8b\xed\x36\x44\x4b\x07\xed\xa9\x30\xb0\x93\x21\x51\xd8\x1e\x1d\xfd\x1c\x48\x94\x56\x3b\xbb\xee\x90\xc0\x83\x79\x1c\xd8\xd5\x40\x50\x62\x78\x47\x83\x95\x13\xa2\x13\x5a\x47\x76\x77\x08\xe7\x73\x49\xda\x81\x99\x7e\x99\xeb\xb3\x40\x3c\x4b\x45\xe5\x1c\xfa\x40\x1a\x10\x40\xd6\xeb\x36\xdb\x5c\xb0\x44\xaa\x27\x5b\x59\x6a\x66\x7e\xc4\xb8\x6f\x1d\x36\x1f\xf6\x1e\x17\x73\x8b\x4b\xd3\x44\x6f\x7d\x80\x97\xd3\xaf\x3e\xa3\xf9\xea\x69\x7b\x32\x88\xc1\xbc\xa6\x05\x1e\xbc\x47\xff\x69\xe9\x44\x50\xba\xcb\x84\x85\x4d\xe2\xf9\x12\x60\xb9\x72\xe9\xd4\xa1\x5b\xc7\xf7\x76\x55\xc6\x06\x0d\xa0\x45\x7e\xbc\xbe\xb8\xfc\x30\xb9\x2e\xeb\x2c\xfc\xf5\xf1\xf2\xb1\xfc\x97\xbb\xc7\xeb\xeb\xc9\xf5\x9f\xc2\x3f\xdd\x3f\x9e\x9f\x5f\x5e\x5e\x94\xbf\xf7\x61\x3c\xb9\xaa\x7c\xcf\xfc\xa9\xfc\xa5\xf1\x4f\x37\x77\x15\x65\x87\xfb\xbf\x4c\x6e\x6f\xcb\x7f\x7a\x98\x7c\xbc\xbc\x98\xdd\x3c\x96\xd8\x97\x2f\xfe\xed\x7a\xfc\x71\x72\x3e\x6b\xe8\xcf\xdd\xe5\xf9\xcd\xa7\xcb\xbb\xcb\x8b\x4e\x7a\x66\xff\xbe\x8d\x43\x7a\x0c\x50\xc7\xde\x4a\x1f\x63\xb6\x48\xa5\x50\x71\xb2\x45\xcc\xa9\xbd\x60\x55\x20\x6e\xe1\x11\x20\xd7\x42\x17\x87\x40\x47\x1f\x56\x82\xe9\x67\x73\xb9\x4f\x18\xb5\x46\x15\x33\x3c\x7b\x6a\xa5\x48\xca\xd3\x7a\x70\xba\x13\x21\x9f\xa7\x5b\x57\x83\xd1\xd5\x1d\x4f\xa0\x40\x0f\x61\x1b\x91\x76\xf5\x05\x0e\xe8\xb4\xd8\xe4\x72\xde\x0e\x06\xee\x49\x2c\x30\xfc\x0a\x88\x74\x3f\xcd\xb5\xd1\xd7\xcd\x86\xb1\x84\x89\x3d\x04\x0e\x08\x2d\xec\x2b\x60\xe3\x7e\x6d\x21\x54\x9b\x62\x9e\xc8\x88\xc9\xb8\x7a\xad\xc7\xd2\x0d\x8c\x5c\x56\x59\xc1\x36\x22\x05\x8f\xc9\x38\xa2\x9b\x54\x9c\xf0\x22\x5f\x59\x6d\x5d\x08\x26\x11\x87\xeb\x54\x65\x22\x4a\x45\x6e\xe5\xfe\x45\x6c\x25\x4d\x82\x27\x41\x67\xa8\x80\x2b\x86\x5a\xf1\xd3\x80\xa1\xb5\x25\x54\x8d\xbf\xc4\xd6\x07\xc4\xea\xf0\xfb\x9d\x43\x43\x3d\x96\x59\x55\xb6\x12\x7c\x43\xfc\xd0\x0a\xa3\x98\xf7\x36\x96\x3a\xb2\x40\x63\x9c\x64\x8b\x59\x6e\x7e\x8d\x5d\x6b\x2c\x5c\x28\x65\x88\x31\xb5\x4e\x1f\x9d\xa7\x02\x0e\x11\xca\x48\xdb\x6b\x34\x20\x28\x08\xe3\x0c\xd0\x66\x73\x63\x98\x8b\x15\x4f\x16\x18\x1c\x33\x53\xe3\xf7\x55\x7d\x89\x3e\xe8\x27\xa1\xee\x70\xc2\x7e\x15\x73\xa8\xd0\x01\xf7\x25\x7d\x2e\x30\xe1\x23\x69\xa6\x8f\x76\x55\xd9\x1a\x0f\x94\x7f\x46\x77\x35\xf8\x18\x81\xd6\x9e\xb0\xcf\x96\x87\x2c\x16\xf2\x9b\x69\x70\xaa\x44\x23\x65\x19\xc0\x56\x2c\xb9\x82\xb3\xcb\x40\xd9\x83\x15\xea\x4f\x42\x81\x26\x0b\x0a\x2b\xee\x5c\xb3\xc3\xc2\xb8\xf5\xb9\xe8\x88\x2b\x43\xe8\x49\x96\xa4\x6a\xc2\x64\x83\x1d\x27\x28\xe6\x7a\x12\xa7\xec\x82\xea\x6e\xcd\x5f\xce\xaf\x26\x97\xd7\x0f\xb3\xf3\xbb\xcb\x8b\xcb\xeb\x87\xc9\xf8\xea\xbe\xef\xf6\x3b\x46\x3d\x40\x65\xf7\x55\x4b\x32\x9c\x85\x38\xa3\x9d\xe7\xcb\xd2\xdc\x4b\xf9\x6d\x07\x53\xb2\xbb\xf7\x32\xde\xcc\x62\x99\x45\xe6\xf8\xdb\xce\x84\x8a\x81\xeb\x71\xaf\xa5\xda\xdc\x54\xf5\x2d\xdc\x37\x98\xfb\x86\xb5\x20\x78\xda\x3d\xdb\x15\xed\x3e\x07\x32\x28\x88\x86\xa5\xc2\x6c\xfe\x78\xaa\x82\xd3\xe6\x74\x37\xc1\xb7\x69\xee\xb0\x77\x2b\x37\x51\x7d\x27\xec\xaf\xcc\xb2\x82\x1b\xfb\x68\xbf\x06\xe5\xde\x2d\xa3\x42\x04\x3c\x21\xe1\xa4\x0c\x74\xe1\x98\xb9\x22\xaf\xb9\x8a\x79\xae\xd3\x6d\xcb\x2b\xf6\x33\x9e\xe1\xb6\x29\x9b\xd0\xf0\xc8\x36\xf7\x7f\x3b\x0b\xf8\x55\xae\xaa\x4b\x09\x69\x29\x1f\x6e\xfe\x72\x79\x7d\x3f\xbb\xbc\xfe\x34\xbb\xbd\xbb\xfc\x30\xf9\xc5\x71\x6b\x6c\x78\x56\x57\x9c\x12\xe6\x50\x34\xd6\xc5\x56\xf9\x36\xda\x17\x94\x7d\xb2\xed\x90\x4a\x85\x5c\x4c\x95\xb5\x2c\xa9\x6f\x7e\x95\xea\x62\xb9\x6a\x6e\xa8\xda\xcb\xdb\xf1\xc3\xcf\x7b\x75\x13\x38\x18\x50\x17\x06\x77\x5b\x9d\xa8\x4c\x2e\xc8\xee\x21\xbb\x59\xa5\x7b\xc0\x24\x02\x5f\x6d\x0a\x76\xb7\x58\xb4\xbd\x6e\x2f\x75\xa3\xd5\xe9\xfc\x37\x7c\xbd\x6d\x01\x3d\x04\x76\xb3\x74\x8c\x00\x36\x14\x65\xc7\x6a\xad\xbd\x6f\xf8\x5b\xe9\x04\xfb\xc3\x49\x22\x96\x4b\x11\xe3\xf2\xaa\x36\x4c\xa1\x20\x32\x81\x91\x3f\xd7\x9b\x46\x91\x04\x80\x0e\x38\x98\x1d\xec\xa8\xbf\x01\xbf\x75\x3f\x69\xb6\x15\xe7\x56\x0e\x34\xd2\x2a\xcb\xb9\x6a\xc9\x67\x3e\xd7\x81\x82\xbd\x4c\xd1\x4d\xca\x5c\x49\x02\x05\x48\x6c\xe4\xda\xef\x83\x7d\x32\x39\x24\x74\xa4\x28\xe2\x11\x08\x20\x05\xfa\xa5\x0d\x93\x50\x91\x98\x7f\xf5\xe0\x46\xe7\xd5\x89\x88\x27\x20\xe2\x88\x42\x09\xc4\x89\x88\xd1\x20\x50\x1f\x69\xc5\xa7\x0e\x9a\x90\xca\x93\x3f\xd1\xd0\xe3\xad\xb5\x1c\xf1\xf4\x72\xfa\x76\x82\x9c\xf3\x36\x3c\xbe\x55\x91\x8f\x0f\x84\xfa\xe3\x22\x22\xf2\x4f\x6c\xd6\x03\x2d\x28\xa0\x65\x0f\xd8\x98\x9d\x98\x69\xa6\x4b\x8a\x88\x4f\x80\x42\x60\xaa\xda\xb2\x1a\xd6\x06\xb4\x84\xb9\x6e\xed\xa9\x75\x18\xfd\xcc\x00\xdc\xac\x1d\xec\x7e\x95\x5d\xcc\x7e\x1d\x9c\xbd\x16\x9c\x0a\xcd\xcb\x9c\x63\xca\xb2\x7c\x1c\xb7\x15\x79\x3b\xab\x3a\x0c\x4e\xd3\x0f\x8d\x50\xe6\x8e\xc1\x23\x72\xc5\x33\xf4\x5c\xf3\x68\x55\xee\x38\xbc\x4d\x99\x1f\xa6\xda\x5d\xe7\x09\x1e\x16\x21\xe8\x95\xb8\x18\xe1\x9d\x5a\x66\xd4\xfb\x50\xeb\xc3\x09\x17\x0d\x5b\xf8\xa1\x73\xe4\x2e\x2f\x68\xf7\xc0\x60\x25\xbc\x50\xd1\x8a\x6d\x12\x8e\xd5\x8c\x2b\x9e\xe1\x92\xb6\xd9\x7b\x3e\x97\x89\xcc\x81\x88\x01\x93\x4a\x95\x11\x36\x37\x1a\x9e\x3e\x59\x0a\x38\xee\x89\xa0\xba\x16\xfd\x81\x28\x49\x2f\x05\xfc\x3d\x71\x92\x7e\xcb\x06\xbf\xe8\x4c\x49\xf9\x65\x49\x18\x49\x3f\x1d\xc6\xe2\xc1\xb2\xf4\xef\x32\x6c\x66\xa9\xc5\xdb\xea\xcf\x4b\xe3\xdd\x70\x50\x0f\xc7\x08\x10\xb7\xe9\x00\x33\x5f\x65\x3e\x6d\xdc\x59\x8b\x44\xf3\x16\xf9\x42\xdb\x36\x12\x99\xb6\xb5\x1d\xeb\x62\xde\x46\x9d\x87\xbd\xea\x6e\xbd\x2b\xee\x6f\xf7\xed\xb1\xe2\x82\xa1\x01\xe4\xb9\xc8\xe5\xb0\xd0\x46\xf0\xd2\x3c\x17\x27\xf0\xf3\xe6\xc6\x89\x30\xae\xf7\x3b\xd7\x16\x9a\xa7\xd3\x76\x04\x7d\x80\xde\xaa\xaf\xae\xbf\x16\x20\xb6\x7f\xb3\xb8\x47\x66\x80\x43\x16\x59\x2e\xeb\x2b\xac\x79\x27\x56\x9f\xfa\x50\x4e\xaa\x84\x6b\xa0\x77\x55\x58\xd3\xdb\xdc\x9b\x5f\xf7\xdf\x90\x65\x9d\xdf\x4d\x2a\x35\xd4\xef\x93\x38\x70\x07\xc7\x50\xe3\x73\x0f\x18\xc9\xaf\x85\x28\x84\x59\xfb\xf3\x22\x5e\xd6\x63\x9b\x03\xbc\x33\xff\x4a\x2b\xfd\xc2\xd6\x45\xb4\x62\xb6\x71\x16\x8b\x84\x6f\x4b\xaf\x06\xfe\x52\xae\x13\x60\xed\xdb\x93\x42\x2c\x2a\xb2\x5c\xaf\x01\xdd\xe8\xdb\x4d\x0b\x05\x0b\x9e\xf1\x3c\x4f\xe5\xbc\xc8\x1b\x91\x50\x25\x2e\x9d\x3d\x13\x5a\xf7\xb7\x97\xe7\x93\x0f\x93\x4a\x36\x69\x7c\xff\x97\xf0\xdf\x9f\x6f\xee\xfe\xf2\xe1\xea\xe6\x73\xf8\xb7\xab\xf1\xe3\xf5\xf9\xcf\xb3\xdb\xab\xf1\x75\x29\xe7\x34\x7e\x18\xdf\x5f\x3e\xec\x48\x2b\xd5\x9f\xda\x3e\x11\x3c\xa0\xfa\xb1\x78\x4b\x4b\xfd\x68\x6f\x97\xf4\xd4\xf7\x6c\x6c\x89\x8f\x42\xdd\x41\x6e\x53\x83\x90\xd2\x46\x21\x44\xca\x20\x5e\xf0\x9c\x93\x3a\xef\x29\x1b\x33\xab\xb2\x0c\x28\xe3\xcc\x38\x0b\xc4\x0a\x63\x66\x07\x9b\x30\x1e\x43\xe4\x6f\x6e\x5e\xdb\x46\x2f\x88\x8f\x29\x11\x21\x0b\xaa\x2d\xa9\x99\xaa\xcb\x67\xa1\xf2\x02\x28\x1a\x79\x92\x58\x35\x6c\xfb\x85\xa0\x7a\xd2\xf6\x32\x93\x6b\x99\xf0\xd4\xcb\x90\xdc\x50\x5b\xe0\xb0\xdb\xbe\x3a\xb2\x8c\x3a\x37\xbd\xbd\x3c\x3c\x4e\x18\xf4\xfb\xfc\x6a\x02\x2e\x50\x94\x5b\x8e\x6d\xfb\xf0\xa9\x42\xbe\x1f\x7a\xe2\x9a\x03\xf2\x3d\xd7\x14\x4f\xc3\xc7\xd3\x97\xdb\x17\x62\xa3\x12\x7e\x7f\x42\x29\x8c\x3c\xbf\x16\xba\xc6\x75\xd2\xfe\xc7\xa5\xca\xd3\x6d\x6f\xbf\xe6\x01\x48\x1a\x33\xf0\x4d\x09\x48\x53\x96\x26\xc1\x70\x07\xb3\xad\x5f\x83\xb3\x63\x51\x5e\x14\x8d\x77\x41\x77\x01\x44\x90\x2d\xfe\x77\x62\x0e\xa1\x1f\x75\x1c\x42\x72\x02\x18\x85\xb9\x2e\x54\x9c\x11\xe4\x67\x2d\xd5\xd9\x9a\x7f\x7b\x67\xdf\x14\x8b\x7d\x1d\x41\x30\x10\xb9\x88\xc4\xdc\x44\xb6\xc6\xc8\x75\x0f\xd7\x54\x75\x8c\xd7\x6e\x6f\xd1\x5a\x56\xb8\xf6\xf8\x3b\x2a\x82\x97\x9e\xc5\xb6\x69\xfe\x6a\x24\xef\x08\x90\xa2\x0d\x0f\x8d\x6c\x52\x61\xbe\xe8\x90\x51\x09\x02\xde\xdc\xbf\x01\x01\x5d\x12\xa2\x69\xb6\xdd\x61\x96\xf7\xa0\x6d\xd3\x98\x5f\x7e\x05\x96\x7e\x7a\x92\x99\x33\xcc\x36\xdb\x40\x27\x21\xbe\x29\x8d\x66\x26\xeb\x3f\xf5\x9c\x2d\xa0\xfc\x81\x84\x26\x53\x01\x81\x6d\x98\x0a\x4b\x2b\x09\x74\x1f\xb5\x14\xb6\x5d\x02\x89\xc8\x20\xdc\xab\xcc\x75\x4b\x7c\x2d\x28\x63\xf7\xfb\xdf\x0d\x3b\x67\xf3\x74\xcb\x2c\x85\x71\x58\x7e\x41\xd5\x47\x74\xe6\x42\xbf\x0a\x25\x9b\x38\x80\xee\x0a\x65\x8e\xe2\x63\x80\x1d\xfa\x67\xb3\x2a\x0f\xa5\x7f\xee\xac\x50\xb0\x81\xd8\x14\xbf\xff\x6a\xa4\x69\x9f\x2a\x5c\x69\xf4\x38\xc0\xc3\x52\xeb\xe1\x81\x36\xe7\xd1\xd3\x0b\x4f\x63\x8c\x15\x02\xfa\xe0\x94\xfd\xac\x5f\xc4\xb3\x48\x47\x2c\x12\x69\xce\x89\x46\x25\x83\xf4\x2b\x6c\x28\x6a\x67\xaa\x00\x1e\x8e\x9c\x34\x0a\x34\x3a\x73\xb9\x5c\x99\xfb\x64\x90\x3c\xd7\xa9\x31\x47\x39\x72\x54\x6d\x44\x44\xc4\x15\x2d\x03\xb0\x48\xf8\x73\x9d\x17\x66\x9f\x12\x73\x36\x71\x35\x6e\x36\x3b\x65\xa9\x7a\xbb\xe0\x0e\x34\x60\x64\x34\x91\x69\x60\xc4\x96\x3a\xe1\x6a\x79\x7a\x7a\xca\x44\x1e\x9d\xbe\x1b\xb4\xd0\xa9\xc1\x30\xdf\xe5\xb0\x9d\x89\xd6\x99\x48\xb6\x8e\x6c\xc1\xa1\xef\x41\x1c\xfd\x5b\x2e\x54\x26\x31\xe4\xd1\xb0\xfc\xef\xab\xa5\xea\xdf\x37\x74\xde\x7c\x53\x1d\x5c\xdb\xd5\xd2\x0e\x30\xff\x0f\x68\x09\xbf\xdf\x7c\xf3\x1a\x50\xab\x68\x65\x7a\x7c\xcd\x62\x0b\xaf\xa2\x56\x43\x0b\xf1\x3e\xe9\x36\x3d\xcb\xbd\xb8\x90\x1a\x5b\x22\xa6\x84\xbd\x8a\x97\xda\x22\x17\x95\x7a\xb2\x03\x4a\xc9\x3a\xaa\xc2\x06\x16\x84\x35\xec\xbf\x86\xed\xe1\x4a\x4e\x0f\xc1\x27\xe9\xa4\x58\xb7\x93\x00\x1d\xea\xf2\xf9\x4e\xe2\x7f\x9d\xc3\xe3\x7a\xbb\x7c\x5e\x63\xd4\xb2\x98\x53\x7f\x31\x70\x4b\x45\x79\xc6\xb6\xa7\x32\x03\xba\xaa\x7d\x2a\x84\x5c\x33\xd8\x34\xe4\x97\xb6\x1b\x0c\x18\x62\xed\x50\xb2\xc5\x1a\x34\x9b\x8f\xa0\x9f\x64\xe8\x97\x41\x52\xaa\xdd\x8c\x55\x51\x4f\x83\xe7\x08\x38\xb2\xf7\xca\xc4\x81\xa3\x13\xd0\xb4\x12\x2c\x03\x1a\xa4\xdc\x71\xae\xd9\xc2\xd6\x9c\x3c\x89\x40\xd5\x2b\x06\x02\xd7\x17\xa4\x84\xf8\xcb\xbf\x64\x36\xcb\x4c\x40\x00\x7f\xc6\xe6\xfe\x21\x18\xcd\x7e\xfe\xbd\xc5\x7f\xe0\x1b\x62\x13\x20\x94\x11\x73\x95\x37\x36\xe0\xe1\x51\xd0\x16\xfe\xe4\x93\xb9\xb7\x37\x7e\x9d\xda\x87\xaf\x22\x27\xfe\xf8\xf3\x3d\xc3\xa1\x26\xaa\xcf\xb4\xab\xa3\x41\x23\xbb\x11\x28\x30\x5c\xb3\x3d\x7c\x97\xd2\x3c\xe0\xa0\x5b\xae\x57\x33\xec\x22\x8f\x56\xfe\xac\x2c\x8b\xdb\x91\xe0\x09\xbd\xe7\xda\x93\x97\x22\xb8\x2f\x44\x49\xc9\xa5\xd2\xa9\xf0\x68\x2b\xad\x04\xa4\x15\x78\xce\x62\x1d\x36\xcb\x64\xbe\x1b\x8a\x32\x90\x60\x67\xd7\x52\xcb\x35\x42\x0c\xe8\x3d\x4b\xd9\x21\x70\x82\x25\xd2\x72\x58\x1c\x1f\x7a\xf1\xa4\x9f\x51\xa5\xdc\x2c\x17\x3a\x4f\x55\xf9\x51\xb5\x41\xb2\x58\x11\x99\x0a\x64\xca\xcb\x8c\xbf\x91\xcb\x67\xb3\x51\xeb\xcb\xda\x2d\x50\xb0\x00\xf5\xb5\x37\x55\xd8\xed\x80\x6e\xef\x49\x6c\xb3\x50\xac\x83\x56\x14\x6b\x5b\x90\xd2\xbc\x0f\xcd\xd7\xee\xa9\x80\x81\x9b\x05\xe2\xa3\xfd\x4e\x11\x7c\xe8\x47\xf3\xe3\x0e\x10\x5a\xad\x71\xb3\x06\x7d\x51\x8f\x8f\x82\x91\x99\xf0\xe3\x4c\x73\xe8\x71\x26\x0d\xc2\xb4\x3e\xa0\x08\x57\x35\x73\x23\x9b\x2a\x62\xe4\x0c\xf2\xb7\xc6\xe0\xd4\xa7\x8d\x2a\x0d\x91\x07\x70\x5b\x62\x49\x00\xb6\x54\xab\xa0\xd8\xac\x07\x6c\xb5\x9e\x48\x07\x1f\x6b\xb1\x6c\xd4\xa9\xf1\x81\x7b\x82\x97\x68\x72\x5b\x01\x4b\xde\xe9\xa6\x81\x23\xa2\x2c\x54\x7d\x41\x7f\x3d\x12\x66\xf8\xc6\xaa\x11\x2b\x64\x91\x42\xf7\x97\xe7\x77\x97\x0f\xdf\x0d\xd0\x64\xd1\x44\x83\x11\x4d\xb6\x9f\x17\x97\x1f\xc6\x8f\x57\x0f\xb3\x8b\xc9\xdd\x6b\x40\x9a\xe8\xa3\x3d\x30\x4d\xf7\x44\xf4\x7b\xae\x55\x2e\xbe\x1d\x74\x26\xa7\x85\x9a\xf1\x01\xd8\x7a\x47\xa6\xdd\xe5\xee\x60\xa3\x75\xa2\x62\xc7\x22\x4c\x34\x6d\x78\xa2\x39\x5e\xe2\x40\xe0\x79\x21\x93\x04\x2a\xde\x5c\x40\x98\xca\x58\xcc\xa0\x82\xfd\xb1\x4a\x95\x64\x53\xa7\x6a\x5e\x62\x6a\x86\x20\xd5\xca\x5c\xdb\xb0\xd6\x6d\x63\x06\x20\x95\x50\xf0\xd4\xc5\x65\xbc\x94\x4a\xf8\x6e\xa0\x42\x5b\xa1\x58\x2b\x01\x25\x4d\xe2\x6b\x16\x34\x92\xe3\xd5\xd7\xd7\xb4\x2b\xae\xb4\x3e\xad\xfb\x69\x3f\x74\x6f\x88\x9b\x58\x2a\x74\x4c\x4b\xbb\xf9\xbe\x79\xe9\x9e\xf9\x2d\x00\xe3\x6e\x66\x92\x43\xd4\x1c\x44\xd0\xfc\x44\xd2\x44\xa0\x8a\x80\x0f\xa7\x3f\x49\xc4\x7d\xe8\x45\x65\x9c\x8d\x29\x34\x63\x2d\x21\xb6\xce\xa9\x88\x3f\x4a\x8a\x2c\x17\x29\x5d\xf4\xc7\x9f\xef\xa7\x0a\x95\x72\xe9\x14\x22\xa6\x79\x7c\x04\xa2\x0e\x74\xe9\xf9\xd6\x43\x09\x2d\xd8\x5b\x8c\xaa\xae\x05\x57\x19\x0a\x54\x26\x89\x48\xfd\xca\xc0\xfe\x08\x11\x93\x48\x09\xa8\x98\xfa\xdf\x93\x46\xa1\x86\x5d\x6b\xfa\x4b\x9f\x92\x4a\x5f\x75\x3d\xb5\x15\x54\x02\xa4\xf1\x35\x57\x4e\x03\xb2\xbe\xef\x2a\x22\x34\x68\xe3\x22\x2a\xe3\xdc\x7b\xad\xa5\x07\x6c\xee\xb7\xa5\x74\xc4\xa5\xd4\xe3\x5c\x0f\x4f\x09\xb6\xd2\xc6\x80\x3a\x92\x78\x9f\x18\x75\x05\xdd\x09\x20\x76\xcc\x30\x36\x9e\x3a\x9e\xc3\x6a\xaf\x54\xe9\xf5\xcd\xf5\x65\x98\xe8\x9c\x5c\x3f\x5c\xfe\xe9\xf2\xae\x54\xbc\x77\x75\x33\x2e\x15\xe0\xdd\x3f\xdc\x55\xea\xee\x7e\xba\xb9\xb9\xba\xac\x65\x4c\x2f\x1f\x26\x1f\x4b\x8d\x5f\x3c\xde\x8d\x1f\x26\x37\xa5\xef\xfd\x34\xb9\x1e\xdf\xfd\x5b\xf8\x97\xcb\xbb\xbb\x9b\xbb\xca\xf3\x1e\xcf\xbb\x73\xaf\xa5\xd7\x68\xbe\x8a\xfb\xd4\x4e\x40\xe7\xd5\x38\xa4\x5f\x0f\x23\xc1\xcc\x79\xde\xe8\x50\xf7\xbe\xe9\x90\x48\xe2\xd7\x42\xa4\x5b\xe2\x10\x40\x2f\x14\xff\x12\x71\x85\x00\xae\x9c\x44\xde\xe3\x10\x79\x34\x55\x9f\x51\x06\x1e\x92\x9b\x6f\x32\xf6\x27\x08\xbf\xda\x2f\x7b\x31\x51\xd8\xac\x7f\xc5\x67\xb8\xcf\x4e\xa7\xaa\x24\xc2\x18\xfc\xaa\xa4\x20\x7d\x3a\x55\x96\xa7\x31\xd6\x51\x76\x0a\x7b\xf9\x54\xa7\xcb\x33\x92\x54\x31\xb6\x4e\x3f\xcd\xb5\x7e\x3a\x13\xea\x0c\xbc\x8d\xfc\x8c\x17\xb9\x3e\x83\xd4\x0d\x42\x5b\xb2\x33\xab\xbc\x60\xa5\x2b\xb2\xb3\x95\x7c\x16\xf0\xff\x4e\x57\xf9\x3a\xf9\x3f\xd9\x66\xf5\xed\x64\x99\xa4\x27\xe6\xb7\x27\xe1\x6f\x4f\xec\x6f\x4f\xec\x6f\x4f\xcc\xcf\xf0\xff\x6d\xb6\x78\x71\x17\xa4\x80\x3b\x55\x52\x65\x22\xcd\xa1\xce\xf1\x25\x95\xb9\xd7\xe7\xde\xb2\x37\xff\xfd\xdf\xec\x34\xe5\x2f\x08\xe5\xbd\xe0\x39\xbf\x45\xcf\xf1\xef\x7f\x7f\xc3\xb2\x5c\x93\x8e\xcc\x86\xa7\x5f\x0b\x91\x1b\x1f\x36\x11\x51\xce\xfe\xef\x54\x81\xf4\xd4\x7a\x3b\xcb\xd1\xa3\x46\xef\x32\xce\xd8\xbf\x62\x9b\x13\xe4\xd3\x88\x33\xd3\x52\x0b\xca\x47\xf2\xa4\x41\xac\xa7\xe5\xf2\xf5\x35\xb9\xa0\xef\x0f\xb0\x38\x5f\x93\x12\x6a\xc0\x31\xc2\x66\x5f\x13\x20\x6d\x49\x34\xb7\x89\x23\xe6\x16\x2f\x58\x40\xea\x5c\xd3\x1e\xa9\x85\x27\x0f\xd8\x31\xfb\xea\x97\xdd\x23\xa7\x97\xbd\x93\xd5\xa4\x68\xe0\x16\xe8\x6f\x98\x40\xe5\x22\xcd\x0e\xb9\x47\x1f\x17\xf5\x61\xe1\xcd\xc1\xf6\xe7\x3a\xe5\x4b\xaf\xe7\x4b\x47\x52\xf6\xc7\xf7\x67\x67\x23\xb6\xcc\xe0\x7f\xe6\x5f\xe1\x7f\x20\x93\x71\x2c\x5a\x9a\xda\x60\xba\xa4\x5c\x9f\x48\x6d\xeb\x8f\x0f\xb2\x61\xaf\xcf\x84\x56\x59\xa6\x3f\x15\x2a\x4e\x84\x47\x26\x97\x2e\xbb\x89\xb6\x62\x61\xe8\xf2\x54\x39\x67\x61\x8e\xe7\x22\xe2\xc6\xf0\xd5\x9e\x8d\x89\x6e\xbd\xc8\x85\x42\x3f\x27\xf5\x0c\xdd\x1c\x7d\x12\xc8\x32\x41\x5a\x16\xb4\x6f\xd7\x1b\x10\xc2\x95\x10\x00\x7c\x40\x6a\xb1\x51\xf5\x23\x90\xb2\x44\x96\x2c\xe0\x7e\x41\xc5\x4d\x61\x6f\xe2\x58\xd1\x55\xa4\xc6\xd5\xd9\x70\x15\xf3\x0c\x56\xe0\x22\x85\x38\x56\xca\x78\xbd\xa3\x23\x84\x06\x98\x9b\x3d\x57\x5b\x8a\x19\x87\x23\x81\x34\x66\x41\x9f\x47\x41\x27\xf0\x4c\x40\xf1\xde\xea\x0f\x4f\xa7\xca\xc9\xc0\x62\x5e\xce\xca\x8a\x6f\xb6\x54\x2c\x59\x1d\x74\x69\x7d\x22\x1a\xee\x91\x17\xda\xab\x7e\x17\x04\xc6\xc3\xa0\x09\x30\xa6\x85\x2a\x38\x56\xa9\xe7\x2d\x08\xf3\x8a\x34\x7b\x67\xb6\x21\xf0\x88\xe6\x9e\x8f\x4c\x66\x7e\x32\x9c\x6a\x2c\xf9\x81\xa6\x79\x47\x2d\x6c\x46\xa7\xc4\xb1\xd5\xe4\x82\xed\xde\x2a\x3f\x7a\x7e\xa3\xa9\xbf\xf4\x9f\xdf\x35\xd7\x11\xe6\x98\x1b\x85\xac\x07\x91\x0d\xe0\x96\x0d\x2d\x2e\x36\x4a\x22\xb3\xe8\x9c\x58\xc9\x11\x69\x8e\xac\xdc\xdc\x00\xf2\xa9\xa2\x13\x78\xc4\x16\x82\xe7\x2b\x48\xb2\x67\xcf\x68\x8c\xf1\xb8\xcf\x5f\xb4\xcf\xae\x58\x82\x56\x48\xcc\x97\x1a\xf7\xee\x3f\x7e\x0d\x62\xc5\x3c\xca\x31\x74\xdc\x46\x5d\xe9\x5c\x15\x18\xac\x46\x83\xb8\xc7\x38\x58\xbe\xcf\x2a\xb7\x76\x48\x37\x0b\x23\xb1\xc5\x10\x20\xab\xf6\x03\x3f\x30\x86\x07\xdf\x0e\x03\xfc\x81\x71\x84\xca\x26\xca\xeb\xe3\x3e\xf3\xd1\xb9\x90\x74\x0d\x22\x2f\x6d\x9b\xaa\x63\x20\xa0\x03\xfb\x41\xa0\xcd\x4f\x77\x52\x53\x64\x22\xb5\x64\xa4\xf8\xae\xc8\x4d\xb1\x92\x69\x7c\xb2\xe1\x69\xbe\xb5\xcb\x37\x91\x73\xe0\x30\x4c\xe4\x93\x60\xe3\x34\xd5\x2f\xc7\x1e\x85\x56\xd3\xf2\xc0\xb3\xa7\x23\x53\xdd\x00\xb5\xd3\x10\xaa\x9a\x46\x66\x9a\x52\xda\x3d\x16\xb3\xfd\x58\x70\xda\x98\x7c\x1a\x9f\x93\x8a\x3c\xdd\xce\xcc\x42\x5c\x6f\x5a\x2d\x45\x2f\x00\x57\x7f\x27\x77\x18\xc1\x0e\x9c\xcf\x3d\x08\x76\x4a\xb3\xfa\xe3\x10\xec\x34\x70\xe7\xd4\x09\x76\x26\xd7\x93\x87\xc9\xf8\x6a\xf2\xff\x2a\x2d\x7e\x1e\x4f\x1e\x26\xd7\x7f\x9a\x7d\xb8\xb9\x9b\xdd\x5d\xde\xdf\x3c\xde\x9d\x5f\x76\x57\xcc\xd6\x7b\xef\x5d\xf0\x13\x16\x3e\xe7\x3d\x7b\x08\x42\xf0\x08\x7c\x22\xff\x9b\x44\x3c\x60\x55\x99\xcd\x2c\xd5\x72\x04\x1b\xf5\x3d\xbb\x4c\xd3\xc9\x9a\x2f\xc5\x6d\x91\x24\x90\x28\x43\x94\xe1\x79\x2a\xe0\xe2\x39\x62\xb7\x3a\x9e\x04\xbf\x03\x68\x74\xe3\x6b\xc0\xf3\x79\x1c\xa7\x22\xcb\xf0\xf1\x23\x7a\x7e\x90\x16\x72\xb0\x6b\x4a\x8b\xf2\x67\x2e\x13\x73\x7f\x7b\x0f\xba\x82\x7a\x41\x0a\xd1\x23\x07\xe2\x64\x5f\x0b\x9d\x73\x26\xbe\x45\x50\x25\xde\xbc\x4e\xae\xf4\xf2\x75\xef\x40\xcd\x7b\x7a\x37\xb1\x46\xcb\x25\x05\xc8\xda\x67\xcd\xc7\x79\xb3\x21\xa0\xb7\xfc\x88\x3f\xfd\x80\xbf\x6c\x6c\x3d\xcf\x93\x23\x54\xad\x5c\xe9\x65\x33\x75\x2e\x78\xd7\xc4\xf7\xeb\x05\x74\xa1\x06\x4e\x2f\x59\x26\xd5\xd3\x54\x7d\x5e\x09\xc5\x74\x91\xe2\x9f\xe0\x9a\x6f\xdc\xcc\xa4\xc8\x56\x22\x66\xba\xc8\x47\xec\x45\xb0\x35\xdf\xa2\xdb\x0c\x77\x02\xc7\xf7\x09\x4b\x06\x4e\x11\xf3\xeb\x44\x2a\x63\x2d\x36\xd2\x62\xa4\xaa\x53\x7f\x8c\x1b\x97\xe5\x48\xe0\x87\x53\x18\xf5\x2b\x04\x79\x59\x09\xc0\xc0\xfb\x8c\xb8\x4d\xfd\x90\xe5\x06\x39\x11\xad\x9f\x8a\x8d\x67\x53\x79\x63\x29\x0b\x61\xb8\x9f\xb5\x8c\x59\x5c\x6c\x12\x19\x39\xbb\xfb\xa2\xd3\x56\xca\x28\x04\xf3\x0d\xa0\x8c\xaa\x40\x54\xbb\x5e\xac\x01\x29\x18\xe4\x48\x3b\xc8\xa3\x5e\x99\x3e\x2b\x90\x73\x2f\x32\x91\x9e\xe4\xa9\x5c\x2e\xc1\x01\xb7\xb8\xe3\x1f\x9f\x5f\xcb\xf3\x77\x1c\x0e\xb1\x0d\x0b\x60\x12\xbd\x94\x11\x4f\x42\xd8\x8a\x8f\x77\x3b\x02\x1f\xbb\xed\x49\x46\xc6\xf4\xdb\x75\xa8\xb5\x30\x79\x93\x0a\xe0\x90\x9a\xa1\x42\xfe\xe1\xca\xfd\x93\x05\x33\x17\x74\x2b\x31\xeb\x2b\xc4\xac\x4a\xb7\x3d\xe1\xfc\xb3\x2d\x97\x38\x8a\x09\x2a\x00\x63\xeb\x17\x25\x52\xf0\x60\x21\xa0\x6f\xde\x54\x69\xf0\x4d\x1c\xbf\xb8\x43\x9e\x58\x7e\xfd\x85\x83\xd8\x20\x8a\x7f\x29\x9f\x85\xfa\xfe\x7c\x68\xc1\x03\x22\x1e\xad\xc4\xcc\xfa\xe5\xc7\x36\x59\xee\x00\x18\x68\xac\x2c\xd1\x67\x68\x4a\x99\x04\x0e\x8a\x08\xaf\x4e\xd8\xe3\xba\xed\x42\xf2\xea\x5e\x87\x12\x50\xa0\x96\xe3\x73\xd5\xe3\xe0\x50\x26\x6f\x07\x92\xdb\xd7\xfb\xef\x0e\x04\x2c\x13\x3d\x87\x6a\xad\x3a\xc7\x77\x78\xc2\xb6\x51\x06\x3f\x8b\x34\x95\xf1\x10\xcb\x64\xc7\xe4\xc6\xfd\xb4\xab\x83\x4e\xa8\xd1\x3d\x09\x8c\x82\xc4\x58\x5d\xc5\x73\xaf\x56\x03\xec\xba\x26\x40\x6e\x23\x73\xc9\x0d\xe7\x48\x58\xae\x3e\x08\x4c\xe8\x0e\xe5\xcf\xfa\xbb\x1c\x34\xd1\xf5\xfa\xb2\x1d\x63\xe9\x4b\xd2\xba\x27\xf9\x80\x22\x21\xac\x68\x72\x95\x42\x43\x08\x97\xec\xd4\x61\xe2\x19\x54\x55\xdd\x24\x96\x10\x41\xbd\x66\xb4\x3a\xee\x0f\x94\xee\x3a\xa8\x02\xfe\x15\x76\x54\x91\x6b\x1f\xad\x84\xf7\x99\x00\x0d\x49\x88\x35\x04\xb3\x31\x89\x1b\xd5\xf2\xfd\xf1\x61\xb7\x66\x9b\xab\x72\x58\xc4\x69\xcc\x36\xa9\xb0\x71\xef\xad\xc8\x5d\x8d\x44\x62\x99\x9d\x21\xac\xeb\xde\xba\x5c\x24\x66\xeb\x40\x5c\x61\x2f\x04\x61\xb5\xd5\xc1\x5e\x6f\xb4\x12\x8a\xd0\x01\x4a\x4f\x15\x35\x6e\xf5\x79\x5c\x64\xb8\x04\xc2\x1c\xd1\x85\x1c\x21\x3d\x22\xd3\xc9\x33\xa5\x00\x02\xfe\x3e\x60\xf6\x36\x1d\x3c\x37\xbe\x8d\xf1\xe4\x21\x37\x45\x88\x3c\xc0\x28\x54\x44\x6a\x52\xb1\x94\x59\x2e\x42\xdc\x6a\xf8\xfb\xa3\xe9\x09\x94\x9c\xff\xae\xa1\x6f\xd5\x13\xd8\x75\x8a\x9b\x5d\x3b\xa0\x3f\xdb\x8d\x88\x27\xee\x77\xdd\x8b\xa1\x04\x3e\x8f\x03\x23\x51\x3a\x05\x70\x0d\xa0\xf7\x92\x61\xd9\x6c\xe6\x98\xf7\xdc\x24\x51\x41\x23\x77\x22\x10\x30\x45\xcb\x82\xa7\x5c\xe5\x42\x64\x53\x45\x89\x13\x2c\xff\x0e\x2b\x9c\x16\x25\xf1\x08\x7f\x36\x47\x3a\xcb\xb1\x9a\x12\x7e\xb2\xe0\x32\x29\xd2\x56\x77\x19\x57\xe5\x5e\xa5\x1b\x5d\xa3\x74\x0e\xcd\xb2\xa6\x49\x73\xd0\xea\x60\x17\xb9\x0a\xa4\x6a\xda\xa3\x8c\x3c\x6e\x79\x05\x6b\x72\xfb\xcf\xb7\x8b\x95\xb4\xa0\xad\xff\x25\x9b\x6d\xf4\x00\x8b\x47\x9a\xc3\x8d\x8d\x65\x5f\x6b\x77\xfa\x8e\xf4\xdf\xd7\x36\x2e\x42\x9e\x3d\x41\xe4\x7c\xd7\x55\x62\x77\x7c\xf0\x8f\x7f\xd8\x1d\x5f\x6f\xb5\x5d\xb0\x6a\x57\x5c\xc5\x09\xe8\x13\xe7\x95\x13\xc8\xed\x01\x10\x00\xc8\xad\x71\x6c\x87\x1b\x02\x7a\x67\x16\xd5\xa0\x9f\xbb\xc6\xa9\x82\x19\xdd\x01\x21\x2c\x3d\xa5\x8c\xe4\x6c\x42\x10\xf9\x93\x9d\x84\x28\xdc\x86\x6d\x5f\x82\x0b\xb9\x3c\x3e\x11\x4f\x5f\x65\x0e\xe7\x65\x7f\xac\x5b\xca\x88\xb6\x22\x9d\x5f\x4e\x8c\xe3\xc0\xcd\x08\xc8\x2f\x63\xcc\x42\xba\xa3\xa9\x22\x9d\x1a\x4c\x1a\x41\xb6\x00\x4b\x7a\x33\xf6\x7b\x07\x07\xfe\xfd\x3f\xdb\x82\xce\x2d\x5b\xc0\x58\x43\xd5\xb4\x8e\xa2\x22\x85\x8c\x0e\xdd\x3a\x99\xc0\xb3\x69\x08\x2b\xdd\x18\x4f\x64\x97\x87\x47\xf7\xa9\xc9\x7b\x70\x61\x86\xd2\x4b\x3d\xc0\xed\x12\x15\x77\xdc\x59\x48\x0c\xb6\x69\x96\xb3\x2c\x17\x9b\x46\xab\x54\x72\xba\xca\xa2\x52\x07\xb8\x5d\x1d\x8a\xf0\x07\xdb\xe8\x71\xa0\x5e\xf5\xe7\xfb\x9b\x6b\xb6\xe1\x5b\x80\xb4\xe4\x9a\xd4\xc0\x80\xd3\xa2\xba\x7f\x77\xcd\x40\xf9\xe5\xcb\x9b\x0d\xc7\x34\xe5\xde\x5e\xd4\xc3\x4e\xdc\xa9\xfd\x55\xec\x10\xac\x19\x5a\x92\x66\x2b\xa7\x3a\x39\xd9\x24\x5c\x09\xe4\x1f\xc4\x02\x5f\x56\x79\x7c\x98\xa6\x72\x01\x6b\x02\x02\x40\x07\x42\xb1\xec\xb4\x50\x4d\xb8\xb6\xb2\x4e\xd6\x41\x99\xa9\x56\x1b\xd1\x89\xd7\xf9\x88\xac\x84\x3c\x32\xdb\x04\xcb\x5d\x6c\xb6\xcd\x25\x6c\x79\x06\x58\xaa\x01\x13\xd5\x2d\xea\x35\x55\x56\xb3\x45\xbf\x64\x2c\xc6\x82\xa0\x42\x66\xa8\x85\x89\xb1\x4c\xc0\x35\x90\x7d\xc1\xa4\x6b\xca\x55\x66\x26\x14\xc2\x31\xe2\x59\x28\x56\x2f\x2f\x99\x5c\x5c\xb9\xd4\x24\x4e\x12\xf1\x99\xb7\x0c\x7d\xe0\x98\x1d\x44\xe1\xd5\xa4\x32\xb5\x9b\x2a\xf0\x23\xdf\xb4\x5c\xe8\x51\x82\xe6\xd0\x16\x77\xcd\x92\x2b\x87\xac\x7a\x9d\xa0\x7f\x03\x14\xc7\xa4\xdd\x53\x1f\xbd\x47\x75\xa0\xf9\x69\xe4\x0e\x1b\xa0\xa2\xbb\x3f\x75\x77\x28\x20\x3a\xc0\xf6\x04\xb5\xf4\x0e\x16\xe0\xfc\x65\xb3\xcb\x81\x40\x16\xd5\x1a\x49\x9d\xfa\x5e\x08\xf6\xc5\x09\x3e\x7e\x21\x82\x72\xaf\xb5\xdd\x36\xae\x13\xb5\xd0\x87\x19\x83\x74\x59\x43\xd2\x1c\x34\x2a\xcd\xfd\x3c\x14\xab\x03\x15\x45\xea\x75\x8b\x42\x1a\xdf\x6b\x07\x32\xe7\xd6\xdf\xc9\x09\x9e\x6c\x7b\x6a\xce\x67\x98\xe2\xfd\x84\x09\x4b\x8b\x24\x07\x0d\x4c\x20\x7f\x7a\x52\xfa\x45\xa1\x2f\x40\x4f\x62\x6f\xcd\xfe\x83\x03\x0c\x58\x9c\x08\x9c\x53\xa0\x35\x7c\x07\x6c\x54\x63\xf7\x6f\x76\x8f\x61\x6e\xec\x33\xd0\xad\x66\xe0\xfc\x10\x51\x2a\x58\xf3\xb7\xe3\x11\xfb\x69\xc4\xce\x47\xec\xf4\xf4\xf4\xdd\x88\x09\x1e\xad\x6c\x8f\xf0\x27\x08\x7a\xc9\xf9\xd2\xb4\xed\x74\x72\xfd\x03\x80\x3d\xd8\x1c\x56\xe6\xc8\x34\x06\x9a\x07\x6a\xba\x3e\xf2\x60\x5f\x01\xc1\xdc\xa8\x50\x61\x53\x82\xd1\x4a\x4b\xdf\x29\x40\x97\x89\x48\xa7\x16\x9f\x96\xe5\x3a\xb5\x58\x9b\x67\x9e\x72\xa9\xa0\xde\x80\xd7\x91\x86\xf4\xe4\x80\x23\x4b\x7c\xe3\x6b\x78\x7f\xa9\x1c\x4d\x88\x19\xa6\x07\xd7\xff\x7c\xbb\x91\x11\x8c\xe7\x4b\x2a\xf3\xdc\x9c\xce\xd9\x54\xdd\xb3\xf7\xff\xca\xc6\x9b\x4d\x22\xd8\x98\xfd\x8d\xfd\xc4\x15\x57\x9c\xfd\xc4\xfe\xc6\xce\xb9\xca\x79\xa2\x8b\x8d\x60\xe7\xec\x6f\x66\xd8\x4c\x7b\xd7\xda\x1c\x87\xdb\x11\xe3\x4c\x15\x09\x9e\xfa\x6f\x2d\x8e\xe5\x9d\x7b\x2f\xee\x67\xc7\x8a\x4d\x66\x7a\x4d\x47\xe1\x2f\x58\xcd\x60\x46\x46\xaa\x65\x22\x72\x2b\xf1\x5a\x42\x1c\xe1\x03\x4e\xe0\x4d\xdf\x4f\x95\x8b\xe5\xfd\x62\x7a\xfc\x0b\xfb\x1b\xbb\x2e\x92\xc4\x74\xc9\x18\x1a\xb3\x90\xde\x33\x8b\x00\x17\xea\xf4\x45\x3e\xc9\x8d\x88\x25\x07\x0c\xb8\xf9\xd7\xd9\x03\xcc\xf6\xac\xf0\x94\x03\xe1\x9e\x76\x14\xb6\xdf\x85\x77\x66\x88\x96\xb3\x63\x32\xb6\x93\xdf\x71\xf3\x2b\xff\x74\xb8\x47\xe4\x09\x57\x68\x3f\x90\xc3\x8a\xf4\xc3\x21\x63\xf2\x5e\x26\xa0\x72\xd8\xda\xb6\x1a\x8e\x82\xf0\x50\x3f\xd4\xc8\x02\x01\xf7\xd1\xef\x90\x3d\xd8\x90\xfb\x9a\xdc\x1a\x97\xeb\x73\x48\x5e\x0d\xbe\xa4\xaf\x3f\xed\x95\x15\x72\x1c\xae\x9f\xca\x0c\xe4\xa5\x21\xd6\xb2\x17\x55\x7b\xa5\xb3\x8f\x14\xbb\x88\x85\xd2\xb9\xb9\xc8\x28\x99\x9c\x99\xad\x7a\x76\xad\x95\xb9\xb6\x66\x72\x89\x35\xb3\x80\x80\xc8\x80\xd7\xc6\x3a\x05\x0f\x65\x97\x35\xd8\x02\xe0\x1f\x98\x2e\x21\x2a\x27\x37\x56\xc0\x4c\x41\xb2\x9d\x2a\xf3\x0b\x3a\x91\x00\xa1\x2b\x1d\x19\x10\x3e\xcd\x8a\xc2\xd1\xb3\xc8\x20\x07\x8d\x37\x2c\xb0\x2e\x1d\xb5\x83\x48\x78\xa0\xda\xe4\x80\xa8\xf8\x75\x40\x2b\x40\xad\xd9\x9a\x33\x04\xff\xcc\x45\xa2\xd5\xd2\xac\x8a\x36\x23\xa0\xd7\x5c\x1e\x92\x13\x0f\xbb\x80\x8d\xb5\xf6\xc0\x1c\x96\xf4\x15\x9a\x92\x40\xcc\x9a\xc4\x6c\x40\x10\xd3\x45\x64\xdd\x69\x48\x2f\xd7\xf2\x12\x43\x15\x7a\xea\xab\x14\xb4\xaf\x29\x39\xeb\xa2\xfd\x78\x70\xda\x68\x9a\x7d\xa3\x7e\x9b\xaa\x13\xd3\xd7\x1c\x0a\xa1\x6c\x82\x0d\x26\xbb\xa0\x5e\x8f\xf5\xf8\x6b\xc2\xfb\x5e\x53\x55\xaf\x51\x42\x0f\xbe\x67\x5a\xa3\x3f\x0d\x95\xc9\xb3\xa3\x77\x0c\xe4\xd3\x57\x64\xcd\x9d\xe9\x85\x2d\x02\xeb\x7f\xa6\xd7\x78\x8b\xfb\x41\x4f\x42\xae\xb2\x90\xdf\xb7\xbe\x70\xda\xf2\x0d\x5a\xcd\x28\x23\xd1\xaf\xb3\xd5\x01\xbb\x51\x1f\xf0\xe7\xb7\x3a\x91\x51\x37\x5e\xc7\x1e\x57\x20\xe2\x5c\x03\x40\x80\x9e\xba\x8b\xff\x50\xa7\xd0\x43\xcf\x45\x94\xfb\x8c\x5b\xfd\xe5\x06\x85\xc3\x28\xc0\xea\x5a\x01\x29\x09\x97\xd2\x82\xa3\x06\x48\x50\x80\xad\x0e\x43\x8f\x50\x15\x03\xa9\xde\x88\x53\x44\xb6\xd4\x11\xb0\x57\x2f\x2b\x9d\x98\xab\x89\x8a\x89\x50\x66\xaa\x36\x22\x8d\x74\xc2\x73\x63\x0d\x5f\x88\x34\x40\x26\xb1\xa7\x84\x7d\x0b\xd8\x3c\x40\xd0\xbc\x23\xde\x7b\xe1\x52\xae\x4e\x87\x7c\xf7\xb2\xb5\xda\x57\x87\x05\x64\x8e\x07\xb6\xe9\x5a\x05\x9f\x09\x02\x83\x43\x41\xf2\xc1\x95\xe4\x99\x19\xf4\x52\x7f\x86\xcd\xb0\x70\x6c\x9f\x91\xbf\x47\xe4\x95\x79\xa5\xab\x44\x75\x28\x81\x18\x08\xeb\x3a\x10\x4f\x91\x09\xe8\xce\x5a\x70\x74\x4d\x3c\x4d\x07\x4d\xea\x54\xf9\x74\xe1\x9b\x2c\x74\x53\x1a\xe7\x19\x79\x6f\x2c\x9c\x67\xc4\xde\x94\x5e\xf4\x0d\x10\xc7\x28\x0d\xcf\xa3\x94\x4e\x69\x68\x60\xb9\x8e\x98\xcc\xa7\x4a\x66\xb8\x32\x53\x91\x88\x67\xd3\xbb\x30\x76\x4a\xd0\x0f\x7b\x95\xb4\xaf\x0d\x88\x50\x6e\x0b\x09\x9d\x64\x1a\x94\x68\xa7\x21\x01\x09\x87\x38\x2d\x68\x4a\x17\x0a\xc8\x3e\xc5\x37\x14\xee\x4e\xb6\x16\x0d\x11\x0b\x65\xfb\x07\x20\x09\x54\x65\x99\xaa\xc9\x02\xaa\xb9\xa0\x86\x2c\x8e\xf1\x52\x66\xe9\x1f\x5d\x35\xb8\xa4\x58\xa9\xa6\x2b\xaa\x53\xe4\x45\xd9\x06\xdc\x49\xe2\x59\xa4\xdb\x1c\x62\x9c\x30\xae\x4a\xf0\x7c\xc5\x64\x3e\x82\x32\x7e\x6b\x38\xa6\x8a\xc7\xa4\x7a\x45\xcd\x99\xa1\x81\x75\xdf\x31\xcf\xf4\xf9\x5c\x3f\x77\xf9\x79\x87\x82\xa0\x70\x57\x6f\x12\xae\x66\x68\x50\x7f\x05\x18\x54\xa0\xa8\xd1\x96\xf9\x2b\xe6\x33\xa7\x70\x7d\x94\x7e\x3a\xef\xe7\xae\xa4\x73\x63\xdc\x3a\xfb\xa0\x11\x2e\x06\x4f\x3d\x66\xbd\x75\x17\xb6\xa0\x64\x7b\xca\x6c\x42\xb2\xbf\x15\xf0\x08\x29\x5e\x49\xcc\xdb\xd5\xba\x0b\x22\x65\x57\xc0\x8f\x0a\xd7\xe9\x33\xf3\x95\x33\xa4\x3a\xed\xc3\x91\x22\x35\x87\x69\x2f\xb4\xc8\x8e\x6e\xbd\x2e\x62\xa4\x35\xac\x50\x47\x8e\xd8\xb7\x0d\xb2\x5f\x08\x83\x16\x18\x96\x72\x51\x8f\x66\xc5\x94\xf0\x5a\xa2\x1b\xa0\x86\xc7\x0c\xd9\x96\x75\x95\x7b\x57\x51\x42\xbf\x4e\xd9\x44\x31\x1b\xbd\x18\xb1\x37\xb8\xb0\xb2\x37\x14\x91\x23\xd9\x1d\x4a\x25\xc7\xb4\x7b\xa8\xee\xac\x8a\x4c\x40\xf4\xaf\xdf\x6e\x98\x18\x69\xf3\x3e\x9b\x73\x36\xc7\x1c\x97\x9f\x24\xa0\x8f\xf7\x29\x30\xc5\xa4\xda\x1c\x1b\xa0\x43\x12\x6f\xa1\x5b\xf4\x61\xb5\x0f\xee\xfa\x17\xb6\xe9\x1f\xf6\x93\xfd\xa1\x19\xa2\x4d\x41\xe7\xa9\xfd\x9c\xe9\x74\xaa\x6c\x6b\x14\xa1\xcb\x90\xa1\xb9\xda\x94\xbd\xfa\x7a\x17\x38\x58\xa9\x90\xd3\xb7\xa4\xdc\xc0\xf5\xee\x39\x72\xaa\x56\x00\x30\x02\x73\xe1\x05\xc3\x4e\xd9\xd8\x3f\xcd\x38\x1e\x66\x81\xaf\xf1\x98\x27\x4e\x38\xa1\xa2\x2d\xd0\xdc\x24\x89\x19\x14\x99\x67\xe4\xb3\x05\x40\xe5\xac\x00\xf2\x99\x45\x61\x8c\x51\xc0\xd0\x33\x55\x66\xf0\xd8\x42\x02\x0c\x96\xc6\x65\xaa\x3e\xea\xcc\xd6\xc5\x66\x7e\x3c\x2c\xa4\x92\x86\xed\x8d\xe3\x26\xa7\x3f\x5c\xc0\xa1\x4d\x21\xf0\x8a\x58\x1d\x20\xd4\xa9\xb8\x7d\xab\x8b\xd4\xbf\x54\xc4\xd5\x54\xfd\xa7\x19\x1e\x94\x8a\x72\x3a\x6b\x7a\x81\x5b\xd8\x8a\xfb\xb1\xb7\x5f\xb0\xd1\xb7\xff\xfc\xee\xcb\x3b\xac\x4f\x2f\x32\x90\x83\x18\x95\x0f\x10\x47\xd6\x56\x24\x09\x24\x66\xed\x1b\xb8\xb2\x72\xff\x88\x4e\xe9\x71\xba\xe3\xcc\x54\xd9\xc5\xe8\xb3\xd1\xbb\x56\xb0\x8f\xc5\x8e\x59\xc4\xf3\x68\x75\x62\x7d\x39\x32\x63\xf6\xf4\xa3\xe9\x43\x5e\x78\xe3\x69\x35\xf3\x95\x99\xfb\x57\xba\x76\x72\x6b\xa5\xf5\x62\x5e\x01\x70\x26\x0f\xa5\x55\x19\x8a\x1a\xe2\xe2\xf4\x4a\x67\xde\xcf\x73\x5f\xb7\x64\xef\x3e\x80\x4a\x41\x63\xc5\xd7\x22\x66\x6f\xa0\xf6\xe1\x8d\x9d\xfc\xa9\xda\xcc\x4f\x93\xed\x22\x27\xb2\x16\x33\x28\xa7\x40\x87\xbc\xe3\x94\x9b\xc5\xf5\x6b\xd2\x8e\xc1\x6e\xbd\x68\x35\xfb\x3a\x6e\x6c\xdc\x93\xfa\x3b\x2c\x18\xf2\x71\xa3\x73\x5f\x46\xcc\x94\xd9\xee\x78\xf6\x34\x62\xf3\x94\x2b\xe0\x07\x8d\x43\xa7\xca\xef\x4e\x54\x33\x07\x26\x14\x4a\xe0\x70\xc5\x93\x2d\x40\xa9\x47\x53\x85\xb4\x31\xc0\x1c\xb5\x8d\x12\x19\xa1\xb2\x62\xc5\x0f\x12\xcf\x42\xe5\x97\x54\x27\x6d\x31\xdb\x87\x66\x5a\x5d\xdd\xf5\x41\x12\x91\x93\xb2\xb7\xc3\x7d\x41\xb9\x0f\x38\x46\xa9\x00\x2c\xf3\x7c\x1b\x60\x3c\xdd\x02\x1f\x11\xc1\x3a\x30\xeb\xb0\xbf\x16\x73\x9d\x58\x6a\xa2\xc9\x05\xd3\x29\xf0\x3d\xe6\x9a\xfe\x24\xe3\xb6\x53\x4c\xaa\x58\x7c\x3b\xa8\x3e\xb8\xfb\x40\xb2\xee\x9d\x79\x4c\x40\x2b\x58\x7d\x59\xd8\x45\xa9\x30\x87\x45\x6e\x6f\x70\xb5\x6f\x65\x55\xc0\xd9\x38\xc9\x57\x80\x02\x43\xfc\xb1\x1f\xd4\x35\xdf\xb2\x68\xc5\xd5\x32\xb8\x42\x03\x28\x47\x6c\x74\x8a\x4c\xfe\xcf\x40\xc4\xa3\x53\x5b\x7f\x45\x55\x45\x04\x82\x76\xf1\x5f\xc4\x1e\x6a\x5b\x3a\xc4\x97\xcb\x54\x2c\xa1\x24\xb6\x24\x00\x8d\xf6\xd3\x51\x32\xe2\x73\xba\xca\xca\x8e\x53\x9b\xdd\x76\x6b\xc9\xd3\xad\x2b\xca\x21\x19\x0c\x37\x74\xb5\x61\x1d\x31\x29\x4e\x47\xec\x0f\x1e\x6f\x29\x22\xad\x5c\x55\x4f\xf3\x3b\x6c\x2a\x91\xda\x1d\xb6\xa8\xa1\x88\xbb\xb9\xef\xf0\x59\x4d\x4c\xa3\x71\xd1\x74\x96\x45\xe5\x3c\x2f\x06\xd8\x4a\x12\x4c\x3a\x37\x3f\xbe\xc7\xdf\x76\x42\x92\xf9\xc6\x98\x37\x4b\xa0\x61\xbe\x6f\x2c\xbc\x79\x36\x71\x7b\xb5\x8c\x75\x73\xdc\x2f\xe8\x7e\xa2\x97\xaf\xea\x52\xda\x2a\xe9\x56\x97\xd2\xcd\x44\xd2\x52\xf9\xdb\xf1\x4e\x43\x43\x99\x16\x9b\x49\xa8\xeb\xac\x7a\xdd\x6a\xb0\x00\x4e\x62\x56\xa7\xe8\xb7\x23\x90\xc1\x15\x20\x97\x8c\x64\xd3\x81\x50\x62\x51\x00\xd9\xac\xef\x75\x37\x6e\xe3\x6f\x68\x1e\xfe\xc7\x96\x7b\xb1\xf5\x4c\x9a\x06\x3d\xdc\x9f\x38\x4e\xe9\xc0\x73\xca\x8b\xcd\x03\x29\xad\x0d\x6e\xea\x54\x2e\xa5\xe2\xb9\x4e\xd9\xdb\x5b\xcb\xe4\xf8\xce\xb1\x0f\xc3\x28\x1e\xc3\x4c\x94\x86\x08\xcd\x44\xf3\xdd\x0b\xe0\xbd\x22\x9e\x0d\x63\xc1\x69\x92\x7d\xdc\x09\x5f\x37\xdf\xca\x72\xbe\xde\x84\x04\x6e\x4e\x8d\x88\x46\x26\xc1\x41\x60\xb6\x63\x10\xe3\x93\x99\x2f\x49\x9a\x2a\x8a\x8c\xe3\xbc\xe9\xb4\x41\xcf\xb8\xfa\x96\xe0\x47\xce\xf6\x24\x25\x40\x3f\xbe\xc7\xaf\x3b\x33\x8a\x77\x57\x36\x61\xe0\xef\x05\x25\x47\x1b\x5e\x14\xf9\xa4\x32\x38\xb5\xf1\x8a\xe7\xcc\x86\x39\x25\x6d\xed\xf5\x79\xa2\x8b\x98\x91\xd1\xa0\xec\x64\x7a\x8a\xa7\x0f\x10\xbc\x9d\x9e\xb6\xb1\xdd\x0c\xd4\x17\x71\xfb\x1b\x7e\xd7\xbc\xc2\xe1\xb3\x16\x0b\xd7\xb9\xb5\x68\x64\x87\xc5\x9e\x28\x31\xff\x91\x6f\xba\x2b\xe8\xb9\xbd\x39\x63\xbd\x4b\xa8\xa8\xdd\xb0\xf7\x5b\x86\xcb\x45\x43\x81\x6d\x66\x58\xa0\xcc\xea\xc7\xc0\x7a\x0e\x03\xc9\x0d\x7c\x78\x21\x22\x93\x67\x4f\x07\x3f\xce\x16\x76\x76\x3f\x6a\xc3\x53\xa1\xf2\x19\x3c\x71\xd8\xc3\xe0\x21\xb7\xf0\xf3\x92\x43\xd2\x2b\x20\xf8\xef\x0f\x1a\xe3\xbc\xb6\xb4\xfc\x3f\xd8\x3d\xc5\x36\x32\xab\x45\x67\x4e\x9f\xb7\x12\xa0\x18\x41\x4e\xcc\x4d\x5c\xcb\x74\xd1\x0b\xed\x31\x7a\xc1\x0b\x95\x4c\x67\xaf\x17\xf2\xbd\x47\x66\x76\xd3\x0a\x85\x79\xa8\xa0\xd0\x98\x32\xfb\x37\xbf\xe6\xb0\x48\xd7\x67\x67\x19\xcf\x99\x99\xbf\x84\xfd\x97\x48\xb5\x47\xc9\x93\xbe\x75\xd0\x70\xa7\x3f\xbc\xbf\x06\x0a\xfa\xbb\xa8\xbe\x11\xd2\xcf\xc3\x5f\xa8\x7a\x1f\x6f\x96\xf3\xad\x75\xf7\x5b\x52\x09\x1b\x11\xe1\x3c\xec\x79\x6c\x06\x17\xbb\xc0\xbe\xdb\xd0\x97\x3b\x2c\xec\x06\x3d\x83\x7b\x2b\xf1\x63\xad\xf9\x86\x60\x4f\x84\xb0\xac\x06\xf1\x4f\xe1\x25\xfe\xfd\x97\xff\x38\x6d\xd3\x61\x82\xae\x0f\x45\x91\xb8\xce\x7f\x48\xa5\x50\x31\x24\xe5\x78\xec\xa0\x58\xce\x2c\xaa\x52\x94\xb6\x64\x9e\xcd\x32\x3c\x4a\x31\x59\xf3\x39\x98\xcd\x70\x11\x7d\x87\xcc\xae\x37\xb2\x6e\xfb\x96\xf2\x3e\x6d\x47\x75\x36\x8b\xb7\x8a\xaf\xeb\xca\x55\xaf\xda\xc7\xad\x14\x49\x0c\x5d\xa4\xa7\xef\xca\x4e\xc4\x22\x7a\x1a\xea\x13\xec\x4d\xf5\x2a\xa2\x27\xf6\xf3\xc3\xc7\x2b\xd4\x6c\x90\xd9\x54\x5d\xf3\x5c\x3e\x8b\xc7\x34\x71\x61\x61\x34\x3e\x45\x9a\xd8\x3d\x52\xa6\x1e\xc4\x62\xb8\x02\x84\x51\x89\xa7\xd0\x3a\x0e\x21\x33\xec\x7a\x7b\x32\x2f\xa2\x27\x91\x9f\xa5\x5c\xc5\x7a\x8d\xaf\x71\x96\x15\x8b\x85\xfc\x76\x9a\xf3\xf4\xdd\x2e\x88\xfb\x4e\x4b\x7a\xc0\x25\xe1\x10\x83\x52\xbf\x06\x38\x25\x0d\x6f\x9b\x65\x1c\xaa\xbf\x3a\xcb\xec\x79\xf7\x9c\x49\x81\x78\x63\xcb\x45\xe4\x94\xfa\xd9\xf0\x84\x01\xa3\xd7\x7c\xb0\x7e\xa7\x2b\x56\x1b\x03\x60\x9f\xee\xdb\x08\xe1\xad\xd6\xc9\xa1\x51\x42\x9e\xd8\x4d\x32\x03\x49\x80\x43\x5c\x70\x5c\x00\xee\xb2\x3d\xb9\x70\xf9\x2a\x47\xa9\x47\xb1\x06\x27\xc8\x03\x50\x0a\xea\x02\x00\x18\xa0\x13\x1d\xa0\xc3\x6c\xd3\x90\xb0\x1c\x08\x9e\x84\x36\x10\xe9\xe0\xa4\x79\x6b\x61\xcb\xa0\x1c\x96\xfb\x3e\x02\xed\x50\xa5\x87\x83\x02\x08\x48\xe0\x5f\x79\x94\x0b\x26\x84\xf4\x64\x6e\x1c\x83\x67\xdb\xf1\x44\xd9\x20\x63\x73\xc8\xf3\x99\xaa\xc0\xcb\x41\x62\x0e\x8b\x4e\x75\xa3\xd6\x14\x63\x28\x2d\xc3\x83\x63\x0c\x87\x70\x50\x76\x06\xa1\x2f\x42\x79\x08\xc8\xa3\x46\x7a\x3d\x37\xf7\x7c\xac\x76\xa4\xc0\x1b\xb8\x67\x63\x4b\xf1\xe3\x82\xa4\xd6\xcd\x42\x8e\xe1\xca\xd8\xbb\xa3\x21\x64\x4b\x0a\x4d\xd6\xae\x2b\x4c\xe8\x13\x1f\x97\x2e\xb3\xd9\xce\x8e\xab\x6f\x00\x32\xed\x2f\x7c\x9b\x81\x96\x86\x30\x56\x71\x81\xc1\xa6\x72\xff\x47\x3e\x04\xe2\xe8\xa3\x48\x98\xaa\x20\x89\x1d\x7a\x17\x89\x25\xe0\x22\xb1\xaa\x21\x9e\x5a\xe3\x4d\xd6\x3c\x38\xbf\x4e\xfc\x38\xed\x8c\x1f\x63\x02\xe7\x7f\x46\xc8\xb8\x23\x30\x75\x60\x7c\x2c\x38\x26\x53\x1d\x91\x9e\x74\xce\x40\x62\x0b\xcd\xb1\x79\xf6\x88\xad\xb9\x54\xb4\x0d\xf2\xd4\x18\xc8\x58\xcc\x8b\xe5\xb2\x35\x6c\xf3\xe3\xc7\x7f\xcb\xfb\xe4\x1f\x3e\x3e\xd7\x49\x0e\x73\x8c\x08\xdb\xc4\x3e\x09\xd3\xc6\xc6\x57\xfe\x3e\x41\xb5\x23\x45\x08\x27\x7d\x22\x84\x16\x77\x00\xd5\x10\xe4\xe2\xdb\xdc\xf0\x6f\xa1\xc3\xef\x13\x3a\x6c\xcc\x8d\x54\x7b\x88\x15\xf8\x33\x59\x76\x80\x3b\x7a\xb8\x27\x91\x8f\x63\x7c\x83\x5e\x91\x8a\x54\x26\x54\x9c\x81\xa2\xfb\xf1\x99\x7d\xe0\xf4\x39\x3c\x46\xb1\x23\xe1\x7d\xaf\xd7\x82\xc1\xa3\x32\x64\x56\x66\x54\x70\x32\x02\x24\x95\x79\x41\x9f\x25\xa6\x1c\x34\x1c\x57\x98\xad\x8e\xbd\xd3\xfa\x56\x89\x17\x66\x4e\x83\x51\x08\x2d\x09\xa6\x07\x28\xf7\xdf\x91\x0c\xac\xc7\xa1\xba\xea\xda\x54\x2c\x79\x1a\x03\xfa\x99\xb6\x64\xc2\xa3\x27\xf3\xdf\xd0\x3f\x7a\x22\xc1\x5f\x2c\xfb\x27\x42\xb2\x7c\x6b\x52\x45\x28\xc9\x49\x48\x1b\xdf\x3f\xfc\x79\xc6\x78\x94\xea\x0c\x6f\xf1\x71\x91\xfa\xfa\x78\x05\x0e\xe2\xb3\x8c\x0b\x9e\xe0\x13\x5b\xa3\x7f\x3c\x3b\x88\xcd\x74\x1c\x90\xca\x8b\x6f\x9b\x84\xab\xf2\x9e\xc4\xd7\x05\x3a\x09\xd9\xb1\xf2\x1d\x2b\xd2\x77\x65\x77\x0b\xa5\x1d\xfd\xb6\x42\xef\x33\x15\x3c\xde\x86\xdc\x31\x52\x91\x5e\x1b\x8f\xd7\x52\x99\xa9\xb7\x9a\x21\xce\xbe\x42\xd3\x11\x4f\x10\x04\x06\xd4\xda\x49\x52\xd9\xfa\x19\x53\xc2\xb8\x2c\x3c\x95\xc9\x16\xbc\xd4\x4d\x2a\x4e\x82\xe7\x04\xfb\x9b\x30\xe8\x32\x9b\x2a\x5b\xe7\x5c\x64\x62\x51\x24\xe8\xcb\xc2\x6d\xcf\xbd\x00\xed\xc3\xc7\xc9\xc8\x1c\x63\x39\x11\xda\x06\x0f\x46\x99\x88\x63\xe0\x79\xeb\xf7\xac\x5e\x31\x6f\xcf\x69\x94\x02\xdc\x70\xa5\x5f\x6c\xd1\xc1\x0b\xf7\xa8\xb2\xb6\xb3\xe4\x68\x71\xce\x6e\xaf\xc6\xde\x27\xec\xae\xc4\x41\x2f\x6b\xab\xd2\x67\x22\x76\x3b\x51\x2a\x78\x1d\x52\x58\x22\x0c\x8a\x88\x59\x91\x61\xed\x82\x99\x43\xb0\xd6\xf6\xda\x8c\xd5\x1c\x56\x9d\x8b\xb9\xb7\x93\x99\x56\x6c\x5a\xfc\xee\x77\x7f\x14\xec\x77\xa4\xdf\x07\x56\x06\x23\xd4\xc0\x6a\x84\xad\x83\x81\x72\x0f\x10\x48\x79\x54\x9b\x11\xd6\x04\xc2\xb2\x85\x84\x00\x63\xe2\xd1\x8a\x65\xc5\x1c\x31\x3a\x9c\x82\x9c\x5c\x39\xd2\xc0\x2b\x0d\x70\x1b\x3c\xc7\x6c\xef\x07\x04\x0b\x6e\xe9\x7c\xb1\x81\x80\x00\x27\x08\x03\x1d\x8a\xf4\xc0\xa0\xe0\x4b\x82\x01\xbf\x05\xa5\x9e\x11\xfb\x59\x3e\x8b\x11\xbb\xdf\xf0\xf4\x69\xc4\x2e\x30\xdc\xfa\x67\x3d\xdf\x79\xff\x3f\x46\x0c\xcc\xb9\xa9\x83\x83\xfb\x8d\xd1\xa4\x51\x40\x95\x19\x84\xf8\xeb\xd1\x1a\x8b\xb0\x00\xed\x13\x54\x91\xdd\xa5\x47\xd2\xca\xa7\x7a\xac\x5b\x4c\x3b\xac\xaf\xf5\x4e\x53\xb5\xd2\xfe\x3c\xa5\xaa\xa9\x26\xa4\x89\x39\xc7\x60\x25\x9a\x17\x3f\x01\xcf\x44\xa7\x6c\x93\xf0\xdc\xac\x95\x8c\xc2\xcf\xb8\x2a\x10\x7f\x87\x27\x72\xa5\x16\xae\xaf\xe3\x65\x1f\x3c\xdb\x68\x9d\x34\xfa\x5f\x47\x1d\xc0\x5a\xb4\xb3\xef\xe0\x4d\xb0\x86\x20\x0b\xbd\x12\x3b\x8a\x3e\x72\xe6\xe3\x6c\x81\x16\x37\xac\xa6\xb8\x80\x24\x82\x1f\x8e\x50\x1e\xc6\x98\x15\x44\x3d\xa2\x23\x62\xd5\xc4\xb8\xf5\x10\x8d\x13\x45\x21\xc4\x10\x6d\x57\x8b\xe9\x65\xf5\xe7\xb4\xb8\x85\xd0\xee\x4c\x36\x15\xc2\x0f\xdd\x5c\x0f\xab\xc6\x40\x3d\xf6\xdc\x1a\x70\x8b\x3b\xdf\x45\x03\x68\x8b\xec\x66\x51\xc2\xb3\x9e\x48\xb6\x46\xbb\x33\xa1\x86\xce\xa1\x9d\xfe\x36\xf3\x67\x88\xa9\xae\x7b\x1e\x98\x53\x35\x76\x34\x78\xde\xd5\x72\xee\x21\x9a\x59\x74\x8c\x6b\x53\x83\x60\x76\xcf\x99\x38\x62\x59\x11\xad\x00\xae\x5f\xb6\x53\xa1\xdd\xaa\xef\xd8\xd1\x54\x19\x67\x05\x55\x24\x38\x24\x84\x5f\x80\x70\x5c\xfe\x97\x70\xde\x10\xa1\x42\x43\x07\x68\xce\xcd\xd4\x90\x7c\x7c\xd5\x59\xb4\x95\x13\x3c\x7d\x12\x71\x10\xea\x2b\x36\x31\xcf\x8d\xf7\xec\x0e\x39\x58\xbf\x8e\x3f\xd4\x7a\x9f\x59\xf8\x62\xa1\xb3\x5c\xb1\xb4\x89\x5c\x88\x68\x1b\xd5\x78\x41\x4a\x30\x8c\xe3\xc5\x94\xf7\x0b\xa9\x76\xf1\x47\x34\xdf\x94\x3f\xd7\xea\x9d\x59\x5b\xee\xfa\x7f\x26\x62\xad\x85\xc2\xe0\x1f\x3d\x2a\xb6\x23\xcd\xfc\x1b\xf8\xec\x1f\x32\x82\xd4\x8f\xbd\xa0\x64\xbf\x2c\xbe\x0b\x6e\xac\xe4\x35\x37\xa2\xca\x7e\xac\x02\x55\x19\x87\xfb\x06\x49\x27\x5b\x12\xf1\x3b\xb6\x02\x95\x01\xc7\xae\x44\x79\x00\x28\x9d\x7e\x6a\xc7\xeb\x3c\xd1\x59\x91\x76\x6f\xfe\xbb\x72\xaf\xed\xd3\x1b\x18\x0c\x61\xb1\xad\xe7\x02\xaa\xcf\xbb\xe0\x23\xbb\x1c\x05\x73\x5f\xaa\xfe\x9e\xf0\x56\x2f\x82\x45\x08\x95\x6f\xd1\x04\xaa\xfd\x2e\x88\x81\xc0\xc9\xbb\x14\xa1\x17\x50\x39\x1c\x4b\x8b\xab\x94\xef\xfb\xa1\x30\xdd\x8d\x77\xb0\x0a\x6b\x4e\x29\x5c\xd6\x2b\x43\x7a\x8c\xec\xc3\x2d\xcf\x57\x18\xc8\x01\x4d\x7d\xcc\x96\xe7\xc6\x81\x42\x18\x0f\xa6\x24\xe6\x89\x9e\x83\xcc\x17\xa8\x70\xb7\xad\x73\x5a\x9c\xbd\x86\xae\x3e\x61\x7d\xd6\xb6\xd9\x0f\x50\xf3\x97\x8a\x0c\xa8\x1f\xea\x39\xbf\xbe\x08\xd9\x61\xc1\xa6\x7a\x77\x8d\xd9\xba\xa8\x05\x9b\xea\xd4\xd9\xc6\xaa\x03\x5c\xf2\x72\x8f\x1a\x89\xcb\xb0\x6e\xce\x1c\x6f\xc4\x22\x4a\x49\x75\x24\x12\xac\xbc\xaf\xd5\x51\x9c\xaa\x31\x7e\x52\x52\x1d\x77\x12\x11\x0e\x91\x48\x92\x59\x6e\xff\x61\x21\x1d\x1b\x87\x18\x38\xf2\xeb\x47\xfe\xc6\x05\xe1\x91\x11\xd4\xad\xa9\x5c\xa6\xc6\x9f\xce\xc0\x5d\xc8\x8a\xf9\x89\xa7\x48\xd0\x29\x38\x18\xc0\xa0\xb1\xe1\x29\xe8\x11\xae\x64\x12\x9f\x34\x1c\x24\x18\x87\xf6\x54\xef\x96\x59\x8b\x27\x64\xbe\xe0\x5e\x88\x35\xba\xee\xdd\x5d\x3b\xc6\xbd\x87\x28\x92\xad\x0f\x45\x73\xdd\x65\x2f\x4a\x97\xa5\x5f\x1b\xa0\xd4\x03\x01\xd4\x22\x11\xf4\x8f\x6f\x27\x4a\x63\xd6\xc7\x4e\x3c\x94\xaf\x56\x76\xd7\x98\xcb\x21\x59\x8e\x76\x14\xe7\xf7\x05\x9a\xc2\x04\x66\x1b\xfe\xa2\x88\x9a\xa0\x9b\xea\x70\x2f\xfb\xd0\xac\xb3\x6a\xec\x43\x0d\x9a\xe5\x2d\x85\x22\x92\x9f\x5c\x3a\x3d\x9d\x51\xa0\xa2\xc7\x93\x24\x64\x8d\xf6\xa1\xa0\xa9\xf2\x01\x03\x73\xfc\x27\x89\xf9\xdf\xa8\x6a\xb8\x89\x88\x02\xd4\xff\x73\x31\xb2\x75\xf4\xc4\x40\x45\x69\xa4\x13\xbc\x98\xfb\xeb\xf3\xae\xdd\x7c\x2c\x7f\xf2\x07\x2b\x21\xdc\x91\xb0\xc5\xc7\xce\x9e\xc4\x76\x70\x5f\x9b\x53\x26\x5e\x66\x0d\x54\xc9\x5d\x2d\x77\xc4\xd3\xd4\x02\x76\xe9\xa9\x8c\xa7\xb9\x5c\xf0\xa8\x14\x41\x6f\xe9\xe7\x4a\x44\x4f\x1b\x2d\xd5\x60\x5b\x14\xf4\xc7\x9c\x48\xb9\xc8\x72\xe6\x5b\x73\x70\xe4\x5e\x74\x86\xa5\x83\x19\x5f\x24\x03\x54\x82\x45\x2c\x7a\x7e\x1d\xce\x9c\x8e\x5c\xfb\xb2\x3b\xf6\x55\x46\xf8\xb3\xe1\x15\xc2\x32\xdd\xf1\x4a\xb4\x1a\xf5\xa3\xb9\x14\xd0\xe6\xb5\x42\x8e\x9e\x83\xcd\x59\x89\x95\xaa\x71\x48\x41\x8d\x05\x64\xc4\x0f\x19\xc3\x3d\x0b\xe6\x86\x11\x19\x63\x37\x07\x52\xca\xd7\xf4\x9e\x48\x33\x1d\x6e\x3a\x31\x51\xfb\xe4\x55\x36\x0a\x18\x42\x2c\x5b\x79\xb6\x3c\xdc\x15\x19\x04\x8b\x8d\x5f\x8b\x58\x16\x55\x15\x91\x52\x89\xd5\x6f\x57\xf0\xff\x7d\x57\x70\x40\x9d\xbc\xe6\xfd\xbb\xb9\x78\xef\xb7\x13\xf8\xc7\x3a\x81\x91\x03\x0b\xab\x12\x86\x0c\x2d\x75\xf5\xce\xff\xfc\xb0\xc1\x15\x2c\xe8\x49\x36\x60\x9c\xbf\xa3\x07\x11\x3c\x96\xb6\xc8\x40\xe3\xd1\xdb\xe8\x76\xe7\x5a\xbd\x8f\xe2\xef\x0b\x41\x61\x5a\x6d\xfb\x86\x01\xb7\x3c\x5c\x3a\xe6\x9a\xd6\x3b\x58\xdb\x5e\xfb\xfb\x43\xa5\x9c\xfa\xf8\x20\xc6\x32\xba\x24\xd4\xb5\xb5\x88\x4a\x60\x32\xb6\xc3\x32\x06\x9c\x8b\x3c\x7f\x93\xb9\x51\x2f\x5b\x40\x8b\x7e\xbc\x92\x59\xfe\xa9\x22\x70\xb3\x9f\x42\xce\xab\xe1\x26\x6c\x57\xb1\x9b\xc1\x2f\x3a\xd3\xfd\x77\xe5\x84\xbc\x71\x47\x70\xcd\x01\x29\x93\x95\x34\x30\xfd\x1e\x72\x5e\x7d\x71\xe3\xf5\x05\x5d\xed\x97\x94\x6f\x36\x22\xb5\x59\xe6\x1a\x10\x00\xf4\x01\xe0\x29\x20\xf0\xb1\x12\xa8\x32\x56\x39\x52\x8d\x29\xa9\x34\x0d\x5f\x83\xa1\x3b\x6d\x9e\xb9\xeb\x22\x49\x5a\x67\x6e\x37\xed\xf8\xf5\xe3\xd5\xd5\xec\xd3\xf8\xea\xf1\xb2\x93\xc6\x3b\xf8\x5a\xeb\x98\xb8\x9e\xd0\x98\x78\xa1\x10\xf3\x58\x61\x95\xce\xb4\x7f\x6b\xbc\xaf\x14\x49\x52\xa6\x78\x9f\xaa\x2f\xd4\x0e\x40\xf6\x50\xbe\xc6\x8c\x1b\xeb\x1c\xb8\xf2\xf3\xe1\x6b\x5f\x4c\xe3\x5f\xf0\xb7\x27\xcc\xbf\xc4\x7b\x10\x22\x21\x81\x83\xe6\x71\x25\x3c\xf0\x01\xdb\x01\x01\x62\x6d\xdb\xe1\xd8\x22\x16\xfb\x6d\x8f\x47\x05\x7c\x81\x22\xb6\xda\x13\x47\xd9\x1d\x38\x76\x5f\xca\xb1\x5b\x67\xcb\x63\xbc\x11\x40\xbb\x23\x94\x1e\x00\x41\x35\xcf\xce\x3f\x55\x78\x9d\x35\x7d\xca\x75\x7b\x9f\xd8\x84\xb0\x17\x09\x57\xcb\x82\x2f\x45\x36\x62\xf6\xe1\x53\xb5\x96\xcb\x15\x30\x33\x92\xf2\xbd\xbb\x00\x42\x11\x6f\x65\x09\x55\xb0\x84\x52\x4d\x15\xbd\x93\x5a\xfa\xe6\x11\x51\xf7\xe7\x7b\xf7\x3a\x04\x54\xc4\x86\x48\x3d\x41\x4d\x15\x4e\x2e\xd2\x3f\xdb\xa0\x16\xf8\xcb\x3c\xaf\x2e\x5d\x0e\xea\x5a\xa8\x30\x68\x6c\xfa\x12\xc2\x6b\x53\xe5\x8a\x80\x10\xf2\x18\xaa\xf7\x23\x16\x1a\xbb\xb4\xdb\x9e\xd8\xc9\xb0\x7b\x82\xfa\xd6\xbc\xea\x0f\x3e\x03\xcc\x86\x9b\x0d\x90\x4a\xab\x9b\xb1\x9e\x57\x13\x1e\x18\x8e\xb6\xca\x50\xa8\xfc\x6a\xee\x8d\x7d\x2f\xfc\x4e\x2b\x60\x41\x17\xf3\x64\x40\x97\xf0\xfb\x9d\x9d\x42\x93\xdc\xdd\xa9\x1e\x11\xed\xbb\xca\xd6\x32\xcb\xb4\xeb\xb1\x73\xad\x5b\xe6\xe5\x88\xb1\xe1\x52\xa7\xe8\x07\xbb\x06\xa3\x88\xf2\x7d\xd6\x4b\x8f\x72\x8d\xea\x10\x59\xeb\xd3\xd5\xa1\x44\x66\x7b\x75\xc7\xfb\x4f\xbd\x7b\xe4\x3c\x04\x3a\xec\x06\x59\x58\x3a\xe7\x4a\x06\xb6\xc5\x4c\x52\x68\xd0\x6a\x8e\x49\x34\x2f\x66\xf3\xa0\x20\x98\x59\xff\x23\xb7\x88\x46\x7e\xe6\x46\xd0\xc9\xa8\x48\x33\x63\x2e\xc9\xde\x91\xd5\xd6\x29\xe3\x53\x65\xd9\x7a\xad\x39\x1e\x5b\xc8\x45\xea\xfe\x8a\x25\x30\x1b\x64\xbb\x04\x8f\x35\x67\x5a\x09\x6b\x0d\xa7\xca\x0a\xd5\x8d\x18\x9f\x67\x56\xff\x8d\xab\xad\x13\x65\x93\x4e\x71\x83\x2b\x06\x58\x96\xdd\x36\xaf\xe2\x06\x94\xce\xf9\x7f\x32\xff\xf7\xf7\x7f\xfa\xff\x01\x00\x00\xff\xff\xc0\x37\xe5\x2a\xaf\x55\x04\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: 277354, mode: os.FileMode(420), modTime: time.Unix(1562572800, 0)} + info := bindataFileInfo{name: "admin.swagger.json", size: 284079, 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/ProjectAttributesOuterClass.java b/flyteidl/gen/pb-java/flyteidl/admin/ProjectAttributesOuterClass.java new file mode 100644 index 0000000000..b01c6ccfae --- /dev/null +++ b/flyteidl/gen/pb-java/flyteidl/admin/ProjectAttributesOuterClass.java @@ -0,0 +1,4545 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: flyteidl/admin/project_attributes.proto + +package flyteidl.admin; + +public final class ProjectAttributesOuterClass { + private ProjectAttributesOuterClass() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface ProjectAttributesOrBuilder extends + // @@protoc_insertion_point(interface_extends:flyteidl.admin.ProjectAttributes) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * Unique project id for which this set of attributes will be applied.
+     * 
+ * + * string project = 1; + */ + java.lang.String getProject(); + /** + *
+     * Unique project id for which this set of attributes will be applied.
+     * 
+ * + * string project = 1; + */ + com.google.protobuf.ByteString + getProjectBytes(); + + /** + * .flyteidl.admin.MatchingAttributes matching_attributes = 2; + */ + boolean hasMatchingAttributes(); + /** + * .flyteidl.admin.MatchingAttributes matching_attributes = 2; + */ + flyteidl.admin.MatchableResourceOuterClass.MatchingAttributes getMatchingAttributes(); + /** + * .flyteidl.admin.MatchingAttributes matching_attributes = 2; + */ + flyteidl.admin.MatchableResourceOuterClass.MatchingAttributesOrBuilder getMatchingAttributesOrBuilder(); + } + /** + *
+   * Defines a set of custom matching attributes at the project level.
+   * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
+   * 
+ * + * Protobuf type {@code flyteidl.admin.ProjectAttributes} + */ + public static final class ProjectAttributes extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:flyteidl.admin.ProjectAttributes) + ProjectAttributesOrBuilder { + private static final long serialVersionUID = 0L; + // Use ProjectAttributes.newBuilder() to construct. + private ProjectAttributes(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private ProjectAttributes() { + project_ = ""; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ProjectAttributes( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + + project_ = s; + break; + } + case 18: { + flyteidl.admin.MatchableResourceOuterClass.MatchingAttributes.Builder subBuilder = null; + if (matchingAttributes_ != null) { + subBuilder = matchingAttributes_.toBuilder(); + } + matchingAttributes_ = input.readMessage(flyteidl.admin.MatchableResourceOuterClass.MatchingAttributes.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(matchingAttributes_); + matchingAttributes_ = subBuilder.buildPartial(); + } + + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributes_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributes_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.class, flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.Builder.class); + } + + public static final int PROJECT_FIELD_NUMBER = 1; + private volatile java.lang.Object project_; + /** + *
+     * Unique project id for which this set of attributes will be applied.
+     * 
+ * + * string project = 1; + */ + public java.lang.String getProject() { + java.lang.Object ref = project_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + project_ = s; + return s; + } + } + /** + *
+     * Unique project id for which this set of attributes will be applied.
+     * 
+ * + * string project = 1; + */ + public com.google.protobuf.ByteString + getProjectBytes() { + java.lang.Object ref = project_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + project_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int MATCHING_ATTRIBUTES_FIELD_NUMBER = 2; + private flyteidl.admin.MatchableResourceOuterClass.MatchingAttributes matchingAttributes_; + /** + * .flyteidl.admin.MatchingAttributes matching_attributes = 2; + */ + public boolean hasMatchingAttributes() { + return matchingAttributes_ != null; + } + /** + * .flyteidl.admin.MatchingAttributes matching_attributes = 2; + */ + public flyteidl.admin.MatchableResourceOuterClass.MatchingAttributes getMatchingAttributes() { + return matchingAttributes_ == null ? flyteidl.admin.MatchableResourceOuterClass.MatchingAttributes.getDefaultInstance() : matchingAttributes_; + } + /** + * .flyteidl.admin.MatchingAttributes matching_attributes = 2; + */ + public flyteidl.admin.MatchableResourceOuterClass.MatchingAttributesOrBuilder getMatchingAttributesOrBuilder() { + return getMatchingAttributes(); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!getProjectBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, project_); + } + if (matchingAttributes_ != null) { + output.writeMessage(2, getMatchingAttributes()); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!getProjectBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, project_); + } + if (matchingAttributes_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getMatchingAttributes()); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes)) { + return super.equals(obj); + } + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes other = (flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes) obj; + + if (!getProject() + .equals(other.getProject())) return false; + if (hasMatchingAttributes() != other.hasMatchingAttributes()) return false; + if (hasMatchingAttributes()) { + if (!getMatchingAttributes() + .equals(other.getMatchingAttributes())) return false; + } + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + PROJECT_FIELD_NUMBER; + hash = (53 * hash) + getProject().hashCode(); + if (hasMatchingAttributes()) { + hash = (37 * hash) + MATCHING_ATTRIBUTES_FIELD_NUMBER; + hash = (53 * hash) + getMatchingAttributes().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Defines a set of custom matching attributes at the project level.
+     * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
+     * 
+ * + * Protobuf type {@code flyteidl.admin.ProjectAttributes} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:flyteidl.admin.ProjectAttributes) + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributes_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributes_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.class, flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.Builder.class); + } + + // Construct using flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + project_ = ""; + + if (matchingAttributesBuilder_ == null) { + matchingAttributes_ = null; + } else { + matchingAttributes_ = null; + matchingAttributesBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributes_descriptor; + } + + @java.lang.Override + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes getDefaultInstanceForType() { + return flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.getDefaultInstance(); + } + + @java.lang.Override + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes build() { + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes buildPartial() { + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes result = new flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes(this); + result.project_ = project_; + if (matchingAttributesBuilder_ == null) { + result.matchingAttributes_ = matchingAttributes_; + } else { + result.matchingAttributes_ = matchingAttributesBuilder_.build(); + } + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes) { + return mergeFrom((flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes other) { + if (other == flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.getDefaultInstance()) return this; + if (!other.getProject().isEmpty()) { + project_ = other.project_; + onChanged(); + } + if (other.hasMatchingAttributes()) { + mergeMatchingAttributes(other.getMatchingAttributes()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private java.lang.Object project_ = ""; + /** + *
+       * Unique project id for which this set of attributes will be applied.
+       * 
+ * + * string project = 1; + */ + public java.lang.String getProject() { + java.lang.Object ref = project_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + project_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Unique project id for which this set of attributes will be applied.
+       * 
+ * + * string project = 1; + */ + public com.google.protobuf.ByteString + getProjectBytes() { + java.lang.Object ref = project_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + project_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Unique project id for which this set of attributes will be applied.
+       * 
+ * + * string project = 1; + */ + public Builder setProject( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + project_ = value; + onChanged(); + return this; + } + /** + *
+       * Unique project id for which this set of attributes will be applied.
+       * 
+ * + * string project = 1; + */ + public Builder clearProject() { + + project_ = getDefaultInstance().getProject(); + onChanged(); + return this; + } + /** + *
+       * Unique project id for which this set of attributes will be applied.
+       * 
+ * + * string project = 1; + */ + public Builder setProjectBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + project_ = value; + onChanged(); + return this; + } + + private flyteidl.admin.MatchableResourceOuterClass.MatchingAttributes matchingAttributes_; + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.admin.MatchableResourceOuterClass.MatchingAttributes, flyteidl.admin.MatchableResourceOuterClass.MatchingAttributes.Builder, flyteidl.admin.MatchableResourceOuterClass.MatchingAttributesOrBuilder> matchingAttributesBuilder_; + /** + * .flyteidl.admin.MatchingAttributes matching_attributes = 2; + */ + public boolean hasMatchingAttributes() { + return matchingAttributesBuilder_ != null || matchingAttributes_ != null; + } + /** + * .flyteidl.admin.MatchingAttributes matching_attributes = 2; + */ + public flyteidl.admin.MatchableResourceOuterClass.MatchingAttributes getMatchingAttributes() { + if (matchingAttributesBuilder_ == null) { + return matchingAttributes_ == null ? flyteidl.admin.MatchableResourceOuterClass.MatchingAttributes.getDefaultInstance() : matchingAttributes_; + } else { + return matchingAttributesBuilder_.getMessage(); + } + } + /** + * .flyteidl.admin.MatchingAttributes matching_attributes = 2; + */ + public Builder setMatchingAttributes(flyteidl.admin.MatchableResourceOuterClass.MatchingAttributes value) { + if (matchingAttributesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + matchingAttributes_ = value; + onChanged(); + } else { + matchingAttributesBuilder_.setMessage(value); + } + + return this; + } + /** + * .flyteidl.admin.MatchingAttributes matching_attributes = 2; + */ + public Builder setMatchingAttributes( + flyteidl.admin.MatchableResourceOuterClass.MatchingAttributes.Builder builderForValue) { + if (matchingAttributesBuilder_ == null) { + matchingAttributes_ = builderForValue.build(); + onChanged(); + } else { + matchingAttributesBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .flyteidl.admin.MatchingAttributes matching_attributes = 2; + */ + public Builder mergeMatchingAttributes(flyteidl.admin.MatchableResourceOuterClass.MatchingAttributes value) { + if (matchingAttributesBuilder_ == null) { + if (matchingAttributes_ != null) { + matchingAttributes_ = + flyteidl.admin.MatchableResourceOuterClass.MatchingAttributes.newBuilder(matchingAttributes_).mergeFrom(value).buildPartial(); + } else { + matchingAttributes_ = value; + } + onChanged(); + } else { + matchingAttributesBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .flyteidl.admin.MatchingAttributes matching_attributes = 2; + */ + public Builder clearMatchingAttributes() { + if (matchingAttributesBuilder_ == null) { + matchingAttributes_ = null; + onChanged(); + } else { + matchingAttributes_ = null; + matchingAttributesBuilder_ = null; + } + + return this; + } + /** + * .flyteidl.admin.MatchingAttributes matching_attributes = 2; + */ + public flyteidl.admin.MatchableResourceOuterClass.MatchingAttributes.Builder getMatchingAttributesBuilder() { + + onChanged(); + return getMatchingAttributesFieldBuilder().getBuilder(); + } + /** + * .flyteidl.admin.MatchingAttributes matching_attributes = 2; + */ + public flyteidl.admin.MatchableResourceOuterClass.MatchingAttributesOrBuilder getMatchingAttributesOrBuilder() { + if (matchingAttributesBuilder_ != null) { + return matchingAttributesBuilder_.getMessageOrBuilder(); + } else { + return matchingAttributes_ == null ? + flyteidl.admin.MatchableResourceOuterClass.MatchingAttributes.getDefaultInstance() : matchingAttributes_; + } + } + /** + * .flyteidl.admin.MatchingAttributes matching_attributes = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.admin.MatchableResourceOuterClass.MatchingAttributes, flyteidl.admin.MatchableResourceOuterClass.MatchingAttributes.Builder, flyteidl.admin.MatchableResourceOuterClass.MatchingAttributesOrBuilder> + getMatchingAttributesFieldBuilder() { + if (matchingAttributesBuilder_ == null) { + matchingAttributesBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + flyteidl.admin.MatchableResourceOuterClass.MatchingAttributes, flyteidl.admin.MatchableResourceOuterClass.MatchingAttributes.Builder, flyteidl.admin.MatchableResourceOuterClass.MatchingAttributesOrBuilder>( + getMatchingAttributes(), + getParentForChildren(), + isClean()); + matchingAttributes_ = null; + } + return matchingAttributesBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:flyteidl.admin.ProjectAttributes) + } + + // @@protoc_insertion_point(class_scope:flyteidl.admin.ProjectAttributes) + private static final flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes(); + } + + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ProjectAttributes parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ProjectAttributes(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ProjectAttributesUpdateRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:flyteidl.admin.ProjectAttributesUpdateRequest) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * +required
+     * 
+ * + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + boolean hasAttributes(); + /** + *
+     * +required
+     * 
+ * + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes getAttributes(); + /** + *
+     * +required
+     * 
+ * + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesOrBuilder getAttributesOrBuilder(); + } + /** + *
+   * Sets custom attributes for a project
+   * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
+   * 
+ * + * Protobuf type {@code flyteidl.admin.ProjectAttributesUpdateRequest} + */ + public static final class ProjectAttributesUpdateRequest extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:flyteidl.admin.ProjectAttributesUpdateRequest) + ProjectAttributesUpdateRequestOrBuilder { + private static final long serialVersionUID = 0L; + // Use ProjectAttributesUpdateRequest.newBuilder() to construct. + private ProjectAttributesUpdateRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private ProjectAttributesUpdateRequest() { + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ProjectAttributesUpdateRequest( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.Builder subBuilder = null; + if (attributes_ != null) { + subBuilder = attributes_.toBuilder(); + } + attributes_ = input.readMessage(flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(attributes_); + attributes_ = subBuilder.buildPartial(); + } + + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesUpdateRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesUpdateRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest.class, flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest.Builder.class); + } + + public static final int ATTRIBUTES_FIELD_NUMBER = 1; + private flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes attributes_; + /** + *
+     * +required
+     * 
+ * + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + public boolean hasAttributes() { + return attributes_ != null; + } + /** + *
+     * +required
+     * 
+ * + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes getAttributes() { + return attributes_ == null ? flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.getDefaultInstance() : attributes_; + } + /** + *
+     * +required
+     * 
+ * + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesOrBuilder getAttributesOrBuilder() { + return getAttributes(); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (attributes_ != null) { + output.writeMessage(1, getAttributes()); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (attributes_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getAttributes()); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest)) { + return super.equals(obj); + } + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest other = (flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest) obj; + + if (hasAttributes() != other.hasAttributes()) return false; + if (hasAttributes()) { + if (!getAttributes() + .equals(other.getAttributes())) return false; + } + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasAttributes()) { + hash = (37 * hash) + ATTRIBUTES_FIELD_NUMBER; + hash = (53 * hash) + getAttributes().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Sets custom attributes for a project
+     * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
+     * 
+ * + * Protobuf type {@code flyteidl.admin.ProjectAttributesUpdateRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:flyteidl.admin.ProjectAttributesUpdateRequest) + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesUpdateRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesUpdateRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest.class, flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest.Builder.class); + } + + // Construct using flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + if (attributesBuilder_ == null) { + attributes_ = null; + } else { + attributes_ = null; + attributesBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesUpdateRequest_descriptor; + } + + @java.lang.Override + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest getDefaultInstanceForType() { + return flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest.getDefaultInstance(); + } + + @java.lang.Override + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest build() { + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest buildPartial() { + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest result = new flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest(this); + if (attributesBuilder_ == null) { + result.attributes_ = attributes_; + } else { + result.attributes_ = attributesBuilder_.build(); + } + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest) { + return mergeFrom((flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest other) { + if (other == flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest.getDefaultInstance()) return this; + if (other.hasAttributes()) { + mergeAttributes(other.getAttributes()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes attributes_; + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes, flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.Builder, flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesOrBuilder> attributesBuilder_; + /** + *
+       * +required
+       * 
+ * + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + public boolean hasAttributes() { + return attributesBuilder_ != null || attributes_ != null; + } + /** + *
+       * +required
+       * 
+ * + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes getAttributes() { + if (attributesBuilder_ == null) { + return attributes_ == null ? flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.getDefaultInstance() : attributes_; + } else { + return attributesBuilder_.getMessage(); + } + } + /** + *
+       * +required
+       * 
+ * + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + public Builder setAttributes(flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes value) { + if (attributesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + attributes_ = value; + onChanged(); + } else { + attributesBuilder_.setMessage(value); + } + + return this; + } + /** + *
+       * +required
+       * 
+ * + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + public Builder setAttributes( + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.Builder builderForValue) { + if (attributesBuilder_ == null) { + attributes_ = builderForValue.build(); + onChanged(); + } else { + attributesBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + *
+       * +required
+       * 
+ * + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + public Builder mergeAttributes(flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes value) { + if (attributesBuilder_ == null) { + if (attributes_ != null) { + attributes_ = + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.newBuilder(attributes_).mergeFrom(value).buildPartial(); + } else { + attributes_ = value; + } + onChanged(); + } else { + attributesBuilder_.mergeFrom(value); + } + + return this; + } + /** + *
+       * +required
+       * 
+ * + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + public Builder clearAttributes() { + if (attributesBuilder_ == null) { + attributes_ = null; + onChanged(); + } else { + attributes_ = null; + attributesBuilder_ = null; + } + + return this; + } + /** + *
+       * +required
+       * 
+ * + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.Builder getAttributesBuilder() { + + onChanged(); + return getAttributesFieldBuilder().getBuilder(); + } + /** + *
+       * +required
+       * 
+ * + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesOrBuilder getAttributesOrBuilder() { + if (attributesBuilder_ != null) { + return attributesBuilder_.getMessageOrBuilder(); + } else { + return attributes_ == null ? + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.getDefaultInstance() : attributes_; + } + } + /** + *
+       * +required
+       * 
+ * + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes, flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.Builder, flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesOrBuilder> + getAttributesFieldBuilder() { + if (attributesBuilder_ == null) { + attributesBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes, flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.Builder, flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesOrBuilder>( + getAttributes(), + getParentForChildren(), + isClean()); + attributes_ = null; + } + return attributesBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:flyteidl.admin.ProjectAttributesUpdateRequest) + } + + // @@protoc_insertion_point(class_scope:flyteidl.admin.ProjectAttributesUpdateRequest) + private static final flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest(); + } + + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ProjectAttributesUpdateRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ProjectAttributesUpdateRequest(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ProjectAttributesUpdateResponseOrBuilder extends + // @@protoc_insertion_point(interface_extends:flyteidl.admin.ProjectAttributesUpdateResponse) + com.google.protobuf.MessageOrBuilder { + } + /** + *
+   * Purposefully empty, may be populated in the future.
+   * 
+ * + * Protobuf type {@code flyteidl.admin.ProjectAttributesUpdateResponse} + */ + public static final class ProjectAttributesUpdateResponse extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:flyteidl.admin.ProjectAttributesUpdateResponse) + ProjectAttributesUpdateResponseOrBuilder { + private static final long serialVersionUID = 0L; + // Use ProjectAttributesUpdateResponse.newBuilder() to construct. + private ProjectAttributesUpdateResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private ProjectAttributesUpdateResponse() { + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ProjectAttributesUpdateResponse( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesUpdateResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesUpdateResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse.class, flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse)) { + return super.equals(obj); + } + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse other = (flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse) obj; + + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Purposefully empty, may be populated in the future.
+     * 
+ * + * Protobuf type {@code flyteidl.admin.ProjectAttributesUpdateResponse} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:flyteidl.admin.ProjectAttributesUpdateResponse) + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesUpdateResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesUpdateResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse.class, flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse.Builder.class); + } + + // Construct using flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesUpdateResponse_descriptor; + } + + @java.lang.Override + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse getDefaultInstanceForType() { + return flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse.getDefaultInstance(); + } + + @java.lang.Override + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse build() { + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse buildPartial() { + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse result = new flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse) { + return mergeFrom((flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse other) { + if (other == flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse.getDefaultInstance()) return this; + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:flyteidl.admin.ProjectAttributesUpdateResponse) + } + + // @@protoc_insertion_point(class_scope:flyteidl.admin.ProjectAttributesUpdateResponse) + private static final flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse(); + } + + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ProjectAttributesUpdateResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ProjectAttributesUpdateResponse(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesUpdateResponse getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ProjectAttributesGetRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:flyteidl.admin.ProjectAttributesGetRequest) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * Unique project id which this set of attributes references.
+     * +required
+     * 
+ * + * string project = 1; + */ + java.lang.String getProject(); + /** + *
+     * Unique project id which this set of attributes references.
+     * +required
+     * 
+ * + * string project = 1; + */ + com.google.protobuf.ByteString + getProjectBytes(); + + /** + *
+     * Which type of matchable attributes to return.
+     * +required
+     * 
+ * + * .flyteidl.admin.MatchableResource resource_type = 2; + */ + int getResourceTypeValue(); + /** + *
+     * Which type of matchable attributes to return.
+     * +required
+     * 
+ * + * .flyteidl.admin.MatchableResource resource_type = 2; + */ + flyteidl.admin.MatchableResourceOuterClass.MatchableResource getResourceType(); + } + /** + *
+   * Request to get an individual project level attribute override.
+   * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
+   * 
+ * + * Protobuf type {@code flyteidl.admin.ProjectAttributesGetRequest} + */ + public static final class ProjectAttributesGetRequest extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:flyteidl.admin.ProjectAttributesGetRequest) + ProjectAttributesGetRequestOrBuilder { + private static final long serialVersionUID = 0L; + // Use ProjectAttributesGetRequest.newBuilder() to construct. + private ProjectAttributesGetRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private ProjectAttributesGetRequest() { + project_ = ""; + resourceType_ = 0; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ProjectAttributesGetRequest( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + + project_ = s; + break; + } + case 16: { + int rawValue = input.readEnum(); + + resourceType_ = rawValue; + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesGetRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesGetRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest.class, flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest.Builder.class); + } + + public static final int PROJECT_FIELD_NUMBER = 1; + private volatile java.lang.Object project_; + /** + *
+     * Unique project id which this set of attributes references.
+     * +required
+     * 
+ * + * string project = 1; + */ + public java.lang.String getProject() { + java.lang.Object ref = project_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + project_ = s; + return s; + } + } + /** + *
+     * Unique project id which this set of attributes references.
+     * +required
+     * 
+ * + * string project = 1; + */ + public com.google.protobuf.ByteString + getProjectBytes() { + java.lang.Object ref = project_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + project_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int RESOURCE_TYPE_FIELD_NUMBER = 2; + private int resourceType_; + /** + *
+     * Which type of matchable attributes to return.
+     * +required
+     * 
+ * + * .flyteidl.admin.MatchableResource resource_type = 2; + */ + public int getResourceTypeValue() { + return resourceType_; + } + /** + *
+     * Which type of matchable attributes to return.
+     * +required
+     * 
+ * + * .flyteidl.admin.MatchableResource resource_type = 2; + */ + public flyteidl.admin.MatchableResourceOuterClass.MatchableResource getResourceType() { + @SuppressWarnings("deprecation") + flyteidl.admin.MatchableResourceOuterClass.MatchableResource result = flyteidl.admin.MatchableResourceOuterClass.MatchableResource.valueOf(resourceType_); + return result == null ? flyteidl.admin.MatchableResourceOuterClass.MatchableResource.UNRECOGNIZED : result; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!getProjectBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, project_); + } + if (resourceType_ != flyteidl.admin.MatchableResourceOuterClass.MatchableResource.TASK_RESOURCE.getNumber()) { + output.writeEnum(2, resourceType_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!getProjectBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, project_); + } + if (resourceType_ != flyteidl.admin.MatchableResourceOuterClass.MatchableResource.TASK_RESOURCE.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(2, resourceType_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest)) { + return super.equals(obj); + } + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest other = (flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest) obj; + + if (!getProject() + .equals(other.getProject())) return false; + if (resourceType_ != other.resourceType_) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + PROJECT_FIELD_NUMBER; + hash = (53 * hash) + getProject().hashCode(); + hash = (37 * hash) + RESOURCE_TYPE_FIELD_NUMBER; + hash = (53 * hash) + resourceType_; + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Request to get an individual project level attribute override.
+     * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
+     * 
+ * + * Protobuf type {@code flyteidl.admin.ProjectAttributesGetRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:flyteidl.admin.ProjectAttributesGetRequest) + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesGetRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesGetRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest.class, flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest.Builder.class); + } + + // Construct using flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + project_ = ""; + + resourceType_ = 0; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesGetRequest_descriptor; + } + + @java.lang.Override + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest getDefaultInstanceForType() { + return flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest.getDefaultInstance(); + } + + @java.lang.Override + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest build() { + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest buildPartial() { + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest result = new flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest(this); + result.project_ = project_; + result.resourceType_ = resourceType_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest) { + return mergeFrom((flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest other) { + if (other == flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest.getDefaultInstance()) return this; + if (!other.getProject().isEmpty()) { + project_ = other.project_; + onChanged(); + } + if (other.resourceType_ != 0) { + setResourceTypeValue(other.getResourceTypeValue()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private java.lang.Object project_ = ""; + /** + *
+       * Unique project id which this set of attributes references.
+       * +required
+       * 
+ * + * string project = 1; + */ + public java.lang.String getProject() { + java.lang.Object ref = project_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + project_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Unique project id which this set of attributes references.
+       * +required
+       * 
+ * + * string project = 1; + */ + public com.google.protobuf.ByteString + getProjectBytes() { + java.lang.Object ref = project_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + project_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Unique project id which this set of attributes references.
+       * +required
+       * 
+ * + * string project = 1; + */ + public Builder setProject( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + project_ = value; + onChanged(); + return this; + } + /** + *
+       * Unique project id which this set of attributes references.
+       * +required
+       * 
+ * + * string project = 1; + */ + public Builder clearProject() { + + project_ = getDefaultInstance().getProject(); + onChanged(); + return this; + } + /** + *
+       * Unique project id which this set of attributes references.
+       * +required
+       * 
+ * + * string project = 1; + */ + public Builder setProjectBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + project_ = value; + onChanged(); + return this; + } + + private int resourceType_ = 0; + /** + *
+       * Which type of matchable attributes to return.
+       * +required
+       * 
+ * + * .flyteidl.admin.MatchableResource resource_type = 2; + */ + public int getResourceTypeValue() { + return resourceType_; + } + /** + *
+       * Which type of matchable attributes to return.
+       * +required
+       * 
+ * + * .flyteidl.admin.MatchableResource resource_type = 2; + */ + public Builder setResourceTypeValue(int value) { + resourceType_ = value; + onChanged(); + return this; + } + /** + *
+       * Which type of matchable attributes to return.
+       * +required
+       * 
+ * + * .flyteidl.admin.MatchableResource resource_type = 2; + */ + public flyteidl.admin.MatchableResourceOuterClass.MatchableResource getResourceType() { + @SuppressWarnings("deprecation") + flyteidl.admin.MatchableResourceOuterClass.MatchableResource result = flyteidl.admin.MatchableResourceOuterClass.MatchableResource.valueOf(resourceType_); + return result == null ? flyteidl.admin.MatchableResourceOuterClass.MatchableResource.UNRECOGNIZED : result; + } + /** + *
+       * Which type of matchable attributes to return.
+       * +required
+       * 
+ * + * .flyteidl.admin.MatchableResource resource_type = 2; + */ + public Builder setResourceType(flyteidl.admin.MatchableResourceOuterClass.MatchableResource value) { + if (value == null) { + throw new NullPointerException(); + } + + resourceType_ = value.getNumber(); + onChanged(); + return this; + } + /** + *
+       * Which type of matchable attributes to return.
+       * +required
+       * 
+ * + * .flyteidl.admin.MatchableResource resource_type = 2; + */ + public Builder clearResourceType() { + + resourceType_ = 0; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:flyteidl.admin.ProjectAttributesGetRequest) + } + + // @@protoc_insertion_point(class_scope:flyteidl.admin.ProjectAttributesGetRequest) + private static final flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest(); + } + + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ProjectAttributesGetRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ProjectAttributesGetRequest(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ProjectAttributesGetResponseOrBuilder extends + // @@protoc_insertion_point(interface_extends:flyteidl.admin.ProjectAttributesGetResponse) + com.google.protobuf.MessageOrBuilder { + + /** + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + boolean hasAttributes(); + /** + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes getAttributes(); + /** + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesOrBuilder getAttributesOrBuilder(); + } + /** + *
+   * Response to get an individual project level attribute override.
+   * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
+   * 
+ * + * Protobuf type {@code flyteidl.admin.ProjectAttributesGetResponse} + */ + public static final class ProjectAttributesGetResponse extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:flyteidl.admin.ProjectAttributesGetResponse) + ProjectAttributesGetResponseOrBuilder { + private static final long serialVersionUID = 0L; + // Use ProjectAttributesGetResponse.newBuilder() to construct. + private ProjectAttributesGetResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private ProjectAttributesGetResponse() { + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ProjectAttributesGetResponse( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.Builder subBuilder = null; + if (attributes_ != null) { + subBuilder = attributes_.toBuilder(); + } + attributes_ = input.readMessage(flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(attributes_); + attributes_ = subBuilder.buildPartial(); + } + + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesGetResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesGetResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse.class, flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse.Builder.class); + } + + public static final int ATTRIBUTES_FIELD_NUMBER = 1; + private flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes attributes_; + /** + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + public boolean hasAttributes() { + return attributes_ != null; + } + /** + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes getAttributes() { + return attributes_ == null ? flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.getDefaultInstance() : attributes_; + } + /** + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesOrBuilder getAttributesOrBuilder() { + return getAttributes(); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (attributes_ != null) { + output.writeMessage(1, getAttributes()); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (attributes_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getAttributes()); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse)) { + return super.equals(obj); + } + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse other = (flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse) obj; + + if (hasAttributes() != other.hasAttributes()) return false; + if (hasAttributes()) { + if (!getAttributes() + .equals(other.getAttributes())) return false; + } + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasAttributes()) { + hash = (37 * hash) + ATTRIBUTES_FIELD_NUMBER; + hash = (53 * hash) + getAttributes().hashCode(); + } + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Response to get an individual project level attribute override.
+     * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
+     * 
+ * + * Protobuf type {@code flyteidl.admin.ProjectAttributesGetResponse} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:flyteidl.admin.ProjectAttributesGetResponse) + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesGetResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesGetResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse.class, flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse.Builder.class); + } + + // Construct using flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + if (attributesBuilder_ == null) { + attributes_ = null; + } else { + attributes_ = null; + attributesBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesGetResponse_descriptor; + } + + @java.lang.Override + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse getDefaultInstanceForType() { + return flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse.getDefaultInstance(); + } + + @java.lang.Override + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse build() { + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse buildPartial() { + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse result = new flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse(this); + if (attributesBuilder_ == null) { + result.attributes_ = attributes_; + } else { + result.attributes_ = attributesBuilder_.build(); + } + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse) { + return mergeFrom((flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse other) { + if (other == flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse.getDefaultInstance()) return this; + if (other.hasAttributes()) { + mergeAttributes(other.getAttributes()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes attributes_; + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes, flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.Builder, flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesOrBuilder> attributesBuilder_; + /** + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + public boolean hasAttributes() { + return attributesBuilder_ != null || attributes_ != null; + } + /** + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes getAttributes() { + if (attributesBuilder_ == null) { + return attributes_ == null ? flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.getDefaultInstance() : attributes_; + } else { + return attributesBuilder_.getMessage(); + } + } + /** + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + public Builder setAttributes(flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes value) { + if (attributesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + attributes_ = value; + onChanged(); + } else { + attributesBuilder_.setMessage(value); + } + + return this; + } + /** + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + public Builder setAttributes( + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.Builder builderForValue) { + if (attributesBuilder_ == null) { + attributes_ = builderForValue.build(); + onChanged(); + } else { + attributesBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + public Builder mergeAttributes(flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes value) { + if (attributesBuilder_ == null) { + if (attributes_ != null) { + attributes_ = + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.newBuilder(attributes_).mergeFrom(value).buildPartial(); + } else { + attributes_ = value; + } + onChanged(); + } else { + attributesBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + public Builder clearAttributes() { + if (attributesBuilder_ == null) { + attributes_ = null; + onChanged(); + } else { + attributes_ = null; + attributesBuilder_ = null; + } + + return this; + } + /** + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.Builder getAttributesBuilder() { + + onChanged(); + return getAttributesFieldBuilder().getBuilder(); + } + /** + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesOrBuilder getAttributesOrBuilder() { + if (attributesBuilder_ != null) { + return attributesBuilder_.getMessageOrBuilder(); + } else { + return attributes_ == null ? + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.getDefaultInstance() : attributes_; + } + } + /** + * .flyteidl.admin.ProjectAttributes attributes = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes, flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.Builder, flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesOrBuilder> + getAttributesFieldBuilder() { + if (attributesBuilder_ == null) { + attributesBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes, flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributes.Builder, flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesOrBuilder>( + getAttributes(), + getParentForChildren(), + isClean()); + attributes_ = null; + } + return attributesBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:flyteidl.admin.ProjectAttributesGetResponse) + } + + // @@protoc_insertion_point(class_scope:flyteidl.admin.ProjectAttributesGetResponse) + private static final flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse(); + } + + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ProjectAttributesGetResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ProjectAttributesGetResponse(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesGetResponse getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ProjectAttributesDeleteRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:flyteidl.admin.ProjectAttributesDeleteRequest) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * Unique project id which this set of attributes references.
+     * +required
+     * 
+ * + * string project = 1; + */ + java.lang.String getProject(); + /** + *
+     * Unique project id which this set of attributes references.
+     * +required
+     * 
+ * + * string project = 1; + */ + com.google.protobuf.ByteString + getProjectBytes(); + + /** + *
+     * Which type of matchable attributes to delete.
+     * +required
+     * 
+ * + * .flyteidl.admin.MatchableResource resource_type = 2; + */ + int getResourceTypeValue(); + /** + *
+     * Which type of matchable attributes to delete.
+     * +required
+     * 
+ * + * .flyteidl.admin.MatchableResource resource_type = 2; + */ + flyteidl.admin.MatchableResourceOuterClass.MatchableResource getResourceType(); + } + /** + *
+   * Request to delete a set matchable project level attribute override.
+   * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
+   * 
+ * + * Protobuf type {@code flyteidl.admin.ProjectAttributesDeleteRequest} + */ + public static final class ProjectAttributesDeleteRequest extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:flyteidl.admin.ProjectAttributesDeleteRequest) + ProjectAttributesDeleteRequestOrBuilder { + private static final long serialVersionUID = 0L; + // Use ProjectAttributesDeleteRequest.newBuilder() to construct. + private ProjectAttributesDeleteRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private ProjectAttributesDeleteRequest() { + project_ = ""; + resourceType_ = 0; + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ProjectAttributesDeleteRequest( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + + project_ = s; + break; + } + case 16: { + int rawValue = input.readEnum(); + + resourceType_ = rawValue; + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesDeleteRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesDeleteRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest.class, flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest.Builder.class); + } + + public static final int PROJECT_FIELD_NUMBER = 1; + private volatile java.lang.Object project_; + /** + *
+     * Unique project id which this set of attributes references.
+     * +required
+     * 
+ * + * string project = 1; + */ + public java.lang.String getProject() { + java.lang.Object ref = project_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + project_ = s; + return s; + } + } + /** + *
+     * Unique project id which this set of attributes references.
+     * +required
+     * 
+ * + * string project = 1; + */ + public com.google.protobuf.ByteString + getProjectBytes() { + java.lang.Object ref = project_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + project_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int RESOURCE_TYPE_FIELD_NUMBER = 2; + private int resourceType_; + /** + *
+     * Which type of matchable attributes to delete.
+     * +required
+     * 
+ * + * .flyteidl.admin.MatchableResource resource_type = 2; + */ + public int getResourceTypeValue() { + return resourceType_; + } + /** + *
+     * Which type of matchable attributes to delete.
+     * +required
+     * 
+ * + * .flyteidl.admin.MatchableResource resource_type = 2; + */ + public flyteidl.admin.MatchableResourceOuterClass.MatchableResource getResourceType() { + @SuppressWarnings("deprecation") + flyteidl.admin.MatchableResourceOuterClass.MatchableResource result = flyteidl.admin.MatchableResourceOuterClass.MatchableResource.valueOf(resourceType_); + return result == null ? flyteidl.admin.MatchableResourceOuterClass.MatchableResource.UNRECOGNIZED : result; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!getProjectBytes().isEmpty()) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, project_); + } + if (resourceType_ != flyteidl.admin.MatchableResourceOuterClass.MatchableResource.TASK_RESOURCE.getNumber()) { + output.writeEnum(2, resourceType_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!getProjectBytes().isEmpty()) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, project_); + } + if (resourceType_ != flyteidl.admin.MatchableResourceOuterClass.MatchableResource.TASK_RESOURCE.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(2, resourceType_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest)) { + return super.equals(obj); + } + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest other = (flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest) obj; + + if (!getProject() + .equals(other.getProject())) return false; + if (resourceType_ != other.resourceType_) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + PROJECT_FIELD_NUMBER; + hash = (53 * hash) + getProject().hashCode(); + hash = (37 * hash) + RESOURCE_TYPE_FIELD_NUMBER; + hash = (53 * hash) + resourceType_; + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Request to delete a set matchable project level attribute override.
+     * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
+     * 
+ * + * Protobuf type {@code flyteidl.admin.ProjectAttributesDeleteRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:flyteidl.admin.ProjectAttributesDeleteRequest) + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesDeleteRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesDeleteRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest.class, flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest.Builder.class); + } + + // Construct using flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + project_ = ""; + + resourceType_ = 0; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesDeleteRequest_descriptor; + } + + @java.lang.Override + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest getDefaultInstanceForType() { + return flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest.getDefaultInstance(); + } + + @java.lang.Override + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest build() { + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest buildPartial() { + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest result = new flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest(this); + result.project_ = project_; + result.resourceType_ = resourceType_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest) { + return mergeFrom((flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest other) { + if (other == flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest.getDefaultInstance()) return this; + if (!other.getProject().isEmpty()) { + project_ = other.project_; + onChanged(); + } + if (other.resourceType_ != 0) { + setResourceTypeValue(other.getResourceTypeValue()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private java.lang.Object project_ = ""; + /** + *
+       * Unique project id which this set of attributes references.
+       * +required
+       * 
+ * + * string project = 1; + */ + public java.lang.String getProject() { + java.lang.Object ref = project_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + project_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Unique project id which this set of attributes references.
+       * +required
+       * 
+ * + * string project = 1; + */ + public com.google.protobuf.ByteString + getProjectBytes() { + java.lang.Object ref = project_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + project_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Unique project id which this set of attributes references.
+       * +required
+       * 
+ * + * string project = 1; + */ + public Builder setProject( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + project_ = value; + onChanged(); + return this; + } + /** + *
+       * Unique project id which this set of attributes references.
+       * +required
+       * 
+ * + * string project = 1; + */ + public Builder clearProject() { + + project_ = getDefaultInstance().getProject(); + onChanged(); + return this; + } + /** + *
+       * Unique project id which this set of attributes references.
+       * +required
+       * 
+ * + * string project = 1; + */ + public Builder setProjectBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + project_ = value; + onChanged(); + return this; + } + + private int resourceType_ = 0; + /** + *
+       * Which type of matchable attributes to delete.
+       * +required
+       * 
+ * + * .flyteidl.admin.MatchableResource resource_type = 2; + */ + public int getResourceTypeValue() { + return resourceType_; + } + /** + *
+       * Which type of matchable attributes to delete.
+       * +required
+       * 
+ * + * .flyteidl.admin.MatchableResource resource_type = 2; + */ + public Builder setResourceTypeValue(int value) { + resourceType_ = value; + onChanged(); + return this; + } + /** + *
+       * Which type of matchable attributes to delete.
+       * +required
+       * 
+ * + * .flyteidl.admin.MatchableResource resource_type = 2; + */ + public flyteidl.admin.MatchableResourceOuterClass.MatchableResource getResourceType() { + @SuppressWarnings("deprecation") + flyteidl.admin.MatchableResourceOuterClass.MatchableResource result = flyteidl.admin.MatchableResourceOuterClass.MatchableResource.valueOf(resourceType_); + return result == null ? flyteidl.admin.MatchableResourceOuterClass.MatchableResource.UNRECOGNIZED : result; + } + /** + *
+       * Which type of matchable attributes to delete.
+       * +required
+       * 
+ * + * .flyteidl.admin.MatchableResource resource_type = 2; + */ + public Builder setResourceType(flyteidl.admin.MatchableResourceOuterClass.MatchableResource value) { + if (value == null) { + throw new NullPointerException(); + } + + resourceType_ = value.getNumber(); + onChanged(); + return this; + } + /** + *
+       * Which type of matchable attributes to delete.
+       * +required
+       * 
+ * + * .flyteidl.admin.MatchableResource resource_type = 2; + */ + public Builder clearResourceType() { + + resourceType_ = 0; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:flyteidl.admin.ProjectAttributesDeleteRequest) + } + + // @@protoc_insertion_point(class_scope:flyteidl.admin.ProjectAttributesDeleteRequest) + private static final flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest(); + } + + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ProjectAttributesDeleteRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ProjectAttributesDeleteRequest(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ProjectAttributesDeleteResponseOrBuilder extends + // @@protoc_insertion_point(interface_extends:flyteidl.admin.ProjectAttributesDeleteResponse) + com.google.protobuf.MessageOrBuilder { + } + /** + *
+   * Purposefully empty, may be populated in the future.
+   * 
+ * + * Protobuf type {@code flyteidl.admin.ProjectAttributesDeleteResponse} + */ + public static final class ProjectAttributesDeleteResponse extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:flyteidl.admin.ProjectAttributesDeleteResponse) + ProjectAttributesDeleteResponseOrBuilder { + private static final long serialVersionUID = 0L; + // Use ProjectAttributesDeleteResponse.newBuilder() to construct. + private ProjectAttributesDeleteResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private ProjectAttributesDeleteResponse() { + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ProjectAttributesDeleteResponse( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesDeleteResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesDeleteResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse.class, flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse)) { + return super.equals(obj); + } + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse other = (flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse) obj; + + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Purposefully empty, may be populated in the future.
+     * 
+ * + * Protobuf type {@code flyteidl.admin.ProjectAttributesDeleteResponse} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:flyteidl.admin.ProjectAttributesDeleteResponse) + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesDeleteResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesDeleteResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse.class, flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse.Builder.class); + } + + // Construct using flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return flyteidl.admin.ProjectAttributesOuterClass.internal_static_flyteidl_admin_ProjectAttributesDeleteResponse_descriptor; + } + + @java.lang.Override + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse getDefaultInstanceForType() { + return flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse.getDefaultInstance(); + } + + @java.lang.Override + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse build() { + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse buildPartial() { + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse result = new flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse) { + return mergeFrom((flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse other) { + if (other == flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse.getDefaultInstance()) return this; + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:flyteidl.admin.ProjectAttributesDeleteResponse) + } + + // @@protoc_insertion_point(class_scope:flyteidl.admin.ProjectAttributesDeleteResponse) + private static final flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse(); + } + + public static flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ProjectAttributesDeleteResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ProjectAttributesDeleteResponse(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public flyteidl.admin.ProjectAttributesOuterClass.ProjectAttributesDeleteResponse getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_admin_ProjectAttributes_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_admin_ProjectAttributes_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_admin_ProjectAttributesUpdateRequest_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_admin_ProjectAttributesUpdateRequest_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_admin_ProjectAttributesUpdateResponse_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_admin_ProjectAttributesUpdateResponse_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_admin_ProjectAttributesGetRequest_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_admin_ProjectAttributesGetRequest_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_admin_ProjectAttributesGetResponse_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_admin_ProjectAttributesGetResponse_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_admin_ProjectAttributesDeleteRequest_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_admin_ProjectAttributesDeleteRequest_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_flyteidl_admin_ProjectAttributesDeleteResponse_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_flyteidl_admin_ProjectAttributesDeleteResponse_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\'flyteidl/admin/project_attributes.prot" + + "o\022\016flyteidl.admin\032\'flyteidl/admin/matcha" + + "ble_resource.proto\"e\n\021ProjectAttributes\022" + + "\017\n\007project\030\001 \001(\t\022?\n\023matching_attributes\030" + + "\002 \001(\0132\".flyteidl.admin.MatchingAttribute" + + "s\"W\n\036ProjectAttributesUpdateRequest\0225\n\na" + + "ttributes\030\001 \001(\0132!.flyteidl.admin.Project" + + "Attributes\"!\n\037ProjectAttributesUpdateRes" + + "ponse\"h\n\033ProjectAttributesGetRequest\022\017\n\007" + + "project\030\001 \001(\t\0228\n\rresource_type\030\002 \001(\0162!.f" + + "lyteidl.admin.MatchableResource\"U\n\034Proje" + + "ctAttributesGetResponse\0225\n\nattributes\030\001 " + + "\001(\0132!.flyteidl.admin.ProjectAttributes\"k" + + "\n\036ProjectAttributesDeleteRequest\022\017\n\007proj" + + "ect\030\001 \001(\t\0228\n\rresource_type\030\002 \001(\0162!.flyte" + + "idl.admin.MatchableResource\"!\n\037ProjectAt" + + "tributesDeleteResponseB7Z5github.com/fly" + + "teorg/flyteidl/gen/pb-go/flyteidl/adminb" + + "\006proto3" + }; + com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = + new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { + public com.google.protobuf.ExtensionRegistry assignDescriptors( + com.google.protobuf.Descriptors.FileDescriptor root) { + descriptor = root; + return null; + } + }; + com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + flyteidl.admin.MatchableResourceOuterClass.getDescriptor(), + }, assigner); + internal_static_flyteidl_admin_ProjectAttributes_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_flyteidl_admin_ProjectAttributes_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_flyteidl_admin_ProjectAttributes_descriptor, + new java.lang.String[] { "Project", "MatchingAttributes", }); + internal_static_flyteidl_admin_ProjectAttributesUpdateRequest_descriptor = + getDescriptor().getMessageTypes().get(1); + internal_static_flyteidl_admin_ProjectAttributesUpdateRequest_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_flyteidl_admin_ProjectAttributesUpdateRequest_descriptor, + new java.lang.String[] { "Attributes", }); + internal_static_flyteidl_admin_ProjectAttributesUpdateResponse_descriptor = + getDescriptor().getMessageTypes().get(2); + internal_static_flyteidl_admin_ProjectAttributesUpdateResponse_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_flyteidl_admin_ProjectAttributesUpdateResponse_descriptor, + new java.lang.String[] { }); + internal_static_flyteidl_admin_ProjectAttributesGetRequest_descriptor = + getDescriptor().getMessageTypes().get(3); + internal_static_flyteidl_admin_ProjectAttributesGetRequest_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_flyteidl_admin_ProjectAttributesGetRequest_descriptor, + new java.lang.String[] { "Project", "ResourceType", }); + internal_static_flyteidl_admin_ProjectAttributesGetResponse_descriptor = + getDescriptor().getMessageTypes().get(4); + internal_static_flyteidl_admin_ProjectAttributesGetResponse_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_flyteidl_admin_ProjectAttributesGetResponse_descriptor, + new java.lang.String[] { "Attributes", }); + internal_static_flyteidl_admin_ProjectAttributesDeleteRequest_descriptor = + getDescriptor().getMessageTypes().get(5); + internal_static_flyteidl_admin_ProjectAttributesDeleteRequest_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_flyteidl_admin_ProjectAttributesDeleteRequest_descriptor, + new java.lang.String[] { "Project", "ResourceType", }); + internal_static_flyteidl_admin_ProjectAttributesDeleteResponse_descriptor = + getDescriptor().getMessageTypes().get(6); + internal_static_flyteidl_admin_ProjectAttributesDeleteResponse_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_flyteidl_admin_ProjectAttributesDeleteResponse_descriptor, + new java.lang.String[] { }); + flyteidl.admin.MatchableResourceOuterClass.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/flyteidl/gen/pb-java/flyteidl/admin/ProjectOuterClass.java b/flyteidl/gen/pb-java/flyteidl/admin/ProjectOuterClass.java index 68484315dc..8b464a4f94 100644 --- a/flyteidl/gen/pb-java/flyteidl/admin/ProjectOuterClass.java +++ b/flyteidl/gen/pb-java/flyteidl/admin/ProjectOuterClass.java @@ -858,7 +858,7 @@ flyteidl.admin.ProjectOuterClass.DomainOrBuilder getDomainsOrBuilder( /** *
-     * Leverage Labels from flyteidel.admin.common.proto to
+     * Leverage Labels from flyteidl.admin.common.proto to
      * tag projects with ownership information.
      * 
* @@ -867,7 +867,7 @@ flyteidl.admin.ProjectOuterClass.DomainOrBuilder getDomainsOrBuilder( boolean hasLabels(); /** *
-     * Leverage Labels from flyteidel.admin.common.proto to
+     * Leverage Labels from flyteidl.admin.common.proto to
      * tag projects with ownership information.
      * 
* @@ -876,7 +876,7 @@ flyteidl.admin.ProjectOuterClass.DomainOrBuilder getDomainsOrBuilder( flyteidl.admin.Common.Labels getLabels(); /** *
-     * Leverage Labels from flyteidel.admin.common.proto to
+     * Leverage Labels from flyteidl.admin.common.proto to
      * tag projects with ownership information.
      * 
* @@ -1315,7 +1315,7 @@ public java.lang.String getDescription() { private flyteidl.admin.Common.Labels labels_; /** *
-     * Leverage Labels from flyteidel.admin.common.proto to
+     * Leverage Labels from flyteidl.admin.common.proto to
      * tag projects with ownership information.
      * 
* @@ -1326,7 +1326,7 @@ public boolean hasLabels() { } /** *
-     * Leverage Labels from flyteidel.admin.common.proto to
+     * Leverage Labels from flyteidl.admin.common.proto to
      * tag projects with ownership information.
      * 
* @@ -1337,7 +1337,7 @@ public flyteidl.admin.Common.Labels getLabels() { } /** *
-     * Leverage Labels from flyteidel.admin.common.proto to
+     * Leverage Labels from flyteidl.admin.common.proto to
      * tag projects with ownership information.
      * 
* @@ -2301,7 +2301,7 @@ public Builder setDescriptionBytes( flyteidl.admin.Common.Labels, flyteidl.admin.Common.Labels.Builder, flyteidl.admin.Common.LabelsOrBuilder> labelsBuilder_; /** *
-       * Leverage Labels from flyteidel.admin.common.proto to
+       * Leverage Labels from flyteidl.admin.common.proto to
        * tag projects with ownership information.
        * 
* @@ -2312,7 +2312,7 @@ public boolean hasLabels() { } /** *
-       * Leverage Labels from flyteidel.admin.common.proto to
+       * Leverage Labels from flyteidl.admin.common.proto to
        * tag projects with ownership information.
        * 
* @@ -2327,7 +2327,7 @@ public flyteidl.admin.Common.Labels getLabels() { } /** *
-       * Leverage Labels from flyteidel.admin.common.proto to
+       * Leverage Labels from flyteidl.admin.common.proto to
        * tag projects with ownership information.
        * 
* @@ -2348,7 +2348,7 @@ public Builder setLabels(flyteidl.admin.Common.Labels value) { } /** *
-       * Leverage Labels from flyteidel.admin.common.proto to
+       * Leverage Labels from flyteidl.admin.common.proto to
        * tag projects with ownership information.
        * 
* @@ -2367,7 +2367,7 @@ public Builder setLabels( } /** *
-       * Leverage Labels from flyteidel.admin.common.proto to
+       * Leverage Labels from flyteidl.admin.common.proto to
        * tag projects with ownership information.
        * 
* @@ -2390,7 +2390,7 @@ public Builder mergeLabels(flyteidl.admin.Common.Labels value) { } /** *
-       * Leverage Labels from flyteidel.admin.common.proto to
+       * Leverage Labels from flyteidl.admin.common.proto to
        * tag projects with ownership information.
        * 
* @@ -2409,7 +2409,7 @@ public Builder clearLabels() { } /** *
-       * Leverage Labels from flyteidel.admin.common.proto to
+       * Leverage Labels from flyteidl.admin.common.proto to
        * tag projects with ownership information.
        * 
* @@ -2422,7 +2422,7 @@ public flyteidl.admin.Common.Labels.Builder getLabelsBuilder() { } /** *
-       * Leverage Labels from flyteidel.admin.common.proto to
+       * Leverage Labels from flyteidl.admin.common.proto to
        * tag projects with ownership information.
        * 
* @@ -2438,7 +2438,7 @@ public flyteidl.admin.Common.LabelsOrBuilder getLabelsOrBuilder() { } /** *
-       * Leverage Labels from flyteidel.admin.common.proto to
+       * Leverage Labels from flyteidl.admin.common.proto to
        * tag projects with ownership information.
        * 
* diff --git a/flyteidl/gen/pb-java/flyteidl/service/Admin.java b/flyteidl/gen/pb-java/flyteidl/service/Admin.java index 86e569427f..b62780ba14 100644 --- a/flyteidl/gen/pb-java/flyteidl/service/Admin.java +++ b/flyteidl/gen/pb-java/flyteidl/service/Admin.java @@ -26,353 +26,373 @@ public static void registerAllExtensions( "\n\034flyteidl/service/admin.proto\022\020flyteidl" + ".service\032\034google/api/annotations.proto\032\034" + "flyteidl/admin/project.proto\032.flyteidl/a" + - "dmin/project_domain_attributes.proto\032\031fl" + - "yteidl/admin/task.proto\032\035flyteidl/admin/" + - "workflow.proto\032(flyteidl/admin/workflow_" + - "attributes.proto\032 flyteidl/admin/launch_" + - "plan.proto\032\032flyteidl/admin/event.proto\032\036" + - "flyteidl/admin/execution.proto\032\'flyteidl" + - "/admin/matchable_resource.proto\032#flyteid" + - "l/admin/node_execution.proto\032#flyteidl/a" + - "dmin/task_execution.proto\032\034flyteidl/admi" + - "n/version.proto\032\033flyteidl/admin/common.p" + - "roto\032,protoc-gen-swagger/options/annotat" + - "ions.proto2\236h\n\014AdminService\022\305\002\n\nCreateTa" + - "sk\022!.flyteidl.admin.TaskCreateRequest\032\"." + - "flyteidl.admin.TaskCreateResponse\"\357\001\202\323\344\223" + - "\002\022\"\r/api/v1/tasks:\001*\222A\323\001\032&Create and reg" + - "ister a task definition.JB\n\003400\022;\n9Retur" + - "ned for bad request that may have failed" + - " validation.Je\n\003409\022^\n\\Returned for a re" + - "quest that references an identical entit" + - "y that has already been registered.\022\262\001\n\007" + - "GetTask\022 .flyteidl.admin.ObjectGetReques" + - "t\032\024.flyteidl.admin.Task\"o\202\323\344\223\002?\022=/api/v1" + - "/tasks/{id.project}/{id.domain}/{id.name" + - "}/{id.version}\222A\'\032%Retrieve an existing " + - "task definition.\022\336\001\n\013ListTaskIds\0220.flyte" + - "idl.admin.NamedEntityIdentifierListReque" + - "st\032).flyteidl.admin.NamedEntityIdentifie" + - "rList\"r\202\323\344\223\002%\022#/api/v1/task_ids/{project" + - "}/{domain}\222AD\032BFetch existing task defin" + - "ition identifiers matching input filters" + - ".\022\353\001\n\tListTasks\022#.flyteidl.admin.Resourc" + - "eListRequest\032\030.flyteidl.admin.TaskList\"\236" + - "\001\202\323\344\223\002\\\0220/api/v1/tasks/{id.project}/{id." + - "domain}/{id.name}Z(\022&/api/v1/tasks/{id.p" + - "roject}/{id.domain}\222A9\0327Fetch existing t" + - "ask definitions matching input filters.\022" + - "\331\002\n\016CreateWorkflow\022%.flyteidl.admin.Work" + - "flowCreateRequest\032&.flyteidl.admin.Workf" + - "lowCreateResponse\"\367\001\202\323\344\223\002\026\"\021/api/v1/work" + - "flows:\001*\222A\327\001\032*Create and register a work" + - "flow definition.JB\n\003400\022;\n9Returned for " + - "bad request that may have failed validat" + - "ion.Je\n\003409\022^\n\\Returned for a request th" + - "at references an identical entity that h" + - "as already been registered.\022\302\001\n\013GetWorkf" + - "low\022 .flyteidl.admin.ObjectGetRequest\032\030." + - "flyteidl.admin.Workflow\"w\202\323\344\223\002C\022A/api/v1" + - "/workflows/{id.project}/{id.domain}/{id." + - "name}/{id.version}\222A+\032)Retrieve an exist" + - "ing workflow definition.\022\355\001\n\017ListWorkflo" + - "wIds\0220.flyteidl.admin.NamedEntityIdentif" + - "ierListRequest\032).flyteidl.admin.NamedEnt" + - "ityIdentifierList\"}\202\323\344\223\002)\022\'/api/v1/workf" + - "low_ids/{project}/{domain}\222AK\032IFetch an " + - "existing workflow definition identifiers" + - " matching input filters.\022\377\001\n\rListWorkflo" + - "ws\022#.flyteidl.admin.ResourceListRequest\032" + - "\034.flyteidl.admin.WorkflowList\"\252\001\202\323\344\223\002d\0224" + - "/api/v1/workflows/{id.project}/{id.domai" + - "n}/{id.name}Z,\022*/api/v1/workflows/{id.pr" + - "oject}/{id.domain}\222A=\032;Fetch existing wo" + - "rkflow definitions matching input filter" + - "s.\022\345\002\n\020CreateLaunchPlan\022\'.flyteidl.admin" + - ".LaunchPlanCreateRequest\032(.flyteidl.admi" + - "n.LaunchPlanCreateResponse\"\375\001\202\323\344\223\002\031\"\024/ap" + - "i/v1/launch_plans:\001*\222A\332\001\032-Create and reg" + - "ister a launch plan definition.JB\n\003400\022;" + - "\n9Returned for bad request that may have" + - " failed validation.Je\n\003409\022^\n\\Returned f" + - "or a request that references an identica" + - "l entity that has already been registere" + - "d.\022\314\001\n\rGetLaunchPlan\022 .flyteidl.admin.Ob" + - "jectGetRequest\032\032.flyteidl.admin.LaunchPl" + - "an\"}\202\323\344\223\002F\022D/api/v1/launch_plans/{id.pro" + - "ject}/{id.domain}/{id.name}/{id.version}" + - "\222A.\032,Retrieve an existing launch plan de" + - "finition.\022\363\001\n\023GetActiveLaunchPlan\022\'.flyt" + - "eidl.admin.ActiveLaunchPlanRequest\032\032.fly" + - "teidl.admin.LaunchPlan\"\226\001\202\323\344\223\002@\022>/api/v1" + - "/active_launch_plans/{id.project}/{id.do" + - "main}/{id.name}\222AM\032KRetrieve the active " + - "launch plan version specified by input r" + - "equest filters.\022\353\001\n\025ListActiveLaunchPlan" + - "s\022+.flyteidl.admin.ActiveLaunchPlanListR" + - "equest\032\036.flyteidl.admin.LaunchPlanList\"\204" + - "\001\202\323\344\223\0020\022./api/v1/active_launch_plans/{pr" + - "oject}/{domain}\222AK\032IFetch the active lau" + - "nch plan versions specified by input req" + - "uest filters.\022\363\001\n\021ListLaunchPlanIds\0220.fl" + - "yteidl.admin.NamedEntityIdentifierListRe" + - "quest\032).flyteidl.admin.NamedEntityIdenti" + - "fierList\"\200\001\202\323\344\223\002,\022*/api/v1/launch_plan_i" + - "ds/{project}/{domain}\222AK\032IFetch existing" + - " launch plan definition identifiers matc" + - "hing input filters.\022\214\002\n\017ListLaunchPlans\022" + - "#.flyteidl.admin.ResourceListRequest\032\036.f" + - "lyteidl.admin.LaunchPlanList\"\263\001\202\323\344\223\002j\0227/" + - "api/v1/launch_plans/{id.project}/{id.dom" + - "ain}/{id.name}Z/\022-/api/v1/launch_plans/{" + - "id.project}/{id.domain}\222A@\032>Fetch existi" + - "ng launch plan definitions matching inpu" + - "t filters.\022\300\006\n\020UpdateLaunchPlan\022\'.flytei" + - "dl.admin.LaunchPlanUpdateRequest\032(.flyte" + - "idl.admin.LaunchPlanUpdateResponse\"\330\005\202\323\344" + - "\223\002I\032D/api/v1/launch_plans/{id.project}/{" + - "id.domain}/{id.name}/{id.version}:\001*\222A\205\005" + - "\032\202\005Update the status of an existing laun" + - "ch plan definition. At most one launch p" + - "lan version for a given {project, domain" + - ", name} can be active at a time. If this" + - " call sets a launch plan to active and e" + - "xisting version is already active, the r" + - "esult of this call will be that the form" + - "erly active launch plan will be made ina" + - "ctive and specified launch plan in this " + - "request will be made active. In the even" + - "t that the formerly active launch plan h" + - "ad a schedule associated it with it, thi" + - "s schedule will be disabled. If the refe" + - "rence launch plan in this request is bei" + - "ng set to active and has a schedule asso" + - "ciated with it, the schedule will be ena" + - "bled.\022\242\001\n\017CreateExecution\022&.flyteidl.adm" + - "in.ExecutionCreateRequest\032\'.flyteidl.adm" + - "in.ExecutionCreateResponse\">\202\323\344\223\002\027\"\022/api" + - "/v1/executions:\001*\222A\036\032\034Create a workflow " + - "execution.\022\261\001\n\021RelaunchExecution\022(.flyte" + - "idl.admin.ExecutionRelaunchRequest\032\'.fly" + - "teidl.admin.ExecutionCreateResponse\"I\202\323\344" + - "\223\002 \"\033/api/v1/executions/relaunch:\001*\222A \032\036" + - "Relaunch a workflow execution.\022\235\005\n\020Recov" + - "erExecution\022\'.flyteidl.admin.ExecutionRe" + - "coverRequest\032\'.flyteidl.admin.ExecutionC" + - "reateResponse\"\266\004\202\323\344\223\002\037\"\032/api/v1/executio" + - "ns/recover:\001*\222A\215\004\032\212\004Recreates a previous" + - "ly-run workflow execution that will only" + - " start executing from the last known fai" + - "lure point. In Recover mode, users canno" + - "t change any input parameters or update " + - "the version of the execution. This is ex" + - "tremely useful to recover from system er" + - "rors and byzantine faults like - Loss of" + - " K8s cluster, bugs in platform or instab" + - "ility, machine failures, downstream syst" + - "em failures (downstream services), or si" + - "mply to recover executions that failed b" + - "ecause of retry exhaustion and should co" + - "mplete if tried again.\022\302\001\n\014GetExecution\022" + - "+.flyteidl.admin.WorkflowExecutionGetReq" + - "uest\032\031.flyteidl.admin.Execution\"j\202\323\344\223\0027\022" + - "5/api/v1/executions/{id.project}/{id.dom" + - "ain}/{id.name}\222A*\032(Retrieve an existing " + - "workflow execution.\022\326\001\n\017UpdateExecution\022" + - "&.flyteidl.admin.ExecutionUpdateRequest\032" + - "\'.flyteidl.admin.ExecutionUpdateResponse" + - "\"r\202\323\344\223\002:\0325/api/v1/executions/{id.project" + - "}/{id.domain}/{id.name}:\001*\222A/\032-Update ex" + - "ecution belonging to project domain.\022\202\002\n" + - "\020GetExecutionData\022/.flyteidl.admin.Workf" + - "lowExecutionGetDataRequest\0320.flyteidl.ad" + - "min.WorkflowExecutionGetDataResponse\"\212\001\202" + - "\323\344\223\002<\022:/api/v1/data/executions/{id.proje" + - "ct}/{id.domain}/{id.name}\222AE\032CRetrieve i" + - "nput and output data from an existing wo" + - "rkflow execution.\022\310\001\n\016ListExecutions\022#.f" + - "lyteidl.admin.ResourceListRequest\032\035.flyt" + - "eidl.admin.ExecutionList\"r\202\323\344\223\002-\022+/api/v" + - "1/executions/{id.project}/{id.domain}\222A<" + - "\032:Fetch existing workflow executions mat" + - "ching input filters.\022\364\001\n\022TerminateExecut" + - "ion\022).flyteidl.admin.ExecutionTerminateR" + - "equest\032*.flyteidl.admin.ExecutionTermina" + - "teResponse\"\206\001\202\323\344\223\002:*5/api/v1/executions/" + - "{id.project}/{id.domain}/{id.name}:\001*\222AC" + - "\032ATerminate the active workflow executio" + - "n specified in the request.\022\374\001\n\020GetNodeE" + - "xecution\022\'.flyteidl.admin.NodeExecutionG" + - "etRequest\032\035.flyteidl.admin.NodeExecution" + - "\"\237\001\202\323\344\223\002p\022n/api/v1/node_executions/{id.e" + - "xecution_id.project}/{id.execution_id.do" + - "main}/{id.execution_id.name}/{id.node_id" + - "}\222A&\032$Retrieve an existing node executio" + - "n.\022\232\002\n\022ListNodeExecutions\022(.flyteidl.adm" + - "in.NodeExecutionListRequest\032!.flyteidl.a" + - "dmin.NodeExecutionList\"\266\001\202\323\344\223\002u\022s/api/v1" + - "/node_executions/{workflow_execution_id." + - "project}/{workflow_execution_id.domain}/" + - "{workflow_execution_id.name}\222A8\0326Fetch e" + - "xisting node executions matching input f" + - "ilters.\022\357\004\n\031ListNodeExecutionsForTask\022/." + - "flyteidl.admin.NodeExecutionForTaskListR" + - "equest\032!.flyteidl.admin.NodeExecutionLis" + - "t\"\375\003\202\323\344\223\002\254\003\022\251\003/api/v1/children/task_exec" + - "utions/{task_execution_id.node_execution" + - "_id.execution_id.project}/{task_executio" + - "n_id.node_execution_id.execution_id.doma" + - "in}/{task_execution_id.node_execution_id" + - ".execution_id.name}/{task_execution_id.n" + - "ode_execution_id.node_id}/{task_executio" + - "n_id.task_id.project}/{task_execution_id" + - ".task_id.domain}/{task_execution_id.task" + - "_id.name}/{task_execution_id.task_id.ver" + - "sion}/{task_execution_id.retry_attempt}\222" + - "AG\032EFetch child node executions launched" + - " by the specified task execution.\022\263\002\n\024Ge" + - "tNodeExecutionData\022+.flyteidl.admin.Node" + - "ExecutionGetDataRequest\032,.flyteidl.admin" + - ".NodeExecutionGetDataResponse\"\277\001\202\323\344\223\002u\022s" + - "/api/v1/data/node_executions/{id.executi" + - "on_id.project}/{id.execution_id.domain}/" + - "{id.execution_id.name}/{id.node_id}\222AA\032?" + - "Retrieve input and output data from an e" + - "xisting node execution.\022\227\001\n\017RegisterProj" + - "ect\022&.flyteidl.admin.ProjectRegisterRequ" + - "est\032\'.flyteidl.admin.ProjectRegisterResp" + - "onse\"3\202\323\344\223\002\025\"\020/api/v1/projects:\001*\222A\025\032\023Re" + - "gister a project.\022\207\001\n\rUpdateProject\022\027.fl" + - "yteidl.admin.Project\032%.flyteidl.admin.Pr" + - "ojectUpdateResponse\"6\202\323\344\223\002\032\032\025/api/v1/pro" + - "jects/{id}:\001*\222A\023\032\021Update a project.\022\205\001\n\014" + - "ListProjects\022\".flyteidl.admin.ProjectLis" + - "tRequest\032\030.flyteidl.admin.Projects\"7\202\323\344\223" + - "\002\022\022\020/api/v1/projects\222A\034\032\032Fetch registere" + - "d projects.\022\335\001\n\023CreateWorkflowEvent\022-.fl" + - "yteidl.admin.WorkflowExecutionEventReque" + - "st\032..flyteidl.admin.WorkflowExecutionEve" + - "ntResponse\"g\202\323\344\223\002\035\"\030/api/v1/events/workf" + - "lows:\001*\222AA\032?Create a workflow execution " + - "event recording a phase transition.\022\311\001\n\017" + - "CreateNodeEvent\022).flyteidl.admin.NodeExe" + - "cutionEventRequest\032*.flyteidl.admin.Node" + - "ExecutionEventResponse\"_\202\323\344\223\002\031\"\024/api/v1/" + - "events/nodes:\001*\222A=\032;Create a node execut" + - "ion event recording a phase transition.\022" + - "\311\001\n\017CreateTaskEvent\022).flyteidl.admin.Tas" + - "kExecutionEventRequest\032*.flyteidl.admin." + - "TaskExecutionEventResponse\"_\202\323\344\223\002\031\"\024/api" + - "/v1/events/tasks:\001*\222A=\032;Create a task ex" + - "ecution event recording a phase transiti" + - "on.\022\251\003\n\020GetTaskExecution\022\'.flyteidl.admi" + - "n.TaskExecutionGetRequest\032\035.flyteidl.adm" + - "in.TaskExecution\"\314\002\202\323\344\223\002\234\002\022\231\002/api/v1/tas" + - "k_executions/{id.node_execution_id.execu" + - "tion_id.project}/{id.node_execution_id.e" + - "xecution_id.domain}/{id.node_execution_i" + - "d.execution_id.name}/{id.node_execution_" + - "id.node_id}/{id.task_id.project}/{id.tas" + - "k_id.domain}/{id.task_id.name}/{id.task_" + - "id.version}/{id.retry_attempt}\222A&\032$Retri" + - "eve an existing task execution.\022\323\002\n\022List" + - "TaskExecutions\022(.flyteidl.admin.TaskExec" + - "utionListRequest\032!.flyteidl.admin.TaskEx" + - "ecutionList\"\357\001\202\323\344\223\002\255\001\022\252\001/api/v1/task_exe" + - "cutions/{node_execution_id.execution_id." + - "project}/{node_execution_id.execution_id" + - ".domain}/{node_execution_id.execution_id" + - ".name}/{node_execution_id.node_id}\222A8\0326F" + - "etch existing task executions matching i" + - "nput filters.\022\340\003\n\024GetTaskExecutionData\022+" + - ".flyteidl.admin.TaskExecutionGetDataRequ" + - "est\032,.flyteidl.admin.TaskExecutionGetDat" + - "aResponse\"\354\002\202\323\344\223\002\241\002\022\236\002/api/v1/data/task_" + - "executions/{id.node_execution_id.executi" + - "on_id.project}/{id.node_execution_id.exe" + - "cution_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}\222AA\032?Retriev" + - "e input and output data from an existing" + - " task execution.\022\277\002\n\035UpdateProjectDomain" + - "Attributes\0224.flyteidl.admin.ProjectDomai" + - "nAttributesUpdateRequest\0325.flyteidl.admi" + - "n.ProjectDomainAttributesUpdateResponse\"" + - "\260\001\202\323\344\223\002O\032J/api/v1/project_domain_attribu" + - "tes/{attributes.project}/{attributes.dom" + - "ain}:\001*\222AX\032VUpdate the customized resour" + - "ce attributes associated with a project-" + - "domain combination\022\237\002\n\032GetProjectDomainA" + - "ttributes\0221.flyteidl.admin.ProjectDomain" + - "AttributesGetRequest\0322.flyteidl.admin.Pr" + - "ojectDomainAttributesGetResponse\"\231\001\202\323\344\223\002" + - "6\0224/api/v1/project_domain_attributes/{pr" + - "oject}/{domain}\222AZ\032XRetrieve the customi" + - "zed resource attributes associated with " + - "a project-domain combination\022\251\002\n\035DeleteP" + - "rojectDomainAttributes\0224.flyteidl.admin." + - "ProjectDomainAttributesDeleteRequest\0325.f" + - "lyteidl.admin.ProjectDomainAttributesDel" + - "eteResponse\"\232\001\202\323\344\223\0029*4/api/v1/project_do" + - "main_attributes/{project}/{domain}:\001*\222AX" + - "\032VDelete the customized resource attribu" + - "tes associated with a project-domain com" + - "bination\022\316\002\n\030UpdateWorkflowAttributes\022/." + - "flyteidl.admin.WorkflowAttributesUpdateR" + - "equest\0320.flyteidl.admin.WorkflowAttribut" + - "esUpdateResponse\"\316\001\202\323\344\223\002_\032Z/api/v1/workf" + - "low_attributes/{attributes.project}/{att" + - "ributes.domain}/{attributes.workflow}:\001*" + - "\222Af\032dUpdate the customized resource attr" + - "ibutes associated with a project, domain" + - " and workflow combination\022\243\002\n\025GetWorkflo" + - "wAttributes\022,.flyteidl.admin.WorkflowAtt" + - "ributesGetRequest\032-.flyteidl.admin.Workf" + - "lowAttributesGetResponse\"\254\001\202\323\344\223\002;\0229/api/" + - "v1/workflow_attributes/{project}/{domain" + - "}/{workflow}\222Ah\032fRetrieve the customized" + - " resource attributes associated with a p" + - "roject, domain and workflow combination\022" + - "\255\002\n\030DeleteWorkflowAttributes\022/.flyteidl." + - "admin.WorkflowAttributesDeleteRequest\0320." + - "flyteidl.admin.WorkflowAttributesDeleteR" + - "esponse\"\255\001\202\323\344\223\002>*9/api/v1/workflow_attri" + - "butes/{project}/{domain}/{workflow}:\001*\222A" + - "f\032dDelete the customized resource attrib" + - "utes associated with a project, domain a" + - "nd workflow combination\022\341\001\n\027ListMatchabl" + - "eAttributes\022..flyteidl.admin.ListMatchab" + - "leAttributesRequest\032/.flyteidl.admin.Lis" + - "tMatchableAttributesResponse\"e\202\323\344\223\002\036\022\034/a" + - "pi/v1/matchable_attributes\222A>\032/api/v" + + "1/active_launch_plans/{id.project}/{id.d" + + "omain}/{id.name}\222AM\032KRetrieve the active" + + " launch plan version specified by input " + + "request filters.\022\353\001\n\025ListActiveLaunchPla" + + "ns\022+.flyteidl.admin.ActiveLaunchPlanList" + + "Request\032\036.flyteidl.admin.LaunchPlanList\"" + + "\204\001\202\323\344\223\0020\022./api/v1/active_launch_plans/{p" + + "roject}/{domain}\222AK\032IFetch the active la" + + "unch plan versions specified by input re" + + "quest filters.\022\363\001\n\021ListLaunchPlanIds\0220.f" + + "lyteidl.admin.NamedEntityIdentifierListR" + + "equest\032).flyteidl.admin.NamedEntityIdent" + + "ifierList\"\200\001\202\323\344\223\002,\022*/api/v1/launch_plan_" + + "ids/{project}/{domain}\222AK\032IFetch existin" + + "g launch plan definition identifiers mat" + + "ching input filters.\022\214\002\n\017ListLaunchPlans" + + "\022#.flyteidl.admin.ResourceListRequest\032\036." + + "flyteidl.admin.LaunchPlanList\"\263\001\202\323\344\223\002j\0227" + + "/api/v1/launch_plans/{id.project}/{id.do" + + "main}/{id.name}Z/\022-/api/v1/launch_plans/" + + "{id.project}/{id.domain}\222A@\032>Fetch exist" + + "ing launch plan definitions matching inp" + + "ut filters.\022\300\006\n\020UpdateLaunchPlan\022\'.flyte" + + "idl.admin.LaunchPlanUpdateRequest\032(.flyt" + + "eidl.admin.LaunchPlanUpdateResponse\"\330\005\202\323" + + "\344\223\002I\032D/api/v1/launch_plans/{id.project}/" + + "{id.domain}/{id.name}/{id.version}:\001*\222A\205" + + "\005\032\202\005Update the status of an existing lau" + + "nch plan definition. At most one launch " + + "plan version for a given {project, domai" + + "n, name} can be active at a time. If thi" + + "s call sets a launch plan to active and " + + "existing version is already active, the " + + "result of this call will be that the for" + + "merly active launch plan will be made in" + + "active and specified launch plan in this" + + " request will be made active. In the eve" + + "nt that the formerly active launch plan " + + "had a schedule associated it with it, th" + + "is schedule will be disabled. If the ref" + + "erence launch plan in this request is be" + + "ing set to active and has a schedule ass" + + "ociated with it, the schedule will be en" + + "abled.\022\242\001\n\017CreateExecution\022&.flyteidl.ad" + + "min.ExecutionCreateRequest\032\'.flyteidl.ad" + + "min.ExecutionCreateResponse\">\202\323\344\223\002\027\"\022/ap" + + "i/v1/executions:\001*\222A\036\032\034Create a workflow" + + " execution.\022\261\001\n\021RelaunchExecution\022(.flyt" + + "eidl.admin.ExecutionRelaunchRequest\032\'.fl" + + "yteidl.admin.ExecutionCreateResponse\"I\202\323" + + "\344\223\002 \"\033/api/v1/executions/relaunch:\001*\222A \032" + + "\036Relaunch a workflow execution.\022\235\005\n\020Reco" + + "verExecution\022\'.flyteidl.admin.ExecutionR" + + "ecoverRequest\032\'.flyteidl.admin.Execution" + + "CreateResponse\"\266\004\202\323\344\223\002\037\"\032/api/v1/executi" + + "ons/recover:\001*\222A\215\004\032\212\004Recreates a previou" + + "sly-run workflow execution that will onl" + + "y start executing from the last known fa" + + "ilure point. In Recover mode, users cann" + + "ot change any input parameters or update" + + " the version of the execution. This is e" + + "xtremely useful to recover from system e" + + "rrors and byzantine faults like - Loss o" + + "f K8s cluster, bugs in platform or insta" + + "bility, machine failures, downstream sys" + + "tem failures (downstream services), or s" + + "imply to recover executions that failed " + + "because of retry exhaustion and should c" + + "omplete if tried again.\022\302\001\n\014GetExecution" + + "\022+.flyteidl.admin.WorkflowExecutionGetRe" + + "quest\032\031.flyteidl.admin.Execution\"j\202\323\344\223\0027" + + "\0225/api/v1/executions/{id.project}/{id.do" + + "main}/{id.name}\222A*\032(Retrieve an existing" + + " workflow execution.\022\326\001\n\017UpdateExecution" + + "\022&.flyteidl.admin.ExecutionUpdateRequest" + + "\032\'.flyteidl.admin.ExecutionUpdateRespons" + + "e\"r\202\323\344\223\002:\0325/api/v1/executions/{id.projec" + + "t}/{id.domain}/{id.name}:\001*\222A/\032-Update e" + + "xecution belonging to project domain.\022\202\002" + + "\n\020GetExecutionData\022/.flyteidl.admin.Work" + + "flowExecutionGetDataRequest\0320.flyteidl.a" + + "dmin.WorkflowExecutionGetDataResponse\"\212\001" + + "\202\323\344\223\002<\022:/api/v1/data/executions/{id.proj" + + "ect}/{id.domain}/{id.name}\222AE\032CRetrieve " + + "input and output data from an existing w" + + "orkflow execution.\022\310\001\n\016ListExecutions\022#." + + "flyteidl.admin.ResourceListRequest\032\035.fly" + + "teidl.admin.ExecutionList\"r\202\323\344\223\002-\022+/api/" + + "v1/executions/{id.project}/{id.domain}\222A" + + "<\032:Fetch existing workflow executions ma" + + "tching input filters.\022\364\001\n\022TerminateExecu" + + "tion\022).flyteidl.admin.ExecutionTerminate" + + "Request\032*.flyteidl.admin.ExecutionTermin" + + "ateResponse\"\206\001\202\323\344\223\002:*5/api/v1/executions" + + "/{id.project}/{id.domain}/{id.name}:\001*\222A" + + "C\032ATerminate the active workflow executi" + + "on specified in the request.\022\374\001\n\020GetNode" + + "Execution\022\'.flyteidl.admin.NodeExecution" + + "GetRequest\032\035.flyteidl.admin.NodeExecutio" + + "n\"\237\001\202\323\344\223\002p\022n/api/v1/node_executions/{id." + + "execution_id.project}/{id.execution_id.d" + + "omain}/{id.execution_id.name}/{id.node_i" + + "d}\222A&\032$Retrieve an existing node executi" + + "on.\022\232\002\n\022ListNodeExecutions\022(.flyteidl.ad" + + "min.NodeExecutionListRequest\032!.flyteidl." + + "admin.NodeExecutionList\"\266\001\202\323\344\223\002u\022s/api/v" + + "1/node_executions/{workflow_execution_id" + + ".project}/{workflow_execution_id.domain}" + + "/{workflow_execution_id.name}\222A8\0326Fetch " + + "existing node executions matching input " + + "filters.\022\357\004\n\031ListNodeExecutionsForTask\022/" + + ".flyteidl.admin.NodeExecutionForTaskList" + + "Request\032!.flyteidl.admin.NodeExecutionLi" + + "st\"\375\003\202\323\344\223\002\254\003\022\251\003/api/v1/children/task_exe" + + "cutions/{task_execution_id.node_executio" + + "n_id.execution_id.project}/{task_executi" + + "on_id.node_execution_id.execution_id.dom" + + "ain}/{task_execution_id.node_execution_i" + + "d.execution_id.name}/{task_execution_id." + + "node_execution_id.node_id}/{task_executi" + + "on_id.task_id.project}/{task_execution_i" + + "d.task_id.domain}/{task_execution_id.tas" + + "k_id.name}/{task_execution_id.task_id.ve" + + "rsion}/{task_execution_id.retry_attempt}" + + "\222AG\032EFetch child node executions launche" + + "d by the specified task execution.\022\263\002\n\024G" + + "etNodeExecutionData\022+.flyteidl.admin.Nod" + + "eExecutionGetDataRequest\032,.flyteidl.admi" + + "n.NodeExecutionGetDataResponse\"\277\001\202\323\344\223\002u\022" + + "s/api/v1/data/node_executions/{id.execut" + + "ion_id.project}/{id.execution_id.domain}" + + "/{id.execution_id.name}/{id.node_id}\222AA\032" + + "?Retrieve input and output data from an " + + "existing node execution.\022\227\001\n\017RegisterPro" + + "ject\022&.flyteidl.admin.ProjectRegisterReq" + + "uest\032\'.flyteidl.admin.ProjectRegisterRes" + + "ponse\"3\202\323\344\223\002\025\"\020/api/v1/projects:\001*\222A\025\032\023R" + + "egister a project.\022\207\001\n\rUpdateProject\022\027.f" + + "lyteidl.admin.Project\032%.flyteidl.admin.P" + + "rojectUpdateResponse\"6\202\323\344\223\002\032\032\025/api/v1/pr" + + "ojects/{id}:\001*\222A\023\032\021Update a project.\022\205\001\n" + + "\014ListProjects\022\".flyteidl.admin.ProjectLi" + + "stRequest\032\030.flyteidl.admin.Projects\"7\202\323\344" + + "\223\002\022\022\020/api/v1/projects\222A\034\032\032Fetch register" + + "ed projects.\022\335\001\n\023CreateWorkflowEvent\022-.f" + + "lyteidl.admin.WorkflowExecutionEventRequ" + + "est\032..flyteidl.admin.WorkflowExecutionEv" + + "entResponse\"g\202\323\344\223\002\035\"\030/api/v1/events/work" + + "flows:\001*\222AA\032?Create a workflow execution" + + " event recording a phase transition.\022\311\001\n" + + "\017CreateNodeEvent\022).flyteidl.admin.NodeEx" + + "ecutionEventRequest\032*.flyteidl.admin.Nod" + + "eExecutionEventResponse\"_\202\323\344\223\002\031\"\024/api/v1" + + "/events/nodes:\001*\222A=\032;Create a node execu" + + "tion event recording a phase transition." + + "\022\311\001\n\017CreateTaskEvent\022).flyteidl.admin.Ta" + + "skExecutionEventRequest\032*.flyteidl.admin" + + ".TaskExecutionEventResponse\"_\202\323\344\223\002\031\"\024/ap" + + "i/v1/events/tasks:\001*\222A=\032;Create a task e" + + "xecution event recording a phase transit" + + "ion.\022\251\003\n\020GetTaskExecution\022\'.flyteidl.adm" + + "in.TaskExecutionGetRequest\032\035.flyteidl.ad" + + "min.TaskExecution\"\314\002\202\323\344\223\002\234\002\022\231\002/api/v1/ta" + + "sk_executions/{id.node_execution_id.exec" + + "ution_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.ta" + + "sk_id.domain}/{id.task_id.name}/{id.task" + + "_id.version}/{id.retry_attempt}\222A&\032$Retr" + + "ieve an existing task execution.\022\323\002\n\022Lis" + + "tTaskExecutions\022(.flyteidl.admin.TaskExe" + + "cutionListRequest\032!.flyteidl.admin.TaskE" + + "xecutionList\"\357\001\202\323\344\223\002\255\001\022\252\001/api/v1/task_ex" + + "ecutions/{node_execution_id.execution_id" + + ".project}/{node_execution_id.execution_i" + + "d.domain}/{node_execution_id.execution_i" + + "d.name}/{node_execution_id.node_id}\222A8\0326" + + "Fetch existing task executions matching " + + "input filters.\022\340\003\n\024GetTaskExecutionData\022" + + "+.flyteidl.admin.TaskExecutionGetDataReq" + + "uest\032,.flyteidl.admin.TaskExecutionGetDa" + + "taResponse\"\354\002\202\323\344\223\002\241\002\022\236\002/api/v1/data/task" + + "_executions/{id.node_execution_id.execut" + + "ion_id.project}/{id.node_execution_id.ex" + + "ecution_id.domain}/{id.node_execution_id" + + ".execution_id.name}/{id.node_execution_i" + + "d.node_id}/{id.task_id.project}/{id.task" + + "_id.domain}/{id.task_id.name}/{id.task_i" + + "d.version}/{id.retry_attempt}\222AA\032?Retrie" + + "ve input and output data from an existin" + + "g task execution.\022\277\002\n\035UpdateProjectDomai" + + "nAttributes\0224.flyteidl.admin.ProjectDoma" + + "inAttributesUpdateRequest\0325.flyteidl.adm" + + "in.ProjectDomainAttributesUpdateResponse" + + "\"\260\001\202\323\344\223\002O\032J/api/v1/project_domain_attrib" + + "utes/{attributes.project}/{attributes.do" + + "main}:\001*\222AX\032VUpdate the customized resou" + + "rce attributes associated with a project" + + "-domain combination\022\237\002\n\032GetProjectDomain" + + "Attributes\0221.flyteidl.admin.ProjectDomai" + + "nAttributesGetRequest\0322.flyteidl.admin.P" + + "rojectDomainAttributesGetResponse\"\231\001\202\323\344\223" + + "\0026\0224/api/v1/project_domain_attributes/{p" + + "roject}/{domain}\222AZ\032XRetrieve the custom" + + "ized resource attributes associated with" + + " a project-domain combination\022\251\002\n\035Delete" + + "ProjectDomainAttributes\0224.flyteidl.admin" + + ".ProjectDomainAttributesDeleteRequest\0325." + + "flyteidl.admin.ProjectDomainAttributesDe" + + "leteResponse\"\232\001\202\323\344\223\0029*4/api/v1/project_d" + + "omain_attributes/{project}/{domain}:\001*\222A" + + "X\032VDelete the customized resource attrib" + + "utes associated with a project-domain co" + + "mbination\022\377\001\n\027UpdateProjectAttributes\022.." + + "flyteidl.admin.ProjectAttributesUpdateRe" + + "quest\032/.flyteidl.admin.ProjectAttributes" + + "UpdateResponse\"\202\001\202\323\344\223\0024\032//api/v1/project" + + "_attributes/{attributes.project}:\001*\222AE\032C" + + "Update the customized resource attribute" + + "s associated with a project\022\351\001\n\024GetProje" + + "ctAttributes\022+.flyteidl.admin.ProjectAtt" + + "ributesGetRequest\032,.flyteidl.admin.Proje" + + "ctAttributesGetResponse\"v\202\323\344\223\002&\022$/api/v1" + + "/project_attributes/{project}\222AG\032ERetrie" + + "ve the customized resource attributes as" + + "sociated with a project\022\363\001\n\027DeleteProjec" + + "tAttributes\022..flyteidl.admin.ProjectAttr" + + "ibutesDeleteRequest\032/.flyteidl.admin.Pro" + + "jectAttributesDeleteResponse\"w\202\323\344\223\002)*$/a" + + "pi/v1/project_attributes/{project}:\001*\222AE" + + "\032CDelete the customized resource attribu" + + "tes associated with a project\022\316\002\n\030Update" + + "WorkflowAttributes\022/.flyteidl.admin.Work" + + "flowAttributesUpdateRequest\0320.flyteidl.a" + + "dmin.WorkflowAttributesUpdateResponse\"\316\001" + + "\202\323\344\223\002_\032Z/api/v1/workflow_attributes/{att" + + "ributes.project}/{attributes.domain}/{at" + + "tributes.workflow}:\001*\222Af\032dUpdate the cus" + + "tomized resource attributes associated w" + + "ith a project, domain and workflow combi" + + "nation\022\243\002\n\025GetWorkflowAttributes\022,.flyte" + + "idl.admin.WorkflowAttributesGetRequest\032-" + + ".flyteidl.admin.WorkflowAttributesGetRes" + + "ponse\"\254\001\202\323\344\223\002;\0229/api/v1/workflow_attribu" + + "tes/{project}/{domain}/{workflow}\222Ah\032fRe" + + "trieve the customized resource attribute" + + "s associated with a project, domain and " + + "workflow combination\022\255\002\n\030DeleteWorkflowA" + + "ttributes\022/.flyteidl.admin.WorkflowAttri" + + "butesDeleteRequest\0320.flyteidl.admin.Work" + + "flowAttributesDeleteResponse\"\255\001\202\323\344\223\002>*9/" + + "api/v1/workflow_attributes/{project}/{do" + + "main}/{workflow}:\001*\222Af\032dDelete the custo" + + "mized resource attributes associated wit" + + "h a project, domain and workflow combina" + + "tion\022\341\001\n\027ListMatchableAttributes\022..flyte" + + "idl.admin.ListMatchableAttributesRequest" + + "\032/.flyteidl.admin.ListMatchableAttribute" + + "sResponse\"e\202\323\344\223\002\036\022\034/api/v1/matchable_att" + + "ributes\222A>\032; + /** + * Calls UpdateProjectAttributes. + * @param request ProjectAttributesUpdateRequest message or plain object + * @param callback Node-style callback called with the error, if any, and ProjectAttributesUpdateResponse + */ + public updateProjectAttributes(request: flyteidl.admin.IProjectAttributesUpdateRequest, callback: flyteidl.service.AdminService.UpdateProjectAttributesCallback): void; + + /** + * Calls UpdateProjectAttributes. + * @param request ProjectAttributesUpdateRequest message or plain object + * @returns Promise + */ + public updateProjectAttributes(request: flyteidl.admin.IProjectAttributesUpdateRequest): Promise; + + /** + * Calls GetProjectAttributes. + * @param request ProjectAttributesGetRequest message or plain object + * @param callback Node-style callback called with the error, if any, and ProjectAttributesGetResponse + */ + public getProjectAttributes(request: flyteidl.admin.IProjectAttributesGetRequest, callback: flyteidl.service.AdminService.GetProjectAttributesCallback): void; + + /** + * Calls GetProjectAttributes. + * @param request ProjectAttributesGetRequest message or plain object + * @returns Promise + */ + public getProjectAttributes(request: flyteidl.admin.IProjectAttributesGetRequest): Promise; + + /** + * Calls DeleteProjectAttributes. + * @param request ProjectAttributesDeleteRequest message or plain object + * @param callback Node-style callback called with the error, if any, and ProjectAttributesDeleteResponse + */ + public deleteProjectAttributes(request: flyteidl.admin.IProjectAttributesDeleteRequest, callback: flyteidl.service.AdminService.DeleteProjectAttributesCallback): void; + + /** + * Calls DeleteProjectAttributes. + * @param request ProjectAttributesDeleteRequest message or plain object + * @returns Promise + */ + public deleteProjectAttributes(request: flyteidl.admin.IProjectAttributesDeleteRequest): Promise; + /** * Calls UpdateWorkflowAttributes. * @param request WorkflowAttributesUpdateRequest message or plain object @@ -16685,6 +17097,27 @@ export namespace flyteidl { */ type DeleteProjectDomainAttributesCallback = (error: (Error|null), response?: flyteidl.admin.ProjectDomainAttributesDeleteResponse) => void; + /** + * Callback as used by {@link flyteidl.service.AdminService#updateProjectAttributes}. + * @param error Error, if any + * @param [response] ProjectAttributesUpdateResponse + */ + type UpdateProjectAttributesCallback = (error: (Error|null), response?: flyteidl.admin.ProjectAttributesUpdateResponse) => void; + + /** + * Callback as used by {@link flyteidl.service.AdminService#getProjectAttributes}. + * @param error Error, if any + * @param [response] ProjectAttributesGetResponse + */ + type GetProjectAttributesCallback = (error: (Error|null), response?: flyteidl.admin.ProjectAttributesGetResponse) => void; + + /** + * Callback as used by {@link flyteidl.service.AdminService#deleteProjectAttributes}. + * @param error Error, if any + * @param [response] ProjectAttributesDeleteResponse + */ + type DeleteProjectAttributesCallback = (error: (Error|null), response?: flyteidl.admin.ProjectAttributesDeleteResponse) => void; + /** * Callback as used by {@link flyteidl.service.AdminService#updateWorkflowAttributes}. * @param error Error, if any diff --git a/flyteidl/gen/pb-js/flyteidl.js b/flyteidl/gen/pb-js/flyteidl.js index b98342b2b3..14abce0ca0 100644 --- a/flyteidl/gen/pb-js/flyteidl.js +++ b/flyteidl/gen/pb-js/flyteidl.js @@ -32568,6 +32568,821 @@ export const flyteidl = $root.flyteidl = (() => { return ProjectUpdateResponse; })(); + admin.ProjectAttributes = (function() { + + /** + * Properties of a ProjectAttributes. + * @memberof flyteidl.admin + * @interface IProjectAttributes + * @property {string|null} [project] ProjectAttributes project + * @property {flyteidl.admin.IMatchingAttributes|null} [matchingAttributes] ProjectAttributes matchingAttributes + */ + + /** + * Constructs a new ProjectAttributes. + * @memberof flyteidl.admin + * @classdesc Represents a ProjectAttributes. + * @implements IProjectAttributes + * @constructor + * @param {flyteidl.admin.IProjectAttributes=} [properties] Properties to set + */ + function ProjectAttributes(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ProjectAttributes project. + * @member {string} project + * @memberof flyteidl.admin.ProjectAttributes + * @instance + */ + ProjectAttributes.prototype.project = ""; + + /** + * ProjectAttributes matchingAttributes. + * @member {flyteidl.admin.IMatchingAttributes|null|undefined} matchingAttributes + * @memberof flyteidl.admin.ProjectAttributes + * @instance + */ + ProjectAttributes.prototype.matchingAttributes = null; + + /** + * Creates a new ProjectAttributes instance using the specified properties. + * @function create + * @memberof flyteidl.admin.ProjectAttributes + * @static + * @param {flyteidl.admin.IProjectAttributes=} [properties] Properties to set + * @returns {flyteidl.admin.ProjectAttributes} ProjectAttributes instance + */ + ProjectAttributes.create = function create(properties) { + return new ProjectAttributes(properties); + }; + + /** + * Encodes the specified ProjectAttributes message. Does not implicitly {@link flyteidl.admin.ProjectAttributes.verify|verify} messages. + * @function encode + * @memberof flyteidl.admin.ProjectAttributes + * @static + * @param {flyteidl.admin.IProjectAttributes} message ProjectAttributes message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ProjectAttributes.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.project != null && message.hasOwnProperty("project")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.project); + if (message.matchingAttributes != null && message.hasOwnProperty("matchingAttributes")) + $root.flyteidl.admin.MatchingAttributes.encode(message.matchingAttributes, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Decodes a ProjectAttributes message from the specified reader or buffer. + * @function decode + * @memberof flyteidl.admin.ProjectAttributes + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {flyteidl.admin.ProjectAttributes} ProjectAttributes + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ProjectAttributes.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.ProjectAttributes(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.project = reader.string(); + break; + case 2: + message.matchingAttributes = $root.flyteidl.admin.MatchingAttributes.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Verifies a ProjectAttributes message. + * @function verify + * @memberof flyteidl.admin.ProjectAttributes + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ProjectAttributes.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.project != null && message.hasOwnProperty("project")) + if (!$util.isString(message.project)) + return "project: string expected"; + if (message.matchingAttributes != null && message.hasOwnProperty("matchingAttributes")) { + let error = $root.flyteidl.admin.MatchingAttributes.verify(message.matchingAttributes); + if (error) + return "matchingAttributes." + error; + } + return null; + }; + + return ProjectAttributes; + })(); + + admin.ProjectAttributesUpdateRequest = (function() { + + /** + * Properties of a ProjectAttributesUpdateRequest. + * @memberof flyteidl.admin + * @interface IProjectAttributesUpdateRequest + * @property {flyteidl.admin.IProjectAttributes|null} [attributes] ProjectAttributesUpdateRequest attributes + */ + + /** + * Constructs a new ProjectAttributesUpdateRequest. + * @memberof flyteidl.admin + * @classdesc Represents a ProjectAttributesUpdateRequest. + * @implements IProjectAttributesUpdateRequest + * @constructor + * @param {flyteidl.admin.IProjectAttributesUpdateRequest=} [properties] Properties to set + */ + function ProjectAttributesUpdateRequest(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ProjectAttributesUpdateRequest attributes. + * @member {flyteidl.admin.IProjectAttributes|null|undefined} attributes + * @memberof flyteidl.admin.ProjectAttributesUpdateRequest + * @instance + */ + ProjectAttributesUpdateRequest.prototype.attributes = null; + + /** + * Creates a new ProjectAttributesUpdateRequest instance using the specified properties. + * @function create + * @memberof flyteidl.admin.ProjectAttributesUpdateRequest + * @static + * @param {flyteidl.admin.IProjectAttributesUpdateRequest=} [properties] Properties to set + * @returns {flyteidl.admin.ProjectAttributesUpdateRequest} ProjectAttributesUpdateRequest instance + */ + ProjectAttributesUpdateRequest.create = function create(properties) { + return new ProjectAttributesUpdateRequest(properties); + }; + + /** + * Encodes the specified ProjectAttributesUpdateRequest message. Does not implicitly {@link flyteidl.admin.ProjectAttributesUpdateRequest.verify|verify} messages. + * @function encode + * @memberof flyteidl.admin.ProjectAttributesUpdateRequest + * @static + * @param {flyteidl.admin.IProjectAttributesUpdateRequest} message ProjectAttributesUpdateRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ProjectAttributesUpdateRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.attributes != null && message.hasOwnProperty("attributes")) + $root.flyteidl.admin.ProjectAttributes.encode(message.attributes, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Decodes a ProjectAttributesUpdateRequest message from the specified reader or buffer. + * @function decode + * @memberof flyteidl.admin.ProjectAttributesUpdateRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {flyteidl.admin.ProjectAttributesUpdateRequest} ProjectAttributesUpdateRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ProjectAttributesUpdateRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.ProjectAttributesUpdateRequest(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.attributes = $root.flyteidl.admin.ProjectAttributes.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Verifies a ProjectAttributesUpdateRequest message. + * @function verify + * @memberof flyteidl.admin.ProjectAttributesUpdateRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ProjectAttributesUpdateRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.attributes != null && message.hasOwnProperty("attributes")) { + let error = $root.flyteidl.admin.ProjectAttributes.verify(message.attributes); + if (error) + return "attributes." + error; + } + return null; + }; + + return ProjectAttributesUpdateRequest; + })(); + + admin.ProjectAttributesUpdateResponse = (function() { + + /** + * Properties of a ProjectAttributesUpdateResponse. + * @memberof flyteidl.admin + * @interface IProjectAttributesUpdateResponse + */ + + /** + * Constructs a new ProjectAttributesUpdateResponse. + * @memberof flyteidl.admin + * @classdesc Represents a ProjectAttributesUpdateResponse. + * @implements IProjectAttributesUpdateResponse + * @constructor + * @param {flyteidl.admin.IProjectAttributesUpdateResponse=} [properties] Properties to set + */ + function ProjectAttributesUpdateResponse(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Creates a new ProjectAttributesUpdateResponse instance using the specified properties. + * @function create + * @memberof flyteidl.admin.ProjectAttributesUpdateResponse + * @static + * @param {flyteidl.admin.IProjectAttributesUpdateResponse=} [properties] Properties to set + * @returns {flyteidl.admin.ProjectAttributesUpdateResponse} ProjectAttributesUpdateResponse instance + */ + ProjectAttributesUpdateResponse.create = function create(properties) { + return new ProjectAttributesUpdateResponse(properties); + }; + + /** + * Encodes the specified ProjectAttributesUpdateResponse message. Does not implicitly {@link flyteidl.admin.ProjectAttributesUpdateResponse.verify|verify} messages. + * @function encode + * @memberof flyteidl.admin.ProjectAttributesUpdateResponse + * @static + * @param {flyteidl.admin.IProjectAttributesUpdateResponse} message ProjectAttributesUpdateResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ProjectAttributesUpdateResponse.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + return writer; + }; + + /** + * Decodes a ProjectAttributesUpdateResponse message from the specified reader or buffer. + * @function decode + * @memberof flyteidl.admin.ProjectAttributesUpdateResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {flyteidl.admin.ProjectAttributesUpdateResponse} ProjectAttributesUpdateResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ProjectAttributesUpdateResponse.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.ProjectAttributesUpdateResponse(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Verifies a ProjectAttributesUpdateResponse message. + * @function verify + * @memberof flyteidl.admin.ProjectAttributesUpdateResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ProjectAttributesUpdateResponse.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + return null; + }; + + return ProjectAttributesUpdateResponse; + })(); + + admin.ProjectAttributesGetRequest = (function() { + + /** + * Properties of a ProjectAttributesGetRequest. + * @memberof flyteidl.admin + * @interface IProjectAttributesGetRequest + * @property {string|null} [project] ProjectAttributesGetRequest project + * @property {flyteidl.admin.MatchableResource|null} [resourceType] ProjectAttributesGetRequest resourceType + */ + + /** + * Constructs a new ProjectAttributesGetRequest. + * @memberof flyteidl.admin + * @classdesc Represents a ProjectAttributesGetRequest. + * @implements IProjectAttributesGetRequest + * @constructor + * @param {flyteidl.admin.IProjectAttributesGetRequest=} [properties] Properties to set + */ + function ProjectAttributesGetRequest(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ProjectAttributesGetRequest project. + * @member {string} project + * @memberof flyteidl.admin.ProjectAttributesGetRequest + * @instance + */ + ProjectAttributesGetRequest.prototype.project = ""; + + /** + * ProjectAttributesGetRequest resourceType. + * @member {flyteidl.admin.MatchableResource} resourceType + * @memberof flyteidl.admin.ProjectAttributesGetRequest + * @instance + */ + ProjectAttributesGetRequest.prototype.resourceType = 0; + + /** + * Creates a new ProjectAttributesGetRequest instance using the specified properties. + * @function create + * @memberof flyteidl.admin.ProjectAttributesGetRequest + * @static + * @param {flyteidl.admin.IProjectAttributesGetRequest=} [properties] Properties to set + * @returns {flyteidl.admin.ProjectAttributesGetRequest} ProjectAttributesGetRequest instance + */ + ProjectAttributesGetRequest.create = function create(properties) { + return new ProjectAttributesGetRequest(properties); + }; + + /** + * Encodes the specified ProjectAttributesGetRequest message. Does not implicitly {@link flyteidl.admin.ProjectAttributesGetRequest.verify|verify} messages. + * @function encode + * @memberof flyteidl.admin.ProjectAttributesGetRequest + * @static + * @param {flyteidl.admin.IProjectAttributesGetRequest} message ProjectAttributesGetRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ProjectAttributesGetRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.project != null && message.hasOwnProperty("project")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.project); + if (message.resourceType != null && message.hasOwnProperty("resourceType")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.resourceType); + return writer; + }; + + /** + * Decodes a ProjectAttributesGetRequest message from the specified reader or buffer. + * @function decode + * @memberof flyteidl.admin.ProjectAttributesGetRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {flyteidl.admin.ProjectAttributesGetRequest} ProjectAttributesGetRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ProjectAttributesGetRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.ProjectAttributesGetRequest(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.project = reader.string(); + break; + case 2: + message.resourceType = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Verifies a ProjectAttributesGetRequest message. + * @function verify + * @memberof flyteidl.admin.ProjectAttributesGetRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ProjectAttributesGetRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.project != null && message.hasOwnProperty("project")) + if (!$util.isString(message.project)) + return "project: string expected"; + if (message.resourceType != null && message.hasOwnProperty("resourceType")) + switch (message.resourceType) { + default: + return "resourceType: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + break; + } + return null; + }; + + return ProjectAttributesGetRequest; + })(); + + admin.ProjectAttributesGetResponse = (function() { + + /** + * Properties of a ProjectAttributesGetResponse. + * @memberof flyteidl.admin + * @interface IProjectAttributesGetResponse + * @property {flyteidl.admin.IProjectAttributes|null} [attributes] ProjectAttributesGetResponse attributes + */ + + /** + * Constructs a new ProjectAttributesGetResponse. + * @memberof flyteidl.admin + * @classdesc Represents a ProjectAttributesGetResponse. + * @implements IProjectAttributesGetResponse + * @constructor + * @param {flyteidl.admin.IProjectAttributesGetResponse=} [properties] Properties to set + */ + function ProjectAttributesGetResponse(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ProjectAttributesGetResponse attributes. + * @member {flyteidl.admin.IProjectAttributes|null|undefined} attributes + * @memberof flyteidl.admin.ProjectAttributesGetResponse + * @instance + */ + ProjectAttributesGetResponse.prototype.attributes = null; + + /** + * Creates a new ProjectAttributesGetResponse instance using the specified properties. + * @function create + * @memberof flyteidl.admin.ProjectAttributesGetResponse + * @static + * @param {flyteidl.admin.IProjectAttributesGetResponse=} [properties] Properties to set + * @returns {flyteidl.admin.ProjectAttributesGetResponse} ProjectAttributesGetResponse instance + */ + ProjectAttributesGetResponse.create = function create(properties) { + return new ProjectAttributesGetResponse(properties); + }; + + /** + * Encodes the specified ProjectAttributesGetResponse message. Does not implicitly {@link flyteidl.admin.ProjectAttributesGetResponse.verify|verify} messages. + * @function encode + * @memberof flyteidl.admin.ProjectAttributesGetResponse + * @static + * @param {flyteidl.admin.IProjectAttributesGetResponse} message ProjectAttributesGetResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ProjectAttributesGetResponse.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.attributes != null && message.hasOwnProperty("attributes")) + $root.flyteidl.admin.ProjectAttributes.encode(message.attributes, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + return writer; + }; + + /** + * Decodes a ProjectAttributesGetResponse message from the specified reader or buffer. + * @function decode + * @memberof flyteidl.admin.ProjectAttributesGetResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {flyteidl.admin.ProjectAttributesGetResponse} ProjectAttributesGetResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ProjectAttributesGetResponse.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.ProjectAttributesGetResponse(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.attributes = $root.flyteidl.admin.ProjectAttributes.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Verifies a ProjectAttributesGetResponse message. + * @function verify + * @memberof flyteidl.admin.ProjectAttributesGetResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ProjectAttributesGetResponse.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.attributes != null && message.hasOwnProperty("attributes")) { + let error = $root.flyteidl.admin.ProjectAttributes.verify(message.attributes); + if (error) + return "attributes." + error; + } + return null; + }; + + return ProjectAttributesGetResponse; + })(); + + admin.ProjectAttributesDeleteRequest = (function() { + + /** + * Properties of a ProjectAttributesDeleteRequest. + * @memberof flyteidl.admin + * @interface IProjectAttributesDeleteRequest + * @property {string|null} [project] ProjectAttributesDeleteRequest project + * @property {flyteidl.admin.MatchableResource|null} [resourceType] ProjectAttributesDeleteRequest resourceType + */ + + /** + * Constructs a new ProjectAttributesDeleteRequest. + * @memberof flyteidl.admin + * @classdesc Represents a ProjectAttributesDeleteRequest. + * @implements IProjectAttributesDeleteRequest + * @constructor + * @param {flyteidl.admin.IProjectAttributesDeleteRequest=} [properties] Properties to set + */ + function ProjectAttributesDeleteRequest(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ProjectAttributesDeleteRequest project. + * @member {string} project + * @memberof flyteidl.admin.ProjectAttributesDeleteRequest + * @instance + */ + ProjectAttributesDeleteRequest.prototype.project = ""; + + /** + * ProjectAttributesDeleteRequest resourceType. + * @member {flyteidl.admin.MatchableResource} resourceType + * @memberof flyteidl.admin.ProjectAttributesDeleteRequest + * @instance + */ + ProjectAttributesDeleteRequest.prototype.resourceType = 0; + + /** + * Creates a new ProjectAttributesDeleteRequest instance using the specified properties. + * @function create + * @memberof flyteidl.admin.ProjectAttributesDeleteRequest + * @static + * @param {flyteidl.admin.IProjectAttributesDeleteRequest=} [properties] Properties to set + * @returns {flyteidl.admin.ProjectAttributesDeleteRequest} ProjectAttributesDeleteRequest instance + */ + ProjectAttributesDeleteRequest.create = function create(properties) { + return new ProjectAttributesDeleteRequest(properties); + }; + + /** + * Encodes the specified ProjectAttributesDeleteRequest message. Does not implicitly {@link flyteidl.admin.ProjectAttributesDeleteRequest.verify|verify} messages. + * @function encode + * @memberof flyteidl.admin.ProjectAttributesDeleteRequest + * @static + * @param {flyteidl.admin.IProjectAttributesDeleteRequest} message ProjectAttributesDeleteRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ProjectAttributesDeleteRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.project != null && message.hasOwnProperty("project")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.project); + if (message.resourceType != null && message.hasOwnProperty("resourceType")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.resourceType); + return writer; + }; + + /** + * Decodes a ProjectAttributesDeleteRequest message from the specified reader or buffer. + * @function decode + * @memberof flyteidl.admin.ProjectAttributesDeleteRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {flyteidl.admin.ProjectAttributesDeleteRequest} ProjectAttributesDeleteRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ProjectAttributesDeleteRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.ProjectAttributesDeleteRequest(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.project = reader.string(); + break; + case 2: + message.resourceType = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Verifies a ProjectAttributesDeleteRequest message. + * @function verify + * @memberof flyteidl.admin.ProjectAttributesDeleteRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ProjectAttributesDeleteRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.project != null && message.hasOwnProperty("project")) + if (!$util.isString(message.project)) + return "project: string expected"; + if (message.resourceType != null && message.hasOwnProperty("resourceType")) + switch (message.resourceType) { + default: + return "resourceType: enum value expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + break; + } + return null; + }; + + return ProjectAttributesDeleteRequest; + })(); + + admin.ProjectAttributesDeleteResponse = (function() { + + /** + * Properties of a ProjectAttributesDeleteResponse. + * @memberof flyteidl.admin + * @interface IProjectAttributesDeleteResponse + */ + + /** + * Constructs a new ProjectAttributesDeleteResponse. + * @memberof flyteidl.admin + * @classdesc Represents a ProjectAttributesDeleteResponse. + * @implements IProjectAttributesDeleteResponse + * @constructor + * @param {flyteidl.admin.IProjectAttributesDeleteResponse=} [properties] Properties to set + */ + function ProjectAttributesDeleteResponse(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Creates a new ProjectAttributesDeleteResponse instance using the specified properties. + * @function create + * @memberof flyteidl.admin.ProjectAttributesDeleteResponse + * @static + * @param {flyteidl.admin.IProjectAttributesDeleteResponse=} [properties] Properties to set + * @returns {flyteidl.admin.ProjectAttributesDeleteResponse} ProjectAttributesDeleteResponse instance + */ + ProjectAttributesDeleteResponse.create = function create(properties) { + return new ProjectAttributesDeleteResponse(properties); + }; + + /** + * Encodes the specified ProjectAttributesDeleteResponse message. Does not implicitly {@link flyteidl.admin.ProjectAttributesDeleteResponse.verify|verify} messages. + * @function encode + * @memberof flyteidl.admin.ProjectAttributesDeleteResponse + * @static + * @param {flyteidl.admin.IProjectAttributesDeleteResponse} message ProjectAttributesDeleteResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ProjectAttributesDeleteResponse.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + return writer; + }; + + /** + * Decodes a ProjectAttributesDeleteResponse message from the specified reader or buffer. + * @function decode + * @memberof flyteidl.admin.ProjectAttributesDeleteResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {flyteidl.admin.ProjectAttributesDeleteResponse} ProjectAttributesDeleteResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ProjectAttributesDeleteResponse.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.flyteidl.admin.ProjectAttributesDeleteResponse(); + while (reader.pos < end) { + let tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Verifies a ProjectAttributesDeleteResponse message. + * @function verify + * @memberof flyteidl.admin.ProjectAttributesDeleteResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ProjectAttributesDeleteResponse.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + return null; + }; + + return ProjectAttributesDeleteResponse; + })(); + admin.ProjectDomainAttributes = (function() { /** @@ -38800,6 +39615,105 @@ export const flyteidl = $root.flyteidl = (() => { * @variation 2 */ + /** + * Callback as used by {@link flyteidl.service.AdminService#updateProjectAttributes}. + * @memberof flyteidl.service.AdminService + * @typedef UpdateProjectAttributesCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {flyteidl.admin.ProjectAttributesUpdateResponse} [response] ProjectAttributesUpdateResponse + */ + + /** + * Calls UpdateProjectAttributes. + * @function updateProjectAttributes + * @memberof flyteidl.service.AdminService + * @instance + * @param {flyteidl.admin.IProjectAttributesUpdateRequest} request ProjectAttributesUpdateRequest message or plain object + * @param {flyteidl.service.AdminService.UpdateProjectAttributesCallback} callback Node-style callback called with the error, if any, and ProjectAttributesUpdateResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(AdminService.prototype.updateProjectAttributes = function updateProjectAttributes(request, callback) { + return this.rpcCall(updateProjectAttributes, $root.flyteidl.admin.ProjectAttributesUpdateRequest, $root.flyteidl.admin.ProjectAttributesUpdateResponse, request, callback); + }, "name", { value: "UpdateProjectAttributes" }); + + /** + * Calls UpdateProjectAttributes. + * @function updateProjectAttributes + * @memberof flyteidl.service.AdminService + * @instance + * @param {flyteidl.admin.IProjectAttributesUpdateRequest} request ProjectAttributesUpdateRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link flyteidl.service.AdminService#getProjectAttributes}. + * @memberof flyteidl.service.AdminService + * @typedef GetProjectAttributesCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {flyteidl.admin.ProjectAttributesGetResponse} [response] ProjectAttributesGetResponse + */ + + /** + * Calls GetProjectAttributes. + * @function getProjectAttributes + * @memberof flyteidl.service.AdminService + * @instance + * @param {flyteidl.admin.IProjectAttributesGetRequest} request ProjectAttributesGetRequest message or plain object + * @param {flyteidl.service.AdminService.GetProjectAttributesCallback} callback Node-style callback called with the error, if any, and ProjectAttributesGetResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(AdminService.prototype.getProjectAttributes = function getProjectAttributes(request, callback) { + return this.rpcCall(getProjectAttributes, $root.flyteidl.admin.ProjectAttributesGetRequest, $root.flyteidl.admin.ProjectAttributesGetResponse, request, callback); + }, "name", { value: "GetProjectAttributes" }); + + /** + * Calls GetProjectAttributes. + * @function getProjectAttributes + * @memberof flyteidl.service.AdminService + * @instance + * @param {flyteidl.admin.IProjectAttributesGetRequest} request ProjectAttributesGetRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link flyteidl.service.AdminService#deleteProjectAttributes}. + * @memberof flyteidl.service.AdminService + * @typedef DeleteProjectAttributesCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {flyteidl.admin.ProjectAttributesDeleteResponse} [response] ProjectAttributesDeleteResponse + */ + + /** + * Calls DeleteProjectAttributes. + * @function deleteProjectAttributes + * @memberof flyteidl.service.AdminService + * @instance + * @param {flyteidl.admin.IProjectAttributesDeleteRequest} request ProjectAttributesDeleteRequest message or plain object + * @param {flyteidl.service.AdminService.DeleteProjectAttributesCallback} callback Node-style callback called with the error, if any, and ProjectAttributesDeleteResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(AdminService.prototype.deleteProjectAttributes = function deleteProjectAttributes(request, callback) { + return this.rpcCall(deleteProjectAttributes, $root.flyteidl.admin.ProjectAttributesDeleteRequest, $root.flyteidl.admin.ProjectAttributesDeleteResponse, request, callback); + }, "name", { value: "DeleteProjectAttributes" }); + + /** + * Calls DeleteProjectAttributes. + * @function deleteProjectAttributes + * @memberof flyteidl.service.AdminService + * @instance + * @param {flyteidl.admin.IProjectAttributesDeleteRequest} request ProjectAttributesDeleteRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + /** * Callback as used by {@link flyteidl.service.AdminService#updateWorkflowAttributes}. * @memberof flyteidl.service.AdminService diff --git a/flyteidl/gen/pb_python/flyteidl/admin/project_attributes_pb2.py b/flyteidl/gen/pb_python/flyteidl/admin/project_attributes_pb2.py new file mode 100644 index 0000000000..8be0d01ad7 --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/admin/project_attributes_pb2.py @@ -0,0 +1,319 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: flyteidl/admin/project_attributes.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from flyteidl.admin import matchable_resource_pb2 as flyteidl_dot_admin_dot_matchable__resource__pb2 + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='flyteidl/admin/project_attributes.proto', + package='flyteidl.admin', + syntax='proto3', + serialized_options=_b('Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/admin'), + serialized_pb=_b('\n\'flyteidl/admin/project_attributes.proto\x12\x0e\x66lyteidl.admin\x1a\'flyteidl/admin/matchable_resource.proto\"e\n\x11ProjectAttributes\x12\x0f\n\x07project\x18\x01 \x01(\t\x12?\n\x13matching_attributes\x18\x02 \x01(\x0b\x32\".flyteidl.admin.MatchingAttributes\"W\n\x1eProjectAttributesUpdateRequest\x12\x35\n\nattributes\x18\x01 \x01(\x0b\x32!.flyteidl.admin.ProjectAttributes\"!\n\x1fProjectAttributesUpdateResponse\"h\n\x1bProjectAttributesGetRequest\x12\x0f\n\x07project\x18\x01 \x01(\t\x12\x38\n\rresource_type\x18\x02 \x01(\x0e\x32!.flyteidl.admin.MatchableResource\"U\n\x1cProjectAttributesGetResponse\x12\x35\n\nattributes\x18\x01 \x01(\x0b\x32!.flyteidl.admin.ProjectAttributes\"k\n\x1eProjectAttributesDeleteRequest\x12\x0f\n\x07project\x18\x01 \x01(\t\x12\x38\n\rresource_type\x18\x02 \x01(\x0e\x32!.flyteidl.admin.MatchableResource\"!\n\x1fProjectAttributesDeleteResponseB7Z5github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/adminb\x06proto3') + , + dependencies=[flyteidl_dot_admin_dot_matchable__resource__pb2.DESCRIPTOR,]) + + + + +_PROJECTATTRIBUTES = _descriptor.Descriptor( + name='ProjectAttributes', + full_name='flyteidl.admin.ProjectAttributes', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='project', full_name='flyteidl.admin.ProjectAttributes.project', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='matching_attributes', full_name='flyteidl.admin.ProjectAttributes.matching_attributes', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=100, + serialized_end=201, +) + + +_PROJECTATTRIBUTESUPDATEREQUEST = _descriptor.Descriptor( + name='ProjectAttributesUpdateRequest', + full_name='flyteidl.admin.ProjectAttributesUpdateRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='attributes', full_name='flyteidl.admin.ProjectAttributesUpdateRequest.attributes', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=203, + serialized_end=290, +) + + +_PROJECTATTRIBUTESUPDATERESPONSE = _descriptor.Descriptor( + name='ProjectAttributesUpdateResponse', + full_name='flyteidl.admin.ProjectAttributesUpdateResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=292, + serialized_end=325, +) + + +_PROJECTATTRIBUTESGETREQUEST = _descriptor.Descriptor( + name='ProjectAttributesGetRequest', + full_name='flyteidl.admin.ProjectAttributesGetRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='project', full_name='flyteidl.admin.ProjectAttributesGetRequest.project', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='resource_type', full_name='flyteidl.admin.ProjectAttributesGetRequest.resource_type', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=327, + serialized_end=431, +) + + +_PROJECTATTRIBUTESGETRESPONSE = _descriptor.Descriptor( + name='ProjectAttributesGetResponse', + full_name='flyteidl.admin.ProjectAttributesGetResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='attributes', full_name='flyteidl.admin.ProjectAttributesGetResponse.attributes', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=433, + serialized_end=518, +) + + +_PROJECTATTRIBUTESDELETEREQUEST = _descriptor.Descriptor( + name='ProjectAttributesDeleteRequest', + full_name='flyteidl.admin.ProjectAttributesDeleteRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='project', full_name='flyteidl.admin.ProjectAttributesDeleteRequest.project', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='resource_type', full_name='flyteidl.admin.ProjectAttributesDeleteRequest.resource_type', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=520, + serialized_end=627, +) + + +_PROJECTATTRIBUTESDELETERESPONSE = _descriptor.Descriptor( + name='ProjectAttributesDeleteResponse', + full_name='flyteidl.admin.ProjectAttributesDeleteResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=629, + serialized_end=662, +) + +_PROJECTATTRIBUTES.fields_by_name['matching_attributes'].message_type = flyteidl_dot_admin_dot_matchable__resource__pb2._MATCHINGATTRIBUTES +_PROJECTATTRIBUTESUPDATEREQUEST.fields_by_name['attributes'].message_type = _PROJECTATTRIBUTES +_PROJECTATTRIBUTESGETREQUEST.fields_by_name['resource_type'].enum_type = flyteidl_dot_admin_dot_matchable__resource__pb2._MATCHABLERESOURCE +_PROJECTATTRIBUTESGETRESPONSE.fields_by_name['attributes'].message_type = _PROJECTATTRIBUTES +_PROJECTATTRIBUTESDELETEREQUEST.fields_by_name['resource_type'].enum_type = flyteidl_dot_admin_dot_matchable__resource__pb2._MATCHABLERESOURCE +DESCRIPTOR.message_types_by_name['ProjectAttributes'] = _PROJECTATTRIBUTES +DESCRIPTOR.message_types_by_name['ProjectAttributesUpdateRequest'] = _PROJECTATTRIBUTESUPDATEREQUEST +DESCRIPTOR.message_types_by_name['ProjectAttributesUpdateResponse'] = _PROJECTATTRIBUTESUPDATERESPONSE +DESCRIPTOR.message_types_by_name['ProjectAttributesGetRequest'] = _PROJECTATTRIBUTESGETREQUEST +DESCRIPTOR.message_types_by_name['ProjectAttributesGetResponse'] = _PROJECTATTRIBUTESGETRESPONSE +DESCRIPTOR.message_types_by_name['ProjectAttributesDeleteRequest'] = _PROJECTATTRIBUTESDELETEREQUEST +DESCRIPTOR.message_types_by_name['ProjectAttributesDeleteResponse'] = _PROJECTATTRIBUTESDELETERESPONSE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ProjectAttributes = _reflection.GeneratedProtocolMessageType('ProjectAttributes', (_message.Message,), dict( + DESCRIPTOR = _PROJECTATTRIBUTES, + __module__ = 'flyteidl.admin.project_attributes_pb2' + # @@protoc_insertion_point(class_scope:flyteidl.admin.ProjectAttributes) + )) +_sym_db.RegisterMessage(ProjectAttributes) + +ProjectAttributesUpdateRequest = _reflection.GeneratedProtocolMessageType('ProjectAttributesUpdateRequest', (_message.Message,), dict( + DESCRIPTOR = _PROJECTATTRIBUTESUPDATEREQUEST, + __module__ = 'flyteidl.admin.project_attributes_pb2' + # @@protoc_insertion_point(class_scope:flyteidl.admin.ProjectAttributesUpdateRequest) + )) +_sym_db.RegisterMessage(ProjectAttributesUpdateRequest) + +ProjectAttributesUpdateResponse = _reflection.GeneratedProtocolMessageType('ProjectAttributesUpdateResponse', (_message.Message,), dict( + DESCRIPTOR = _PROJECTATTRIBUTESUPDATERESPONSE, + __module__ = 'flyteidl.admin.project_attributes_pb2' + # @@protoc_insertion_point(class_scope:flyteidl.admin.ProjectAttributesUpdateResponse) + )) +_sym_db.RegisterMessage(ProjectAttributesUpdateResponse) + +ProjectAttributesGetRequest = _reflection.GeneratedProtocolMessageType('ProjectAttributesGetRequest', (_message.Message,), dict( + DESCRIPTOR = _PROJECTATTRIBUTESGETREQUEST, + __module__ = 'flyteidl.admin.project_attributes_pb2' + # @@protoc_insertion_point(class_scope:flyteidl.admin.ProjectAttributesGetRequest) + )) +_sym_db.RegisterMessage(ProjectAttributesGetRequest) + +ProjectAttributesGetResponse = _reflection.GeneratedProtocolMessageType('ProjectAttributesGetResponse', (_message.Message,), dict( + DESCRIPTOR = _PROJECTATTRIBUTESGETRESPONSE, + __module__ = 'flyteidl.admin.project_attributes_pb2' + # @@protoc_insertion_point(class_scope:flyteidl.admin.ProjectAttributesGetResponse) + )) +_sym_db.RegisterMessage(ProjectAttributesGetResponse) + +ProjectAttributesDeleteRequest = _reflection.GeneratedProtocolMessageType('ProjectAttributesDeleteRequest', (_message.Message,), dict( + DESCRIPTOR = _PROJECTATTRIBUTESDELETEREQUEST, + __module__ = 'flyteidl.admin.project_attributes_pb2' + # @@protoc_insertion_point(class_scope:flyteidl.admin.ProjectAttributesDeleteRequest) + )) +_sym_db.RegisterMessage(ProjectAttributesDeleteRequest) + +ProjectAttributesDeleteResponse = _reflection.GeneratedProtocolMessageType('ProjectAttributesDeleteResponse', (_message.Message,), dict( + DESCRIPTOR = _PROJECTATTRIBUTESDELETERESPONSE, + __module__ = 'flyteidl.admin.project_attributes_pb2' + # @@protoc_insertion_point(class_scope:flyteidl.admin.ProjectAttributesDeleteResponse) + )) +_sym_db.RegisterMessage(ProjectAttributesDeleteResponse) + + +DESCRIPTOR._options = None +# @@protoc_insertion_point(module_scope) diff --git a/flyteidl/gen/pb_python/flyteidl/admin/project_attributes_pb2_grpc.py b/flyteidl/gen/pb_python/flyteidl/admin/project_attributes_pb2_grpc.py new file mode 100644 index 0000000000..a89435267c --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/admin/project_attributes_pb2_grpc.py @@ -0,0 +1,3 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +import grpc + diff --git a/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py b/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py index 4a94aba321..b6fae48391 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py +++ b/flyteidl/gen/pb_python/flyteidl/service/admin_pb2.py @@ -16,6 +16,7 @@ from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2 from flyteidl.admin import project_pb2 as flyteidl_dot_admin_dot_project__pb2 from flyteidl.admin import project_domain_attributes_pb2 as flyteidl_dot_admin_dot_project__domain__attributes__pb2 +from flyteidl.admin import project_attributes_pb2 as flyteidl_dot_admin_dot_project__attributes__pb2 from flyteidl.admin import task_pb2 as flyteidl_dot_admin_dot_task__pb2 from flyteidl.admin import workflow_pb2 as flyteidl_dot_admin_dot_workflow__pb2 from flyteidl.admin import workflow_attributes_pb2 as flyteidl_dot_admin_dot_workflow__attributes__pb2 @@ -35,9 +36,9 @@ package='flyteidl.service', syntax='proto3', serialized_options=_b('Z7github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/service'), - serialized_pb=_b('\n\x1c\x66lyteidl/service/admin.proto\x12\x10\x66lyteidl.service\x1a\x1cgoogle/api/annotations.proto\x1a\x1c\x66lyteidl/admin/project.proto\x1a.flyteidl/admin/project_domain_attributes.proto\x1a\x19\x66lyteidl/admin/task.proto\x1a\x1d\x66lyteidl/admin/workflow.proto\x1a(flyteidl/admin/workflow_attributes.proto\x1a flyteidl/admin/launch_plan.proto\x1a\x1a\x66lyteidl/admin/event.proto\x1a\x1e\x66lyteidl/admin/execution.proto\x1a\'flyteidl/admin/matchable_resource.proto\x1a#flyteidl/admin/node_execution.proto\x1a#flyteidl/admin/task_execution.proto\x1a\x1c\x66lyteidl/admin/version.proto\x1a\x1b\x66lyteidl/admin/common.proto\x1a,protoc-gen-swagger/options/annotations.proto2\x9eh\n\x0c\x41\x64minService\x12\xc5\x02\n\nCreateTask\x12!.flyteidl.admin.TaskCreateRequest\x1a\".flyteidl.admin.TaskCreateResponse\"\xef\x01\x82\xd3\xe4\x93\x02\x12\"\r/api/v1/tasks:\x01*\x92\x41\xd3\x01\x1a&Create and register a task definition.JB\n\x03\x34\x30\x30\x12;\n9Returned for bad request that may have failed validation.Je\n\x03\x34\x30\x39\x12^\n\\Returned for a request that references an identical entity that has already been registered.\x12\xb2\x01\n\x07GetTask\x12 .flyteidl.admin.ObjectGetRequest\x1a\x14.flyteidl.admin.Task\"o\x82\xd3\xe4\x93\x02?\x12=/api/v1/tasks/{id.project}/{id.domain}/{id.name}/{id.version}\x92\x41\'\x1a%Retrieve an existing task definition.\x12\xde\x01\n\x0bListTaskIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"r\x82\xd3\xe4\x93\x02%\x12#/api/v1/task_ids/{project}/{domain}\x92\x41\x44\x1a\x42\x46\x65tch existing task definition identifiers matching input filters.\x12\xeb\x01\n\tListTasks\x12#.flyteidl.admin.ResourceListRequest\x1a\x18.flyteidl.admin.TaskList\"\x9e\x01\x82\xd3\xe4\x93\x02\\\x12\x30/api/v1/tasks/{id.project}/{id.domain}/{id.name}Z(\x12&/api/v1/tasks/{id.project}/{id.domain}\x92\x41\x39\x1a\x37\x46\x65tch existing task definitions matching input filters.\x12\xd9\x02\n\x0e\x43reateWorkflow\x12%.flyteidl.admin.WorkflowCreateRequest\x1a&.flyteidl.admin.WorkflowCreateResponse\"\xf7\x01\x82\xd3\xe4\x93\x02\x16\"\x11/api/v1/workflows:\x01*\x92\x41\xd7\x01\x1a*Create and register a workflow definition.JB\n\x03\x34\x30\x30\x12;\n9Returned for bad request that may have failed validation.Je\n\x03\x34\x30\x39\x12^\n\\Returned for a request that references an identical entity that has already been registered.\x12\xc2\x01\n\x0bGetWorkflow\x12 .flyteidl.admin.ObjectGetRequest\x1a\x18.flyteidl.admin.Workflow\"w\x82\xd3\xe4\x93\x02\x43\x12\x41/api/v1/workflows/{id.project}/{id.domain}/{id.name}/{id.version}\x92\x41+\x1a)Retrieve an existing workflow definition.\x12\xed\x01\n\x0fListWorkflowIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"}\x82\xd3\xe4\x93\x02)\x12\'/api/v1/workflow_ids/{project}/{domain}\x92\x41K\x1aIFetch an existing workflow definition identifiers matching input filters.\x12\xff\x01\n\rListWorkflows\x12#.flyteidl.admin.ResourceListRequest\x1a\x1c.flyteidl.admin.WorkflowList\"\xaa\x01\x82\xd3\xe4\x93\x02\x64\x12\x34/api/v1/workflows/{id.project}/{id.domain}/{id.name}Z,\x12*/api/v1/workflows/{id.project}/{id.domain}\x92\x41=\x1a;Fetch existing workflow definitions matching input filters.\x12\xe5\x02\n\x10\x43reateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanCreateRequest\x1a(.flyteidl.admin.LaunchPlanCreateResponse\"\xfd\x01\x82\xd3\xe4\x93\x02\x19\"\x14/api/v1/launch_plans:\x01*\x92\x41\xda\x01\x1a-Create and register a launch plan definition.JB\n\x03\x34\x30\x30\x12;\n9Returned for bad request that may have failed validation.Je\n\x03\x34\x30\x39\x12^\n\\Returned for a request that references an identical entity that has already been registered.\x12\xcc\x01\n\rGetLaunchPlan\x12 .flyteidl.admin.ObjectGetRequest\x1a\x1a.flyteidl.admin.LaunchPlan\"}\x82\xd3\xe4\x93\x02\x46\x12\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}\x92\x41.\x1a,Retrieve an existing launch plan definition.\x12\xf3\x01\n\x13GetActiveLaunchPlan\x12\'.flyteidl.admin.ActiveLaunchPlanRequest\x1a\x1a.flyteidl.admin.LaunchPlan\"\x96\x01\x82\xd3\xe4\x93\x02@\x12>/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}\x92\x41M\x1aKRetrieve the active launch plan version specified by input request filters.\x12\xeb\x01\n\x15ListActiveLaunchPlans\x12+.flyteidl.admin.ActiveLaunchPlanListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"\x84\x01\x82\xd3\xe4\x93\x02\x30\x12./api/v1/active_launch_plans/{project}/{domain}\x92\x41K\x1aIFetch the active launch plan versions specified by input request filters.\x12\xf3\x01\n\x11ListLaunchPlanIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"\x80\x01\x82\xd3\xe4\x93\x02,\x12*/api/v1/launch_plan_ids/{project}/{domain}\x92\x41K\x1aIFetch existing launch plan definition identifiers matching input filters.\x12\x8c\x02\n\x0fListLaunchPlans\x12#.flyteidl.admin.ResourceListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"\xb3\x01\x82\xd3\xe4\x93\x02j\x12\x37/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}Z/\x12-/api/v1/launch_plans/{id.project}/{id.domain}\x92\x41@\x1a>Fetch existing launch plan definitions matching input filters.\x12\xc0\x06\n\x10UpdateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanUpdateRequest\x1a(.flyteidl.admin.LaunchPlanUpdateResponse\"\xd8\x05\x82\xd3\xe4\x93\x02I\x1a\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}:\x01*\x92\x41\x85\x05\x1a\x82\x05Update 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.\x12\xa2\x01\n\x0f\x43reateExecution\x12&.flyteidl.admin.ExecutionCreateRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\">\x82\xd3\xe4\x93\x02\x17\"\x12/api/v1/executions:\x01*\x92\x41\x1e\x1a\x1c\x43reate a workflow execution.\x12\xb1\x01\n\x11RelaunchExecution\x12(.flyteidl.admin.ExecutionRelaunchRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"I\x82\xd3\xe4\x93\x02 \"\x1b/api/v1/executions/relaunch:\x01*\x92\x41 \x1a\x1eRelaunch a workflow execution.\x12\x9d\x05\n\x10RecoverExecution\x12\'.flyteidl.admin.ExecutionRecoverRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"\xb6\x04\x82\xd3\xe4\x93\x02\x1f\"\x1a/api/v1/executions/recover:\x01*\x92\x41\x8d\x04\x1a\x8a\x04Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again.\x12\xc2\x01\n\x0cGetExecution\x12+.flyteidl.admin.WorkflowExecutionGetRequest\x1a\x19.flyteidl.admin.Execution\"j\x82\xd3\xe4\x93\x02\x37\x12\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x92\x41*\x1a(Retrieve an existing workflow execution.\x12\xd6\x01\n\x0fUpdateExecution\x12&.flyteidl.admin.ExecutionUpdateRequest\x1a\'.flyteidl.admin.ExecutionUpdateResponse\"r\x82\xd3\xe4\x93\x02:\x1a\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}:\x01*\x92\x41/\x1a-Update execution belonging to project domain.\x12\x82\x02\n\x10GetExecutionData\x12/.flyteidl.admin.WorkflowExecutionGetDataRequest\x1a\x30.flyteidl.admin.WorkflowExecutionGetDataResponse\"\x8a\x01\x82\xd3\xe4\x93\x02<\x12:/api/v1/data/executions/{id.project}/{id.domain}/{id.name}\x92\x41\x45\x1a\x43Retrieve input and output data from an existing workflow execution.\x12\xc8\x01\n\x0eListExecutions\x12#.flyteidl.admin.ResourceListRequest\x1a\x1d.flyteidl.admin.ExecutionList\"r\x82\xd3\xe4\x93\x02-\x12+/api/v1/executions/{id.project}/{id.domain}\x92\x41<\x1a:Fetch existing workflow executions matching input filters.\x12\xf4\x01\n\x12TerminateExecution\x12).flyteidl.admin.ExecutionTerminateRequest\x1a*.flyteidl.admin.ExecutionTerminateResponse\"\x86\x01\x82\xd3\xe4\x93\x02:*5/api/v1/executions/{id.project}/{id.domain}/{id.name}:\x01*\x92\x41\x43\x1a\x41Terminate the active workflow execution specified in the request.\x12\xfc\x01\n\x10GetNodeExecution\x12\'.flyteidl.admin.NodeExecutionGetRequest\x1a\x1d.flyteidl.admin.NodeExecution\"\x9f\x01\x82\xd3\xe4\x93\x02p\x12n/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x92\x41&\x1a$Retrieve an existing node execution.\x12\x9a\x02\n\x12ListNodeExecutions\x12(.flyteidl.admin.NodeExecutionListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\xb6\x01\x82\xd3\xe4\x93\x02u\x12s/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x92\x41\x38\x1a\x36\x46\x65tch existing node executions matching input filters.\x12\xef\x04\n\x19ListNodeExecutionsForTask\x12/.flyteidl.admin.NodeExecutionForTaskListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\xfd\x03\x82\xd3\xe4\x93\x02\xac\x03\x12\xa9\x03/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}\x92\x41G\x1a\x45\x46\x65tch child node executions launched by the specified task execution.\x12\xb3\x02\n\x14GetNodeExecutionData\x12+.flyteidl.admin.NodeExecutionGetDataRequest\x1a,.flyteidl.admin.NodeExecutionGetDataResponse\"\xbf\x01\x82\xd3\xe4\x93\x02u\x12s/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x92\x41\x41\x1a?Retrieve input and output data from an existing node execution.\x12\x97\x01\n\x0fRegisterProject\x12&.flyteidl.admin.ProjectRegisterRequest\x1a\'.flyteidl.admin.ProjectRegisterResponse\"3\x82\xd3\xe4\x93\x02\x15\"\x10/api/v1/projects:\x01*\x92\x41\x15\x1a\x13Register a project.\x12\x87\x01\n\rUpdateProject\x12\x17.flyteidl.admin.Project\x1a%.flyteidl.admin.ProjectUpdateResponse\"6\x82\xd3\xe4\x93\x02\x1a\x1a\x15/api/v1/projects/{id}:\x01*\x92\x41\x13\x1a\x11Update a project.\x12\x85\x01\n\x0cListProjects\x12\".flyteidl.admin.ProjectListRequest\x1a\x18.flyteidl.admin.Projects\"7\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v1/projects\x92\x41\x1c\x1a\x1a\x46\x65tch registered projects.\x12\xdd\x01\n\x13\x43reateWorkflowEvent\x12-.flyteidl.admin.WorkflowExecutionEventRequest\x1a..flyteidl.admin.WorkflowExecutionEventResponse\"g\x82\xd3\xe4\x93\x02\x1d\"\x18/api/v1/events/workflows:\x01*\x92\x41\x41\x1a?Create a workflow execution event recording a phase transition.\x12\xc9\x01\n\x0f\x43reateNodeEvent\x12).flyteidl.admin.NodeExecutionEventRequest\x1a*.flyteidl.admin.NodeExecutionEventResponse\"_\x82\xd3\xe4\x93\x02\x19\"\x14/api/v1/events/nodes:\x01*\x92\x41=\x1a;Create a node execution event recording a phase transition.\x12\xc9\x01\n\x0f\x43reateTaskEvent\x12).flyteidl.admin.TaskExecutionEventRequest\x1a*.flyteidl.admin.TaskExecutionEventResponse\"_\x82\xd3\xe4\x93\x02\x19\"\x14/api/v1/events/tasks:\x01*\x92\x41=\x1a;Create a task execution event recording a phase transition.\x12\xa9\x03\n\x10GetTaskExecution\x12\'.flyteidl.admin.TaskExecutionGetRequest\x1a\x1d.flyteidl.admin.TaskExecution\"\xcc\x02\x82\xd3\xe4\x93\x02\x9c\x02\x12\x99\x02/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}\x92\x41&\x1a$Retrieve an existing task execution.\x12\xd3\x02\n\x12ListTaskExecutions\x12(.flyteidl.admin.TaskExecutionListRequest\x1a!.flyteidl.admin.TaskExecutionList\"\xef\x01\x82\xd3\xe4\x93\x02\xad\x01\x12\xaa\x01/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}\x92\x41\x38\x1a\x36\x46\x65tch existing task executions matching input filters.\x12\xe0\x03\n\x14GetTaskExecutionData\x12+.flyteidl.admin.TaskExecutionGetDataRequest\x1a,.flyteidl.admin.TaskExecutionGetDataResponse\"\xec\x02\x82\xd3\xe4\x93\x02\xa1\x02\x12\x9e\x02/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}\x92\x41\x41\x1a?Retrieve input and output data from an existing task execution.\x12\xbf\x02\n\x1dUpdateProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesUpdateRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesUpdateResponse\"\xb0\x01\x82\xd3\xe4\x93\x02O\x1aJ/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}:\x01*\x92\x41X\x1aVUpdate the customized resource attributes associated with a project-domain combination\x12\x9f\x02\n\x1aGetProjectDomainAttributes\x12\x31.flyteidl.admin.ProjectDomainAttributesGetRequest\x1a\x32.flyteidl.admin.ProjectDomainAttributesGetResponse\"\x99\x01\x82\xd3\xe4\x93\x02\x36\x12\x34/api/v1/project_domain_attributes/{project}/{domain}\x92\x41Z\x1aXRetrieve the customized resource attributes associated with a project-domain combination\x12\xa9\x02\n\x1d\x44\x65leteProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesDeleteRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesDeleteResponse\"\x9a\x01\x82\xd3\xe4\x93\x02\x39*4/api/v1/project_domain_attributes/{project}/{domain}:\x01*\x92\x41X\x1aVDelete the customized resource attributes associated with a project-domain combination\x12\xce\x02\n\x18UpdateWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesUpdateRequest\x1a\x30.flyteidl.admin.WorkflowAttributesUpdateResponse\"\xce\x01\x82\xd3\xe4\x93\x02_\x1aZ/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}:\x01*\x92\x41\x66\x1a\x64Update the customized resource attributes associated with a project, domain and workflow combination\x12\xa3\x02\n\x15GetWorkflowAttributes\x12,.flyteidl.admin.WorkflowAttributesGetRequest\x1a-.flyteidl.admin.WorkflowAttributesGetResponse\"\xac\x01\x82\xd3\xe4\x93\x02;\x12\x39/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x92\x41h\x1a\x66Retrieve the customized resource attributes associated with a project, domain and workflow combination\x12\xad\x02\n\x18\x44\x65leteWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesDeleteRequest\x1a\x30.flyteidl.admin.WorkflowAttributesDeleteResponse\"\xad\x01\x82\xd3\xe4\x93\x02>*9/api/v1/workflow_attributes/{project}/{domain}/{workflow}:\x01*\x92\x41\x66\x1a\x64\x44\x65lete the customized resource attributes associated with a project, domain and workflow combination\x12\xe1\x01\n\x17ListMatchableAttributes\x12..flyteidl.admin.ListMatchableAttributesRequest\x1a/.flyteidl.admin.ListMatchableAttributesResponse\"e\x82\xd3\xe4\x93\x02\x1e\x12\x1c/api/v1/matchable_attributes\x92\x41>\x1a/api/v1/active_launch_plans/{id.project}/{id.domain}/{id.name}\x92\x41M\x1aKRetrieve the active launch plan version specified by input request filters.\x12\xeb\x01\n\x15ListActiveLaunchPlans\x12+.flyteidl.admin.ActiveLaunchPlanListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"\x84\x01\x82\xd3\xe4\x93\x02\x30\x12./api/v1/active_launch_plans/{project}/{domain}\x92\x41K\x1aIFetch the active launch plan versions specified by input request filters.\x12\xf3\x01\n\x11ListLaunchPlanIds\x12\x30.flyteidl.admin.NamedEntityIdentifierListRequest\x1a).flyteidl.admin.NamedEntityIdentifierList\"\x80\x01\x82\xd3\xe4\x93\x02,\x12*/api/v1/launch_plan_ids/{project}/{domain}\x92\x41K\x1aIFetch existing launch plan definition identifiers matching input filters.\x12\x8c\x02\n\x0fListLaunchPlans\x12#.flyteidl.admin.ResourceListRequest\x1a\x1e.flyteidl.admin.LaunchPlanList\"\xb3\x01\x82\xd3\xe4\x93\x02j\x12\x37/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}Z/\x12-/api/v1/launch_plans/{id.project}/{id.domain}\x92\x41@\x1a>Fetch existing launch plan definitions matching input filters.\x12\xc0\x06\n\x10UpdateLaunchPlan\x12\'.flyteidl.admin.LaunchPlanUpdateRequest\x1a(.flyteidl.admin.LaunchPlanUpdateResponse\"\xd8\x05\x82\xd3\xe4\x93\x02I\x1a\x44/api/v1/launch_plans/{id.project}/{id.domain}/{id.name}/{id.version}:\x01*\x92\x41\x85\x05\x1a\x82\x05Update 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.\x12\xa2\x01\n\x0f\x43reateExecution\x12&.flyteidl.admin.ExecutionCreateRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\">\x82\xd3\xe4\x93\x02\x17\"\x12/api/v1/executions:\x01*\x92\x41\x1e\x1a\x1c\x43reate a workflow execution.\x12\xb1\x01\n\x11RelaunchExecution\x12(.flyteidl.admin.ExecutionRelaunchRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"I\x82\xd3\xe4\x93\x02 \"\x1b/api/v1/executions/relaunch:\x01*\x92\x41 \x1a\x1eRelaunch a workflow execution.\x12\x9d\x05\n\x10RecoverExecution\x12\'.flyteidl.admin.ExecutionRecoverRequest\x1a\'.flyteidl.admin.ExecutionCreateResponse\"\xb6\x04\x82\xd3\xe4\x93\x02\x1f\"\x1a/api/v1/executions/recover:\x01*\x92\x41\x8d\x04\x1a\x8a\x04Recreates a previously-run workflow execution that will only start executing from the last known failure point. In Recover mode, users cannot change any input parameters or update the version of the execution. This is extremely useful to recover from system errors and byzantine faults like - Loss of K8s cluster, bugs in platform or instability, machine failures, downstream system failures (downstream services), or simply to recover executions that failed because of retry exhaustion and should complete if tried again.\x12\xc2\x01\n\x0cGetExecution\x12+.flyteidl.admin.WorkflowExecutionGetRequest\x1a\x19.flyteidl.admin.Execution\"j\x82\xd3\xe4\x93\x02\x37\x12\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}\x92\x41*\x1a(Retrieve an existing workflow execution.\x12\xd6\x01\n\x0fUpdateExecution\x12&.flyteidl.admin.ExecutionUpdateRequest\x1a\'.flyteidl.admin.ExecutionUpdateResponse\"r\x82\xd3\xe4\x93\x02:\x1a\x35/api/v1/executions/{id.project}/{id.domain}/{id.name}:\x01*\x92\x41/\x1a-Update execution belonging to project domain.\x12\x82\x02\n\x10GetExecutionData\x12/.flyteidl.admin.WorkflowExecutionGetDataRequest\x1a\x30.flyteidl.admin.WorkflowExecutionGetDataResponse\"\x8a\x01\x82\xd3\xe4\x93\x02<\x12:/api/v1/data/executions/{id.project}/{id.domain}/{id.name}\x92\x41\x45\x1a\x43Retrieve input and output data from an existing workflow execution.\x12\xc8\x01\n\x0eListExecutions\x12#.flyteidl.admin.ResourceListRequest\x1a\x1d.flyteidl.admin.ExecutionList\"r\x82\xd3\xe4\x93\x02-\x12+/api/v1/executions/{id.project}/{id.domain}\x92\x41<\x1a:Fetch existing workflow executions matching input filters.\x12\xf4\x01\n\x12TerminateExecution\x12).flyteidl.admin.ExecutionTerminateRequest\x1a*.flyteidl.admin.ExecutionTerminateResponse\"\x86\x01\x82\xd3\xe4\x93\x02:*5/api/v1/executions/{id.project}/{id.domain}/{id.name}:\x01*\x92\x41\x43\x1a\x41Terminate the active workflow execution specified in the request.\x12\xfc\x01\n\x10GetNodeExecution\x12\'.flyteidl.admin.NodeExecutionGetRequest\x1a\x1d.flyteidl.admin.NodeExecution\"\x9f\x01\x82\xd3\xe4\x93\x02p\x12n/api/v1/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x92\x41&\x1a$Retrieve an existing node execution.\x12\x9a\x02\n\x12ListNodeExecutions\x12(.flyteidl.admin.NodeExecutionListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\xb6\x01\x82\xd3\xe4\x93\x02u\x12s/api/v1/node_executions/{workflow_execution_id.project}/{workflow_execution_id.domain}/{workflow_execution_id.name}\x92\x41\x38\x1a\x36\x46\x65tch existing node executions matching input filters.\x12\xef\x04\n\x19ListNodeExecutionsForTask\x12/.flyteidl.admin.NodeExecutionForTaskListRequest\x1a!.flyteidl.admin.NodeExecutionList\"\xfd\x03\x82\xd3\xe4\x93\x02\xac\x03\x12\xa9\x03/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}\x92\x41G\x1a\x45\x46\x65tch child node executions launched by the specified task execution.\x12\xb3\x02\n\x14GetNodeExecutionData\x12+.flyteidl.admin.NodeExecutionGetDataRequest\x1a,.flyteidl.admin.NodeExecutionGetDataResponse\"\xbf\x01\x82\xd3\xe4\x93\x02u\x12s/api/v1/data/node_executions/{id.execution_id.project}/{id.execution_id.domain}/{id.execution_id.name}/{id.node_id}\x92\x41\x41\x1a?Retrieve input and output data from an existing node execution.\x12\x97\x01\n\x0fRegisterProject\x12&.flyteidl.admin.ProjectRegisterRequest\x1a\'.flyteidl.admin.ProjectRegisterResponse\"3\x82\xd3\xe4\x93\x02\x15\"\x10/api/v1/projects:\x01*\x92\x41\x15\x1a\x13Register a project.\x12\x87\x01\n\rUpdateProject\x12\x17.flyteidl.admin.Project\x1a%.flyteidl.admin.ProjectUpdateResponse\"6\x82\xd3\xe4\x93\x02\x1a\x1a\x15/api/v1/projects/{id}:\x01*\x92\x41\x13\x1a\x11Update a project.\x12\x85\x01\n\x0cListProjects\x12\".flyteidl.admin.ProjectListRequest\x1a\x18.flyteidl.admin.Projects\"7\x82\xd3\xe4\x93\x02\x12\x12\x10/api/v1/projects\x92\x41\x1c\x1a\x1a\x46\x65tch registered projects.\x12\xdd\x01\n\x13\x43reateWorkflowEvent\x12-.flyteidl.admin.WorkflowExecutionEventRequest\x1a..flyteidl.admin.WorkflowExecutionEventResponse\"g\x82\xd3\xe4\x93\x02\x1d\"\x18/api/v1/events/workflows:\x01*\x92\x41\x41\x1a?Create a workflow execution event recording a phase transition.\x12\xc9\x01\n\x0f\x43reateNodeEvent\x12).flyteidl.admin.NodeExecutionEventRequest\x1a*.flyteidl.admin.NodeExecutionEventResponse\"_\x82\xd3\xe4\x93\x02\x19\"\x14/api/v1/events/nodes:\x01*\x92\x41=\x1a;Create a node execution event recording a phase transition.\x12\xc9\x01\n\x0f\x43reateTaskEvent\x12).flyteidl.admin.TaskExecutionEventRequest\x1a*.flyteidl.admin.TaskExecutionEventResponse\"_\x82\xd3\xe4\x93\x02\x19\"\x14/api/v1/events/tasks:\x01*\x92\x41=\x1a;Create a task execution event recording a phase transition.\x12\xa9\x03\n\x10GetTaskExecution\x12\'.flyteidl.admin.TaskExecutionGetRequest\x1a\x1d.flyteidl.admin.TaskExecution\"\xcc\x02\x82\xd3\xe4\x93\x02\x9c\x02\x12\x99\x02/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}\x92\x41&\x1a$Retrieve an existing task execution.\x12\xd3\x02\n\x12ListTaskExecutions\x12(.flyteidl.admin.TaskExecutionListRequest\x1a!.flyteidl.admin.TaskExecutionList\"\xef\x01\x82\xd3\xe4\x93\x02\xad\x01\x12\xaa\x01/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}\x92\x41\x38\x1a\x36\x46\x65tch existing task executions matching input filters.\x12\xe0\x03\n\x14GetTaskExecutionData\x12+.flyteidl.admin.TaskExecutionGetDataRequest\x1a,.flyteidl.admin.TaskExecutionGetDataResponse\"\xec\x02\x82\xd3\xe4\x93\x02\xa1\x02\x12\x9e\x02/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}\x92\x41\x41\x1a?Retrieve input and output data from an existing task execution.\x12\xbf\x02\n\x1dUpdateProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesUpdateRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesUpdateResponse\"\xb0\x01\x82\xd3\xe4\x93\x02O\x1aJ/api/v1/project_domain_attributes/{attributes.project}/{attributes.domain}:\x01*\x92\x41X\x1aVUpdate the customized resource attributes associated with a project-domain combination\x12\x9f\x02\n\x1aGetProjectDomainAttributes\x12\x31.flyteidl.admin.ProjectDomainAttributesGetRequest\x1a\x32.flyteidl.admin.ProjectDomainAttributesGetResponse\"\x99\x01\x82\xd3\xe4\x93\x02\x36\x12\x34/api/v1/project_domain_attributes/{project}/{domain}\x92\x41Z\x1aXRetrieve the customized resource attributes associated with a project-domain combination\x12\xa9\x02\n\x1d\x44\x65leteProjectDomainAttributes\x12\x34.flyteidl.admin.ProjectDomainAttributesDeleteRequest\x1a\x35.flyteidl.admin.ProjectDomainAttributesDeleteResponse\"\x9a\x01\x82\xd3\xe4\x93\x02\x39*4/api/v1/project_domain_attributes/{project}/{domain}:\x01*\x92\x41X\x1aVDelete the customized resource attributes associated with a project-domain combination\x12\xff\x01\n\x17UpdateProjectAttributes\x12..flyteidl.admin.ProjectAttributesUpdateRequest\x1a/.flyteidl.admin.ProjectAttributesUpdateResponse\"\x82\x01\x82\xd3\xe4\x93\x02\x34\x1a//api/v1/project_attributes/{attributes.project}:\x01*\x92\x41\x45\x1a\x43Update the customized resource attributes associated with a project\x12\xe9\x01\n\x14GetProjectAttributes\x12+.flyteidl.admin.ProjectAttributesGetRequest\x1a,.flyteidl.admin.ProjectAttributesGetResponse\"v\x82\xd3\xe4\x93\x02&\x12$/api/v1/project_attributes/{project}\x92\x41G\x1a\x45Retrieve the customized resource attributes associated with a project\x12\xf3\x01\n\x17\x44\x65leteProjectAttributes\x12..flyteidl.admin.ProjectAttributesDeleteRequest\x1a/.flyteidl.admin.ProjectAttributesDeleteResponse\"w\x82\xd3\xe4\x93\x02)*$/api/v1/project_attributes/{project}:\x01*\x92\x41\x45\x1a\x43\x44\x65lete the customized resource attributes associated with a project\x12\xce\x02\n\x18UpdateWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesUpdateRequest\x1a\x30.flyteidl.admin.WorkflowAttributesUpdateResponse\"\xce\x01\x82\xd3\xe4\x93\x02_\x1aZ/api/v1/workflow_attributes/{attributes.project}/{attributes.domain}/{attributes.workflow}:\x01*\x92\x41\x66\x1a\x64Update the customized resource attributes associated with a project, domain and workflow combination\x12\xa3\x02\n\x15GetWorkflowAttributes\x12,.flyteidl.admin.WorkflowAttributesGetRequest\x1a-.flyteidl.admin.WorkflowAttributesGetResponse\"\xac\x01\x82\xd3\xe4\x93\x02;\x12\x39/api/v1/workflow_attributes/{project}/{domain}/{workflow}\x92\x41h\x1a\x66Retrieve the customized resource attributes associated with a project, domain and workflow combination\x12\xad\x02\n\x18\x44\x65leteWorkflowAttributes\x12/.flyteidl.admin.WorkflowAttributesDeleteRequest\x1a\x30.flyteidl.admin.WorkflowAttributesDeleteResponse\"\xad\x01\x82\xd3\xe4\x93\x02>*9/api/v1/workflow_attributes/{project}/{domain}/{workflow}:\x01*\x92\x41\x66\x1a\x64\x44\x65lete the customized resource attributes associated with a project, domain and workflow combination\x12\xe1\x01\n\x17ListMatchableAttributes\x12..flyteidl.admin.ListMatchableAttributesRequest\x1a/.flyteidl.admin.ListMatchableAttributesResponse\"e\x82\xd3\xe4\x93\x02\x1e\x12\x1c/api/v1/matchable_attributes\x92\x41>\x1a>> thread = api.delete_project_attributes(project, body, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str project: Unique project id which this set of attributes references. +required (required) + :param AdminProjectAttributesDeleteRequest body: (required) + :return: AdminProjectAttributesDeleteResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.delete_project_attributes_with_http_info(project, body, **kwargs) # noqa: E501 + else: + (data) = self.delete_project_attributes_with_http_info(project, body, **kwargs) # noqa: E501 + return data + + def delete_project_attributes_with_http_info(self, project, body, **kwargs): # 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 # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.delete_project_attributes_with_http_info(project, body, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str project: Unique project id which this set of attributes references. +required (required) + :param AdminProjectAttributesDeleteRequest body: (required) + :return: AdminProjectAttributesDeleteResponse + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['project', 'body'] # noqa: E501 + all_params.append('async_req') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in six.iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method delete_project_attributes" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `delete_project_attributes`") # noqa: E501 + # verify the required parameter 'body' is set + if ('body' not in params or + params['body'] is None): + raise ValueError("Missing the required parameter `body` when calling `delete_project_attributes`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + + query_params = [] + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + if 'body' in params: + body_params = params['body'] + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/json']) # noqa: E501 + + # Authentication setting + auth_settings = [] # noqa: E501 + + return self.api_client.call_api( + '/api/v1/project_attributes/{project}', 'DELETE', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminProjectAttributesDeleteResponse', # noqa: E501 + auth_settings=auth_settings, + async_req=params.get('async_req'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + def delete_project_domain_attributes(self, project, domain, body, **kwargs): # noqa: E501 """Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 @@ -1805,6 +1912,109 @@ def get_node_execution_data_with_http_info(self, id_execution_id_project, id_exe _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) + def get_project_attributes(self, project, **kwargs): # 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 # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_project_attributes(project, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str project: Unique project id which this set of attributes references. +required (required) + :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :return: AdminProjectAttributesGetResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.get_project_attributes_with_http_info(project, **kwargs) # noqa: E501 + else: + (data) = self.get_project_attributes_with_http_info(project, **kwargs) # noqa: E501 + return data + + def get_project_attributes_with_http_info(self, project, **kwargs): # 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 # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.get_project_attributes_with_http_info(project, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str project: Unique project id which this set of attributes references. +required (required) + :param str resource_type: Which type of matchable attributes to return. +required. - TASK_RESOURCE: Applies to customizable task resource requests and limits. - CLUSTER_RESOURCE: Applies to configuring templated kubernetes cluster resources. - EXECUTION_QUEUE: Configures task and dynamic task execution queue assignment. - EXECUTION_CLUSTER_LABEL: Configures the K8s cluster label to be used for execution to be run - QUALITY_OF_SERVICE_SPECIFICATION: Configures default quality of service when undefined in an execution spec. - PLUGIN_OVERRIDE: Selects configurable plugin implementation behavior for a given task type. - WORKFLOW_EXECUTION_CONFIG: Adds defaults for customizable workflow-execution specifications and overrides. - CLUSTER_ASSIGNMENT: Controls how to select an available cluster on which this execution should run. + :return: AdminProjectAttributesGetResponse + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['project', 'resource_type'] # noqa: E501 + all_params.append('async_req') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in six.iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method get_project_attributes" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'project' is set + if ('project' not in params or + params['project'] is None): + raise ValueError("Missing the required parameter `project` when calling `get_project_attributes`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'project' in params: + path_params['project'] = params['project'] # noqa: E501 + + query_params = [] + if 'resource_type' in params: + query_params.append(('resource_type', params['resource_type'])) # noqa: E501 + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/json']) # noqa: E501 + + # Authentication setting + auth_settings = [] # noqa: E501 + + return self.api_client.call_api( + '/api/v1/project_attributes/{project}', 'GET', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminProjectAttributesGetResponse', # noqa: E501 + auth_settings=auth_settings, + async_req=params.get('async_req'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + def get_project_domain_attributes(self, project, domain, **kwargs): # noqa: E501 """Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 @@ -5869,6 +6079,113 @@ def update_project_with_http_info(self, id, body, **kwargs): # noqa: E501 _request_timeout=params.get('_request_timeout'), collection_formats=collection_formats) + def update_project_attributes(self, attributes_project, body, **kwargs): # noqa: E501 + """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level # noqa: E501 + + Update the customized resource attributes associated with a project # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.update_project_attributes(attributes_project, body, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str attributes_project: Unique project id for which this set of attributes will be applied. (required) + :param AdminProjectAttributesUpdateRequest body: (required) + :return: AdminProjectAttributesUpdateResponse + If the method is called asynchronously, + returns the request thread. + """ + kwargs['_return_http_data_only'] = True + if kwargs.get('async_req'): + return self.update_project_attributes_with_http_info(attributes_project, body, **kwargs) # noqa: E501 + else: + (data) = self.update_project_attributes_with_http_info(attributes_project, body, **kwargs) # noqa: E501 + return data + + def update_project_attributes_with_http_info(self, attributes_project, body, **kwargs): # noqa: E501 + """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level # noqa: E501 + + Update the customized resource attributes associated with a project # noqa: E501 + This method makes a synchronous HTTP request by default. To make an + asynchronous HTTP request, please pass async_req=True + >>> thread = api.update_project_attributes_with_http_info(attributes_project, body, async_req=True) + >>> result = thread.get() + + :param async_req bool + :param str attributes_project: Unique project id for which this set of attributes will be applied. (required) + :param AdminProjectAttributesUpdateRequest body: (required) + :return: AdminProjectAttributesUpdateResponse + If the method is called asynchronously, + returns the request thread. + """ + + all_params = ['attributes_project', 'body'] # noqa: E501 + all_params.append('async_req') + all_params.append('_return_http_data_only') + all_params.append('_preload_content') + all_params.append('_request_timeout') + + params = locals() + for key, val in six.iteritems(params['kwargs']): + if key not in all_params: + raise TypeError( + "Got an unexpected keyword argument '%s'" + " to method update_project_attributes" % key + ) + params[key] = val + del params['kwargs'] + # verify the required parameter 'attributes_project' is set + if ('attributes_project' not in params or + params['attributes_project'] is None): + raise ValueError("Missing the required parameter `attributes_project` when calling `update_project_attributes`") # noqa: E501 + # verify the required parameter 'body' is set + if ('body' not in params or + params['body'] is None): + raise ValueError("Missing the required parameter `body` when calling `update_project_attributes`") # noqa: E501 + + collection_formats = {} + + path_params = {} + if 'attributes_project' in params: + path_params['attributes.project'] = params['attributes_project'] # noqa: E501 + + query_params = [] + + header_params = {} + + form_params = [] + local_var_files = {} + + body_params = None + if 'body' in params: + body_params = params['body'] + # HTTP header `Accept` + header_params['Accept'] = self.api_client.select_header_accept( + ['application/json']) # noqa: E501 + + # HTTP header `Content-Type` + header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501 + ['application/json']) # noqa: E501 + + # Authentication setting + auth_settings = [] # noqa: E501 + + return self.api_client.call_api( + '/api/v1/project_attributes/{attributes.project}', 'PUT', + path_params, + query_params, + header_params, + body=body_params, + post_params=form_params, + files=local_var_files, + response_type='AdminProjectAttributesUpdateResponse', # noqa: E501 + auth_settings=auth_settings, + async_req=params.get('async_req'), + _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), + _request_timeout=params.get('_request_timeout'), + collection_formats=collection_formats) + def update_project_domain_attributes(self, attributes_project, attributes_domain, body, **kwargs): # noqa: E501 """Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/__init__.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/__init__.py index 6d9846675c..e07ec78624 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/__init__.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/__init__.py @@ -81,6 +81,12 @@ from flyteadmin.models.admin_plugin_override import AdminPluginOverride from flyteadmin.models.admin_plugin_overrides import AdminPluginOverrides from flyteadmin.models.admin_project import AdminProject +from flyteadmin.models.admin_project_attributes import AdminProjectAttributes +from flyteadmin.models.admin_project_attributes_delete_request import AdminProjectAttributesDeleteRequest +from flyteadmin.models.admin_project_attributes_delete_response import AdminProjectAttributesDeleteResponse +from flyteadmin.models.admin_project_attributes_get_response import AdminProjectAttributesGetResponse +from flyteadmin.models.admin_project_attributes_update_request import AdminProjectAttributesUpdateRequest +from flyteadmin.models.admin_project_attributes_update_response import AdminProjectAttributesUpdateResponse from flyteadmin.models.admin_project_domain_attributes import AdminProjectDomainAttributes from flyteadmin.models.admin_project_domain_attributes_delete_request import AdminProjectDomainAttributesDeleteRequest from flyteadmin.models.admin_project_domain_attributes_delete_response import AdminProjectDomainAttributesDeleteResponse diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project.py index 325d97fd82..1d64553b8f 100644 --- a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project.py +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project.py @@ -168,7 +168,7 @@ def description(self, description): def labels(self): """Gets the labels of this AdminProject. # noqa: E501 - Leverage Labels from flyteidel.admin.common.proto to tag projects with ownership information. # noqa: E501 + Leverage Labels from flyteidl.admin.common.proto to tag projects with ownership information. # noqa: E501 :return: The labels of this AdminProject. # noqa: E501 :rtype: AdminLabels @@ -179,7 +179,7 @@ def labels(self): def labels(self, labels): """Sets the labels of this AdminProject. - Leverage Labels from flyteidel.admin.common.proto to tag projects with ownership information. # noqa: E501 + Leverage Labels from flyteidl.admin.common.proto to tag projects with ownership information. # noqa: E501 :param labels: The labels of this AdminProject. # noqa: E501 :type: AdminLabels diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes.py new file mode 100644 index 0000000000..a892f96441 --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes.py @@ -0,0 +1,145 @@ +# coding: utf-8 + +""" + flyteidl/service/admin.proto + + No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501 + + OpenAPI spec version: version not set + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +import pprint +import re # noqa: F401 + +import six + +from flyteadmin.models.admin_matching_attributes import AdminMatchingAttributes # noqa: F401,E501 + + +class AdminProjectAttributes(object): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'project': 'str', + 'matching_attributes': 'AdminMatchingAttributes' + } + + attribute_map = { + 'project': 'project', + 'matching_attributes': 'matching_attributes' + } + + def __init__(self, project=None, matching_attributes=None): # noqa: E501 + """AdminProjectAttributes - a model defined in Swagger""" # noqa: E501 + + self._project = None + self._matching_attributes = None + self.discriminator = None + + if project is not None: + self.project = project + if matching_attributes is not None: + self.matching_attributes = matching_attributes + + @property + def project(self): + """Gets the project of this AdminProjectAttributes. # noqa: E501 + + Unique project id for which this set of attributes will be applied. # noqa: E501 + + :return: The project of this AdminProjectAttributes. # noqa: E501 + :rtype: str + """ + return self._project + + @project.setter + def project(self, project): + """Sets the project of this AdminProjectAttributes. + + Unique project id for which this set of attributes will be applied. # noqa: E501 + + :param project: The project of this AdminProjectAttributes. # noqa: E501 + :type: str + """ + + self._project = project + + @property + def matching_attributes(self): + """Gets the matching_attributes of this AdminProjectAttributes. # noqa: E501 + + + :return: The matching_attributes of this AdminProjectAttributes. # noqa: E501 + :rtype: AdminMatchingAttributes + """ + return self._matching_attributes + + @matching_attributes.setter + def matching_attributes(self, matching_attributes): + """Sets the matching_attributes of this AdminProjectAttributes. + + + :param matching_attributes: The matching_attributes of this AdminProjectAttributes. # noqa: E501 + :type: AdminMatchingAttributes + """ + + self._matching_attributes = matching_attributes + + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + if issubclass(AdminProjectAttributes, dict): + for key, value in self.items(): + result[key] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, AdminProjectAttributes): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes_delete_request.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes_delete_request.py new file mode 100644 index 0000000000..5b41e2c590 --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes_delete_request.py @@ -0,0 +1,143 @@ +# coding: utf-8 + +""" + flyteidl/service/admin.proto + + No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501 + + OpenAPI spec version: version not set + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +import pprint +import re # noqa: F401 + +import six + +from flyteadmin.models.admin_matchable_resource import AdminMatchableResource # noqa: F401,E501 + + +class AdminProjectAttributesDeleteRequest(object): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'project': 'str', + 'resource_type': 'AdminMatchableResource' + } + + attribute_map = { + 'project': 'project', + 'resource_type': 'resource_type' + } + + def __init__(self, project=None, resource_type=None): # noqa: E501 + """AdminProjectAttributesDeleteRequest - a model defined in Swagger""" # noqa: E501 + + self._project = None + self._resource_type = None + self.discriminator = None + + if project is not None: + self.project = project + if resource_type is not None: + self.resource_type = resource_type + + @property + def project(self): + """Gets the project of this AdminProjectAttributesDeleteRequest. # noqa: E501 + + + :return: The project of this AdminProjectAttributesDeleteRequest. # noqa: E501 + :rtype: str + """ + return self._project + + @project.setter + def project(self, project): + """Sets the project of this AdminProjectAttributesDeleteRequest. + + + :param project: The project of this AdminProjectAttributesDeleteRequest. # noqa: E501 + :type: str + """ + + self._project = project + + @property + def resource_type(self): + """Gets the resource_type of this AdminProjectAttributesDeleteRequest. # noqa: E501 + + + :return: The resource_type of this AdminProjectAttributesDeleteRequest. # noqa: E501 + :rtype: AdminMatchableResource + """ + return self._resource_type + + @resource_type.setter + def resource_type(self, resource_type): + """Sets the resource_type of this AdminProjectAttributesDeleteRequest. + + + :param resource_type: The resource_type of this AdminProjectAttributesDeleteRequest. # noqa: E501 + :type: AdminMatchableResource + """ + + self._resource_type = resource_type + + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + if issubclass(AdminProjectAttributesDeleteRequest, dict): + for key, value in self.items(): + result[key] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, AdminProjectAttributesDeleteRequest): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes_delete_response.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes_delete_response.py new file mode 100644 index 0000000000..209a2a9e77 --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes_delete_response.py @@ -0,0 +1,87 @@ +# coding: utf-8 + +""" + flyteidl/service/admin.proto + + No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501 + + OpenAPI spec version: version not set + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +import pprint +import re # noqa: F401 + +import six + + +class AdminProjectAttributesDeleteResponse(object): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + } + + attribute_map = { + } + + def __init__(self): # noqa: E501 + """AdminProjectAttributesDeleteResponse - a model defined in Swagger""" # noqa: E501 + self.discriminator = None + + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + if issubclass(AdminProjectAttributesDeleteResponse, dict): + for key, value in self.items(): + result[key] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, AdminProjectAttributesDeleteResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes_get_response.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes_get_response.py new file mode 100644 index 0000000000..4f9491dc32 --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes_get_response.py @@ -0,0 +1,117 @@ +# coding: utf-8 + +""" + flyteidl/service/admin.proto + + No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501 + + OpenAPI spec version: version not set + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +import pprint +import re # noqa: F401 + +import six + +from flyteadmin.models.admin_project_attributes import AdminProjectAttributes # noqa: F401,E501 + + +class AdminProjectAttributesGetResponse(object): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'attributes': 'AdminProjectAttributes' + } + + attribute_map = { + 'attributes': 'attributes' + } + + def __init__(self, attributes=None): # noqa: E501 + """AdminProjectAttributesGetResponse - a model defined in Swagger""" # noqa: E501 + + self._attributes = None + self.discriminator = None + + if attributes is not None: + self.attributes = attributes + + @property + def attributes(self): + """Gets the attributes of this AdminProjectAttributesGetResponse. # noqa: E501 + + + :return: The attributes of this AdminProjectAttributesGetResponse. # noqa: E501 + :rtype: AdminProjectAttributes + """ + return self._attributes + + @attributes.setter + def attributes(self, attributes): + """Sets the attributes of this AdminProjectAttributesGetResponse. + + + :param attributes: The attributes of this AdminProjectAttributesGetResponse. # noqa: E501 + :type: AdminProjectAttributes + """ + + self._attributes = attributes + + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + if issubclass(AdminProjectAttributesGetResponse, dict): + for key, value in self.items(): + result[key] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, AdminProjectAttributesGetResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes_update_request.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes_update_request.py new file mode 100644 index 0000000000..2f177136d8 --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes_update_request.py @@ -0,0 +1,117 @@ +# coding: utf-8 + +""" + flyteidl/service/admin.proto + + No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501 + + OpenAPI spec version: version not set + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +import pprint +import re # noqa: F401 + +import six + +from flyteadmin.models.admin_project_attributes import AdminProjectAttributes # noqa: F401,E501 + + +class AdminProjectAttributesUpdateRequest(object): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + 'attributes': 'AdminProjectAttributes' + } + + attribute_map = { + 'attributes': 'attributes' + } + + def __init__(self, attributes=None): # noqa: E501 + """AdminProjectAttributesUpdateRequest - a model defined in Swagger""" # noqa: E501 + + self._attributes = None + self.discriminator = None + + if attributes is not None: + self.attributes = attributes + + @property + def attributes(self): + """Gets the attributes of this AdminProjectAttributesUpdateRequest. # noqa: E501 + + + :return: The attributes of this AdminProjectAttributesUpdateRequest. # noqa: E501 + :rtype: AdminProjectAttributes + """ + return self._attributes + + @attributes.setter + def attributes(self, attributes): + """Sets the attributes of this AdminProjectAttributesUpdateRequest. + + + :param attributes: The attributes of this AdminProjectAttributesUpdateRequest. # noqa: E501 + :type: AdminProjectAttributes + """ + + self._attributes = attributes + + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + if issubclass(AdminProjectAttributesUpdateRequest, dict): + for key, value in self.items(): + result[key] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, AdminProjectAttributesUpdateRequest): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes_update_response.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes_update_response.py new file mode 100644 index 0000000000..dcaa484fbb --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/flyteadmin/models/admin_project_attributes_update_response.py @@ -0,0 +1,87 @@ +# coding: utf-8 + +""" + flyteidl/service/admin.proto + + No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501 + + OpenAPI spec version: version not set + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +import pprint +import re # noqa: F401 + +import six + + +class AdminProjectAttributesUpdateResponse(object): + """NOTE: This class is auto generated by the swagger code generator program. + + Do not edit the class manually. + """ + + """ + Attributes: + swagger_types (dict): The key is attribute name + and the value is attribute type. + attribute_map (dict): The key is attribute name + and the value is json key in definition. + """ + swagger_types = { + } + + attribute_map = { + } + + def __init__(self): # noqa: E501 + """AdminProjectAttributesUpdateResponse - a model defined in Swagger""" # noqa: E501 + self.discriminator = None + + def to_dict(self): + """Returns the model properties as a dict""" + result = {} + + for attr, _ in six.iteritems(self.swagger_types): + value = getattr(self, attr) + if isinstance(value, list): + result[attr] = list(map( + lambda x: x.to_dict() if hasattr(x, "to_dict") else x, + value + )) + elif hasattr(value, "to_dict"): + result[attr] = value.to_dict() + elif isinstance(value, dict): + result[attr] = dict(map( + lambda item: (item[0], item[1].to_dict()) + if hasattr(item[1], "to_dict") else item, + value.items() + )) + else: + result[attr] = value + if issubclass(AdminProjectAttributesUpdateResponse, dict): + for key, value in self.items(): + result[key] = value + + return result + + def to_str(self): + """Returns the string representation of the model""" + return pprint.pformat(self.to_dict()) + + def __repr__(self): + """For `print` and `pprint`""" + return self.to_str() + + def __eq__(self, other): + """Returns true if both objects are equal""" + if not isinstance(other, AdminProjectAttributesUpdateResponse): + return False + + return self.__dict__ == other.__dict__ + + def __ne__(self, other): + """Returns true if both objects are not equal""" + return not self == other diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_attributes.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_attributes.py new file mode 100644 index 0000000000..dcd720970e --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_attributes.py @@ -0,0 +1,40 @@ +# coding: utf-8 + +""" + flyteidl/service/admin.proto + + No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501 + + OpenAPI spec version: version not set + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from __future__ import absolute_import + +import unittest + +import flyteadmin +from flyteadmin.models.admin_project_attributes import AdminProjectAttributes # noqa: E501 +from flyteadmin.rest import ApiException + + +class TestAdminProjectAttributes(unittest.TestCase): + """AdminProjectAttributes unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def testAdminProjectAttributes(self): + """Test AdminProjectAttributes""" + # FIXME: construct object with mandatory attributes with example values + # model = flyteadmin.models.admin_project_attributes.AdminProjectAttributes() # noqa: E501 + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_attributes_delete_request.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_attributes_delete_request.py new file mode 100644 index 0000000000..2e57eebdc5 --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_attributes_delete_request.py @@ -0,0 +1,40 @@ +# coding: utf-8 + +""" + flyteidl/service/admin.proto + + No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501 + + OpenAPI spec version: version not set + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from __future__ import absolute_import + +import unittest + +import flyteadmin +from flyteadmin.models.admin_project_attributes_delete_request import AdminProjectAttributesDeleteRequest # noqa: E501 +from flyteadmin.rest import ApiException + + +class TestAdminProjectAttributesDeleteRequest(unittest.TestCase): + """AdminProjectAttributesDeleteRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def testAdminProjectAttributesDeleteRequest(self): + """Test AdminProjectAttributesDeleteRequest""" + # FIXME: construct object with mandatory attributes with example values + # model = flyteadmin.models.admin_project_attributes_delete_request.AdminProjectAttributesDeleteRequest() # noqa: E501 + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_attributes_delete_response.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_attributes_delete_response.py new file mode 100644 index 0000000000..18289b5029 --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_attributes_delete_response.py @@ -0,0 +1,40 @@ +# coding: utf-8 + +""" + flyteidl/service/admin.proto + + No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501 + + OpenAPI spec version: version not set + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from __future__ import absolute_import + +import unittest + +import flyteadmin +from flyteadmin.models.admin_project_attributes_delete_response import AdminProjectAttributesDeleteResponse # noqa: E501 +from flyteadmin.rest import ApiException + + +class TestAdminProjectAttributesDeleteResponse(unittest.TestCase): + """AdminProjectAttributesDeleteResponse unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def testAdminProjectAttributesDeleteResponse(self): + """Test AdminProjectAttributesDeleteResponse""" + # FIXME: construct object with mandatory attributes with example values + # model = flyteadmin.models.admin_project_attributes_delete_response.AdminProjectAttributesDeleteResponse() # noqa: E501 + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_attributes_get_response.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_attributes_get_response.py new file mode 100644 index 0000000000..228892f109 --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_attributes_get_response.py @@ -0,0 +1,40 @@ +# coding: utf-8 + +""" + flyteidl/service/admin.proto + + No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501 + + OpenAPI spec version: version not set + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from __future__ import absolute_import + +import unittest + +import flyteadmin +from flyteadmin.models.admin_project_attributes_get_response import AdminProjectAttributesGetResponse # noqa: E501 +from flyteadmin.rest import ApiException + + +class TestAdminProjectAttributesGetResponse(unittest.TestCase): + """AdminProjectAttributesGetResponse unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def testAdminProjectAttributesGetResponse(self): + """Test AdminProjectAttributesGetResponse""" + # FIXME: construct object with mandatory attributes with example values + # model = flyteadmin.models.admin_project_attributes_get_response.AdminProjectAttributesGetResponse() # noqa: E501 + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_attributes_update_request.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_attributes_update_request.py new file mode 100644 index 0000000000..f7a5a3b047 --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_attributes_update_request.py @@ -0,0 +1,40 @@ +# coding: utf-8 + +""" + flyteidl/service/admin.proto + + No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501 + + OpenAPI spec version: version not set + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from __future__ import absolute_import + +import unittest + +import flyteadmin +from flyteadmin.models.admin_project_attributes_update_request import AdminProjectAttributesUpdateRequest # noqa: E501 +from flyteadmin.rest import ApiException + + +class TestAdminProjectAttributesUpdateRequest(unittest.TestCase): + """AdminProjectAttributesUpdateRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def testAdminProjectAttributesUpdateRequest(self): + """Test AdminProjectAttributesUpdateRequest""" + # FIXME: construct object with mandatory attributes with example values + # model = flyteadmin.models.admin_project_attributes_update_request.AdminProjectAttributesUpdateRequest() # noqa: E501 + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_attributes_update_response.py b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_attributes_update_response.py new file mode 100644 index 0000000000..8a1ce67357 --- /dev/null +++ b/flyteidl/gen/pb_python/flyteidl/service/flyteadmin/test/test_admin_project_attributes_update_response.py @@ -0,0 +1,40 @@ +# coding: utf-8 + +""" + flyteidl/service/admin.proto + + No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501 + + OpenAPI spec version: version not set + + Generated by: https://github.com/swagger-api/swagger-codegen.git +""" + + +from __future__ import absolute_import + +import unittest + +import flyteadmin +from flyteadmin.models.admin_project_attributes_update_response import AdminProjectAttributesUpdateResponse # noqa: E501 +from flyteadmin.rest import ApiException + + +class TestAdminProjectAttributesUpdateResponse(unittest.TestCase): + """AdminProjectAttributesUpdateResponse unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def testAdminProjectAttributesUpdateResponse(self): + """Test AdminProjectAttributesUpdateResponse""" + # FIXME: construct object with mandatory attributes with example values + # model = flyteadmin.models.admin_project_attributes_update_response.AdminProjectAttributesUpdateResponse() # noqa: E501 + pass + + +if __name__ == '__main__': + unittest.main() 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 501d620a0c..da4a4821de 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 @@ -78,6 +78,13 @@ def test_create_workflow_event(self): """ pass + def test_delete_project_attributes(self): + """Test case for delete_project_attributes + + Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + """ + pass + def test_delete_project_domain_attributes(self): """Test case for delete_project_domain_attributes @@ -141,6 +148,13 @@ def test_get_node_execution_data(self): """ pass + def test_get_project_attributes(self): + """Test case for get_project_attributes + + Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. # noqa: E501 + """ + pass + def test_get_project_domain_attributes(self): """Test case for get_project_domain_attributes @@ -364,6 +378,13 @@ def test_update_project(self): """ pass + def test_update_project_attributes(self): + """Test case for update_project_attributes + + Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level # noqa: E501 + """ + pass + def test_update_project_domain_attributes(self): """Test case for update_project_domain_attributes diff --git a/flyteidl/protos/docs/admin/admin.rst b/flyteidl/protos/docs/admin/admin.rst index 3eb9ab1da3..d94117d63a 100644 --- a/flyteidl/protos/docs/admin/admin.rst +++ b/flyteidl/protos/docs/admin/admin.rst @@ -2610,7 +2610,7 @@ Top-level namespace used to classify different entities like workflows and execu "name", ":ref:`ref_string`", "", "Display name." "domains", ":ref:`ref_flyteidl.admin.Domain`", "repeated", "" "description", ":ref:`ref_string`", "", "" - "labels", ":ref:`ref_flyteidl.admin.Labels`", "", "Leverage Labels from flyteidel.admin.common.proto to tag projects with ownership information." + "labels", ":ref:`ref_flyteidl.admin.Labels`", "", "Leverage Labels from flyteidl.admin.common.proto to tag projects with ownership information." "state", ":ref:`ref_flyteidl.admin.Project.ProjectState`", "", "" @@ -2751,6 +2751,173 @@ The state of the project is used to control its visibility in the UI and validit +.. _ref_flyteidl/admin/project_attributes.proto: + +flyteidl/admin/project_attributes.proto +================================================================== + + + + + +.. _ref_flyteidl.admin.ProjectAttributes: + +ProjectAttributes +------------------------------------------------------------------ + +Defines a set of custom matching attributes at the project level. +For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` + + + +.. csv-table:: ProjectAttributes type fields + :header: "Field", "Type", "Label", "Description" + :widths: auto + + "project", ":ref:`ref_string`", "", "Unique project id for which this set of attributes will be applied." + "matching_attributes", ":ref:`ref_flyteidl.admin.MatchingAttributes`", "", "" + + + + + + + +.. _ref_flyteidl.admin.ProjectAttributesDeleteRequest: + +ProjectAttributesDeleteRequest +------------------------------------------------------------------ + +Request to delete a set matchable project level attribute override. +For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` + + + +.. csv-table:: ProjectAttributesDeleteRequest type fields + :header: "Field", "Type", "Label", "Description" + :widths: auto + + "project", ":ref:`ref_string`", "", "Unique project id which this set of attributes references. +required" + "resource_type", ":ref:`ref_flyteidl.admin.MatchableResource`", "", "Which type of matchable attributes to delete. +required" + + + + + + + +.. _ref_flyteidl.admin.ProjectAttributesDeleteResponse: + +ProjectAttributesDeleteResponse +------------------------------------------------------------------ + +Purposefully empty, may be populated in the future. + + + + + + + + +.. _ref_flyteidl.admin.ProjectAttributesGetRequest: + +ProjectAttributesGetRequest +------------------------------------------------------------------ + +Request to get an individual project level attribute override. +For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` + + + +.. csv-table:: ProjectAttributesGetRequest type fields + :header: "Field", "Type", "Label", "Description" + :widths: auto + + "project", ":ref:`ref_string`", "", "Unique project id which this set of attributes references. +required" + "resource_type", ":ref:`ref_flyteidl.admin.MatchableResource`", "", "Which type of matchable attributes to return. +required" + + + + + + + +.. _ref_flyteidl.admin.ProjectAttributesGetResponse: + +ProjectAttributesGetResponse +------------------------------------------------------------------ + +Response to get an individual project level attribute override. +For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` + + + +.. csv-table:: ProjectAttributesGetResponse type fields + :header: "Field", "Type", "Label", "Description" + :widths: auto + + "attributes", ":ref:`ref_flyteidl.admin.ProjectAttributes`", "", "" + + + + + + + +.. _ref_flyteidl.admin.ProjectAttributesUpdateRequest: + +ProjectAttributesUpdateRequest +------------------------------------------------------------------ + +Sets custom attributes for a project +For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` + + + +.. csv-table:: ProjectAttributesUpdateRequest type fields + :header: "Field", "Type", "Label", "Description" + :widths: auto + + "attributes", ":ref:`ref_flyteidl.admin.ProjectAttributes`", "", "+required" + + + + + + + +.. _ref_flyteidl.admin.ProjectAttributesUpdateResponse: + +ProjectAttributesUpdateResponse +------------------------------------------------------------------ + +Purposefully empty, may be populated in the future. + + + + + + + +.. + end messages + + +.. + end enums + + +.. + end HasExtensions + + +.. + end services + + + + .. _ref_flyteidl/admin/project_domain_attributes.proto: flyteidl/admin/project_domain_attributes.proto diff --git a/flyteidl/protos/docs/service/service.rst b/flyteidl/protos/docs/service/service.rst index bd36c2f67d..b26817dfc6 100644 --- a/flyteidl/protos/docs/service/service.rst +++ b/flyteidl/protos/docs/service/service.rst @@ -77,6 +77,9 @@ Standard response codes for both are defined here: https://github.com/grpc-ecosy "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." + "UpdateProjectAttributes", ":ref:`ref_flyteidl.admin.ProjectAttributesUpdateRequest`", ":ref:`ref_flyteidl.admin.ProjectAttributesUpdateResponse`", "Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level" + "GetProjectAttributes", ":ref:`ref_flyteidl.admin.ProjectAttributesGetRequest`", ":ref:`ref_flyteidl.admin.ProjectAttributesGetResponse`", "Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain." + "DeleteProjectAttributes", ":ref:`ref_flyteidl.admin.ProjectAttributesDeleteRequest`", ":ref:`ref_flyteidl.admin.ProjectAttributesDeleteResponse`", "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." diff --git a/flyteidl/protos/flyteidl/admin/project.proto b/flyteidl/protos/flyteidl/admin/project.proto index 80c3da86a2..8d1d02959b 100644 --- a/flyteidl/protos/flyteidl/admin/project.proto +++ b/flyteidl/protos/flyteidl/admin/project.proto @@ -29,7 +29,7 @@ message Project { string description = 4; - // Leverage Labels from flyteidel.admin.common.proto to + // Leverage Labels from flyteidl.admin.common.proto to // tag projects with ownership information. Labels labels = 5; diff --git a/flyteidl/protos/flyteidl/admin/project_attributes.proto b/flyteidl/protos/flyteidl/admin/project_attributes.proto new file mode 100644 index 0000000000..de6f7a17ef --- /dev/null +++ b/flyteidl/protos/flyteidl/admin/project_attributes.proto @@ -0,0 +1,60 @@ +syntax = "proto3"; + +package flyteidl.admin; +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 at the project level. +// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` +message ProjectAttributes { + // Unique project id for which this set of attributes will be applied. + string project = 1; + + MatchingAttributes matching_attributes = 2; +} + +// Sets custom attributes for a project +// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` +message ProjectAttributesUpdateRequest { + // +required + ProjectAttributes attributes = 1; +} + +// Purposefully empty, may be populated in the future. +message ProjectAttributesUpdateResponse { +} + +// Request to get an individual project level attribute override. +// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` +message ProjectAttributesGetRequest { + // Unique project id which this set of attributes references. + // +required + string project = 1; + + // Which type of matchable attributes to return. + // +required + MatchableResource resource_type = 2; +} + +// Response to get an individual project level attribute override. +// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` +message ProjectAttributesGetResponse { + ProjectAttributes attributes = 1; +} + +// Request to delete a set matchable project level attribute override. +// For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` +message ProjectAttributesDeleteRequest { + // Unique project id which this set of attributes references. + // +required + string project = 1; + + // Which type of matchable attributes to delete. + // +required + MatchableResource resource_type = 2; +} + +// Purposefully empty, may be populated in the future. +message ProjectAttributesDeleteResponse { +} diff --git a/flyteidl/protos/flyteidl/service/admin.proto b/flyteidl/protos/flyteidl/service/admin.proto index ca612515be..82f155cbb8 100644 --- a/flyteidl/protos/flyteidl/service/admin.proto +++ b/flyteidl/protos/flyteidl/service/admin.proto @@ -6,6 +6,7 @@ option go_package = "github.com/flyteorg/flyteidl/gen/pb-go/flyteidl/service"; import "google/api/annotations.proto"; import "flyteidl/admin/project.proto"; import "flyteidl/admin/project_domain_attributes.proto"; +import "flyteidl/admin/project_attributes.proto"; import "flyteidl/admin/task.proto"; import "flyteidl/admin/workflow.proto"; import "flyteidl/admin/workflow_attributes.proto"; @@ -489,6 +490,37 @@ service AdminService { }; } + // Creates or updates custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` at the project level + rpc UpdateProjectAttributes (flyteidl.admin.ProjectAttributesUpdateRequest) returns (flyteidl.admin.ProjectAttributesUpdateResponse) { + option (google.api.http) = { + put: "/api/v1/project_attributes/{attributes.project}" + body: "*" + }; + option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + description: "Update the customized resource attributes associated with a project" + }; + } + + // Fetches custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. + rpc GetProjectAttributes (flyteidl.admin.ProjectAttributesGetRequest) returns (flyteidl.admin.ProjectAttributesGetResponse) { + option (google.api.http) = { + get: "/api/v1/project_attributes/{project}" + }; + option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + description: "Retrieve the customized resource attributes associated with a project" + }; + } + + // Deletes custom :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration` for a project and domain. + rpc DeleteProjectAttributes (flyteidl.admin.ProjectAttributesDeleteRequest) returns (flyteidl.admin.ProjectAttributesDeleteResponse) { + option (google.api.http) = { + delete: "/api/v1/project_attributes/{project}" + body: "*" + }; + option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = { + description: "Delete the customized resource attributes associated with a project" + }; + } // 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) = {