@oyinlola141/lattice-messaging 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/dispatcher/dispatcherCore.d.ts +29 -0
- package/dist/dispatcher/dispatcherCore.d.ts.map +1 -0
- package/dist/dispatcher/dispatcherCore.js +89 -0
- package/dist/dispatcher/dispatcherCore.js.map +1 -0
- package/dist/dispatcher/dispatcherType.type.d.ts +83 -0
- package/dist/dispatcher/dispatcherType.type.d.ts.map +1 -0
- package/dist/dispatcher/dispatcherType.type.js +10 -0
- package/dist/dispatcher/dispatcherType.type.js.map +1 -0
- package/dist/dispatcher/index.d.ts +8 -0
- package/dist/dispatcher/index.d.ts.map +1 -0
- package/dist/dispatcher/index.js +7 -0
- package/dist/dispatcher/index.js.map +1 -0
- package/dist/errors/index.d.ts +7 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +7 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/handlerRegistry/handlerRegistryStore.d.ts +32 -0
- package/dist/handlerRegistry/handlerRegistryStore.d.ts.map +1 -0
- package/dist/handlerRegistry/handlerRegistryStore.js +109 -0
- package/dist/handlerRegistry/handlerRegistryStore.js.map +1 -0
- package/dist/handlerRegistry/handlerRegistryType.type.d.ts +41 -0
- package/dist/handlerRegistry/handlerRegistryType.type.d.ts.map +1 -0
- package/dist/handlerRegistry/handlerRegistryType.type.js +11 -0
- package/dist/handlerRegistry/handlerRegistryType.type.js.map +1 -0
- package/dist/handlerRegistry/index.d.ts +8 -0
- package/dist/handlerRegistry/index.d.ts.map +1 -0
- package/dist/handlerRegistry/index.js +7 -0
- package/dist/handlerRegistry/index.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/message/index.d.ts +8 -0
- package/dist/message/index.d.ts.map +1 -0
- package/dist/message/index.js +7 -0
- package/dist/message/index.js.map +1 -0
- package/dist/message/messageFactory.d.ts +36 -0
- package/dist/message/messageFactory.d.ts.map +1 -0
- package/dist/message/messageFactory.js +106 -0
- package/dist/message/messageFactory.js.map +1 -0
- package/dist/message/messageType.type.d.ts +99 -0
- package/dist/message/messageType.type.d.ts.map +1 -0
- package/dist/message/messageType.type.js +11 -0
- package/dist/message/messageType.type.js.map +1 -0
- package/dist/messageBus/index.d.ts +8 -0
- package/dist/messageBus/index.d.ts.map +1 -0
- package/dist/messageBus/index.js +7 -0
- package/dist/messageBus/index.js.map +1 -0
- package/dist/messageBus/messageBusCore.d.ts +36 -0
- package/dist/messageBus/messageBusCore.d.ts.map +1 -0
- package/dist/messageBus/messageBusCore.js +94 -0
- package/dist/messageBus/messageBusCore.js.map +1 -0
- package/dist/messageBus/messageBusType.type.d.ts +83 -0
- package/dist/messageBus/messageBusType.type.d.ts.map +1 -0
- package/dist/messageBus/messageBusType.type.js +10 -0
- package/dist/messageBus/messageBusType.type.js.map +1 -0
- package/dist/messageContext/index.d.ts +8 -0
- package/dist/messageContext/index.d.ts.map +1 -0
- package/dist/messageContext/index.js +7 -0
- package/dist/messageContext/index.js.map +1 -0
- package/dist/messageContext/messageContextType.type.d.ts +52 -0
- package/dist/messageContext/messageContextType.type.d.ts.map +1 -0
- package/dist/messageContext/messageContextType.type.js +24 -0
- package/dist/messageContext/messageContextType.type.js.map +1 -0
- package/dist/messageHandler/index.d.ts +8 -0
- package/dist/messageHandler/index.d.ts.map +1 -0
- package/dist/messageHandler/index.js +7 -0
- package/dist/messageHandler/index.js.map +1 -0
- package/dist/messageHandler/messageHandlerType.type.d.ts +62 -0
- package/dist/messageHandler/messageHandlerType.type.d.ts.map +1 -0
- package/dist/messageHandler/messageHandlerType.type.js +18 -0
- package/dist/messageHandler/messageHandlerType.type.js.map +1 -0
- package/dist/messageMiddleware/index.d.ts +8 -0
- package/dist/messageMiddleware/index.d.ts.map +1 -0
- package/dist/messageMiddleware/index.js +7 -0
- package/dist/messageMiddleware/index.js.map +1 -0
- package/dist/messageMiddleware/messageMiddlewarePipeline.d.ts +13 -0
- package/dist/messageMiddleware/messageMiddlewarePipeline.d.ts.map +1 -0
- package/dist/messageMiddleware/messageMiddlewarePipeline.js +95 -0
- package/dist/messageMiddleware/messageMiddlewarePipeline.js.map +1 -0
- package/dist/messageMiddleware/messageMiddlewareType.type.d.ts +96 -0
- package/dist/messageMiddleware/messageMiddlewareType.type.d.ts.map +1 -0
- package/dist/messageMiddleware/messageMiddlewareType.type.js +10 -0
- package/dist/messageMiddleware/messageMiddlewareType.type.js.map +1 -0
- package/package.json +39 -0
package/README.md
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# @latticejs/messaging
|
|
2
|
+
|
|
3
|
+
In-process message bus infrastructure for the Lattice framework.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @latticejs/messaging
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
import { /* add usage here */ } from "@latticejs/messaging";
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## License
|
|
18
|
+
|
|
19
|
+
MIT
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":"7.0.2","root":[[267,287]],"packageJsons":["../../../node_modules/@types/node/package.json","../../../node_modules/undici-types/package.json","../../constants/package.json","../../errors/package.json","../package.json"],"missingPackageJsons":["../../../node_modules/@types/assert/package.json","../../../node_modules/@types/assert/strict/package.json","../../../node_modules/@types/async_hooks/package.json","../../../node_modules/@types/buffer/package.json","../../../node_modules/@types/child_process/package.json","../../../node_modules/@types/cluster/package.json","../../../node_modules/@types/console/package.json","../../../node_modules/@types/constants/package.json","../../../node_modules/@types/crypto/package.json","../../../node_modules/@types/dgram/package.json","../../../node_modules/@types/diagnostics_channel/package.json","../../../node_modules/@types/dns/package.json","../../../node_modules/@types/dns/promises/package.json","../../../node_modules/@types/domain/package.json","../../../node_modules/@types/events/package.json","../../../node_modules/@types/fs/package.json","../../../node_modules/@types/fs/promises/package.json","../../../node_modules/@types/http/package.json","../../../node_modules/@types/http2/package.json","../../../node_modules/@types/https/package.json","../../../node_modules/@types/inspector/package.json","../../../node_modules/@types/inspector/promises/package.json","../../../node_modules/@types/module/package.json","../../../node_modules/@types/net/package.json","../../../node_modules/@types/node/assert/package.json","../../../node_modules/@types/node/dns/package.json","../../../node_modules/@types/node/fs/package.json","../../../node_modules/@types/node/inspector/package.json","../../../node_modules/@types/node/path/package.json","../../../node_modules/@types/node/readline/package.json","../../../node_modules/@types/node/stream/package.json","../../../node_modules/@types/node/test/package.json","../../../node_modules/@types/node/timers/package.json","../../../node_modules/@types/node/util/package.json","../../../node_modules/@types/node/web-globals/package.json","../../../node_modules/@types/node/zlib/package.json","../../../node_modules/@types/os/package.json","../../../node_modules/@types/path/package.json","../../../node_modules/@types/path/posix/package.json","../../../node_modules/@types/path/win32/package.json","../../../node_modules/@types/perf_hooks/package.json","../../../node_modules/@types/process/package.json","../../../node_modules/@types/punycode/package.json","../../../node_modules/@types/querystring/package.json","../../../node_modules/@types/readline/package.json","../../../node_modules/@types/readline/promises/package.json","../../../node_modules/@types/repl/package.json","../../../node_modules/@types/stream/consumers/package.json","../../../node_modules/@types/stream/iter/package.json","../../../node_modules/@types/stream/package.json","../../../node_modules/@types/stream/promises/package.json","../../../node_modules/@types/stream/web/package.json","../../../node_modules/@types/string_decoder/package.json","../../../node_modules/@types/timers/package.json","../../../node_modules/@types/timers/promises/package.json","../../../node_modules/@types/tls/package.json","../../../node_modules/@types/trace_events/package.json","../../../node_modules/@types/tty/package.json","../../../node_modules/@types/url/package.json","../../../node_modules/@types/util/package.json","../../../node_modules/@types/util/types/package.json","../../../node_modules/@types/v8/package.json","../../../node_modules/@types/vm/package.json","../../../node_modules/@types/wasi/package.json","../../../node_modules/@types/worker_threads/package.json","../../../node_modules/@types/zlib/package.json","../../../node_modules/assert/package.json","../../../node_modules/assert/strict/package.json","../../../node_modules/async_hooks/package.json","../../../node_modules/buffer/package.json","../../../node_modules/child_process/package.json","../../../node_modules/cluster/package.json","../../../node_modules/console/package.json","../../../node_modules/constants/package.json","../../../node_modules/crypto/package.json","../../../node_modules/dgram/package.json","../../../node_modules/diagnostics_channel/package.json","../../../node_modules/dns/package.json","../../../node_modules/dns/promises/package.json","../../../node_modules/domain/package.json","../../../node_modules/events/package.json","../../../node_modules/fs/package.json","../../../node_modules/fs/promises/package.json","../../../node_modules/http/package.json","../../../node_modules/http2/package.json","../../../node_modules/https/package.json","../../../node_modules/inspector/package.json","../../../node_modules/inspector/promises/package.json","../../../node_modules/module/package.json","../../../node_modules/net/package.json","../../../node_modules/os/package.json","../../../node_modules/path/package.json","../../../node_modules/path/posix/package.json","../../../node_modules/path/win32/package.json","../../../node_modules/perf_hooks/package.json","../../../node_modules/process/package.json","../../../node_modules/punycode/package.json","../../../node_modules/querystring/package.json","../../../node_modules/readline/package.json","../../../node_modules/readline/promises/package.json","../../../node_modules/repl/package.json","../../../node_modules/stream/consumers/package.json","../../../node_modules/stream/iter/package.json","../../../node_modules/stream/package.json","../../../node_modules/stream/promises/package.json","../../../node_modules/stream/web/package.json","../../../node_modules/string_decoder/package.json","../../../node_modules/timers/package.json","../../../node_modules/timers/promises/package.json","../../../node_modules/tls/package.json","../../../node_modules/trace_events/package.json","../../../node_modules/tty/package.json","../../../node_modules/url/package.json","../../../node_modules/util/package.json","../../../node_modules/util/types/package.json","../../../node_modules/v8/package.json","../../../node_modules/vm/package.json","../../../node_modules/wasi/package.json","../../../node_modules/worker_threads/package.json","../../../node_modules/zlib/package.json"],"fileNames":["lib.es5.d.ts","lib.es2015.d.ts","lib.es2016.d.ts","lib.es2017.d.ts","lib.es2018.d.ts","lib.es2019.d.ts","lib.es2020.d.ts","lib.es2021.d.ts","lib.es2022.d.ts","lib.es2015.core.d.ts","lib.es2015.collection.d.ts","lib.es2015.generator.d.ts","lib.es2015.iterable.d.ts","lib.es2015.promise.d.ts","lib.es2015.proxy.d.ts","lib.es2015.reflect.d.ts","lib.es2015.symbol.d.ts","lib.es2015.symbol.wellknown.d.ts","lib.es2016.array.include.d.ts","lib.es2016.intl.d.ts","lib.es2017.arraybuffer.d.ts","lib.es2017.date.d.ts","lib.es2017.object.d.ts","lib.es2017.sharedmemory.d.ts","lib.es2017.string.d.ts","lib.es2017.intl.d.ts","lib.es2017.typedarrays.d.ts","lib.es2018.asyncgenerator.d.ts","lib.es2018.asynciterable.d.ts","lib.es2018.intl.d.ts","lib.es2018.promise.d.ts","lib.es2018.regexp.d.ts","lib.es2019.array.d.ts","lib.es2019.object.d.ts","lib.es2019.string.d.ts","lib.es2019.symbol.d.ts","lib.es2019.intl.d.ts","lib.es2020.bigint.d.ts","lib.es2020.date.d.ts","lib.es2020.promise.d.ts","lib.es2020.sharedmemory.d.ts","lib.es2020.string.d.ts","lib.es2020.symbol.wellknown.d.ts","lib.es2020.intl.d.ts","lib.es2020.number.d.ts","lib.es2021.promise.d.ts","lib.es2021.string.d.ts","lib.es2021.weakref.d.ts","lib.es2021.intl.d.ts","lib.es2022.array.d.ts","lib.es2022.error.d.ts","lib.es2022.intl.d.ts","lib.es2022.object.d.ts","lib.es2022.string.d.ts","lib.es2022.regexp.d.ts","lib.es2025.float16.d.ts","lib.esnext.disposable.d.ts","lib.decorators.d.ts","lib.decorators.legacy.d.ts","../../constants/dist/http/httpMethod.type.d.ts","../../constants/dist/http/httpStatus.type.d.ts","../../constants/dist/http/httpHeader.type.d.ts","../../constants/dist/http/httpContentType.type.d.ts","../../constants/dist/http/index.d.ts","../../constants/dist/environment/environment.type.d.ts","../../constants/dist/environment/environment.constant.d.ts","../../constants/dist/environment/index.d.ts","../../constants/dist/time/time.unit.type.d.ts","../../constants/dist/time/time.constant.d.ts","../../constants/dist/time/index.d.ts","../../constants/dist/common/common.type.d.ts","../../constants/dist/common/common.constant.d.ts","../../constants/dist/common/common.serialization.d.ts","../../constants/dist/common/common.schema.d.ts","../../constants/dist/common/common.lifecycle.d.ts","../../constants/dist/common/index.d.ts","../../constants/dist/validation/validation.pattern.type.d.ts","../../constants/dist/validation/validation.constant.d.ts","../../constants/dist/validation/index.d.ts","../../constants/dist/cache/cacheStrategy.type.d.ts","../../constants/dist/cache/cacheControl.type.d.ts","../../constants/dist/cache/index.d.ts","../../constants/dist/priority/priority.type.d.ts","../../constants/dist/priority/index.d.ts","../../errors/dist/base/types/errorCategory.enum.d.ts","../../errors/dist/base/types/errorCategory.helpers.d.ts","../../errors/dist/base/types/errorCategory.type.d.ts","../../errors/dist/base/types/errorCode.type.d.ts","../../errors/dist/base/types/errorSeverity.type.d.ts","../../errors/dist/base/core/errorMetadata.type.d.ts","../../errors/dist/base/types/baseError.type.d.ts","../../errors/dist/base/types/index.d.ts","../../errors/dist/base/core/baseError.core.d.ts","../../errors/dist/base/core/errorMetadata.core.d.ts","../../errors/dist/base/core/index.d.ts","../../errors/dist/base/utils/baseError.utils.d.ts","../../errors/dist/base/utils/index.d.ts","../../errors/dist/base/index.d.ts","../../errors/dist/domain/access/authentication.error.d.ts","../../errors/dist/domain/access/authorization.error.d.ts","../../errors/dist/domain/access/rateLimit.error.d.ts","../../errors/dist/domain/access/index.d.ts","../../errors/dist/domain/state/notFound.error.d.ts","../../errors/dist/domain/state/conflict.error.d.ts","../../errors/dist/domain/state/validationError.base.d.ts","../../errors/dist/domain/state/validationError.helpers.d.ts","../../errors/dist/domain/state/validation.error.d.ts","../../errors/dist/domain/state/index.d.ts","../../errors/dist/domain/app/application.error.d.ts","../../errors/dist/domain/app/configuration.error.d.ts","../../errors/dist/domain/app/domain.error.d.ts","../../errors/dist/domain/app/moduleError.base.d.ts","../../errors/dist/domain/app/moduleError.types.d.ts","../../errors/dist/domain/app/module.error.d.ts","../../errors/dist/domain/app/lifecycleError.base.d.ts","../../errors/dist/domain/app/lifecycleError.types.d.ts","../../errors/dist/domain/app/lifecycle.error.d.ts","../../errors/dist/domain/app/index.d.ts","../../errors/dist/domain/event/eventError.base.d.ts","../../errors/dist/domain/event/eventError.handler.d.ts","../../errors/dist/domain/event/eventError.lifecycle.d.ts","../../errors/dist/domain/event/eventError.serialization.d.ts","../../errors/dist/domain/event/event.error.d.ts","../../errors/dist/domain/event/index.d.ts","../../errors/dist/domain/message/messageError.base.d.ts","../../errors/dist/domain/message/messageError.handler.d.ts","../../errors/dist/domain/message/messageError.lifecycle.d.ts","../../errors/dist/domain/message/messageError.validation.d.ts","../../errors/dist/domain/message/message.error.d.ts","../../errors/dist/domain/message/index.d.ts","../../errors/dist/domain/queue/queueError.base.d.ts","../../errors/dist/domain/queue/queueError.queue.d.ts","../../errors/dist/domain/queue/queueError.job.d.ts","../../errors/dist/domain/queue/queueError.worker.d.ts","../../errors/dist/domain/queue/queue.error.d.ts","../../errors/dist/domain/queue/index.d.ts","../../errors/dist/domain/serialization/serializationError.base.d.ts","../../errors/dist/domain/serialization/serializationError.types.d.ts","../../errors/dist/domain/serialization/serialization.error.d.ts","../../errors/dist/domain/serialization/index.d.ts","../../errors/dist/domain/body/httpBodyError.base.d.ts","../../errors/dist/domain/body/httpBodyError.types.d.ts","../../errors/dist/domain/body/httpBody.error.d.ts","../../errors/dist/domain/body/bodyParser.error.d.ts","../../errors/dist/domain/body/httpFormData.error.d.ts","../../errors/dist/domain/body/multipart.error.d.ts","../../errors/dist/domain/body/index.d.ts","../../errors/dist/domain/schema/schemaError.base.d.ts","../../errors/dist/domain/schema/schemaError.types.d.ts","../../errors/dist/domain/schema/schema.error.d.ts","../../errors/dist/domain/schema/index.d.ts","../../errors/dist/domain/api/apiError.base.d.ts","../../errors/dist/domain/api/apiError.routing.d.ts","../../errors/dist/domain/api/apiError.lifecycle.d.ts","../../errors/dist/domain/api/api.error.d.ts","../../errors/dist/domain/api/index.d.ts","../../errors/dist/domain/rpc/rpcError.base.d.ts","../../errors/dist/domain/rpc/rpcError.protocol.d.ts","../../errors/dist/domain/rpc/rpcError.transport.d.ts","../../errors/dist/domain/rpc/rpc.error.d.ts","../../errors/dist/domain/rpc/index.d.ts","../../errors/dist/domain/scheduler/schedulerError.base.d.ts","../../errors/dist/domain/scheduler/schedulerError.schedule.d.ts","../../errors/dist/domain/scheduler/schedulerError.execution.d.ts","../../errors/dist/domain/scheduler/scheduler.error.d.ts","../../errors/dist/domain/scheduler/index.d.ts","../../errors/dist/domain/documentation/documentationError.base.d.ts","../../errors/dist/domain/documentation/documentationError.types.d.ts","../../errors/dist/domain/documentation/documentation.error.d.ts","../../errors/dist/domain/documentation/index.d.ts","../../errors/dist/domain/plugin/pluginError.base.d.ts","../../errors/dist/domain/plugin/pluginError.lifecycle.d.ts","../../errors/dist/domain/plugin/pluginError.runtime.d.ts","../../errors/dist/domain/plugin/plugin.error.d.ts","../../errors/dist/domain/plugin/index.d.ts","../../errors/dist/domain/index.d.ts","../../errors/dist/infrastructure/storage/databaseError.base.d.ts","../../errors/dist/infrastructure/storage/databaseError.factory.d.ts","../../errors/dist/infrastructure/storage/database.error.d.ts","../../errors/dist/infrastructure/storage/storageError.base.d.ts","../../errors/dist/infrastructure/storage/storageError.factory.d.ts","../../errors/dist/infrastructure/storage/storage.error.d.ts","../../errors/dist/infrastructure/storage/index.d.ts","../../errors/dist/infrastructure/network/networkError.base.d.ts","../../errors/dist/infrastructure/network/networkError.factory.d.ts","../../errors/dist/infrastructure/network/network.error.d.ts","../../errors/dist/infrastructure/network/httpError.base.d.ts","../../errors/dist/infrastructure/network/httpError.helpers.d.ts","../../errors/dist/infrastructure/network/http.error.d.ts","../../errors/dist/infrastructure/network/httpClientError.options.d.ts","../../errors/dist/infrastructure/network/httpClientError.common.d.ts","../../errors/dist/infrastructure/network/httpClientError.advanced.d.ts","../../errors/dist/infrastructure/network/httpClientError.specialized.d.ts","../../errors/dist/infrastructure/network/httpClientError.error.d.ts","../../errors/dist/infrastructure/network/httpClientError.base.d.ts","../../errors/dist/infrastructure/network/httpClientError.types.d.ts","../../errors/dist/infrastructure/network/httpClient.errors.d.ts","../../errors/dist/infrastructure/network/httpServerError.error.d.ts","../../errors/dist/infrastructure/network/timeoutError.base.d.ts","../../errors/dist/infrastructure/network/timeoutError.factory.d.ts","../../errors/dist/infrastructure/network/timeout.error.d.ts","../../errors/dist/infrastructure/network/httpRouterError.base.d.ts","../../errors/dist/infrastructure/network/httpRouterError.types.d.ts","../../errors/dist/infrastructure/network/httpRouter.error.d.ts","../../errors/dist/infrastructure/network/httpAdapter.error.d.ts","../../errors/dist/infrastructure/network/httpServerLifecycleError.base.d.ts","../../errors/dist/infrastructure/network/httpServerLifecycleError.types.d.ts","../../errors/dist/infrastructure/network/httpServerLifecycle.error.d.ts","../../errors/dist/infrastructure/network/httpStream.error.d.ts","../../errors/dist/infrastructure/network/httpResponse.error.d.ts","../../errors/dist/infrastructure/network/routePattern.error.d.ts","../../errors/dist/infrastructure/network/index.d.ts","../../errors/dist/infrastructure/service/serviceError.base.d.ts","../../errors/dist/infrastructure/service/serviceError.factory.d.ts","../../errors/dist/infrastructure/service/service.error.d.ts","../../errors/dist/infrastructure/service/externalServiceError.base.d.ts","../../errors/dist/infrastructure/service/externalServiceError.factory.d.ts","../../errors/dist/infrastructure/service/externalService.error.d.ts","../../errors/dist/infrastructure/service/index.d.ts","../../errors/dist/infrastructure/container/containerError.base.d.ts","../../errors/dist/infrastructure/container/containerError.registration.d.ts","../../errors/dist/infrastructure/container/container.error.d.ts","../../errors/dist/infrastructure/container/index.d.ts","../../errors/dist/infrastructure/cache/cacheError.base.d.ts","../../errors/dist/infrastructure/cache/cacheError.factory.d.ts","../../errors/dist/infrastructure/cache/cache.error.d.ts","../../errors/dist/infrastructure/cache/index.d.ts","../../errors/dist/infrastructure/middleware/middleware.error.d.ts","../../errors/dist/infrastructure/middleware/index.d.ts","../../errors/dist/infrastructure/adapter/adapterError.base.d.ts","../../errors/dist/infrastructure/adapter/adapterError.lifecycle.d.ts","../../errors/dist/infrastructure/adapter/adapterError.operation.d.ts","../../errors/dist/infrastructure/adapter/adapter.error.d.ts","../../errors/dist/infrastructure/adapter/index.d.ts","../../errors/dist/infrastructure/index.d.ts","../../errors/dist/system/cryptoError.base.d.ts","../../errors/dist/system/cryptoError.factory.d.ts","../../errors/dist/system/crypto.error.d.ts","../../errors/dist/system/systemError.base.d.ts","../../errors/dist/system/systemError.factory.d.ts","../../errors/dist/system/system.error.d.ts","../../errors/dist/system/runtimeError.base.d.ts","../../errors/dist/system/runtimeError.types.d.ts","../../errors/dist/system/runtime.error.d.ts","../../errors/dist/system/logging/logging.error.d.ts","../../errors/dist/system/logging/index.d.ts","../../errors/dist/system/index.d.ts","../../errors/dist/utils/errorHandler.types.d.ts","../../errors/dist/utils/errorHandler.factory.d.ts","../../errors/dist/utils/errorHandler.core.d.ts","../../errors/dist/utils/errorMapper.types.d.ts","../../errors/dist/utils/errorMapper.registry.d.ts","../../errors/dist/utils/errorMapper.mappers.d.ts","../../errors/dist/utils/errorMapper.core.d.ts","../../errors/dist/utils/errorSerializer.types.d.ts","../../errors/dist/utils/errorSerializer.factory.d.ts","../../errors/dist/utils/errorSerializer.core.d.ts","../../errors/dist/utils/errorUtils.typeCheck.d.ts","../../errors/dist/utils/errorUtils.extraction.d.ts","../../errors/dist/utils/errorUtils.transform.d.ts","../../errors/dist/utils/errorUtils.helper.d.ts","../../errors/dist/utils/index.d.ts","../../errors/dist/index.d.ts","../../constants/dist/constantsErrors/constantsError.base.d.ts","../../constants/dist/constantsErrors/index.d.ts","../../constants/dist/index.d.ts","../src/message/messageType.type.ts","../src/message/messageFactory.ts","../src/message/index.ts","../src/messageContext/messageContextType.type.ts","../src/messageContext/index.ts","../src/messageHandler/messageHandlerType.type.ts","../src/messageHandler/index.ts","../src/handlerRegistry/handlerRegistryType.type.ts","../src/handlerRegistry/handlerRegistryStore.ts","../src/handlerRegistry/index.ts","../src/messageMiddleware/messageMiddlewareType.type.ts","../src/messageMiddleware/messageMiddlewarePipeline.ts","../src/messageMiddleware/index.ts","../src/dispatcher/dispatcherType.type.ts","../src/dispatcher/dispatcherCore.ts","../src/dispatcher/index.ts","../src/messageBus/messageBusType.type.ts","../src/messageBus/messageBusCore.ts","../src/messageBus/index.ts","../src/errors/index.ts","../src/index.ts","../../../node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/@types/node/web-globals/blob.d.ts","../../../node_modules/@types/node/web-globals/console.d.ts","../../../node_modules/@types/node/web-globals/crypto.d.ts","../../../node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/@types/node/web-globals/encoding.d.ts","../../../node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/undici-types/utility.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client-stats.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/round-robin-pool.d.ts","../../../node_modules/undici-types/h2c-client.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/dispatcher1-wrapper.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-call-history.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/snapshot-agent.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/socks5-proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/cache-interceptor.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/@types/node/web-globals/importmeta.d.ts","../../../node_modules/@types/node/web-globals/messaging.d.ts","../../../node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/@types/node/web-globals/performance.d.ts","../../../node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/@types/node/web-globals/timers.d.ts","../../../node_modules/@types/node/web-globals/url.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/ffi.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/@types/node/inspector/promises.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/path/posix.d.ts","../../../node_modules/@types/node/path/win32.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/quic.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/sqlite.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/iter.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/test/reporters.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/util/types.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vfs.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/zlib/iter.d.ts","../../../node_modules/@types/node/index.d.ts"],"fileInfos":[{"version":"16934abaab7026ac114da441aabea1a0","affectsGlobalScope":true,"impliedNodeFormat":1},"d4306fb2e47f74835e8674ffac07d76f","e437c5c1302869326c3bb93da85bbbcf","e4324975a566567b21d350615f1fc6ac","333b1b9a2a9ac3b8497dba5c63b5ba50","6cffacd662b6eb5fa7a36aa2ea366bfa","b4c34f9c23304dbef2d23698637ed638","e5cb86a5fc491796ecd1d2dd348d208f","feb6c6fb19cdb246a5d8acb36a6901c7",{"version":"926204c28cd3d073865348473ae28d2e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"f25e42c801b2cb3cf2b39792006a9beb","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6344b55f26a4e81d9608777dbfb877dd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3c0ed28e53d3695b363e256ec1c023fd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4c2761daba7f17141c25baa0821ac5da","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b87656acabd63e69379ff6ffcfe52fc7","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"597469522da047a5af5222cc6989f405","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1708ea4d34dc37fadadc63ca01127e80","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"55d97a8c6fbf34a30450a7b1e5f7a298","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0ee05eb59426d33e374226d8dcfa708b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e347c14030993906efcfbb88915b6a05","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b0231263857c9b6a03641acdc9280ceb","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3b15c4a83b598cacb4067676e6f0abed","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b417d97b7934cef63b1889abec0bbfbf","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"09a6cf4032ebba60ce22a501e663f881","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"2b056277dd138e8f5650fc04e20eaa8d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e22cc07e3f3cc242ba52fa3f8ea1fc58","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"2c45da767a1bfbb220848df1bc4029e4","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b44c3e0fbaf2130cdcf6ac38b120ffa1","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b612fb5cf8e5d964b92063a75207632a","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"02705151a5e1551b9162a9ed8ab763f7","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"41025e398be9215d32e4337335da8f0b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"52684c2b1f353a5538e4f275182a54cd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6dedb6a4f90d1df3a6fbe5693e44886c","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ca3f36fe3562c07e0f0d71c2bebd3f6d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"409974d6129befbb8226ddd1c6558568","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4d9cfde2a1ae1b4925f1f9bc10848e5d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"7e1daecc66dd564144e3bb1a0266b5fd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a8e1d9bb35fd0637f2f9fd2b2a54f2ec","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4f168501772a6543182765bfd5f2fbfe","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a19c80aad1b2162103496f5ba293a732","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b69afa63cd5d059851c78adb2856ee09","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ae2fc5d954e9b0f5feee3d481b953c27","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1cfd3091a071d8b6feec15277643bafe","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1da2c1f258970fd3cc91184f69e91a9d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a0d87491913d843139e0c993650a3235","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4ef72aa378127e7b7abba915b0110b1e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3ec74c6a7d4463f0254db3a74cf75646","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"84c2bdfa470d075526cce6322d81b0b6","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0b3844c2b8c73e4e1ab91431411cad11","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4fc71cf4a15b8d99675a31df77f26e07","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d1b49564ddaeca3df5b6dbae925d2242","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6a25be566d60ccfc2d6e8b7bfdeefa83","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"8a20e27646985dfd58c57ca6566553dd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9969f02ad3cdcbf4f709405cda44167f","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9c9be4792a7a4f42c15ae7360bf28779","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0219894bfe5042c7e1aa2d22e4a91ed0","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"be41035d7b941482a1e1ae6a5c5dcca5","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"f64453cbf9671f28158677fa5c43967a","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"33f317af5428801f944a478d2c1e38e5","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9aa29d6894b2dab145ad6506c8f95a4a","impliedNodeFormat":99},{"version":"c3760283e806a622b3ae3eebacb8b14d","impliedNodeFormat":99},{"version":"69833e6f351f88c13ffa2b9dd6fe997d","impliedNodeFormat":99},{"version":"7c6a37fe78d81a9375bee5f63d6e0e58","impliedNodeFormat":99},{"version":"b750501490d62a76a401e91d3768615a","impliedNodeFormat":99},{"version":"3abe09ff5d100b675caf5c36cb7e5a53","impliedNodeFormat":99},{"version":"24ac0e865dddb9516059ae3e2b06316e","impliedNodeFormat":99},{"version":"e552dfa50f1cef0f05afeb8fc3325221","impliedNodeFormat":99},{"version":"519448063201ffac15dbddc2204b0be8","impliedNodeFormat":99},{"version":"03799fa639d979627e9623b84cc122e4","impliedNodeFormat":99},{"version":"7707a8947b36943534e36e220f0d4ef5","impliedNodeFormat":99},{"version":"3e058cc3db63213593ea88ff22c260e5","impliedNodeFormat":99},{"version":"43d5b5ca96464cd67bb9c3b37bb4a2fc","impliedNodeFormat":99},{"version":"46f4ce38299a963fd3017e011a293cdd","impliedNodeFormat":99},{"version":"1247f4f94e516cd9c5ecd3e690ac96ea","impliedNodeFormat":99},{"version":"8d21c5009b729a0deaaebbe87b356cab","impliedNodeFormat":99},{"version":"e177579983851f9fd408ade4aa03caad","impliedNodeFormat":99},{"version":"fa48a3fbd3f04bd2ec8c653c19cefbef","impliedNodeFormat":99},{"version":"1ce65b2e8760f99d8b0e7ba1e1078ae2","impliedNodeFormat":99},{"version":"0084e7dae2ebb5a6995789db17fb088d","impliedNodeFormat":99},{"version":"740d8755b940ca5d395ded3583533425","impliedNodeFormat":99},{"version":"1e9f15fd959857516483550cebc35b38","impliedNodeFormat":99},{"version":"32048d111111c08db332d1ebd306b1b0","impliedNodeFormat":99},{"version":"aebf442c195bbde620a87b0e46dad7f9","impliedNodeFormat":99},{"version":"c1aa3586d4464fd1af171cca07483839","impliedNodeFormat":99},{"version":"5f336fc651fc5fe1fbca83826492b109","impliedNodeFormat":99},{"version":"bf1db352deb74334cb17a9857fe80ab9","impliedNodeFormat":99},{"version":"5145981244889a0275c7f737489e789f","impliedNodeFormat":99},{"version":"9827bf883c93d8b1d0530891b2417ec2","impliedNodeFormat":99},{"version":"daa151895ee34e6aaa4abb0d914bcb99","impliedNodeFormat":99},{"version":"165e5009d2a7b242d5b22b7814e8f3f3","impliedNodeFormat":99},{"version":"02324963f4d3a4293b1d1a15371056f1","impliedNodeFormat":99},{"version":"0a8ed36a66dadb7f257acc3862ab8150","impliedNodeFormat":99},{"version":"df72a04e09b9186716d5a82e3a7f3aa2","impliedNodeFormat":99},{"version":"b07010fb5eb9974c3e25a583eb3141af","impliedNodeFormat":99},{"version":"80ac48961de3a7cafdbfd17a3e3af27e","impliedNodeFormat":99},{"version":"b0943474ca55522b1771baee87d4b9b9","impliedNodeFormat":99},{"version":"7b706ed1f9a862840bb179219aa73c4e","impliedNodeFormat":99},{"version":"a5aacb684b9baeb2bc0f0320fe8646d2","impliedNodeFormat":99},{"version":"dc45dd269e94d8bed17aee559ae4052d","impliedNodeFormat":99},{"version":"c77168c3fd5a84c8b6f294a5bbcd7a91","impliedNodeFormat":99},{"version":"0ae870e87243061a8116fb2ddfc16510","impliedNodeFormat":99},{"version":"361fe48442bdb09fd21e03848d64c1c1","impliedNodeFormat":99},{"version":"27a1ea63a24f976c18ac95511d4c4556","impliedNodeFormat":99},{"version":"574d750a05fd4e7b406b6fdd19f85104","impliedNodeFormat":99},{"version":"882f6fa61a4b81b8592f3a1956a511da","impliedNodeFormat":99},{"version":"33c743693cfa576a85791706bd41f9fc","impliedNodeFormat":99},{"version":"f94429f8a7a5c4099452a4dc64e2e745","impliedNodeFormat":99},{"version":"1742ec5e81dbf49def6c65a8ee9594b0","impliedNodeFormat":99},{"version":"f3242897c40d1fe0cddb41751ed6b78f","impliedNodeFormat":99},{"version":"616649efca109f170df5c61aff243018","impliedNodeFormat":99},{"version":"3f8e980af02ab33e51ae1ce5cc5f5943","impliedNodeFormat":99},{"version":"b6217306c1e123d194f13005e416765c","impliedNodeFormat":99},{"version":"6a73c3526c5f08c54d51d51e201dc149","impliedNodeFormat":99},{"version":"d4270420a4d11d184f2e20e0952f2a68","impliedNodeFormat":99},{"version":"cfe42873c925d7784e1372297d52fe16","impliedNodeFormat":99},{"version":"ce63cc868a2342fb351a89d368556e8c","impliedNodeFormat":99},{"version":"c879962ef9015b0b8dacff03b6bda6ed","impliedNodeFormat":99},{"version":"917cb7d02b4c69c76b1007cea9c86aad","impliedNodeFormat":99},{"version":"fa831e6df7c99b1921efcf5f1105cfba","impliedNodeFormat":99},{"version":"cc1a90490c3a1635803069c03419f256","impliedNodeFormat":99},{"version":"f36ea07b3cd4d5796667374762738508","impliedNodeFormat":99},{"version":"0318cfec5a4a99c2166e083724dbe3c9","impliedNodeFormat":99},{"version":"14b87029b25c7219c70bbc1d26ddfe6b","impliedNodeFormat":99},{"version":"5b443557a8aea26f46d3f63e9ec1231c","impliedNodeFormat":99},{"version":"239573799d56778f7c3e0a2c82f2efc7","impliedNodeFormat":99},{"version":"5d7a3d817728307ee2d5619a3a6bdaea","impliedNodeFormat":99},{"version":"dec6f272295b39a1623132c1b273fd6e","impliedNodeFormat":99},{"version":"178a7e50499382b558510b8eebbe3fde","impliedNodeFormat":99},{"version":"933279cd0819a3b0392231f4aee2e4a6","impliedNodeFormat":99},{"version":"7beaf512b97ba6a97b436df9f0d03730","impliedNodeFormat":99},{"version":"0a231b3e49934a1e579672c8ef3b321c","impliedNodeFormat":99},{"version":"7d70d181a8cc9562b61ffd0c27b8dedb","impliedNodeFormat":99},{"version":"0a7ccb017c76e53bf2d0e1daab118f3c","impliedNodeFormat":99},{"version":"e1f7ce0ccff55f91fc9555c01fb92118","impliedNodeFormat":99},{"version":"ff60282d6ba5f3ccc5d686746a04b226","impliedNodeFormat":99},{"version":"221ceec1a7ab50140afb423800f34dce","impliedNodeFormat":99},{"version":"c8ef3c5fc64d41c6e091f5a009080595","impliedNodeFormat":99},{"version":"97ae57da47cbf1e9c568bf36f2ba6108","impliedNodeFormat":99},{"version":"55ffbab68a8bfd7143092749df43c599","impliedNodeFormat":99},{"version":"1e83f7407c1049e657093c2ea74ae6cd","impliedNodeFormat":99},{"version":"cceff6159d19082cdf3609f150dc7433","impliedNodeFormat":99},{"version":"6cbd4f49740006a0f7dc4ce4e972f98f","impliedNodeFormat":99},{"version":"1082c9264f4578ad2746f14d803d34c9","impliedNodeFormat":99},{"version":"c0e54d809b8a1da941a212900e1fdcc9","impliedNodeFormat":99},{"version":"93f269c6dec7fade6981d81d630ed00a","impliedNodeFormat":99},{"version":"5dc2346d2ce8b353a914cb855c0703de","impliedNodeFormat":99},{"version":"4df3886738b7cc0817f65ffb3b548c4a","impliedNodeFormat":99},{"version":"049cecca3bdb57dbcfc5946f2ac362d0","impliedNodeFormat":99},{"version":"2d2d4fdd3677f5b988f2a0db77ca916c","impliedNodeFormat":99},{"version":"b5a9ff7de78361ee076163410db72ae0","impliedNodeFormat":99},{"version":"c1ac4479b2d8bf9944c2cc9179e8efed","impliedNodeFormat":99},{"version":"35cd69e178d4f7f7fabbb72b2ff4d0a5","impliedNodeFormat":99},{"version":"2462983d5ca8ed8dc59d465c8d595726","impliedNodeFormat":99},{"version":"c240cb66372d7cfaf05ba41142af9560","impliedNodeFormat":99},{"version":"e405b297619747389ea195d36d1952ef","impliedNodeFormat":99},{"version":"7194fbc79c30a74ca83d2bf42f381bdc","impliedNodeFormat":99},{"version":"f289c36a895aa0ed4194e7e32fd10cbd","impliedNodeFormat":99},{"version":"73d0c346a8e7953a88dd6fd909b04f49","impliedNodeFormat":99},{"version":"189852c961feb5a70489f877beaac965","impliedNodeFormat":99},{"version":"a6cc2f6d3ddec04f619a2d913601c4f3","impliedNodeFormat":99},{"version":"6ba555ff50820fd84b1ab8126af10d6c","impliedNodeFormat":99},{"version":"250d8da7fdc11aa98eefb15262514353","impliedNodeFormat":99},{"version":"66ca36a1b581686dc2ac90ca72e8858a","impliedNodeFormat":99},{"version":"7086cb1406d35e3681b7a1676b0c1a0c","impliedNodeFormat":99},{"version":"54df393d8f097505bfa39526f503e134","impliedNodeFormat":99},{"version":"aef8481d972985741243352eb84f85c1","impliedNodeFormat":99},{"version":"76cab589b7eb7549960245555e12390c","impliedNodeFormat":99},{"version":"65afa87c4a62eafca9ac378d706ab542","impliedNodeFormat":99},{"version":"f0f5da7644625490f9e8e87c35004db7","impliedNodeFormat":99},{"version":"a1ba37cf448c3d977b334549692afbff","impliedNodeFormat":99},{"version":"8b8e3ae87513624c4cc5e3df808af013","impliedNodeFormat":99},{"version":"949d43dbd12c549311b9ff2b3a3446c8","impliedNodeFormat":99},{"version":"2e8b9d3d80619aad3516d58258b35be3","impliedNodeFormat":99},{"version":"b2bbd4599018ae4ffbc3f2e977741d04","impliedNodeFormat":99},{"version":"b6bcdd52c943887a53dd4f4bcd646adf","impliedNodeFormat":99},{"version":"f4dfa8d490b97d1c81a246f6dac7934d","impliedNodeFormat":99},{"version":"b350e1e1aedd4ead649e02f0e61fe3e4","impliedNodeFormat":99},{"version":"ad9d115d1dbd5eb5989c84ba1d88af2d","impliedNodeFormat":99},{"version":"c7764db2472104ef9665508f1ce689e0","impliedNodeFormat":99},{"version":"7d2d77de09fe504a2d88139eaf286055","impliedNodeFormat":99},{"version":"b4a1698306800700badbc4adf49ba070","impliedNodeFormat":99},{"version":"062140be930a7e0f67d12afda6ec7c3b","impliedNodeFormat":99},{"version":"14b800cce535d857b6d9127df0a70eac","impliedNodeFormat":99},{"version":"31c14c53287e2063261b0f8068ac21b8","impliedNodeFormat":99},{"version":"59014411e26b710c2de99819476989a9","impliedNodeFormat":99},{"version":"f7814e572e8b16d4a9b0d9c0e816cd1b","impliedNodeFormat":99},{"version":"0d7b0c80d90cea8d38185fb006dbdd7e","impliedNodeFormat":99},{"version":"65fc10f7b7d68ab8cdda0e827535ce38","impliedNodeFormat":99},{"version":"1ffe2bb058467a94de52c1db5c8dcc79","impliedNodeFormat":99},{"version":"4ba0f91ab506635e66c4321f26aff3a1","impliedNodeFormat":99},{"version":"17ba156afb975eb0f4cb3b2fee468786","impliedNodeFormat":99},{"version":"4aa611ed8d7dfe449a4ab33aefae3199","impliedNodeFormat":99},{"version":"e1ce5a78c40bebfc12bbe89a0a95bcf7","impliedNodeFormat":99},{"version":"0fe55388b48f8ca7ff4a600081cae211","impliedNodeFormat":99},{"version":"038bcc8903d51a90c9fa8579b517f6b1","impliedNodeFormat":99},{"version":"a8621b38247aa468daa8128a02f291c2","impliedNodeFormat":99},{"version":"68001c054034d3be0fad8c85c7b1a4ab","impliedNodeFormat":99},{"version":"f15ef36a0cd472f5a3d5f52143852029","impliedNodeFormat":99},{"version":"fb9eba18f7ae2328ef9fab7944351841","impliedNodeFormat":99},{"version":"af325779644de25db50d322baae5eb6a","impliedNodeFormat":99},{"version":"11db00b506b8ace0b6d4c98d1a34a409","impliedNodeFormat":99},{"version":"7875bed0bc1877dc394855e944095c3c","impliedNodeFormat":99},{"version":"67d634b2e9c0c022082d5809ae77d3d1","impliedNodeFormat":99},{"version":"9482a317ffeedef0912b1b52365557f8","impliedNodeFormat":99},{"version":"5f1b469a477a27fb6c3361347e12095f","impliedNodeFormat":99},{"version":"faa5eeb1cdbc8ce4da243c2acc5c3b14","impliedNodeFormat":99},{"version":"d700fb5032d1e73c6c4ac03bb23192d2","impliedNodeFormat":99},{"version":"6f8f2ed34edef1e7c9ff5330ac065b8c","impliedNodeFormat":99},{"version":"0ac2b6591179adfcba9a96c525a5092f","impliedNodeFormat":99},{"version":"641a06af568c3f7ab9828f3cd997186c","impliedNodeFormat":99},{"version":"1a58814c09fe7dab900fc0e2aa5c8039","impliedNodeFormat":99},{"version":"bbc5cc254a15c172201180c2943a4d8d","impliedNodeFormat":99},{"version":"91cbe12cfe99ef77cc0af7d8c2503b39","impliedNodeFormat":99},{"version":"8134946359e03986a9a4fd1cd2d9296e","impliedNodeFormat":99},{"version":"847674528969b7bbc6c45fcad0bc6c1f","impliedNodeFormat":99},{"version":"38732aedac676fd6f55098a16653da88","impliedNodeFormat":99},{"version":"ac9220f043f6d73ef8554bcdb31b730b","impliedNodeFormat":99},{"version":"92c18bcf168818315847648dc25a3d7d","impliedNodeFormat":99},{"version":"0913916d2b84fefec745e8a9ae8d4652","impliedNodeFormat":99},{"version":"204b4a7d86f59c422ac7f9cda54a92e6","impliedNodeFormat":99},{"version":"10d0ee25cf54314eafb051ec44167532","impliedNodeFormat":99},{"version":"4ad15129889d4157eed13a1aa33aa834","impliedNodeFormat":99},{"version":"880df0a4018bb1cd7bab7e249f26776c","impliedNodeFormat":99},{"version":"54d550ea65ca94c83640c93c62736261","impliedNodeFormat":99},{"version":"a09d4716d33108890a95887b610973db","impliedNodeFormat":99},{"version":"3cbd927dcd00ec3a471709e317c3aeb5","impliedNodeFormat":99},{"version":"540147cbb9303b457a95eb4306d9a9ea","impliedNodeFormat":99},{"version":"c3fcbcf6c87364da467d928a012bff37","impliedNodeFormat":99},{"version":"ea89b9d3d4d4efa390d0167b93a1c572","impliedNodeFormat":99},{"version":"e4a3353f3185993471beb2b2b4441cf6","impliedNodeFormat":99},{"version":"d88f17739d74b3042e34e1211704b5ef","impliedNodeFormat":99},{"version":"039644aba92940d84ccc64c2ae45aba3","impliedNodeFormat":99},{"version":"1493a14d76dfee55a684e6b5f7ff9d26","impliedNodeFormat":99},{"version":"26b93e2c7c5827e748c7df965b8ec58b","impliedNodeFormat":99},{"version":"968d8b48b52388c153a51ad2938491a8","impliedNodeFormat":99},{"version":"c5c510a94baf45f0407b0da14c58764f","impliedNodeFormat":99},{"version":"9fefcf74c3507bb8f91b9c3151d0fe13","impliedNodeFormat":99},{"version":"cfa13a926ec898601c0bdd8ab0dbc949","impliedNodeFormat":99},{"version":"6a57dc2837faa4aefb2cdb74961d0b13","impliedNodeFormat":99},{"version":"103b7718430bd53956cae1efe22d71a8","impliedNodeFormat":99},{"version":"ab2abae8f72501c67c67aa92474b7b7f","impliedNodeFormat":99},{"version":"3d09494a10a6bfae0a1e127d9218796f","impliedNodeFormat":99},{"version":"1aca6aab4f9be607b2e3776d8985005d","impliedNodeFormat":99},{"version":"a1a540728dbf9c6252c3c02ee98dc1fa","impliedNodeFormat":99},{"version":"2cd5bd8d778aef6d93c9a503230212dd","impliedNodeFormat":99},{"version":"4f93a5b1e04f38a753eb291d76561ada","impliedNodeFormat":99},{"version":"704278b1631c5ea1755c05e3fd9752df","impliedNodeFormat":99},{"version":"515e166e18def4c3695f5fd02928c303","impliedNodeFormat":99},{"version":"12365482eecbe784861bcba3b5d15114","impliedNodeFormat":99},{"version":"0744f1f5d10072ff1d7e48f30742417a","impliedNodeFormat":99},{"version":"128484aa931785f2966b09610a4995a9","impliedNodeFormat":99},{"version":"2f4bfdde9aa2ca20df8c068606c05883","impliedNodeFormat":99},{"version":"03cb8a862535498e9ca6986d14ecd596","impliedNodeFormat":99},{"version":"a9ad4cae19301509586f13bf2ce4d70b","impliedNodeFormat":99},{"version":"1a5962d7446ada4cac61ca9bab2614b4","impliedNodeFormat":99},{"version":"ec353495858a04a623347cbd4b21cd3f","impliedNodeFormat":99},{"version":"3c6c5c500786503d5ad3d0c1c4c98218","impliedNodeFormat":99},{"version":"034124476e1a72c4925845f304f1b3e2","impliedNodeFormat":99},{"version":"92bfdbffe39432698e4113ee85073081","impliedNodeFormat":99},{"version":"892e19b65fa3aae12610e7be60effb51","impliedNodeFormat":99},{"version":"e368804e3e69cc9e9aa9a558366cfc7d","impliedNodeFormat":99},{"version":"f176866690517b465ec2870fd10c5257","impliedNodeFormat":99},{"version":"0ce0ae41cf3c5153a7885cbe49f41cda","impliedNodeFormat":99},{"version":"576f302ab80d3c46d8cc251721938595","impliedNodeFormat":99},{"version":"68b193e5b1e77b293aae2d149ab2eb8f","impliedNodeFormat":99},{"version":"d179f3fe5496bf1e1607c1e2e4af904c","impliedNodeFormat":99},{"version":"bf75e542570c460573d61195ac046502","signature":"1cfd03a2198e16b4bd019aaa0feacd45","impliedNodeFormat":99},{"version":"a1395dbbf994b8444ab64543b45c6ee7","signature":"312f44876233a9cf7b33784d3a045982","impliedNodeFormat":99},{"version":"9d68d78fb4344591139b527608a8ccb4","signature":"f03f2df17eb828938bddce4242a0e9e0","impliedNodeFormat":99},{"version":"80d94fa0223db496a9c8c0c05e5f2273","impliedNodeFormat":99},{"version":"6e184f8eef957f91e16015fc95c9fe15","signature":"d651c77b3ae10277a77e4ee1b8123042","impliedNodeFormat":99},{"version":"96dfb23b05a3d508558b82e5f7be2864","impliedNodeFormat":99},{"version":"fe84f4d32f2ddadaa44cf10cbf49769d","signature":"444fb3a2123e8359e86bd39e81a442b1","impliedNodeFormat":99},{"version":"f0b78209b5803cc67128714991ea993d","impliedNodeFormat":99},{"version":"be211bcec65fdbea411a18ad10e5007d","signature":"d74db8861b06c959c3cc84047ba5cc24","impliedNodeFormat":99},{"version":"b759c94c8f8a4908931374efc8a57489","signature":"47e83662b676ff68acacf7c959d7812f","impliedNodeFormat":99},{"version":"32799f5918ee1ca2f9ef3a59363b9e3a","impliedNodeFormat":99},{"version":"5cf23643c00baa0a3f8bfda293112566","impliedNodeFormat":99},{"version":"df677661265d29cc152b6ad1193c411a","signature":"e37977ca300477fa760bc52cbcf7afcb","impliedNodeFormat":99},{"version":"caa95b2a650e33da461c4f97f6e895b4","impliedNodeFormat":99},{"version":"cafb097004671b3e79e764d5b0353859","signature":"29f6ae8a58c52698dab4cecfd74c9fb6","impliedNodeFormat":99},{"version":"537eea2b2c2e8c530f322a2a73c55ec2","signature":"87eb11eabfc48895167470daaaeec525","impliedNodeFormat":99},{"version":"bacf1e9bf07a7c1dde510e90b06bc31c","impliedNodeFormat":99},{"version":"df4a53a1efe42206fc0a2d1787aa2cb1","signature":"288c30074db4ffc36dc66b322ae68ce6","impliedNodeFormat":99},{"version":"05d201c8cbb3286d90bd254645636f71","signature":"cea1c7dd29f10888aed520d2b7a5548a","impliedNodeFormat":99},{"version":"2ee2c6c37594882f87edd933cc496dce","signature":"4e748c5da8ea3dcb0710b31942e2eff9","impliedNodeFormat":99},{"version":"4165290bc7c9b27ae9b37cfaa05f3a22","signature":"f8f5cc15e82629a4c97dc0c1bb073e99","impliedNodeFormat":99},{"version":"014eb4d3e0618e548a7001fb52d9f78b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"8ab4edc191017b1a2ad5b3cb8b46cdb8","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"c5eb15737c858d986e0d5a542103b1df","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ec83150a952000d42a7e6ccedac2d892","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"494755686d9e421e630117d917760e4f","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"c3f3d4053311f68af31e07f6e167faf6","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"86013697f2045d357ef20d7a952cdc12","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"fbef359f7184dcd12e5b3b95b171cca0","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1ca5302f6fe11154128eef397b5a285b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"13835e9ba9b025ad7cab01fe7bad1fe3","affectsGlobalScope":true,"impliedNodeFormat":1},"49133c0dfbc32ab95668c3443dea49e5","d0b24ed45e91de84ca0fbafde3797006","9f970a4ba4bb3ed6326d46b3ddab3f63","7326b52c300bf65ac2f7e089fa536421","75de66fc4824402123c0d694ccc0a085","ff1283d1b4e6fa719203127857079e2e","fcd1a513c1e5802916fa602e8b8e64bc","78963d55a7500f2a08ecf81c3e2f2351","c1ace754853b3b972549a44a2316ca86","cf4561df3889c71b6b70fda4afe61f62","705645fe223430c696f47b708d592ca8","28d57c837c94adb42add03d499793cab","8c01a9bbae8449be21b3e018d59a74ac","b4a1cb50a619bde79c20d19aeb560633","21dc8b1a2dfd71b39278fd1db4055489","74d351e4ed233e82c6d74c444c1a6b86","35b9b5981aa2c74f808ba3334548e89b","81870445ff689f1a6c65a6d62e034298","d7131a7789ae06e6ba79d7cd1841fde7","dd373f44a8c44dd9286f3b43e07fc873","d7e5f7a0f1f883f28458f684106e7643","c2364011a80b6a9e3cc0e77895bad577","38da5c670190f4a35cbc204ca6c616bf","d95cc0eb29beed58f5ce72db21398f53","ecd53256b1ec7379c73316eaf392a69c","9871d4fb594b51eb13a3f6db71e01844","69c7bb9c3befe9ae37eed0e6a6310fee","c9351e1ed4d066672ad38be5c44f60b9","71e556084722c2a3f00f47d999db1e35","094ecadae30f65a82b77343dde77a666","f75df12d75dd783b03a0329b95abdb25","b438b08b2f0ed94a95a75c8990d9021b","f2becd2589591db92ab14e803eb8bdd5","230b29c24dac9c9800ba909debbaf7c4","518eaa3ff1153eacd0343a6bab2ce870","0468c0ccd0ec7770b76481b165564d62","188234d616a4f50ed9b14c8f84a39f33","4c116bcf0a47ea8fbf4072f380925fa7","213fda99209bff9d0330b6d9f5c9c7f3","add85ec26ba695fc99c698dbec065f8c","5bfde23f96fc502b5413d772c35e1abf","b744265d8ad12b7d4d5c5dc35d18d44e","eff32168b8348b822afeed9cbf61afa7","531a291f1cbe853ce3a138313c7448e9",{"version":"3b4fc11e9a5d20c846f1ba38889cbc8d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"53b0e86dfe96eb781a056e2662bf1e3b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d0bac56ae60094675c08a325b81d3b1a","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"292c9398a407b33b1d9c9812b673387a","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"83bc735c360e42b09f2b102d7b831ede","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"45df94b3c51b898624bacc2bcd6d9eb2","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0b1a6b0b0f8828c286f9ae2ba01c4a5c","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"8617a23553d74c31be6da303c668bd18","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3f2d808ba5f1ae3681bf7df616488dcd","affectsGlobalScope":true,"impliedNodeFormat":1},"4e58ba439fc661a1e2337fd17ae89d94","604aab8dd7c02abe3fcf1218fa951439","eb8c0e64b0e0e76f43e7c552937a365f",{"version":"d9f08c6ae1f16ca22e5a7ee7c02e8f55","affectsGlobalScope":true,"impliedNodeFormat":1},"e894ca92e848c9059a67e916bf4a5ccd","2c43726da10a0a524992e6fd4a561aba","75c6ee2c7a0e7d54f06ae1941553f44f","9af5958f27aacf7d18939d710f5b0da4","de7cf5e4aaf0fcdb2812d862f7dfd647","f30f64747df91267926bcf85bb6baa63","dca9e0bed5a66eaef8e9d2533b733526","4fbcefaa3aa9d4af9d76d946c7c445cc","949ce92cb920c39fb4ff87098ebe56af","2d8ebe6eb639d14875e12acf069d9c65",{"version":"2d30f3e526b72134674afeee7eb5f870","affectsGlobalScope":true,"impliedNodeFormat":1},"3dc88bd6dd1ffa2f65dbb913face44d9","516b9a8f5be6176b42a139206d8a4b0f","c01d3dfae670c432efbc2a173594b5a1","884c159995901fb84a4c350db7da9e48","85951d6d06f2bafece2fcf8917693167","8383fa58c2f75291c454f84915f12190","4516059403323bf291a537284f4f0d21","fc81ee7b08868ee0973983110e2ef386","f7be6b8b253b7d07c8476f23bbdc98c1",{"version":"48b2540ad661c32ab2cf99d5d0300f98","affectsGlobalScope":true,"impliedNodeFormat":1},"ad1e51d53dafa1c54c669fb126b8baf5","beb256af4099983453b3f33660699c9a","860f49c8d6ad48b19bf7ed0bc5d2824e","235cc33b85ac998f0f2df0807648acb8","c0c62035e8f8a0b6da47b6277fd6dbb2","1b176e9abc725e3ab4838bc569ed6e3a",{"version":"a46453aee5afbfec3678c420313e0d47","affectsGlobalScope":true,"impliedNodeFormat":1},"196cd3003168b4ee2df015d15cfed000","66b5b9b84ab95e019a6e1f5edb8bd250","2e3deefa9b9c888c081706361a645cfe","2e2ed32d5133fb4c60f95543217e669e","2580385b74019e646d76a9f68fdbf31b","aa0f7a546acda88ef0a5df40ff0e5122","b3bdce048b1c601e1a19a4c3ee32053b","948b8517c9f39acc6e1c356773f8a660",{"version":"c18928bec3bc65892c54962be1683163","affectsGlobalScope":true,"impliedNodeFormat":1},"f9c43b0225ab4f6dc8aff6e619d322a8","e3a37368763f25483bba2c5ddedeeff3","6e1de2df81bd936ffb5509f921f1fc8c","c7576162a5c832fc7681771ad7a50357","9959a7e96eedcbc697460cf0d31bda74","cb842435634eb3f9f1b2bf85bf7fdb3b","0b355907ec29bf7f68cedaff3b6b71f5",{"version":"b73a052b5fd08948bd559dcca4424ede","affectsGlobalScope":true,"impliedNodeFormat":1},"e6ad9a1d5cc3099621a4a7bba328d248","817586087035c6ea2a0c015caba8fb59","b4dbe09999921e219d6ff56b29720eae","5d46377ba24278d5476dc24dcb760b20","93f25f3a36ba4dd4c8efff0cc442f118","513ff65469f15b8059ed4edd7033614a","b0466c3034f5921a2c78e7da534f2b19","4c638ae62e5dbcc434c231576773dd6c","59880794a53cfb4c1d90ae79136b04dc","03f9be20ff7c3e5e8b98f11d0641aa47","3b1ae8bab308b1e5ac7e7a26d27167ad","a41a5f7019678ba4b53936492dc465d1","35c1d312d8ffabf1e4546bfeaeb4142e","6728fae9ef4170f6403bf6db25cc60c6","8989c3c06069b305178e23d87eae41e7"],"fileIdsList":[[289,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,341,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[288,289,290,291,292,293,294,295,296,297,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,411,412,413],[289,341,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,341,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412],[289,304,307,310,311,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,307,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,307,311,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,301,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,305,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,303,304,307,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414],[289,301,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414],[289,303,307,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,298,299,300,302,306,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,307,316,325,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,299,305,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,307,335,336,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,299,302,307,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414],[289,298,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,301,302,303,305,306,307,308,309,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,336,337,338,339,340,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,307,328,331,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,307,316,318,319,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,305,307,318,320,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,306,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,299,301,307,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,307,311,318,320,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,311,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,305,307,310,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,299,303,307,316,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,307,328,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,320,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,299,303,307,311,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[289,301,307,335,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414],[80,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[80,81,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[71,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[71,72,73,74,75,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[263,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[264,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[65,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[65,66,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[60,61,62,63,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[64,67,70,76,79,82,84,265,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[83,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[68,69,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[77,78,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[87,88,89,90,91,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[90,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[90,93,94,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[92,95,97,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[87,88,89,90,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[85,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[85,86,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[87,88,89,91,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[87,88,89,91,93,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[96,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[87,91,93,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[99,100,101,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[87,89,91,93,263,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[152,153,154,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[152,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[155,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[109,110,111,114,117,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[115,116,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[115,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[112,113,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[112,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[141,142,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[141,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[143,144,145,146,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[167,168,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[167,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[169,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[119,120,121,122,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[119,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[123,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[102,108,118,124,130,136,140,147,151,156,161,166,170,175,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[129,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[125,126,127,128,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[125,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[174,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[171,172,173,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[171,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[135,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[131,132,133,134,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[131,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[160,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[157,158,159,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[90,157,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[157,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[165,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[162,163,164,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[162,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[150,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[148,149,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[88,93,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[148,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[139,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[137,138,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[137,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[103,104,107,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[105,106,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[105,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[98,176,235,247,262,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[230,231,232,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[230,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[233,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[224,225,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[224,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[226,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[220,221,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[220,263,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[222,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[183,212,219,223,227,229,234,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[228,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[187,188,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[195,196,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[189,190,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[90,93,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[190,191,192,193,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[195,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[91,93,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[202,203,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[202,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[90,189,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[206,207,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[206,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[186,189,194,197,198,201,204,205,208,209,210,211,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[184,185,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[184,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[199,200,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[199,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[216,217,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[216,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[215,218,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[213,214,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[213,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[177,178,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[177,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[179,182,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[180,181,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[180,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[236,237,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[236,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[238,241,244,246,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[245,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[242,243,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[242,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[239,240,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[239,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[93,248,249,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[93,248,250,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[87,89,93,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[251,252,253,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[93,251,252,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[93,251,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[93,255,256,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[93,255,257,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[87,91,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[93,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[258,259,260,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[87,89,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[250,254,257,261,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[263,267,270,275,277,278,280,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[267,270,272,277,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[280,281,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[263,267,272,274,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[267,272,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[274,275,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[269,271,273,276,279,282,285,286,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[267,268,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[267,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[266,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[283,284,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[263,267,268,272,275,277,280,281,283,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[267,272,277,280,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[270,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[272,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[267,270,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[277,278,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413],[267,277,289,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413]],"options":{"composite":true,"declaration":true,"declarationMap":true,"module":199,"noFallthroughCasesInSwitch":true,"noImplicitAny":true,"noUncheckedIndexedAccess":true,"noImplicitOverride":true,"outDir":"./","removeComments":false,"rootDir":"../src","skipLibCheck":true,"strict":true,"strictFunctionTypes":true,"strictNullChecks":true,"strictPropertyInitialization":true,"sourceMap":true,"target":9,"tsBuildInfoFile":"./.tsbuildinfo","useDefineForClassFields":true,"verbatimModuleSyntax":true},"referencedMap":[[351,1],[352,2],[353,3],[289,4],[354,5],[355,6],[356,7],[357,8],[358,9],[359,10],[360,11],[361,12],[362,13],[363,14],[364,15],[365,16],[366,17],[367,18],[368,19],[290,20],[288,20],[369,21],[370,22],[371,23],[414,24],[372,25],[373,26],[374,27],[375,28],[376,29],[377,30],[378,31],[379,32],[380,33],[381,34],[382,35],[383,36],[384,37],[385,38],[386,39],[387,40],[388,41],[389,42],[390,43],[391,44],[392,45],[393,46],[394,47],[395,48],[396,49],[397,50],[398,51],[399,52],[400,53],[401,54],[402,55],[403,56],[404,57],[405,58],[406,59],[407,60],[408,61],[409,62],[410,63],[291,20],[292,20],[293,20],[294,20],[295,20],[296,20],[297,20],[342,64],[343,20],[344,20],[345,20],[346,20],[347,20],[348,20],[349,20],[350,20],[411,65],[412,66],[413,67],[58,20],[59,20],[11,20],[10,20],[2,20],[12,20],[13,20],[14,20],[15,20],[16,20],[17,20],[18,20],[19,20],[3,20],[20,20],[21,20],[4,20],[22,20],[26,20],[23,20],[24,20],[25,20],[27,20],[28,20],[29,20],[5,20],[30,20],[31,20],[32,20],[33,20],[6,20],[37,20],[34,20],[35,20],[36,20],[38,20],[7,20],[39,20],[44,20],[45,20],[40,20],[41,20],[42,20],[43,20],[8,20],[49,20],[46,20],[47,20],[48,20],[50,20],[9,20],[51,20],[52,20],[53,20],[55,20],[54,20],[56,20],[1,20],[57,20],[316,68],[330,69],[313,70],[331,20],[340,71],[304,72],[305,73],[303,20],[339,74],[334,75],[338,76],[307,77],[317,69],[327,78],[306,79],[337,80],[301,81],[302,75],[308,69],[309,20],[315,76],[312,69],[299,82],[341,83],[332,84],[320,85],[319,69],[321,86],[324,87],[318,88],[322,89],[335,74],[310,90],[311,91],[325,92],[300,20],[329,93],[328,69],[314,91],[323,94],[326,95],[333,20],[298,20],[336,96],[81,97],[80,20],[82,98],[72,99],[75,20],[74,20],[73,20],[71,20],[76,100],[264,101],[265,102],[66,103],[65,20],[67,104],[63,20],[62,20],[60,20],[61,20],[64,105],[266,106],[84,107],[83,20],[70,108],[69,20],[68,20],[79,109],[78,20],[77,20],[93,110],[94,111],[90,20],[95,112],[98,113],[91,114],[85,20],[86,115],[87,116],[88,20],[89,20],[92,117],[96,118],[97,119],[99,120],[100,120],[102,121],[101,122],[155,123],[152,122],[154,124],[153,124],[156,125],[109,120],[110,122],[111,120],[118,126],[117,127],[115,122],[116,128],[114,129],[112,122],[113,130],[144,120],[143,131],[141,120],[142,132],[145,120],[147,133],[146,120],[169,134],[167,122],[168,135],[170,136],[123,137],[119,122],[120,138],[121,138],[122,138],[124,139],[176,140],[130,141],[129,142],[125,122],[126,143],[127,143],[128,143],[175,144],[174,145],[171,122],[172,146],[173,146],[136,147],[135,148],[131,120],[133,149],[132,149],[134,149],[161,150],[160,151],[157,122],[158,152],[159,153],[166,154],[165,155],[162,122],[164,156],[163,156],[151,157],[150,158],[148,159],[149,160],[140,161],[139,162],[137,122],[138,163],[104,120],[108,164],[103,120],[107,165],[105,122],[106,166],[263,167],[233,168],[230,122],[231,169],[232,169],[234,170],[226,171],[224,122],[225,172],[227,173],[222,174],[220,122],[221,175],[223,176],[235,177],[229,178],[228,122],[189,179],[205,120],[197,180],[192,181],[195,182],[191,181],[194,183],[190,111],[193,181],[196,184],[187,185],[188,20],[210,120],[204,186],[202,120],[203,187],[198,188],[208,189],[206,120],[207,190],[209,120],[212,191],[186,192],[184,122],[185,193],[211,120],[201,194],[199,122],[200,195],[218,196],[216,122],[217,197],[219,198],[215,199],[213,122],[214,200],[179,201],[177,122],[178,202],[183,203],[182,204],[180,122],[181,205],[238,206],[236,122],[237,207],[247,208],[246,209],[245,120],[244,210],[242,122],[243,211],[241,212],[239,122],[240,213],[250,214],[249,215],[248,216],[254,217],[253,218],[252,219],[251,216],[257,220],[256,221],[255,222],[259,223],[261,224],[260,223],[258,225],[262,226],[281,227],[280,228],[282,229],[286,101],[275,230],[274,231],[276,232],[287,233],[269,234],[268,235],[267,236],[285,237],[284,238],[283,239],[271,240],[270,235],[273,241],[272,242],[279,243],[278,244],[277,242]],"affectedFilesPendingEmit":[[281,51],[280,48],[282,51],[286,51],[275,51],[274,48],[276,51],[287,51],[269,51],[268,51],[267,51],[285,51],[284,51],[283,48],[271,51],[270,48],[273,51],[272,48],[279,51],[278,48],[277,48]],"latestChangedDtsFile":"./index.d.ts","emitSignatures":[[267,"bf1d2bb85d48b865fae549b065310c16"],[268,"ed683cf53c6dd29e30c869ba858f375a"],[269,"7bfa9dbbadc2efbc49930ff4ced0d69e"],[270,"712717975ae29636a9b5eceae433c7dd"],[271,"0cee17011831d7394a7d32d27ad449d2"],[272,"cbf5b3ab9053c3ae4f43543d1339801e"],[273,"7ddd73092fa3037305253d8a87f74c03"],[274,"503972edadaf25c85197c5f2ece737f9"],[276,"ced69a15d05561cfb689d7975b9ea9ff"],[277,"1ee1177772c85e0fe6fb8139df1c2162"],[278,"0ac2e9b57c4d11f379b979d46bf79af6"],[279,"d4a2c851b530bcc2e9c798e04fc510b9"],[280,"6bdd363ca32169fe3c79cbe05ff3199b"],[282,"f2f7320da986a5cd20d00e1e37be65b2"],[283,"5b6783fe2a61f9702f326417c8a9a1a8"],[285,"e7ca211ce333c2df53234ef526c2e810"],[286,"cdbaf4007dad008a63b9c8983d3efb11"],[287,"4ab5b2d0091320a0e2abd6b10286587b"]]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dispatcher implementation for Lattice.
|
|
3
|
+
*
|
|
4
|
+
* @module dispatcher/dispatcherCore
|
|
5
|
+
*/
|
|
6
|
+
import type { Message } from "../message/messageType.type.js";
|
|
7
|
+
import type { MessageMiddlewareLike } from "../messageMiddleware/messageMiddlewareType.type.js";
|
|
8
|
+
import type { Dispatcher, DispatchResult, DispatchOptions } from "./dispatcherType.type.js";
|
|
9
|
+
import { HandlerRegistryStore } from "../handlerRegistry/handlerRegistryStore.js";
|
|
10
|
+
/**
|
|
11
|
+
* Default dispatcher implementation.
|
|
12
|
+
*/
|
|
13
|
+
export declare class DefaultDispatcher implements Dispatcher {
|
|
14
|
+
private readonly registry;
|
|
15
|
+
private readonly globalMiddleware;
|
|
16
|
+
private disposed;
|
|
17
|
+
constructor(registry?: HandlerRegistryStore);
|
|
18
|
+
dispatch<TPayload, TResult>(message: Message<TPayload>, options?: DispatchOptions<TResult>): Promise<DispatchResult<TResult>>;
|
|
19
|
+
private validateNotDisposed;
|
|
20
|
+
private resolveSignal;
|
|
21
|
+
private executeHandlers;
|
|
22
|
+
private executeHandler;
|
|
23
|
+
use<TMessage extends Message = Message, TResult = unknown>(middleware: MessageMiddlewareLike<TMessage, TResult>): void;
|
|
24
|
+
removeMiddleware(_middlewareId: string): boolean;
|
|
25
|
+
getRegistry(): HandlerRegistryStore;
|
|
26
|
+
dispose(): void;
|
|
27
|
+
}
|
|
28
|
+
export declare function createDispatcher(registry?: HandlerRegistryStore): Dispatcher;
|
|
29
|
+
//# sourceMappingURL=dispatcherCore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatcherCore.d.ts","sourceRoot":"","sources":["../../src/dispatcher/dispatcherCore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,OAAO,EACR,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EACV,qBAAqB,EACtB,MAAM,oDAAoD,CAAC;AAE5D,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,eAAe,EAEhB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAQlF;;GAEG;AACH,qBAAa,iBAAkB,YAAW,UAAU;IAClD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAChD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA+B;IAChE,OAAO,CAAC,QAAQ,CAAS;IAEzB,YAAY,QAAQ,CAAC,EAAE,oBAAoB,EAE1C;IAEK,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAC9B,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC1B,OAAO,GAAE,eAAe,CAAC,OAAO,CAAM,GACrC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CA4BlC;IAED,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,aAAa;YAMP,eAAe;YAef,cAAc;IAiB5B,GAAG,CAAC,QAAQ,SAAS,OAAO,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,EACvD,UAAU,EAAE,qBAAqB,CAAC,QAAQ,EAAE,OAAO,CAAC,GACnD,IAAI,CAEN;IAED,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAE/C;IAED,WAAW,IAAI,oBAAoB,CAElC;IAED,OAAO,IAAI,IAAI,CAEd;CACF;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,oBAAoB,GAAG,UAAU,CAE5E"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dispatcher implementation for Lattice.
|
|
3
|
+
*
|
|
4
|
+
* @module dispatcher/dispatcherCore
|
|
5
|
+
*/
|
|
6
|
+
import { createMessageContext } from "../messageContext/messageContextType.type.js";
|
|
7
|
+
import { HandlerRegistryStore } from "../handlerRegistry/handlerRegistryStore.js";
|
|
8
|
+
import { runMessagePipeline } from "../messageMiddleware/messageMiddlewarePipeline.js";
|
|
9
|
+
import { MessageDispatchAbortedError, MessageHandlerError, MessageDispatchError, } from "@latticejs/errors";
|
|
10
|
+
/**
|
|
11
|
+
* Default dispatcher implementation.
|
|
12
|
+
*/
|
|
13
|
+
export class DefaultDispatcher {
|
|
14
|
+
registry;
|
|
15
|
+
globalMiddleware = [];
|
|
16
|
+
disposed = false;
|
|
17
|
+
constructor(registry) {
|
|
18
|
+
this.registry = registry ?? new HandlerRegistryStore();
|
|
19
|
+
}
|
|
20
|
+
async dispatch(message, options = {}) {
|
|
21
|
+
const dispatchStart = performance.now();
|
|
22
|
+
this.validateNotDisposed(message);
|
|
23
|
+
const signal = this.resolveSignal(options.signal);
|
|
24
|
+
const context = createMessageContext(message, { ...options.context, signal });
|
|
25
|
+
const allMiddleware = [...this.globalMiddleware, ...(options.middleware ?? [])];
|
|
26
|
+
const handlers = this.registry.resolve(message.type);
|
|
27
|
+
const handlerResults = [];
|
|
28
|
+
try {
|
|
29
|
+
const pipelineResult = await runMessagePipeline(allMiddleware, async (msg, mwCtx) => this.executeHandlers(msg, handlers, handlerResults, mwCtx.signal), message, { signal: context.signal, metadata: options.context?.headers, state: options.context?.state });
|
|
30
|
+
return {
|
|
31
|
+
success: true, value: pipelineResult.result,
|
|
32
|
+
message, context, handlerResults, middlewareResult: pipelineResult,
|
|
33
|
+
duration: performance.now() - dispatchStart,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
return {
|
|
38
|
+
success: false, error: error instanceof Error ? error : new Error(String(error)),
|
|
39
|
+
message, context, handlerResults, duration: performance.now() - dispatchStart,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
validateNotDisposed(message) {
|
|
44
|
+
if (this.disposed)
|
|
45
|
+
throw new MessageDispatchError(message.type, "Dispatcher has been disposed.");
|
|
46
|
+
}
|
|
47
|
+
resolveSignal(signal) {
|
|
48
|
+
const resolved = signal ?? new AbortController().signal;
|
|
49
|
+
if (resolved.aborted)
|
|
50
|
+
throw new MessageDispatchAbortedError();
|
|
51
|
+
return resolved;
|
|
52
|
+
}
|
|
53
|
+
async executeHandlers(message, handlers, handlerResults, signal) {
|
|
54
|
+
const results = [];
|
|
55
|
+
for (const handler of handlers) {
|
|
56
|
+
const result = await this.executeHandler(handler, message, signal);
|
|
57
|
+
results.push(result);
|
|
58
|
+
handlerResults.push({ handlerId: handler.id, success: true, value: result, duration: 0 });
|
|
59
|
+
}
|
|
60
|
+
return results.length === 1 ? results[0] : results;
|
|
61
|
+
}
|
|
62
|
+
async executeHandler(handler, message, signal) {
|
|
63
|
+
try {
|
|
64
|
+
if (signal.aborted)
|
|
65
|
+
throw new MessageDispatchAbortedError();
|
|
66
|
+
const context = createMessageContext(message, { signal });
|
|
67
|
+
return await handler.handler(message, context);
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
throw new MessageHandlerError(`Handler "${handler.id}" failed: ${error instanceof Error ? error.message : String(error)}`, { handlerId: handler.id, messageType: message.type, messageId: message.id, cause: error });
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
use(middleware) {
|
|
74
|
+
this.globalMiddleware.push(middleware);
|
|
75
|
+
}
|
|
76
|
+
removeMiddleware(_middlewareId) {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
getRegistry() {
|
|
80
|
+
return this.registry;
|
|
81
|
+
}
|
|
82
|
+
dispose() {
|
|
83
|
+
this.disposed = true;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
export function createDispatcher(registry) {
|
|
87
|
+
return new DefaultDispatcher(registry);
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=dispatcherCore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatcherCore.js","sourceRoot":"","sources":["../../src/dispatcher/dispatcherCore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiBH,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AACpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AACvF,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,MAAM,OAAO,iBAAiB;IACX,QAAQ,CAAuB;IAC/B,gBAAgB,GAA4B,EAAE,CAAC;IACxD,QAAQ,GAAG,KAAK,CAAC;IAEzB,YAAY,QAA+B;QACzC,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,IAAI,oBAAoB,EAAE,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,OAA0B,EAC1B,OAAO,GAA6B,EAAE;QAEtC,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACxC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9E,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC;QAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,cAAc,GAA6B,EAAE,CAAC;QAEpD,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAC7C,aAAa,EACb,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,EACvF,OAAO,EACP,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,OAAkC,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,CACzH,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,MAAiB;gBACtD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc;gBAClE,QAAQ,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,aAAa;aAC5C,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChF,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,aAAa;aAC9E,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,OAAgB;QAC1C,IAAI,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,oBAAoB,CAAC,OAAO,CAAC,IAAI,EAAE,+BAA+B,CAAC,CAAC;IACnG,CAAC;IAEO,aAAa,CAAC,MAAoB;QACxC,MAAM,QAAQ,GAAG,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC,MAAM,CAAC;QACxD,IAAI,QAAQ,CAAC,OAAO;YAAE,MAAM,IAAI,2BAA2B,EAAE,CAAC;QAC9D,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,OAAgB,EAChB,QAAqD,EACrD,cAAwC,EACxC,MAAmB;QAEnB,MAAM,OAAO,GAAc,EAAE,CAAC;QAC9B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,MAAiB,CAAC,CAAC;YAChC,cAAc,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5F,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC,CAAE,OAA8B,CAAC;IAC9E,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,OAA4D,EAC5D,OAAgB,EAChB,MAAmB;QAEnB,IAAI,CAAC;YACH,IAAI,MAAM,CAAC,OAAO;gBAAE,MAAM,IAAI,2BAA2B,EAAE,CAAC;YAC5D,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1D,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,mBAAmB,CAC3B,YAAY,OAAO,CAAC,EAAE,aAAa,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAC3F,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAC1F,CAAC;QACJ,CAAC;IACH,CAAC;IAED,GAAG,CACD,UAAoD;QAEpD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAmC,CAAC,CAAC;IAClE,CAAC;IAED,gBAAgB,CAAC,aAAqB;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;CACF;AAED,MAAM,UAAU,gBAAgB,CAAC,QAA+B;IAC9D,OAAO,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dispatcher type definitions for Lattice.
|
|
3
|
+
*
|
|
4
|
+
* The dispatcher is the core coordination point that validates
|
|
5
|
+
* messages, creates context, runs middleware, and invokes handlers.
|
|
6
|
+
*
|
|
7
|
+
* @module dispatcher/dispatcherType
|
|
8
|
+
*/
|
|
9
|
+
import type { Message } from "../message/messageType.type.js";
|
|
10
|
+
import type { MessageContext, MessageContextOptions } from "../messageContext/messageContextType.type.js";
|
|
11
|
+
import type { MessageMiddlewareLike, MessageMiddlewarePipelineResult } from "../messageMiddleware/messageMiddlewareType.type.js";
|
|
12
|
+
/**
|
|
13
|
+
* Result of dispatching a message.
|
|
14
|
+
*/
|
|
15
|
+
export interface DispatchResult<TResult = unknown> {
|
|
16
|
+
/** Whether the dispatch was successful. */
|
|
17
|
+
readonly success: boolean;
|
|
18
|
+
/** The result value (if successful). */
|
|
19
|
+
readonly value?: TResult;
|
|
20
|
+
/** The error (if failed). */
|
|
21
|
+
readonly error?: Error;
|
|
22
|
+
/** The message that was dispatched. */
|
|
23
|
+
readonly message: Message;
|
|
24
|
+
/** The context used for dispatch. */
|
|
25
|
+
readonly context: MessageContext;
|
|
26
|
+
/** Handler execution results. */
|
|
27
|
+
readonly handlerResults: readonly HandlerExecutionResult[];
|
|
28
|
+
/** Middleware execution metadata. */
|
|
29
|
+
readonly middlewareResult?: MessageMiddlewarePipelineResult;
|
|
30
|
+
/** Total dispatch duration in ms. */
|
|
31
|
+
readonly duration: number;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Result of a single handler execution.
|
|
35
|
+
*/
|
|
36
|
+
export interface HandlerExecutionResult<TResult = unknown> {
|
|
37
|
+
/** The handler ID. */
|
|
38
|
+
readonly handlerId: string;
|
|
39
|
+
/** Whether the handler succeeded. */
|
|
40
|
+
readonly success: boolean;
|
|
41
|
+
/** The result value (if successful). */
|
|
42
|
+
readonly value?: TResult;
|
|
43
|
+
/** The error (if failed). */
|
|
44
|
+
readonly error?: Error;
|
|
45
|
+
/** Handler execution duration in ms. */
|
|
46
|
+
readonly duration: number;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Options for dispatching a message.
|
|
50
|
+
*/
|
|
51
|
+
export interface DispatchOptions<TResult = unknown> {
|
|
52
|
+
/** Context options. */
|
|
53
|
+
readonly context?: MessageContextOptions;
|
|
54
|
+
/** Middleware to apply for this dispatch. */
|
|
55
|
+
readonly middleware?: readonly MessageMiddlewareLike[];
|
|
56
|
+
/** Timeout in ms. 0 = no timeout. Default: 0. */
|
|
57
|
+
readonly timeout?: number;
|
|
58
|
+
/** AbortSignal for cancellation. */
|
|
59
|
+
readonly signal?: AbortSignal;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Dispatcher interface.
|
|
63
|
+
*
|
|
64
|
+
* Validates, contextualizes, and dispatches messages through
|
|
65
|
+
* the middleware pipeline to handlers.
|
|
66
|
+
*/
|
|
67
|
+
export interface Dispatcher {
|
|
68
|
+
/**
|
|
69
|
+
* Dispatches a message through the pipeline to handlers.
|
|
70
|
+
*/
|
|
71
|
+
dispatch<TPayload, TResult>(message: Message<TPayload>, options?: DispatchOptions<TResult>): Promise<DispatchResult<TResult>>;
|
|
72
|
+
/**
|
|
73
|
+
* Registers middleware for all dispatches.
|
|
74
|
+
*/
|
|
75
|
+
use<TMessage extends Message = Message, TResult = unknown>(middleware: MessageMiddlewareLike<TMessage, TResult>, options?: {
|
|
76
|
+
priority?: number;
|
|
77
|
+
}): void;
|
|
78
|
+
/**
|
|
79
|
+
* Removes middleware by ID.
|
|
80
|
+
*/
|
|
81
|
+
removeMiddleware(middlewareId: string): boolean;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=dispatcherType.type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatcherType.type.d.ts","sourceRoot":"","sources":["../../src/dispatcher/dispatcherType.type.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,OAAO,EAER,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACtB,MAAM,8CAA8C,CAAC;AAMtD,OAAO,KAAK,EACV,qBAAqB,EACrB,+BAA+B,EAChC,MAAM,oDAAoD,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,OAAO,GAAG,OAAO;IAC/C,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,wCAAwC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAEzB,6BAA6B;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IAEvB,uCAAuC;IACvC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,qCAAqC;IACrC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IAEjC,iCAAiC;IACjC,QAAQ,CAAC,cAAc,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAE3D,qCAAqC;IACrC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,+BAA+B,CAAC;IAE5D,qCAAqC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB,CAAC,OAAO,GAAG,OAAO;IACvD,sBAAsB;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,qCAAqC;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,wCAAwC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAEzB,6BAA6B;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IAEvB,wCAAwC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,OAAO,GAAG,OAAO;IAChD,uBAAuB;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAEzC,6CAA6C;IAC7C,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAEvD,iDAAiD;IACjD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B,oCAAoC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,EACxB,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC1B,OAAO,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,GACjC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAEpC;;OAEG;IACH,GAAG,CAAC,QAAQ,SAAS,OAAO,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,EACvD,UAAU,EAAE,qBAAqB,CAAC,QAAQ,EAAE,OAAO,CAAC,EACpD,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9B,IAAI,CAAC;IAER;;OAEG;IACH,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;CACjD"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dispatcher type definitions for Lattice.
|
|
3
|
+
*
|
|
4
|
+
* The dispatcher is the core coordination point that validates
|
|
5
|
+
* messages, creates context, runs middleware, and invokes handlers.
|
|
6
|
+
*
|
|
7
|
+
* @module dispatcher/dispatcherType
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=dispatcherType.type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatcherType.type.js","sourceRoot":"","sources":["../../src/dispatcher/dispatcherType.type.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|